summaryrefslogtreecommitdiffstats
path: root/src/ceph/doc
diff options
context:
space:
mode:
Diffstat (limited to 'src/ceph/doc')
-rw-r--r--src/ceph/doc/.gitignore2
-rw-r--r--src/ceph/doc/CMakeLists.txt3
-rw-r--r--src/ceph/doc/_templates/layout.html5
-rw-r--r--src/ceph/doc/_templates/smarttoc.html16
-rw-r--r--src/ceph/doc/_themes/ceph/static/nature.css_t310
-rw-r--r--src/ceph/doc/_themes/ceph/theme.conf4
-rw-r--r--src/ceph/doc/api/index.rst45
-rw-r--r--src/ceph/doc/api/libcephfs-java.rst9
-rw-r--r--src/ceph/doc/architecture.rst1602
-rw-r--r--src/ceph/doc/ceph-volume/index.rst64
-rw-r--r--src/ceph/doc/ceph-volume/intro.rst19
-rw-r--r--src/ceph/doc/ceph-volume/lvm/activate.rst88
-rw-r--r--src/ceph/doc/ceph-volume/lvm/create.rst24
-rw-r--r--src/ceph/doc/ceph-volume/lvm/index.rst28
-rw-r--r--src/ceph/doc/ceph-volume/lvm/list.rst173
-rw-r--r--src/ceph/doc/ceph-volume/lvm/prepare.rst241
-rw-r--r--src/ceph/doc/ceph-volume/lvm/scan.rst9
-rw-r--r--src/ceph/doc/ceph-volume/lvm/systemd.rst28
-rw-r--r--src/ceph/doc/ceph-volume/lvm/zap.rst19
-rw-r--r--src/ceph/doc/ceph-volume/simple/activate.rst80
-rw-r--r--src/ceph/doc/ceph-volume/simple/index.rst19
-rw-r--r--src/ceph/doc/ceph-volume/simple/scan.rst158
-rw-r--r--src/ceph/doc/ceph-volume/simple/systemd.rst28
-rw-r--r--src/ceph/doc/ceph-volume/systemd.rst49
-rw-r--r--src/ceph/doc/cephfs/administration.rst198
-rw-r--r--src/ceph/doc/cephfs/best-practices.rst88
-rw-r--r--src/ceph/doc/cephfs/capabilities.rst111
-rw-r--r--src/ceph/doc/cephfs/cephfs-journal-tool.rst238
-rw-r--r--src/ceph/doc/cephfs/client-auth.rst102
-rw-r--r--src/ceph/doc/cephfs/client-config-ref.rst214
-rw-r--r--src/ceph/doc/cephfs/createfs.rst62
-rw-r--r--src/ceph/doc/cephfs/dirfrags.rst100
-rw-r--r--src/ceph/doc/cephfs/disaster-recovery.rst280
-rw-r--r--src/ceph/doc/cephfs/eviction.rst190
-rw-r--r--src/ceph/doc/cephfs/experimental-features.rst107
-rw-r--r--src/ceph/doc/cephfs/file-layouts.rst215
-rw-r--r--src/ceph/doc/cephfs/fstab.rst46
-rw-r--r--src/ceph/doc/cephfs/full.rst60
-rw-r--r--src/ceph/doc/cephfs/fuse.rst52
-rw-r--r--src/ceph/doc/cephfs/hadoop.rst202
-rw-r--r--src/ceph/doc/cephfs/health-messages.rst127
-rw-r--r--src/ceph/doc/cephfs/index.rst116
-rw-r--r--src/ceph/doc/cephfs/journaler.rst41
-rw-r--r--src/ceph/doc/cephfs/kernel.rst37
-rw-r--r--src/ceph/doc/cephfs/mantle.rst263
-rw-r--r--src/ceph/doc/cephfs/mds-config-ref.rst629
-rw-r--r--src/ceph/doc/cephfs/multimds.rst147
-rw-r--r--src/ceph/doc/cephfs/posix.rst49
-rw-r--r--src/ceph/doc/cephfs/quota.rst70
-rw-r--r--src/ceph/doc/cephfs/standby.rst222
-rw-r--r--src/ceph/doc/cephfs/troubleshooting.rst160
-rw-r--r--src/ceph/doc/cephfs/upgrading.rst34
-rw-r--r--src/ceph/doc/changelog/v0.48.1argonaut.txt1286
-rw-r--r--src/ceph/doc/changelog/v0.48.2argonaut.txt476
-rw-r--r--src/ceph/doc/changelog/v0.48.3argonaut.txt895
-rw-r--r--src/ceph/doc/changelog/v0.56.1.txt316
-rw-r--r--src/ceph/doc/changelog/v0.56.2.txt1294
-rw-r--r--src/ceph/doc/changelog/v0.56.3.txt562
-rw-r--r--src/ceph/doc/changelog/v0.56.4.txt1126
-rw-r--r--src/ceph/doc/changelog/v0.56.5.txt1972
-rw-r--r--src/ceph/doc/changelog/v0.56.6.txt40
-rw-r--r--src/ceph/doc/changelog/v0.56.7.txt454
-rw-r--r--src/ceph/doc/changelog/v0.61.1.txt139
-rw-r--r--src/ceph/doc/changelog/v0.61.2.txt27
-rw-r--r--src/ceph/doc/changelog/v0.61.3.txt831
-rw-r--r--src/ceph/doc/changelog/v0.61.4.txt823
-rw-r--r--src/ceph/doc/changelog/v0.61.5.txt1199
-rw-r--r--src/ceph/doc/changelog/v0.61.6.txt75
-rw-r--r--src/ceph/doc/changelog/v0.61.7.txt220
-rw-r--r--src/ceph/doc/changelog/v0.61.8.txt810
-rw-r--r--src/ceph/doc/changelog/v0.61.9.txt571
-rw-r--r--src/ceph/doc/changelog/v0.67.1.txt142
-rw-r--r--src/ceph/doc/changelog/v0.67.10.txt669
-rw-r--r--src/ceph/doc/changelog/v0.67.11.txt215
-rw-r--r--src/ceph/doc/changelog/v0.67.2.txt207
-rw-r--r--src/ceph/doc/changelog/v0.67.3.txt700
-rw-r--r--src/ceph/doc/changelog/v0.67.4.txt550
-rw-r--r--src/ceph/doc/changelog/v0.67.5.txt711
-rw-r--r--src/ceph/doc/changelog/v0.67.6.txt1258
-rw-r--r--src/ceph/doc/changelog/v0.67.7.txt110
-rw-r--r--src/ceph/doc/changelog/v0.67.8.txt1220
-rw-r--r--src/ceph/doc/changelog/v0.67.9.txt233
-rw-r--r--src/ceph/doc/changelog/v0.72.2.txt189
-rw-r--r--src/ceph/doc/changelog/v0.80.1.txt216
-rw-r--r--src/ceph/doc/changelog/v0.80.10.txt3308
-rw-r--r--src/ceph/doc/changelog/v0.80.11.txt3184
-rw-r--r--src/ceph/doc/changelog/v0.80.2.txt1187
-rw-r--r--src/ceph/doc/changelog/v0.80.3.txt19
-rw-r--r--src/ceph/doc/changelog/v0.80.4.txt36
-rw-r--r--src/ceph/doc/changelog/v0.80.5.txt354
-rw-r--r--src/ceph/doc/changelog/v0.80.6.txt3266
-rw-r--r--src/ceph/doc/changelog/v0.80.7.txt70
-rw-r--r--src/ceph/doc/changelog/v0.80.8.txt2547
-rw-r--r--src/ceph/doc/changelog/v0.80.9.txt1148
-rw-r--r--src/ceph/doc/changelog/v0.87.1.txt2151
-rw-r--r--src/ceph/doc/changelog/v0.87.2.txt1413
-rw-r--r--src/ceph/doc/changelog/v0.94.1.txt74
-rw-r--r--src/ceph/doc/changelog/v0.94.10.txt2728
-rw-r--r--src/ceph/doc/changelog/v0.94.2.txt1563
-rw-r--r--src/ceph/doc/changelog/v0.94.3.txt2660
-rw-r--r--src/ceph/doc/changelog/v0.94.4.txt3576
-rw-r--r--src/ceph/doc/changelog/v0.94.5.txt86
-rw-r--r--src/ceph/doc/changelog/v0.94.6.txt4027
-rw-r--r--src/ceph/doc/changelog/v0.94.7.txt3179
-rw-r--r--src/ceph/doc/changelog/v0.94.8.txt2059
-rw-r--r--src/ceph/doc/changelog/v0.94.9.txt72
-rw-r--r--src/ceph/doc/changelog/v10.2.1.txt2249
-rw-r--r--src/ceph/doc/changelog/v10.2.2.txt3002
-rw-r--r--src/ceph/doc/changelog/v10.2.3.txt5957
-rw-r--r--src/ceph/doc/changelog/v10.2.4.txt4586
-rw-r--r--src/ceph/doc/changelog/v10.2.5.txt37
-rw-r--r--src/ceph/doc/changelog/v10.2.6.txt5165
-rw-r--r--src/ceph/doc/changelog/v10.2.7.txt1530
-rw-r--r--src/ceph/doc/changelog/v10.2.8.txt5435
-rw-r--r--src/ceph/doc/changelog/v10.2.9.txt63
-rw-r--r--src/ceph/doc/changelog/v9.2.1.txt1637
-rw-r--r--src/ceph/doc/conf.py68
-rw-r--r--src/ceph/doc/dev/PlanningImplementation.txt43
-rw-r--r--src/ceph/doc/dev/blkin.rst167
-rw-r--r--src/ceph/doc/dev/bluestore.rst85
-rw-r--r--src/ceph/doc/dev/cache-pool.rst200
-rw-r--r--src/ceph/doc/dev/ceph-disk.rst61
-rw-r--r--src/ceph/doc/dev/ceph-volume/index.rst13
-rw-r--r--src/ceph/doc/dev/ceph-volume/lvm.rst127
-rw-r--r--src/ceph/doc/dev/ceph-volume/plugins.rst65
-rw-r--r--src/ceph/doc/dev/ceph-volume/systemd.rst37
-rw-r--r--src/ceph/doc/dev/cephfs-snapshots.rst114
-rw-r--r--src/ceph/doc/dev/cephx_protocol.rst335
-rw-r--r--src/ceph/doc/dev/config.rst157
-rw-r--r--src/ceph/doc/dev/confusing.txt36
-rw-r--r--src/ceph/doc/dev/context.rst20
-rw-r--r--src/ceph/doc/dev/corpus.rst95
-rw-r--r--src/ceph/doc/dev/cpu-profiler.rst54
-rw-r--r--src/ceph/doc/dev/delayed-delete.rst12
-rw-r--r--src/ceph/doc/dev/dev_cluster_deployement.rst121
-rw-r--r--src/ceph/doc/dev/development-workflow.rst250
-rw-r--r--src/ceph/doc/dev/documenting.rst132
-rw-r--r--src/ceph/doc/dev/erasure-coded-pool.rst137
-rw-r--r--src/ceph/doc/dev/file-striping.rst161
-rw-r--r--src/ceph/doc/dev/freebsd.rst58
-rw-r--r--src/ceph/doc/dev/generatedocs.rst56
-rw-r--r--src/ceph/doc/dev/index-old.rst42
-rw-r--r--src/ceph/doc/dev/index.rst1558
-rw-r--r--src/ceph/doc/dev/kernel-client-troubleshooting.rst17
-rw-r--r--src/ceph/doc/dev/libs.rst18
-rw-r--r--src/ceph/doc/dev/logging.rst106
-rw-r--r--src/ceph/doc/dev/logs.rst57
-rw-r--r--src/ceph/doc/dev/mds_internals/data-structures.rst36
-rw-r--r--src/ceph/doc/dev/mds_internals/exports.rst76
-rw-r--r--src/ceph/doc/dev/mds_internals/index.rst10
-rw-r--r--src/ceph/doc/dev/messenger.rst33
-rw-r--r--src/ceph/doc/dev/mon-bootstrap.rst199
-rw-r--r--src/ceph/doc/dev/msgr2.rst250
-rw-r--r--src/ceph/doc/dev/network-encoding.rst214
-rw-r--r--src/ceph/doc/dev/network-protocol.rst197
-rw-r--r--src/ceph/doc/dev/object-store.rst70
-rw-r--r--src/ceph/doc/dev/osd-class-path.rst16
-rw-r--r--src/ceph/doc/dev/osd_internals/backfill_reservation.rst38
-rw-r--r--src/ceph/doc/dev/osd_internals/erasure_coding.rst82
-rw-r--r--src/ceph/doc/dev/osd_internals/erasure_coding/developer_notes.rst223
-rw-r--r--src/ceph/doc/dev/osd_internals/erasure_coding/ecbackend.rst207
-rw-r--r--src/ceph/doc/dev/osd_internals/erasure_coding/jerasure.rst33
-rw-r--r--src/ceph/doc/dev/osd_internals/erasure_coding/proposals.rst385
-rw-r--r--src/ceph/doc/dev/osd_internals/index.rst10
-rw-r--r--src/ceph/doc/dev/osd_internals/last_epoch_started.rst60
-rw-r--r--src/ceph/doc/dev/osd_internals/log_based_pg.rst206
-rw-r--r--src/ceph/doc/dev/osd_internals/map_message_handling.rst131
-rw-r--r--src/ceph/doc/dev/osd_internals/osd_overview.rst106
-rw-r--r--src/ceph/doc/dev/osd_internals/osd_throttles.rst93
-rw-r--r--src/ceph/doc/dev/osd_internals/osd_throttles.txt21
-rw-r--r--src/ceph/doc/dev/osd_internals/pg.rst31
-rw-r--r--src/ceph/doc/dev/osd_internals/pg_removal.rst56
-rw-r--r--src/ceph/doc/dev/osd_internals/pgpool.rst22
-rw-r--r--src/ceph/doc/dev/osd_internals/recovery_reservation.rst75
-rw-r--r--src/ceph/doc/dev/osd_internals/scrub.rst30
-rw-r--r--src/ceph/doc/dev/osd_internals/snaps.rst128
-rw-r--r--src/ceph/doc/dev/osd_internals/watch_notify.rst81
-rw-r--r--src/ceph/doc/dev/osd_internals/wbthrottle.rst28
-rw-r--r--src/ceph/doc/dev/peering.rst259
-rw-r--r--src/ceph/doc/dev/perf.rst39
-rw-r--r--src/ceph/doc/dev/perf_counters.rst198
-rw-r--r--src/ceph/doc/dev/perf_histograms.rst677
-rw-r--r--src/ceph/doc/dev/placement-group.rst151
-rw-r--r--src/ceph/doc/dev/quick_guide.rst131
-rw-r--r--src/ceph/doc/dev/rados-client-protocol.rst117
-rw-r--r--src/ceph/doc/dev/radosgw/admin/adminops_nonimplemented.rst495
-rw-r--r--src/ceph/doc/dev/radosgw/index.rst13
-rw-r--r--src/ceph/doc/dev/radosgw/s3_compliance.rst304
-rw-r--r--src/ceph/doc/dev/radosgw/usage.rst84
-rw-r--r--src/ceph/doc/dev/rbd-diff.rst146
-rw-r--r--src/ceph/doc/dev/rbd-export.rst84
-rw-r--r--src/ceph/doc/dev/rbd-layering.rst281
-rw-r--r--src/ceph/doc/dev/release-process.rst173
-rw-r--r--src/ceph/doc/dev/repo-access.rst38
-rw-r--r--src/ceph/doc/dev/sepia.rst9
-rw-r--r--src/ceph/doc/dev/session_authentication.rst160
-rw-r--r--src/ceph/doc/dev/versions.rst42
-rw-r--r--src/ceph/doc/dev/wireshark.rst41
-rw-r--r--src/ceph/doc/favicon.icobin1150 -> 0 bytes
-rw-r--r--src/ceph/doc/glossary.rst187
-rw-r--r--src/ceph/doc/images/CRUSH.jpgbin90271 -> 0 bytes
-rw-r--r--src/ceph/doc/images/RADOS.jpgbin58212 -> 0 bytes
-rw-r--r--src/ceph/doc/images/RBD.jpgbin71953 -> 0 bytes
-rw-r--r--src/ceph/doc/images/RDBSnapshots.jpgbin43211 -> 0 bytes
-rw-r--r--src/ceph/doc/images/docreviewprocess.jpgbin26248 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_chap.pngbin19668 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_conf.pngbin58300 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_disc.pngbin16505 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_general.pngbin9136 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_rescan.pngbin62103 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_select_device.pngbin63316 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/esx_iscsi_select_mru.pngbin18346 -> 0 bytes
-rw-r--r--src/ceph/doc/images/region-sync.pngbin68497 -> 0 bytes
-rw-r--r--src/ceph/doc/images/region-sync.svg30426
-rw-r--r--src/ceph/doc/images/rgw-encryption-barbican.pngbin14440 -> 0 bytes
-rw-r--r--src/ceph/doc/images/stack.pngbin16414 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_advanced_window.pngbin21371 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_connect_to_target.pngbin6956 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_devices_mpio.pngbin10913 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_discovery_tab.pngbin21808 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_target_tab.pngbin20594 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_iscsi_target_tab2.pngbin22340 -> 0 bytes
-rw-r--r--src/ceph/doc/images/win2016_mpclaim_output.pngbin18464 -> 0 bytes
-rwxr-xr-xsrc/ceph/doc/images/win2016_mpio_set_failover_only.pngbin13334 -> 0 bytes
-rw-r--r--src/ceph/doc/images/zone-sync.pngbin47495 -> 0 bytes
-rw-r--r--src/ceph/doc/images/zone-sync.svg21935
-rw-r--r--src/ceph/doc/images/zone-sync2.pngbin51158 -> 0 bytes
-rw-r--r--src/ceph/doc/index.rst108
-rw-r--r--src/ceph/doc/install/build-ceph.rst102
-rw-r--r--src/ceph/doc/install/clone-source.rst101
-rw-r--r--src/ceph/doc/install/get-packages.rst436
-rw-r--r--src/ceph/doc/install/get-tarballs.rst14
-rw-r--r--src/ceph/doc/install/index.rst71
-rw-r--r--src/ceph/doc/install/install-ceph-deploy.rst23
-rw-r--r--src/ceph/doc/install/install-ceph-gateway.rst605
-rw-r--r--src/ceph/doc/install/install-storage-cluster.rst91
-rw-r--r--src/ceph/doc/install/install-vm-cloud.rst128
-rw-r--r--src/ceph/doc/install/manual-deployment.rst488
-rw-r--r--src/ceph/doc/install/manual-freebsd-deployment.rst623
-rw-r--r--src/ceph/doc/install/mirrors.rst67
-rw-r--r--src/ceph/doc/install/upgrading-ceph.rst746
-rw-r--r--src/ceph/doc/logo.pngbin3898 -> 0 bytes
-rw-r--r--src/ceph/doc/man/8/CMakeLists.txt85
-rw-r--r--src/ceph/doc/man/8/ceph-authtool.rst204
-rw-r--r--src/ceph/doc/man/8/ceph-bluestore-tool.rst123
-rw-r--r--src/ceph/doc/man/8/ceph-clsinfo.rst49
-rw-r--r--src/ceph/doc/man/8/ceph-conf.rst129
-rw-r--r--src/ceph/doc/man/8/ceph-create-keys.rst67
-rw-r--r--src/ceph/doc/man/8/ceph-debugpack.rst50
-rw-r--r--src/ceph/doc/man/8/ceph-dencoder.rst151
-rw-r--r--src/ceph/doc/man/8/ceph-deploy.rst609
-rw-r--r--src/ceph/doc/man/8/ceph-detect-init.rst65
-rw-r--r--src/ceph/doc/man/8/ceph-disk.rst97
-rw-r--r--src/ceph/doc/man/8/ceph-fuse.rst64
-rw-r--r--src/ceph/doc/man/8/ceph-kvstore-tool.rst85
-rw-r--r--src/ceph/doc/man/8/ceph-mds.rst87
-rw-r--r--src/ceph/doc/man/8/ceph-mon.rst94
-rw-r--r--src/ceph/doc/man/8/ceph-osd.rst134
-rw-r--r--src/ceph/doc/man/8/ceph-post-file.rst71
-rw-r--r--src/ceph/doc/man/8/ceph-rbdnamer.rst41
-rw-r--r--src/ceph/doc/man/8/ceph-rest-api.rst150
-rw-r--r--src/ceph/doc/man/8/ceph-run.rst45
-rw-r--r--src/ceph/doc/man/8/ceph-syn.rst99
-rw-r--r--src/ceph/doc/man/8/ceph-volume-systemd.rst56
-rw-r--r--src/ceph/doc/man/8/ceph-volume.rst122
-rw-r--r--src/ceph/doc/man/8/ceph.rst1550
-rw-r--r--src/ceph/doc/man/8/crushtool.rst284
-rw-r--r--src/ceph/doc/man/8/librados-config.rst46
-rw-r--r--src/ceph/doc/man/8/monmaptool.rst107
-rw-r--r--src/ceph/doc/man/8/mount.ceph.rst168
-rw-r--r--src/ceph/doc/man/8/osdmaptool.rst157
-rw-r--r--src/ceph/doc/man/8/rados.rst223
-rw-r--r--src/ceph/doc/man/8/radosgw-admin.rst504
-rw-r--r--src/ceph/doc/man/8/radosgw.rst256
-rw-r--r--src/ceph/doc/man/8/rbd-fuse.rst56
-rw-r--r--src/ceph/doc/man/8/rbd-ggate.rst79
-rw-r--r--src/ceph/doc/man/8/rbd-mirror.rst75
-rw-r--r--src/ceph/doc/man/8/rbd-nbd.rst67
-rw-r--r--src/ceph/doc/man/8/rbd-replay-many.rst73
-rw-r--r--src/ceph/doc/man/8/rbd-replay-prep.rst55
-rw-r--r--src/ceph/doc/man/8/rbd-replay.rst78
-rw-r--r--src/ceph/doc/man/8/rbd.rst615
-rw-r--r--src/ceph/doc/man/8/rbdmap.rst123
-rw-r--r--src/ceph/doc/man/CMakeLists.txt15
-rw-r--r--src/ceph/doc/mgr/administrator.rst159
-rw-r--r--src/ceph/doc/mgr/dashboard.rst59
-rw-r--r--src/ceph/doc/mgr/index.rst36
-rw-r--r--src/ceph/doc/mgr/influx.rst162
-rw-r--r--src/ceph/doc/mgr/localpool.rst35
-rw-r--r--src/ceph/doc/mgr/plugins.rst215
-rw-r--r--src/ceph/doc/mgr/prometheus.rst219
-rw-r--r--src/ceph/doc/mgr/restful.rst89
-rw-r--r--src/ceph/doc/mgr/zabbix.rst104
-rw-r--r--src/ceph/doc/mon/README.txt27
-rw-r--r--src/ceph/doc/mon/paxos-call-chain.dot82
-rw-r--r--src/ceph/doc/rados/api/index.rst22
-rw-r--r--src/ceph/doc/rados/api/librados-intro.rst1003
-rw-r--r--src/ceph/doc/rados/api/librados.rst187
-rw-r--r--src/ceph/doc/rados/api/libradospp.rst5
-rw-r--r--src/ceph/doc/rados/api/objclass-sdk.rst37
-rw-r--r--src/ceph/doc/rados/api/python.rst397
-rw-r--r--src/ceph/doc/rados/command/list-inconsistent-obj.json195
-rw-r--r--src/ceph/doc/rados/command/list-inconsistent-snap.json87
-rw-r--r--src/ceph/doc/rados/configuration/auth-config-ref.rst432
-rw-r--r--src/ceph/doc/rados/configuration/bluestore-config-ref.rst297
-rw-r--r--src/ceph/doc/rados/configuration/ceph-conf.rst629
-rw-r--r--src/ceph/doc/rados/configuration/demo-ceph.conf31
-rw-r--r--src/ceph/doc/rados/configuration/filestore-config-ref.rst365
-rw-r--r--src/ceph/doc/rados/configuration/general-config-ref.rst66
-rw-r--r--src/ceph/doc/rados/configuration/index.rst64
-rw-r--r--src/ceph/doc/rados/configuration/journal-ref.rst116
-rw-r--r--src/ceph/doc/rados/configuration/mon-config-ref.rst1222
-rw-r--r--src/ceph/doc/rados/configuration/mon-lookup-dns.rst51
-rw-r--r--src/ceph/doc/rados/configuration/mon-osd-interaction.rst408
-rw-r--r--src/ceph/doc/rados/configuration/ms-ref.rst154
-rw-r--r--src/ceph/doc/rados/configuration/network-config-ref.rst494
-rw-r--r--src/ceph/doc/rados/configuration/osd-config-ref.rst1105
-rw-r--r--src/ceph/doc/rados/configuration/pool-pg-config-ref.rst270
-rw-r--r--src/ceph/doc/rados/configuration/pool-pg.conf20
-rw-r--r--src/ceph/doc/rados/configuration/storage-devices.rst83
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-admin.rst38
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-install.rst46
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-keys.rst32
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-mds.rst46
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-mon.rst56
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-new.rst66
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-osd.rst121
-rw-r--r--src/ceph/doc/rados/deployment/ceph-deploy-purge.rst25
-rw-r--r--src/ceph/doc/rados/deployment/index.rst58
-rw-r--r--src/ceph/doc/rados/deployment/preflight-checklist.rst109
-rw-r--r--src/ceph/doc/rados/index.rst76
-rw-r--r--src/ceph/doc/rados/man/index.rst34
-rw-r--r--src/ceph/doc/rados/operations/add-or-rm-mons.rst370
-rw-r--r--src/ceph/doc/rados/operations/add-or-rm-osds.rst366
-rw-r--r--src/ceph/doc/rados/operations/cache-tiering.rst461
-rw-r--r--src/ceph/doc/rados/operations/control.rst453
-rw-r--r--src/ceph/doc/rados/operations/crush-map-edits.rst654
-rw-r--r--src/ceph/doc/rados/operations/crush-map.rst956
-rw-r--r--src/ceph/doc/rados/operations/data-placement.rst37
-rw-r--r--src/ceph/doc/rados/operations/erasure-code-isa.rst105
-rw-r--r--src/ceph/doc/rados/operations/erasure-code-jerasure.rst120
-rw-r--r--src/ceph/doc/rados/operations/erasure-code-lrc.rst371
-rw-r--r--src/ceph/doc/rados/operations/erasure-code-profile.rst121
-rw-r--r--src/ceph/doc/rados/operations/erasure-code-shec.rst144
-rw-r--r--src/ceph/doc/rados/operations/erasure-code.rst195
-rw-r--r--src/ceph/doc/rados/operations/health-checks.rst527
-rw-r--r--src/ceph/doc/rados/operations/index.rst90
-rw-r--r--src/ceph/doc/rados/operations/monitoring-osd-pg.rst617
-rw-r--r--src/ceph/doc/rados/operations/monitoring.rst351
-rw-r--r--src/ceph/doc/rados/operations/operating.rst251
-rw-r--r--src/ceph/doc/rados/operations/pg-concepts.rst102
-rw-r--r--src/ceph/doc/rados/operations/pg-repair.rst4
-rw-r--r--src/ceph/doc/rados/operations/pg-states.rst80
-rw-r--r--src/ceph/doc/rados/operations/placement-groups.rst469
-rw-r--r--src/ceph/doc/rados/operations/pools.rst798
-rw-r--r--src/ceph/doc/rados/operations/upmap.rst75
-rw-r--r--src/ceph/doc/rados/operations/user-management.rst665
-rw-r--r--src/ceph/doc/rados/troubleshooting/community.rst29
-rw-r--r--src/ceph/doc/rados/troubleshooting/cpu-profiling.rst67
-rw-r--r--src/ceph/doc/rados/troubleshooting/index.rst19
-rw-r--r--src/ceph/doc/rados/troubleshooting/log-and-debug.rst550
-rw-r--r--src/ceph/doc/rados/troubleshooting/memory-profiling.rst142
-rw-r--r--src/ceph/doc/rados/troubleshooting/troubleshooting-mon.rst567
-rw-r--r--src/ceph/doc/rados/troubleshooting/troubleshooting-osd.rst536
-rw-r--r--src/ceph/doc/rados/troubleshooting/troubleshooting-pg.rst668
-rw-r--r--src/ceph/doc/radosgw/admin.rst528
-rw-r--r--src/ceph/doc/radosgw/adminops.rst1946
-rw-r--r--src/ceph/doc/radosgw/api.rst14
-rw-r--r--src/ceph/doc/radosgw/barbican.rst120
-rw-r--r--src/ceph/doc/radosgw/bucketpolicy.rst133
-rw-r--r--src/ceph/doc/radosgw/compression.rst79
-rw-r--r--src/ceph/doc/radosgw/config-ref.rst850
-rw-r--r--src/ceph/doc/radosgw/encryption.rst56
-rw-r--r--src/ceph/doc/radosgw/index.rst59
-rw-r--r--src/ceph/doc/radosgw/keystone.rst145
-rw-r--r--src/ceph/doc/radosgw/layout.rst208
-rw-r--r--src/ceph/doc/radosgw/ldap-auth.rst138
-rw-r--r--src/ceph/doc/radosgw/multisite.rst1459
-rw-r--r--src/ceph/doc/radosgw/multitenancy.rst107
-rw-r--r--src/ceph/doc/radosgw/nfs.rst366
-rw-r--r--src/ceph/doc/radosgw/pools.rst55
-rw-r--r--src/ceph/doc/radosgw/s3.rst95
-rw-r--r--src/ceph/doc/radosgw/s3/authentication.rst75
-rw-r--r--src/ceph/doc/radosgw/s3/bucketops.rst377
-rw-r--r--src/ceph/doc/radosgw/s3/commons.rst111
-rw-r--r--src/ceph/doc/radosgw/s3/cpp.rst331
-rw-r--r--src/ceph/doc/radosgw/s3/csharp.rst199
-rw-r--r--src/ceph/doc/radosgw/s3/java.rst212
-rw-r--r--src/ceph/doc/radosgw/s3/objectops.rst403
-rw-r--r--src/ceph/doc/radosgw/s3/perl.rst192
-rw-r--r--src/ceph/doc/radosgw/s3/php.rst208
-rw-r--r--src/ceph/doc/radosgw/s3/python.rst171
-rw-r--r--src/ceph/doc/radosgw/s3/ruby.rst364
-rw-r--r--src/ceph/doc/radosgw/s3/serviceops.rst39
-rw-r--r--src/ceph/doc/radosgw/swift.rst75
-rw-r--r--src/ceph/doc/radosgw/swift/auth.rst77
-rw-r--r--src/ceph/doc/radosgw/swift/containerops.rst279
-rw-r--r--src/ceph/doc/radosgw/swift/java.rst175
-rw-r--r--src/ceph/doc/radosgw/swift/objectops.rst271
-rw-r--r--src/ceph/doc/radosgw/swift/python.rst114
-rw-r--r--src/ceph/doc/radosgw/swift/ruby.rst119
-rw-r--r--src/ceph/doc/radosgw/swift/serviceops.rst76
-rw-r--r--src/ceph/doc/radosgw/swift/tempurl.rst84
-rw-r--r--src/ceph/doc/radosgw/swift/tutorial.rst60
-rw-r--r--src/ceph/doc/radosgw/troubleshooting.rst179
-rw-r--r--src/ceph/doc/rbd/api/index.rst8
-rw-r--r--src/ceph/doc/rbd/api/librbdpy.rst82
-rw-r--r--src/ceph/doc/rbd/disk.conf8
-rw-r--r--src/ceph/doc/rbd/index.rst72
-rw-r--r--src/ceph/doc/rbd/iscsi-initiator-esx.rst36
-rw-r--r--src/ceph/doc/rbd/iscsi-initiator-rhel.rst90
-rw-r--r--src/ceph/doc/rbd/iscsi-initiator-win.rst100
-rw-r--r--src/ceph/doc/rbd/iscsi-initiators.rst10
-rw-r--r--src/ceph/doc/rbd/iscsi-monitoring.rst103
-rw-r--r--src/ceph/doc/rbd/iscsi-overview.rst50
-rw-r--r--src/ceph/doc/rbd/iscsi-requirements.rst49
-rw-r--r--src/ceph/doc/rbd/iscsi-target-ansible.rst343
-rw-r--r--src/ceph/doc/rbd/iscsi-target-cli.rst163
-rw-r--r--src/ceph/doc/rbd/iscsi-targets.rst27
-rw-r--r--src/ceph/doc/rbd/libvirt.rst319
-rw-r--r--src/ceph/doc/rbd/man/index.rst16
-rw-r--r--src/ceph/doc/rbd/qemu-rbd.rst218
-rw-r--r--src/ceph/doc/rbd/rados-rbd-cmds.rst223
-rw-r--r--src/ceph/doc/rbd/rbd-cloudstack.rst135
-rw-r--r--src/ceph/doc/rbd/rbd-config-ref.rst136
-rw-r--r--src/ceph/doc/rbd/rbd-ko.rst59
-rw-r--r--src/ceph/doc/rbd/rbd-mirroring.rst318
-rw-r--r--src/ceph/doc/rbd/rbd-openstack.rst512
-rw-r--r--src/ceph/doc/rbd/rbd-replay.rst42
-rw-r--r--src/ceph/doc/rbd/rbd-snapshot.rst308
-rw-r--r--src/ceph/doc/release-notes.rst19933
-rw-r--r--src/ceph/doc/releases.rst361
-rwxr-xr-xsrc/ceph/doc/scripts/gen_state_diagram.py214
-rw-r--r--src/ceph/doc/start/ceph.conf41
-rw-r--r--src/ceph/doc/start/documenting-ceph.rst597
-rw-r--r--src/ceph/doc/start/get-involved.rst91
-rw-r--r--src/ceph/doc/start/hardware-recommendations.rst350
-rw-r--r--src/ceph/doc/start/index.rst47
-rw-r--r--src/ceph/doc/start/intro.rst87
-rw-r--r--src/ceph/doc/start/os-recommendations.rst154
-rw-r--r--src/ceph/doc/start/quick-ceph-deploy.rst345
-rw-r--r--src/ceph/doc/start/quick-cephfs.rst119
-rw-r--r--src/ceph/doc/start/quick-common.rst20
-rw-r--r--src/ceph/doc/start/quick-rbd.rst95
-rw-r--r--src/ceph/doc/start/quick-rgw-old.rst30
-rw-r--r--src/ceph/doc/start/quick-rgw.rst101
-rw-r--r--src/ceph/doc/start/quick-start-preflight.rst361
-rw-r--r--src/ceph/doc/start/rgw.conf30
448 files changed, 0 insertions, 226983 deletions
diff --git a/src/ceph/doc/.gitignore b/src/ceph/doc/.gitignore
deleted file mode 100644
index 0c7c747..0000000
--- a/src/ceph/doc/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/overview.png
-/object_store.png
diff --git a/src/ceph/doc/CMakeLists.txt b/src/ceph/doc/CMakeLists.txt
deleted file mode 100644
index e0c30d1..0000000
--- a/src/ceph/doc/CMakeLists.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-if(WITH_MANPAGE)
- add_subdirectory(man)
-endif(WITH_MANPAGE)
diff --git a/src/ceph/doc/_templates/layout.html b/src/ceph/doc/_templates/layout.html
deleted file mode 100644
index c6f5709..0000000
--- a/src/ceph/doc/_templates/layout.html
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends "!layout.html" %}
-
-{%- block extrahead %}
- <script type="text/javascript" src="http://ayni.ceph.com/public/js/ceph.js"></script>
-{% endblock %}
diff --git a/src/ceph/doc/_templates/smarttoc.html b/src/ceph/doc/_templates/smarttoc.html
deleted file mode 100644
index 8ec60cd..0000000
--- a/src/ceph/doc/_templates/smarttoc.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{#
- Sphinx sidebar template: smart table of contents.
-
- Shows a sidebar ToC that gives you a more global view of the
- documentation, and not the confusing cur/prev/next which is the
- default sidebar.
-
- The ToC will open and collapse automatically to show the part of the
- hierarchy you are in. Top-level items will always be visible.
-
-#}
-<h3><a href="{{ pathto(master_doc) }}">{{ _('Table Of Contents') }}</a></h3>
-{{ toctree(maxdepth=-1) }}
-
-<!-- ugly kludge to make genindex look like it's part of the toc -->
-<ul style="margin-top: -10px"><li class="toctree-l1"><a class="reference internal" href="{{ pathto('genindex') }}">Index</a></li></ul>
diff --git a/src/ceph/doc/_themes/ceph/static/nature.css_t b/src/ceph/doc/_themes/ceph/static/nature.css_t
deleted file mode 100644
index 71fb56f..0000000
--- a/src/ceph/doc/_themes/ceph/static/nature.css_t
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * nature.css_t
- * ~~~~~~~~~~~~
- *
- * Sphinx stylesheet -- nature theme.
- *
- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
- * :license: BSD, see LICENSE for details.
- *
- */
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-@import url('http://fonts.googleapis.com/css?family=Titillium+Web:400,300,700');
-
-body {
- font: 14px/1.4 Helvetica, Arial, sans-serif;
- background-color: #E6E8E8;
- color: #37424A;
- margin: 0;
- padding: 0;
- border-top: 5px solid #F05C56;
-}
-
-div.documentwrapper {
- float: left;
- width: 100%;
-}
-
-div.bodywrapper {
- margin: 0 0 0 330px;
-}
-
-hr {
- border: 1px solid #B1B4B6;
-}
-
-div.document {
- background-color: #ffffff;
-}
-
-div.body {
- background-color: #ffffff;
- color: #3E4349;
- padding: 0 30px 30px 30px;
-}
-
-div.footer {
- color: #222B31;
- width: 100%;
- padding: 13px 0;
- text-align: center;
- font-size: 75%;
-}
-
-div.footer a {
- color: #444;
- text-decoration: underline;
-}
-
-div.related {
- background-color: #80D2DC;
- line-height: 32px;
- color: #37424A;
- // text-shadow: 0px 1px 0 #444;
- font-size: 100%;
- border-top: #9C4850 5px solid;
-}
-
-div.related a {
- color: #37424A;
- text-decoration: none;
-}
-
-div.related a:hover {
- color: #fff;
- // text-decoration: underline;
-}
-
-div.sphinxsidebar {
- // font-size: 100%;
- line-height: 1.5em;
- width: 330px;
-}
-
-div.sphinxsidebarwrapper{
- padding: 20px 0;
- background-color: #efefef;
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
- font-family: 'Titillium Web', sans-serif;
- color: #e6e8e8;
- font-size: 1.2em;
- font-weight: 500;
- margin: 0;
- padding: 5px 10px;
- background-color: #5e6a71;
- // text-shadow: 1px 1px 0 white;
- text-transform: uppercase;
-}
-
-div.sphinxsidebar h4{
- font-size: 1.1em;
-}
-
-div.sphinxsidebar h3 a {
- color: #e6e8e8;
-}
-
-
-div.sphinxsidebar p {
- color: #888;
- padding: 5px 20px;
-}
-
-div.sphinxsidebar p.topless {
-}
-
-div.sphinxsidebar ul {
- margin: 10px 5px 10px 20px;
- padding: 0;
- color: #000;
-}
-
-div.sphinxsidebar a {
- color: #444;
-}
-
-div.sphinxsidebar input {
- border: 1px solid #ccc;
- font-family: sans-serif;
- font-size: 1em;
-}
-
-div.sphinxsidebar input[type=text]{
- margin-left: 20px;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
- color: #F05C56;
- text-decoration: none;
-}
-
-a:hover {
- color: #F05C56;
- text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
- margin: 30px 0px 10px 0px;
- padding: 5px 0 5px 0px;
- text-transform: uppercase;
-}
-
-div.body h1 { font: 20px/2.0 'Titillium Web'; color: #37424A; border-top: 20px solid white; margin-top: 0; }
-div.body h2 { font: 18px/1.8 'Titillium Web'; background-color: #5E6A71; color: #E6E8E8; padding: 5px 10px; }
-div.body h3 { font: 16px/1.6 'Titillium Web'; color: #37424A; }
-div.body h4 { font: 14px/1.4 Helvetica, Arial, sans-serif; color: #37424A; }
-div.body h5 { font: 12px/1.2 Helvetica, Arial, sans-serif; color: #37424A; }
-div.body h6 { font-size: 100%; color: #37424A; }
-
-// div.body h2 { font-size: 150%; background-color: #E6E8E8; color: #37424A; }
-// div.body h3 { font-size: 120%; background-color: #E6E8E8; color: #37424A; }
-// div.body h4 { font-size: 110%; background-color: #E6E8E8; color: #37424A; }
-// div.body h5 { font-size: 100%; background-color: #E6E8E8; color: #37424A; }
-// div.body h6 { font-size: 100%; background-color: #E6E8E8; color: #37424A; }
-
-a.headerlink {
- color: #c60f0f;
- font-size: 0.8em;
- padding: 0 4px 0 4px;
- text-decoration: none;
-}
-
-a.headerlink:hover {
- background-color: #c60f0f;
- color: white;
-}
-
-div.body p, div.body dd, div.body li {
- line-height: 1.5em;
-}
-
-div.admonition p.admonition-title + p {
- display: inline;
-}
-
-div.highlight {
- background-color: white;
-}
-
-div.note {
- background-color: #e6e8e8;
- border: 1px solid #ccc;
-}
-
-div.seealso {
- background-color: #ffc;
- border: 1px solid #ff6;
-}
-
-div.topic {
- background-color: #efefef;
-}
-
-div.warning {
- background-color: #F05C56;
- border: 1px solid #9C4850;
- color: #fff;
-}
-
-p.admonition-title {
- display: inline;
-}
-
-p.admonition-title:after {
- content: ":";
-}
-
-pre {
- padding: 10px;
- background-color: White;
- color: #222;
- line-height: 1.2em;
- border: 1px solid #5e6a71;
- font-size: 1.1em;
- margin: 1.5em;
- -webkit-box-shadow: 1px 1px 1px #e6e8e8;
- -moz-box-shadow: 1px 1px 1px #e6e8e8;
-}
-
-tt {
- background-color: #ecf0f3;
- color: #222;
- /* padding: 1px 2px; */
- font-size: 15px;
- font-family: monospace;
-}
-
-.viewcode-back {
- font-family: Arial, sans-serif;
-}
-
-div.viewcode-block:target {
- background-color: #f4debf;
- border-top: 1px solid #ac9;
- border-bottom: 1px solid #ac9;
-}
-
-table.docutils {
- margin: 1.5em;
-}
-
-div.sidebar {
- border: 1px solid #5E6A71;
- background-color: #E6E8E8;
-}
-
-div.admonition.tip {
- background-color: #80D2DC;
- border: 1px solid #55AEBA;
-}
-
-div.admonition.important {
- background-color: #F05C56;
- border: 1px solid #9C4850;
- color: #fff;
-}
-
-div.admonition.important a {
- color: #E6E8E8;
-}
-
-div.tip tt.literal {
- background-color: #55aeba;
- color: #fff;
-}
-
-div.important tt.literal {
- background-color: #9C4850;
- color: #fff;
-}
-
-h2 .literal {
- color: #fff;
- background-color: #37424a;
-}
-
-dl.glossary dt {
- font-size: 1.0em;
- padding-top:20px;
-
-}
-
-p.breathe-sectiondef-title {
- font-size: 1.3em;
- font-weight: bold;
- border-bottom: thin solid #5E6A71;
-}
diff --git a/src/ceph/doc/_themes/ceph/theme.conf b/src/ceph/doc/_themes/ceph/theme.conf
deleted file mode 100644
index 1cc4004..0000000
--- a/src/ceph/doc/_themes/ceph/theme.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = nature.css
-pygments_style = tango
diff --git a/src/ceph/doc/api/index.rst b/src/ceph/doc/api/index.rst
deleted file mode 100644
index 67d774c..0000000
--- a/src/ceph/doc/api/index.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-===================
- API Documentation
-===================
-
-
-Ceph Storage Cluster APIs
-=========================
-
-See `Ceph Storage Cluster APIs`_.
-
-.. _Ceph Storage Cluster APIs: ../rados/api/
-
-
-Ceph Filesystem APIs
-====================
-
-See `libcephfs (javadoc)`_.
-
-.. _libcephfs (javadoc): libcephfs-java
-
-
-Ceph Block Device APIs
-======================
-
-See `librbdpy`_.
-
-.. _librbdpy: ../rbd/librbdpy
-
-Ceph RADOS Gateway APIs
-=======================
-
-See `librgw-py`_.
-
-.. _librgw-py: ../radosgw/api
-
-Ceph Object Store APIs
-======================
-
-- See `S3-compatible API`_.
-- See `Swift-compatible API`_.
-- See `Admin Ops API`_.
-
-.. _S3-compatible API: ../radosgw/s3/
-.. _Swift-compatible API: ../radosgw/swift/
-.. _Admin Ops API: ../radosgw/adminops
diff --git a/src/ceph/doc/api/libcephfs-java.rst b/src/ceph/doc/api/libcephfs-java.rst
deleted file mode 100644
index 85b5c31..0000000
--- a/src/ceph/doc/api/libcephfs-java.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-===================
-Libcephfs (JavaDoc)
-===================
-
-..
- The admin/build-docs script runs Ant to build the JavaDoc files, and
- copies them to api/libcephfs-java/javadoc/.
-
-View the auto-generated `JavaDoc pages for the CephFS Java bindings <javadoc/>`_.
diff --git a/src/ceph/doc/architecture.rst b/src/ceph/doc/architecture.rst
deleted file mode 100644
index f9bdfa2..0000000
--- a/src/ceph/doc/architecture.rst
+++ /dev/null
@@ -1,1602 +0,0 @@
-==============
- Architecture
-==============
-
-:term:`Ceph` uniquely delivers **object, block, and file storage** in one
-unified system. Ceph is highly reliable, easy to manage, and free. The power of
-Ceph can transform your company's IT infrastructure and your ability to manage
-vast amounts of data. Ceph delivers extraordinary scalability–thousands of
-clients accessing petabytes to exabytes of data. A :term:`Ceph Node` leverages
-commodity hardware and intelligent daemons, and a :term:`Ceph Storage Cluster`
-accommodates large numbers of nodes, which communicate with each other to
-replicate and redistribute data dynamically.
-
-.. image:: images/stack.png
-
-
-The Ceph Storage Cluster
-========================
-
-Ceph provides an infinitely scalable :term:`Ceph Storage Cluster` based upon
-:abbr:`RADOS (Reliable Autonomic Distributed Object Store)`, which you can read
-about in `RADOS - A Scalable, Reliable Storage Service for Petabyte-scale
-Storage Clusters`_.
-
-A Ceph Storage Cluster consists of two types of daemons:
-
-- :term:`Ceph Monitor`
-- :term:`Ceph OSD Daemon`
-
-.. ditaa:: +---------------+ +---------------+
- | OSDs | | Monitors |
- +---------------+ +---------------+
-
-A Ceph Monitor maintains a master copy of the cluster map. A cluster of Ceph
-monitors ensures high availability should a monitor daemon fail. Storage cluster
-clients retrieve a copy of the cluster map from the Ceph Monitor.
-
-A Ceph OSD Daemon checks its own state and the state of other OSDs and reports
-back to monitors.
-
-Storage cluster clients and each :term:`Ceph OSD Daemon` use the CRUSH algorithm
-to efficiently compute information about data location, instead of having to
-depend on a central lookup table. Ceph's high-level features include providing a
-native interface to the Ceph Storage Cluster via ``librados``, and a number of
-service interfaces built on top of ``librados``.
-
-
-
-Storing Data
-------------
-
-The Ceph Storage Cluster receives data from :term:`Ceph Clients`--whether it
-comes through a :term:`Ceph Block Device`, :term:`Ceph Object Storage`, the
-:term:`Ceph Filesystem` or a custom implementation you create using
-``librados``--and it stores the data as objects. Each object corresponds to a
-file in a filesystem, which is stored on an :term:`Object Storage Device`. Ceph
-OSD Daemons handle the read/write operations on the storage disks.
-
-.. ditaa:: /-----\ +-----+ +-----+
- | obj |------>| {d} |------>| {s} |
- \-----/ +-----+ +-----+
-
- Object File Disk
-
-Ceph OSD Daemons store all data as objects in a flat namespace (e.g., no
-hierarchy of directories). An object has an identifier, binary data, and
-metadata consisting of a set of name/value pairs. The semantics are completely
-up to :term:`Ceph Clients`. For example, CephFS uses metadata to store file
-attributes such as the file owner, created date, last modified date, and so
-forth.
-
-
-.. ditaa:: /------+------------------------------+----------------\
- | ID | Binary Data | Metadata |
- +------+------------------------------+----------------+
- | 1234 | 0101010101010100110101010010 | name1 = value1 |
- | | 0101100001010100110101010010 | name2 = value2 |
- | | 0101100001010100110101010010 | nameN = valueN |
- \------+------------------------------+----------------/
-
-.. note:: An object ID is unique across the entire cluster, not just the local
- filesystem.
-
-
-.. index:: architecture; high availability, scalability
-
-Scalability and High Availability
----------------------------------
-
-In traditional architectures, clients talk to a centralized component (e.g., a
-gateway, broker, API, facade, etc.), which acts as a single point of entry to a
-complex subsystem. This imposes a limit to both performance and scalability,
-while introducing a single point of failure (i.e., if the centralized component
-goes down, the whole system goes down, too).
-
-Ceph eliminates the centralized gateway to enable clients to interact with
-Ceph OSD Daemons directly. Ceph OSD Daemons create object replicas on other
-Ceph Nodes to ensure data safety and high availability. Ceph also uses a cluster
-of monitors to ensure high availability. To eliminate centralization, Ceph
-uses an algorithm called CRUSH.
-
-
-.. index:: CRUSH; architecture
-
-CRUSH Introduction
-~~~~~~~~~~~~~~~~~~
-
-Ceph Clients and Ceph OSD Daemons both use the :abbr:`CRUSH (Controlled
-Replication Under Scalable Hashing)` algorithm to efficiently compute
-information about object location, instead of having to depend on a
-central lookup table. CRUSH provides a better data management mechanism compared
-to older approaches, and enables massive scale by cleanly distributing the work
-to all the clients and OSD daemons in the cluster. CRUSH uses intelligent data
-replication to ensure resiliency, which is better suited to hyper-scale storage.
-The following sections provide additional details on how CRUSH works. For a
-detailed discussion of CRUSH, see `CRUSH - Controlled, Scalable, Decentralized
-Placement of Replicated Data`_.
-
-.. index:: architecture; cluster map
-
-Cluster Map
-~~~~~~~~~~~
-
-Ceph depends upon Ceph Clients and Ceph OSD Daemons having knowledge of the
-cluster topology, which is inclusive of 5 maps collectively referred to as the
-"Cluster Map":
-
-#. **The Monitor Map:** Contains the cluster ``fsid``, the position, name
- address and port of each monitor. It also indicates the current epoch,
- when the map was created, and the last time it changed. To view a monitor
- map, execute ``ceph mon dump``.
-
-#. **The OSD Map:** Contains the cluster ``fsid``, when the map was created and
- last modified, a list of pools, replica sizes, PG numbers, a list of OSDs
- and their status (e.g., ``up``, ``in``). To view an OSD map, execute
- ``ceph osd dump``.
-
-#. **The PG Map:** Contains the PG version, its time stamp, the last OSD
- map epoch, the full ratios, and details on each placement group such as
- the PG ID, the `Up Set`, the `Acting Set`, the state of the PG (e.g.,
- ``active + clean``), and data usage statistics for each pool.
-
-#. **The CRUSH Map:** Contains a list of storage devices, the failure domain
- hierarchy (e.g., device, host, rack, row, room, etc.), and rules for
- traversing the hierarchy when storing data. To view a CRUSH map, execute
- ``ceph osd getcrushmap -o {filename}``; then, decompile it by executing
- ``crushtool -d {comp-crushmap-filename} -o {decomp-crushmap-filename}``.
- You can view the decompiled map in a text editor or with ``cat``.
-
-#. **The MDS Map:** Contains the current MDS map epoch, when the map was
- created, and the last time it changed. It also contains the pool for
- storing metadata, a list of metadata servers, and which metadata servers
- are ``up`` and ``in``. To view an MDS map, execute ``ceph fs dump``.
-
-Each map maintains an iterative history of its operating state changes. Ceph
-Monitors maintain a master copy of the cluster map including the cluster
-members, state, changes, and the overall health of the Ceph Storage Cluster.
-
-.. index:: high availability; monitor architecture
-
-High Availability Monitors
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Before Ceph Clients can read or write data, they must contact a Ceph Monitor
-to obtain the most recent copy of the cluster map. A Ceph Storage Cluster
-can operate with a single monitor; however, this introduces a single
-point of failure (i.e., if the monitor goes down, Ceph Clients cannot
-read or write data).
-
-For added reliability and fault tolerance, Ceph supports a cluster of monitors.
-In a cluster of monitors, latency and other faults can cause one or more
-monitors to fall behind the current state of the cluster. For this reason, Ceph
-must have agreement among various monitor instances regarding the state of the
-cluster. Ceph always uses a majority of monitors (e.g., 1, 2:3, 3:5, 4:6, etc.)
-and the `Paxos`_ algorithm to establish a consensus among the monitors about the
-current state of the cluster.
-
-For details on configuring monitors, see the `Monitor Config Reference`_.
-
-.. index:: architecture; high availability authentication
-
-High Availability Authentication
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To identify users and protect against man-in-the-middle attacks, Ceph provides
-its ``cephx`` authentication system to authenticate users and daemons.
-
-.. note:: The ``cephx`` protocol does not address data encryption in transport
- (e.g., SSL/TLS) or encryption at rest.
-
-Cephx uses shared secret keys for authentication, meaning both the client and
-the monitor cluster have a copy of the client's secret key. The authentication
-protocol is such that both parties are able to prove to each other they have a
-copy of the key without actually revealing it. This provides mutual
-authentication, which means the cluster is sure the user possesses the secret
-key, and the user is sure that the cluster has a copy of the secret key.
-
-A key scalability feature of Ceph is to avoid a centralized interface to the
-Ceph object store, which means that Ceph clients must be able to interact with
-OSDs directly. To protect data, Ceph provides its ``cephx`` authentication
-system, which authenticates users operating Ceph clients. The ``cephx`` protocol
-operates in a manner with behavior similar to `Kerberos`_.
-
-A user/actor invokes a Ceph client to contact a monitor. Unlike Kerberos, each
-monitor can authenticate users and distribute keys, so there is no single point
-of failure or bottleneck when using ``cephx``. The monitor returns an
-authentication data structure similar to a Kerberos ticket that contains a
-session key for use in obtaining Ceph services. This session key is itself
-encrypted with the user's permanent secret key, so that only the user can
-request services from the Ceph Monitor(s). The client then uses the session key
-to request its desired services from the monitor, and the monitor provides the
-client with a ticket that will authenticate the client to the OSDs that actually
-handle data. Ceph Monitors and OSDs share a secret, so the client can use the
-ticket provided by the monitor with any OSD or metadata server in the cluster.
-Like Kerberos, ``cephx`` tickets expire, so an attacker cannot use an expired
-ticket or session key obtained surreptitiously. This form of authentication will
-prevent attackers with access to the communications medium from either creating
-bogus messages under another user's identity or altering another user's
-legitimate messages, as long as the user's secret key is not divulged before it
-expires.
-
-To use ``cephx``, an administrator must set up users first. In the following
-diagram, the ``client.admin`` user invokes ``ceph auth get-or-create-key`` from
-the command line to generate a username and secret key. Ceph's ``auth``
-subsystem generates the username and key, stores a copy with the monitor(s) and
-transmits the user's secret back to the ``client.admin`` user. This means that
-the client and the monitor share a secret key.
-
-.. note:: The ``client.admin`` user must provide the user ID and
- secret key to the user in a secure manner.
-
-.. ditaa:: +---------+ +---------+
- | Client | | Monitor |
- +---------+ +---------+
- | request to |
- | create a user |
- |-------------->|----------+ create user
- | | | and
- |<--------------|<---------+ store key
- | transmit key |
- | |
-
-
-To authenticate with the monitor, the client passes in the user name to the
-monitor, and the monitor generates a session key and encrypts it with the secret
-key associated to the user name. Then, the monitor transmits the encrypted
-ticket back to the client. The client then decrypts the payload with the shared
-secret key to retrieve the session key. The session key identifies the user for
-the current session. The client then requests a ticket on behalf of the user
-signed by the session key. The monitor generates a ticket, encrypts it with the
-user's secret key and transmits it back to the client. The client decrypts the
-ticket and uses it to sign requests to OSDs and metadata servers throughout the
-cluster.
-
-.. ditaa:: +---------+ +---------+
- | Client | | Monitor |
- +---------+ +---------+
- | authenticate |
- |-------------->|----------+ generate and
- | | | encrypt
- |<--------------|<---------+ session key
- | transmit |
- | encrypted |
- | session key |
- | |
- |-----+ decrypt |
- | | session |
- |<----+ key |
- | |
- | req. ticket |
- |-------------->|----------+ generate and
- | | | encrypt
- |<--------------|<---------+ ticket
- | recv. ticket |
- | |
- |-----+ decrypt |
- | | ticket |
- |<----+ |
-
-
-The ``cephx`` protocol authenticates ongoing communications between the client
-machine and the Ceph servers. Each message sent between a client and server,
-subsequent to the initial authentication, is signed using a ticket that the
-monitors, OSDs and metadata servers can verify with their shared secret.
-
-.. ditaa:: +---------+ +---------+ +-------+ +-------+
- | Client | | Monitor | | MDS | | OSD |
- +---------+ +---------+ +-------+ +-------+
- | request to | | |
- | create a user | | |
- |-------------->| mon and | |
- |<--------------| client share | |
- | receive | a secret. | |
- | shared secret | | |
- | |<------------>| |
- | |<-------------+------------>|
- | | mon, mds, | |
- | authenticate | and osd | |
- |-------------->| share | |
- |<--------------| a secret | |
- | session key | | |
- | | | |
- | req. ticket | | |
- |-------------->| | |
- |<--------------| | |
- | recv. ticket | | |
- | | | |
- | make request (CephFS only) | |
- |----------------------------->| |
- |<-----------------------------| |
- | receive response (CephFS only) |
- | |
- | make request |
- |------------------------------------------->|
- |<-------------------------------------------|
- receive response
-
-The protection offered by this authentication is between the Ceph client and the
-Ceph server hosts. The authentication is not extended beyond the Ceph client. If
-the user accesses the Ceph client from a remote host, Ceph authentication is not
-applied to the connection between the user's host and the client host.
-
-
-For configuration details, see `Cephx Config Guide`_. For user management
-details, see `User Management`_.
-
-
-.. index:: architecture; smart daemons and scalability
-
-Smart Daemons Enable Hyperscale
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In many clustered architectures, the primary purpose of cluster membership is
-so that a centralized interface knows which nodes it can access. Then the
-centralized interface provides services to the client through a double
-dispatch--which is a **huge** bottleneck at the petabyte-to-exabyte scale.
-
-Ceph eliminates the bottleneck: Ceph's OSD Daemons AND Ceph Clients are cluster
-aware. Like Ceph clients, each Ceph OSD Daemon knows about other Ceph OSD
-Daemons in the cluster. This enables Ceph OSD Daemons to interact directly with
-other Ceph OSD Daemons and Ceph Monitors. Additionally, it enables Ceph Clients
-to interact directly with Ceph OSD Daemons.
-
-The ability of Ceph Clients, Ceph Monitors and Ceph OSD Daemons to interact with
-each other means that Ceph OSD Daemons can utilize the CPU and RAM of the Ceph
-nodes to easily perform tasks that would bog down a centralized server. The
-ability to leverage this computing power leads to several major benefits:
-
-#. **OSDs Service Clients Directly:** Since any network device has a limit to
- the number of concurrent connections it can support, a centralized system
- has a low physical limit at high scales. By enabling Ceph Clients to contact
- Ceph OSD Daemons directly, Ceph increases both performance and total system
- capacity simultaneously, while removing a single point of failure. Ceph
- Clients can maintain a session when they need to, and with a particular Ceph
- OSD Daemon instead of a centralized server.
-
-#. **OSD Membership and Status**: Ceph OSD Daemons join a cluster and report
- on their status. At the lowest level, the Ceph OSD Daemon status is ``up``
- or ``down`` reflecting whether or not it is running and able to service
- Ceph Client requests. If a Ceph OSD Daemon is ``down`` and ``in`` the Ceph
- Storage Cluster, this status may indicate the failure of the Ceph OSD
- Daemon. If a Ceph OSD Daemon is not running (e.g., it crashes), the Ceph OSD
- Daemon cannot notify the Ceph Monitor that it is ``down``. The OSDs
- periodically send messages to the Ceph Monitor (``MPGStats`` pre-luminous,
- and a new ``MOSDBeacon`` in luminous). If the Ceph Monitor doesn't see that
- message after a configurable period of time then it marks the OSD down.
- This mechanism is a failsafe, however. Normally, Ceph OSD Daemons will
- determine if a neighboring OSD is down and report it to the Ceph Monitor(s).
- This assures that Ceph Monitors are lightweight processes. See `Monitoring
- OSDs`_ and `Heartbeats`_ for additional details.
-
-#. **Data Scrubbing:** As part of maintaining data consistency and cleanliness,
- Ceph OSD Daemons can scrub objects within placement groups. That is, Ceph
- OSD Daemons can compare object metadata in one placement group with its
- replicas in placement groups stored on other OSDs. Scrubbing (usually
- performed daily) catches bugs or filesystem errors. Ceph OSD Daemons also
- perform deeper scrubbing by comparing data in objects bit-for-bit. Deep
- scrubbing (usually performed weekly) finds bad sectors on a drive that
- weren't apparent in a light scrub. See `Data Scrubbing`_ for details on
- configuring scrubbing.
-
-#. **Replication:** Like Ceph Clients, Ceph OSD Daemons use the CRUSH
- algorithm, but the Ceph OSD Daemon uses it to compute where replicas of
- objects should be stored (and for rebalancing). In a typical write scenario,
- a client uses the CRUSH algorithm to compute where to store an object, maps
- the object to a pool and placement group, then looks at the CRUSH map to
- identify the primary OSD for the placement group.
-
- The client writes the object to the identified placement group in the
- primary OSD. Then, the primary OSD with its own copy of the CRUSH map
- identifies the secondary and tertiary OSDs for replication purposes, and
- replicates the object to the appropriate placement groups in the secondary
- and tertiary OSDs (as many OSDs as additional replicas), and responds to the
- client once it has confirmed the object was stored successfully.
-
-.. ditaa::
- +----------+
- | Client |
- | |
- +----------+
- * ^
- Write (1) | | Ack (6)
- | |
- v *
- +-------------+
- | Primary OSD |
- | |
- +-------------+
- * ^ ^ *
- Write (2) | | | | Write (3)
- +------+ | | +------+
- | +------+ +------+ |
- | | Ack (4) Ack (5)| |
- v * * v
- +---------------+ +---------------+
- | Secondary OSD | | Tertiary OSD |
- | | | |
- +---------------+ +---------------+
-
-With the ability to perform data replication, Ceph OSD Daemons relieve Ceph
-clients from that duty, while ensuring high data availability and data safety.
-
-
-Dynamic Cluster Management
---------------------------
-
-In the `Scalability and High Availability`_ section, we explained how Ceph uses
-CRUSH, cluster awareness and intelligent daemons to scale and maintain high
-availability. Key to Ceph's design is the autonomous, self-healing, and
-intelligent Ceph OSD Daemon. Let's take a deeper look at how CRUSH works to
-enable modern cloud storage infrastructures to place data, rebalance the cluster
-and recover from faults dynamically.
-
-.. index:: architecture; pools
-
-About Pools
-~~~~~~~~~~~
-
-The Ceph storage system supports the notion of 'Pools', which are logical
-partitions for storing objects.
-
-Ceph Clients retrieve a `Cluster Map`_ from a Ceph Monitor, and write objects to
-pools. The pool's ``size`` or number of replicas, the CRUSH ruleset and the
-number of placement groups determine how Ceph will place the data.
-
-.. ditaa::
- +--------+ Retrieves +---------------+
- | Client |------------>| Cluster Map |
- +--------+ +---------------+
- |
- v Writes
- /-----\
- | obj |
- \-----/
- | To
- v
- +--------+ +---------------+
- | Pool |---------->| CRUSH Ruleset |
- +--------+ Selects +---------------+
-
-
-Pools set at least the following parameters:
-
-- Ownership/Access to Objects
-- The Number of Placement Groups, and
-- The CRUSH Ruleset to Use.
-
-See `Set Pool Values`_ for details.
-
-
-.. index: architecture; placement group mapping
-
-Mapping PGs to OSDs
-~~~~~~~~~~~~~~~~~~~
-
-Each pool has a number of placement groups. CRUSH maps PGs to OSDs dynamically.
-When a Ceph Client stores objects, CRUSH will map each object to a placement
-group.
-
-Mapping objects to placement groups creates a layer of indirection between the
-Ceph OSD Daemon and the Ceph Client. The Ceph Storage Cluster must be able to
-grow (or shrink) and rebalance where it stores objects dynamically. If the Ceph
-Client "knew" which Ceph OSD Daemon had which object, that would create a tight
-coupling between the Ceph Client and the Ceph OSD Daemon. Instead, the CRUSH
-algorithm maps each object to a placement group and then maps each placement
-group to one or more Ceph OSD Daemons. This layer of indirection allows Ceph to
-rebalance dynamically when new Ceph OSD Daemons and the underlying OSD devices
-come online. The following diagram depicts how CRUSH maps objects to placement
-groups, and placement groups to OSDs.
-
-.. ditaa::
- /-----\ /-----\ /-----\ /-----\ /-----\
- | obj | | obj | | obj | | obj | | obj |
- \-----/ \-----/ \-----/ \-----/ \-----/
- | | | | |
- +--------+--------+ +---+----+
- | |
- v v
- +-----------------------+ +-----------------------+
- | Placement Group #1 | | Placement Group #2 |
- | | | |
- +-----------------------+ +-----------------------+
- | |
- | +-----------------------+---+
- +------+------+-------------+ |
- | | | |
- v v v v
- /----------\ /----------\ /----------\ /----------\
- | | | | | | | |
- | OSD #1 | | OSD #2 | | OSD #3 | | OSD #4 |
- | | | | | | | |
- \----------/ \----------/ \----------/ \----------/
-
-With a copy of the cluster map and the CRUSH algorithm, the client can compute
-exactly which OSD to use when reading or writing a particular object.
-
-.. index:: architecture; calculating PG IDs
-
-Calculating PG IDs
-~~~~~~~~~~~~~~~~~~
-
-When a Ceph Client binds to a Ceph Monitor, it retrieves the latest copy of the
-`Cluster Map`_. With the cluster map, the client knows about all of the monitors,
-OSDs, and metadata servers in the cluster. **However, it doesn't know anything
-about object locations.**
-
-.. epigraph::
-
- Object locations get computed.
-
-
-The only input required by the client is the object ID and the pool.
-It's simple: Ceph stores data in named pools (e.g., "liverpool"). When a client
-wants to store a named object (e.g., "john," "paul," "george," "ringo", etc.)
-it calculates a placement group using the object name, a hash code, the
-number of PGs in the pool and the pool name. Ceph clients use the following
-steps to compute PG IDs.
-
-#. The client inputs the pool ID and the object ID. (e.g., pool = "liverpool"
- and object-id = "john")
-#. Ceph takes the object ID and hashes it.
-#. Ceph calculates the hash modulo the number of PGs. (e.g., ``58``) to get
- a PG ID.
-#. Ceph gets the pool ID given the pool name (e.g., "liverpool" = ``4``)
-#. Ceph prepends the pool ID to the PG ID (e.g., ``4.58``).
-
-Computing object locations is much faster than performing object location query
-over a chatty session. The :abbr:`CRUSH (Controlled Replication Under Scalable
-Hashing)` algorithm allows a client to compute where objects *should* be stored,
-and enables the client to contact the primary OSD to store or retrieve the
-objects.
-
-.. index:: architecture; PG Peering
-
-Peering and Sets
-~~~~~~~~~~~~~~~~
-
-In previous sections, we noted that Ceph OSD Daemons check each others
-heartbeats and report back to the Ceph Monitor. Another thing Ceph OSD daemons
-do is called 'peering', which is the process of bringing all of the OSDs that
-store a Placement Group (PG) into agreement about the state of all of the
-objects (and their metadata) in that PG. In fact, Ceph OSD Daemons `Report
-Peering Failure`_ to the Ceph Monitors. Peering issues usually resolve
-themselves; however, if the problem persists, you may need to refer to the
-`Troubleshooting Peering Failure`_ section.
-
-.. Note:: Agreeing on the state does not mean that the PGs have the latest contents.
-
-The Ceph Storage Cluster was designed to store at least two copies of an object
-(i.e., ``size = 2``), which is the minimum requirement for data safety. For high
-availability, a Ceph Storage Cluster should store more than two copies of an object
-(e.g., ``size = 3`` and ``min size = 2``) so that it can continue to run in a
-``degraded`` state while maintaining data safety.
-
-Referring back to the diagram in `Smart Daemons Enable Hyperscale`_, we do not
-name the Ceph OSD Daemons specifically (e.g., ``osd.0``, ``osd.1``, etc.), but
-rather refer to them as *Primary*, *Secondary*, and so forth. By convention,
-the *Primary* is the first OSD in the *Acting Set*, and is responsible for
-coordinating the peering process for each placement group where it acts as
-the *Primary*, and is the **ONLY** OSD that that will accept client-initiated
-writes to objects for a given placement group where it acts as the *Primary*.
-
-When a series of OSDs are responsible for a placement group, that series of
-OSDs, we refer to them as an *Acting Set*. An *Acting Set* may refer to the Ceph
-OSD Daemons that are currently responsible for the placement group, or the Ceph
-OSD Daemons that were responsible for a particular placement group as of some
-epoch.
-
-The Ceph OSD daemons that are part of an *Acting Set* may not always be ``up``.
-When an OSD in the *Acting Set* is ``up``, it is part of the *Up Set*. The *Up
-Set* is an important distinction, because Ceph can remap PGs to other Ceph OSD
-Daemons when an OSD fails.
-
-.. note:: In an *Acting Set* for a PG containing ``osd.25``, ``osd.32`` and
- ``osd.61``, the first OSD, ``osd.25``, is the *Primary*. If that OSD fails,
- the Secondary, ``osd.32``, becomes the *Primary*, and ``osd.25`` will be
- removed from the *Up Set*.
-
-
-.. index:: architecture; Rebalancing
-
-Rebalancing
-~~~~~~~~~~~
-
-When you add a Ceph OSD Daemon to a Ceph Storage Cluster, the cluster map gets
-updated with the new OSD. Referring back to `Calculating PG IDs`_, this changes
-the cluster map. Consequently, it changes object placement, because it changes
-an input for the calculations. The following diagram depicts the rebalancing
-process (albeit rather crudely, since it is substantially less impactful with
-large clusters) where some, but not all of the PGs migrate from existing OSDs
-(OSD 1, and OSD 2) to the new OSD (OSD 3). Even when rebalancing, CRUSH is
-stable. Many of the placement groups remain in their original configuration,
-and each OSD gets some added capacity, so there are no load spikes on the
-new OSD after rebalancing is complete.
-
-
-.. ditaa::
- +--------+ +--------+
- Before | OSD 1 | | OSD 2 |
- +--------+ +--------+
- | PG #1 | | PG #6 |
- | PG #2 | | PG #7 |
- | PG #3 | | PG #8 |
- | PG #4 | | PG #9 |
- | PG #5 | | PG #10 |
- +--------+ +--------+
-
- +--------+ +--------+ +--------+
- After | OSD 1 | | OSD 2 | | OSD 3 |
- +--------+ +--------+ +--------+
- | PG #1 | | PG #7 | | PG #3 |
- | PG #2 | | PG #8 | | PG #6 |
- | PG #4 | | PG #10 | | PG #9 |
- | PG #5 | | | | |
- | | | | | |
- +--------+ +--------+ +--------+
-
-
-.. index:: architecture; Data Scrubbing
-
-Data Consistency
-~~~~~~~~~~~~~~~~
-
-As part of maintaining data consistency and cleanliness, Ceph OSDs can also
-scrub objects within placement groups. That is, Ceph OSDs can compare object
-metadata in one placement group with its replicas in placement groups stored in
-other OSDs. Scrubbing (usually performed daily) catches OSD bugs or filesystem
-errors. OSDs can also perform deeper scrubbing by comparing data in objects
-bit-for-bit. Deep scrubbing (usually performed weekly) finds bad sectors on a
-disk that weren't apparent in a light scrub.
-
-See `Data Scrubbing`_ for details on configuring scrubbing.
-
-
-
-
-
-.. index:: erasure coding
-
-Erasure Coding
---------------
-
-An erasure coded pool stores each object as ``K+M`` chunks. It is divided into
-``K`` data chunks and ``M`` coding chunks. The pool is configured to have a size
-of ``K+M`` so that each chunk is stored in an OSD in the acting set. The rank of
-the chunk is stored as an attribute of the object.
-
-For instance an erasure coded pool is created to use five OSDs (``K+M = 5``) and
-sustain the loss of two of them (``M = 2``).
-
-Reading and Writing Encoded Chunks
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When the object **NYAN** containing ``ABCDEFGHI`` is written to the pool, the erasure
-encoding function splits the content into three data chunks simply by dividing
-the content in three: the first contains ``ABC``, the second ``DEF`` and the
-last ``GHI``. The content will be padded if the content length is not a multiple
-of ``K``. The function also creates two coding chunks: the fourth with ``YXY``
-and the fifth with ``GQC``. Each chunk is stored in an OSD in the acting set.
-The chunks are stored in objects that have the same name (**NYAN**) but reside
-on different OSDs. The order in which the chunks were created must be preserved
-and is stored as an attribute of the object (``shard_t``), in addition to its
-name. Chunk 1 contains ``ABC`` and is stored on **OSD5** while chunk 4 contains
-``YXY`` and is stored on **OSD3**.
-
-
-.. ditaa::
- +-------------------+
- name | NYAN |
- +-------------------+
- content | ABCDEFGHI |
- +--------+----------+
- |
- |
- v
- +------+------+
- +---------------+ encode(3,2) +-----------+
- | +--+--+---+---+ |
- | | | | |
- | +-------+ | +-----+ |
- | | | | |
- +--v---+ +--v---+ +--v---+ +--v---+ +--v---+
- name | NYAN | | NYAN | | NYAN | | NYAN | | NYAN |
- +------+ +------+ +------+ +------+ +------+
- shard | 1 | | 2 | | 3 | | 4 | | 5 |
- +------+ +------+ +------+ +------+ +------+
- content | ABC | | DEF | | GHI | | YXY | | QGC |
- +--+---+ +--+---+ +--+---+ +--+---+ +--+---+
- | | | | |
- | | v | |
- | | +--+---+ | |
- | | | OSD1 | | |
- | | +------+ | |
- | | | |
- | | +------+ | |
- | +------>| OSD2 | | |
- | +------+ | |
- | | |
- | +------+ | |
- | | OSD3 |<----+ |
- | +------+ |
- | |
- | +------+ |
- | | OSD4 |<--------------+
- | +------+
- |
- | +------+
- +----------------->| OSD5 |
- +------+
-
-
-When the object **NYAN** is read from the erasure coded pool, the decoding
-function reads three chunks: chunk 1 containing ``ABC``, chunk 3 containing
-``GHI`` and chunk 4 containing ``YXY``. Then, it rebuilds the original content
-of the object ``ABCDEFGHI``. The decoding function is informed that the chunks 2
-and 5 are missing (they are called 'erasures'). The chunk 5 could not be read
-because the **OSD4** is out. The decoding function can be called as soon as
-three chunks are read: **OSD2** was the slowest and its chunk was not taken into
-account.
-
-.. ditaa::
- +-------------------+
- name | NYAN |
- +-------------------+
- content | ABCDEFGHI |
- +---------+---------+
- ^
- |
- |
- +-------+-------+
- | decode(3,2) |
- +------------->+ erasures 2,5 +<-+
- | | | |
- | +-------+-------+ |
- | ^ |
- | | |
- | | |
- +--+---+ +------+ +---+--+ +---+--+
- name | NYAN | | NYAN | | NYAN | | NYAN |
- +------+ +------+ +------+ +------+
- shard | 1 | | 2 | | 3 | | 4 |
- +------+ +------+ +------+ +------+
- content | ABC | | DEF | | GHI | | YXY |
- +--+---+ +--+---+ +--+---+ +--+---+
- ^ . ^ ^
- | TOO . | |
- | SLOW . +--+---+ |
- | ^ | OSD1 | |
- | | +------+ |
- | | |
- | | +------+ |
- | +-------| OSD2 | |
- | +------+ |
- | |
- | +------+ |
- | | OSD3 |------+
- | +------+
- |
- | +------+
- | | OSD4 | OUT
- | +------+
- |
- | +------+
- +------------------| OSD5 |
- +------+
-
-
-Interrupted Full Writes
-~~~~~~~~~~~~~~~~~~~~~~~
-
-In an erasure coded pool, the primary OSD in the up set receives all write
-operations. It is responsible for encoding the payload into ``K+M`` chunks and
-sends them to the other OSDs. It is also responsible for maintaining an
-authoritative version of the placement group logs.
-
-In the following diagram, an erasure coded placement group has been created with
-``K = 2 + M = 1`` and is supported by three OSDs, two for ``K`` and one for
-``M``. The acting set of the placement group is made of **OSD 1**, **OSD 2** and
-**OSD 3**. An object has been encoded and stored in the OSDs : the chunk
-``D1v1`` (i.e. Data chunk number 1, version 1) is on **OSD 1**, ``D2v1`` on
-**OSD 2** and ``C1v1`` (i.e. Coding chunk number 1, version 1) on **OSD 3**. The
-placement group logs on each OSD are identical (i.e. ``1,1`` for epoch 1,
-version 1).
-
-
-.. ditaa::
- Primary OSD
-
- +-------------+
- | OSD 1 | +-------------+
- | log | Write Full | |
- | +----+ |<------------+ Ceph Client |
- | |D1v1| 1,1 | v1 | |
- | +----+ | +-------------+
- +------+------+
- |
- |
- | +-------------+
- | | OSD 2 |
- | | log |
- +--------->+ +----+ |
- | | |D2v1| 1,1 |
- | | +----+ |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- +--------->| +----+ |
- | |C1v1| 1,1 |
- | +----+ |
- +-------------+
-
-**OSD 1** is the primary and receives a **WRITE FULL** from a client, which
-means the payload is to replace the object entirely instead of overwriting a
-portion of it. Version 2 (v2) of the object is created to override version 1
-(v1). **OSD 1** encodes the payload into three chunks: ``D1v2`` (i.e. Data
-chunk number 1 version 2) will be on **OSD 1**, ``D2v2`` on **OSD 2** and
-``C1v2`` (i.e. Coding chunk number 1 version 2) on **OSD 3**. Each chunk is sent
-to the target OSD, including the primary OSD which is responsible for storing
-chunks in addition to handling write operations and maintaining an authoritative
-version of the placement group logs. When an OSD receives the message
-instructing it to write the chunk, it also creates a new entry in the placement
-group logs to reflect the change. For instance, as soon as **OSD 3** stores
-``C1v2``, it adds the entry ``1,2`` ( i.e. epoch 1, version 2 ) to its logs.
-Because the OSDs work asynchronously, some chunks may still be in flight ( such
-as ``D2v2`` ) while others are acknowledged and on disk ( such as ``C1v1`` and
-``D1v1``).
-
-.. ditaa::
-
- Primary OSD
-
- +-------------+
- | OSD 1 |
- | log |
- | +----+ | +-------------+
- | |D1v2| 1,2 | Write Full | |
- | +----+ +<------------+ Ceph Client |
- | | v2 | |
- | +----+ | +-------------+
- | |D1v1| 1,1 |
- | +----+ |
- +------+------+
- |
- |
- | +------+------+
- | | OSD 2 |
- | +------+ | log |
- +->| D2v2 | | +----+ |
- | +------+ | |D2v1| 1,1 |
- | | +----+ |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- | | +----+ |
- | | |C1v2| 1,2 |
- +---------->+ +----+ |
- | |
- | +----+ |
- | |C1v1| 1,1 |
- | +----+ |
- +-------------+
-
-
-If all goes well, the chunks are acknowledged on each OSD in the acting set and
-the logs' ``last_complete`` pointer can move from ``1,1`` to ``1,2``.
-
-.. ditaa::
-
- Primary OSD
-
- +-------------+
- | OSD 1 |
- | log |
- | +----+ | +-------------+
- | |D1v2| 1,2 | Write Full | |
- | +----+ +<------------+ Ceph Client |
- | | v2 | |
- | +----+ | +-------------+
- | |D1v1| 1,1 |
- | +----+ |
- +------+------+
- |
- | +-------------+
- | | OSD 2 |
- | | log |
- | | +----+ |
- | | |D2v2| 1,2 |
- +---------->+ +----+ |
- | | |
- | | +----+ |
- | | |D2v1| 1,1 |
- | | +----+ |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- | | +----+ |
- | | |C1v2| 1,2 |
- +---------->+ +----+ |
- | |
- | +----+ |
- | |C1v1| 1,1 |
- | +----+ |
- +-------------+
-
-
-Finally, the files used to store the chunks of the previous version of the
-object can be removed: ``D1v1`` on **OSD 1**, ``D2v1`` on **OSD 2** and ``C1v1``
-on **OSD 3**.
-
-.. ditaa::
- Primary OSD
-
- +-------------+
- | OSD 1 |
- | log |
- | +----+ |
- | |D1v2| 1,2 |
- | +----+ |
- +------+------+
- |
- |
- | +-------------+
- | | OSD 2 |
- | | log |
- +--------->+ +----+ |
- | | |D2v2| 1,2 |
- | | +----+ |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- +--------->| +----+ |
- | |C1v2| 1,2 |
- | +----+ |
- +-------------+
-
-
-But accidents happen. If **OSD 1** goes down while ``D2v2`` is still in flight,
-the object's version 2 is partially written: **OSD 3** has one chunk but that is
-not enough to recover. It lost two chunks: ``D1v2`` and ``D2v2`` and the
-erasure coding parameters ``K = 2``, ``M = 1`` require that at least two chunks are
-available to rebuild the third. **OSD 4** becomes the new primary and finds that
-the ``last_complete`` log entry (i.e., all objects before this entry were known
-to be available on all OSDs in the previous acting set ) is ``1,1`` and that
-will be the head of the new authoritative log.
-
-.. ditaa::
- +-------------+
- | OSD 1 |
- | (down) |
- | c333 |
- +------+------+
- |
- | +-------------+
- | | OSD 2 |
- | | log |
- | | +----+ |
- +---------->+ |D2v1| 1,1 |
- | | +----+ |
- | | |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- | | +----+ |
- | | |C1v2| 1,2 |
- +---------->+ +----+ |
- | |
- | +----+ |
- | |C1v1| 1,1 |
- | +----+ |
- +-------------+
- Primary OSD
- +-------------+
- | OSD 4 |
- | log |
- | |
- | 1,1 |
- | |
- +------+------+
-
-
-
-The log entry 1,2 found on **OSD 3** is divergent from the new authoritative log
-provided by **OSD 4**: it is discarded and the file containing the ``C1v2``
-chunk is removed. The ``D1v1`` chunk is rebuilt with the ``decode`` function of
-the erasure coding library during scrubbing and stored on the new primary
-**OSD 4**.
-
-
-.. ditaa::
- Primary OSD
-
- +-------------+
- | OSD 4 |
- | log |
- | +----+ |
- | |D1v1| 1,1 |
- | +----+ |
- +------+------+
- ^
- |
- | +-------------+
- | | OSD 2 |
- | | log |
- +----------+ +----+ |
- | | |D2v1| 1,1 |
- | | +----+ |
- | +-------------+
- |
- | +-------------+
- | | OSD 3 |
- | | log |
- +----------| +----+ |
- | |C1v1| 1,1 |
- | +----+ |
- +-------------+
-
- +-------------+
- | OSD 1 |
- | (down) |
- | c333 |
- +-------------+
-
-See `Erasure Code Notes`_ for additional details.
-
-
-
-Cache Tiering
--------------
-
-A cache tier provides Ceph Clients with better I/O performance for a subset of
-the data stored in a backing storage tier. Cache tiering involves creating a
-pool of relatively fast/expensive storage devices (e.g., solid state drives)
-configured to act as a cache tier, and a backing pool of either erasure-coded
-or relatively slower/cheaper devices configured to act as an economical storage
-tier. The Ceph objecter handles where to place the objects and the tiering
-agent determines when to flush objects from the cache to the backing storage
-tier. So the cache tier and the backing storage tier are completely transparent
-to Ceph clients.
-
-
-.. ditaa::
- +-------------+
- | Ceph Client |
- +------+------+
- ^
- Tiering is |
- Transparent | Faster I/O
- to Ceph | +---------------+
- Client Ops | | |
- | +----->+ Cache Tier |
- | | | |
- | | +-----+---+-----+
- | | | ^
- v v | | Active Data in Cache Tier
- +------+----+--+ | |
- | Objecter | | |
- +-----------+--+ | |
- ^ | | Inactive Data in Storage Tier
- | v |
- | +-----+---+-----+
- | | |
- +----->| Storage Tier |
- | |
- +---------------+
- Slower I/O
-
-See `Cache Tiering`_ for additional details.
-
-
-.. index:: Extensibility, Ceph Classes
-
-Extending Ceph
---------------
-
-You can extend Ceph by creating shared object classes called 'Ceph Classes'.
-Ceph loads ``.so`` classes stored in the ``osd class dir`` directory dynamically
-(i.e., ``$libdir/rados-classes`` by default). When you implement a class, you
-can create new object methods that have the ability to call the native methods
-in the Ceph Object Store, or other class methods you incorporate via libraries
-or create yourself.
-
-On writes, Ceph Classes can call native or class methods, perform any series of
-operations on the inbound data and generate a resulting write transaction that
-Ceph will apply atomically.
-
-On reads, Ceph Classes can call native or class methods, perform any series of
-operations on the outbound data and return the data to the client.
-
-.. topic:: Ceph Class Example
-
- A Ceph class for a content management system that presents pictures of a
- particular size and aspect ratio could take an inbound bitmap image, crop it
- to a particular aspect ratio, resize it and embed an invisible copyright or
- watermark to help protect the intellectual property; then, save the
- resulting bitmap image to the object store.
-
-See ``src/objclass/objclass.h``, ``src/fooclass.cc`` and ``src/barclass`` for
-exemplary implementations.
-
-
-Summary
--------
-
-Ceph Storage Clusters are dynamic--like a living organism. Whereas, many storage
-appliances do not fully utilize the CPU and RAM of a typical commodity server,
-Ceph does. From heartbeats, to peering, to rebalancing the cluster or
-recovering from faults, Ceph offloads work from clients (and from a centralized
-gateway which doesn't exist in the Ceph architecture) and uses the computing
-power of the OSDs to perform the work. When referring to `Hardware
-Recommendations`_ and the `Network Config Reference`_, be cognizant of the
-foregoing concepts to understand how Ceph utilizes computing resources.
-
-.. index:: Ceph Protocol, librados
-
-Ceph Protocol
-=============
-
-Ceph Clients use the native protocol for interacting with the Ceph Storage
-Cluster. Ceph packages this functionality into the ``librados`` library so that
-you can create your own custom Ceph Clients. The following diagram depicts the
-basic architecture.
-
-.. ditaa::
- +---------------------------------+
- | Ceph Storage Cluster Protocol |
- | (librados) |
- +---------------------------------+
- +---------------+ +---------------+
- | OSDs | | Monitors |
- +---------------+ +---------------+
-
-
-Native Protocol and ``librados``
---------------------------------
-
-Modern applications need a simple object storage interface with asynchronous
-communication capability. The Ceph Storage Cluster provides a simple object
-storage interface with asynchronous communication capability. The interface
-provides direct, parallel access to objects throughout the cluster.
-
-
-- Pool Operations
-- Snapshots and Copy-on-write Cloning
-- Read/Write Objects
- - Create or Remove
- - Entire Object or Byte Range
- - Append or Truncate
-- Create/Set/Get/Remove XATTRs
-- Create/Set/Get/Remove Key/Value Pairs
-- Compound operations and dual-ack semantics
-- Object Classes
-
-
-.. index:: architecture; watch/notify
-
-Object Watch/Notify
--------------------
-
-A client can register a persistent interest with an object and keep a session to
-the primary OSD open. The client can send a notification message and a payload to
-all watchers and receive notification when the watchers receive the
-notification. This enables a client to use any object as a
-synchronization/communication channel.
-
-
-.. ditaa:: +----------+ +----------+ +----------+ +---------------+
- | Client 1 | | Client 2 | | Client 3 | | OSD:Object ID |
- +----------+ +----------+ +----------+ +---------------+
- | | | |
- | | | |
- | | Watch Object | |
- |--------------------------------------------------->|
- | | | |
- |<---------------------------------------------------|
- | | Ack/Commit | |
- | | | |
- | | Watch Object | |
- | |---------------------------------->|
- | | | |
- | |<----------------------------------|
- | | Ack/Commit | |
- | | | Watch Object |
- | | |----------------->|
- | | | |
- | | |<-----------------|
- | | | Ack/Commit |
- | | Notify | |
- |--------------------------------------------------->|
- | | | |
- |<---------------------------------------------------|
- | | Notify | |
- | | | |
- | |<----------------------------------|
- | | Notify | |
- | | |<-----------------|
- | | | Notify |
- | | Ack | |
- |----------------+---------------------------------->|
- | | | |
- | | Ack | |
- | +---------------------------------->|
- | | | |
- | | | Ack |
- | | |----------------->|
- | | | |
- |<---------------+----------------+------------------|
- | Complete
-
-.. index:: architecture; Striping
-
-Data Striping
--------------
-
-Storage devices have throughput limitations, which impact performance and
-scalability. So storage systems often support `striping`_--storing sequential
-pieces of information across multiple storage devices--to increase throughput
-and performance. The most common form of data striping comes from `RAID`_.
-The RAID type most similar to Ceph's striping is `RAID 0`_, or a 'striped
-volume'. Ceph's striping offers the throughput of RAID 0 striping, the
-reliability of n-way RAID mirroring and faster recovery.
-
-Ceph provides three types of clients: Ceph Block Device, Ceph Filesystem, and
-Ceph Object Storage. A Ceph Client converts its data from the representation
-format it provides to its users (a block device image, RESTful objects, CephFS
-filesystem directories) into objects for storage in the Ceph Storage Cluster.
-
-.. tip:: The objects Ceph stores in the Ceph Storage Cluster are not striped.
- Ceph Object Storage, Ceph Block Device, and the Ceph Filesystem stripe their
- data over multiple Ceph Storage Cluster objects. Ceph Clients that write
- directly to the Ceph Storage Cluster via ``librados`` must perform the
- striping (and parallel I/O) for themselves to obtain these benefits.
-
-The simplest Ceph striping format involves a stripe count of 1 object. Ceph
-Clients write stripe units to a Ceph Storage Cluster object until the object is
-at its maximum capacity, and then create another object for additional stripes
-of data. The simplest form of striping may be sufficient for small block device
-images, S3 or Swift objects and CephFS files. However, this simple form doesn't
-take maximum advantage of Ceph's ability to distribute data across placement
-groups, and consequently doesn't improve performance very much. The following
-diagram depicts the simplest form of striping:
-
-.. ditaa::
- +---------------+
- | Client Data |
- | Format |
- | cCCC |
- +---------------+
- |
- +--------+-------+
- | |
- v v
- /-----------\ /-----------\
- | Begin cCCC| | Begin cCCC|
- | Object 0 | | Object 1 |
- +-----------+ +-----------+
- | stripe | | stripe |
- | unit 1 | | unit 5 |
- +-----------+ +-----------+
- | stripe | | stripe |
- | unit 2 | | unit 6 |
- +-----------+ +-----------+
- | stripe | | stripe |
- | unit 3 | | unit 7 |
- +-----------+ +-----------+
- | stripe | | stripe |
- | unit 4 | | unit 8 |
- +-----------+ +-----------+
- | End cCCC | | End cCCC |
- | Object 0 | | Object 1 |
- \-----------/ \-----------/
-
-
-If you anticipate large images sizes, large S3 or Swift objects (e.g., video),
-or large CephFS directories, you may see considerable read/write performance
-improvements by striping client data over multiple objects within an object set.
-Significant write performance occurs when the client writes the stripe units to
-their corresponding objects in parallel. Since objects get mapped to different
-placement groups and further mapped to different OSDs, each write occurs in
-parallel at the maximum write speed. A write to a single disk would be limited
-by the head movement (e.g. 6ms per seek) and bandwidth of that one device (e.g.
-100MB/s). By spreading that write over multiple objects (which map to different
-placement groups and OSDs) Ceph can reduce the number of seeks per drive and
-combine the throughput of multiple drives to achieve much faster write (or read)
-speeds.
-
-.. note:: Striping is independent of object replicas. Since CRUSH
- replicates objects across OSDs, stripes get replicated automatically.
-
-In the following diagram, client data gets striped across an object set
-(``object set 1`` in the following diagram) consisting of 4 objects, where the
-first stripe unit is ``stripe unit 0`` in ``object 0``, and the fourth stripe
-unit is ``stripe unit 3`` in ``object 3``. After writing the fourth stripe, the
-client determines if the object set is full. If the object set is not full, the
-client begins writing a stripe to the first object again (``object 0`` in the
-following diagram). If the object set is full, the client creates a new object
-set (``object set 2`` in the following diagram), and begins writing to the first
-stripe (``stripe unit 16``) in the first object in the new object set (``object
-4`` in the diagram below).
-
-.. ditaa::
- +---------------+
- | Client Data |
- | Format |
- | cCCC |
- +---------------+
- |
- +-----------------+--------+--------+-----------------+
- | | | | +--\
- v v v v |
- /-----------\ /-----------\ /-----------\ /-----------\ |
- | Begin cCCC| | Begin cCCC| | Begin cCCC| | Begin cCCC| |
- | Object 0 | | Object 1 | | Object 2 | | Object 3 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | |
- | unit 0 | | unit 1 | | unit 2 | | unit 3 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | +-\
- | unit 4 | | unit 5 | | unit 6 | | unit 7 | | Object
- +-----------+ +-----------+ +-----------+ +-----------+ +- Set
- | stripe | | stripe | | stripe | | stripe | | 1
- | unit 8 | | unit 9 | | unit 10 | | unit 11 | +-/
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | |
- | unit 12 | | unit 13 | | unit 14 | | unit 15 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | End cCCC | | End cCCC | | End cCCC | | End cCCC | |
- | Object 0 | | Object 1 | | Object 2 | | Object 3 | |
- \-----------/ \-----------/ \-----------/ \-----------/ |
- |
- +--/
-
- +--\
- |
- /-----------\ /-----------\ /-----------\ /-----------\ |
- | Begin cCCC| | Begin cCCC| | Begin cCCC| | Begin cCCC| |
- | Object 4 | | Object 5 | | Object 6 | | Object 7 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | |
- | unit 16 | | unit 17 | | unit 18 | | unit 19 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | +-\
- | unit 20 | | unit 21 | | unit 22 | | unit 23 | | Object
- +-----------+ +-----------+ +-----------+ +-----------+ +- Set
- | stripe | | stripe | | stripe | | stripe | | 2
- | unit 24 | | unit 25 | | unit 26 | | unit 27 | +-/
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | stripe | | stripe | | stripe | | stripe | |
- | unit 28 | | unit 29 | | unit 30 | | unit 31 | |
- +-----------+ +-----------+ +-----------+ +-----------+ |
- | End cCCC | | End cCCC | | End cCCC | | End cCCC | |
- | Object 4 | | Object 5 | | Object 6 | | Object 7 | |
- \-----------/ \-----------/ \-----------/ \-----------/ |
- |
- +--/
-
-Three important variables determine how Ceph stripes data:
-
-- **Object Size:** Objects in the Ceph Storage Cluster have a maximum
- configurable size (e.g., 2MB, 4MB, etc.). The object size should be large
- enough to accommodate many stripe units, and should be a multiple of
- the stripe unit.
-
-- **Stripe Width:** Stripes have a configurable unit size (e.g., 64kb).
- The Ceph Client divides the data it will write to objects into equally
- sized stripe units, except for the last stripe unit. A stripe width,
- should be a fraction of the Object Size so that an object may contain
- many stripe units.
-
-- **Stripe Count:** The Ceph Client writes a sequence of stripe units
- over a series of objects determined by the stripe count. The series
- of objects is called an object set. After the Ceph Client writes to
- the last object in the object set, it returns to the first object in
- the object set.
-
-.. important:: Test the performance of your striping configuration before
- putting your cluster into production. You CANNOT change these striping
- parameters after you stripe the data and write it to objects.
-
-Once the Ceph Client has striped data to stripe units and mapped the stripe
-units to objects, Ceph's CRUSH algorithm maps the objects to placement groups,
-and the placement groups to Ceph OSD Daemons before the objects are stored as
-files on a storage disk.
-
-.. note:: Since a client writes to a single pool, all data striped into objects
- get mapped to placement groups in the same pool. So they use the same CRUSH
- map and the same access controls.
-
-
-.. index:: architecture; Ceph Clients
-
-Ceph Clients
-============
-
-Ceph Clients include a number of service interfaces. These include:
-
-- **Block Devices:** The :term:`Ceph Block Device` (a.k.a., RBD) service
- provides resizable, thin-provisioned block devices with snapshotting and
- cloning. Ceph stripes a block device across the cluster for high
- performance. Ceph supports both kernel objects (KO) and a QEMU hypervisor
- that uses ``librbd`` directly--avoiding the kernel object overhead for
- virtualized systems.
-
-- **Object Storage:** The :term:`Ceph Object Storage` (a.k.a., RGW) service
- provides RESTful APIs with interfaces that are compatible with Amazon S3
- and OpenStack Swift.
-
-- **Filesystem**: The :term:`Ceph Filesystem` (CephFS) service provides
- a POSIX compliant filesystem usable with ``mount`` or as
- a filesytem in user space (FUSE).
-
-Ceph can run additional instances of OSDs, MDSs, and monitors for scalability
-and high availability. The following diagram depicts the high-level
-architecture.
-
-.. ditaa::
- +--------------+ +----------------+ +-------------+
- | Block Device | | Object Storage | | Ceph FS |
- +--------------+ +----------------+ +-------------+
-
- +--------------+ +----------------+ +-------------+
- | librbd | | librgw | | libcephfs |
- +--------------+ +----------------+ +-------------+
-
- +---------------------------------------------------+
- | Ceph Storage Cluster Protocol (librados) |
- +---------------------------------------------------+
-
- +---------------+ +---------------+ +---------------+
- | OSDs | | MDSs | | Monitors |
- +---------------+ +---------------+ +---------------+
-
-
-.. index:: architecture; Ceph Object Storage
-
-Ceph Object Storage
--------------------
-
-The Ceph Object Storage daemon, ``radosgw``, is a FastCGI service that provides
-a RESTful_ HTTP API to store objects and metadata. It layers on top of the Ceph
-Storage Cluster with its own data formats, and maintains its own user database,
-authentication, and access control. The RADOS Gateway uses a unified namespace,
-which means you can use either the OpenStack Swift-compatible API or the Amazon
-S3-compatible API. For example, you can write data using the S3-compatible API
-with one application and then read data using the Swift-compatible API with
-another application.
-
-.. topic:: S3/Swift Objects and Store Cluster Objects Compared
-
- Ceph's Object Storage uses the term *object* to describe the data it stores.
- S3 and Swift objects are not the same as the objects that Ceph writes to the
- Ceph Storage Cluster. Ceph Object Storage objects are mapped to Ceph Storage
- Cluster objects. The S3 and Swift objects do not necessarily
- correspond in a 1:1 manner with an object stored in the storage cluster. It
- is possible for an S3 or Swift object to map to multiple Ceph objects.
-
-See `Ceph Object Storage`_ for details.
-
-
-.. index:: Ceph Block Device; block device; RBD; Rados Block Device
-
-Ceph Block Device
------------------
-
-A Ceph Block Device stripes a block device image over multiple objects in the
-Ceph Storage Cluster, where each object gets mapped to a placement group and
-distributed, and the placement groups are spread across separate ``ceph-osd``
-daemons throughout the cluster.
-
-.. important:: Striping allows RBD block devices to perform better than a single
- server could!
-
-Thin-provisioned snapshottable Ceph Block Devices are an attractive option for
-virtualization and cloud computing. In virtual machine scenarios, people
-typically deploy a Ceph Block Device with the ``rbd`` network storage driver in
-QEMU/KVM, where the host machine uses ``librbd`` to provide a block device
-service to the guest. Many cloud computing stacks use ``libvirt`` to integrate
-with hypervisors. You can use thin-provisioned Ceph Block Devices with QEMU and
-``libvirt`` to support OpenStack and CloudStack among other solutions.
-
-While we do not provide ``librbd`` support with other hypervisors at this time,
-you may also use Ceph Block Device kernel objects to provide a block device to a
-client. Other virtualization technologies such as Xen can access the Ceph Block
-Device kernel object(s). This is done with the command-line tool ``rbd``.
-
-
-.. index:: Ceph FS; Ceph Filesystem; libcephfs; MDS; metadata server; ceph-mds
-
-Ceph Filesystem
----------------
-
-The Ceph Filesystem (Ceph FS) provides a POSIX-compliant filesystem as a
-service that is layered on top of the object-based Ceph Storage Cluster.
-Ceph FS files get mapped to objects that Ceph stores in the Ceph Storage
-Cluster. Ceph Clients mount a CephFS filesystem as a kernel object or as
-a Filesystem in User Space (FUSE).
-
-.. ditaa::
- +-----------------------+ +------------------------+
- | CephFS Kernel Object | | CephFS FUSE |
- +-----------------------+ +------------------------+
-
- +---------------------------------------------------+
- | Ceph FS Library (libcephfs) |
- +---------------------------------------------------+
-
- +---------------------------------------------------+
- | Ceph Storage Cluster Protocol (librados) |
- +---------------------------------------------------+
-
- +---------------+ +---------------+ +---------------+
- | OSDs | | MDSs | | Monitors |
- +---------------+ +---------------+ +---------------+
-
-
-The Ceph Filesystem service includes the Ceph Metadata Server (MDS) deployed
-with the Ceph Storage cluster. The purpose of the MDS is to store all the
-filesystem metadata (directories, file ownership, access modes, etc) in
-high-availability Ceph Metadata Servers where the metadata resides in memory.
-The reason for the MDS (a daemon called ``ceph-mds``) is that simple filesystem
-operations like listing a directory or changing a directory (``ls``, ``cd``)
-would tax the Ceph OSD Daemons unnecessarily. So separating the metadata from
-the data means that the Ceph Filesystem can provide high performance services
-without taxing the Ceph Storage Cluster.
-
-Ceph FS separates the metadata from the data, storing the metadata in the MDS,
-and storing the file data in one or more objects in the Ceph Storage Cluster.
-The Ceph filesystem aims for POSIX compatibility. ``ceph-mds`` can run as a
-single process, or it can be distributed out to multiple physical machines,
-either for high availability or for scalability.
-
-- **High Availability**: The extra ``ceph-mds`` instances can be `standby`,
- ready to take over the duties of any failed ``ceph-mds`` that was
- `active`. This is easy because all the data, including the journal, is
- stored on RADOS. The transition is triggered automatically by ``ceph-mon``.
-
-- **Scalability**: Multiple ``ceph-mds`` instances can be `active`, and they
- will split the directory tree into subtrees (and shards of a single
- busy directory), effectively balancing the load amongst all `active`
- servers.
-
-Combinations of `standby` and `active` etc are possible, for example
-running 3 `active` ``ceph-mds`` instances for scaling, and one `standby`
-instance for high availability.
-
-
-
-
-.. _RADOS - A Scalable, Reliable Storage Service for Petabyte-scale Storage Clusters: https://ceph.com/wp-content/uploads/2016/08/weil-rados-pdsw07.pdf
-.. _Paxos: http://en.wikipedia.org/wiki/Paxos_(computer_science)
-.. _Monitor Config Reference: ../rados/configuration/mon-config-ref
-.. _Monitoring OSDs and PGs: ../rados/operations/monitoring-osd-pg
-.. _Heartbeats: ../rados/configuration/mon-osd-interaction
-.. _Monitoring OSDs: ../rados/operations/monitoring-osd-pg/#monitoring-osds
-.. _CRUSH - Controlled, Scalable, Decentralized Placement of Replicated Data: https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf
-.. _Data Scrubbing: ../rados/configuration/osd-config-ref#scrubbing
-.. _Report Peering Failure: ../rados/configuration/mon-osd-interaction#osds-report-peering-failure
-.. _Troubleshooting Peering Failure: ../rados/troubleshooting/troubleshooting-pg#placement-group-down-peering-failure
-.. _Ceph Authentication and Authorization: ../rados/operations/auth-intro/
-.. _Hardware Recommendations: ../start/hardware-recommendations
-.. _Network Config Reference: ../rados/configuration/network-config-ref
-.. _Data Scrubbing: ../rados/configuration/osd-config-ref#scrubbing
-.. _striping: http://en.wikipedia.org/wiki/Data_striping
-.. _RAID: http://en.wikipedia.org/wiki/RAID
-.. _RAID 0: http://en.wikipedia.org/wiki/RAID_0#RAID_0
-.. _Ceph Object Storage: ../radosgw/
-.. _RESTful: http://en.wikipedia.org/wiki/RESTful
-.. _Erasure Code Notes: https://github.com/ceph/ceph/blob/40059e12af88267d0da67d8fd8d9cd81244d8f93/doc/dev/osd_internals/erasure_coding/developer_notes.rst
-.. _Cache Tiering: ../rados/operations/cache-tiering
-.. _Set Pool Values: ../rados/operations/pools#set-pool-values
-.. _Kerberos: http://en.wikipedia.org/wiki/Kerberos_(protocol)
-.. _Cephx Config Guide: ../rados/configuration/auth-config-ref
-.. _User Management: ../rados/operations/user-management
diff --git a/src/ceph/doc/ceph-volume/index.rst b/src/ceph/doc/ceph-volume/index.rst
deleted file mode 100644
index 5cf4778..0000000
--- a/src/ceph/doc/ceph-volume/index.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-.. _ceph-volume:
-
-ceph-volume
-===========
-Deploy OSDs with different device technologies like lvm or physical disks using
-pluggable tools (:doc:`lvm/index` itself is treated like a plugin) and trying to
-follow a predictable, and robust way of preparing, activating, and starting OSDs.
-
-:ref:`Overview <ceph-volume-overview>` |
-:ref:`Plugin Guide <ceph-volume-plugins>` |
-
-
-**Command Line Subcommands**
-There is currently support for ``lvm``, and plain disks (with GPT partitions)
-that may have been deployed with ``ceph-disk``.
-
-* :ref:`ceph-volume-lvm`
-* :ref:`ceph-volume-simple`
-
-
-Migrating
----------
-Starting on Ceph version 12.2.2, ``ceph-disk`` is deprecated. Deprecation
-warnings will show up that will link to this page. It is strongly suggested
-that users start consuming ``ceph-volume``.
-
-New deployments
-^^^^^^^^^^^^^^^
-For new deployments, :ref:`ceph-volume-lvm` is recommended, it can use any
-logical volume as input for data OSDs, or it can setup a minimal/naive logical
-volume from a device.
-
-Existing OSDs
-^^^^^^^^^^^^^
-If the cluster has OSDs that were provisioned with ``ceph-disk``, then
-``ceph-volume`` can take over the management of these with
-:ref:`ceph-volume-simple`. A scan is done on the data device or OSD directory,
-and ``ceph-disk`` is fully disabled.
-
-Encrypted OSDs
-^^^^^^^^^^^^^^
-If using encryption with OSDs, there is currently no support in ``ceph-volume``
-for this scenario (although support for this is coming soon). In this case, it
-is OK to continue to use ``ceph-disk`` until ``ceph-volume`` fully supports it.
-This page will be updated when that happens.
-
-.. toctree::
- :hidden:
- :maxdepth: 3
- :caption: Contents:
-
- intro
- systemd
- lvm/index
- lvm/activate
- lvm/prepare
- lvm/scan
- lvm/systemd
- lvm/list
- lvm/zap
- simple/index
- simple/activate
- simple/scan
- simple/systemd
diff --git a/src/ceph/doc/ceph-volume/intro.rst b/src/ceph/doc/ceph-volume/intro.rst
deleted file mode 100644
index 3869148..0000000
--- a/src/ceph/doc/ceph-volume/intro.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _ceph-volume-overview:
-
-Overview
---------
-The ``ceph-volume`` tool aims to be a single purpose command line tool to deploy
-logical volumes as OSDs, trying to maintain a similar API to ``ceph-disk`` when
-preparing, activating, and creating OSDs.
-
-It deviates from ``ceph-disk`` by not interacting or relying on the udev rules
-that come installed for Ceph. These rules allow automatic detection of
-previously setup devices that are in turn fed into ``ceph-disk`` to activate
-them.
-
-
-``ceph-volume lvm``
--------------------
-By making use of :term:`LVM tags`, the :ref:`ceph-volume-lvm` sub-command is
-able to store and later re-discover and query devices associated with OSDs so
-that they can later activated.
diff --git a/src/ceph/doc/ceph-volume/lvm/activate.rst b/src/ceph/doc/ceph-volume/lvm/activate.rst
deleted file mode 100644
index 956a62a..0000000
--- a/src/ceph/doc/ceph-volume/lvm/activate.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-.. _ceph-volume-lvm-activate:
-
-``activate``
-============
-Once :ref:`ceph-volume-lvm-prepare` is completed, and all the various steps
-that entails are done, the volume is ready to get "activated".
-
-This activation process enables a systemd unit that persists the OSD ID and its
-UUID (also called ``fsid`` in Ceph CLI tools), so that at boot time it can
-understand what OSD is enabled and needs to be mounted.
-
-.. note:: The execution of this call is fully idempotent, and there is no
- side-effects when running multiple times
-
-New OSDs
---------
-To activate newly prepared OSDs both the :term:`OSD id` and :term:`OSD uuid`
-need to be supplied. For example::
-
- ceph-volume lvm activate --bluestore 0 0263644D-0BF1-4D6D-BC34-28BD98AE3BC8
-
-.. note:: The UUID is stored in the ``osd_fsid`` file in the OSD path, which is
- generated when :ref:`ceph-volume-lvm-prepare` is used.
-
-requiring uuids
-^^^^^^^^^^^^^^^
-The :term:`OSD uuid` is being required as an extra step to ensure that the
-right OSD is being activated. It is entirely possible that a previous OSD with
-the same id exists and would end up activating the incorrect one.
-
-
-Discovery
----------
-With either existing OSDs or new ones being activated, a *discovery* process is
-performed using :term:`LVM tags` to enable the systemd units.
-
-The systemd unit will capture the :term:`OSD id` and :term:`OSD uuid` and
-persist it. Internally, the activation will enable it like::
-
- systemctl enable ceph-volume@$id-$uuid-lvm
-
-For example::
-
- systemctl enable ceph-volume@0-8715BEB4-15C5-49DE-BA6F-401086EC7B41-lvm
-
-Would start the discovery process for the OSD with an id of ``0`` and a UUID of
-``8715BEB4-15C5-49DE-BA6F-401086EC7B41``.
-
-.. note:: for more details on the systemd workflow see :ref:`ceph-volume-lvm-systemd`
-
-The systemd unit will look for the matching OSD device, and by looking at its
-:term:`LVM tags` will proceed to:
-
-# mount the device in the corresponding location (by convention this is
- ``/var/lib/ceph/osd/<cluster name>-<osd id>/``)
-
-# ensure that all required devices are ready for that OSD
-
-# start the ``ceph-osd@0`` systemd unit
-
-.. note:: The system infers the objectstore type (filestore or bluestore) by
- inspecting the LVM tags applied to the OSD devices
-
-Existing OSDs
--------------
-For exsiting OSDs that have been deployed with different tooling, the only way
-to port them over to the new mechanism is to prepare them again (losing data).
-See :ref:`ceph-volume-lvm-existing-osds` for details on how to proceed.
-
-Summary
--------
-To recap the ``activate`` process for :term:`bluestore`:
-
-#. require both :term:`OSD id` and :term:`OSD uuid`
-#. enable the system unit with matching id and uuid
-#. Create the ``tmpfs`` mount at the OSD directory in
- ``/var/lib/ceph/osd/$cluster-$id/``
-#. Recreate all the files needed with ``ceph-bluestore-tool prime-osd-dir`` by
- pointing it to the OSD ``block`` device.
-#. the systemd unit will ensure all devices are ready and linked
-#. the matching ``ceph-osd`` systemd unit will get started
-
-And for :term:`filestore`:
-
-#. require both :term:`OSD id` and :term:`OSD uuid`
-#. enable the system unit with matching id and uuid
-#. the systemd unit will ensure all devices are ready and mounted (if needed)
-#. the matching ``ceph-osd`` systemd unit will get started
diff --git a/src/ceph/doc/ceph-volume/lvm/create.rst b/src/ceph/doc/ceph-volume/lvm/create.rst
deleted file mode 100644
index c90d1f6..0000000
--- a/src/ceph/doc/ceph-volume/lvm/create.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-.. _ceph-volume-lvm-create:
-
-``create``
-===========
-This subcommand wraps the two-step process to provision a new osd (calling
-``prepare`` first and then ``activate``) into a single
-one. The reason to prefer ``prepare`` and then ``activate`` is to gradually
-introduce new OSDs into a cluster, and avoiding large amounts of data being
-rebalanced.
-
-The single-call process unifies exactly what :ref:`ceph-volume-lvm-prepare` and
-:ref:`ceph-volume-lvm-activate` do, with the convenience of doing it all at
-once.
-
-There is nothing different to the process except the OSD will become up and in
-immediately after completion.
-
-The backing objectstore can be specified with:
-
-* :ref:`--filestore <ceph-volume-lvm-prepare_filestore>`
-* :ref:`--bluestore <ceph-volume-lvm-prepare_bluestore>`
-
-All command line flags and options are the same as ``ceph-volume lvm prepare``.
-Please refer to :ref:`ceph-volume-lvm-prepare` for details.
diff --git a/src/ceph/doc/ceph-volume/lvm/index.rst b/src/ceph/doc/ceph-volume/lvm/index.rst
deleted file mode 100644
index 9a2191f..0000000
--- a/src/ceph/doc/ceph-volume/lvm/index.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _ceph-volume-lvm:
-
-``lvm``
-=======
-Implements the functionality needed to deploy OSDs from the ``lvm`` subcommand:
-``ceph-volume lvm``
-
-**Command Line Subcommands**
-
-* :ref:`ceph-volume-lvm-prepare`
-
-* :ref:`ceph-volume-lvm-activate`
-
-* :ref:`ceph-volume-lvm-create`
-
-* :ref:`ceph-volume-lvm-list`
-
-.. not yet implemented
-.. * :ref:`ceph-volume-lvm-scan`
-
-**Internal functionality**
-
-There are other aspects of the ``lvm`` subcommand that are internal and not
-exposed to the user, these sections explain how these pieces work together,
-clarifying the workflows of the tool.
-
-:ref:`Systemd Units <ceph-volume-lvm-systemd>` |
-:ref:`lvm <ceph-volume-lvm-api>`
diff --git a/src/ceph/doc/ceph-volume/lvm/list.rst b/src/ceph/doc/ceph-volume/lvm/list.rst
deleted file mode 100644
index 19e0600..0000000
--- a/src/ceph/doc/ceph-volume/lvm/list.rst
+++ /dev/null
@@ -1,173 +0,0 @@
-.. _ceph-volume-lvm-list:
-
-``list``
-========
-This subcommand will list any devices (logical and physical) that may be
-associated with a Ceph cluster, as long as they contain enough metadata to
-allow for that discovery.
-
-Output is grouped by the OSD ID associated with the devices, and unlike
-``ceph-disk`` it does not provide any information for devices that aren't
-associated with Ceph.
-
-Command line options:
-
-* ``--format`` Allows a ``json`` or ``pretty`` value. Defaults to ``pretty``
- which will group the device information in a human-readable format.
-
-Full Reporting
---------------
-When no positional arguments are used, a full reporting will be presented. This
-means that all devices and logical volumes found in the system will be
-displayed.
-
-Full ``pretty`` reporting for two OSDs, one with a lv as a journal, and another
-one with a physical device may look similar to::
-
- # ceph-volume lvm list
-
-
- ====== osd.1 =======
-
- [journal] /dev/journals/journal1
-
- journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
- osd id 1
- cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
- type journal
- osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
- data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
- journal device /dev/journals/journal1
- data device /dev/test_group/data-lv2
-
- [data] /dev/test_group/data-lv2
-
- journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
- osd id 1
- cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
- type data
- osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
- data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
- journal device /dev/journals/journal1
- data device /dev/test_group/data-lv2
-
- ====== osd.0 =======
-
- [data] /dev/test_group/data-lv1
-
- journal uuid cd72bd28-002a-48da-bdf6-d5b993e84f3f
- osd id 0
- cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
- type data
- osd fsid 943949f0-ce37-47ca-a33c-3413d46ee9ec
- data uuid TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00
- journal device /dev/sdd1
- data device /dev/test_group/data-lv1
-
- [journal] /dev/sdd1
-
- PARTUUID cd72bd28-002a-48da-bdf6-d5b993e84f3f
-
-.. note:: Tags are displayed in a readable format. The ``osd id`` key is stored
- as a ``ceph.osd_id`` tag. For more information on lvm tag conventions
- see :ref:`ceph-volume-lvm-tag-api`
-
-Single Reporting
-----------------
-Single reporting can consume both devices and logical volumes as input
-(positional parameters). For logical volumes, it is required to use the group
-name as well as the logical volume name.
-
-For example the ``data-lv2`` logical volume, in the ``test_group`` volume group
-can be listed in the following way::
-
- # ceph-volume lvm list test_group/data-lv2
-
-
- ====== osd.1 =======
-
- [data] /dev/test_group/data-lv2
-
- journal uuid C65n7d-B1gy-cqX3-vZKY-ZoE0-IEYM-HnIJzs
- osd id 1
- cluster fsid ce454d91-d748-4751-a318-ff7f7aa18ffd
- type data
- osd fsid 661b24f8-e062-482b-8110-826ffe7f13fa
- data uuid SlEgHe-jX1H-QBQk-Sce0-RUls-8KlY-g8HgcZ
- journal device /dev/journals/journal1
- data device /dev/test_group/data-lv2
-
-
-.. note:: Tags are displayed in a readable format. The ``osd id`` key is stored
- as a ``ceph.osd_id`` tag. For more information on lvm tag conventions
- see :ref:`ceph-volume-lvm-tag-api`
-
-
-For plain disks, the full path to the device is required. For example, for
-a device like ``/dev/sdd1`` it can look like::
-
-
- # ceph-volume lvm list /dev/sdd1
-
-
- ====== osd.0 =======
-
- [journal] /dev/sdd1
-
- PARTUUID cd72bd28-002a-48da-bdf6-d5b993e84f3f
-
-
-
-``json`` output
----------------
-All output using ``--format=json`` will show everything the system has stored
-as metadata for the devices, including tags.
-
-No changes for readability are done with ``json`` reporting, and all
-information is presented as-is. Full output as well as single devices can be
-listed.
-
-For brevity, this is how a single logical volume would look with ``json``
-output (note how tags aren't modified)::
-
- # ceph-volume lvm list --format=json test_group/data-lv1
- {
- "0": [
- {
- "lv_name": "data-lv1",
- "lv_path": "/dev/test_group/data-lv1",
- "lv_tags": "ceph.cluster_fsid=ce454d91-d748-4751-a318-ff7f7aa18ffd,ceph.data_device=/dev/test_group/data-lv1,ceph.data_uuid=TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00,ceph.journal_device=/dev/sdd1,ceph.journal_uuid=cd72bd28-002a-48da-bdf6-d5b993e84f3f,ceph.osd_fsid=943949f0-ce37-47ca-a33c-3413d46ee9ec,ceph.osd_id=0,ceph.type=data",
- "lv_uuid": "TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00",
- "name": "data-lv1",
- "path": "/dev/test_group/data-lv1",
- "tags": {
- "ceph.cluster_fsid": "ce454d91-d748-4751-a318-ff7f7aa18ffd",
- "ceph.data_device": "/dev/test_group/data-lv1",
- "ceph.data_uuid": "TUpfel-Q5ZT-eFph-bdGW-SiNW-l0ag-f5kh00",
- "ceph.journal_device": "/dev/sdd1",
- "ceph.journal_uuid": "cd72bd28-002a-48da-bdf6-d5b993e84f3f",
- "ceph.osd_fsid": "943949f0-ce37-47ca-a33c-3413d46ee9ec",
- "ceph.osd_id": "0",
- "ceph.type": "data"
- },
- "type": "data",
- "vg_name": "test_group"
- }
- ]
- }
-
-
-Synchronized information
-------------------------
-Before any listing type, the lvm API is queried to ensure that physical devices
-that may be in use haven't changed naming. It is possible that non-persistent
-devices like ``/dev/sda1`` could change to ``/dev/sdb1``.
-
-The detection is possible because the ``PARTUUID`` is stored as part of the
-metadata in the logical volume for the data lv. Even in the case of a journal
-that is a physical device, this information is still stored on the data logical
-volume associated with it.
-
-If the name is no longer the same (as reported by ``blkid`` when using the
-``PARTUUID``), the tag will get updated and the report will use the newly
-refreshed information.
diff --git a/src/ceph/doc/ceph-volume/lvm/prepare.rst b/src/ceph/doc/ceph-volume/lvm/prepare.rst
deleted file mode 100644
index 27ebb55..0000000
--- a/src/ceph/doc/ceph-volume/lvm/prepare.rst
+++ /dev/null
@@ -1,241 +0,0 @@
-.. _ceph-volume-lvm-prepare:
-
-``prepare``
-===========
-This subcommand allows a :term:`filestore` or :term:`bluestore` setup. It is
-recommended to pre-provision a logical volume before using it with
-``ceph-volume lvm``.
-
-Logical volumes are not altered except for adding extra metadata.
-
-.. note:: This is part of a two step process to deploy an OSD. If looking for
- a single-call way, please see :ref:`ceph-volume-lvm-create`
-
-To help identify volumes, the process of preparing a volume (or volumes) to
-work with Ceph, the tool will assign a few pieces of metadata information using
-:term:`LVM tags`.
-
-:term:`LVM tags` makes volumes easy to discover later, and help identify them as
-part of a Ceph system, and what role they have (journal, filestore, bluestore,
-etc...)
-
-Although initially :term:`filestore` is supported (and supported by default)
-the back end can be specified with:
-
-
-* :ref:`--filestore <ceph-volume-lvm-prepare_filestore>`
-* :ref:`--bluestore <ceph-volume-lvm-prepare_bluestore>`
-
-.. _ceph-volume-lvm-prepare_filestore:
-
-``filestore``
--------------
-This is the OSD backend that allows preparation of logical volumes for
-a :term:`filestore` objectstore OSD.
-
-It can use a logical volume for the OSD data and a partitioned physical device
-or logical volume for the journal. No special preparation is needed for these
-volumes other than following the minimum size requirements for data and
-journal.
-
-The API call looks like::
-
- ceph-volume prepare --filestore --data data --journal journal
-
-There is flexibility to use a raw device or partition as well for ``--data``
-that will be converted to a logical volume. This is not ideal in all situations
-since ``ceph-volume`` is just going to create a unique volume group and
-a logical volume from that device.
-
-When using logical volumes for ``--data``, the value *must* be a volume group
-name and a logical volume name separated by a ``/``. Since logical volume names
-are not enforced for uniqueness, this prevents using the wrong volume. The
-``--journal`` can be either a logical volume *or* a partition.
-
-When using a partition, it *must* contain a ``PARTUUID`` discoverable by
-``blkid``, so that it can later be identified correctly regardless of the
-device name (or path).
-
-When using a partition, this is how it would look for ``/dev/sdc1``::
-
- ceph-volume prepare --filestore --data volume_group/lv_name --journal /dev/sdc1
-
-For a logical volume, just like for ``--data``, a volume group and logical
-volume name are required::
-
- ceph-volume prepare --filestore --data volume_group/lv_name --journal volume_group/journal_lv
-
-A generated uuid is used to ask the cluster for a new OSD. These two pieces are
-crucial for identifying an OSD and will later be used throughout the
-:ref:`ceph-volume-lvm-activate` process.
-
-The OSD data directory is created using the following convention::
-
- /var/lib/ceph/osd/<cluster name>-<osd id>
-
-At this point the data volume is mounted at this location, and the journal
-volume is linked::
-
- ln -s /path/to/journal /var/lib/ceph/osd/<cluster_name>-<osd-id>/journal
-
-The monmap is fetched using the bootstrap key from the OSD::
-
- /usr/bin/ceph --cluster ceph --name client.bootstrap-osd
- --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring
- mon getmap -o /var/lib/ceph/osd/<cluster name>-<osd id>/activate.monmap
-
-``ceph-osd`` will be called to populate the OSD directory, that is already
-mounted, re-using all the pieces of information from the initial steps::
-
- ceph-osd --cluster ceph --mkfs --mkkey -i <osd id> \
- --monmap /var/lib/ceph/osd/<cluster name>-<osd id>/activate.monmap --osd-data \
- /var/lib/ceph/osd/<cluster name>-<osd id> --osd-journal /var/lib/ceph/osd/<cluster name>-<osd id>/journal \
- --osd-uuid <osd uuid> --keyring /var/lib/ceph/osd/<cluster name>-<osd id>/keyring \
- --setuser ceph --setgroup ceph
-
-.. _ceph-volume-lvm-existing-osds:
-
-Existing OSDs
--------------
-For existing clusters that want to use this new system and have OSDs that are
-already running there are a few things to take into account:
-
-.. warning:: this process will forcefully format the data device, destroying
- existing data, if any.
-
-* OSD paths should follow this convention::
-
- /var/lib/ceph/osd/<cluster name>-<osd id>
-
-* Preferably, no other mechanisms to mount the volume should exist, and should
- be removed (like fstab mount points)
-* There is currently no support for encrypted volumes
-
-The one time process for an existing OSD, with an ID of 0 and
-using a ``"ceph"`` cluster name would look like::
-
- ceph-volume lvm prepare --filestore --osd-id 0 --osd-fsid E3D291C1-E7BF-4984-9794-B60D9FA139CB
-
-The command line tool will not contact the monitor to generate an OSD ID and
-will format the LVM device in addition to storing the metadata on it so that it
-can later be startednot contact the monitor to generate an OSD ID and will
-format the LVM device in addition to storing the metadata on it so that it can
-later be started (for detailed metadata description see :ref:`ceph-volume-lvm-tags`).
-
-
-.. _ceph-volume-lvm-prepare_bluestore:
-
-``bluestore``
--------------
-The :term:`bluestore` objectstore is the default for new OSDs. It offers a bit
-more flexibility for devices. Bluestore supports the following configurations:
-
-* A block device, a block.wal, and a block.db device
-* A block device and a block.wal device
-* A block device and a block.db device
-* A single block device
-
-It can accept a whole device (or partition), or a logical volume for ``block``.
-If a physical device is provided it will then be turned into a logical volume.
-This allows a simpler approach at using LVM but at the cost of flexibility:
-there are no options or configurations to change how the LV is created.
-
-The ``block`` is specified with the ``--data`` flag, and in its simplest use
-case it looks like::
-
- ceph-volume lvm prepare --bluestore --data vg/lv
-
-A raw device can be specified in the same way::
-
- ceph-volume lvm prepare --bluestore --data /path/to/device
-
-
-If a ``block.db`` or a ``block.wal`` is needed (they are optional for
-bluestore) they can be specified with ``--block.db`` and ``--block.wal``
-accordingly. These can be a physical device (they **must** be a partition) or
-a logical volume.
-
-For both ``block.db`` and ``block.wal`` partitions aren't made logical volumes
-because they can be used as-is. Logical Volumes are also allowed.
-
-While creating the OSD directory, the process will use a ``tmpfs`` mount to
-place all the files needed for the OSD. These files are initially created by
-``ceph-osd --mkfs`` and are fully ephemeral.
-
-A symlink is always created for the ``block`` device, and optionally for
-``block.db`` and ``block.wal``. For a cluster with a default name, and an OSD
-id of 0, the directory could look like::
-
- # ls -l /var/lib/ceph/osd/ceph-0
- lrwxrwxrwx. 1 ceph ceph 93 Oct 20 13:05 block -> /dev/ceph-be2b6fbd-bcf2-4c51-b35d-a35a162a02f0/osd-block-25cf0a05-2bc6-44ef-9137-79d65bd7ad62
- lrwxrwxrwx. 1 ceph ceph 93 Oct 20 13:05 block.db -> /dev/sda1
- lrwxrwxrwx. 1 ceph ceph 93 Oct 20 13:05 block.wal -> /dev/ceph/osd-wal-0
- -rw-------. 1 ceph ceph 37 Oct 20 13:05 ceph_fsid
- -rw-------. 1 ceph ceph 37 Oct 20 13:05 fsid
- -rw-------. 1 ceph ceph 55 Oct 20 13:05 keyring
- -rw-------. 1 ceph ceph 6 Oct 20 13:05 ready
- -rw-------. 1 ceph ceph 10 Oct 20 13:05 type
- -rw-------. 1 ceph ceph 2 Oct 20 13:05 whoami
-
-In the above case, a device was used for ``block`` so ``ceph-volume`` create
-a volume group and a logical volume using the following convention:
-
-* volume group name: ``ceph-{cluster fsid}`` or if the vg exists already
- ``ceph-{random uuid}``
-
-* logical volume name: ``osd-block-{osd_fsid}``
-
-
-Storing metadata
-----------------
-The following tags will get applied as part of the preparation process
-regardless of the type of volume (journal or data) or OSD objectstore:
-
-* ``cluster_fsid``
-* ``encrypted``
-* ``osd_fsid``
-* ``osd_id``
-
-For :term:`filestore` these tags will be added:
-
-* ``journal_device``
-* ``journal_uuid``
-
-For :term:`bluestore` these tags will be added:
-
-* ``block_device``
-* ``block_uuid``
-* ``db_device``
-* ``db_uuid``
-* ``wal_device``
-* ``wal_uuid``
-
-.. note:: For the complete lvm tag conventions see :ref:`ceph-volume-lvm-tag-api`
-
-
-Summary
--------
-To recap the ``prepare`` process for :term:`bluestore`:
-
-#. Accept a logical volume for block or a raw device (that will get converted
- to an lv)
-#. Accept partitions or logical volumes for ``block.wal`` or ``block.db``
-#. Generate a UUID for the OSD
-#. Ask the monitor get an OSD ID reusing the generated UUID
-#. OSD data directory is created on a tmpfs mount.
-#. ``block``, ``block.wal``, and ``block.db`` are symlinked if defined.
-#. monmap is fetched for activation
-#. Data directory is populated by ``ceph-osd``
-#. Logical Volumes are are assigned all the Ceph metadata using lvm tags
-
-
-And the ``prepare`` process for :term:`filestore`:
-
-#. Accept only logical volumes for data and journal (both required)
-#. Generate a UUID for the OSD
-#. Ask the monitor get an OSD ID reusing the generated UUID
-#. OSD data directory is created and data volume mounted
-#. Journal is symlinked from data volume to journal location
-#. monmap is fetched for activation
-#. devices is mounted and data directory is populated by ``ceph-osd``
-#. data and journal volumes are assigned all the Ceph metadata using lvm tags
diff --git a/src/ceph/doc/ceph-volume/lvm/scan.rst b/src/ceph/doc/ceph-volume/lvm/scan.rst
deleted file mode 100644
index 96d2719..0000000
--- a/src/ceph/doc/ceph-volume/lvm/scan.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-scan
-====
-This sub-command will allow to discover Ceph volumes previously setup by the
-tool by looking into the system's logical volumes and their tags.
-
-As part of the the :ref:`ceph-volume-lvm-prepare` process, the logical volumes are assigned
-a few tags with important pieces of information.
-
-.. note:: This sub-command is not yet implemented
diff --git a/src/ceph/doc/ceph-volume/lvm/systemd.rst b/src/ceph/doc/ceph-volume/lvm/systemd.rst
deleted file mode 100644
index 30260de..0000000
--- a/src/ceph/doc/ceph-volume/lvm/systemd.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _ceph-volume-lvm-systemd:
-
-systemd
-=======
-Upon startup, it will identify the logical volume using :term:`LVM tags`,
-finding a matching ID and later ensuring it is the right one with
-the :term:`OSD uuid`.
-
-After identifying the correct volume it will then proceed to mount it by using
-the OSD destination conventions, that is::
-
- /var/lib/ceph/osd/<cluster name>-<osd id>
-
-For our example OSD with an id of ``0``, that means the identified device will
-be mounted at::
-
-
- /var/lib/ceph/osd/ceph-0
-
-
-Once that process is complete, a call will be made to start the OSD::
-
- systemctl start ceph-osd@0
-
-The systemd portion of this process is handled by the ``ceph-volume lvm
-trigger`` sub-command, which is only in charge of parsing metadata coming from
-systemd and startup, and then dispatching to ``ceph-volume lvm activate`` which
-would proceed with activation.
diff --git a/src/ceph/doc/ceph-volume/lvm/zap.rst b/src/ceph/doc/ceph-volume/lvm/zap.rst
deleted file mode 100644
index 8d42a90..0000000
--- a/src/ceph/doc/ceph-volume/lvm/zap.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _ceph-volume-lvm-zap:
-
-``zap``
-=======
-
-This subcommand is used to zap lvs or partitions that have been used
-by ceph OSDs so that they may be reused. If given a path to a logical
-volume it must be in the format of vg/lv. Any filesystems present
-on the given lv or partition will be removed and all data will be purged.
-
-.. note:: The lv or partition will be kept intact.
-
-Zapping a logical volume::
-
- ceph-volume lvm zap {vg name/lv name}
-
-Zapping a partition::
-
- ceph-volume lvm zap /dev/sdc1
diff --git a/src/ceph/doc/ceph-volume/simple/activate.rst b/src/ceph/doc/ceph-volume/simple/activate.rst
deleted file mode 100644
index edbb1e3..0000000
--- a/src/ceph/doc/ceph-volume/simple/activate.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-.. _ceph-volume-simple-activate:
-
-``activate``
-============
-Once :ref:`ceph-volume-simple-scan` has been completed, and all the metadata
-captured for an OSD has been persisted to ``/etc/ceph/osd/{id}-{uuid}.json``
-the OSD is now ready to get "activated".
-
-This activation process **disables** all ``ceph-disk`` systemd units by masking
-them, to prevent the UDEV/ceph-disk interaction that will attempt to start them
-up at boot time.
-
-The disabling of ``ceph-disk`` units is done only when calling ``ceph-volume
-simple activate`` directly, but is is avoided when being called by systemd when
-the system is booting up.
-
-The activation process requires using both the :term:`OSD id` and :term:`OSD uuid`
-To activate parsed OSDs::
-
- ceph-volume simple activate 0 6cc43680-4f6e-4feb-92ff-9c7ba204120e
-
-The above command will assume that a JSON configuration will be found in::
-
- /etc/ceph/osd/0-6cc43680-4f6e-4feb-92ff-9c7ba204120e.json
-
-Alternatively, using a path to a JSON file directly is also possible::
-
- ceph-volume simple activate --file /etc/ceph/osd/0-6cc43680-4f6e-4feb-92ff-9c7ba204120e.json
-
-requiring uuids
-^^^^^^^^^^^^^^^
-The :term:`OSD uuid` is being required as an extra step to ensure that the
-right OSD is being activated. It is entirely possible that a previous OSD with
-the same id exists and would end up activating the incorrect one.
-
-
-Discovery
----------
-With OSDs previously scanned by ``ceph-volume``, a *discovery* process is
-performed using ``blkid`` and ``lvm``. There is currently support only for
-devices with GPT partitions and LVM logical volumes.
-
-The GPT partitions will have a ``PARTUUID`` that can be queried by calling out
-to ``blkid``, and the logical volumes will have a ``lv_uuid`` that can be
-queried against ``lvs`` (the LVM tool to list logical volumes).
-
-This discovery process ensures that devices can be correctly detected even if
-they are repurposed into another system or if their name changes (as in the
-case of non-persisting names like ``/dev/sda1``)
-
-The JSON configuration file used to map what devices go to what OSD will then
-coordinate the mounting and symlinking as part of activation.
-
-To ensure that the symlinks are always correct, if they exist in the OSD
-directory, the symlinks will be re-done.
-
-A systemd unit will capture the :term:`OSD id` and :term:`OSD uuid` and
-persist it. Internally, the activation will enable it like::
-
- systemctl enable ceph-volume@simple-$id-$uuid
-
-For example::
-
- systemctl enable ceph-volume@simple-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-Would start the discovery process for the OSD with an id of ``0`` and a UUID of
-``8715BEB4-15C5-49DE-BA6F-401086EC7B41``.
-
-
-The systemd process will call out to activate passing the information needed to
-identify the OSD and its devices, and it will proceed to:
-
-# mount the device in the corresponding location (by convention this is
- ``/var/lib/ceph/osd/<cluster name>-<osd id>/``)
-
-# ensure that all required devices are ready for that OSD and properly linked,
-regardless of objectstore used (filestore or bluestore). The symbolic link will
-**always** be re-done to ensure that the correct device is linked.
-
-# start the ``ceph-osd@0`` systemd unit
diff --git a/src/ceph/doc/ceph-volume/simple/index.rst b/src/ceph/doc/ceph-volume/simple/index.rst
deleted file mode 100644
index 6f2534a..0000000
--- a/src/ceph/doc/ceph-volume/simple/index.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-.. _ceph-volume-simple:
-
-``simple``
-==========
-Implements the functionality needed to manage OSDs from the ``simple`` subcommand:
-``ceph-volume simple``
-
-**Command Line Subcommands**
-
-* :ref:`ceph-volume-simple-scan`
-
-* :ref:`ceph-volume-simple-activate`
-
-* :ref:`ceph-volume-simple-systemd`
-
-
-By *taking over* management, it disables all ``ceph-disk`` systemd units used
-to trigger devices at startup, relying on basic (customizable) JSON
-configuration and systemd for starting up OSDs.
diff --git a/src/ceph/doc/ceph-volume/simple/scan.rst b/src/ceph/doc/ceph-volume/simple/scan.rst
deleted file mode 100644
index afeddab..0000000
--- a/src/ceph/doc/ceph-volume/simple/scan.rst
+++ /dev/null
@@ -1,158 +0,0 @@
-.. _ceph-volume-simple-scan:
-
-``scan``
-========
-Scanning allows to capture any important details from an already-deployed OSD
-so that ``ceph-volume`` can manage it without the need of any other startup
-workflows or tools (like ``udev`` or ``ceph-disk``).
-
-The command has the ability to inspect a running OSD, by inspecting the
-directory where the OSD data is stored, or by consuming the data partition.
-
-Once scanned, information will (by default) persist the metadata as JSON in
-a file in ``/etc/ceph/osd``. This ``JSON`` file will use the naming convention
-of: ``{OSD ID}-{OSD FSID}.json``. An OSD with an id of 1, and an FSID like
-``86ebd829-1405-43d3-8fd6-4cbc9b6ecf96`` the absolute path of the file would
-be::
-
- /etc/ceph/osd/1-86ebd829-1405-43d3-8fd6-4cbc9b6ecf96.json
-
-The ``scan`` subcommand will refuse to write to this file if it already exists.
-If overwriting the contents is needed, the ``--force`` flag must be used::
-
- ceph-volume simple scan --force {path}
-
-If there is no need to persist the ``JSON`` metadata, there is support to send
-the contents to ``stdout`` (no file will be written)::
-
- ceph-volume simple scan --stdout {path}
-
-
-.. _ceph-volume-simple-scan-directory:
-
-Directory scan
---------------
-The directory scan will capture OSD file contents from interesting files. There
-are a few files that must exist in order to have a successful scan:
-
-* ``ceph_fsid``
-* ``fsid``
-* ``keyring``
-* ``ready``
-* ``type``
-* ``whoami``
-
-In the case of any other file, as long as it is not a binary or a directory, it
-will also get captured and persisted as part of the JSON object.
-
-The convention for the keys in the JSON object is that any file name will be
-a key, and its contents will be its value. If the contents are a single line
-(like in the case of the ``whoami``) the contents are trimmed, and the newline
-is dropped. For example with an OSD with an id of 1, this is how the JSON entry
-would look like::
-
- "whoami": "1",
-
-For files that may have more than one line, the contents are left as-is, for
-example, a ``keyring`` could look like this::
-
- "keyring": "[osd.1]\n\tkey = AQBBJ/dZp57NIBAAtnuQS9WOS0hnLVe0rZnE6Q==\n",
-
-For a directory like ``/var/lib/ceph/osd/ceph-1``, the command could look
-like::
-
- ceph-volume simple scan /var/lib/ceph/osd/ceph1
-
-
-.. note:: There is no support for encrypted OSDs
-
-
-.. _ceph-volume-simple-scan-device:
-
-Device scan
------------
-When an OSD directory is not available (OSD is not running, or device is not
-mounted) the ``scan`` command is able to introspect the device to capture
-required data. Just like :ref:`ceph-volume-simple-scan-directory`, it would
-still require a few files present. This means that the device to be scanned
-**must be** the data partition of the OSD.
-
-As long as the data partition of the OSD is being passed in as an argument, the
-sub-command can scan its contents.
-
-In the case where the device is already mounted, the tool can detect this
-scenario and capture file contents from that directory.
-
-If the device is not mounted, a temporary directory will be created, and the
-device will be mounted temporarily just for scanning the contents. Once
-contents are scanned, the device will be unmounted.
-
-For a device like ``/dev/sda1`` which **must** be a data partition, the command
-could look like::
-
- ceph-volume simple scan /dev/sda1
-
-
-.. note:: There is no support for encrypted OSDs
-
-
-.. _ceph-volume-simple-scan-json:
-
-``JSON`` contents
------------------
-The contents of the JSON object is very simple. The scan not only will persist
-information from the special OSD files and their contents, but will also
-validate paths and device UUIDs. Unlike what ``ceph-disk`` would do, by storing
-them in ``{device type}_uuid`` files, the tool will persist them as part of the
-device type key.
-
-For example, a ``block.db`` device would look something like::
-
- "block.db": {
- "path": "/dev/disk/by-partuuid/6cc43680-4f6e-4feb-92ff-9c7ba204120e",
- "uuid": "6cc43680-4f6e-4feb-92ff-9c7ba204120e"
- },
-
-But it will also persist the ``ceph-disk`` special file generated, like so::
-
- "block.db_uuid": "6cc43680-4f6e-4feb-92ff-9c7ba204120e",
-
-This duplication is in place because the tool is trying to ensure the
-following:
-
-# Support OSDs that may not have ceph-disk special files
-# Check the most up-to-date information on the device, by querying against LVM
-and ``blkid``
-# Support both logical volumes and GPT devices
-
-This is a sample ``JSON`` metadata, from an OSD that is using ``bluestore``::
-
- {
- "active": "ok",
- "block": {
- "path": "/dev/disk/by-partuuid/40fd0a64-caa5-43a3-9717-1836ac661a12",
- "uuid": "40fd0a64-caa5-43a3-9717-1836ac661a12"
- },
- "block.db": {
- "path": "/dev/disk/by-partuuid/6cc43680-4f6e-4feb-92ff-9c7ba204120e",
- "uuid": "6cc43680-4f6e-4feb-92ff-9c7ba204120e"
- },
- "block.db_uuid": "6cc43680-4f6e-4feb-92ff-9c7ba204120e",
- "block_uuid": "40fd0a64-caa5-43a3-9717-1836ac661a12",
- "bluefs": "1",
- "ceph_fsid": "c92fc9eb-0610-4363-aafc-81ddf70aaf1b",
- "cluster_name": "ceph",
- "data": {
- "path": "/dev/sdr1",
- "uuid": "86ebd829-1405-43d3-8fd6-4cbc9b6ecf96"
- },
- "fsid": "86ebd829-1405-43d3-8fd6-4cbc9b6ecf96",
- "keyring": "[osd.3]\n\tkey = AQBBJ/dZp57NIBAAtnuQS9WOS0hnLVe0rZnE6Q==\n",
- "kv_backend": "rocksdb",
- "magic": "ceph osd volume v026",
- "mkfs_done": "yes",
- "ready": "ready",
- "systemd": "",
- "type": "bluestore",
- "whoami": "3"
- }
diff --git a/src/ceph/doc/ceph-volume/simple/systemd.rst b/src/ceph/doc/ceph-volume/simple/systemd.rst
deleted file mode 100644
index aa5bebf..0000000
--- a/src/ceph/doc/ceph-volume/simple/systemd.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _ceph-volume-simple-systemd:
-
-systemd
-=======
-Upon startup, it will identify the logical volume by loading the JSON file in
-``/etc/ceph/osd/{id}-{uuid}.json`` corresponding to the instance name of the
-systemd unit.
-
-After identifying the correct volume it will then proceed to mount it by using
-the OSD destination conventions, that is::
-
- /var/lib/ceph/osd/{cluster name}-{osd id}
-
-For our example OSD with an id of ``0``, that means the identified device will
-be mounted at::
-
-
- /var/lib/ceph/osd/ceph-0
-
-
-Once that process is complete, a call will be made to start the OSD::
-
- systemctl start ceph-osd@0
-
-The systemd portion of this process is handled by the ``ceph-volume simple
-trigger`` sub-command, which is only in charge of parsing metadata coming from
-systemd and startup, and then dispatching to ``ceph-volume simple activate`` which
-would proceed with activation.
diff --git a/src/ceph/doc/ceph-volume/systemd.rst b/src/ceph/doc/ceph-volume/systemd.rst
deleted file mode 100644
index 6cbc112..0000000
--- a/src/ceph/doc/ceph-volume/systemd.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-.. _ceph-volume-systemd:
-
-systemd
-=======
-As part of the activation process (either with :ref:`ceph-volume-lvm-activate`
-or :ref:`ceph-volume-simple-activate`), systemd units will get enabled that
-will use the OSD id and uuid as part of their name. These units will be run
-when the system boots, and will proceed to activate their corresponding
-volumes via their sub-command implementation.
-
-The API for activation is a bit loose, it only requires two parts: the
-subcommand to use and any extra meta information separated by a dash. This
-convention makes the units look like::
-
- ceph-volume@{command}-{extra metadata}
-
-The *extra metadata* can be anything needed that the subcommand implementing
-the processing might need. In the case of :ref:`ceph-volume-lvm` and
-:ref:`ceph-volume-simple`, both look to consume the :term:`OSD id` and :term:`OSD uuid`,
-but this is not a hard requirement, it is just how the sub-commands are
-implemented.
-
-Both the command and extra metadata gets persisted by systemd as part of the
-*"instance name"* of the unit. For example an OSD with an ID of 0, for the
-``lvm`` sub-command would look like::
-
- systemctl enable ceph-volume@lvm-0-0A3E1ED2-DA8A-4F0E-AA95-61DEC71768D6
-
-The enabled unit is a :term:`systemd oneshot` service, meant to start at boot
-after the local filesystem is ready to be used.
-
-
-Failure and Retries
--------------------
-It is common to have failures when a system is coming up online. The devices
-are sometimes not fully available and this unpredictable behavior may cause an
-OSD to not be ready to be used.
-
-There are two configurable environment variables used to set the retry
-behavior:
-
-* ``CEPH_VOLUME_SYSTEMD_TRIES``: Defaults to 30
-* ``CEPH_VOLUME_SYSTEMD_INTERVAL``: Defaults to 5
-
-The *"tries"* is a number that sets the maximum amount of times the unit will
-attempt to activate an OSD before giving up.
-
-The *"interval"* is a value in seconds that determines the waiting time before
-initiating another try at activating the OSD.
diff --git a/src/ceph/doc/cephfs/administration.rst b/src/ceph/doc/cephfs/administration.rst
deleted file mode 100644
index e9d9195..0000000
--- a/src/ceph/doc/cephfs/administration.rst
+++ /dev/null
@@ -1,198 +0,0 @@
-
-CephFS Administrative commands
-==============================
-
-Filesystems
------------
-
-These commands operate on the CephFS filesystems in your Ceph cluster.
-Note that by default only one filesystem is permitted: to enable
-creation of multiple filesystems use ``ceph fs flag set enable_multiple true``.
-
-::
-
- fs new <filesystem name> <metadata pool name> <data pool name>
-
-::
-
- fs ls
-
-::
-
- fs rm <filesystem name> [--yes-i-really-mean-it]
-
-::
-
- fs reset <filesystem name>
-
-::
-
- fs get <filesystem name>
-
-::
-
- fs set <filesystem name> <var> <val>
-
-::
-
- fs add_data_pool <filesystem name> <pool name/id>
-
-::
-
- fs rm_data_pool <filesystem name> <pool name/id>
-
-
-Settings
---------
-
-::
-
- fs set <fs name> max_file_size <size in bytes>
-
-CephFS has a configurable maximum file size, and it's 1TB by default.
-You may wish to set this limit higher if you expect to store large files
-in CephFS. It is a 64-bit field.
-
-Setting ``max_file_size`` to 0 does not disable the limit. It would
-simply limit clients to only creating empty files.
-
-
-Maximum file sizes and performance
-----------------------------------
-
-CephFS enforces the maximum file size limit at the point of appending to
-files or setting their size. It does not affect how anything is stored.
-
-When users create a file of an enormous size (without necessarily
-writing any data to it), some operations (such as deletes) cause the MDS
-to have to do a large number of operations to check if any of the RADOS
-objects within the range that could exist (according to the file size)
-really existed.
-
-The ``max_file_size`` setting prevents users from creating files that
-appear to be eg. exabytes in size, causing load on the MDS as it tries
-to enumerate the objects during operations like stats or deletes.
-
-
-Daemons
--------
-
-These commands act on specific mds daemons or ranks.
-
-::
-
- mds fail <gid/name/role>
-
-Mark an MDS daemon as failed. This is equivalent to what the cluster
-would do if an MDS daemon had failed to send a message to the mon
-for ``mds_beacon_grace`` second. If the daemon was active and a suitable
-standby is available, using ``mds fail`` will force a failover to the standby.
-
-If the MDS daemon was in reality still running, then using ``mds fail``
-will cause the daemon to restart. If it was active and a standby was
-available, then the "failed" daemon will return as a standby.
-
-::
-
- mds deactivate <role>
-
-Deactivate an MDS, causing it to flush its entire journal to
-backing RADOS objects and close all open client sessions. Deactivating an MDS
-is primarily intended for bringing down a rank after reducing the number of
-active MDS (max_mds). Once the rank is deactivated, the MDS daemon will rejoin the
-cluster as a standby.
-``<role>`` can take one of three forms:
-
-::
-
- <fs_name>:<rank>
- <fs_id>:<rank>
- <rank>
-
-Use ``mds deactivate`` in conjunction with adjustments to ``max_mds`` to
-shrink an MDS cluster. See :doc:`/cephfs/multimds`
-
-::
-
- tell mds.<daemon name>
-
-::
-
- mds metadata <gid/name/role>
-
-::
-
- mds repaired <role>
-
-
-Global settings
----------------
-
-::
-
- fs dump
-
-::
-
- fs flag set <flag name> <flag val> [<confirmation string>]
-
-"flag name" must be one of ['enable_multiple']
-
-Some flags require you to confirm your intentions with "--yes-i-really-mean-it"
-or a similar string they will prompt you with. Consider these actions carefully
-before proceeding; they are placed on especially dangerous activities.
-
-
-Advanced
---------
-
-These commands are not required in normal operation, and exist
-for use in exceptional circumstances. Incorrect use of these
-commands may cause serious problems, such as an inaccessible
-filesystem.
-
-::
-
- mds compat rm_compat
-
-::
-
- mds compat rm_incompat
-
-::
-
- mds compat show
-
-::
-
- mds getmap
-
-::
-
- mds set_state
-
-::
-
- mds rmfailed
-
-Legacy
-------
-
-The ``ceph mds set`` command is the deprecated version of ``ceph fs set``,
-from before there was more than one filesystem per cluster. It operates
-on whichever filesystem is marked as the default (see ``ceph fs
-set-default``.)
-
-::
-
- mds stat
- mds dump # replaced by "fs get"
- mds stop # replaced by "mds deactivate"
- mds set_max_mds # replaced by "fs set max_mds"
- mds set # replaced by "fs set"
- mds cluster_down # replaced by "fs set cluster_down"
- mds cluster_up # replaced by "fs set cluster_up"
- mds newfs # replaced by "fs new"
- mds add_data_pool # replaced by "fs add_data_pool"
- mds remove_data_pool #replaced by "fs remove_data_pool"
-
diff --git a/src/ceph/doc/cephfs/best-practices.rst b/src/ceph/doc/cephfs/best-practices.rst
deleted file mode 100644
index 79c638e..0000000
--- a/src/ceph/doc/cephfs/best-practices.rst
+++ /dev/null
@@ -1,88 +0,0 @@
-
-CephFS best practices
-=====================
-
-This guide provides recommendations for best results when deploying CephFS.
-
-For the actual configuration guide for CephFS, please see the instructions
-at :doc:`/cephfs/index`.
-
-Which Ceph version?
--------------------
-
-Use at least the Jewel (v10.2.0) release of Ceph. This is the first
-release to include stable CephFS code and fsck/repair tools. Make sure
-you are using the latest point release to get bug fixes.
-
-Note that Ceph releases do not include a kernel, this is versioned
-and released separately. See below for guidance of choosing an
-appropriate kernel version if you are using the kernel client
-for CephFS.
-
-Most stable configuration
--------------------------
-
-Some features in CephFS are still experimental. See
-:doc:`/cephfs/experimental-features` for guidance on these.
-
-For the best chance of a happy healthy filesystem, use a **single active MDS**
-and **do not use snapshots**. Both of these are the default.
-
-Note that creating multiple MDS daemons is fine, as these will simply be
-used as standbys. However, for best stability you should avoid
-adjusting ``max_mds`` upwards, as this would cause multiple
-daemons to be active at once.
-
-Which client?
--------------
-
-The fuse client is the easiest way to get up to date code, while
-the kernel client will often give better performance.
-
-The clients do not always provide equivalent functionality, for example
-the fuse client supports client-enforced quotas while the kernel client
-does not.
-
-When encountering bugs or performance issues, it is often instructive to
-try using the other client, in order to find out whether the bug was
-client-specific or not (and then to let the developers know).
-
-Which kernel version?
-~~~~~~~~~~~~~~~~~~~~~
-
-Because the kernel client is distributed as part of the linux kernel (not
-as part of packaged ceph releases),
-you will need to consider which kernel version to use on your client nodes.
-Older kernels are known to include buggy ceph clients, and may not support
-features that more recent Ceph clusters support.
-
-Remember that the "latest" kernel in a stable linux distribution is likely
-to be years behind the latest upstream linux kernel where Ceph development
-takes place (including bug fixes).
-
-As a rough guide, as of Ceph 10.x (Jewel), you should be using a least a
-4.x kernel. If you absolutely have to use an older kernel, you should use
-the fuse client instead of the kernel client.
-
-This advice does not apply if you are using a linux distribution that
-includes CephFS support, as in this case the distributor will be responsible
-for backporting fixes to their stable kernel: check with your vendor.
-
-Reporting issues
-----------------
-
-If you have identified a specific issue, please report it with as much
-information as possible. Especially important information:
-
-* Ceph versions installed on client and server
-* Whether you are using the kernel or fuse client
-* If you are using the kernel client, what kernel version?
-* How many clients are in play, doing what kind of workload?
-* If a system is 'stuck', is that affecting all clients or just one?
-* Any ceph health messages
-* Any backtraces in the ceph logs from crashes
-
-If you are satisfied that you have found a bug, please file it on
-http://tracker.ceph.com. For more general queries please write
-to the ceph-users mailing list.
-
diff --git a/src/ceph/doc/cephfs/capabilities.rst b/src/ceph/doc/cephfs/capabilities.rst
deleted file mode 100644
index 7cd2716..0000000
--- a/src/ceph/doc/cephfs/capabilities.rst
+++ /dev/null
@@ -1,111 +0,0 @@
-======================
-Capabilities in CephFS
-======================
-When a client wants to operate on an inode, it will query the MDS in various
-ways, which will then grant the client a set of **capabilities**. These
-grant the client permissions to operate on the inode in various ways. One
-of the major differences from other network filesystems (e.g NFS or SMB) is
-that the capabilities granted are quite granular, and it's possible that
-multiple clients can hold different capabilities on the same inodes.
-
-Types of Capabilities
----------------------
-There are several "generic" capability bits. These denote what sort of ability
-the capability grants.
-
-::
-
- /* generic cap bits */
- #define CEPH_CAP_GSHARED 1 /* client can reads (s) */
- #define CEPH_CAP_GEXCL 2 /* client can read and update (x) */
- #define CEPH_CAP_GCACHE 4 /* (file) client can cache reads (c) */
- #define CEPH_CAP_GRD 8 /* (file) client can read (r) */
- #define CEPH_CAP_GWR 16 /* (file) client can write (w) */
- #define CEPH_CAP_GBUFFER 32 /* (file) client can buffer writes (b) */
- #define CEPH_CAP_GWREXTEND 64 /* (file) client can extend EOF (a) */
- #define CEPH_CAP_GLAZYIO 128 /* (file) client can perform lazy io (l) */
-
-These are then shifted by a particular number of bits. These denote a part of
-the inode's data or metadata on which the capability is being granted:
-
-::
-
- /* per-lock shift */
- #define CEPH_CAP_SAUTH 2 /* A */
- #define CEPH_CAP_SLINK 4 /* L */
- #define CEPH_CAP_SXATTR 6 /* X */
- #define CEPH_CAP_SFILE 8 /* F */
-
-Only certain generic cap types are ever granted for some of those "shifts",
-however. In particular, only the FILE shift ever has more than the first two
-bits.
-
-::
-
- | AUTH | LINK | XATTR | FILE
- 2 4 6 8
-
-From the above, we get a number of constants, that are generated by taking
-each bit value and shifting to the correct bit in the word:
-
-::
-
- #define CEPH_CAP_AUTH_SHARED (CEPH_CAP_GSHARED << CEPH_CAP_SAUTH)
-
-These bits can then be or'ed together to make a bitmask denoting a set of
-capabilities.
-
-There is one exception:
-
-::
-
- #define CEPH_CAP_PIN 1 /* no specific capabilities beyond the pin */
-
-The "pin" just pins the inode into memory, without granting any other caps.
-
-Graphically:
-
-::
-
- +---+---+---+---+---+---+---+---+
- | p | _ |As x |Ls x |Xs x |
- +---+---+---+---+---+---+---+---+
- |Fs x c r w b a l |
- +---+---+---+---+---+---+---+---+
-
-The second bit is currently unused.
-
-Abilities granted by each cap:
-------------------------------
-While that is how capabilities are granted (and communicated), the important
-bit is what they actually allow the client to do:
-
-* PIN: this just pins the inode into memory. This is sufficient to allow the
- client to get to the inode number, as well as other immutable things like
- major or minor numbers in a device inode, or symlink contents.
-
-* AUTH: this grants the ability to get to the authentication-related metadata.
- In particular, the owner, group and mode. Note that doing a full permission
- check may require getting at ACLs as well, which are stored in xattrs.
-
-* LINK: the link count of the inode
-
-* XATTR: ability to access or manipulate xattrs. Note that since ACLs are
- stored in xattrs, it's also sometimes necessary to access them when checking
- permissions.
-
-* FILE: this is the big one. These allow the client to access and manipulate
- file data. It also covers certain metadata relating to file data -- the
- size, mtime, atime and ctime, in particular.
-
-Shorthand:
-----------
-Note that the client logging can also present a compact representation of the
-capabilities. For example:
-
-::
- pAsLsXsFs
-
-The 'p' represents the pin. Each capital letter corresponds to the shift
-values, and the lowercase letters after each shift are for the actual
-capabilities granted in each shift.
diff --git a/src/ceph/doc/cephfs/cephfs-journal-tool.rst b/src/ceph/doc/cephfs/cephfs-journal-tool.rst
deleted file mode 100644
index 0dd54fb..0000000
--- a/src/ceph/doc/cephfs/cephfs-journal-tool.rst
+++ /dev/null
@@ -1,238 +0,0 @@
-
-cephfs-journal-tool
-===================
-
-Purpose
--------
-
-If a CephFS journal has become damaged, expert intervention may be required
-to restore the filesystem to a working state.
-
-The ``cephfs-journal-tool`` utility provides functionality to aid experts in
-examining, modifying, and extracting data from journals.
-
-.. warning::
-
- This tool is **dangerous** because it directly modifies internal
- data structures of the filesystem. Make backups, be careful, and
- seek expert advice. If you are unsure, do not run this tool.
-
-Syntax
-------
-
-::
-
- cephfs-journal-tool journal <inspect|import|export|reset>
- cephfs-journal-tool header <get|set>
- cephfs-journal-tool event <get|splice|apply> [filter] <list|json|summary>
-
-
-The tool operates in three modes: ``journal``, ``header`` and ``event``,
-meaning the whole journal, the header, and the events within the journal
-respectively.
-
-Journal mode
-------------
-
-This should be your starting point to assess the state of a journal.
-
-* ``inspect`` reports on the health of the journal. This will identify any
- missing objects or corruption in the stored journal. Note that this does
- not identify inconsistencies in the events themselves, just that events are
- present and can be decoded.
-
-* ``import`` and ``export`` read and write binary dumps of the journal
- in a sparse file format. Pass the filename as the last argument. The
- export operation may not work reliably for journals which are damaged (missing
- objects).
-
-* ``reset`` truncates a journal, discarding any information within it.
-
-
-Example: journal inspect
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- # cephfs-journal-tool journal inspect
- Overall journal integrity: DAMAGED
- Objects missing:
- 0x1
- Corrupt regions:
- 0x400000-ffffffffffffffff
-
-Example: Journal import/export
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- # cephfs-journal-tool journal export myjournal.bin
- journal is 4194304~80643
- read 80643 bytes at offset 4194304
- wrote 80643 bytes at offset 4194304 to myjournal.bin
- NOTE: this is a _sparse_ file; you can
- $ tar cSzf myjournal.bin.tgz myjournal.bin
- to efficiently compress it while preserving sparseness.
-
- # cephfs-journal-tool journal import myjournal.bin
- undump myjournal.bin
- start 4194304 len 80643
- writing header 200.00000000
- writing 4194304~80643
- done.
-
-.. note::
-
- It is wise to use the ``journal export <backup file>`` command to make a journal backup
- before any further manipulation.
-
-Header mode
------------
-
-* ``get`` outputs the current content of the journal header
-
-* ``set`` modifies an attribute of the header. Allowed attributes are
- ``trimmed_pos``, ``expire_pos`` and ``write_pos``.
-
-Example: header get/set
-~~~~~~~~~~~~~~~~~~~~~~~
-
-::
-
- # cephfs-journal-tool header get
- { "magic": "ceph fs volume v011",
- "write_pos": 4274947,
- "expire_pos": 4194304,
- "trimmed_pos": 4194303,
- "layout": { "stripe_unit": 4194304,
- "stripe_count": 4194304,
- "object_size": 4194304,
- "cas_hash": 4194304,
- "object_stripe_unit": 4194304,
- "pg_pool": 4194304}}
-
- # cephfs-journal-tool header set trimmed_pos 4194303
- Updating trimmed_pos 0x400000 -> 0x3fffff
- Successfully updated header.
-
-
-Event mode
-----------
-
-Event mode allows detailed examination and manipulation of the contents of the journal. Event
-mode can operate on all events in the journal, or filters may be applied.
-
-The arguments following ``cephfs-journal-tool event`` consist of an action, optional filter
-parameters, and an output mode:
-
-::
-
- cephfs-journal-tool event <action> [filter] <output>
-
-Actions:
-
-* ``get`` read the events from the log
-* ``splice`` erase events or regions in the journal
-* ``apply`` extract filesystem metadata from events and attempt to apply it to the metadata store.
-
-Filtering:
-
-* ``--range <int begin>..[int end]`` only include events within the range begin (inclusive) to end (exclusive)
-* ``--path <path substring>`` only include events referring to metadata containing the specified string
-* ``--inode <int>`` only include events referring to metadata containing the specified string
-* ``--type <type string>`` only include events of this type
-* ``--frag <ino>[.frag id]`` only include events referring to this directory fragment
-* ``--dname <string>`` only include events referring to this named dentry within a directory
- fragment (may only be used in conjunction with ``--frag``
-* ``--client <int>`` only include events from this client session ID
-
-Filters may be combined on an AND basis (i.e. only the intersection of events from each filter).
-
-Output modes:
-
-* ``binary``: write each event as a binary file, within a folder whose name is controlled by ``--path``
-* ``json``: write all events to a single file, as a JSON serialized list of objects
-* ``summary``: write a human readable summary of the events read to standard out
-* ``list``: write a human readable terse listing of the type of each event, and
- which file paths the event affects.
-
-
-Example: event mode
-~~~~~~~~~~~~~~~~~~~
-
-::
-
- # cephfs-journal-tool event get json --path output.json
- Wrote output to JSON file 'output.json'
-
- # cephfs-journal-tool event get summary
- Events by type:
- NOOP: 2
- OPEN: 2
- SESSION: 2
- SUBTREEMAP: 1
- UPDATE: 43
-
- # cephfs-journal-tool event get list
- 0x400000 SUBTREEMAP: ()
- 0x400308 SESSION: ()
- 0x4003de UPDATE: (setattr)
- /
- 0x40068b UPDATE: (mkdir)
- diralpha
- 0x400d1b UPDATE: (mkdir)
- diralpha/filealpha1
- 0x401666 UPDATE: (unlink_local)
- stray0/10000000001
- diralpha/filealpha1
- 0x40228d UPDATE: (unlink_local)
- diralpha
- stray0/10000000000
- 0x402bf9 UPDATE: (scatter_writebehind)
- stray0
- 0x403150 UPDATE: (mkdir)
- dirbravo
- 0x4037e0 UPDATE: (openc)
- dirbravo/.filebravo1.swp
- 0x404032 UPDATE: (openc)
- dirbravo/.filebravo1.swpx
-
- # cephfs-journal-tool event get --path /filebravo1 list
- 0x40785a UPDATE: (openc)
- dirbravo/filebravo1
- 0x4103ee UPDATE: (cap update)
- dirbravo/filebravo1
-
- # cephfs-journal-tool event splice --range 0x40f754..0x410bf1 summary
- Events by type:
- OPEN: 1
- UPDATE: 2
-
- # cephfs-journal-tool event apply --range 0x410bf1.. summary
- Events by type:
- NOOP: 1
- SESSION: 1
- UPDATE: 9
-
- # cephfs-journal-tool event get --inode=1099511627776 list
- 0x40068b UPDATE: (mkdir)
- diralpha
- 0x400d1b UPDATE: (mkdir)
- diralpha/filealpha1
- 0x401666 UPDATE: (unlink_local)
- stray0/10000000001
- diralpha/filealpha1
- 0x40228d UPDATE: (unlink_local)
- diralpha
- stray0/10000000000
-
- # cephfs-journal-tool event get --frag=1099511627776 --dname=filealpha1 list
- 0x400d1b UPDATE: (mkdir)
- diralpha/filealpha1
- 0x401666 UPDATE: (unlink_local)
- stray0/10000000001
- diralpha/filealpha1
-
- # cephfs-journal-tool event get binary --path bin_events
- Wrote output to binary files in directory 'bin_events'
-
diff --git a/src/ceph/doc/cephfs/client-auth.rst b/src/ceph/doc/cephfs/client-auth.rst
deleted file mode 100644
index fbf694b..0000000
--- a/src/ceph/doc/cephfs/client-auth.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-================================
-CephFS Client Capabilities
-================================
-
-Use Ceph authentication capabilities to restrict your filesystem clients
-to the lowest possible level of authority needed.
-
-.. note::
-
- Path restriction and layout modification restriction are new features
- in the Jewel release of Ceph.
-
-Path restriction
-================
-
-By default, clients are not restricted in what paths they are allowed to mount.
-Further, when clients mount a subdirectory, e.g., /home/user, the MDS does not
-by default verify that subsequent operations
-are ‘locked’ within that directory.
-
-To restrict clients to only mount and work within a certain directory, use
-path-based MDS authentication capabilities.
-
-Syntax
-------
-
-To grant rw access to the specified directory only, we mention the specified
-directory while creating key for a client using the following syntax. ::
-
- ceph fs authorize *filesystem_name* client.*client_name* /*specified_directory* rw
-
-for example, to restrict client ``foo`` to writing only in the ``bar`` directory of filesystem ``cephfs``, use ::
-
- ceph fs authorize cephfs client.foo / r /bar rw
-
-To completely restrict the client to the ``bar`` directory, omit the
-root directory ::
-
- ceph fs authorize cephfs client.foo /bar rw
-
-Note that if a client's read access is restricted to a path, they will only
-be able to mount the filesystem when specifying a readable path in the
-mount command (see below).
-
-
-See `User Management - Add a User to a Keyring`_. for additional details on user management
-
-To restrict a client to the specfied sub-directory only, we mention the specified
-directory while mounting using the following syntax. ::
-
- ./ceph-fuse -n client.*client_name* *mount_path* -r *directory_to_be_mounted*
-
-for example, to restrict client ``foo`` to ``mnt/bar`` directory, we will use. ::
-
- ./ceph-fuse -n client.foo mnt -r /bar
-
-Free space reporting
---------------------
-
-By default, when a client is mounting a sub-directory, the used space (``df``)
-will be calculated from the quota on that sub-directory, rather than reporting
-the overall amount of space used on the cluster.
-
-If you would like the client to report the overall usage of the filesystem,
-and not just the quota usage on the sub-directory mounted, then set the
-following config option on the client:
-
-::
-
- client quota df = false
-
-If quotas are not enabled, or no quota is set on the sub-directory mounted,
-then the overall usage of the filesystem will be reported irrespective of
-the value of this setting.
-
-Layout and Quota restriction (the 'p' flag)
-===========================================
-
-To set layouts or quotas, clients require the 'p' flag in addition to 'rw'.
-This restricts all the attributes that are set by special extended attributes
-with a "ceph." prefix, as well as restricting other means of setting
-these fields (such as openc operations with layouts).
-
-For example, in the following snippet client.0 can modify layouts and quotas,
-but client.1 cannot.
-
-::
-
- client.0
- key: AQAz7EVWygILFRAAdIcuJ12opU/JKyfFmxhuaw==
- caps: [mds] allow rwp
- caps: [mon] allow r
- caps: [osd] allow rw pool=data
-
- client.1
- key: AQAz7EVWygILFRAAdIcuJ12opU/JKyfFmxhuaw==
- caps: [mds] allow rw
- caps: [mon] allow r
- caps: [osd] allow rw pool=data
-
-
-.. _User Management - Add a User to a Keyring: ../../rados/operations/user-management/#add-a-user-to-a-keyring
diff --git a/src/ceph/doc/cephfs/client-config-ref.rst b/src/ceph/doc/cephfs/client-config-ref.rst
deleted file mode 100644
index 6a149ac..0000000
--- a/src/ceph/doc/cephfs/client-config-ref.rst
+++ /dev/null
@@ -1,214 +0,0 @@
-========================
- Client Config Reference
-========================
-
-``client acl type``
-
-:Description: Set the ACL type. Currently, only possible value is ``"posix_acl"`` to enable POSIX ACL, or an empty string. This option only takes effect when the ``fuse_default_permissions`` is set to ``false``.
-
-:Type: String
-:Default: ``""`` (no ACL enforcement)
-
-``client cache mid``
-
-:Description: Set client cache midpoint. The midpoint splits the least recently used lists into a hot and warm list.
-:Type: Float
-:Default: ``0.75``
-
-``client_cache_size``
-
-:Description: Set the number of inodes that the client keeps in the metadata cache.
-:Type: Integer
-:Default: ``16384``
-
-``client_caps_release_delay``
-
-:Description: Set the delay between capability releases in seconds. The delay sets how many seconds a client waits to release capabilities that it no longer needs in case the capabilities are needed for another user space operation.
-:Type: Integer
-:Default: ``5`` (seconds)
-
-``client_debug_force_sync_read``
-
-:Description: If set to ``true``, clients read data directly from OSDs instead of using a local page cache.
-:Type: Boolean
-:Default: ``false``
-
-``client_dirsize_rbytes``
-
-:Description: If set to ``true``, use the recursive size of a directory (that is, total of all descendants).
-:Type: Boolean
-:Default: ``true``
-
-``client_max_inline_size``
-
-:Description: Set the maximum size of inlined data stored in a file inode rather than in a separate data object in RADOS. This setting only applies if the ``inline_data`` flag is set on the MDS map.
-:Type: Integer
-:Default: ``4096``
-
-``client_metadata``
-
-:Description: Comma-delimited strings for client metadata sent to each MDS, in addition to the automatically generated version, host name, and other metadata.
-:Type: String
-:Default: ``""`` (no additional metadata)
-
-``client_mount_gid``
-
-:Description: Set the group ID of CephFS mount.
-:Type: Integer
-:Default: ``-1``
-
-``client_mount_timeout``
-
-:Description: Set the timeout for CephFS mount in seconds.
-:Type: Float
-:Default: ``300.0``
-
-``client_mount_uid``
-
-:Description: Set the user ID of CephFS mount.
-:Type: Integer
-:Default: ``-1``
-
-``client_mountpoint``
-
-:Description: Directory to mount on the CephFS file system. An alternative to the ``-r`` option of the ``ceph-fuse`` command.
-:Type: String
-:Default: ``"/"``
-
-``client_oc``
-
-:Description: Enable object caching.
-:Type: Boolean
-:Default: ``true``
-
-``client_oc_max_dirty``
-
-:Description: Set the maximum number of dirty bytes in the object cache.
-:Type: Integer
-:Default: ``104857600`` (100MB)
-
-``client_oc_max_dirty_age``
-
-:Description: Set the maximum age in seconds of dirty data in the object cache before writeback.
-:Type: Float
-:Default: ``5.0`` (seconds)
-
-``client_oc_max_objects``
-
-:Description: Set the maximum number of objects in the object cache.
-:Type: Integer
-:Default: ``1000``
-
-``client_oc_size``
-
-:Description: Set how many bytes of data will the client cache.
-:Type: Integer
-:Default: ``209715200`` (200 MB)
-
-``client_oc_target_dirty``
-
-:Description: Set the target size of dirty data. We recommend to keep this number low.
-:Type: Integer
-:Default: ``8388608`` (8MB)
-
-``client_permissions``
-
-:Description: Check client permissions on all I/O operations.
-:Type: Boolean
-:Default: ``true``
-
-``client_quota``
-
-:Description: Enable client quota checking if set to ``true``.
-:Type: Boolean
-:Default: ``true``
-
-``client_quota_df``
-
-:Description: Report root directory quota for the ``statfs`` operation.
-:Type: Boolean
-:Default: ``true``
-
-``client_readahead_max_bytes``
-
-:Description: Set the maximum number of bytes that the kernel reads ahead for future read operations. Overridden by the ``client_readahead_max_periods`` setting.
-:Type: Integer
-:Default: ``0`` (unlimited)
-
-``client_readahead_max_periods``
-
-:Description: Set the number of file layout periods (object size * number of stripes) that the kernel reads ahead. Overrides the ``client_readahead_max_bytes`` setting.
-:Type: Integer
-:Default: ``4``
-
-``client_readahead_min``
-
-:Description: Set the minimum number bytes that the kernel reads ahead.
-:Type: Integer
-:Default: ``131072`` (128KB)
-
-``client_reconnect_stale``
-
-:Description: Automatically reconnect stale session.
-:Type: Boolean
-:Default: ``false``
-
-``client_snapdir``
-
-:Description: Set the snapshot directory name.
-:Type: String
-:Default: ``".snap"``
-
-``client_tick_interval``
-
-:Description: Set the interval in seconds between capability renewal and other upkeep.
-:Type: Float
-:Default: ``1.0`` (seconds)
-
-``client_use_random_mds``
-
-:Description: Choose random MDS for each request.
-:Type: Boolean
-:Default: ``false``
-
-``fuse_default_permissions``
-
-:Description: When set to ``false``, ``ceph-fuse`` utility checks does its own permissions checking, instead of relying on the permissions enforcement in FUSE. Set to ``false`` together with the ``client acl type=posix_acl`` option to enable POSIX ACL.
-:Type: Boolean
-:Default: ``true``
-
-Developer Options
-#################
-
-.. important:: These options are internal. They are listed here only to complete the list of options.
-
-``client_debug_getattr_caps``
-
-:Description: Check if the reply from the MDS contains required capabilities.
-:Type: Boolean
-:Default: ``false``
-
-``client_debug_inject_tick_delay``
-
-:Description: Add artificial delay between client ticks.
-:Type: Integer
-:Default: ``0``
-
-``client_inject_fixed_oldest_tid``
-
-:Description:
-:Type: Boolean
-:Default: ``false``
-
-``client_inject_release_failure``
-
-:Description:
-:Type: Boolean
-:Default: ``false``
-
-``client_trace``
-
-:Description: The path to the trace file for all file operations. The output is designed to be used by the Ceph `synthetic client <../../man/8/ceph-syn>`_.
-:Type: String
-:Default: ``""`` (disabled)
-
diff --git a/src/ceph/doc/cephfs/createfs.rst b/src/ceph/doc/cephfs/createfs.rst
deleted file mode 100644
index 005ede8..0000000
--- a/src/ceph/doc/cephfs/createfs.rst
+++ /dev/null
@@ -1,62 +0,0 @@
-========================
-Create a Ceph filesystem
-========================
-
-.. tip::
-
- The ``ceph fs new`` command was introduced in Ceph 0.84. Prior to this release,
- no manual steps are required to create a filesystem, and pools named ``data`` and
- ``metadata`` exist by default.
-
- The Ceph command line now includes commands for creating and removing filesystems,
- but at present only one filesystem may exist at a time.
-
-A Ceph filesystem requires at least two RADOS pools, one for data and one for metadata.
-When configuring these pools, you might consider:
-
-- Using a higher replication level for the metadata pool, as any data
- loss in this pool can render the whole filesystem inaccessible.
-- Using lower-latency storage such as SSDs for the metadata pool, as this
- will directly affect the observed latency of filesystem operations
- on clients.
-
-Refer to :doc:`/rados/operations/pools` to learn more about managing pools. For
-example, to create two pools with default settings for use with a filesystem, you
-might run the following commands:
-
-.. code:: bash
-
- $ ceph osd pool create cephfs_data <pg_num>
- $ ceph osd pool create cephfs_metadata <pg_num>
-
-Once the pools are created, you may enable the filesystem using the ``fs new`` command:
-
-.. code:: bash
-
- $ ceph fs new <fs_name> <metadata> <data>
-
-For example:
-
-.. code:: bash
-
- $ ceph fs new cephfs cephfs_metadata cephfs_data
- $ ceph fs ls
- name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
-
-Once a filesystem has been created, your MDS(s) will be able to enter
-an *active* state. For example, in a single MDS system:
-
-.. code:: bash
-
- $ ceph mds stat
- e5: 1/1/1 up {0=a=up:active}
-
-Once the filesystem is created and the MDS is active, you are ready to mount
-the filesystem. If you have created more than one filesystem, you will
-choose which to use when mounting.
-
- - `Mount CephFS`_
- - `Mount CephFS as FUSE`_
-
-.. _Mount CephFS: ../../cephfs/kernel
-.. _Mount CephFS as FUSE: ../../cephfs/fuse
diff --git a/src/ceph/doc/cephfs/dirfrags.rst b/src/ceph/doc/cephfs/dirfrags.rst
deleted file mode 100644
index 717553f..0000000
--- a/src/ceph/doc/cephfs/dirfrags.rst
+++ /dev/null
@@ -1,100 +0,0 @@
-
-===================================
-Configuring Directory fragmentation
-===================================
-
-In CephFS, directories are *fragmented* when they become very large
-or very busy. This splits up the metadata so that it can be shared
-between multiple MDS daemons, and between multiple objects in the
-metadata pool.
-
-In normal operation, directory fragmentation is invisbible to
-users and administrators, and all the configuration settings mentioned
-here should be left at their default values.
-
-While directory fragmentation enables CephFS to handle very large
-numbers of entries in a single directory, application programmers should
-remain conservative about creating very large directories, as they still
-have a resource cost in situations such as a CephFS client listing
-the directory, where all the fragments must be loaded at once.
-
-All directories are initially created as a single fragment. This fragment
-may be *split* to divide up the directory into more fragments, and these
-fragments may be *merged* to reduce the number of fragments in the directory.
-
-Splitting and merging
-=====================
-
-An MDS will only consider doing splits and merges if the ``mds_bal_frag``
-setting is true in the MDS's configuration file, and the allow_dirfrags
-setting is true in the filesystem map (set on the mons). These settings
-are both true by default since the *Luminous* (12.2.x) release of Ceph.
-
-When an MDS identifies a directory fragment to be split, it does not
-do the split immediately. Because splitting interrupts metadata IO,
-a short delay is used to allow short bursts of client IO to complete
-before the split begins. This delay is configured with
-``mds_bal_fragment_interval``, which defaults to 5 seconds.
-
-When the split is done, the directory fragment is broken up into
-a power of two number of new fragments. The number of new
-fragments is given by two to the power ``mds_bal_split_bits``, i.e.
-if ``mds_bal_split_bits`` is 2, then four new fragments will be
-created. The default setting is 3, i.e. splits create 8 new fragments.
-
-The criteria for initiating a split or a merge are described in the
-following sections.
-
-Size thresholds
-===============
-
-A directory fragment is elegible for splitting when its size exceeds
-``mds_bal_split_size`` (default 10000). Ordinarily this split is
-delayed by ``mds_bal_fragment_interval``, but if the fragment size
-exceeds a factor of ``mds_bal_fragment_fast_factor`` the split size,
-the split will happen immediately (holding up any client metadata
-IO on the directory).
-
-``mds_bal_fragment_size_max`` is the hard limit on the size of
-directory fragments. If it is reached, clients will receive
-ENOSPC errors if they try to create files in the fragment. On
-a properly configured system, this limit should never be reached on
-ordinary directories, as they will have split long before. By default,
-this is set to 10 times the split size, giving a dirfrag size limit of
-100000. Increasing this limit may lead to oversized directory fragment
-objects in the metadata pool, which the OSDs may not be able to handle.
-
-A directory fragment is elegible for merging when its size is less
-than ``mds_bal_merge_size``. There is no merge equivalent of the
-"fast splitting" explained above: fast splitting exists to avoid
-creating oversized directory fragments, there is no equivalent issue
-to avoid when merging. The default merge size is 50.
-
-Activity thresholds
-===================
-
-In addition to splitting fragments based
-on their size, the MDS may split directory fragments if their
-activity exceeds a threshold.
-
-The MDS maintains separate time-decaying load counters for read and write
-operations on directory fragments. The decaying load counters have an
-exponential decay based on the ``mds_decay_halflife`` setting.
-
-On writes, the write counter is
-incremented, and compared with ``mds_bal_split_wr``, triggering a
-split if the threshold is exceeded. Write operations include metadata IO
-such as renames, unlinks and creations.
-
-The ``mds_bal_split_rd`` threshold is applied based on the read operation
-load counter, which tracks readdir operations.
-
-By the default, the read threshold is 25000 and the write threshold is
-10000, i.e. 2.5x as many reads as writes would be required to trigger
-a split.
-
-After fragments are split due to the activity thresholds, they are only
-merged based on the size threshold (``mds_bal_merge_size``), so
-a spike in activity may cause a directory to stay fragmented
-forever unless some entries are unlinked.
-
diff --git a/src/ceph/doc/cephfs/disaster-recovery.rst b/src/ceph/doc/cephfs/disaster-recovery.rst
deleted file mode 100644
index f47bd79..0000000
--- a/src/ceph/doc/cephfs/disaster-recovery.rst
+++ /dev/null
@@ -1,280 +0,0 @@
-
-Disaster recovery
-=================
-
-.. danger::
-
- The notes in this section are aimed at experts, making a best effort
- to recovery what they can from damaged filesystems. These steps
- have the potential to make things worse as well as better. If you
- are unsure, do not proceed.
-
-
-Journal export
---------------
-
-Before attempting dangerous operations, make a copy of the journal like so:
-
-::
-
- cephfs-journal-tool journal export backup.bin
-
-Note that this command may not always work if the journal is badly corrupted,
-in which case a RADOS-level copy should be made (http://tracker.ceph.com/issues/9902).
-
-
-Dentry recovery from journal
-----------------------------
-
-If a journal is damaged or for any reason an MDS is incapable of replaying it,
-attempt to recover what file metadata we can like so:
-
-::
-
- cephfs-journal-tool event recover_dentries summary
-
-This command by default acts on MDS rank 0, pass --rank=<n> to operate on other ranks.
-
-This command will write any inodes/dentries recoverable from the journal
-into the backing store, if these inodes/dentries are higher-versioned
-than the previous contents of the backing store. If any regions of the journal
-are missing/damaged, they will be skipped.
-
-Note that in addition to writing out dentries and inodes, this command will update
-the InoTables of each 'in' MDS rank, to indicate that any written inodes' numbers
-are now in use. In simple cases, this will result in an entirely valid backing
-store state.
-
-.. warning::
-
- The resulting state of the backing store is not guaranteed to be self-consistent,
- and an online MDS scrub will be required afterwards. The journal contents
- will not be modified by this command, you should truncate the journal
- separately after recovering what you can.
-
-Journal truncation
-------------------
-
-If the journal is corrupt or MDSs cannot replay it for any reason, you can
-truncate it like so:
-
-::
-
- cephfs-journal-tool journal reset
-
-.. warning::
-
- Resetting the journal *will* lose metadata unless you have extracted
- it by other means such as ``recover_dentries``. It is likely to leave
- some orphaned objects in the data pool. It may result in re-allocation
- of already-written inodes, such that permissions rules could be violated.
-
-MDS table wipes
----------------
-
-After the journal has been reset, it may no longer be consistent with respect
-to the contents of the MDS tables (InoTable, SessionMap, SnapServer).
-
-To reset the SessionMap (erase all sessions), use:
-
-::
-
- cephfs-table-tool all reset session
-
-This command acts on the tables of all 'in' MDS ranks. Replace 'all' with an MDS
-rank to operate on that rank only.
-
-The session table is the table most likely to need resetting, but if you know you
-also need to reset the other tables then replace 'session' with 'snap' or 'inode'.
-
-MDS map reset
--------------
-
-Once the in-RADOS state of the filesystem (i.e. contents of the metadata pool)
-is somewhat recovered, it may be necessary to update the MDS map to reflect
-the contents of the metadata pool. Use the following command to reset the MDS
-map to a single MDS:
-
-::
-
- ceph fs reset <fs name> --yes-i-really-mean-it
-
-Once this is run, any in-RADOS state for MDS ranks other than 0 will be ignored:
-as a result it is possible for this to result in data loss.
-
-One might wonder what the difference is between 'fs reset' and 'fs remove; fs new'. The
-key distinction is that doing a remove/new will leave rank 0 in 'creating' state, such
-that it would overwrite any existing root inode on disk and orphan any existing files. In
-contrast, the 'reset' command will leave rank 0 in 'active' state such that the next MDS
-daemon to claim the rank will go ahead and use the existing in-RADOS metadata.
-
-Recovery from missing metadata objects
---------------------------------------
-
-Depending on what objects are missing or corrupt, you may need to
-run various commands to regenerate default versions of the
-objects.
-
-::
-
- # Session table
- cephfs-table-tool 0 reset session
- # SnapServer
- cephfs-table-tool 0 reset snap
- # InoTable
- cephfs-table-tool 0 reset inode
- # Journal
- cephfs-journal-tool --rank=0 journal reset
- # Root inodes ("/" and MDS directory)
- cephfs-data-scan init
-
-Finally, you can regenerate metadata objects for missing files
-and directories based on the contents of a data pool. This is
-a three-phase process. First, scanning *all* objects to calculate
-size and mtime metadata for inodes. Second, scanning the first
-object from every file to collect this metadata and inject it into
-the metadata pool. Third, checking inode linkages and fixing found
-errors.
-
-::
-
- cephfs-data-scan scan_extents <data pool>
- cephfs-data-scan scan_inodes <data pool>
- cephfs-data-scan scan_links
-
-'scan_extents' and 'scan_inodes' commands may take a *very long* time
-if there are many files or very large files in the data pool.
-
-To accelerate the process, run multiple instances of the tool.
-
-Decide on a number of workers, and pass each worker a number within
-the range 0-(worker_m - 1).
-
-The example below shows how to run 4 workers simultaneously:
-
-::
-
- # Worker 0
- cephfs-data-scan scan_extents --worker_n 0 --worker_m 4 <data pool>
- # Worker 1
- cephfs-data-scan scan_extents --worker_n 1 --worker_m 4 <data pool>
- # Worker 2
- cephfs-data-scan scan_extents --worker_n 2 --worker_m 4 <data pool>
- # Worker 3
- cephfs-data-scan scan_extents --worker_n 3 --worker_m 4 <data pool>
-
- # Worker 0
- cephfs-data-scan scan_inodes --worker_n 0 --worker_m 4 <data pool>
- # Worker 1
- cephfs-data-scan scan_inodes --worker_n 1 --worker_m 4 <data pool>
- # Worker 2
- cephfs-data-scan scan_inodes --worker_n 2 --worker_m 4 <data pool>
- # Worker 3
- cephfs-data-scan scan_inodes --worker_n 3 --worker_m 4 <data pool>
-
-It is **important** to ensure that all workers have completed the
-scan_extents phase before any workers enter the scan_inodes phase.
-
-After completing the metadata recovery, you may want to run cleanup
-operation to delete ancillary data geneated during recovery.
-
-::
-
- cephfs-data-scan cleanup <data pool>
-
-Finding files affected by lost data PGs
----------------------------------------
-
-Losing a data PG may affect many files. Files are split into many objects,
-so identifying which files are affected by loss of particular PGs requires
-a full scan over all object IDs that may exist within the size of a file.
-This type of scan may be useful for identifying which files require
-restoring from a backup.
-
-.. danger::
-
- This command does not repair any metadata, so when restoring files in
- this case you must *remove* the damaged file, and replace it in order
- to have a fresh inode. Do not overwrite damaged files in place.
-
-If you know that objects have been lost from PGs, use the ``pg_files``
-subcommand to scan for files that may have been damaged as a result:
-
-::
-
- cephfs-data-scan pg_files <path> <pg id> [<pg id>...]
-
-For example, if you have lost data from PGs 1.4 and 4.5, and you would like
-to know which files under /home/bob might have been damaged:
-
-::
-
- cephfs-data-scan pg_files /home/bob 1.4 4.5
-
-The output will be a list of paths to potentially damaged files, one
-per line.
-
-Note that this command acts as a normal CephFS client to find all the
-files in the filesystem and read their layouts, so the MDS must be
-up and running.
-
-Using an alternate metadata pool for recovery
----------------------------------------------
-
-.. warning::
-
- There has not been extensive testing of this procedure. It should be
- undertaken with great care.
-
-If an existing filesystem is damaged and inoperative, it is possible to create
-a fresh metadata pool and attempt to reconstruct the filesystem metadata
-into this new pool, leaving the old metadata in place. This could be used to
-make a safer attempt at recovery since the existing metadata pool would not be
-overwritten.
-
-.. caution::
-
- During this process, multiple metadata pools will contain data referring to
- the same data pool. Extreme caution must be exercised to avoid changing the
- data pool contents while this is the case. Once recovery is complete, the
- damaged metadata pool should be deleted.
-
-To begin this process, first create the fresh metadata pool and initialize
-it with empty file system data structures:
-
-::
-
- ceph fs flag set enable_multiple true --yes-i-really-mean-it
- ceph osd pool create recovery <pg-num> replicated <crush-ruleset-name>
- ceph fs new recovery-fs recovery <data pool> --allow-dangerous-metadata-overlay
- cephfs-data-scan init --force-init --filesystem recovery-fs --alternate-pool recovery
- ceph fs reset recovery-fs --yes-i-really-mean-it
- cephfs-table-tool recovery-fs:all reset session
- cephfs-table-tool recovery-fs:all reset snap
- cephfs-table-tool recovery-fs:all reset inode
-
-Next, run the recovery toolset using the --alternate-pool argument to output
-results to the alternate pool:
-
-::
-
- cephfs-data-scan scan_extents --alternate-pool recovery --filesystem <original filesystem name> <original data pool name>
- cephfs-data-scan scan_inodes --alternate-pool recovery --filesystem <original filesystem name> --force-corrupt --force-init <original data pool name>
- cephfs-data-scan scan_links --filesystem recovery-fs
-
-If the damaged filesystem contains dirty journal data, it may be recovered next
-with:
-
-::
-
- cephfs-journal-tool --rank=<original filesystem name>:0 event recover_dentries list --alternate-pool recovery
- cephfs-journal-tool --rank recovery-fs:0 journal reset --force
-
-After recovery, some recovered directories will have incorrect statistics.
-Ensure the parameters mds_verify_scatter and mds_debug_scatterstat are set
-to false (the default) to prevent the MDS from checking the statistics, then
-run a forward scrub to repair them. Ensure you have an MDS running and issue:
-
-::
-
- ceph daemon mds.a scrub_path / recursive repair
diff --git a/src/ceph/doc/cephfs/eviction.rst b/src/ceph/doc/cephfs/eviction.rst
deleted file mode 100644
index f2f6778..0000000
--- a/src/ceph/doc/cephfs/eviction.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-
-===============================
-Ceph filesystem client eviction
-===============================
-
-When a filesystem client is unresponsive or otherwise misbehaving, it
-may be necessary to forcibly terminate its access to the filesystem. This
-process is called *eviction*.
-
-Evicting a CephFS client prevents it from communicating further with MDS
-daemons and OSD daemons. If a client was doing buffered IO to the filesystem,
-any un-flushed data will be lost.
-
-Clients may either be evicted automatically (if they fail to communicate
-promptly with the MDS), or manually (by the system administrator).
-
-The client eviction process applies to clients of all kinds, this includes
-FUSE mounts, kernel mounts, nfs-ganesha gateways, and any process using
-libcephfs.
-
-Automatic client eviction
-=========================
-
-There are two situations in which a client may be evicted automatically:
-
-On an active MDS daemon, if a client has not communicated with the MDS for
-over ``mds_session_autoclose`` seconds (300 seconds by default), then it
-will be evicted automatically.
-
-During MDS startup (including on failover), the MDS passes through a
-state called ``reconnect``. During this state, it waits for all the
-clients to connect to the new MDS daemon. If any clients fail to do
-so within the time window (``mds_reconnect_timeout``, 45 seconds by default)
-then they will be evicted.
-
-A warning message is sent to the cluster log if either of these situations
-arises.
-
-Manual client eviction
-======================
-
-Sometimes, the administrator may want to evict a client manually. This
-could happen if a client is died and the administrator does not
-want to wait for its session to time out, or it could happen if
-a client is misbehaving and the administrator does not have access to
-the client node to unmount it.
-
-It is useful to inspect the list of clients first:
-
-::
-
- ceph tell mds.0 client ls
-
- [
- {
- "id": 4305,
- "num_leases": 0,
- "num_caps": 3,
- "state": "open",
- "replay_requests": 0,
- "completed_requests": 0,
- "reconnecting": false,
- "inst": "client.4305 172.21.9.34:0/422650892",
- "client_metadata": {
- "ceph_sha1": "ae81e49d369875ac8b569ff3e3c456a31b8f3af5",
- "ceph_version": "ceph version 12.0.0-1934-gae81e49 (ae81e49d369875ac8b569ff3e3c456a31b8f3af5)",
- "entity_id": "0",
- "hostname": "senta04",
- "mount_point": "/tmp/tmpcMpF1b/mnt.0",
- "pid": "29377",
- "root": "/"
- }
- }
- ]
-
-
-
-Once you have identified the client you want to evict, you can
-do that using its unique ID, or various other attributes to identify it:
-
-::
-
- # These all work
- ceph tell mds.0 client evict id=4305
- ceph tell mds.0 client evict client_metadata.=4305
-
-
-Advanced: Un-blacklisting a client
-==================================
-
-Ordinarily, a blacklisted client may not reconnect to the servers: it
-must be unmounted and then mounted anew.
-
-However, in some situations it may be useful to permit a client that
-was evicted to attempt to reconnect.
-
-Because CephFS uses the RADOS OSD blacklist to control client eviction,
-CephFS clients can be permitted to reconnect by removing them from
-the blacklist:
-
-::
-
- ceph osd blacklist ls
- # ... identify the address of the client ...
- ceph osd blacklist rm <address>
-
-Doing this may put data integrity at risk if other clients have accessed
-files that the blacklisted client was doing buffered IO to. It is also not
-guaranteed to result in a fully functional client -- the best way to get
-a fully healthy client back after an eviction is to unmount the client
-and do a fresh mount.
-
-If you are trying to reconnect clients in this way, you may also
-find it useful to set ``client_reconnect_stale`` to true in the
-FUSE client, to prompt the client to try to reconnect.
-
-Advanced: Configuring blacklisting
-==================================
-
-If you are experiencing frequent client evictions, due to slow
-client hosts or an unreliable network, and you cannot fix the underlying
-issue, then you may want to ask the MDS to be less strict.
-
-It is possible to respond to slow clients by simply dropping their
-MDS sessions, but permit them to re-open sessions and permit them
-to continue talking to OSDs. To enable this mode, set
-``mds_session_blacklist_on_timeout`` to false on your MDS nodes.
-
-For the equivalent behaviour on manual evictions, set
-``mds_session_blacklist_on_evict`` to false.
-
-Note that if blacklisting is disabled, then evicting a client will
-only have an effect on the MDS you send the command to. On a system
-with multiple active MDS daemons, you would need to send an
-eviction command to each active daemon. When blacklisting is enabled
-(the default), sending an eviction command to just a single
-MDS is sufficient, because the blacklist propagates it to the others.
-
-Advanced options
-================
-
-``mds_blacklist_interval`` - this setting controls how many seconds
-entries will remain in the blacklist for.
-
-
-.. _background_blacklisting_and_osd_epoch_barrier:
-
-Background: Blacklisting and OSD epoch barrier
-==============================================
-
-After a client is blacklisted, it is necessary to make sure that
-other clients and MDS daemons have the latest OSDMap (including
-the blacklist entry) before they try to access any data objects
-that the blacklisted client might have been accessing.
-
-This is ensured using an internal "osdmap epoch barrier" mechanism.
-
-The purpose of the barrier is to ensure that when we hand out any
-capabilities which might allow touching the same RADOS objects, the
-clients we hand out the capabilities to must have a sufficiently recent
-OSD map to not race with cancelled operations (from ENOSPC) or
-blacklisted clients (from evictions).
-
-More specifically, the cases where an epoch barrier is set are:
-
- * Client eviction (where the client is blacklisted and other clients
- must wait for a post-blacklist epoch to touch the same objects).
- * OSD map full flag handling in the client (where the client may
- cancel some OSD ops from a pre-full epoch, so other clients must
- wait until the full epoch or later before touching the same objects).
- * MDS startup, because we don't persist the barrier epoch, so must
- assume that latest OSD map is always required after a restart.
-
-Note that this is a global value for simplicity. We could maintain this on
-a per-inode basis. But we don't, because:
-
- * It would be more complicated.
- * It would use an extra 4 bytes of memory for every inode.
- * It would not be much more efficient as almost always everyone has the latest.
- OSD map anyway, in most cases everyone will breeze through this barrier
- rather than waiting.
- * This barrier is done in very rare cases, so any benefit from per-inode
- granularity would only very rarely be seen.
-
-The epoch barrier is transmitted along with all capability messages, and
-instructs the receiver of the message to avoid sending any more RADOS
-operations to OSDs until it has seen this OSD epoch. This mainly applies
-to clients (doing their data writes directly to files), but also applies
-to the MDS because things like file size probing and file deletion are
-done directly from the MDS.
diff --git a/src/ceph/doc/cephfs/experimental-features.rst b/src/ceph/doc/cephfs/experimental-features.rst
deleted file mode 100644
index 1dc781a..0000000
--- a/src/ceph/doc/cephfs/experimental-features.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-
-Experimental Features
-=====================
-
-CephFS includes a number of experimental features which are not fully stabilized
-or qualified for users to turn on in real deployments. We generally do our best
-to clearly demarcate these and fence them off so they cannot be used by mistake.
-
-Some of these features are closer to being done than others, though. We describe
-each of them with an approximation of how risky they are and briefly describe
-what is required to enable them. Note that doing so will *irrevocably* flag maps
-in the monitor as having once enabled this flag to improve debugging and
-support processes.
-
-Inline data
------------
-By default, all CephFS file data is stored in RADOS objects. The inline data
-feature enables small files (generally <2KB) to be stored in the inode
-and served out of the MDS. This may improve small-file performance but increases
-load on the MDS. It is not sufficiently tested to support at this time, although
-failures within it are unlikely to make non-inlined data inaccessible
-
-Inline data has always been off by default and requires setting
-the "inline_data" flag.
-
-
-
-Mantle: Programmable Metadata Load Balancer
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Mantle is a programmable metadata balancer built into the MDS. The idea is to
-protect the mechanisms for balancing load (migration, replication,
-fragmentation) but stub out the balancing policies using Lua. For details, see
-:doc:`/cephfs/mantle`.
-
-Snapshots
----------
-Like multiple active MDSes, CephFS is designed from the ground up to support
-snapshotting of arbitrary directories. There are no known bugs at the time of
-writing, but there is insufficient testing to provide stability guarantees and
-every expansion of testing has generally revealed new issues. If you do enable
-snapshots and experience failure, manual intervention will be needed.
-
-Snapshots are known not to work properly with multiple filesystems (below) in
-some cases. Specifically, if you share a pool for multiple FSes and delete
-a snapshot in one FS, expect to lose snapshotted file data in any other FS using
-snapshots. See the :doc:`/dev/cephfs-snapshots` page for more information.
-
-Snapshots are known not to work with multi-MDS filesystems.
-
-Snapshotting was blocked off with the "allow_new_snaps" flag prior to Firefly.
-
-Multiple filesystems within a Ceph cluster
-------------------------------------------
-Code was merged prior to the Jewel release which enables administrators
-to create multiple independent CephFS filesystems within a single Ceph cluster.
-These independent filesystems have their own set of active MDSes, cluster maps,
-and data. But the feature required extensive changes to data structures which
-are not yet fully qualified, and has security implications which are not all
-apparent nor resolved.
-
-There are no known bugs, but any failures which do result from having multiple
-active filesystems in your cluster will require manual intervention and, so far,
-will not have been experienced by anybody else -- knowledgeable help will be
-extremely limited. You also probably do not have the security or isolation
-guarantees you want or think you have upon doing so.
-
-Note that snapshots and multiple filesystems are *not* tested in combination
-and may not work together; see above.
-
-Multiple filesystems were available starting in the Jewel release candidates
-but were protected behind the "enable_multiple" flag before the final release.
-
-
-Previously experimental features
-================================
-
-Directory Fragmentation
------------------------
-
-Directory fragmentation was considered experimental prior to the *Luminous*
-(12.2.x). It is now enabled by default on new filesystems. To enable directory
-fragmentation on filesystems created with older versions of Ceph, set
-the ``allow_dirfrags`` flag on the filesystem:
-
-::
-
- ceph fs set <filesystem name> allow_dirfrags
-
-Multiple active metadata servers
---------------------------------
-
-Prior to the *Luminous* (12.2.x) release, running multiple active metadata
-servers within a single filesystem was considered experimental. Creating
-multiple active metadata servers is now permitted by default on new
-filesystems.
-
-Filesystems created with older versions of Ceph still require explicitly
-enabling multiple active metadata servers as follows:
-
-::
-
- ceph fs set <filesystem name> allow_multimds
-
-Note that the default size of the active mds cluster (``max_mds``) is
-still set to 1 initially.
-
diff --git a/src/ceph/doc/cephfs/file-layouts.rst b/src/ceph/doc/cephfs/file-layouts.rst
deleted file mode 100644
index 4124e1e..0000000
--- a/src/ceph/doc/cephfs/file-layouts.rst
+++ /dev/null
@@ -1,215 +0,0 @@
-
-File layouts
-============
-
-The layout of a file controls how its contents are mapped to Ceph RADOS objects. You can
-read and write a file's layout using *virtual extended attributes* or xattrs.
-
-The name of the layout xattrs depends on whether a file is a regular file or a directory. Regular
-files' layout xattrs are called ``ceph.file.layout``, whereas directories' layout xattrs are called
-``ceph.dir.layout``. Where subsequent examples refer to ``ceph.file.layout``, substitute ``dir`` as appropriate
-when dealing with directories.
-
-.. tip::
-
- Your linux distribution may not ship with commands for manipulating xattrs by default,
- the required package is usually called ``attr``.
-
-Layout fields
--------------
-
-pool
- String, giving ID or name. Which RADOS pool a file's data objects will be stored in.
-
-pool_namespace
- String. Within the data pool, which RADOS namespace the objects will
- be written to. Empty by default (i.e. default namespace).
-
-stripe_unit
- Integer in bytes. The size (in bytes) of a block of data used in the RAID 0 distribution of a file. All stripe units for a file have equal size. The last stripe unit is typically incomplete–i.e. it represents the data at the end of the file as well as unused “space†beyond it up to the end of the fixed stripe unit size.
-
-stripe_count
- Integer. The number of consecutive stripe units that constitute a RAID 0 “stripe†of file data.
-
-object_size
- Integer in bytes. File data is chunked into RADOS objects of this size.
-
-.. tip::
-
- RADOS enforces a configurable limit on object sizes: if you increase CephFS
- object sizes beyond that limit then writes may not succeed. The OSD
- setting is ``rados_max_object_size``, which is 128MB by default.
- Very large RADOS objects may prevent smooth operation of the cluster,
- so increasing the object size limit past the default is not recommended.
-
-Reading layouts with ``getfattr``
----------------------------------
-
-Read the layout information as a single string:
-
-.. code-block:: bash
-
- $ touch file
- $ getfattr -n ceph.file.layout file
- # file: file
- ceph.file.layout="stripe_unit=4194304 stripe_count=1 object_size=4194304 pool=cephfs_data"
-
-Read individual layout fields:
-
-.. code-block:: bash
-
- $ getfattr -n ceph.file.layout.pool file
- # file: file
- ceph.file.layout.pool="cephfs_data"
- $ getfattr -n ceph.file.layout.stripe_unit file
- # file: file
- ceph.file.layout.stripe_unit="4194304"
- $ getfattr -n ceph.file.layout.stripe_count file
- # file: file
- ceph.file.layout.stripe_count="1"
- $ getfattr -n ceph.file.layout.object_size file
- # file: file
- ceph.file.layout.object_size="4194304"
-
-.. note::
-
- When reading layouts, the pool will usually be indicated by name. However, in
- rare cases when pools have only just been created, the ID may be output instead.
-
-Directories do not have an explicit layout until it is customized. Attempts to read
-the layout will fail if it has never been modified: this indicates that layout of the
-next ancestor directory with an explicit layout will be used.
-
-.. code-block:: bash
-
- $ mkdir dir
- $ getfattr -n ceph.dir.layout dir
- dir: ceph.dir.layout: No such attribute
- $ setfattr -n ceph.dir.layout.stripe_count -v 2 dir
- $ getfattr -n ceph.dir.layout dir
- # file: dir
- ceph.dir.layout="stripe_unit=4194304 stripe_count=2 object_size=4194304 pool=cephfs_data"
-
-
-Writing layouts with ``setfattr``
----------------------------------
-
-Layout fields are modified using ``setfattr``:
-
-.. code-block:: bash
-
- $ ceph osd lspools
- 0 rbd,1 cephfs_data,2 cephfs_metadata,
-
- $ setfattr -n ceph.file.layout.stripe_unit -v 1048576 file2
- $ setfattr -n ceph.file.layout.stripe_count -v 8 file2
- $ setfattr -n ceph.file.layout.object_size -v 10485760 file2
- $ setfattr -n ceph.file.layout.pool -v 1 file2 # Setting pool by ID
- $ setfattr -n ceph.file.layout.pool -v cephfs_data file2 # Setting pool by name
-
-.. note::
-
- When the layout fields of a file are modified using ``setfattr``, this file must be empty, otherwise an error will occur.
-
-.. code-block:: bash
-
- # touch an empty file
- $ touch file1
- # modify layout field successfully
- $ setfattr -n ceph.file.layout.stripe_count -v 3 file1
-
- # write something to file1
- $ echo "hello world" > file1
- $ setfattr -n ceph.file.layout.stripe_count -v 4 file1
- setfattr: file1: Directory not empty
-
-Clearing layouts
-----------------
-
-If you wish to remove an explicit layout from a directory, to revert to
-inherting the layout of its ancestor, you can do so:
-
-.. code-block:: bash
-
- setfattr -x ceph.dir.layout mydir
-
-Similarly, if you have set the ``pool_namespace`` attribute and wish
-to modify the layout to use the default namespace instead:
-
-.. code-block:: bash
-
- # Create a dir and set a namespace on it
- mkdir mydir
- setfattr -n ceph.dir.layout.pool_namespace -v foons mydir
- getfattr -n ceph.dir.layout mydir
- ceph.dir.layout="stripe_unit=4194304 stripe_count=1 object_size=4194304 pool=cephfs_data_a pool_namespace=foons"
-
- # Clear the namespace from the directory's layout
- setfattr -x ceph.dir.layout.pool_namespace mydir
- getfattr -n ceph.dir.layout mydir
- ceph.dir.layout="stripe_unit=4194304 stripe_count=1 object_size=4194304 pool=cephfs_data_a"
-
-
-Inheritance of layouts
-----------------------
-
-Files inherit the layout of their parent directory at creation time. However, subsequent
-changes to the parent directory's layout do not affect children.
-
-.. code-block:: bash
-
- $ getfattr -n ceph.dir.layout dir
- # file: dir
- ceph.dir.layout="stripe_unit=4194304 stripe_count=2 object_size=4194304 pool=cephfs_data"
-
- # Demonstrate file1 inheriting its parent's layout
- $ touch dir/file1
- $ getfattr -n ceph.file.layout dir/file1
- # file: dir/file1
- ceph.file.layout="stripe_unit=4194304 stripe_count=2 object_size=4194304 pool=cephfs_data"
-
- # Now update the layout of the directory before creating a second file
- $ setfattr -n ceph.dir.layout.stripe_count -v 4 dir
- $ touch dir/file2
-
- # Demonstrate that file1's layout is unchanged
- $ getfattr -n ceph.file.layout dir/file1
- # file: dir/file1
- ceph.file.layout="stripe_unit=4194304 stripe_count=2 object_size=4194304 pool=cephfs_data"
-
- # ...while file2 has the parent directory's new layout
- $ getfattr -n ceph.file.layout dir/file2
- # file: dir/file2
- ceph.file.layout="stripe_unit=4194304 stripe_count=4 object_size=4194304 pool=cephfs_data"
-
-
-Files created as descendents of the directory also inherit the layout, if the intermediate
-directories do not have layouts set:
-
-.. code-block:: bash
-
- $ getfattr -n ceph.dir.layout dir
- # file: dir
- ceph.dir.layout="stripe_unit=4194304 stripe_count=4 object_size=4194304 pool=cephfs_data"
- $ mkdir dir/childdir
- $ getfattr -n ceph.dir.layout dir/childdir
- dir/childdir: ceph.dir.layout: No such attribute
- $ touch dir/childdir/grandchild
- $ getfattr -n ceph.file.layout dir/childdir/grandchild
- # file: dir/childdir/grandchild
- ceph.file.layout="stripe_unit=4194304 stripe_count=4 object_size=4194304 pool=cephfs_data"
-
-
-Adding a data pool to the MDS
----------------------------------
-
-Before you can use a pool with CephFS you have to add it to the Metadata Servers.
-
-.. code-block:: bash
-
- $ ceph fs add_data_pool cephfs cephfs_data_ssd
- # Pool should now show up
- $ ceph fs ls
- .... data pools: [cephfs_data cephfs_data_ssd ]
-
-Make sure that your cephx keys allows the client to access this new pool.
diff --git a/src/ceph/doc/cephfs/fstab.rst b/src/ceph/doc/cephfs/fstab.rst
deleted file mode 100644
index dc38715..0000000
--- a/src/ceph/doc/cephfs/fstab.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-==========================================
- Mount Ceph FS in your File Systems Table
-==========================================
-
-If you mount Ceph FS in your file systems table, the Ceph file system will mount
-automatically on startup.
-
-Kernel Driver
-=============
-
-To mount Ceph FS in your file systems table as a kernel driver, add the
-following to ``/etc/fstab``::
-
- {ipaddress}:{port}:/ {mount}/{mountpoint} {filesystem-name} [name=username,secret=secretkey|secretfile=/path/to/secretfile],[{mount.options}]
-
-For example::
-
- 10.10.10.10:6789:/ /mnt/ceph ceph name=admin,secretfile=/etc/ceph/secret.key,noatime,_netdev 0 2
-
-.. important:: The ``name`` and ``secret`` or ``secretfile`` options are
- mandatory when you have Ceph authentication running.
-
-See `User Management`_ for details.
-
-
-FUSE
-====
-
-To mount Ceph FS in your file systems table as a filesystem in user space, add the
-following to ``/etc/fstab``::
-
- #DEVICE PATH TYPE OPTIONS
- none /mnt/ceph fuse.ceph ceph.id={user-ID}[,ceph.conf={path/to/conf.conf}],_netdev,defaults 0 0
-
-For example::
-
- none /mnt/ceph fuse.ceph ceph.id=myuser,_netdev,defaults 0 0
- none /mnt/ceph fuse.ceph ceph.id=myuser,ceph.conf=/etc/ceph/foo.conf,_netdev,defaults 0 0
-
-Ensure you use the ID (e.g., ``admin``, not ``client.admin``). You can pass any valid
-``ceph-fuse`` option to the command line this way.
-
-See `User Management`_ for details.
-
-
-.. _User Management: ../../rados/operations/user-management/
diff --git a/src/ceph/doc/cephfs/full.rst b/src/ceph/doc/cephfs/full.rst
deleted file mode 100644
index cc9eb59..0000000
--- a/src/ceph/doc/cephfs/full.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-
-Handling a full Ceph filesystem
-===============================
-
-When a RADOS cluster reaches its ``mon_osd_full_ratio`` (default
-95%) capacity, it is marked with the OSD full flag. This flag causes
-most normal RADOS clients to pause all operations until it is resolved
-(for example by adding more capacity to the cluster).
-
-The filesystem has some special handling of the full flag, explained below.
-
-Hammer and later
-----------------
-
-Since the hammer release, a full filesystem will lead to ENOSPC
-results from:
-
- * Data writes on the client
- * Metadata operations other than deletes and truncates
-
-Because the full condition may not be encountered until
-data is flushed to disk (sometime after a ``write`` call has already
-returned 0), the ENOSPC error may not be seen until the application
-calls ``fsync`` or ``fclose`` (or equivalent) on the file handle.
-
-Calling ``fsync`` is guaranteed to reliably indicate whether the data
-made it to disk, and will return an error if it doesn't. ``fclose`` will
-only return an error if buffered data happened to be flushed since
-the last write -- a successful ``fclose`` does not guarantee that the
-data made it to disk, and in a full-space situation, buffered data
-may be discarded after an ``fclose`` if no space is available to persist it.
-
-.. warning::
- If an application appears to be misbehaving on a full filesystem,
- check that it is performing ``fsync()`` calls as necessary to ensure
- data is on disk before proceeding.
-
-Data writes may be cancelled by the client if they are in flight at the
-time the OSD full flag is sent. Clients update the ``osd_epoch_barrier``
-when releasing capabilities on files affected by cancelled operations, in
-order to ensure that these cancelled operations do not interfere with
-subsequent access to the data objects by the MDS or other clients. For
-more on the epoch barrier mechanism, see :ref:`background_blacklisting_and_osd_epoch_barrier`.
-
-Legacy (pre-hammer) behavior
-----------------------------
-
-In versions of Ceph earlier than hammer, the MDS would ignore
-the full status of the RADOS cluster, and any data writes from
-clients would stall until the cluster ceased to be full.
-
-There are two dangerous conditions to watch for with this behaviour:
-
-* If a client had pending writes to a file, then it was not possible
- for the client to release the file to the MDS for deletion: this could
- lead to difficulty clearing space on a full filesystem
-* If clients continued to create a large number of empty files, the
- resulting metadata writes from the MDS could lead to total exhaustion
- of space on the OSDs such that no further deletions could be performed.
-
diff --git a/src/ceph/doc/cephfs/fuse.rst b/src/ceph/doc/cephfs/fuse.rst
deleted file mode 100644
index d8c6cdf..0000000
--- a/src/ceph/doc/cephfs/fuse.rst
+++ /dev/null
@@ -1,52 +0,0 @@
-=========================
-Mount Ceph FS using FUSE
-=========================
-
-Before mounting a Ceph File System in User Space (FUSE), ensure that the client
-host has a copy of the Ceph configuration file and a keyring with CAPS for the
-Ceph metadata server.
-
-#. From your client host, copy the Ceph configuration file from the monitor host
- to the ``/etc/ceph`` directory. ::
-
- sudo mkdir -p /etc/ceph
- sudo scp {user}@{server-machine}:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
-
-#. From your client host, copy the Ceph keyring from the monitor host to
- to the ``/etc/ceph`` directory. ::
-
- sudo scp {user}@{server-machine}:/etc/ceph/ceph.keyring /etc/ceph/ceph.keyring
-
-#. Ensure that the Ceph configuration file and the keyring have appropriate
- permissions set on your client machine (e.g., ``chmod 644``).
-
-For additional details on ``cephx`` configuration, see
-`CEPHX Config Reference`_.
-
-To mount the Ceph file system as a FUSE, you may use the ``ceph-fuse`` command.
-For example::
-
- sudo mkdir /home/usernname/cephfs
- sudo ceph-fuse -m 192.168.0.1:6789 /home/username/cephfs
-
-If you have more than one filesystem, specify which one to mount using
-the ``--client_mds_namespace`` command line argument, or add a
-``client_mds_namespace`` setting to your ``ceph.conf``.
-
-See `ceph-fuse`_ for additional details.
-
-To automate mounting ceph-fuse, you may add an entry to the system fstab_.
-Additionally, ``ceph-fuse@.service`` and ``ceph-fuse.target`` systemd units are
-available. As usual, these unit files declare the default dependencies and
-recommended execution context for ``ceph-fuse``. An example ceph-fuse mount on
-``/mnt`` would be::
-
- sudo systemctl start ceph-fuse@/mnt.service
-
-A persistent mount point can be setup via::
-
- sudo systemctl enable ceph-fuse@/mnt.service
-
-.. _ceph-fuse: ../../man/8/ceph-fuse/
-.. _fstab: ./fstab
-.. _CEPHX Config Reference: ../../rados/configuration/auth-config-ref
diff --git a/src/ceph/doc/cephfs/hadoop.rst b/src/ceph/doc/cephfs/hadoop.rst
deleted file mode 100644
index 76d26f2..0000000
--- a/src/ceph/doc/cephfs/hadoop.rst
+++ /dev/null
@@ -1,202 +0,0 @@
-========================
-Using Hadoop with CephFS
-========================
-
-The Ceph file system can be used as a drop-in replacement for the Hadoop File
-System (HDFS). This page describes the installation and configuration process
-of using Ceph with Hadoop.
-
-Dependencies
-============
-
-* CephFS Java Interface
-* Hadoop CephFS Plugin
-
-.. important:: Currently requires Hadoop 1.1.X stable series
-
-Installation
-============
-
-There are three requirements for using CephFS with Hadoop. First, a running
-Ceph installation is required. The details of setting up a Ceph cluster and
-the file system are beyond the scope of this document. Please refer to the
-Ceph documentation for installing Ceph.
-
-The remaining two requirements are a Hadoop installation, and the Ceph file
-system Java packages, including the Java CephFS Hadoop plugin. The high-level
-steps are two add the dependencies to the Hadoop installation ``CLASSPATH``,
-and configure Hadoop to use the Ceph file system.
-
-CephFS Java Packages
---------------------
-
-* CephFS Hadoop plugin (`hadoop-cephfs.jar <http://ceph.com/download/hadoop-cephfs.jar>`_)
-
-Adding these dependencies to a Hadoop installation will depend on your
-particular deployment. In general the dependencies must be present on each
-node in the system that will be part of the Hadoop cluster, and must be in the
-``CLASSPATH`` searched for by Hadoop. Typically approaches are to place the
-additional ``jar`` files into the ``hadoop/lib`` directory, or to edit the
-``HADOOP_CLASSPATH`` variable in ``hadoop-env.sh``.
-
-The native Ceph file system client must be installed on each participating
-node in the Hadoop cluster.
-
-Hadoop Configuration
-====================
-
-This section describes the Hadoop configuration options used to control Ceph.
-These options are intended to be set in the Hadoop configuration file
-`conf/core-site.xml`.
-
-+---------------------+--------------------------+----------------------------+
-|Property |Value |Notes |
-| | | |
-+=====================+==========================+============================+
-|fs.default.name |Ceph URI |ceph://[monaddr:port]/ |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.conf.file |Local path to ceph.conf |/etc/ceph/ceph.conf |
-| | | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.conf.options |Comma separated list of |opt1=val1,opt2=val2 |
-| |Ceph configuration | |
-| |key/value pairs | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.root.dir |Mount root directory |Default value: / |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.mon.address |Monitor address |host:port |
-| | | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.auth.id |Ceph user id |Example: admin |
-| | | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.auth.keyfile |Ceph key file | |
-| | | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.auth.keyring |Ceph keyring file | |
-| | | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.object.size |Default file object size |Default value (64MB): |
-| |in bytes |67108864 |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.data.pools |List of Ceph data pools |Default value: default Ceph |
-| |for storing file. |pool. |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-|ceph.localize.reads |Allow reading from file |Default value: true |
-| |replica objects | |
-| | | |
-| | | |
-+---------------------+--------------------------+----------------------------+
-
-Support For Per-file Custom Replication
----------------------------------------
-
-The Hadoop file system interface allows users to specify a custom replication
-factor (e.g. 3 copies of each block) when creating a file. However, object
-replication factors in the Ceph file system are controlled on a per-pool
-basis, and by default a Ceph file system will contain only a single
-pre-configured pool. Thus, in order to support per-file replication with
-Hadoop over Ceph, additional storage pools with non-default replications
-factors must be created, and Hadoop must be configured to choose from these
-additional pools.
-
-Additional data pools can be specified using the ``ceph.data.pools``
-configuration option. The value of the option is a comma separated list of
-pool names. The default Ceph pool will be used automatically if this
-configuration option is omitted or the value is empty. For example, the
-following configuration setting will consider the pools ``pool1``, ``pool2``, and
-``pool5`` when selecting a target pool to store a file. ::
-
- <property>
- <name>ceph.data.pools</name>
- <value>pool1,pool2,pool5</value>
- </property>
-
-Hadoop will not create pools automatically. In order to create a new pool with
-a specific replication factor use the ``ceph osd pool create`` command, and then
-set the ``size`` property on the pool using the ``ceph osd pool set`` command. For
-more information on creating and configuring pools see the `RADOS Pool
-documentation`_.
-
-.. _RADOS Pool documentation: ../../rados/operations/pools
-
-Once a pool has been created and configured the metadata service must be told
-that the new pool may be used to store file data. A pool is be made available
-for storing file system data using the ``ceph fs add_data_pool`` command.
-
-First, create the pool. In this example we create the ``hadoop1`` pool with
-replication factor 1. ::
-
- ceph osd pool create hadoop1 100
- ceph osd pool set hadoop1 size 1
-
-Next, determine the pool id. This can be done by examining the output of the
-``ceph osd dump`` command. For example, we can look for the newly created
-``hadoop1`` pool. ::
-
- ceph osd dump | grep hadoop1
-
-The output should resemble::
-
- pool 3 'hadoop1' rep size 1 min_size 1 crush_ruleset 0...
-
-where ``3`` is the pool id. Next we will use the pool id reference to register
-the pool as a data pool for storing file system data. ::
-
- ceph fs add_data_pool cephfs 3
-
-The final step is to configure Hadoop to consider this data pool when
-selecting the target pool for new files. ::
-
- <property>
- <name>ceph.data.pools</name>
- <value>hadoop1</value>
- </property>
-
-Pool Selection Rules
-~~~~~~~~~~~~~~~~~~~~
-
-The following rules describe how Hadoop chooses a pool given a desired
-replication factor and the set of pools specified using the
-``ceph.data.pools`` configuration option.
-
-1. When no custom pools are specified the default Ceph data pool is used.
-2. A custom pool with the same replication factor as the default Ceph data
- pool will override the default.
-3. A pool with a replication factor that matches the desired replication will
- be chosen if it exists.
-4. Otherwise, a pool with at least the desired replication factor will be
- chosen, or the maximum possible.
-
-Debugging Pool Selection
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Hadoop will produce log file entry when it cannot determine the replication
-factor of a pool (e.g. it is not configured as a data pool). The log message
-will appear as follows::
-
- Error looking up replication of pool: <pool name>
-
-Hadoop will also produce a log entry when it wasn't able to select an exact
-match for replication. This log entry will appear as follows::
-
- selectDataPool path=<path> pool:repl=<name>:<value> wanted=<value>
diff --git a/src/ceph/doc/cephfs/health-messages.rst b/src/ceph/doc/cephfs/health-messages.rst
deleted file mode 100644
index 3e68e93..0000000
--- a/src/ceph/doc/cephfs/health-messages.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-
-======================
-CephFS health messages
-======================
-
-Cluster health checks
-=====================
-
-The Ceph monitor daemons will generate health messages in response
-to certain states of the filesystem map structure (and the enclosed MDS maps).
-
-Message: mds rank(s) *ranks* have failed
-Description: One or more MDS ranks are not currently assigned to
-an MDS daemon; the cluster will not recover until a suitable replacement
-daemon starts.
-
-Message: mds rank(s) *ranks* are damaged
-Description: One or more MDS ranks has encountered severe damage to
-its stored metadata, and cannot start again until it is repaired.
-
-Message: mds cluster is degraded
-Description: One or more MDS ranks are not currently up and running, clients
-may pause metadata IO until this situation is resolved. This includes
-ranks being failed or damaged, and additionally includes ranks
-which are running on an MDS but have not yet made it to the *active*
-state (e.g. ranks currently in *replay* state).
-
-Message: mds *names* are laggy
-Description: The named MDS daemons have failed to send beacon messages
-to the monitor for at least ``mds_beacon_grace`` (default 15s), while
-they are supposed to send beacon messages every ``mds_beacon_interval``
-(default 4s). The daemons may have crashed. The Ceph monitor will
-automatically replace laggy daemons with standbys if any are available.
-
-Message: insufficient standby daemons available
-Description: One or more file systems are configured to have a certain number
-of standby daemons available (including daemons in standby-replay) but the
-cluster does not have enough standby daemons. The standby deamons not in replay
-count towards any file system (i.e. they may overlap). This warning can
-configured by setting ``ceph fs set <fs> standby_count_wanted <count>``. Use
-zero for ``count`` to disable.
-
-
-Daemon-reported health checks
-=============================
-
-MDS daemons can identify a variety of unwanted conditions, and
-indicate these to the operator in the output of ``ceph status``.
-This conditions have human readable messages, and additionally
-a unique code starting MDS_HEALTH which appears in JSON output.
-
-Message: "Behind on trimming..."
-Code: MDS_HEALTH_TRIM
-Description: CephFS maintains a metadata journal that is divided into
-*log segments*. The length of journal (in number of segments) is controlled
-by the setting ``mds_log_max_segments``, and when the number of segments
-exceeds that setting the MDS starts writing back metadata so that it
-can remove (trim) the oldest segments. If this writeback is happening
-too slowly, or a software bug is preventing trimming, then this health
-message may appear. The threshold for this message to appear is for the
-number of segments to be double ``mds_log_max_segments``.
-
-Message: "Client *name* failing to respond to capability release"
-Code: MDS_HEALTH_CLIENT_LATE_RELEASE, MDS_HEALTH_CLIENT_LATE_RELEASE_MANY
-Description: CephFS clients are issued *capabilities* by the MDS, which
-are like locks. Sometimes, for example when another client needs access,
-the MDS will request clients release their capabilities. If the client
-is unresponsive or buggy, it might fail to do so promptly or fail to do
-so at all. This message appears if a client has taken longer than
-``mds_revoke_cap_timeout`` (default 60s) to comply.
-
-Message: "Client *name* failing to respond to cache pressure"
-Code: MDS_HEALTH_CLIENT_RECALL, MDS_HEALTH_CLIENT_RECALL_MANY
-Description: Clients maintain a metadata cache. Items (such as inodes) in the
-client cache are also pinned in the MDS cache, so when the MDS needs to shrink
-its cache (to stay within ``mds_cache_size`` or ``mds_cache_memory_limit``), it
-sends messages to clients to shrink their caches too. If the client is
-unresponsive or buggy, this can prevent the MDS from properly staying within
-its cache limits and it may eventually run out of memory and crash. This
-message appears if a client has taken more than ``mds_recall_state_timeout``
-(default 60s) to comply.
-
-Message: "Client *name* failing to advance its oldest client/flush tid"
-Code: MDS_HEALTH_CLIENT_OLDEST_TID, MDS_HEALTH_CLIENT_OLDEST_TID_MANY
-Description: The CephFS client-MDS protocol uses a field called the
-*oldest tid* to inform the MDS of which client requests are fully
-complete and may therefore be forgotten about by the MDS. If a buggy
-client is failing to advance this field, then the MDS may be prevented
-from properly cleaning up resources used by client requests. This message
-appears if a client appears to have more than ``max_completed_requests``
-(default 100000) requests that are complete on the MDS side but haven't
-yet been accounted for in the client's *oldest tid* value.
-
-Message: "Metadata damage detected"
-Code: MDS_HEALTH_DAMAGE,
-Description: Corrupt or missing metadata was encountered when reading
-from the metadata pool. This message indicates that the damage was
-sufficiently isolated for the MDS to continue operating, although
-client accesses to the damaged subtree will return IO errors. Use
-the ``damage ls`` admin socket command to get more detail on the damage.
-This message appears as soon as any damage is encountered.
-
-Message: "MDS in read-only mode"
-Code: MDS_HEALTH_READ_ONLY,
-Description: The MDS has gone into readonly mode and will return EROFS
-error codes to client operations that attempt to modify any metadata. The
-MDS will go into readonly mode if it encounters a write error while
-writing to the metadata pool, or if forced to by an administrator using
-the *force_readonly* admin socket command.
-
-Message: *N* slow requests are blocked"
-Code: MDS_HEALTH_SLOW_REQUEST,
-Description: One or more client requests have not been completed promptly,
-indicating that the MDS is either running very slowly, or that the RADOS
-cluster is not acknowledging journal writes promptly, or that there is a bug.
-Use the ``ops`` admin socket command to list outstanding metadata operations.
-This message appears if any client requests have taken longer than
-``mds_op_complaint_time`` (default 30s).
-
-Message: "Too many inodes in cache"
-Code: MDS_HEALTH_CACHE_OVERSIZED
-Description: The MDS is not succeeding in trimming its cache to comply with the
-limit set by the administrator. If the MDS cache becomes too large, the daemon
-may exhaust available memory and crash. By default, this message appears if
-the actual cache size (in inodes or memory) is at least 50% greater than
-``mds_cache_size`` (default 100000) or ``mds_cache_memory_limit`` (default
-1GB). Modify ``mds_health_cache_threshold`` to set the warning ratio.
diff --git a/src/ceph/doc/cephfs/index.rst b/src/ceph/doc/cephfs/index.rst
deleted file mode 100644
index c63364f..0000000
--- a/src/ceph/doc/cephfs/index.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-=================
- Ceph Filesystem
-=================
-
-The :term:`Ceph Filesystem` (Ceph FS) is a POSIX-compliant filesystem that uses
-a Ceph Storage Cluster to store its data. The Ceph filesystem uses the same Ceph
-Storage Cluster system as Ceph Block Devices, Ceph Object Storage with its S3
-and Swift APIs, or native bindings (librados).
-
-.. note:: If you are evaluating CephFS for the first time, please review
- the best practices for deployment: :doc:`/cephfs/best-practices`
-
-.. ditaa::
- +-----------------------+ +------------------------+
- | | | CephFS FUSE |
- | | +------------------------+
- | |
- | | +------------------------+
- | CephFS Kernel Object | | CephFS Library |
- | | +------------------------+
- | |
- | | +------------------------+
- | | | librados |
- +-----------------------+ +------------------------+
-
- +---------------+ +---------------+ +---------------+
- | OSDs | | MDSs | | Monitors |
- +---------------+ +---------------+ +---------------+
-
-
-Using CephFS
-============
-
-Using the Ceph Filesystem requires at least one :term:`Ceph Metadata Server` in
-your Ceph Storage Cluster.
-
-
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="33%"><col width="33%"><col width="33%"></colgroup><tbody valign="top"><tr><td><h3>Step 1: Metadata Server</h3>
-
-To run the Ceph Filesystem, you must have a running Ceph Storage Cluster with at
-least one :term:`Ceph Metadata Server` running.
-
-
-.. toctree::
- :maxdepth: 1
-
- Add/Remove MDS(s) <../../rados/deployment/ceph-deploy-mds>
- MDS failover and standby configuration <standby>
- MDS Configuration Settings <mds-config-ref>
- Client Configuration Settings <client-config-ref>
- Journaler Configuration <journaler>
- Manpage ceph-mds <../../man/8/ceph-mds>
-
-.. raw:: html
-
- </td><td><h3>Step 2: Mount CephFS</h3>
-
-Once you have a healthy Ceph Storage Cluster with at least
-one Ceph Metadata Server, you may create and mount your Ceph Filesystem.
-Ensure that you client has network connectivity and the proper
-authentication keyring.
-
-.. toctree::
- :maxdepth: 1
-
- Create CephFS <createfs>
- Mount CephFS <kernel>
- Mount CephFS as FUSE <fuse>
- Mount CephFS in fstab <fstab>
- Manpage ceph-fuse <../../man/8/ceph-fuse>
- Manpage mount.ceph <../../man/8/mount.ceph>
-
-
-.. raw:: html
-
- </td><td><h3>Additional Details</h3>
-
-.. toctree::
- :maxdepth: 1
-
- Deployment best practices <best-practices>
- Administrative commands <administration>
- POSIX compatibility <posix>
- Experimental Features <experimental-features>
- CephFS Quotas <quota>
- Using Ceph with Hadoop <hadoop>
- cephfs-journal-tool <cephfs-journal-tool>
- File layouts <file-layouts>
- Client eviction <eviction>
- Handling full filesystems <full>
- Health messages <health-messages>
- Troubleshooting <troubleshooting>
- Disaster recovery <disaster-recovery>
- Client authentication <client-auth>
- Upgrading old filesystems <upgrading>
- Configuring directory fragmentation <dirfrags>
- Configuring multiple active MDS daemons <multimds>
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-For developers
-==============
-
-.. toctree::
- :maxdepth: 1
-
- Client's Capabilities <capabilities>
- libcephfs <../../api/libcephfs-java/>
- Mantle <mantle>
-
diff --git a/src/ceph/doc/cephfs/journaler.rst b/src/ceph/doc/cephfs/journaler.rst
deleted file mode 100644
index 2121532..0000000
--- a/src/ceph/doc/cephfs/journaler.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-===========
- Journaler
-===========
-
-``journaler write head interval``
-
-:Description: How frequently to update the journal head object
-:Type: Integer
-:Required: No
-:Default: ``15``
-
-
-``journaler prefetch periods``
-
-:Description: How many stripe periods to read-ahead on journal replay
-:Type: Integer
-:Required: No
-:Default: ``10``
-
-
-``journal prezero periods``
-
-:Description: How many stripe periods to zero ahead of write position
-:Type: Integer
-:Required: No
-:Default: ``10``
-
-``journaler batch interval``
-
-:Description: Maximum additional latency in seconds we incur artificially.
-:Type: Double
-:Required: No
-:Default: ``.001``
-
-
-``journaler batch max``
-
-:Description: Maximum bytes we will delay flushing.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``0``
diff --git a/src/ceph/doc/cephfs/kernel.rst b/src/ceph/doc/cephfs/kernel.rst
deleted file mode 100644
index eaaacef..0000000
--- a/src/ceph/doc/cephfs/kernel.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-======================================
- Mount Ceph FS with the Kernel Driver
-======================================
-
-To mount the Ceph file system you may use the ``mount`` command if you know the
-monitor host IP address(es), or use the ``mount.ceph`` utility to resolve the
-monitor host name(s) into IP address(es) for you. For example::
-
- sudo mkdir /mnt/mycephfs
- sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs
-
-To mount the Ceph file system with ``cephx`` authentication enabled, you must
-specify a user name and a secret. ::
-
- sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secret=AQATSKdNGBnwLhAAnNDKnH65FmVKpXZJVasUeQ==
-
-The foregoing usage leaves the secret in the Bash history. A more secure
-approach reads the secret from a file. For example::
-
- sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=/etc/ceph/admin.secret
-
-If you have more than one filesystem, specify which one to mount using
-the ``mds_namespace`` option, e.g. ``-o mds_namespace=myfs``.
-
-See `User Management`_ for details on cephx.
-
-To unmount the Ceph file system, you may use the ``umount`` command. For example::
-
- sudo umount /mnt/mycephfs
-
-.. tip:: Ensure that you are not within the file system directories before
- executing this command.
-
-See `mount.ceph`_ for details.
-
-.. _mount.ceph: ../../man/8/mount.ceph/
-.. _User Management: ../../rados/operations/user-management/
diff --git a/src/ceph/doc/cephfs/mantle.rst b/src/ceph/doc/cephfs/mantle.rst
deleted file mode 100644
index 9be89d6..0000000
--- a/src/ceph/doc/cephfs/mantle.rst
+++ /dev/null
@@ -1,263 +0,0 @@
-Mantle
-======
-
-.. warning::
-
- Mantle is for research and development of metadata balancer algorithms,
- not for use on production CephFS clusters.
-
-Multiple, active MDSs can migrate directories to balance metadata load. The
-policies for when, where, and how much to migrate are hard-coded into the
-metadata balancing module. Mantle is a programmable metadata balancer built
-into the MDS. The idea is to protect the mechanisms for balancing load
-(migration, replication, fragmentation) but stub out the balancing policies
-using Lua. Mantle is based on [1] but the current implementation does *NOT*
-have the following features from that paper:
-
-1. Balancing API: in the paper, the user fills in when, where, how much, and
- load calculation policies; currently, Mantle only requires that Lua policies
- return a table of target loads (e.g., how much load to send to each MDS)
-2. "How much" hook: in the paper, there was a hook that let the user control
- the fragment selector policy; currently, Mantle does not have this hook
-3. Instantaneous CPU utilization as a metric
-
-[1] Supercomputing '15 Paper:
-http://sc15.supercomputing.org/schedule/event_detail-evid=pap168.html
-
-Quickstart with vstart
-----------------------
-
-.. warning::
-
- Developing balancers with vstart is difficult because running all daemons
- and clients on one node can overload the system. Let it run for a while, even
- though you will likely see a bunch of lost heartbeat and laggy MDS warnings.
- Most of the time this guide will work but sometimes all MDSs lock up and you
- cannot actually see them spill. It is much better to run this on a cluster.
-
-As a pre-requistie, we assume you have installed `mdtest
-<https://sourceforge.net/projects/mdtest/>`_ or pulled the `Docker image
-<https://hub.docker.com/r/michaelsevilla/mdtest/>`_. We use mdtest because we
-need to generate enough load to get over the MIN_OFFLOAD threshold that is
-arbitrarily set in the balancer. For example, this does not create enough
-metadata load:
-
-::
-
- while true; do
- touch "/cephfs/blah-`date`"
- done
-
-
-Mantle with `vstart.sh`
-~~~~~~~~~~~~~~~~~~~~~~~
-
-1. Start Ceph and tune the logging so we can see migrations happen:
-
-::
-
- cd build
- ../src/vstart.sh -n -l
- for i in a b c; do
- bin/ceph --admin-daemon out/mds.$i.asok config set debug_ms 0
- bin/ceph --admin-daemon out/mds.$i.asok config set debug_mds 2
- bin/ceph --admin-daemon out/mds.$i.asok config set mds_beacon_grace 1500
- done
-
-
-2. Put the balancer into RADOS:
-
-::
-
- bin/rados put --pool=cephfs_metadata_a greedyspill.lua ../src/mds/balancers/greedyspill.lua
-
-
-3. Activate Mantle:
-
-::
-
- bin/ceph fs set cephfs max_mds 5
- bin/ceph fs set cephfs_a balancer greedyspill.lua
-
-
-4. Mount CephFS in another window:
-
-::
-
- bin/ceph-fuse /cephfs -o allow_other &
- tail -f out/mds.a.log
-
-
- Note that if you look at the last MDS (which could be a, b, or c -- it's
- random), you will see an an attempt to index a nil value. This is because the
- last MDS tries to check the load of its neighbor, which does not exist.
-
-5. Run a simple benchmark. In our case, we use the Docker mdtest image to
- create load:
-
-::
-
- for i in 0 1 2; do
- docker run -d \
- --name=client$i \
- -v /cephfs:/cephfs \
- michaelsevilla/mdtest \
- -F -C -n 100000 -d "/cephfs/client-test$i"
- done
-
-
-6. When you are done, you can kill all the clients with:
-
-::
-
- for i in 0 1 2 3; do docker rm -f client$i; done
-
-
-Output
-~~~~~~
-
-Looking at the log for the first MDS (could be a, b, or c), we see that
-everyone has no load:
-
-::
-
- 2016-08-21 06:44:01.763930 7fd03aaf7700 0 lua.balancer MDS0: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=1.0 queue_len=0.0 cpu_load_avg=1.35 > load=0.0
- 2016-08-21 06:44:01.763966 7fd03aaf7700 0 lua.balancer MDS1: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=0.0 queue_len=0.0 cpu_load_avg=1.35 > load=0.0
- 2016-08-21 06:44:01.763982 7fd03aaf7700 0 lua.balancer MDS2: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=0.0 queue_len=0.0 cpu_load_avg=1.35 > load=0.0
- 2016-08-21 06:44:01.764010 7fd03aaf7700 2 lua.balancer when: not migrating! my_load=0.0 hisload=0.0
- 2016-08-21 06:44:01.764033 7fd03aaf7700 2 mds.0.bal mantle decided that new targets={}
-
-
-After the jobs starts, MDS0 gets about 1953 units of load. The greedy spill
-balancer dictates that half the load goes to your neighbor MDS, so we see that
-Mantle tries to send 1953 load units to MDS1.
-
-::
-
- 2016-08-21 06:45:21.869994 7fd03aaf7700 0 lua.balancer MDS0: < auth.meta_load=5834.188908912 all.meta_load=1953.3492228857 req_rate=12591.0 queue_len=1075.0 cpu_load_avg=3.05 > load=1953.3492228857
- 2016-08-21 06:45:21.870017 7fd03aaf7700 0 lua.balancer MDS1: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=0.0 queue_len=0.0 cpu_load_avg=3.05 > load=0.0
- 2016-08-21 06:45:21.870027 7fd03aaf7700 0 lua.balancer MDS2: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=0.0 queue_len=0.0 cpu_load_avg=3.05 > load=0.0
- 2016-08-21 06:45:21.870034 7fd03aaf7700 2 lua.balancer when: migrating! my_load=1953.3492228857 hisload=0.0
- 2016-08-21 06:45:21.870050 7fd03aaf7700 2 mds.0.bal mantle decided that new targets={0=0,1=976.675,2=0}
- 2016-08-21 06:45:21.870094 7fd03aaf7700 0 mds.0.bal - exporting [0,0.52287 1.04574] 1030.88 to mds.1 [dir 100000006ab /client-test2/ [2,head] auth pv=33 v=32 cv=32/0 ap=2+3+4 state=1610612802|complete f(v0 m2016-08-21 06:44:20.366935 1=0+1) n(v2 rc2016-08-21 06:44:30.946816 3790=3788+2) hs=1+0,ss=0+0 dirty=1 | child=1 dirty=1 authpin=1 0x55d2762fd690]
- 2016-08-21 06:45:21.870151 7fd03aaf7700 0 mds.0.migrator nicely exporting to mds.1 [dir 100000006ab /client-test2/ [2,head] auth pv=33 v=32 cv=32/0 ap=2+3+4 state=1610612802|complete f(v0 m2016-08-21 06:44:20.366935 1=0+1) n(v2 rc2016-08-21 06:44:30.946816 3790=3788+2) hs=1+0,ss=0+0 dirty=1 | child=1 dirty=1 authpin=1 0x55d2762fd690]
-
-
-Eventually load moves around:
-
-::
-
- 2016-08-21 06:47:10.210253 7fd03aaf7700 0 lua.balancer MDS0: < auth.meta_load=415.77414300449 all.meta_load=415.79000078186 req_rate=82813.0 queue_len=0.0 cpu_load_avg=11.97 > load=415.79000078186
- 2016-08-21 06:47:10.210277 7fd03aaf7700 0 lua.balancer MDS1: < auth.meta_load=228.72023977691 all.meta_load=186.5606496623 req_rate=28580.0 queue_len=0.0 cpu_load_avg=11.97 > load=186.5606496623
- 2016-08-21 06:47:10.210290 7fd03aaf7700 0 lua.balancer MDS2: < auth.meta_load=0.0 all.meta_load=0.0 req_rate=1.0 queue_len=0.0 cpu_load_avg=11.97 > load=0.0
- 2016-08-21 06:47:10.210298 7fd03aaf7700 2 lua.balancer when: not migrating! my_load=415.79000078186 hisload=186.5606496623
- 2016-08-21 06:47:10.210311 7fd03aaf7700 2 mds.0.bal mantle decided that new targets={}
-
-
-Implementation Details
-----------------------
-
-Most of the implementation is in MDBalancer. Metrics are passed to the balancer
-policies via the Lua stack and a list of loads is returned back to MDBalancer.
-It sits alongside the current balancer implementation and it's enabled with a
-Ceph CLI command ("ceph fs set cephfs balancer mybalancer.lua"). If the Lua policy
-fails (for whatever reason), we fall back to the original metadata load
-balancer. The balancer is stored in the RADOS metadata pool and a string in the
-MDSMap tells the MDSs which balancer to use.
-
-Exposing Metrics to Lua
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Metrics are exposed directly to the Lua code as global variables instead of
-using a well-defined function signature. There is a global "mds" table, where
-each index is an MDS number (e.g., 0) and each value is a dictionary of metrics
-and values. The Lua code can grab metrics using something like this:
-
-::
-
- mds[0]["queue_len"]
-
-
-This is in contrast to cls-lua in the OSDs, which has well-defined arguments
-(e.g., input/output bufferlists). Exposing the metrics directly makes it easier
-to add new metrics without having to change the API on the Lua side; we want
-the API to grow and shrink as we explore which metrics matter. The downside of
-this approach is that the person programming Lua balancer policies has to look
-at the Ceph source code to see which metrics are exposed. We figure that the
-Mantle developer will be in touch with MDS internals anyways.
-
-The metrics exposed to the Lua policy are the same ones that are already stored
-in mds_load_t: auth.meta_load(), all.meta_load(), req_rate, queue_length,
-cpu_load_avg.
-
-Compile/Execute the Balancer
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here we use `lua_pcall` instead of `lua_call` because we want to handle errors
-in the MDBalancer. We do not want the error propagating up the call chain. The
-cls_lua class wants to handle the error itself because it must fail gracefully.
-For Mantle, we don't care if a Lua error crashes our balancer -- in that case,
-we will fall back to the original balancer.
-
-The performance improvement of using `lua_call` over `lua_pcall` would not be
-leveraged here because the balancer is invoked every 10 seconds by default.
-
-Returning Policy Decision to C++
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-We force the Lua policy engine to return a table of values, corresponding to
-the amount of load to send to each MDS. These loads are inserted directly into
-the MDBalancer "my_targets" vector. We do not allow the MDS to return a table
-of MDSs and metrics because we want the decision to be completely made on the
-Lua side.
-
-Iterating through tables returned by Lua is done through the stack. In Lua
-jargon: a dummy value is pushed onto the stack and the next iterator replaces
-the top of the stack with a (k, v) pair. After reading each value, pop that
-value but keep the key for the next call to `lua_next`.
-
-Reading from RADOS
-~~~~~~~~~~~~~~~~~~
-
-All MDSs will read balancing code from RADOS when the balancer version changes
-in the MDS Map. The balancer pulls the Lua code from RADOS synchronously. We do
-this with a timeout: if the asynchronous read does not come back within half
-the balancing tick interval the operation is cancelled and a Connection Timeout
-error is returned. By default, the balancing tick interval is 10 seconds, so
-Mantle will use a 5 second second timeout. This design allows Mantle to
-immediately return an error if anything RADOS-related goes wrong.
-
-We use this implementation because we do not want to do a blocking OSD read
-from inside the global MDS lock. Doing so would bring down the MDS cluster if
-any of the OSDs are not responsive -- this is tested in the ceph-qa-suite by
-setting all OSDs to down/out and making sure the MDS cluster stays active.
-
-One approach would be to asynchronously fire the read when handling the MDS Map
-and fill in the Lua code in the background. We cannot do this because the MDS
-does not support daemon-local fallbacks and the balancer assumes that all MDSs
-come to the same decision at the same time (e.g., importers, exporters, etc.).
-
-Debugging
-~~~~~~~~~
-
-Logging in a Lua policy will appear in the MDS log. The syntax is the same as
-the cls logging interface:
-
-::
-
- BAL_LOG(0, "this is a log message")
-
-
-It is implemented by passing a function that wraps the `dout` logging framework
-(`dout_wrapper`) to Lua with the `lua_register()` primitive. The Lua code is
-actually calling the `dout` function in C++.
-
-Warning and Info messages are centralized using the clog/Beacon. Successful
-messages are only sent on version changes by the first MDS to avoid spamming
-the `ceph -w` utility. These messages are used for the integration tests.
-
-Testing
-~~~~~~~
-
-Testing is done with the ceph-qa-suite (tasks.cephfs.test_mantle). We do not
-test invalid balancer logging and loading the actual Lua VM.
diff --git a/src/ceph/doc/cephfs/mds-config-ref.rst b/src/ceph/doc/cephfs/mds-config-ref.rst
deleted file mode 100644
index 2fd47ae..0000000
--- a/src/ceph/doc/cephfs/mds-config-ref.rst
+++ /dev/null
@@ -1,629 +0,0 @@
-======================
- MDS Config Reference
-======================
-
-``mon force standby active``
-
-:Description: If ``true`` monitors force standby-replay to be active. Set
- under ``[mon]`` or ``[global]``.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``mds max file size``
-
-:Description: The maximum allowed file size to set when creating a
- new file system.
-
-:Type: 64-bit Integer Unsigned
-:Default: ``1ULL << 40``
-
-``mds cache memory limit``
-
-:Description: The memory limit the MDS should enforce for its cache.
- Administrators should use this instead of ``mds cache size``.
-:Type: 64-bit Integer Unsigned
-:Default: ``1073741824``
-
-``mds cache reservation``
-
-:Description: The cache reservation (memory or inodes) for the MDS cache to maintain.
- Once the MDS begins dipping into its reservation, it will recall
- client state until its cache size shrinks to restore the
- reservation.
-:Type: Float
-:Default: ``0.05``
-
-``mds cache size``
-
-:Description: The number of inodes to cache. A value of 0 indicates an
- unlimited number. It is recommended to use
- ``mds_cache_memory_limit`` to limit the amount of memory the MDS
- cache uses.
-:Type: 32-bit Integer
-:Default: ``0``
-
-``mds cache mid``
-
-:Description: The insertion point for new items in the cache LRU
- (from the top).
-
-:Type: Float
-:Default: ``0.7``
-
-
-``mds dir commit ratio``
-
-:Description: The fraction of directory that is dirty before Ceph commits using
- a full update (instead of partial update).
-
-:Type: Float
-:Default: ``0.5``
-
-
-``mds dir max commit size``
-
-:Description: The maximum size of a directory update before Ceph breaks it into
- smaller transactions) (MB).
-
-:Type: 32-bit Integer
-:Default: ``90``
-
-
-``mds decay halflife``
-
-:Description: The half-life of MDS cache temperature.
-:Type: Float
-:Default: ``5``
-
-``mds beacon interval``
-
-:Description: The frequency (in seconds) of beacon messages sent
- to the monitor.
-
-:Type: Float
-:Default: ``4``
-
-
-``mds beacon grace``
-
-:Description: The interval without beacons before Ceph declares an MDS laggy
- (and possibly replace it).
-
-:Type: Float
-:Default: ``15``
-
-
-``mds blacklist interval``
-
-:Description: The blacklist duration for failed MDSs in the OSD map.
-:Type: Float
-:Default: ``24.0*60.0``
-
-
-``mds session timeout``
-
-:Description: The interval (in seconds) of client inactivity before Ceph
- times out capabilities and leases.
-
-:Type: Float
-:Default: ``60``
-
-
-``mds session autoclose``
-
-:Description: The interval (in seconds) before Ceph closes
- a laggy client's session.
-
-:Type: Float
-:Default: ``300``
-
-
-``mds reconnect timeout``
-
-:Description: The interval (in seconds) to wait for clients to reconnect
- during MDS restart.
-
-:Type: Float
-:Default: ``45``
-
-
-``mds tick interval``
-
-:Description: How frequently the MDS performs internal periodic tasks.
-:Type: Float
-:Default: ``5``
-
-
-``mds dirstat min interval``
-
-:Description: The minimum interval (in seconds) to try to avoid propagating
- recursive stats up the tree.
-
-:Type: Float
-:Default: ``1``
-
-``mds scatter nudge interval``
-
-:Description: How quickly dirstat changes propagate up.
-:Type: Float
-:Default: ``5``
-
-
-``mds client prealloc inos``
-
-:Description: The number of inode numbers to preallocate per client session.
-:Type: 32-bit Integer
-:Default: ``1000``
-
-
-``mds early reply``
-
-:Description: Determines whether the MDS should allow clients to see request
- results before they commit to the journal.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``mds use tmap``
-
-:Description: Use trivialmap for directory updates.
-:Type: Boolean
-:Default: ``true``
-
-
-``mds default dir hash``
-
-:Description: The function to use for hashing files across directory fragments.
-:Type: 32-bit Integer
-:Default: ``2`` (i.e., rjenkins)
-
-
-``mds log skip corrupt events``
-
-:Description: Determines whether the MDS should try to skip corrupt journal
- events during journal replay.
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds log max events``
-
-:Description: The maximum events in the journal before we initiate trimming.
- Set to ``-1`` to disable limits.
-
-:Type: 32-bit Integer
-:Default: ``-1``
-
-
-``mds log max segments``
-
-:Description: The maximum number of segments (objects) in the journal before
- we initiate trimming. Set to ``-1`` to disable limits.
-
-:Type: 32-bit Integer
-:Default: ``30``
-
-
-``mds log max expiring``
-
-:Description: The maximum number of segments to expire in parallels
-:Type: 32-bit Integer
-:Default: ``20``
-
-
-``mds log eopen size``
-
-:Description: The maximum number of inodes in an EOpen event.
-:Type: 32-bit Integer
-:Default: ``100``
-
-
-``mds bal sample interval``
-
-:Description: Determines how frequently to sample directory temperature
- (for fragmentation decisions).
-
-:Type: Float
-:Default: ``3``
-
-
-``mds bal replicate threshold``
-
-:Description: The maximum temperature before Ceph attempts to replicate
- metadata to other nodes.
-
-:Type: Float
-:Default: ``8000``
-
-
-``mds bal unreplicate threshold``
-
-:Description: The minimum temperature before Ceph stops replicating
- metadata to other nodes.
-
-:Type: Float
-:Default: ``0``
-
-
-``mds bal frag``
-
-:Description: Determines whether the MDS will fragment directories.
-:Type: Boolean
-:Default: ``false``
-
-
-``mds bal split size``
-
-:Description: The maximum directory size before the MDS will split a directory
- fragment into smaller bits.
-
-:Type: 32-bit Integer
-:Default: ``10000``
-
-
-``mds bal split rd``
-
-:Description: The maximum directory read temperature before Ceph splits
- a directory fragment.
-
-:Type: Float
-:Default: ``25000``
-
-
-``mds bal split wr``
-
-:Description: The maximum directory write temperature before Ceph splits
- a directory fragment.
-
-:Type: Float
-:Default: ``10000``
-
-
-``mds bal split bits``
-
-:Description: The number of bits by which to split a directory fragment.
-:Type: 32-bit Integer
-:Default: ``3``
-
-
-``mds bal merge size``
-
-:Description: The minimum directory size before Ceph tries to merge
- adjacent directory fragments.
-
-:Type: 32-bit Integer
-:Default: ``50``
-
-
-``mds bal interval``
-
-:Description: The frequency (in seconds) of workload exchanges between MDSs.
-:Type: 32-bit Integer
-:Default: ``10``
-
-
-``mds bal fragment interval``
-
-:Description: The delay (in seconds) between a fragment being elegible for split
- or merge and executing the fragmentation change.
-:Type: 32-bit Integer
-:Default: ``5``
-
-
-``mds bal fragment fast factor``
-
-:Description: The ratio by which frags may exceed the split size before
- a split is executed immediately (skipping the fragment interval)
-:Type: Float
-:Default: ``1.5``
-
-``mds bal fragment size max``
-
-:Description: The maximum size of a fragment before any new entries
- are rejected with ENOSPC.
-:Type: 32-bit Integer
-:Default: ``100000``
-
-``mds bal idle threshold``
-
-:Description: The minimum temperature before Ceph migrates a subtree
- back to its parent.
-
-:Type: Float
-:Default: ``0``
-
-
-``mds bal max``
-
-:Description: The number of iterations to run balancer before Ceph stops.
- (used for testing purposes only)
-
-:Type: 32-bit Integer
-:Default: ``-1``
-
-
-``mds bal max until``
-
-:Description: The number of seconds to run balancer before Ceph stops.
- (used for testing purposes only)
-
-:Type: 32-bit Integer
-:Default: ``-1``
-
-
-``mds bal mode``
-
-:Description: The method for calculating MDS load.
-
- - ``0`` = Hybrid.
- - ``1`` = Request rate and latency.
- - ``2`` = CPU load.
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds bal min rebalance``
-
-:Description: The minimum subtree temperature before Ceph migrates.
-:Type: Float
-:Default: ``0.1``
-
-
-``mds bal min start``
-
-:Description: The minimum subtree temperature before Ceph searches a subtree.
-:Type: Float
-:Default: ``0.2``
-
-
-``mds bal need min``
-
-:Description: The minimum fraction of target subtree size to accept.
-:Type: Float
-:Default: ``0.8``
-
-
-``mds bal need max``
-
-:Description: The maximum fraction of target subtree size to accept.
-:Type: Float
-:Default: ``1.2``
-
-
-``mds bal midchunk``
-
-:Description: Ceph will migrate any subtree that is larger than this fraction
- of the target subtree size.
-
-:Type: Float
-:Default: ``0.3``
-
-
-``mds bal minchunk``
-
-:Description: Ceph will ignore any subtree that is smaller than this fraction
- of the target subtree size.
-
-:Type: Float
-:Default: ``0.001``
-
-
-``mds bal target removal min``
-
-:Description: The minimum number of balancer iterations before Ceph removes
- an old MDS target from the MDS map.
-
-:Type: 32-bit Integer
-:Default: ``5``
-
-
-``mds bal target removal max``
-
-:Description: The maximum number of balancer iteration before Ceph removes
- an old MDS target from the MDS map.
-
-:Type: 32-bit Integer
-:Default: ``10``
-
-
-``mds replay interval``
-
-:Description: The journal poll interval when in standby-replay mode.
- ("hot standby")
-
-:Type: Float
-:Default: ``1``
-
-
-``mds shutdown check``
-
-:Description: The interval for polling the cache during MDS shutdown.
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds thrash exports``
-
-:Description: Ceph will randomly export subtrees between nodes (testing only).
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds thrash fragments``
-
-:Description: Ceph will randomly fragment or merge directories.
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds dump cache on map``
-
-:Description: Ceph will dump the MDS cache contents to a file on each MDSMap.
-:Type: Boolean
-:Default: ``false``
-
-
-``mds dump cache after rejoin``
-
-:Description: Ceph will dump MDS cache contents to a file after
- rejoining the cache (during recovery).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds verify scatter``
-
-:Description: Ceph will assert that various scatter/gather invariants
- are ``true`` (developers only).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds debug scatterstat``
-
-:Description: Ceph will assert that various recursive stat invariants
- are ``true`` (for developers only).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds debug frag``
-
-:Description: Ceph will verify directory fragmentation invariants
- when convenient (developers only).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds debug auth pins``
-
-:Description: The debug auth pin invariants (for developers only).
-:Type: Boolean
-:Default: ``false``
-
-
-``mds debug subtrees``
-
-:Description: The debug subtree invariants (for developers only).
-:Type: Boolean
-:Default: ``false``
-
-
-``mds kill mdstable at``
-
-:Description: Ceph will inject MDS failure in MDSTable code
- (for developers only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds kill export at``
-
-:Description: Ceph will inject MDS failure in the subtree export code
- (for developers only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds kill import at``
-
-:Description: Ceph will inject MDS failure in the subtree import code
- (for developers only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds kill link at``
-
-:Description: Ceph will inject MDS failure in hard link code
- (for developers only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds kill rename at``
-
-:Description: Ceph will inject MDS failure in the rename code
- (for developers only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds wipe sessions``
-
-:Description: Ceph will delete all client sessions on startup
- (for testing only).
-
-:Type: Boolean
-:Default: ``0``
-
-
-``mds wipe ino prealloc``
-
-:Description: Ceph will delete ino preallocation metadata on startup
- (for testing only).
-
-:Type: Boolean
-:Default: ``0``
-
-
-``mds skip ino``
-
-:Description: The number of inode numbers to skip on startup
- (for testing only).
-
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``mds standby for name``
-
-:Description: An MDS daemon will standby for another MDS daemon of the name
- specified in this setting.
-
-:Type: String
-:Default: N/A
-
-
-``mds standby for rank``
-
-:Description: An MDS daemon will standby for an MDS daemon of this rank.
-:Type: 32-bit Integer
-:Default: ``-1``
-
-
-``mds standby replay``
-
-:Description: Determines whether a ``ceph-mds`` daemon should poll and replay
- the log of an active MDS (hot standby).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mds min caps per client``
-
-:Description: Set the minimum number of capabilities a client may hold.
-:Type: Integer
-:Default: ``100``
-
-
-``mds max ratio caps per client``
-
-:Description: Set the maximum ratio of current caps that may be recalled during MDS cache pressure.
-:Type: Float
-:Default: ``0.8``
diff --git a/src/ceph/doc/cephfs/multimds.rst b/src/ceph/doc/cephfs/multimds.rst
deleted file mode 100644
index 11814c1..0000000
--- a/src/ceph/doc/cephfs/multimds.rst
+++ /dev/null
@@ -1,147 +0,0 @@
-
-Configuring multiple active MDS daemons
----------------------------------------
-
-*Also known as: multi-mds, active-active MDS*
-
-Each CephFS filesystem is configured for a single active MDS daemon
-by default. To scale metadata performance for large scale systems, you
-may enable multiple active MDS daemons, which will share the metadata
-workload with one another.
-
-When should I use multiple active MDS daemons?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You should configure multiple active MDS daemons when your metadata performance
-is bottlenecked on the single MDS that runs by default.
-
-Adding more daemons may not increase performance on all workloads. Typically,
-a single application running on a single client will not benefit from an
-increased number of MDS daemons unless the application is doing a lot of
-metadata operations in parallel.
-
-Workloads that typically benefit from a larger number of active MDS daemons
-are those with many clients, perhaps working on many separate directories.
-
-
-Increasing the MDS active cluster size
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Each CephFS filesystem has a *max_mds* setting, which controls
-how many ranks will be created. The actual number of ranks
-in the filesystem will only be increased if a spare daemon is
-available to take on the new rank. For example, if there is only one MDS daemon running, and max_mds is set to two, no second rank will be created.
-
-Set ``max_mds`` to the desired number of ranks. In the following examples
-the "fsmap" line of "ceph status" is shown to illustrate the expected
-result of commands.
-
-::
-
- # fsmap e5: 1/1/1 up {0=a=up:active}, 2 up:standby
-
- ceph fs set max_mds 2
-
- # fsmap e8: 2/2/2 up {0=a=up:active,1=c=up:creating}, 1 up:standby
- # fsmap e9: 2/2/2 up {0=a=up:active,1=c=up:active}, 1 up:standby
-
-The newly created rank (1) will pass through the 'creating' state
-and then enter this 'active state'.
-
-Standby daemons
-~~~~~~~~~~~~~~~
-
-Even with multiple active MDS daemons, a highly available system **still
-requires standby daemons** to take over if any of the servers running
-an active daemon fail.
-
-Consequently, the practical maximum of ``max_mds`` for highly available systems
-is one less than the total number of MDS servers in your system.
-
-To remain available in the event of multiple server failures, increase the
-number of standby daemons in the system to match the number of server failures
-you wish to withstand.
-
-Decreasing the number of ranks
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-All ranks, including the rank(s) to be removed must first be active. This
-means that you must have at least max_mds MDS daemons available.
-
-First, set max_mds to a lower number, for example we might go back to
-having just a single active MDS:
-
-::
-
- # fsmap e9: 2/2/2 up {0=a=up:active,1=c=up:active}, 1 up:standby
- ceph fs set max_mds 1
- # fsmap e10: 2/2/1 up {0=a=up:active,1=c=up:active}, 1 up:standby
-
-Note that we still have two active MDSs: the ranks still exist even though
-we have decreased max_mds, because max_mds only restricts creation
-of new ranks.
-
-Next, use the ``ceph mds deactivate <role>`` command to remove the
-unneeded rank:
-
-::
-
- ceph mds deactivate cephfs_a:1
- telling mds.1:1 172.21.9.34:6806/837679928 to deactivate
-
- # fsmap e11: 2/2/1 up {0=a=up:active,1=c=up:stopping}, 1 up:standby
- # fsmap e12: 1/1/1 up {0=a=up:active}, 1 up:standby
- # fsmap e13: 1/1/1 up {0=a=up:active}, 2 up:standby
-
-See :doc:`/cephfs/administration` for more details which forms ``<role>`` can
-take.
-
-The deactivated rank will first enter the stopping state for a period
-of time while it hands off its share of the metadata to the remaining
-active daemons. This phase can take from seconds to minutes. If the
-MDS appears to be stuck in the stopping state then that should be investigated
-as a possible bug.
-
-If an MDS daemon crashes or is killed while in the 'stopping' state, a
-standby will take over and the rank will go back to 'active'. You can
-try to deactivate it again once it has come back up.
-
-When a daemon finishes stopping, it will respawn itself and go
-back to being a standby.
-
-
-Manually pinning directory trees to a particular rank
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In multiple active metadata server configurations, a balancer runs which works
-to spread metadata load evenly across the cluster. This usually works well
-enough for most users but sometimes it is desirable to override the dynamic
-balancer with explicit mappings of metadata to particular ranks. This can allow
-the administrator or users to evenly spread application load or limit impact of
-users' metadata requests on the entire cluster.
-
-The mechanism provided for this purpose is called an ``export pin``, an
-extended attribute of directories. The name of this extended attribute is
-``ceph.dir.pin``. Users can set this attribute using standard commands:
-
-::
-
- setfattr -n ceph.dir.pin -v 2 path/to/dir
-
-The value of the extended attribute is the rank to assign the directory subtree
-to. A default value of ``-1`` indicates the directory is not pinned.
-
-A directory's export pin is inherited from its closest parent with a set export
-pin. In this way, setting the export pin on a directory affects all of its
-children. However, the parents pin can be overriden by setting the child
-directory's export pin. For example:
-
-::
-
- mkdir -p a/b
- # "a" and "a/b" both start without an export pin set
- setfattr -n ceph.dir.pin -v 1 a/
- # a and b are now pinned to rank 1
- setfattr -n ceph.dir.pin -v 0 a/b
- # a/b is now pinned to rank 0 and a/ and the rest of its children are still pinned to rank 1
-
diff --git a/src/ceph/doc/cephfs/posix.rst b/src/ceph/doc/cephfs/posix.rst
deleted file mode 100644
index 6a62cb2..0000000
--- a/src/ceph/doc/cephfs/posix.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-========================
- Differences from POSIX
-========================
-
-CephFS aims to adhere to POSIX semantics wherever possible. For
-example, in contrast to many other common network file systems like
-NFS, CephFS maintains strong cache coherency across clients. The goal
-is for processes communicating via the file system to behave the same
-when they are on different hosts as when they are on the same host.
-
-However, there are a few places where CephFS diverges from strict
-POSIX semantics for various reasons:
-
-- If a client is writing to a file and fails, its writes are not
- necessarily atomic. That is, the client may call write(2) on a file
- opened with O_SYNC with an 8 MB buffer and then crash and the write
- may be only partially applied. (Almost all file systems, even local
- file systems, have this behavior.)
-- In shared simultaneous writer situations, a write that crosses
- object boundaries is not necessarily atomic. This means that you
- could have writer A write "aa|aa" and writer B write "bb|bb"
- simultaneously (where | is the object boundary), and end up with
- "aa|bb" rather than the proper "aa|aa" or "bb|bb".
-- POSIX includes the telldir(2) and seekdir(2) system calls that allow
- you to obtain the current directory offset and seek back to it.
- Because CephFS may refragment directories at any time, it is
- difficult to return a stable integer offset for a directory. As
- such, a seekdir to a non-zero offset may often work but is not
- guaranteed to do so. A seekdir to offset 0 will always work (and is
- equivalent to rewinddir(2)).
-- Sparse files propagate incorrectly to the stat(2) st_blocks field.
- Because CephFS does not explicitly track which parts of a file are
- allocated/written, the st_blocks field is always populated by the
- file size divided by the block size. This will cause tools like
- du(1) to overestimate consumed space. (The recursive size field,
- maintained by CephFS, also includes file "holes" in its count.)
-- When a file is mapped into memory via mmap(2) on multiple hosts,
- writes are not coherently propagated to other clients' caches. That
- is, if a page is cached on host A, and then updated on host B, host
- A's page is not coherently invalidated. (Shared writable mmap
- appears to be quite rare--we have yet to here any complaints about this
- behavior, and implementing cache coherency properly is complex.)
-- CephFS clients present a hidden ``.snap`` directory that is used to
- access, create, delete, and rename snapshots. Although the virtual
- directory is excluded from readdir(2), any process that tries to
- create a file or directory with the same name will get an error
- code. The name of this hidden directory can be changed at mount
- time with ``-o snapdirname=.somethingelse`` (Linux) or the config
- option ``client_snapdir`` (libcephfs, ceph-fuse).
diff --git a/src/ceph/doc/cephfs/quota.rst b/src/ceph/doc/cephfs/quota.rst
deleted file mode 100644
index aad0e0b..0000000
--- a/src/ceph/doc/cephfs/quota.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-Quotas
-======
-
-CephFS allows quotas to be set on any directory in the system. The
-quota can restrict the number of *bytes* or the number of *files*
-stored beneath that point in the directory hierarchy.
-
-Limitations
------------
-
-#. *Quotas are cooperative and non-adversarial.* CephFS quotas rely on
- the cooperation of the client who is mounting the file system to
- stop writers when a limit is reached. A modified or adversarial
- client cannot be prevented from writing as much data as it needs.
- Quotas should not be relied on to prevent filling the system in
- environments where the clients are fully untrusted.
-
-#. *Quotas are imprecise.* Processes that are writing to the file
- system will be stopped a short time after the quota limit is
- reached. They will inevitably be allowed to write some amount of
- data over the configured limit. How far over the quota they are
- able to go depends primarily on the amount of time, not the amount
- of data. Generally speaking writers will be stopped within 10s of
- seconds of crossing the configured limit.
-
-#. *Quotas are not yet implemented in the kernel client.* Quotas are
- supported by the userspace client (libcephfs, ceph-fuse) but are
- not yet implemented in the Linux kernel client.
-
-#. *Quotas must be configured carefully when used with path-based
- mount restrictions.* The client needs to have access to the
- directory inode on which quotas are configured in order to enforce
- them. If the client has restricted access to a specific path
- (e.g., ``/home/user``) based on the MDS capability, and a quota is
- configured on an ancestor directory they do not have access to
- (e.g., ``/home``), the client will not enforce it. When using
- path-based access restrictions be sure to configure the quota on
- the directory the client is restricted too (e.g., ``/home/user``)
- or something nested beneath it.
-
-Configuration
--------------
-
-Like most other things in CephFS, quotas are configured using virtual
-extended attributes:
-
- * ``ceph.quota.max_files`` -- file limit
- * ``ceph.quota.max_bytes`` -- byte limit
-
-If the attributes appear on a directory inode that means a quota is
-configured there. If they are not present then no quota is set on
-that directory (although one may still be configured on a parent directory).
-
-To set a quota::
-
- setfattr -n ceph.quota.max_bytes -v 100000000 /some/dir # 100 MB
- setfattr -n ceph.quota.max_files -v 10000 /some/dir # 10,000 files
-
-To view quota settings::
-
- getfattr -n ceph.quota.max_bytes /some/dir
- getfattr -n ceph.quota.max_files /some/dir
-
-Note that if the value of the extended attribute is ``0`` that means
-the quota is not set.
-
-To remove a quota::
-
- setfattr -n ceph.quota.max_bytes -v 0 /some/dir
- setfattr -n ceph.quota.max_files -v 0 /some/dir
diff --git a/src/ceph/doc/cephfs/standby.rst b/src/ceph/doc/cephfs/standby.rst
deleted file mode 100644
index 6cba2b7..0000000
--- a/src/ceph/doc/cephfs/standby.rst
+++ /dev/null
@@ -1,222 +0,0 @@
-
-Terminology
------------
-
-A Ceph cluster may have zero or more CephFS *filesystems*. CephFS
-filesystems have a human readable name (set in ``fs new``)
-and an integer ID. The ID is called the filesystem cluster ID,
-or *FSCID*.
-
-Each CephFS filesystem has a number of *ranks*, one by default,
-which start at zero. A rank may be thought of as a metadata shard.
-Controlling the number of ranks in a filesystem is described
-in :doc:`/cephfs/multimds`
-
-Each CephFS ceph-mds process (a *daemon*) initially starts up
-without a rank. It may be assigned one by the monitor cluster.
-A daemon may only hold one rank at a time. Daemons only give up
-a rank when the ceph-mds process stops.
-
-If a rank is not associated with a daemon, the rank is
-considered *failed*. Once a rank is assigned to a daemon,
-the rank is considered *up*.
-
-A daemon has a *name* that is set statically by the administrator
-when the daemon is first configured. Typical configurations
-use the hostname where the daemon runs as the daemon name.
-
-Each time a daemon starts up, it is also assigned a *GID*, which
-is unique to this particular process lifetime of the daemon. The
-GID is an integer.
-
-Referring to MDS daemons
-------------------------
-
-Most of the administrative commands that refer to an MDS daemon
-accept a flexible argument format that may contain a rank, a GID
-or a name.
-
-Where a rank is used, this may optionally be qualified with
-a leading filesystem name or ID. If a daemon is a standby (i.e.
-it is not currently assigned a rank), then it may only be
-referred to by GID or name.
-
-For example, if we had an MDS daemon which was called 'myhost',
-had GID 5446, and was assigned rank 0 in the filesystem 'myfs'
-which had FSCID 3, then any of the following would be suitable
-forms of the 'fail' command:
-
-::
-
- ceph mds fail 5446 # GID
- ceph mds fail myhost # Daemon name
- ceph mds fail 0 # Unqualified rank
- ceph mds fail 3:0 # FSCID and rank
- ceph mds fail myfs:0 # Filesystem name and rank
-
-Managing failover
------------------
-
-If an MDS daemon stops communicating with the monitor, the monitor will
-wait ``mds_beacon_grace`` seconds (default 15 seconds) before marking
-the daemon as *laggy*.
-
-Each file system may specify a number of standby daemons to be considered
-healthy. This number includes daemons in standby-replay waiting for a rank to
-fail (remember that a standby-replay daemon will not be assigned to take over a
-failure for another rank or a failure in a another CephFS file system). The
-pool of standby daemons not in replay count towards any file system count.
-Each file system may set the number of standby daemons wanted using:
-
-::
-
- ceph fs set <fs name> standby_count_wanted <count>
-
-Setting ``count`` to 0 will disable the health check.
-
-
-Configuring standby daemons
----------------------------
-
-There are four configuration settings that control how a daemon
-will behave while in standby:
-
-::
-
- mds_standby_for_name
- mds_standby_for_rank
- mds_standby_for_fscid
- mds_standby_replay
-
-These may be set in the ceph.conf on the host where the MDS daemon
-runs (as opposed to on the monitor). The daemon loads these settings
-when it starts, and sends them to the monitor.
-
-By default, if none of these settings are used, all MDS daemons
-which do not hold a rank will be used as standbys for any rank.
-
-The settings which associate a standby daemon with a particular
-name or rank do not guarantee that the daemon will *only* be used
-for that rank. They mean that when several standbys are available,
-the associated standby daemon will be used. If a rank is failed,
-and a standby is available, it will be used even if it is associated
-with a different rank or named daemon.
-
-mds_standby_replay
-~~~~~~~~~~~~~~~~~~
-
-If this is set to true, then the standby daemon will continuously read
-the metadata journal of an up rank. This will give it
-a warm metadata cache, and speed up the process of failing over
-if the daemon serving the rank fails.
-
-An up rank may only have one standby replay daemon assigned to it,
-if two daemons are both set to be standby replay then one of them
-will arbitrarily win, and the other will become a normal non-replay
-standby.
-
-Once a daemon has entered the standby replay state, it will only be
-used as a standby for the rank that it is following. If another rank
-fails, this standby replay daemon will not be used as a replacement,
-even if no other standbys are available.
-
-*Historical note:* In Ceph prior to v10.2.1, this setting (when ``false``) is
-always true when ``mds_standby_for_*`` is also set.
-
-mds_standby_for_name
-~~~~~~~~~~~~~~~~~~~~
-
-Set this to make the standby daemon only take over a failed rank
-if the last daemon to hold it matches this name.
-
-mds_standby_for_rank
-~~~~~~~~~~~~~~~~~~~~
-
-Set this to make the standby daemon only take over the specified
-rank. If another rank fails, this daemon will not be used to
-replace it.
-
-Use in conjunction with ``mds_standby_for_fscid`` to be specific
-about which filesystem's rank you are targeting, if you have
-multiple filesystems.
-
-mds_standby_for_fscid
-~~~~~~~~~~~~~~~~~~~~~
-
-If ``mds_standby_for_rank`` is set, this is simply a qualifier to
-say which filesystem's rank is referred to.
-
-If ``mds_standby_for_rank`` is not set, then setting FSCID will
-cause this daemon to target any rank in the specified FSCID. Use
-this if you have a daemon that you want to use for any rank, but
-only within a particular filesystem.
-
-mon_force_standby_active
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-This setting is used on monitor hosts. It defaults to true.
-
-If it is false, then daemons configured with standby_replay=true
-will **only** become active if the rank/name that they have
-been configured to follow fails. On the other hand, if this
-setting is true, then a daemon configured with standby_replay=true
-may be assigned some other rank.
-
-Examples
---------
-
-These are example ceph.conf snippets. In practice you can either
-copy a ceph.conf with all daemons' configuration to all your servers,
-or you can have a different file on each server that contains just
-that server's daemons' configuration.
-
-Simple pair
-~~~~~~~~~~~
-
-Two MDS daemons 'a' and 'b' acting as a pair, where whichever one is not
-currently assigned a rank will be the standby replay follower
-of the other.
-
-::
-
- [mds.a]
- mds standby replay = true
- mds standby for rank = 0
-
- [mds.b]
- mds standby replay = true
- mds standby for rank = 0
-
-Floating standby
-~~~~~~~~~~~~~~~~
-
-Three MDS daemons 'a', 'b' and 'c', in a filesystem that has
-``max_mds`` set to 2.
-
-::
-
- # No explicit configuration required: whichever daemon is
- # not assigned a rank will go into 'standby' and take over
- # for whichever other daemon fails.
-
-Two MDS clusters
-~~~~~~~~~~~~~~~~
-
-With two filesystems, I have four MDS daemons, and I want two
-to act as a pair for one filesystem and two to act as a pair
-for the other filesystem.
-
-::
-
- [mds.a]
- mds standby for fscid = 1
-
- [mds.b]
- mds standby for fscid = 1
-
- [mds.c]
- mds standby for fscid = 2
-
- [mds.d]
- mds standby for fscid = 2
-
diff --git a/src/ceph/doc/cephfs/troubleshooting.rst b/src/ceph/doc/cephfs/troubleshooting.rst
deleted file mode 100644
index 4158d32..0000000
--- a/src/ceph/doc/cephfs/troubleshooting.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-=================
- Troubleshooting
-=================
-
-Slow/stuck operations
-=====================
-
-If you are experiencing apparent hung operations, the first task is to identify
-where the problem is occurring: in the client, the MDS, or the network connecting
-them. Start by looking to see if either side has stuck operations
-(:ref:`slow_requests`, below), and narrow it down from there.
-
-RADOS Health
-============
-
-If part of the CephFS metadata or data pools is unavaible and CephFS is not
-responding, it is probably because RADOS itself is unhealthy. Resolve those
-problems first (:doc:`../../rados/troubleshooting/index`).
-
-The MDS
-=======
-
-If an operation is hung inside the MDS, it will eventually show up in ``ceph health``,
-identifying "slow requests are blocked". It may also identify clients as
-"failing to respond" or misbehaving in other ways. If the MDS identifies
-specific clients as misbehaving, you should investigate why they are doing so.
-Generally it will be the result of
-1) overloading the system (if you have extra RAM, increase the
-"mds cache size" config from its default 100000; having a larger active file set
-than your MDS cache is the #1 cause of this!)
-2) running an older (misbehaving) client, or
-3) underlying RADOS issues.
-
-Otherwise, you have probably discovered a new bug and should report it to
-the developers!
-
-.. _slow_requests:
-
-Slow requests (MDS)
--------------------
-You can list current operations via the admin socket by running::
-
- ceph daemon mds.<name> dump_ops_in_flight
-
-from the MDS host. Identify the stuck commands and examine why they are stuck.
-Usually the last "event" will have been an attempt to gather locks, or sending
-the operation off to the MDS log. If it is waiting on the OSDs, fix them. If
-operations are stuck on a specific inode, you probably have a client holding
-caps which prevent others from using it, either because the client is trying
-to flush out dirty data or because you have encountered a bug in CephFS'
-distributed file lock code (the file "capabilities" ["caps"] system).
-
-If it's a result of a bug in the capabilities code, restarting the MDS
-is likely to resolve the problem.
-
-If there are no slow requests reported on the MDS, and it is not reporting
-that clients are misbehaving, either the client has a problem or its
-requests are not reaching the MDS.
-
-ceph-fuse debugging
-===================
-
-ceph-fuse also supports dump_ops_in_flight. See if it has any and where they are
-stuck.
-
-Debug output
-------------
-
-To get more debugging information from ceph-fuse, try running in the foreground
-with logging to the console (``-d``) and enabling client debug
-(``--debug-client=20``), enabling prints for each message sent
-(``--debug-ms=1``).
-
-If you suspect a potential monitor issue, enable monitor debugging as well
-(``--debug-monc=20``).
-
-
-Kernel mount debugging
-======================
-
-Slow requests
--------------
-
-Unfortunately the kernel client does not support the admin socket, but it has
-similar (if limited) interfaces if your kernel has debugfs enabled. There
-will be a folder in ``sys/kernel/debug/ceph/``, and that folder (whose name will
-look something like ``28f7427e-5558-4ffd-ae1a-51ec3042759a.client25386880``)
-will contain a variety of files that output interesting output when you ``cat``
-them. These files are described below; the most interesting when debugging
-slow requests are probably the ``mdsc`` and ``osdc`` files.
-
-* bdi: BDI info about the Ceph system (blocks dirtied, written, etc)
-* caps: counts of file "caps" structures in-memory and used
-* client_options: dumps the options provided to the CephFS mount
-* dentry_lru: Dumps the CephFS dentries currently in-memory
-* mdsc: Dumps current requests to the MDS
-* mdsmap: Dumps the current MDSMap epoch and MDSes
-* mds_sessions: Dumps the current sessions to MDSes
-* monc: Dumps the current maps from the monitor, and any "subscriptions" held
-* monmap: Dumps the current monitor map epoch and monitors
-* osdc: Dumps the current ops in-flight to OSDs (ie, file data IO)
-* osdmap: Dumps the current OSDMap epoch, pools, and OSDs
-
-If there are no stuck requests but you have file IO which is not progressing,
-you might have a...
-
-Disconnected+Remounted FS
-=========================
-Because CephFS has a "consistent cache", if your network connection is
-disrupted for a long enough time, the client will be forcibly
-disconnected from the system. At this point, the kernel client is in
-a bind: it cannot safely write back dirty data, and many applications
-do not handle IO errors correctly on close().
-At the moment, the kernel client will remount the FS, but outstanding filesystem
-IO may or may not be satisfied. In these cases, you may need to reboot your
-client system.
-
-You can identify you are in this situation if dmesg/kern.log report something like::
-
- Jul 20 08:14:38 teuthology kernel: [3677601.123718] ceph: mds0 closed our session
- Jul 20 08:14:38 teuthology kernel: [3677601.128019] ceph: mds0 reconnect start
- Jul 20 08:14:39 teuthology kernel: [3677602.093378] ceph: mds0 reconnect denied
- Jul 20 08:14:39 teuthology kernel: [3677602.098525] ceph: dropping dirty+flushing Fw state for ffff8802dc150518 1099935956631
- Jul 20 08:14:39 teuthology kernel: [3677602.107145] ceph: dropping dirty+flushing Fw state for ffff8801008e8518 1099935946707
- Jul 20 08:14:39 teuthology kernel: [3677602.196747] libceph: mds0 172.21.5.114:6812 socket closed (con state OPEN)
- Jul 20 08:14:40 teuthology kernel: [3677603.126214] libceph: mds0 172.21.5.114:6812 connection reset
- Jul 20 08:14:40 teuthology kernel: [3677603.132176] libceph: reset on mds0
-
-This is an area of ongoing work to improve the behavior. Kernels will soon
-be reliably issuing error codes to in-progress IO, although your application(s)
-may not deal with them well. In the longer-term, we hope to allow reconnect
-and reclaim of data in cases where it won't violate POSIX semantics (generally,
-data which hasn't been accessed or modified by other clients).
-
-Mounting
-========
-
-Mount 5 Error
--------------
-
-A mount 5 error typically occurs if a MDS server is laggy or if it crashed.
-Ensure at least one MDS is up and running, and the cluster is ``active +
-healthy``.
-
-Mount 12 Error
---------------
-
-A mount 12 error with ``cannot allocate memory`` usually occurs if you have a
-version mismatch between the :term:`Ceph Client` version and the :term:`Ceph
-Storage Cluster` version. Check the versions using::
-
- ceph -v
-
-If the Ceph Client is behind the Ceph cluster, try to upgrade it::
-
- sudo apt-get update && sudo apt-get install ceph-common
-
-You may need to uninstall, autoclean and autoremove ``ceph-common``
-and then reinstall it so that you have the latest version.
-
diff --git a/src/ceph/doc/cephfs/upgrading.rst b/src/ceph/doc/cephfs/upgrading.rst
deleted file mode 100644
index 7ee3f09..0000000
--- a/src/ceph/doc/cephfs/upgrading.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-
-Upgrading pre-Firefly filesystems past Jewel
-============================================
-
-.. tip::
-
- This advice only applies to users with filesystems
- created using versions of Ceph older than *Firefly* (0.80).
- Users creating new filesystems may disregard this advice.
-
-Pre-firefly versions of Ceph used a now-deprecated format
-for storing CephFS directory objects, called TMAPs. Support
-for reading these in RADOS will be removed after the Jewel
-release of Ceph, so for upgrading CephFS users it is important
-to ensure that any old directory objects have been converted.
-
-After installing Jewel on all your MDS and OSD servers, and restarting
-the services, run the following command:
-
-::
-
- cephfs-data-scan tmap_upgrade <metadata pool name>
-
-This only needs to be run once, and it is not necessary to
-stop any other services while it runs. The command may take some
-time to execute, as it iterates overall objects in your metadata
-pool. It is safe to continue using your filesystem as normal while
-it executes. If the command aborts for any reason, it is safe
-to simply run it again.
-
-If you are upgrading a pre-Firefly CephFS filesystem to a newer Ceph version
-than Jewel, you must first upgrade to Jewel and run the ``tmap_upgrade``
-command before completing your upgrade to the latest version.
-
diff --git a/src/ceph/doc/changelog/v0.48.1argonaut.txt b/src/ceph/doc/changelog/v0.48.1argonaut.txt
deleted file mode 100644
index cdd557f..0000000
--- a/src/ceph/doc/changelog/v0.48.1argonaut.txt
+++ /dev/null
@@ -1,1286 +0,0 @@
-commit a7ad701b9bd479f20429f19e6fea7373ca6bba7c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 13 14:58:51 2012 -0700
-
- v0.48.1argonaut
-
-commit d4849f2f8a8c213c266658467bc5f22763010bc2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 1 13:22:38 2012 -0700
-
- rgw: fix usage trim call encoding
-
- Fixes: #2841.
- Usage trim operation was encoding the wrong op structure (usage read).
- Since the structures somewhat overlapped it somewhat worked, but user
- info wasn't encoded.
-
- Backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 515952d07107d442889754ec3bd6a344fad25d58
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 8 15:21:53 2012 -0700
-
- cls_rgw: fix rgw_cls_usage_log_trim_op encode/decode
-
- It was not encoding user, adding that and reset version
- compatibility.
- This changes affects command interface, makes use of
- radosgw-admin usage trim incompatible. Use of old
- radosgw-admin usage trim should be avoided, as it may
- remove more data than requested. In any case, upgraded
- server code will not handle old client's trim requests.
-
- backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 2e77130d5c80220be1612b5499d422de620d2d0b
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Jul 31 16:17:22 2012 -0700
-
- rgw: expand date format support
-
- Relaxing the date format parsing function to allow UTC
- instead of GMT.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 14fa77d9277b5ef5d0c6683504b368773b39ccc4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Aug 2 11:13:05 2012 -0700
-
- rgw: complete multipart upload can handle chunked encoding
-
- Fixes: #2878
- We now allow complete multipart upload to use chunked encoding
- when sending request data. With chunked encoding the HTTP_LENGTH
- header is not required.
-
- Backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit a06f7783fbcc02e775fc36f30e422fe0f9e0ec2d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 1 11:19:32 2012 -0700
-
- rgw_xml: xml_handle_data() appends data string
-
- Fixes: #2879.
- xml_handle_data() appends data to the object instead of just
- replacing it. Parsed data can arrive in pieces, specifically
- when data is escaped.
-
- Backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit a8b224b9c4877a559ce420a2e04f19f68c8c5680
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 1 13:09:41 2012 -0700
-
- rgw: ETag is unquoted in multipart upload complete
-
- Fixes #2877.
- Removing quotes from ETag before comparing it to what we
- have when completing a multipart upload.
-
- Backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 22259c6efda9a5d55221fd036c757bf123796753
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 8 15:24:57 2012 -0700
-
- MonMap: return error on failure in build_initial
-
- If mon_host fails to parse, return an error instead of success.
- This avoids failing later on an assert monmap.size() > 0 in the
- monmap in MonClient.
-
- Fixes: #2913
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 49b2c7b5a79b8fb4a3941eca2cb0dbaf22f658b7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 8 15:10:27 2012 -0700
-
- addr_parsing: report correct error message
-
- getaddrinfo uses its return code to report failures.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 7084f29544f431b7c6a3286356f2448ae0333eda
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Aug 8 14:01:53 2012 -0700
-
- mkcephfs: use default osd_data, _journal values
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 96b1a496cdfda34a5efdb6686becf0d2e7e3a1c0
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Aug 8 14:01:35 2012 -0700
-
- mkcephfs: use new default keyring locations
-
- The ceph-conf command only parses the conf; it does not apply default
- config values. This breaks mkcephfs if values are not specified in the
- config.
-
- Let ceph-osd create its own key, fix copying, and fix creation/copying for
- the mds.
-
- Fixes: #2845
- Reported-by: Florian Haas <florian@hastexo.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 4bd466d6ed49c7192df4a5bf0d63bda5d7d7dd9a
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 31 14:01:57 2012 -0700
-
- osd: peering: detect when log source osd goes down
-
- The Peering state has a generic check based on the prior set osds that
- will restart peering if one of them goes down (or one of the interesting
- down ones comes up). The GetLog state, however, can pull the log from
- a peer that is not in the prior set if it got a notify from them (e.g., an
- osd in an old interval that was down when the prior set was calculated).
- If that osd goes down, we don't detect it and will block forward.
-
- Fix by adding a simple check in GetLog for the newest_update_osd going
- down.
-
- (BTW GetMissing does not suffer from this problem because
- peer_missing_requested is a subset of the prior set, so the Peering check
- is sufficient.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 87defa88a0c6d6aafaa65437a6e4ddd92418f834
-Author: Sylvain Munaut <tnt@246tNt.com>
-Date: Tue Jul 31 11:55:56 2012 -0700
-
- rbd: fix off-by-one error in key name
-
- Fixes: #2846
- Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-
-commit 37d5b46269c8a4227e5df61a88579d94f7b56772
-Author: Sylvain Munaut <tnt@246tNt.com>
-Date: Tue Jul 31 11:54:29 2012 -0700
-
- secret: return error on empty secret
-
- Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
-
-commit 7b9d37c662313929b52011ddae47cc8abab99095
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jul 28 10:05:47 2012 -0700
-
- osd: set STRAY on pg load when non-primary
-
- The STRAY bit indicates that we should annouce ourselves to the primary,
- but it is only set in start_peering_interval(). We also need to set it
- initially, so that a PG that is loaded but whose role does not change
- (e.g., the stray replica stays a stray) will notify the primary.
-
- Observed:
- - osd starts up
- - mapping does not change, STRAY not set
- - does not announce to primary
- - primary does not re-check must_have_unfound, objects appear unfound
-
- Fix this by initializing STRAY when pg is loaded or created whenever we
- are not the primary.
-
- Fixes: #2866
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 96feca450c5505a06868bc012fe998a03371b77f
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 27 16:03:26 2012 -0700
-
- osd: peering: make Incomplete a Peering substate
-
- This allows us to still catch changes in the prior set that would affect
- our conclusions (that we are incomplete) and, when they happen, restart
- peering.
-
- Consider:
- - calc prior set, osd A is down
- - query everyone else, no good info
- - set down, go to Incomplete (previously WaitActingChange) state.
- - osd A comes back up (we do nothing)
- - osd A sends notify message with good info (we ignore)
-
- By making this a Peering substate, we catch the Peering AdvMap reaction,
- which will notice a prior set down osd is now up and move to Reset.
-
- Fixes: #2860
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit a71e442fe620fa3a22ad9302413d8344a3a1a969
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 27 15:39:40 2012 -0700
-
- osd: peering: move to Incomplete when.. incomplete
-
- PG::choose_acting() may return false and *not* request an acting set change
- if it can't find any suitable peers with enough info to recover. In that
- case, we should move to Incomplete, not WaitActingChange, just like we do
- a bit lower in GetLog() if we have non-contiguous logs. The state name is
- more accurate, and this is also needed to fix bug #2860.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 623026d9bc8ea4c845eb3b06d79e0ca9bef50deb
-Merge: 87b6e80 9db7809
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 27 14:00:52 2012 -0700
-
- Merge remote-tracking branch 'gh/stable' into stable-next
-
-commit 9db78090451e609e3520ac3e57a5f53da03f9ee2
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 26 16:35:00 2012 -0700
-
- osd: fixing sharing of past_intervals on backfill restart
-
- We need to share past_intervals whenever we instantiate the PG on a peer.
- In the PG activation case, this is based on whether our peer_info[] value
- for that peer is dne(). However, the backfill code was updating the
- peer info (history) in the block preceeding the dne() check, which meant
- we never shared past_intervals in this case and the peer would have to
- chew through a potentially large number of maps if the PG has not been
- clean recently.
-
- Fix by checking dne() prior to the backfill block. We still need to fill
- in the message later because it isn't yet instantiated.
-
- Fixes: #2849
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 87b6e8045a3a1ff6439d2684e960ad0dc8988b33
-Merge: 81d72e5 7dfdf4f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 26 15:04:12 2012 -0700
-
- Merge remote-tracking branch 'gh/wip-rbd-bid' into stable-next
-
-commit 81d72e5d7ba4713eb7c290878d901e21c0709028
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 23 10:47:10 2012 -0700
-
- mon: make 'ceph osd rm ...' wipe out all state bits, not just EXISTS
-
- This ensures that when a new osd reclaims that id it behaves as if it were
- really new.
-
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ad9c37f2c029f6eb372efb711b234014397057e9
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 9 20:54:19 2012 -0700
-
- test_stress_watch: just one librados instance
-
- This was creating a new cluster connection/session per iteration, and
- along with it a few service threads and sockets and so forth.
-
- Unfortunately, librados leaks like a sieve, starting with CephContext
- and ceph::crypto::init(). See #845 and #2067.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c60afe1842a48dd75944822c0872fce6a7229f5a
-Merge: 8833050 35b1326
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 26 15:03:50 2012 -0700
-
- Merge commit '35b13266923f8095650f45562d66372e618c8824' into stable-next
-
- First batch of msgr fixes.
-
-commit 88330505cc772a5528e9405d515aa2b945b0819e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 9 15:53:31 2012 -0700
-
- ReplicatedPG: fix replay op ordering
-
- After a client reconnect, the client replays outstanding ops. The
- OSD then immediately responds with success if the op has already
- committed (version < ReplicatedPG::get_first_in_progress).
- Otherwise, we stick it in waiting_for_ondisk to be replied to when
- eval_repop concludes that waitfor_disk is empty.
-
- Fixes #2508
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
- Conflicts:
-
- src/osd/ReplicatedPG.cc
-
-commit 682609a9343d0488788b1c6b03bc437b7905e4d6
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 18 12:55:35 2012 -0700
-
- objecter: always resend linger registrations
-
- If a linger op (watch) is sent to the OSD and updates the object, and then
- the client loses the reply, it will resend the request. The OSD will see
- that it is a dup, however, and not set up the in-memory session state for
- the watch. This in turn will break the watch (i.e., notifies won't
- get delivered).
-
- Instead, always resend linger registration ops, so that we always have a
- unique reqid and do the correct session registeration for each session.
-
- * track the tid of the registation op for each LingerOp
- * mark registrations ops as should_resend=false; cancel as needed
- * when we send a new registration op, cancel the old one to ensure we
- ignore the reply. This is needed becuase we resend linger ops on any
- pg change, not just a primary change.
- * drop the first_send arg to send_linger(), as we can now infer that
- from register_tid == 0.
-
- The bug was easily reproduced with ms inject socket failures = 500 and the
- test_stress_watch utility.
-
- Fixes: #2796
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 4d7d3e276967d555fed8a689976047f72c96c2db
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 9 13:22:42 2012 -0700
-
- osd: guard class call decoding
-
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 7fbbe4652ffb2826978aa1f1cacce4456d2ef1fc
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 5 18:08:58 2012 -0700
-
- librados: take lock when signaling notify cond
-
- When we are signaling the cond to indicate that a notify is complete,
- take the appropriate lock. This removes the possibility of a race
- that loses our signal. (That would be very difficult given that there
- are network round trips involved, but this makes the lock/cond usage
- "correct.")
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 6ed01df412b4f4745c8f427a94446987c88b6bef
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 22 07:46:11 2012 -0700
-
- workqueue: kick -> wake or _wake, depending on locking
-
- Break kick() into wake() and _wake() methods, depending on whether the
- lock is already held. (The rename ensures that we audit/fix all
- callers.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
- Conflicts:
-
- src/common/WorkQueue.h
- src/osd/OSD.cc
-
-commit d2d40dc3059d91450925534f361f2c03eec9ef88
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 4 15:11:21 2012 -0700
-
- client: fix locking for SafeCond users
-
- Need to wait on flock, not client_lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c963a21a8620779d97d6cbb51572551bdbb50d0b
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 26 15:01:05 2012 -0700
-
- filestore: check for EIO in read path
-
- Check for EIO in read methods and helpers. Try to do checks in low-level
- methods (e.g., lfn_*()) to avoid duplication in higher-level methods.
-
- The transaction apply function already checks for EIO on writes, and will
- generate a nicer error message, so we can largely ignore the write path,
- as long as errors get passed up correctly.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 6bd89aeb1bf3b1cbb663107ae6bcda8a84dd8601
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 26 09:07:46 2012 -0700
-
- filestore: add 'filestore fail eio' option, default true
-
- By default we will assert/fail/crash on EIO from the underlying fs. We
- already do this in the write path, but not the read path, or in various
- internal infrastructure.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit e9b5a289838f17f75efbf9d1640b949e7485d530
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 24 13:53:03 2012 -0700
-
- config: fix 'config set' admin socket command
-
- Fixes: #2832
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 1a6cd9659abcdad0169fe802ed47967467c448b3
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 25 16:35:09 2012 -0700
-
- osd: break potentially large transaction into pieces
-
- We do a similar trick elsewhere. Control this via a tunable. Eventually
- we'll control the others (in a non-stable branch).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 15e1622959f5a46f7a98502cdbaebfda2247a35b
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 25 14:53:34 2012 -0700
-
- osd: only commit past intervals at end of parallel build
-
- We don't check for gaps in the past intervals, so we should only commit
- this when we are completely done. Otherwise a partial run and rsetart will
- leave the gap in place, which may confuse the peering code that relies on
- this information.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 16302acefd8def98fc4597366d6ba2845e17fcb6
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 25 10:57:35 2012 -0700
-
- osd: generate past intervals in parallel on boot
-
- Even though we aggressively share past_intervals with notifies etc, it is
- still possible for an osd to get buried behind a pile of old maps and need
- to generate these if it has been out of the cluster for a while. This has
- happened to us in the past but, sadly, we did not merge the work then.
- On the bright side, this implementation is much much much cleaner than the
- old one because of the pg_interval_t helper we've since switched to.
-
- On bootup, we look at the intervals each pg needs and calclate the union,
- and then iterate over that map range. The inner bit of the loop is
- functionally identical to PG::build_past_intervals(), keeping the per-pg
- state in the pistate struct.
-
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit fca65ff52a5f7d49bcac83b3b2232963a879e446
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 25 10:58:07 2012 -0700
-
- osd: move calculation of past_interval range into helper
-
- PG::generate_past_intervals() first calculates the range over which it
- needs to generate past intervals. Do this in a helper function.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 5979351ef3d3d03bced9286f79cbc22524c4a8de
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 25 10:58:28 2012 -0700
-
- osd: fix map epoch boot condition
-
- We only want to join the cluster if we can catch up to the latest
- osdmap with a small number of maps, in this case a single map message.
-
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 8c7186d02627f8255273009269d50955172efb52
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 24 20:18:01 2012 -0700
-
- mon: ignore pgtemp messages from down osds
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b17f54671f350fd4247f895f7666d46860736728
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 24 20:16:04 2012 -0700
-
- mon: ignore osd_alive messages from down osds
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 7dfdf4f8de16155edd434534e161e06ba7c79d7d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Jul 23 14:05:53 2012 -0700
-
- librbd: replace assign_bid with client id and random number
-
- The assign_bid method has issues with replay because it is a write
- that also returns data. This means that the replayed operation would
- return success, but no data, and cause a create to fail. Instead, let
- the client set the bid based on its global id and a random number.
-
- This only affects the creation of new images, since the bid is put
- into an opaque string as part of the object prefix.
-
- Keep the server side assign_bid around in case there are old clients
- still using it.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit dc2d67112163bee8b111f75ae3e3ca42884b09b4
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Jul 9 14:11:23 2012 -0700
-
- librados: add new constructor to form a Rados object from IoCtx
-
- This creates a separate reference to an existing connection, for
- use when a client holding IoCtx needs to consult another (say,
- for rbd cloning)
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit c99671201de9d9cdf03bbf0f4e28e8afb70c280c
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 18 19:49:58 2012 -0700
-
- add CRUSH_TUNABLES feature bit
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 0b579546cfddec35095b2aec753028d8e63f3533
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jul 18 10:24:58 2012 -0700
-
- ObjectCacher: fix cache_bytes_hit accounting
-
- Misses are not hits!
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 2869039b79027e530c2863ebe990662685e4bbe6
-Author: Pascal de Bruijn | Unilogic Networks B.V <pascal@unilogicnetworks.net>
-Date: Wed Jul 11 15:23:16 2012 +0200
-
- Robustify ceph-rbdnamer and adapt udev rules
-
- Below is a patch which makes the ceph-rbdnamer script more robust and
- fixes a problem with the rbd udev rules.
-
- On our setup we encountered a symlink which was linked to the wrong rbd:
-
- /dev/rbd/mypool/myrbd -> /dev/rbd1
-
- While that link should have gone to /dev/rbd3 (on which a
- partition /dev/rbd3p1 was present).
-
- Now the old udev rule passes %n to the ceph-rbdnamer script, the problem
- with %n is that %n results in a value of 3 (for rbd3), but in a value of
- 1 (for rbd3p1), so it seems it can't be depended upon for rbdnaming.
-
- In the patch below the ceph-rbdnamer script is made more robust and it
- now it can be called in various ways:
-
- /usr/bin/ceph-rbdnamer /dev/rbd3
- /usr/bin/ceph-rbdnamer /dev/rbd3p1
- /usr/bin/ceph-rbdnamer rbd3
- /usr/bin/ceph-rbdnamer rbd3p1
- /usr/bin/ceph-rbdnamer 3
-
- Even with all these different styles of calling the modified script, it
- should now return the same rbdname. This change "has" to be combined
- with calling it from udev with %k though.
-
- With that fixed, we hit the second problem. We ended up with:
-
- /dev/rbd/mypool/myrbd -> /dev/rbd3p1
-
- So the rbdname was symlinked to the partition on the rbd instead of the
- rbd itself. So what probably went wrong is udev discovering the disk and
- running ceph-rbdnamer which resolved it to myrbd so the following
- symlink was created:
-
- /dev/rbd/mypool/myrbd -> /dev/rbd3
-
- However partitions would be discovered next and ceph-rbdnamer would be
- run with rbd3p1 (%k) as parameter, resulting in the name myrbd too, with
- the previous correct symlink being overwritten with a faulty one:
-
- /dev/rbd/mypool/myrbd -> /dev/rbd3p1
-
- The solution to the problem is in differentiating between disks and
- partitions in udev and handling them slightly differently. So with the
- patch below partitions now get their own symlinks in the following style
- (which is fairly consistent with other udev rules):
-
- /dev/rbd/mypool/myrbd-part1 -> /dev/rbd3p1
-
- Please let me know any feedback you have on this patch or the approach
- used.
-
- Regards,
- Pascal de Bruijn
- Unilogic B.V.
-
- Signed-off-by: Pascal de Bruijn <pascal@unilogicnetworks.net>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 426384f6beccabf9e9b9601efcb8147904ec97c2
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 16 16:02:14 2012 -0700
-
- log: apply log_level to stderr/syslog logic
-
- In non-crash situations, we want to make sure the message is both below the
- syslog/stderr threshold and also below the normal log threshold. Otherwise
- we get anything we gather on those channels, even when the log level is
- low.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 8dafcc5c1906095cb7d15d648a7c1d7524df3768
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 16 15:40:53 2012 -0700
-
- log: fix event gather condition
-
- We should gather an event if it is below the log or gather threshold.
-
- Previously we were only gathering if we were going to print it, which makes
- the dump no more useful than what was already logged.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ec5cd6def9817039704b6cc010f2797a700d8500
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 16 13:11:24 2012 -0700
-
- PG::RecoveryState::Stray::react(LogEvt&): reset last_pg_scrub
-
- We need to reset the last_pg_scrub data in the osd since we
- are replacing the info.
-
- Probably fixes #2453
-
- In cases like 2453, we hit the following backtrace:
-
- 0> 2012-05-19 17:24:09.113684 7fe66be3d700 -1 osd/OSD.h: In function 'void OSD::unreg_last_pg_scrub(pg_t, utime_t)' thread 7fe66be3d700 time 2012-05-19 17:24:09.095719
- osd/OSD.h: 840: FAILED assert(last_scrub_pg.count(p))
-
- ceph version 0.46-313-g4277d4d (commit:4277d4d3378dde4264e2b8d211371569219c6e4b)
- 1: (OSD::unreg_last_pg_scrub(pg_t, utime_t)+0x149) [0x641f49]
- 2: (PG::proc_primary_info(ObjectStore::Transaction&, pg_info_t const&)+0x5e) [0x63383e]
- 3: (PG::RecoveryState::ReplicaActive::react(PG::RecoveryState::MInfoRec const&)+0x4a) [0x633eda]
- 4: (boost::statechart::detail::reaction_result boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::local_react_impl_non_empty::local_react_impl<boost::mpl::list3<boost::statechart::custom_reaction<PG::RecoveryState::MQuery>, boost::statechart::custom_reaction<PG::RecoveryState::MInfoRec>, boost::statechart::custom_reaction<PG::RecoveryState::MLogRec> >, boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0> >(boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>&, boost::statechart::event_base const&, void const*)+0x130) [0x6466a0]
- 5: (boost::statechart::simple_state<PG::RecoveryState::ReplicaActive, PG::RecoveryState::Started, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)+0x81) [0x646791]
- 6: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::send_event(boost::statechart::event_base const&)+0x5b) [0x63dfcb]
- 7: (boost::statechart::state_machine<PG::RecoveryState::RecoveryMachine, PG::RecoveryState::Initial, std::allocator<void>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x11) [0x63e0f1]
- 8: (PG::RecoveryState::handle_info(int, pg_info_t&, PG::RecoveryCtx*)+0x177) [0x616987]
- 9: (OSD::handle_pg_info(std::tr1::shared_ptr<OpRequest>)+0x665) [0x5d3d15]
- 10: (OSD::dispatch_op(std::tr1::shared_ptr<OpRequest>)+0x2a0) [0x5d7370]
- 11: (OSD::_dispatch(Message*)+0x191) [0x5dd4a1]
- 12: (OSD::ms_dispatch(Message*)+0x153) [0x5ddda3]
- 13: (SimpleMessenger::dispatch_entry()+0x863) [0x77fbc3]
- 14: (SimpleMessenger::DispatchThread::entry()+0xd) [0x746c5d]
- 15: (()+0x7efc) [0x7fe679b1fefc]
- 16: (clone()+0x6d) [0x7fe67815089d]
- NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
-
- Because we don't clear the scrub state before reseting info,
- the last_scrub_stamp state in the info.history structure
- changes without updating the osd state resulting in the
- above assert failure.
-
- Backport: stable
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 248cfaddd0403c7bae8e1533a3d2e27d1a335b9b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 9 17:57:03 2012 -0700
-
- ReplicatedPG: don't warn if backfill peer stats don't match
-
- pinfo.stats might be wrong if we did log-based recovery on the
- backfilled portion in addition to continuing backfill.
-
- bug #2750
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit bcb1073f9171253adc37b67ee8d302932ba1667b
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 15 20:30:34 2012 -0700
-
- mon/MonitorStore: always O_TRUNC when writing states
-
- It is possible for a .new file to already exist, potentially with a
- larger size. This would happen if:
-
- - we were proposing a different value
- - we crashed (or were stopped) before it got renamed into place
- - after restarting, a different value was proposed and accepted.
-
- This isn't so unlikely for the log state machine, where we're
- aggregating random messages. O_TRUNC ensure we avoid getting the tail
- end of some previous junk.
-
- I observed #2593 and found that a logm state value had a larger size on
- one mon (after slurping) than the others, pointing to put_bl_sn_map().
-
- While we are at it, O_TRUNC put_int() too; the same type of bug is
- possible there, too.
-
- Fixes: #2593
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 41a570778a51fe9a36a5b67a177d173889e58363
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jul 14 14:31:34 2012 -0700
-
- osd: based misdirected op role calc on acting set
-
- We want to look at the acting set here, nothing else. This was causing us
- to erroneously queue ops for later (wasting memory) and to erroneously
- print out a 'misdrected op' message in the cluster log (confusion and
- incorrect [but ignored] -ENXIO reply).
-
- Fixes: #2022
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b3d077c61e977e8ebb91288aa2294fb21c197fe7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Jul 13 09:42:20 2012 -0700
-
- qa: download tests from specified branch
-
- These python tests aren't installed, so they need to be downloaded
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit e855cb247b5a9eda6845637e2da5b6358f69c2ed
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jun 25 09:47:37 2012 -0700
-
- rgw: don't override subuser perm mask if perm not specified
-
- Bug #2650. We were overriding subuser perm mask whenever subuser
- was modified, even if perm mask was not passed.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d6c766ea425d87a2f2405c08dcec66f000a4e1a0
-Author: James Page <james.page@ubuntu.com>
-Date: Wed Jul 11 11:34:21 2012 -0700
-
- debian: fix ceph-fs-common-dbg depends
-
- Signed-off-by: James Page <james.page@ubuntu.com>
-
-commit 95e8d87bc3fb12580e4058401674b93e19df6e02
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 11 11:52:24 2012 -0700
-
- rados tool: remove -t param option for target pool
-
- Bug #2772. This fixes an issue that was introduced when we
- added the 'rados cp' command. The -t param was already used
- for rados bench. With this change the only way to specify
- a target pool is using --target-pool.
- Though this problem is post argonaut, the 'rados cp' command
- has been backported, so we need this fix there too.
-
- Backport: argonaut
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 5b10778399d5bee602e57035df7d40092a649c06
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 11 09:19:00 2012 -0700
-
- Makefile: don't install crush headers
-
- This is leftover from when we built a libcrush.so. We can re-add when we
- start doing that again.
-
- Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 35b13266923f8095650f45562d66372e618c8824
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 10 13:18:27 2012 -0700
-
- msgr: take over existing Connection on Pipe replacement
-
- If a new pipe/socket is taking over an existing session, it should also
- take over the Connection* associated with the existing session. Because
- we cannot clear existing->connection_state, we just take another reference.
-
- Clean up the comments a bit while we're here.
-
- This affects MDS<->client sessions when reconnecting after a socket fault.
- It probably also affects intra-cluster (osd/osd, mds/mds, mon/mon)
- sessions as well, but I did not confirm that.
-
- Backport: argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b387077b1d019ee52b28bc3bc5305bfb53dfd892
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 8 20:33:12 2012 -0700
-
- debian: include librados-config in librados-dev
-
- Reported-by: Laszlo Boszormenyi <gcs@debian.hu>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 03c2dc244af11b711e2514fd5f32b9bfa34183f6
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 13:04:28 2012 -0700
-
- lockdep: increase max locks
-
- Hit this limit with the rados api tests.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b554d112c107efe78ec64f85b5fe588f1e7137ce
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 12:07:28 2012 -0700
-
- config: add unlocked version of get_my_sections; use it internally
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 01da287b8fdc07262be252f1a7c115734d3cc328
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 08:20:06 2012 -0700
-
- config: fix lock recursion in get_val_from_conf_file()
-
- Introduce a private, already-locked version.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c73c64a0f722477a5b0db93da2e26e313a5f52ba
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 08:15:08 2012 -0700
-
- config: fix recursive lock in parse_config_files()
-
- The _impl() helper is only called from parse_config_files(); don't retake
- the lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 6646e891ff0bd31c935d1ce0870367b1e086ddfd
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 18:51:02 2012 -0700
-
- rgw: initialize fields of RGWObjEnt
-
- This fixes various valgrind warnings triggered by the s3test
- test_object_create_unreadable.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b33553aae63f70ccba8e3d377ad3068c6144c99a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jul 6 13:14:53 2012 -0700
-
- rgw: handle response-* params
-
- Handle response-* params that set response header field values.
- Fixes #2734, #2735.
- Backport: argonaut
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 74f687501a8a02ef248a76f061fbc4d862a9abc4
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 4 13:59:04 2012 -0700
-
- osd: add missing formatter close_section() to scrub status
-
- Also add braces to make the open/close matchups easier to see. Broken
- by f36617392710f9b3538bfd59d45fd72265993d57.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 020b29961303b12224524ddf78c0c6763a61242e
-Author: Mike Ryan <mike.ryan@inktank.com>
-Date: Wed Jun 27 14:14:30 2012 -0700
-
- pg: report scrub status
-
- Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
-
-commit db6d83b3ed51c07b361b27d2e5ce3227a51e2c60
-Author: Mike Ryan <mike.ryan@inktank.com>
-Date: Wed Jun 27 13:30:45 2012 -0700
-
- pg: track who we are waiting for maps from
-
- Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
-
-commit e1d4855fa18b1cda85923ad9debd95768260d4eb
-Author: Mike Ryan <mike.ryan@inktank.com>
-Date: Tue Jun 26 16:25:27 2012 -0700
-
- pg: reduce scrub write lock window
-
- Wait for all replicas to construct the base scrub map before finalizing
- the scrub and locking out writes.
-
- Signed-off-by: Mike Ryan <mike.ryan@inktank.com>
-
-commit 27409aa1612c1512bf393de22b62bbfe79b104c1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 5 15:52:51 2012 -0700
-
- rgw: don't store bucket info indexed by bucket_id
-
- Issue #2701. This info wasn't really used anywhere and we weren't
- removing it. It was also sharing the same pool namespace as the
- info indexed by bucket name, which is bad.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 9814374a2b40e15c13eb03ce6b8e642b0f7f93e4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 5 14:59:22 2012 -0700
-
- test_rados_tool.sh: test copy pool
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d75100667a539baf47c79d752b787ed5dcb51d7a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 5 13:42:23 2012 -0700
-
- rados tool: copy object in chunks
-
- Instead of reading the entire object and then writing it,
- we read it in chunks.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 16ea64fbdebb7a74e69e80a18d98f35d68b8d9a1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jun 29 14:43:00 2012 -0700
-
- rados tool: copy entire pool
-
- A new rados tool command that copies an entire pool
- into another existing pool.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 960c2124804520e81086df97905a299c8dd4e08c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jun 29 14:09:08 2012 -0700
-
- rados tool: copy object
-
- New rados command: rados cp <src-obj> [dest-obj]
-
- Requires specifying source pool. Target pool and locator can be specified.
- The new command preserves object xattrs and omap data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 23d31d3e2aa7f2b474a7b8e9d40deb245d8be9de
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 6 08:47:44 2012 -0700
-
- ceph.spec.in: add ceph-disk-{activate,prepare}
-
- Reported-by: Jimmy Tang <jtang@tchpc.tcd.ie>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ea11c7f9d8fd9795e127cfd7e8a1f28d4f5472e9
-Author: Wido den Hollander <wido@widodh.nl>
-Date: Thu Jul 5 15:29:54 2012 +0200
-
- Allow URL-safe base64 cephx keys to be decoded.
-
- In these cases + and / are replaced by - and _ to prevent problems when using
- the base64 strings in URLs.
-
- Signed-off-by: Wido den Hollander <wido@widodh.nl>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit f67fe4e368b5f250f0adfb183476f5f294e8a529
-Author: Wido den Hollander <wido@widodh.nl>
-Date: Wed Jul 4 15:46:04 2012 +0200
-
- librados: Bump the version to 0.48
-
- Signed-off-by: Wido den Hollander <wido@widodh.nl>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 35b9ec881aecf84b3a49ec0395d7208de36dc67d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Jun 26 17:28:51 2012 -0700
-
- rgw-admin: use correct modifier with strptime
-
- Bug #2658: used %I (12h) instead of %H (24h)
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit da251fe88503d32b86113ee0618db7c446d34853
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 21 15:40:27 2012 -0700
-
- rgw: send both swift x-storage-token and x-auth-token
-
- older clients need x-storage-token, newer x-auth-token
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 4c19ecb9a34e77e71d523a0a97e17f747bd5767d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 21 15:17:19 2012 -0700
-
- rgw: radosgw-admin date params now also accept time
-
- The date format now is "YYYY-MM-DD[ hh:mm:ss]". Got rid of
- the --time param for the old ops log stuff.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
- Conflicts:
-
- src/test/cli/radosgw-admin/help.t
-
-commit 6958aeb898fc683159483bfbb798f069a9b5330a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 21 13:14:47 2012 -0700
-
- rgw-admin: fix usage help
-
- s/show/trim
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 83c043f803ab2ed74fa9a84ae9237dd7df2a0c57
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 14:07:16 2012 -0700
-
- radosgw-admin: fix clit test
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 5674158163e9c1d50985796931240b237676b74d
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 11:32:57 2012 -0700
-
- ceph: fix cli help test
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 151bf0eef59acae2d1fcf3f0feb8b6aa963dc2f6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 3 11:23:16 2012 -0700
-
- ReplicatedPG: remove faulty scrub assert in sub_op_modify_applied
-
- This assert assumed that all ops submitted before MOSDRepScrub was
- submitted were processed by the time that MOSDRepScrub was
- processed. In fact, MOSDRepScrub's scrub_to may refer to a
- last_update yet to be seen by the replica.
-
- Bug #2693
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 32833e88a1ad793fa4be86101ce9c22b6f677c06
-Author: Kyle Bader <kyle.bader@dreamhost.com>
-Date: Tue Jul 3 11:20:38 2012 -0700
-
- ceph: better usage
-
- Signed-off-by: Kyle Bader <kyle.bader@dreamhost.com>
-
-commit 67455c21879c9c117f6402259b5e2da84524e169
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 09:20:35 2012 -0700
-
- debian: strip new ceph-mds package
-
- Reported-by: Amon Ott <a.ott@m-privacy.de>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b53cdb97d15f9276a9b26bec9f29034149f93358
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 3 06:46:10 2012 -0700
-
- config: remove bad argparse_flag argument in parse_option()
-
- This is wrong, and thankfully valgrind picks it up.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit f7d4e39740fd2afe82ac40c711bd3fe7a282e816
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 1 17:23:28 2012 -0700
-
- msgr: restart_queue when replacing existing pipe and taking over the queue
-
- The queue may have been previously stopped (by discard_queue()), and needs
- to be restarted.
-
- Fixes consistent failures from the mon_recovery.py integration tests.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 5dfd2a512d309f7f641bcf7c43277f08cf650b01
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 1 15:37:31 2012 -0700
-
- msgr: choose incoming connection if ours is STANDBY
-
- If the connect_seq matches, but our existing connection is in STANDBY, take
- the incoming one. Otherwise, the other end will wait indefinitely for us
- to connect but we won't.
-
- Alternatively, we could "win" the race and trigger a connection by sending
- a keepalive (or similar), but that is more work; we may as well accept the
- incoming connection we have now.
-
- This removes STANDBY from the acceptable WAIT case states. It also keeps
- responsibility squarely on the shoulders of the peer with something to
- deliver.
-
- Without this patch, a 3-osd vstart cluster with
- 'ms inject socket failures = 100' and rados bench write -b 4096 would start
- generating slow request warnings after a few minutes due to the osds
- failing to connect to each other. With the patch, I complete a 10 minute
- run without problems.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b7007a159f6d941fa8313a24af5810ce295b36ca
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 28 17:50:47 2012 -0700
-
- msgr: preserve incoming message queue when replacing pipes
-
- If we replace an existing pipe with a new one, move the incoming queue
- of messages that have not yet been dispatched over to the new Pipe so that
- they are not lost. This prevents messages from being lost.
-
- Alternatively, we could set in_seq = existing->in_seq - existing->in_qlen,
- but that would make the other end resend those messages, which is a waste
- of bandwidth.
-
- Very easy to reproduce the original bug with 'ms inject socket failures'.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 1f3a722e150f9f27fe7919e9579b5a88dcd15639
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 28 17:45:24 2012 -0700
-
- msgr: move dispatch_entry into DispatchQueue class
-
- A bit cleaner.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 03445290dad5b1213dd138cacf46e379400201c9
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 28 17:38:34 2012 -0700
-
- msgr: move incoming queue to separate class
-
- This extricates the incoming queue and its funky relationship with
- DispatchQueue from Pipe and moves it into IncomingQueue. There is now a
- single IncomingQueue attached to each Pipe. DispatchQueue is now no
- longer tied to Pipe.
-
- This modularizes the code a bit better (tho that is still a work in
- progress) and (more importantly) will make it possible to move the
- incoming messages from one pipe to another in accept().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 0dbc54169512da776c16161ec3b8fa0b3f08e248
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 27 17:06:40 2012 -0700
-
- msgr: make D_CONNECT constant non-zero, fix ms_handle_connect() callback
-
- A while ago we inadvertantly broke ms_handle_connect() callbacks because
- of a check for m being non-zero in the dispatch_entry() thread. Adjust the
- enums so that they get delivered again.
-
- This fixes hangs when, for example, the ceph tool sends a command, gets a
- connection reset, and doesn't get the connect callback to resend after
- reconnecting to a new monitor.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 2429556a51e8f60b0d9bdee71ef7b34b367f2f38
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 26 17:10:40 2012 -0700
-
- msgr: fix pipe replacement assert
-
- We may replace an existing pipe in the STANDBY state if the previous
- attempt failed during accept() (see previous patches).
-
- This might fix #1378.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 204bc594be1a6046d1b362693d086b49294c2a27
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 26 17:07:31 2012 -0700
-
- msgr: do not try to reconnect con with CLOSED pipe
-
- If we have a con with a closed pipe, drop the message. For lossless
- sessions, the state will be STANDBY if we should reconnect. For lossy
- sessions, we will end up with CLOSED and we *should* drop the message.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit e6ad6d25a58b8e34a220d090d01e26293c2437b4
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 26 17:06:41 2012 -0700
-
- msgr: move to STANDBY if we replace during accept and then fail
-
- If we replace an existing pipe during accept() and then fail, move to
- STANDBY so that our connection state (connect_seq, etc.) is preserved.
- Otherwise, we will throw out that information and falsely trigger a
- RESETSESSION on the next connection attempt.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.48.2argonaut.txt b/src/ceph/doc/changelog/v0.48.2argonaut.txt
deleted file mode 100644
index 2884e60..0000000
--- a/src/ceph/doc/changelog/v0.48.2argonaut.txt
+++ /dev/null
@@ -1,476 +0,0 @@
-commit 3e02b2fad88c2a95d9c0c86878f10d1beb780bfe
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Sep 11 13:04:50 2012 -0700
-
- v0.48.2argonaut
-
-commit 343e607980c923324de241d2cf8396d7c4857dd8
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Sep 18 13:45:27 2012 -0700
-
- cls_rgw: if stats drop below zero, set them to zero
-
- This complements fix for #3127. This is only a band aid
- solution for argonaut, the real solution fixes the original
- issue that made this possible.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 92be908c7f22c0ccf2092024fd54096362032394
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 12 16:41:17 2012 -0700
-
- cls_rgw: change scoping of suggested changes vars
-
- Fixes: #3127
- Bad variable scoping made it so that specific variables
- weren't initialized between suggested changes iterations.
- This specifically affected a case where in a specific
- change we had an updated followed by a remove, and the
- remove was on a non-existent key (e.g., was already
- removed earlier). We ended up re-substracting the
- object stats, as the entry wasn't reset between
- the iterations (and we didn't read it because the
- key didn't exist).
-
- backport:argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d3a8497b44296484fa18ac10e776c93701365a8b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Sep 4 11:29:21 2012 -0700
-
- objecter: fix osdmap wait
-
- When we get a pool_op_reply, we find out which osdmap we need to wait for.
- The wait_for_new_map() code was feeding that epoch into
- maybe_request_map(), which was feeding it to the monitor with the subscribe
- request. However, that epoch is the *start* epoch, not what we want. Fix
- this code to always subscribe to what we have (+1), and ensure we keep
- asking for more until we catch up to what we know we should eventually
- get.
-
- Bug: #3075
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e09b26555c6132ffce08b565780a39e4177cbc1c)
-
-commit de026f31f7f31c2b79c41910b83570f052f354d5
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 27 07:38:34 2012 -0700
-
- objecter: send queued requests when we get first osdmap
-
- If we get our first osdmap and already have requests queued, send them.
-
- Backported from 8d1efd1b829ae50eab7f7f4c07da04e03fce7c45.
-
- Fixes: #3050
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 379aa80ac3a313025e433cefd239ddbeec45f9e7
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 21 21:12:33 2012 -0700
-
- objecter: use ordered map<> for tracking tids to preserve order on resend
-
- We are using a hash_map<> to map tids to Op*'s. In handle_osd_map(),
- we will recalc_op_target() on each Op in a random (hash) order. These
- will get put in a temp map<tid,Op*> to ensure they are resent in the
- correct order, but their order on the session->ops list will be random.
-
- Then later, if we reset an OSD connection, we will resend everything for
- that session in ops order, which is be incorrect.
-
- Fix this by explicitly reordering the requests to resend in
- kick_requests(), much like we do in handle_osd_map(). This lets us
- continue to use a hash_map<>, which is faster for reasonable numbers of
- requests. A simpler but slower fix would be to just use map<> instead.
-
- This is one of many bugs contributing to #2947.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 1113a6c56739a56871f01fa13da881dab36a32c4)
-
-commit 54788d0da40608fb8ccf8f16039536729881d542
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Aug 20 15:02:57 2012 -0700
-
- rbd: force all exiting paths through main()/return
-
- This properly destroys objects. In the process, remove usage_exit();
- also kill error-handling in set_conf_param (never relevant for rbd.cc,
- and if you call it with both pointers NULL, well...)
- Also switch to EXIT_FAILURE for consistency.
-
- Backported from fed8aea662bf919f35a5a72e4e2a2a685af2b2ed.
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Fixes: #2948
-
-commit a179ccee8848fe9bc8d622cba13fab1a99f6eb63
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Sep 18 09:37:44 2012 -0700
-
- rbd: only open the destination pool for import
-
- Otherwise importing into another pool when the default pool, rbd,
- doesn't exist results in an error trying to open the rbd pool.
-
- Reported-by: Sébastien Han <han.sebastien@gmail.com>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 16aca749989b006f4d5d2190ed1e8480c1bf0282
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Mon Sep 17 08:55:14 2012 -0700
-
- ceph-disk-activate, upstart: Use "initctl emit" to start OSDs.
-
- This avoids an error if the daemon was running already, and is
- already being done with the other services.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 34d8eec9e23edec174a96d16bf42a0b8df118183
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Sep 14 17:13:57 2012 -0700
-
- rbd: make --pool/--image args easier to understand for import
-
- There's no need to set the default pool in set_pool_image_name - this
- is done later, in a way that doesn't ignore --pool if --dest-pool
- is not specified.
-
- This means --pool and --image can be used with import, just like
- the rest of the commands. Without this change, --dest and --dest-pool
- had to be used, and --pool would be silently ignored for rbd import.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit f390ee68233e9c6db1202aa95665adf27ba4399a
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Sep 13 14:06:04 2012 -0700
-
- ceph-create-keys: Create a bootstrap-osd key too.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 9348ea0de953a4fd2eed239437d14c366c8e2cdd
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Sep 13 11:34:03 2012 -0700
-
- ceph-create-keys: Refactor to share wait_for_quorum call.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit c9d4c58b9d71e6d84b644376684bcb72eae7e11c
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Sep 12 11:38:07 2012 -0700
-
- objecter: fix skipped map handling
-
- If we skip a map, we want to translate NO_ACTION to NEED_RESEND, but leave
- POOL_DNE alone.
-
- Backported from 2a3b7961c021b19a035f8a6cc4fc3cc90f88f367.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit d8dff93a2497bd578116eb20ed65a0595acdf341
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Jul 30 15:19:29 2012 -0700
-
- librbd, cls_rbd: close snapshot creation race with old format
-
- If two clients created a snapshot at the same time, the one with the
- higher snapshot id might be created first, so the lower snapshot id
- would be added to the snapshot context and the snaphot seq would be
- set to the lower one.
-
- Instead of allowing this to happen, return -ESTALE if the snapshot id
- is lower than the currently stored snapshot sequence number. On the
- client side, get a new id and retry if this error is encountered.
-
- Backport: argonaut
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 771ca71c0357bd8149677795ac934ab09945a3a3
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Sep 11 16:31:57 2012 -0700
-
- upstart: Give everything a stop on stanza.
-
- These are all tasks, and expected to exit somewhat quickly,
- but e.g. ceph-create-keys has a loop where it waits for mon
- to reach quorum, so it might still be in that loop when the
- machine is shut down.
-
-commit 9f967e3ac255b0037b598061f5cbb4050db79472
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Sep 11 16:28:41 2012 -0700
-
- upstart: Start mds,mon,radosgw after a reboot.
-
- They had no "start on" stanzas, so they didn't get started earlier.
-
-commit ce1e7d1b0291759950abf02f5bae064994d2ec34
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Sep 11 15:31:06 2012 -0700
-
- upstart: Add ceph-create-keys.conf to package.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 0ff22ba0508d43cd78aeae6736f2db002cc8de8e
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Sep 11 14:50:53 2012 -0700
-
- obsync: if OrdinaryCallingFormat fails, try SubdomainCallingFormat
-
- This blindly tries the Subdomain calling format if the ordinary method
- fails. In particular, this works around buckets that present a
- PermanentRedirect message.
-
- See bug #3128.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Matthew Wodrich <matthew.wodrich@dreamhost.com>
-
-commit 0e58d95134dd95f33b9b1a3b1286a0719ad20707
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 17 16:04:20 2012 -0700
-
- librbd: add test for discard of nonexistent objects
-
- This verifies librbd properly handles ENOENT during discard.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 97d8a734ce937ce2a683c7c36f5b72395c6456c2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Sep 10 13:19:53 2012 -0700
-
- librbd: ignore -ENOENT during discard
-
- This is a backport of a3ad98a3eef062e9ed51dd2d1e58c593e12c9703
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 61d705e2d67f83c81aa7c6362ec6703e014ecb87
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Aug 15 18:42:56 2012 -0700
-
- objectcacher: fix bh leak on discard
-
- Fixes: #2950
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 787a78e8b1d8e5d92ee447b970ec8b79baa46f0b
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Aug 30 10:16:52 2012 -0400
-
- upstart, ceph-create-keys: Make client.admin key generation automatic.
-
- This should help simplify Chef etc deployments. Now (when using the
- Upstart jobs), when a ceph-mon is started, ceph-create-admin-key is
- triggered. If /etc/ceph/$cluster.client.admin.keyring already exists,
- it does nothing; otherwise, it waits for ceph-mon to reach quorum, and
- then does a "ceph auth get-or-create" to create the key, and writes it
- atomically to disk.
-
- The equivalent code can be removed from the Chef cookbook once this is
- in.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 66aecb1e410a59f3e0ed89a30212b8dc546a3d4a
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Aug 30 10:21:29 2012 -0400
-
- config: Add a per-name default keyring to front of keyring search path.
-
- This lets us have e.g. /etc/ceph/ceph.client.admin.keyring that is
- owned by root:admin and mode u=rw,g=r,o= without making every non-root
- run of the command line tools complain and fail.
-
- This is what the Chef cookbook has been doing for a while already.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 6e34b8c109322690151b42efb745bc96a210dda4
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Aug 30 10:11:09 2012 -0400
-
- upstart: Make instance jobs export their cluster and id variables.
-
- This allows other jobs listening to Upstart "started ceph-mon" events
- to see what instance started.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 27372dc4e99c17a7a2d5ad6646e5ae54392d5955
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Jul 12 10:47:29 2012 -0700
-
- upstart: Make ceph-osd always set the crush location.
-
- This used to be conditional on config having osd_crush_location set,
- but with that, minimal configuration left the OSD completely out of
- the crush map, and prevented the OSD from starting properly.
-
- Note: Ceph does not currently let this mechanism automatically move
- hosts to another location in the CRUSH hierarchy. This means if you
- let this run with defaults, setting osd_crush_location later will not
- take effect. Set up your config file (or Chef environment) fully
- before starting the OSDs the first time.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 471105a966f873aef2361b1ed48d088c490fe1aa
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Jul 3 15:24:26 2012 -0700
-
- ceph-disk-prepare: Partition and format OSD data disks automatically.
-
- Uses gdisk, as it seems to be the only tool that can automate GPT uuid
- changes. Needs to run as root.
-
- Adds Recommends: gdisk to ceph.deb.
-
- Closes: #2547
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 24fe265c594308d5679e845fcfe8b0fe6a7be612
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Jul 3 09:22:28 2012 -0700
-
- ceph-disk-prepare: Take fsid from config file.
-
- Closes: #2546.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 1f06b490b4187055a5bfabc20746c87dfa075e0d
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Mon Jun 25 15:14:33 2012 -0700
-
- upstart: fix regex
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
- Signed-off-by: Greg Farnum <greg@inktank.com>
-
-commit 657ca118a7658617b9117311d9ee1cbe00103c06
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Aug 28 16:17:21 2012 -0700
-
- rgw: clear usage map before reading usage
-
- Fixes: #3057
- Since we read usage in chunks we need to clear the
- usage map before reading the next chunk, otherwise
- we're going to aggregate the old data as well.
-
- Backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit c49284c98de1df1a889e0c88e6b1157133f5e0a6
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Aug 23 11:48:50 2012 -0700
-
- Don't package crush header files.
-
-commit b6fb3e37a68d48434a81ee4356cde48cad187e94
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Aug 17 17:34:23 2012 -0700
-
- rgw: dump content_range using 64 bit formatters
-
- Fixes: #2961
- Also make sure that size is 64 bit.
-
- backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 08d975146cbe6796799266f03361240a62acb297
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 21 10:58:38 2012 -0700
-
- Revert "rgw: dump content_range using 64 bit formatters"
-
- This reverts commit faf9fa5744b459abc2eda829a48a4e07b9c97a08.
-
-commit faf9fa5744b459abc2eda829a48a4e07b9c97a08
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Aug 17 17:34:23 2012 -0700
-
- rgw: dump content_range using 64 bit formatters
-
- Fixes: #2961
- Also make sure that size is 64 bit.
-
- backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 47b24c0562bcb44964a0b8f6c4847bb0f05924e0
-Author: Matthew Wodrich <matthew.wodrich@dreamhost.com>
-Date: Tue Jul 31 19:13:03 2012 -0700
-
- obsync: add missing package specifier to format_exc
-
- Fixes: #2873
- Signed-off-by: Matthew Wodrich <matthew.wodrich@dreamhost.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
-
-commit a14214dc9b7c15581a0664dbe259389867f88e72
-Author: Danny Kukawka <danny.kukawka@bisect.de>
-Date: Thu Aug 16 12:56:58 2012 +0200
-
- fix keyring generation for mds and osd
-
- [ The following text is in the "UTF-8" character set. ]
- [ Your display is set for the "ANSI_X3.4-1968" character set. ]
- [ Some characters may be displayed incorrectly. ]
-
- Fix config keys for OSD/MDS data dirs. As in documentation and other
- places of the scripts the keys are 'osd data'/'mds data' and not
- 'osd_data'
-
- In case if MDS: if 'mds data' doesn't exist, create it.
-
- Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
-
-commit d1a31ce1ca2a5e1c53146c6e9063a123a1fe8cdb
-Author: Danny Kukawka <danny.kukawka@bisect.de>
-Date: Thu Aug 16 12:56:32 2012 +0200
-
- fix ceph osd create help
-
- [ The following text is in the "UTF-8" character set. ]
- [ Your display is set for the "ANSI_X3.4-1968" character set. ]
- [ Some characters may be displayed incorrectly. ]
-
- Change ceph osd create <osd-id> to ceph osd create <uuid>, since this
- is what the command is really doing.
-
- Signed-off-by: Danny Kukawka <danny.kukawka@bisect.de>
-
-commit dc2a232bd37b7202c3d6e94396b3d85cec5225cd
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 9 17:24:19 2012 -0700
-
- mon: simplify logmonitor check_subs; less noise
-
- * simple helper to translate name to id
- * verify sub type is valid in caller
- * assert sub type is valid in method
- * simplify iterator usage
-
- Among other things, this gets rid of this noise in the logs:
-
- 2012-07-10 20:51:42.617152 7facb23f1700 1 mon.a@1(peon).log v310 check_sub sub monmap not log type
-
- Signed-off-by: Sage Weil <sage@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.48.3argonaut.txt b/src/ceph/doc/changelog/v0.48.3argonaut.txt
deleted file mode 100644
index 22f0dc9..0000000
--- a/src/ceph/doc/changelog/v0.48.3argonaut.txt
+++ /dev/null
@@ -1,895 +0,0 @@
-commit 920f82e805efec2cae05b79c155c07df0f3ed5dd
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Mon Jan 7 21:08:08 2013 -0800
-
- v0.48.3argonaut
-
-commit 213e3559dd260a2e19324f2a671c808261249f96
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 6 20:43:21 2013 -0800
-
- osd: fix race in do_recovery()
-
- Verify that the PG is still RECOVERING or BACKFILL when we take the pg
- lock in the recovery thread. This prevents a crash from an invalid
- state machine event when the recovery queue races with a PG state change
- (e.g., due to peering).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit e410d1a066b906cad3103a5bbfa5b4509be9ac37
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 4 21:19:45 2013 -0800
-
- ReplicatedPG: requeue waiting_for_ondisk in apply_and_flush_repops
-
- Fixes: #3722
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit cd5f2bfdbb7fbf9237bef482845644cc41fa66de
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Nov 15 16:20:33 2012 -0800
-
- ObjectCacher: fix off-by-one error in split
-
- This error left a completion that should have been attached
- to the right BufferHead on the left BufferHead, which would
- result in the completion never being called unless the buffers
- were merged before it's original read completed. This would cause
- a hang in any higher level waiting for a read to complete.
-
- The existing loop went backwards (using a forward iterator),
- but stopped when the iterator reached the beginning of the map,
- or when a waiter belonged to the left BufferHead.
-
- If the first list of waiters should have been moved to the right
- BufferHead, it was skipped because at that point the iterator
- was at the beginning of the map, which was the main condition
- of the loop.
-
- Restructure the waiters-moving loop to go forward in the map instead,
- so it's harder to make an off-by-one error.
-
- Possibly-fixes: #3286
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 2e862f4d183d8b57b43b0777737886f18f68bf00)
-
-commit 802c486fd0913e9fe58ae7ff72df135f99712358
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 4 11:07:48 2013 -0800
-
- config: change default log_max_recent to 10,000
-
- Commit c34e38bcdc0460219d19b21ca7a0554adf7f7f84 meant to do this but got
- the wrong number of zeros.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 39a734fbf34ccd121f17023bcec814e61c8bdaab
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 3 17:15:07 2013 -0800
-
- os/FileStore: fix non-btrfs op_seq commit order
-
- The op_seq file is the starting point for journal replay. For stable btrfs
- commit mode, which is using a snapshot as a reference, we should write this
- file before we take the snap. We normally ignore current/ contents anyway.
-
- On non-btrfs file systems, however, we should only write this file *after*
- we do a full sync, and we should then fsync(2) it before we continue
- (and potentially trim anything from the journal).
-
- This fixes a serious bug that could cause data loss and corruption after
- a power loss event. For a 'kill -9' or crash, however, there was little
- risk, since the writes were still captured by the host's cache.
-
- Fixes: #3721
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 28d59d374b28629a230d36b93e60a8474c902aa5)
-
-commit 49416619d733572368e5d2ba7f2b34150c754b23
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 13:07:18 2012 -0800
-
- log: broadcast cond signals
-
- We were using a single cond, and only signalling one waiter. That means
- that if the flusher and several logging threads are waiting, and we hit
- a limit, we the logger could signal another logger instead of the flusher,
- and we could deadlock.
-
- Similarly, if the flusher empties the queue, it might signal only a single
- logger, and that logger could re-signal the flusher, and the other logger
- could wait forever.
-
- Intead, break the single cond into two: one for loggers, and one for the
- flusher. Always signal the (one) flusher, and always broadcast to all
- loggers.
-
- Backport: bobtail, argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 813787af3dbb99e42f481af670c4bb0e254e4432)
-
-commit f8bb4814d0fd7e08c9b6cdcde02940bf1b42cadd
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 2 13:58:44 2013 -0800
-
- log: fix locking typo/stupid for dump_recent()
-
- We weren't locking m_flush_mutex properly, which in turn was leading to
- racing threads calling dump_recent() and garbling the crash dump output.
-
- Backport: bobtail, argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 43cba617aa0247d714632bddf31b9271ef3a1b50)
-
-commit 9483a032f750572586f146c696ec6501d3df0383
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Dec 27 16:06:24 2012 -0800
-
- init-ceph: fix status version check across machines
-
- The local state isn't propagated into the backtick shell, resulting in
- 'unknown' for all remote daemons. Avoid backticks altogether.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6c7b667badc5e7608b69c533a119a2afc062e257)
-
-commit 8fef9360fe949fbf4ee6e468c36cc1c84b369b6e
-Author: Travis Rhoden <trhoden@gmail.com>
-Date: Mon Aug 20 13:29:11 2012 -0700
-
- init-ceph: use SSH in "service ceph status -a" to get version
-
- When running "service ceph status -a", a version number was never
- returned for remote hosts, only for the local. This was because
- the command to query the version number didn't use the do_cmd
- function, which is responsible for running the command over SSH
- when needed.
-
- Modify the ceph init.d script to use do_cmd for querying the
- Ceph version.
-
- Signed-off-by: Travis Rhoden <trhoden@gmail.com>
- (cherry picked from commit 60fdb6fda6233b01dae4ed8a34427d5960840b84)
-
-commit c34e38bcdc0460219d19b21ca7a0554adf7f7f84
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Nov 28 13:00:36 2012 -0800
-
- log: 10,000 recent log entries
-
- This is what we were (wrongly) doing before, so there are no memory
- utilization surprises.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 78286b1403a5e0f14f95fe6b92f2fdb163e909f1)
-
-commit 4daede79f578cccd340210752f912e685b1ff03d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Nov 28 12:59:43 2012 -0800
-
- log: fix log_max_recent config
-
- <facepalm>
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4de7748b72d4f90eb1197a70015c199c15203354)
-
-commit fdae0552a0b8b1a634775609b473aff9221904f3
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Dec 20 13:48:06 2012 -0800
-
- log: fix flush/signal race
-
- We need to signal the cond in the same interval where we hold the lock
- *and* modify the queue. Otherwise, we can have a race like:
-
- queue has 1 item, max is 1.
- A: enter submit_entry, signal cond, wait on condition
- B: enter submit_entry, signal cond, wait on condition
- C: flush wakes up, flushes 1 previous item
- A: retakes lock, enqueues something, exits
- B: retakes lock, condition fails, waits
- -> C is never woken up as there are 2 items waiting
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 50914e7a429acddb981bc3344f51a793280704e6)
-
-commit bdcf6647dec05617d3da46ad00459498ede94f1d
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Dec 21 17:12:07 2012 -0800
-
- .gitignore: Add ar-lib to ignore list
-
-commit 51a900cfd7cc009f03fdb80be028015fc34547d2
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Dec 21 16:55:27 2012 -0800
-
- autogen.sh: Create m4 directory for leveldb
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 74473bb667df0ee0bb1adc6c43242733b80aa10d
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Dec 21 16:17:33 2012 -0800
-
- leveldb: Update submodule
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit bc4f74c7b9ec4e6bbcf4ab4ab68a82a69b8eaca5
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Thu Dec 20 16:49:32 2012 -0800
-
- ceph.spec.in: Fedora builds debuginfo by default.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 3ed2d59e98494a0da29f4bb8537471237a6f8e93
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Dec 19 17:07:18 2012 -0800
-
- rgw: fix error handling with swift
-
- Fixes: #3649
- verify_swift_token returns a bool and not an int.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit dfd310368267df848f2b65cc536b4ffcb039d353
-Author: Sam Lang <sam.lang@inktank.com>
-Date: Mon Sep 24 09:55:25 2012 -0700
-
- client: Fix for #3184 cfuse segv with no keyring
-
- Fixes bug #3184 where the ceph-fuse client segfaults if authx is
- enabled but no keyring file is present. This was due to the
- client->init() return value not getting checked.
-
- Signed-off-by: Sam Lang <sam.lang@inktank.com>
- (cherry picked from commit 47983df4cbd31f299eef896b4612d3837bd7c7bd)
-
-commit acebcce91448421c34a72850a380fcd1aabe9f41
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Oct 9 21:25:54 2012 +0100
-
- mon: Monitor: resolve keyring option to a file before loading keyring
-
- Otherwise our keyring default location, or any other similarly formatted
- location, will be taken as the actual location for the keyring and fail.
-
- Reported-by: tziOm (at) #ceph
- Fixes: 3276
- Backport: argonaut
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 7ef0df25e001bfae303feb3ae36514608767b1f2)
-
-commit 7ab00a796d2233c3804f52fbba16c2f3ed0c297b
-Author: Gary Lowell <glowell@inktank.com>
-Date: Wed Dec 5 19:39:11 2012 -0800
-
- .gitignore: Add m4 macro directories to ignore list
-
-commit b781ac00e16fd802b6e055dd9d453271db6efa39
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Nov 8 12:43:24 2012 -0800
-
- build: Add RPM release string generated from git describe.
-
- Fix for bug 3451. Use the commit count and sha1 from git describe to
- construct a release string for rpm packages.
-
- Conflicts:
-
- configure.ac
-
-commit f60c9b6600a85b840a02e145bac77326d60fd03f
-Author: Gary Lowell <glowell@inktank.com>
-Date: Fri Nov 9 13:28:13 2012 -0800
-
- ceph.spec.in: Build debuginfo subpackage.
-
- This is a partial fix for bug 3471. Enable building of debuginfo package.
- Some distributions enable this automatically by installing additional rpm
- macros, on others it needs to be explicity added to the spec file.
-
-commit 7fbf9476cb44ce256f4bb2366f46fa20cb570eda
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Dec 3 14:32:28 2012 -0800
-
- rgw: fix swift auth concurrency issue
-
- Fixes: #3565
- Originally ops were using static structures, but that
- has since changed. Switching swift auth handler to do
- the same.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 0639cd9c479d69b077175f0385eb569ebb839349
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Nov 29 13:39:22 2012 -0800
-
- rgw: fix rgw_tools get_obj()
-
- The original implementation broke whenever data exceeded
- the chunk size. Also don't keep cache for objects that
- exceed the chunk size as cache is not designed for
- it. Increased chunk size to 512k.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 84983387a220a29540aca64af774bbe7bc6b5ee6
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Nov 29 12:47:59 2012 -0800
-
- rgw: fix PUT acls
-
- This fixes a regression introduced at
- 17e4c0df44781f5ff1d74f3800722452b6a0fc58. The original
- patch fixed error leak, however it also removed the
- operation's send_response() call.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 6c1e2b663227cadff4255db3321976882df6b261
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Nov 19 17:10:11 2012 -0800
-
- rgw: fix xml parser leak
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit f86522cdfcd81b2d28c581ac8b8de6226bc8d1a4)
-
-commit 17e4c0df44781f5ff1d74f3800722452b6a0fc58
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Nov 19 16:52:38 2012 -0800
-
- rgw: fix memory leaks
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 98a04d76ebffa61c3ba4b033cdd57ac57b2f29f3)
-
- Conflicts:
- src/rgw/rgw_op.cc
- src/rgw/rgw_op.h
-
-commit cd18b9f43cce68ac3d8f109e82a5b603f9caad9b
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 7 13:21:15 2012 -0800
-
- rgw: don't convert object mtime to UTC
-
- Fixes: #3452
- When we read object info, don't try to convert mtime to
- UTC, it's already in UTC.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit ddb40dec6e8d930fd63a71ef1c98279d6472e3e4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 14 11:30:34 2012 -0800
-
- rgw: relax date format check
-
- Don't try to parse beyond the GMT or UTC. Some clients use
- special date formatting. If we end up misparsing the date
- it'll fail in the authorization, so don't need to be too
- restrictive.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit e35e7e2bcb749e3ee00f1f93bc6b17bde8329414
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 30 14:17:56 2012 -0700
-
- ceph-disk-activate: avoid duplicating mounts if already activated
-
- If the given device is already mounted at the target location, do not
- mount --move it again and create a bunch of dup entries in the /etc/mtab
- and kernel mount table.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c435d314caeb5424c1f4482ad02f8a085317ad5b)
-
-commit 0c9bbb3b4b4dbe6f0a12960785e35af9c748701a
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Oct 25 21:21:18 2012 -0700
-
- ceph-disk-prepare: poke kernel into refreshing partition tables
-
- Prod the kernel to refresh the partition table after we create one. The
- partprobe program is packaged with parted, which we already use, so this
- introduces no new dependency.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 402e1f5319a52c309eca936081fddede1f107268)
-
-commit b4004806ec387915ba4e039b9bc1c563273ef08f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Oct 25 21:20:21 2012 -0700
-
- ceph-disk-prepare: fix journal partition creation
-
- The end value needs to have + to indicate it is relative to wherever the
- start is.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2e32a0ee2d9e2a3bf5b138f50efc5fba8d5b8660)
-
-commit efac1bb19f1ca3851c7b51d96cb4e82d8d142a45
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Oct 25 18:14:47 2012 -0700
-
- ceph-disk-prepare: assume parted failure means no partition table
-
- If the disk has no valid label we get an error like
-
- Error: /dev/sdi: unrecognised disk label
-
- Assume any error we get is that and go with an id label of 1.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8921fc7c7bc28fb98334c06f1f0c10af58085085)
-
-commit 39b9da403541617fb088aa4ae03925850aa2de65
-Merge: 83ab366 8c115d3
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Nov 12 11:24:00 2012 -0800
-
- Merge remote-tracking branch 'gh/wip-mds-stable' into stable
-
-commit 8c115d3e81543a4c723bae217ba5b9d2c0e988f7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Nov 9 05:28:12 2012 -0800
-
- mds: re-try_set_loner() after doing evals in eval(CInode*, int mask)
-
- Consider a case where current loner is A and wanted loner is B.
- At the top of the function we try to set the loner, but that may fail
- because we haven't processed the gathered caps yet for the previous
- loner. In the body we do that and potentially drop the old loner, but we
- do not try_set_loner() again on the desired loner.
-
- Try after our drop. If it succeeds, loop through the eval's one more time
- so that we can issue caps approriately.
-
- This fixes a hang induced by a simple loop like:
-
- while true ; do echo asdf >> mnt.a/foo ; tail mnt.b/foo ; done &
- while true ; do ls mnt.a mnt.b ; done
-
- (The second loop may not be necessary.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 1a23bd6981e2a308be4a905021453a6d5feac9e3
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jul 13 14:23:27 2012 -0700
-
- CompatSet: users pass bit indices rather than masks
-
- CompatSet users number the Feature objects rather than
- providing masks. Thus, we should do
-
- mask |= (1 << f.id) rather than mask |= f.id.
-
- In order to detect old, broken encodings, the lowest
- bit will be set in memory but not set in the encoding.
- We can reconstruct the correct mask from the names map.
-
- This bug can cause an incompat bit to not be detected
- since 1|2 == 1|2|3.
-
- fixes: #2748
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 83ab36655f397b7d781a611b4d82679c8484710f
-Author: Gary Lowell <glowell@inktank.com>
-Date: Wed Nov 7 12:41:10 2012 -0800
-
- ceph.spec.in: Remove ceph version requirement from ceph-fuse package.
-
- The ceph-fuse rpm package now only requires ceph as a pre-req, not a specific
- version.
-
-commit 578b5764d5b26d190c295da88c1be5f0c77682a7
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Oct 24 13:15:46 2012 -0700
-
- rgw: fix multipart overwrite
-
- Fixes: #3400
- Removed a few lines of code that prematurely created the head
- part of the final object (before creating the manifest).
-
- backport:argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 96888ddf154231daa6c7138bb2b97674771cc610
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Nov 5 23:27:13 2012 -0800
-
- mds: move to from loner -> mix if *anyone* wants rd|wr
-
- We were either going to MIX or SYNC depending on whether non-loners wanted
- to read/write, but it may be that the loner wants to if our logic for
- choosing loner vs not longer is based on anything other that just rd|wr
- wanted.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b940d7750d14285fc85ce63b0f0444b58ad3ad93
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Nov 5 23:26:09 2012 -0800
-
- mds: base loner decision on wanted RD|WR|EXCL, not CACHE|BUFFER
-
- Observed instance where one client wanted the Fc cap and prevented the
- loner from getting RD|WR caps.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 7a82a3214a38cbc7b5750adba23b760a4f51643a
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 30 09:00:11 2012 -0700
-
- osd: make pool_snap_info_t encoding backward compatible
-
- Way back in fc869dee1e8a1c90c93cb7e678563772fb1c51fb (v0.42) when we redid
- the osd type encoding we forgot to make this conditionally encode the old
- format for old clients. In particular, this means that kernel clients
- will fail to decode the osdmap if there is a rados pool with a pool-level
- snapshot defined.
-
- Fixes: #3290
- Signed-off-by: Sage Weil <sage@inktank.com>
-
- Conflicts:
-
- src/test/encoding/types.h
-
-commit 8d7ca76182fdc04aaf8b698afbbd2d9b22e07fdc
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Fri Sep 7 13:49:27 2012 +0800
-
- osd/OSD.cc: Fix typo in OSD::heartbeat_check()
-
- The check 'p->second.last_tx > cutoff' should always be false
- since last_tx is periodically updated by OSD::heartbeat()
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit fc2b3ced4f7ed8d6e065c159fbeb8670fcdaca2a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 22 16:52:11 2012 -0700
-
- rgw: dump an error message if FCGX_Accept fails
-
- Adding missing debug info.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d9b51b3b7011f4551fe27e33301b26cd23a72378
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Oct 22 15:38:30 2012 -0700
-
- workqueue: make debug output include active threads
-
- Include active thread count in threadpool debug output.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 852e27d3e19239a696fa693e2a30c3226d27a611
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 22 13:16:59 2012 -0700
-
- rgw: don't continue processing of GET request on error
-
- Fixes #3381
- We continued processing requests long after the client
- has died. This fix appliese to both s3 and swift.
-
- backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 5f2b9b451da5a96fdbf9cf292648feb40dc13d28
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Oct 19 08:46:19 2012 -0700
-
- osd: be quiet about watches
-
- Useless log noise.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ea42eb1f7866fed0e843257ce05e34503fd0129c
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Oct 17 17:44:12 2012 -0700
-
- addr_parsing: make , and ; and ' ' all delimiters
-
- Instead of just ,. Currently "foo.com, bar.com" will fail because of the
- space after the comma. This patches fixes that, and makes all delim
- chars interchangeable.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b0164d9902c834c95187f6b277f58a30d26cc4d3
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Fri Oct 5 10:57:42 2012 -0700
-
- ceph-disk-prepare, debian/control: Support external journals.
-
- Previously, ceph-disk-* would only let you use a journal that was a
- file inside the OSD data directory. With this, you can do:
-
- ceph-disk-prepare /dev/sdb /dev/sdb
-
- to put the journal as a second partition on the same disk as the OSD
- data (might save some file system overhead), or, more interestingly:
-
- ceph-disk-prepare /dev/sdb /dev/sdc
-
- which makes it create a new partition on /dev/sdc to use as the
- journal. Size of the partition is decided by $osd_journal_size.
- /dev/sdc must be a GPT-format disk. Multiple OSDs may share the same
- journal disk (using separate partitions); this way, a single fast SSD
- can serve as journal for multiple spinning disks.
-
- The second use case currently requires parted, so a Recommends: for
- parted has been added to Debian packaging.
-
- Closes: #3078
- Closes: #3079
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 5a3076fd51706e32bc55b734099037520299003b
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 15 09:43:47 2012 -0700
-
- rgw: don't add port to url if already has one
-
- Fixes: #3296
- Specifically, is host name string already has ':', then
- don't try to append theport (swift auth).
-
- backport: argonaut
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d76b71caa99a39035ea6ed9db6ca0994975d38af
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Oct 15 16:37:05 2012 -0700
-
- admin_socket: fix '0' protocol version
-
- Broken by 895e24d198ced83ab7fed3725f12f75e3bc97b0b.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 714254cb0522b194118eb854f90d4c3971e8c6b3
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Oct 8 17:14:22 2012 -0700
-
- mon: drop command replies on paxos reset
-
- If paxos resets, do not send the reply for the commit we were waiting for;
- let the command be reprocessed and re-proposed.
-
- Among other things, this could lead to nondeterministic results for
- 'ceph osd create <uuid>'.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit d9e981f4209da9a0e000d434e28686a133b25f11
-Merge: 5d84b4a 13b448b
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Oct 8 21:02:51 2012 -0700
-
- Merge remote-tracking branch 'gh/for-stable-fstypes-and-ext-journal' into stable
-
-commit 5d84b4a22b2ff975679711719f336a312a6edff3
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Aug 2 13:02:04 2012 -0700
-
- ceph-authtool: Fix usage, it's --print-key not --print.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 13b448b8ce959f31d07cd1827614c445c410aa62
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Fri Oct 5 09:22:34 2012 -0700
-
- upstart: OSD journal can be a symlink; if it's dangling, don't start.
-
- This lets a $osd_data/journal symlink point to
- /dev/disk/by-partuuid/UUID and the osd will not attempt to start until
- that disk is available.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit d9dfa2d17859ca07d735b8e35c5dc00a25995153
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Oct 5 09:10:31 2012 -0700
-
- osd: Make --get-journal-fsid not really start the osd.
-
- This way, it won't need -i ID and it won't access the osd_data_dir.
- That makes it useful for locating the right osd to use with an
- external journal partition.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit f65daf3f24830a28e85ebe7c6fce2642f5fc6dd8
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Fri Oct 5 09:08:56 2012 -0700
-
- osd: Make --get-journal-fsid not attempt aio or direct_io.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 86546d7dec6cd5080162d1f3d7de2c579736dd65
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Thu Oct 4 16:03:40 2012 -0700
-
- ceph-disk-prepare: Use the OSD uuid as the partition GUID.
-
- This will make locating the right data partition for a given journal
- partition a lot easier.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit fa3aa41ead0be5a27695e3c208c5af00af90bc53
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Wed Oct 3 12:38:38 2012 -0700
-
- debian/control, ceph-disk-prepare: Depend on xfsprogs, use xfs by default.
-
- Ext4 as a default is a bad choice, as we don't perform enough QA with
- it. To use XFS as the default for ceph-disk-prepare, we need to depend
- on xfsprogs.
-
- btrfs-tools is already recommended, so no change there. If you set
- osd_fs_type=btrfs, and don't have the package installed, you'll just
- get an error message.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 4c3997dc8bbd3985a7b86d8c54b71fbe15af1591
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Wed Oct 3 10:13:17 2012 -0700
-
- ceph-disk-{prepare,activate}: Default mkfs arguments and mount options.
-
- The values for the settings were copied from teuthology task "ceph".
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit a6229b901785ef0a88d1b1886b5b5ae339ac7fcb
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Wed Oct 3 08:47:20 2012 -0700
-
- ceph-disk-prepare: Avoid triggering activate before prepare is done.
-
- Earlier testing never saw this, but now a mount of a disk triggers a
- udev blockdev-added event, causing ceph-disk-activate to run even
- before ceph-disk-prepare has had a chance to write the files and
- unmount the disk.
-
- Avoid this by using a temporary partition type uuid ("ceph 2 be"), and
- only setting it to the permanent ("ceph osd"). The hotplug event won't
- match the type uuid, and thus won't trigger ceph-disk-activate.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 03cec77e2b0b4536349880de6890ad9537da0783
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 17:06:11 2012 -0700
-
- ceph-disk-activate: Add a comment about user_xattr being default now.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit 4aa13c6d228b9256870e02a57496f00a75e17349
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 16:53:35 2012 -0700
-
- ceph-disk-activate: Use mount options from ceph.conf
-
- Always uses default cluster name ("ceph") for now, see
- http://tracker.newdream.net/issues/3253
-
- Closes: #2548
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit b684ab1d1727b23f75f232123f1da947df2e5e63
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 16:43:08 2012 -0700
-
- ceph-disk-activate: Refactor to extract detect_fstype call.
-
- This allows us to use the fstype for a config lookup.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit ce5e1f8dfaa8675b0a1e9fa22ebf91be9652aa01
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 16:37:07 2012 -0700
-
- ceph-disk-activate: Unmount on errors (if it did the mount).
-
- This cleans up the error handling to not leave disks mounted
- in /var/lib/ceph/tmp/mnt.* when something fails, e.g. when
- the ceph command line tool can't talk to mons.
-
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit da86e4e43676ceaf0b39635954489c297de88025
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 16:23:55 2012 -0700
-
- ceph-disk-prepare: Allow setting mkfs arguments and mount options in ceph.conf
-
- Tested with meaningless but easy-to-verify values:
-
- [global]
- osd_fs_type = xfs
- osd_fs_mkfs_arguments_xfs = -i size=512
- osd_fs_mount_options_xfs = noikeep
-
- ceph-disk-activate does not respect the mount options yet.
-
- Closes: #2549
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit cf2e3b15cea99cc100169e7a67103676d8990aee
-Author: Tommi Virtanen <tv@inktank.com>
-Date: Tue Oct 2 16:04:15 2012 -0700
-
- ceph-disk-prepare: Allow specifying fs type to use.
-
- Either use ceph.conf variable osd_fs_type or command line option
- --fs-type=
-
- Default is still ext4, as currently nothing guarantees xfsprogs
- or btrfs-tools are installed.
-
- Currently both btrfs and xfs seems to trigger a disk hotplug event at
- mount time, thus triggering a useless and unwanted ceph-disk-activate
- run. This will be worked around in a later commit.
-
- Currently mkfs and mount options cannot be configured.
-
- Bug: #2549
- Signed-off-by: Tommi Virtanen <tv@inktank.com>
-
-commit f031046c4d600ce0a0c2c9ad5856dc100b0901fb
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 26 15:43:56 2012 -0700
-
- rgw: copy_object should not override ETAG implicitly
-
- When copying an object with new attrs, we still need to
- maintain the ETAG.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 2fddfb0a95288d39cee2e82376297ce43296743b
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Sep 24 18:10:24 2012 -0700
-
- rgw: url_decode should allocate extra byte for dest
-
- Was missing extra byte for null termination
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.56.1.txt b/src/ceph/doc/changelog/v0.56.1.txt
deleted file mode 100644
index e2cfe9b..0000000
--- a/src/ceph/doc/changelog/v0.56.1.txt
+++ /dev/null
@@ -1,316 +0,0 @@
-commit e4a541624df62ef353e754391cbbb707f54b16f7
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Mon Jan 7 13:33:30 2013 -0800
-
- v0.56.1
-
-commit 9aecacda7fbf07f12b210f87cf3dbb53021b068d
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 6 08:38:27 2013 -0800
-
- msg/Pipe: prepare Message data for wire under pipe_lock
-
- We cannot trust the Message bufferlists or other structures to be
- stable without pipe_lock, as another Pipe may claim and modify the sent
- list items while we are writing to the socket.
-
- Related to #3678.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d16ad9263d7b1d3c096f56c56e9631fae8509651)
-
-commit 299dbad490df5e98c04f17fa8e486a718f3c121f
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 6 08:33:01 2013 -0800
-
- msgr: update Message envelope in encode, not write_message
-
- Fill out the Message header, footer, and calculate CRCs during
- encoding, not write_message(). This removes most modifications from
- Pipe::write_message().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 40706afc66f485b2bd40b2b4b1cd5377244f8758)
-
-commit 35d2f58305eab6c9b57a92269598b9729e2d8681
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 6 08:25:40 2013 -0800
-
- msg/Pipe: encode message inside pipe_lock
-
- This modifies bufferlists in the Message struct, and it is possible
- for multiple instances of the Pipe to get references on the Message;
- make sure they don't modify those bufferlists concurrently.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4cfc4903c6fb130b6ac9105baf1f66fbda797f14)
-
-commit 9b23f195df43589d062da95a11abc07c79f3109b
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 5 10:39:08 2013 -0800
-
- msg/Pipe: associate sending msgs to con inside lock
-
- Associate a sending message with the connection inside the pipe_lock.
- This way if a racing thread tries to steal these messages it will
- be sure to reset the con point *after* we do such that it the con
- pointer is valid in encode_payload() (and later).
-
- This may be part of #3678.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a058f16113efa8f32eb5503d5443aa139754d479)
-
-commit 6229b5a06f449a470d3211ea94c1c5faf7100876
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 5 09:29:50 2013 -0800
-
- msg/Pipe: fix msg leak in requeue_sent()
-
- The sent list owns a reference to each message.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2a1eb466d3f8e25ec8906b3ca6118a14c4e269d2)
-
-commit 6a00ce0dc24626fdfa210ddec6334bde3c8a20db
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 7 12:58:39 2013 -0800
-
- osdc/Objecter: fix linger_ops iterator invalidation on pool deletion
-
- The call to check_linger_pool_dne() may unregister the linger request,
- invalidating the iterator. To avoid this, increment the iterator at
- the top of the loop.
-
- This mirror the fix in 4bf9078286d58c2cd4e85cb8b31411220a377092 for
- regular non-linger ops.
-
- Fixes: #3734
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 62586884afd56f2148205bdadc5a67037a750a9b)
-
-commit a10950f91e6ba9c1620d8fd00a84fc59f983fcee
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 5 20:53:49 2013 -0800
-
- os/FileJournal: include limits.h
-
- Needed for IOV_MAX.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ce49968938ca3636f48fe543111aa219f36914d8)
-
-commit cd194ef3c7082993cae0892a97494f2a917ce2a7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 4 17:43:41 2013 -0800
-
- osd: special case CALL op to not have RD bit effects
-
- In commit 20496b8d2b2c3779a771695c6f778abbdb66d92a we treat a CALL as
- different from a normal "read", but we did not adjust the behavior
- determined by the RD bit in the op. We tried to fix that in
- 91e941aef9f55425cc12204146f26d79c444cfae, but changing the op code breaks
- compatibility, so that was reverted.
-
- Instead, special-case CALL in the helper--the only point in the code that
- actually checks for the RD bit. (And fix one lingering user to use that
- helper appropriately.)
-
- Fixes: #3731
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 988a52173522e9a410ba975a4e8b7c25c7801123)
-
-commit 921e06decebccc913c0e4f61916d00e62e7e1635
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 4 20:46:48 2013 -0800
-
- Revert "OSD: remove RD flag from CALL ops"
-
- This reverts commit 91e941aef9f55425cc12204146f26d79c444cfae.
-
- We cannot change this op code without breaking compatibility
- with old code (client and server). We'll have to special case
- this op code instead.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit d3abd0fe0bb402ff403259d4b1a718a56331fc39)
-
-commit 7513e9719a532dc538d838f68e47c83cc51fef82
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 4 12:43:52 2013 -0800
-
- ReplicatedPG: remove old-head optization from push_to_replica
-
- This optimization allowed the primary to push a clone as a single push in the
- case that the head object on the replica is old and happens to be at the same
- version as the clone. In general, using head in clone_subsets is tricky since
- we might be writing to head during the push. calc_clone_subsets does not
- consider head (probably for this reason). Handling the clone from head case
- properly would require blocking writes on head in the interim which is probably
- a bad trade off anyway.
-
- Because the old-head optimization only comes into play if the replica's state
- happens to fall on the last write to head prior to the snap that caused the
- clone in question, it's not worth the complexity.
-
- Fixes: #3698
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e89b6ade63cdad315ab754789de24008cfe42b37)
-
-commit c63c66463a567e8095711e7c853ac8feb065c5c5
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 3 17:15:07 2013 -0800
-
- os/FileStore: fix non-btrfs op_seq commit order
-
- The op_seq file is the starting point for journal replay. For stable btrfs
- commit mode, which is using a snapshot as a reference, we should write this
- file before we take the snap. We normally ignore current/ contents anyway.
-
- On non-btrfs file systems, however, we should only write this file *after*
- we do a full sync, and we should then fsync(2) it before we continue
- (and potentially trim anything from the journal).
-
- This fixes a serious bug that could cause data loss and corruption after
- a power loss event. For a 'kill -9' or crash, however, there was little
- risk, since the writes were still captured by the host's cache.
-
- Fixes: #3721
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 28d59d374b28629a230d36b93e60a8474c902aa5)
-
-commit b8f061dcdb808a6fc5ec01535b37560147b537de
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 3 09:59:45 2013 -0800
-
- OSD: for old osds, dispatch peering messages immediately
-
- Normally, we batch up peering messages until the end of
- process_peering_events to allow us to combine many notifies, etc
- to the same osd into the same message. However, old osds assume
- that the actiavtion message (log or info) will be _dispatched
- before the first sub_op_modify of the interval. Thus, for those
- peers, we need to send the peering messages before we drop the
- pg lock, lest we issue a client repop from another thread before
- activation message is sent.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4ae4dce5c5bb547c1ff54d07c8b70d287490cae9)
-
-commit 67968d115daf51762dce65af46b9b843eda592b5
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 2 22:38:53 2013 -0800
-
- osd: move common active vs booting code into consume_map
-
- Push osdmaps to PGs in separate method from activate_map() (whose name
- is becoming less and less accurate).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a32d6c5dca081dcd8266f4ab51581ed6b2755685)
-
-commit 34266e6bde9f36b1c46144d2341b13605eaa9abe
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 2 22:20:06 2013 -0800
-
- osd: let pgs process map advances before booting
-
- The OSD deliberate consumes and processes most OSDMaps from while it
- was down before it marks itself up, as this is can be slow. The new
- threading code does this asynchronously in peering_wq, though, and
- does not let it drain before booting the OSD. The OSD can get into
- a situation where it marks itself up but is not responsive or useful
- because of the backlog, and only makes the situation works by
- generating more osdmaps as result.
-
- Fix this by calling activate_map() even when booting, and when booting
- draining the peering_wq on each call. This is harmless since we are
- not yet processing actual ops; we only need to be async when active.
-
- Fixes: #3714
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0bfad8ef2040a0dd4a0dc1d3abf3ab5b2019d179)
-
-commit 4034f6c817d1efce5fb9eb8cc0a9327f9f7d7910
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 13:07:18 2012 -0800
-
- log: broadcast cond signals
-
- We were using a single cond, and only signalling one waiter. That means
- that if the flusher and several logging threads are waiting, and we hit
- a limit, we the logger could signal another logger instead of the flusher,
- and we could deadlock.
-
- Similarly, if the flusher empties the queue, it might signal only a single
- logger, and that logger could re-signal the flusher, and the other logger
- could wait forever.
-
- Intead, break the single cond into two: one for loggers, and one for the
- flusher. Always signal the (one) flusher, and always broadcast to all
- loggers.
-
- Backport: bobtail, argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 813787af3dbb99e42f481af670c4bb0e254e4432)
-
-commit 2141454eee3a1727706d48f8efef92f8a2b98278
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 2 13:58:44 2013 -0800
-
- log: fix locking typo/stupid for dump_recent()
-
- We weren't locking m_flush_mutex properly, which in turn was leading to
- racing threads calling dump_recent() and garbling the crash dump output.
-
- Backport: bobtail, argonaut
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 43cba617aa0247d714632bddf31b9271ef3a1b50)
-
-commit 936560137516a1fd5e55b52ccab59c408ac2c245
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 16:48:22 2012 -0800
-
- test_filejournal: optionally specify journal filename as an argument
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 483c6f76adf960017614a8641c4dcdbd7902ce33)
-
-commit be0473bbb1feb8705be4fa8f827704694303a930
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 16:48:05 2012 -0800
-
- test_filejournal: test journaling bl with >IOV_MAX segments
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c461e7fc1e34fdddd8ff8833693d067451df906b)
-
-commit de61932793c5791c770855e470e3b5b9ebb53dba
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 16:47:28 2012 -0800
-
- os/FileJournal: limit size of aio submission
-
- Limit size of each aio submission to IOV_MAX-1 (to be safe). Take care to
- only mark the last aio with the seq to signal completion.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dda7b651895ab392db08e98bf621768fd77540f0)
-
-commit ded454c669171d4038b087cfdad52a57da222c1f
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 15:44:51 2012 -0800
-
- os/FileJournal: logger is optional
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 076b418c7f03c5c62f811fdc566e4e2b776389b7)
diff --git a/src/ceph/doc/changelog/v0.56.2.txt b/src/ceph/doc/changelog/v0.56.2.txt
deleted file mode 100644
index cd8e402..0000000
--- a/src/ceph/doc/changelog/v0.56.2.txt
+++ /dev/null
@@ -1,1294 +0,0 @@
-commit 586538e22afba85c59beda49789ec42024e7a061
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Tue Jan 29 23:54:47 2013 -0800
-
- v0.56.2
-
-commit bcb8dfad9cbb4c6af7ae7f9584e36449a03cd1b6
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Jan 29 23:05:49 2013 -0800
-
- cls_rbd, cls_rgw: use PRI*64 when printing/logging 64-bit values
-
- caused segfaults in 32-bit build
-
- Fixes: #3961
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e253830abac76af03c63239302691f7fac1af381)
-
-commit 5a7c5088cc8f57f75eb594a21bf5fb6661e50978
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Jan 29 15:18:53 2013 -0800
-
- init-ceph: make ulimit -n be part of daemon command
-
- ulimit -n from 'max open files' was being set only on the machine
- running /etc/init.d/ceph. It needs to be added to the commands to
- start the daemons, and run both locally and remotely.
-
- Verified by examining /proc/<pid>/limits on local and remote hosts
-
- Fixes: #3900
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Loïc Dachary <loic@dachary.org>
- Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit 84a024b647c0ac2ee5a91bacdd4b8c966e44175c)
-
-commit 95677fc599b9bf37ab4c2037b3675fd68f92ebcf
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sat Jan 12 01:06:36 2013 +0000
-
- mon: OSDMonitor: only share osdmap with up OSDs
-
- Try to share the map with a randomly picked OSD; if the picked monitor is
- not 'up', then try to find the nearest 'up' OSD in the map by doing a
- backward and a forward linear search on the map -- this would be O(n) in
- the worst case scenario, as we only do a single iteration starting on the
- picked position, incrementing and decrementing two different iterators
- until we find an appropriate OSD or we exhaust the map.
-
- Fixes: #3629
- Backport: bobtail
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3610e72e4f9117af712f34a2e12c5e9537a5746f)
-
-commit e4d76cb8594c0ec901f89c2f2e8cc53e00eb2a06
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sun Jan 27 21:57:31 2013 +0100
-
- utime: fix narrowing conversion compiler warning in sleep()
-
- Fix compiler warning:
- ./include/utime.h: In member function 'void utime_t::sleep()':
- ./include/utime.h:139:50: warning: narrowing conversion of
- '((utime_t*)this)->utime_t::tv.utime_t::<anonymous struct>::tv_sec' from
- '__u32 {aka unsigned int}' to '__time_t {aka long int}' inside { } is
- ill-formed in C++11 [-Wnarrowing]
- ./include/utime.h:139:50: warning: narrowing conversion of
- '((utime_t*)this)->utime_t::tv.utime_t::<anonymous struct>::tv_nsec' from
- '__u32 {aka unsigned int}' to 'long int' inside { } is
- ill-formed in C++11 [-Wnarrowing]
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 014fc6d6c1c68e2e3ad0117d08c4e46e4030d49e)
-
-commit a8964107ddf02ac4a6707a997e1b634c1084a3b9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jan 28 17:13:23 2013 -0800
-
- rgw: fix crash when missing content-type in POST object
-
- Fixes: #3941
- This fixes a crash when handling S3 POST request and content type
- is not provided.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit f41010c44b3a4489525d25cd35084a168dc5f537)
-
-commit 11e1f3acf0953e9ac38322c0423144eaabd7bb61
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 11 15:00:02 2013 -0800
-
- ReplicatedPG: make_snap_collection when moving snap link in snap_trimmer
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 88956e3186798058a1170803f8abfc0f3cf77a07)
-
-commit c9201d0e9de5f4766a2d9f4715eb7c69691964de
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 11 16:43:14 2013 -0800
-
- ReplicatedPG: correctly handle new snap collections on replica
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9e44fca13bf1ba39dbcad29111b29f46c49d59f7)
-
-commit 2efdfb41c1bc9128b76416630ee00a75de90c020
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sun Jan 27 18:08:15 2013 +0000
-
- mon: Elector: reset the acked leader when the election finishes and we lost
-
- Failure to do so will mean that we will always ack the same leader during
- an election started by another monitor. This had been working so far
- because we were still acking the existing leader if he was supposed to
- still be the leader; or we were acking a new potentially leader; or we
- would eventually fall behind on an election and start a new election
- ourselves, thus resetting the previously acked leader. While this wasn't
- something that mattered much until now, the timechecks code stumbled into
- this tiny issue and was failing hard at completing a round because there
- wouldn't be a reset before the election started -- timechecks are bound
- to election epochs.
-
- Fixes: #3854
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit c54781618569680898e77e151dd7364f22ac4aa1)
-
-commit a16c6f3dc278e19e66776ffde45de3ff0db46a6c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Dec 26 14:24:22 2012 -0800
-
- rbd: fix bench-write infinite loop
-
- I/O was continously submitted as long as there were few enough ops in
- flight. If the number of 'threads' was high, or caching was turned on,
- there would never be that many ops in flight, so the loop would continue
- indefinitely. Instead, submit at most io_threads ops per offset.
-
- Fixes: #3413
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit d81ac8418f9e6bbc9adcc69b2e7cb98dd4db6abb)
-
-commit 76f93751d3603e3fb5c4b9e14bfdac406d8d1a58
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Fri Jan 4 18:00:24 2013 -0800
-
- rbd: Don't call ProgressContext's finish() if there's an error.
-
- do_copy was different from the others; call pc.fail() on error and
- do not call pc.finish().
-
- Fixes: #3729
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 0978dc4963fe441fb67afecb074bc7b01798d59d)
-
-commit 10053b14623f9c19727cb4d2d3a6b62945bef5c1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jan 2 14:15:24 2013 -0800
-
- librbd: establish watch before reading header
-
- This eliminates a window in which a race could occur when we have an
- image open but no watch established. The previous fix (using
- assert_version) did not work well with resend operations.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit c4370ff03f8ab655a009cfd9ba3a0827d8c58b11)
-
-commit f666c617f6a5f8d94ce81461942c9f94a0775fb2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jan 2 12:32:33 2013 -0800
-
- Revert "librbd: ensure header is up to date after initial read"
-
- Using assert version for linger ops doesn't work with retries,
- since the version will change after the first send.
- This reverts commit e1776809031c6dad441cfb2b9fac9612720b9083.
-
- Conflicts:
-
- qa/workunits/rbd/watch_correct_version.sh
- (cherry picked from commit e0858fa89903cf4055889c405f17515504e917a0)
-
-commit 575a58666adbca83d15468899272e8c369e903e1
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 23 22:16:49 2013 -0800
-
- os/FileStore: only adjust up op queue for btrfs
-
- We only need to adjust up the op queue limits during commit for btrfs,
- because the snapshot initiation (async create) is currently
- high-latency and the op queue is quiesced during that period.
-
- This lets us revert 44dca5c, which disabled the extra allowance because
- it is generally bad for non-btrfs writeahead mode.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 38871e27eca5a34de78db23aa3663f6cb045d461)
-
-commit c9eb1b0a99b0e55f7d7343176dad17d1a53589a1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 24 10:52:46 2013 -0800
-
- common/HeartbeatMap: fix uninitialized variable
-
- Introduced by me in 132045ce085e8584a3e177af552ee7a5205b13d8. Thank you,
- valgrind!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 00cfe1d3af286ffab7660933415684f18449720c)
-
-commit e6bceeedb0b77d23416560bd951326587470aacb
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 25 11:31:29 2013 -0800
-
- sharedptr_registry: remove extaneous Mutex::Locker declaration
-
- For some reason, the lookup() retry loop (for when happened to
- race with a removal and grab an invalid WeakPtr) locked
- the lock again. This causes the #3836 crash since the lock
- is already locked. It's rare since it requires a lookup between
- invalidation of the WeakPtr and removal of the WeakPtr entry.
-
- Fixes: #3836
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 037900dc7a051ce2293a4ef9d0e71911b29ec159)
-
-commit 60888cafdc53d6b381cd634170646c12669e1754
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 24 12:02:09 2013 -0800
-
- FileStore: ping TPHandle after each operation in _do_transactions
-
- Each completed operation in the transaction proves thread
- liveness, a stuck thread should still trigger the timeouts.
-
- Fixes: #3928
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0c1cc687b6a40d3c6a26671f0652e1b51c3fd1af)
-
-commit 6b8a673f88cbaca2891834dd5d2137a0e076fd1e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 24 11:07:37 2013 -0800
-
- OSD: use TPHandle in peering_wq
-
- Implement _process overload with TPHandle argument and use
- that to ping the hb map between pgs and between map epochs
- when advancing a pg. The thread will still timeout if
- genuinely stuck at any point.
-
- Fixes: 3905
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit e0511f4f4773766d04e845af2d079f82f3177cb6)
-
-commit aa6d20aac22d4c14ff059dbc28e06b7a5e5d6de1
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 24 11:04:04 2013 -0800
-
- WorkQueue: add TPHandle to allow _process to ping the hb map
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 4f653d23999b24fc8c65a59f14905db6630be5b5)
-
-commit e66a75052a340b15693f08b05f7f9f5d975b0978
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 12:49:04 2013 -0800
-
- ReplicatedPG: handle omap > max_recovery_chunk
-
- span_of fails if len == 0.
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 8a97eef1f7004988449bd7ace4c69d5796495139)
-
-commit 44f0407a6b259e87803539ec9e942043de0cf35d
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 12:18:31 2013 -0800
-
- ReplicatedPG: correctly handle omap key larger than max chunk
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit c3dec3e30a85ecad0090c75a38f28cb83e36232e)
-
-commit 50fd6ac9f147a4418d64dfe08843402e7cfb4910
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 12:15:10 2013 -0800
-
- ReplicatedPG: start scanning omap at omap_recovered_to
-
- Previously, we started scanning omap after omap_recovered_to.
- This is a problem since the break in the loop implies that
- omap_recovered_to is the first key not recovered.
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 09c71f2f5ee9929ac4574f4c35fb8c0211aad097)
-
-commit 4b32eecba2e2bd8e8ea17e1888e6971d31e71439
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 11:50:13 2013 -0800
-
- ReplicatedPG: don't finish_recovery_op until the transaction completes
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 62a4b96831c1726043699db86a664dc6a0af8637)
-
-commit da34c77b93e3f880c01329711ab8eca7776b1830
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 11:35:47 2013 -0800
-
- ReplicatedPG: ack push only after transaction has completed
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 20278c4f77b890d5b2b95d2ccbeb4fbe106667ac)
-
-commit f9381c74931b80294e5df60f6d2e69c946b8fe88
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 23 11:13:28 2013 -0800
-
- ObjectStore: add queue_transactions with oncomplete
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 4d6ba06309b80fb21de7bb5d12d5482e71de5f16)
-
-commit e2560554f0568c30c786632723c5ce0c86043359
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 21:18:45 2013 -0800
-
- common/HeartbeatMap: inject unhealthy heartbeat for N seconds
-
- This lets us test code that is triggered by an unhealthy heartbeat in a
- generic way.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 132045ce085e8584a3e177af552ee7a5205b13d8)
-
-commit cbe8b5bca40fd63a382b1a903087e7c34b314985
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 18:08:22 2013 -0800
-
- os/FileStore: add stall injection into filestore op queue
-
- Allow admin to artificially induce a stall in the op queue. Forces the
- thread(s) to sleep for N seconds. We pause for 1 second increments and
- recheck the value so that a previously stalled thread can be unwedged by
- reinjecting a lower value (or 0). To stall indefinitely, just injust
- very large number.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 657df852e9c89bfacdbce25ea014f7830d61e6aa)
-
-commit beb6ca44cd0e7fc405360e6da974252cb76e7039
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 18:03:10 2013 -0800
-
- osd: do not join cluster if not healthy
-
- If our internal heartbeats are failing, do not send a boot message and try
- to join the cluster.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a4e78652cdd1698e8dd72dda51599348d013e5e0)
-
-commit 1ecdfca3a3b4985ebd182a5f399c7b15af258663
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 18:01:07 2013 -0800
-
- osd: hold lock while calling start_boot on startup
-
- This probably doesn't strictly matter because start_boot doesn't need the
- lock (currently) and few other threads should be running, but it is
- better to be consistent.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c406476c0309792c43df512dddb2fe0f19835e71)
-
-commit e120bf20b3c7213fbde20907e158792dd36c8e54
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 17:56:32 2013 -0800
-
- osd: do not reply to ping if internal heartbeat is not healthy
-
- If we find that our internal threads are stalled, do not reply to ping
- requests. If we do this long enough, peers will mark us down. If we are
- only transiently unhealthy, we will reply to the next ping and they will
- be satisfied. If we are unhealthy and marked down, and eventually recover,
- we will mark ourselves back up.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ad6b231127a6bfcbed600a7493ca3b66c68484d2)
-
-commit 5f396e2b9360401dfe4dc2afa6acc37df8580c80
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 22 17:53:40 2013 -0800
-
- osd: reduce op thread heartbeat default 30 -> 15 seconds
-
- If the thread stalls for 15 seconds, let our internal heartbeat fail.
- This will let us internally respond more quickly to a stalled or failing
- disk.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 61eafffc3242357d9add48be9308222085536898)
-
-commit fca288b718ef4582d65ff4b9d1fc87ba53d7fd8d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 21:02:01 2013 -0800
-
- osd: improve sub_op flag points
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 73a969366c8bbd105579611320c43e2334907fef)
-
-commit f13ddc8a2df401c37f6dc792eb93fc0cc45705e2
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 20:55:20 2013 -0800
-
- osd: refactor ReplicatedPG::do_sub_op
-
- PULL is the only case where we don't wait for active.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 23c02bce90c9725ccaf4295de3177e8146157723)
-
-commit d5e00f963f177745f0e0684d5977460b7ab59fbd
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 16:36:36 2013 -0800
-
- osd: make last state for slow requests more informative
-
- Report on the last event string, and pass in important context for the
- op event list, including:
-
- - which peers were sent sub ops and we are waiting for
- - which pg queue we are delayed by
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a1137eb3e168c2d00f93789e4d565c1584790df0)
-
-commit ab3a110cbe16b548bb96225656b64507aa67e78f
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 15:59:07 2013 -0800
-
- osd: dump op priority queue state via admin socket
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 24d0d7eb0165c8b8f923f2d8896b156bfb5e0e60)
-
-commit 43a65d04d8a13621a856baec85fb741971c13cb0
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 15:50:33 2013 -0800
-
- osd: simplify asok to single callback
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 33efe32151e04beaafd9435d7f86dc2eb046214d)
-
-commit d040798637da03e3df937181de156714fc62a550
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 15:58:57 2013 -0800
-
- common/PrioritizedQueue: dump state to Formatter
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 514af15e95604bd241d2a98a97b938889c6876db)
-
-commit 691fd505ad606bd8befd2b19113ee51a17a0a543
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 15:29:28 2013 -0800
-
- common/PrioritizedQueue: add min cost, max tokens per bucket
-
- Two problems.
-
- First, we need to cap the tokens per bucket. Otherwise, a stream of
- items at one priority over time will indefinitely inflate the tokens
- available at another priority. The cap should represent how "bursty"
- we allow a given bucket to be. Start with 4MB for now.
-
- Second, set a floor on the item cost. Otherwise, we can have an
- infinite queue of 0 cost items that start over queues. More
- realistically, we need to balance the overhead of processing small items
- with the cost of large items. I.e., a 4 KB item is not 1/1000th as
- expensive as a 4MB item.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6e3363b20e590cd9df89f2caebe71867b94cc291)
-
-commit a2b03fe08044b5c121ea6b4c2f9d19e73e4c83d1
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 14:52:54 2013 -0800
-
- common/PrioritizedQueue: buckets -> tokens
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c549a0cf6fae78c8418a3b4b0702fd8a1e4ce482)
-
-commit 612d75cdee0daf9dfca97831c249e1ac3fbd59fc
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 14:31:00 2013 -0800
-
- note puller's max chunk in pull requests
-
- this lets us calculate a cost value
- (cherry picked from commit 128fcfcac7d3fb66ca2c799df521591a98b82e05)
-
-commit 2224e413fba11795693025fa8f11c3f1fba4bbaa
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 14:14:25 2013 -0800
-
- osd: add OpRequest flag point when commit is sent
-
- With writeahead journaling in particular, we can get requests that
- stay in the queue for a long time even after the commit is sent to the
- client while we are waiting for the transaction to apply to the fs.
- Instead of showing up as 'waiting for subops', make it clear that the
- client has gotten its reply and it is local state that is slow.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b685f727d4c37a26cb78bd4a04cce041428ceb52)
-
-commit 5b5ca5926258e4f0b5041fb2c15b1c2f904c4adb
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 13:57:59 2013 -0800
-
- osd: set PULL subop cost to size of requested data
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a1bf8220e545f29b83d965f07b1abfbea06238b3)
-
-commit 10651e4f500d7b55d8c689a10a61d2239b3ecd26
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 13:57:38 2013 -0800
-
- osd: use Message::get_cost() function for queueing
-
- The data payload is a decent proxy for cost in most cases, but not all.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e8e0da1a577e24cd4aad71fb94d8b244e2ac7300)
-
-commit 9735c6b163f4d226d8de6508d5c1534d18f1c300
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 13:25:21 2013 -0800
-
- osd: debug msg prio, cost, latency
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bec96a234c160bebd9fd295df5b431dc70a2cfb3)
-
-commit c48279da7ad98013ce97eab89c17fe9fae1ba866
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 21:05:00 2013 -0800
-
- filestore: filestore_queue_max_ops 500 -> 50
-
- Having a deep queue limits the effectiveness of the priority queues
- above by adding additional latency.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 40654d6d53436c210b2f80911217b044f4d7643a)
-
-commit f47b2e8b607cc0d56a42ec7b1465ce6b8c0ca68c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 20:00:26 2013 -0800
-
- osd: target transaction size 300 -> 30
-
- Small transactions make pg removal nicer to the op queue. It also slows
- down PG deletion a bit, which may exacerbate the PG resurrection case
- until #3884 is addressed.
-
- At least on user reported this fixed an osd that kept failing due to
- an internal heartbeat failure.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1233e8617098766c95100aa9a6a07db1a688e290)
-
-commit 4947f0efadf9ef209d02fd17f5f86b9a7d6523ef
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 21 19:55:26 2013 -0800
-
- os/FileStore: allow filestore_queue_max_{ops,bytes} to be adjusted at runtime
-
- The 'committing' ones too.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cfe4b8519363f92f84f724a812aa41257402865f)
-
-commit ad6e6c91f61c092bfc9f88b788ccbee6438fd40b
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 22:06:27 2013 -0800
-
- osd: make osd_max_backfills dynamically adjustable
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 101955a6b8bfdf91f4229f4ecb5d5b3da096e160)
-
-commit 939b1855245bc9cb31f5762027f2ed3f2317eb55
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 18:28:35 2013 -0800
-
- osd: make OSD a config observer
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9230c863b3dc2bdda12c23202682a84c48f070a1)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit b0f27a8f81feb401407bed784bf5d4d799998ee0
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Jan 8 11:21:22 2013 -0800
-
- librbd: Allow get_lock_info to fail
-
- If the lock class isn't present, EOPNOTSUPP is returned for lock calls
- on newer OSDs, but sadly EIO on older; we need to treat both as
- acceptable failures for RBD images. rados lock list will still fail.
-
- Fixes #3744.
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4483285c9fb16f09986e2e48b855cd3db869e33c)
-
-commit 022a5254b4fac3f76220abdde2a2e81de33cb8dc
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 4 13:00:56 2013 -0800
-
- osd: drop newlines from event descriptions
-
- These produce extra newlines in the log.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 9a1f574283804faa6dbba9165a40558e1a6a1f13)
-
-commit ebc93a878c8b0697004a619d6aa957a80b8b7e35
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 18 14:35:51 2013 -0800
-
- OSD: do deep_scrub for repair
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 0cb760f31b0cb26f022fe8b9341e41cd5351afac)
-
-commit 32527fa3eb48a7d7d5d67c39bfa05087dbc0e41b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jan 14 12:52:04 2013 -0800
-
- ReplicatedPG: ignore snap link info in scrub if nlinks==0
-
- links==0 implies that the replica did not sent snap link information.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 70c3512037596a42ba6eb5eb7f96238843095db9)
-
-commit 13e42265db150b19511a5a618c7a95ad801290c8
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 11 12:25:22 2013 -0800
-
- osd/PG: fix osd id in error message on snap collection errors
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 381e25870f26fad144ecc2fb99710498e3a7a1d4)
-
-commit e3b6191fc45c7d2c27ec75c867be822a6da17e9a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 9 22:34:12 2013 -0800
-
- osd/ReplicatedPG: validate ino when scrubbing snap collections
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 665577a88b98390b9db0f9991836d10ebdd8f4cf)
-
-commit 353b7341caff86f936a429669de52e6949a89c2b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 9 16:41:40 2013 -0800
-
- ReplicatedPG: compare nlinks to snapcolls
-
- nlinks gives us the number of hardlinks to the object.
- nlinks should be 1 + snapcolls.size(). This will allow
- us to detect links which remain in an erroneous snap
- collection.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit e65ea70ea64025fbb0709ee8596bb2878be0bbdc)
-
-commit 33d5cfc8c080a270d65275f8e010a6468c77381a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 10 15:35:10 2013 -0800
-
- ReplicatedPG/PG: check snap collections during _scan_list
-
- During _scan_list check the snapcollections corresponding to the
- object_info attr on the object. Report inconsistencies during
- scrub_finalize.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 57352351bb86e0ae9f64f9ba0d460c532d882de6)
-
-commit bea783bd722d862a5018477a637c843fe4b18a58
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 9 11:53:52 2013 -0800
-
- osd_types: add nlink and snapcolls fields to ScrubMap::object
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit b85687475fa2ec74e5429d92ee64eda2051a256c)
-
-commit 0c48407bf46b39b2264a7be14e9d3caa2c1e5875
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 3 20:16:50 2013 -0800
-
- PG: move auth replica selection to helper in scrub
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 39bc65492af1bf1da481a8ea0a70fe7d0b4b17a3)
-
-commit c3433ce60ec3683217d8b4cd2b6e75fb749af2c6
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 18:23:52 2013 -0800
-
- mon: note scrub errors in health summary
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8e33a8b9e1fef757bbd901d55893e9b84ce6f3fc)
-
-commit 90c6edd0155b327c48a5b178d848d9e5839bd928
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 18:31:06 2013 -0800
-
- osd: fix rescrub after repair
-
- We were rescrubbing if INCONSISTENT is set, but that is now persistent.
- Add a new scrub_after_recovery flag that is reset on each peering interval
- and set that when repair encounters errors.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a586966a3cfb10b5ffec0e9140053a7e4ff105d2)
-
-commit 0696cf57283e6e9a3500c56ca5fc9f981475ca26
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 18:22:02 2013 -0800
-
- osd: note must_scrub* flags in PG operator<<
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d56af797f996ac92bf4e0886d416fd358a2aa08e)
-
-commit 1541ffe4bec6cce607c505271ff074fd0a292d30
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 18:21:46 2013 -0800
-
- osd: based INCONSISTENT pg state on persistent scrub errors
-
- This makes the state persistent across PG peering and OSD restarts.
-
- This has the side-effect that, on recovery, we rescrub any PGs marked
- inconsistent. This is new behavior!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2baf1253eed630a7c4ae4cb43aab6475efd82425)
-
-commit 609101255c81d977072b2ab741ac47167d9b1b16
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 18:20:29 2013 -0800
-
- osd: fix scrub scheduling for 0.0
-
- The initial value for pair<utime_t,pg_t> can match pg 0.0, preventing it
- from being manually scrubbed. Fix!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 26a63df97b2a12fd1a7c1e3cc9ccd34ca2ef9834)
-
-commit 0961a3a85c286a31ec2e8bba23217bbd3974572c
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 23:03:01 2013 -0800
-
- osd: note last_clean_scrub_stamp, last_scrub_errors
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 389bed5d338cf32ab14c9fc2abbc7bcc386b8a28)
-
-commit 8d823045538bf4c51506e349b5c6705fd76450f8
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 22:59:39 2013 -0800
-
- osd: add num_scrub_errors to object_stat_t
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2475066c3247774a2ad048a2e32968e47da1b0f5)
-
-commit 3a1cd6e07b4e2a4714de159f69afd689495e2927
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 22:43:35 2013 -0800
-
- osd: add last_clean_scrub_stamp to pg_stat_t, pg_history_t
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d738328488de831bf090f23e3fa6d25f6fa819df)
-
-commit 7e5a899bdcf6c08a5f6f5c98cd2fff7fa2dacaca
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 22:56:14 2013 -0800
-
- osd: fix object_stat_sum_t dump signedness
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6f6a41937f1bd05260a8d70b4c4a58ecadb34a2f)
-
-commit e252a313d465006d3fe4db97939ad307ebe91c71
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 22:04:58 2013 -0800
-
- osd: change scrub min/max thresholds
-
- The previous 'osd scrub min interval' was mostly meaningless and useless.
- Meanwhile, the 'osd scrub max interval' would only trigger a scrub if the
- load was sufficiently low; if it was high, the PG might *never* scrub.
-
- Instead, make the 'min' what the max used to be. If it has been more than
- this many seconds, and the load is low, scrub. And add an additional
- condition that if it has been more than the max threshold, scrub the PG
- no matter what--regardless of the load.
-
- Note that this does not change the default scrub interval for less-loaded
- clusters, but it *does* change the meaning of existing config options.
-
- Fixes: #3786
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 299548024acbf8123a4e488424c06e16365fba5a)
-
- Conflicts:
-
- PendingReleaseNotes
-
-commit 33aa64eee34f4759f6000130de4d1306de49d087
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 20:27:59 2013 -0800
-
- osd/PG: remove useless osd_scrub_min_interval check
-
- This was already a no-op: we don't call PG::scrub_sched() unless it has
- been osd_scrub_max_interval seconds since we last scrubbed. Unless we
- explicitly requested in, in which case we don't want this check anyway.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 16d67c798b6f752a6e03084bafe861396b86baae)
-
-commit fdd0c1ec3519376980a205b94e65187833634e2e
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 13 20:25:39 2013 -0800
-
- osd: move scrub schedule random backoff to seperate helper
-
- Separate this from the load check, which will soon vary dependon on the
- PG.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a148120776d0930b265411332a60e93abfbf0423)
-
-commit 9ffbe268f785e1a74c0d893735117edb7a3ef377
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 12 09:18:38 2013 -0800
-
- osd/PG: trigger scrub via scrub schedule, must_ flags
-
- When a scrub is requested, flag it and move it to the front of the
- scrub schedule instead of immediately queuing it. This avoids
- bypassing the scrub reservation framework, which can lead to a heavier
- impact on performance.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 62ee6e099a8e4873287b54f9bba303ea9523d040)
-
-commit cffb1b22d5df7300ec411d2b620bf3c4a08351cd
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 12 09:15:16 2013 -0800
-
- osd/PG: introduce flags to indicate explicitly requested scrubs
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1441095d6babfacd781929e8a54ed2f8a4444467)
-
-commit 438e3dfc88bfdc8eb36b5b5f7b728b2610476724
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 12 09:14:01 2013 -0800
-
- osd/PG: move scrub schedule registration into a helper
-
- Simplifies callers, and will let us easily modify the decision of when
- to schedule the PG for scrub.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 796907e2159371f84a16cbd35f6caa8ac868acf6)
-
-commit acb47e4d7dc9682937984661a9d754131d806630
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 12:14:48 2013 -0800
-
- os/FileStore: only flush inline if write is sufficiently large
-
- Honor filestore_flush_min in the inline flush case.
-
- Backport: bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 49726dcf973c38c7313ab78743b45ccc879671ea)
-
-commit 15a1ced859629c361da127799b05620bee84c9a8
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 12:14:40 2013 -0800
-
- os/FileStore: fix compile when sync_file_range is missing;
-
- If sync_file_range is not present, we always close inline, and flush
- via fdatasync(2).
-
- Fixes compile on ancient platforms like RHEL5.8.
-
- Backport: bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 8ddb55d34c72e6df1023cf427cbd41f3f98da402)
-
-commit 9dddb9d855e6d5fd804b54bff1f726c1d2fb566c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 15:23:22 2013 -0800
-
- osd: set pg removal transactions based on configurable
-
- Use the osd_target_transaction_size knob, and gracefully tolerate bogus
- values (e.g., <= 0).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5e00af406b89c9817e9a429f92a05ca9c29b19c3)
-
-commit c30d231e40a17c3fb08d1db5e01133466170e90c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 15:30:06 2013 -0800
-
- osd: make pg removal thread more friendly
-
- For a large PG these are saturating the filestore and journal queues. Do
- them synchronously to make them more friendly. They don't need to be fast.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4712e984d3f62cdf51ea67da8197eed18a5983dd)
-
-commit b2bc4b95fefaeb0cfc31ce0bc95b77062d0777c7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 15:27:24 2013 -0800
-
- os: move apply_transactions() sync wrapper into ObjectStore
-
- This has nothing to do with the backend implementation.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bc994045ad67fb70c7a0457b8cd29273dd5d1654)
-
-commit 6d161b57979246ddea4e6309e0e489ab729eec4b
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 15:28:24 2013 -0800
-
- os: add apply_transaction() variant that takes a sequencer
-
- Also, move the convenience wrappers into the interface and funnel through
- a single implementation.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f6c69c3f1ac35546b90315fff625993ba5cd8c07)
-
-commit c5fe0965572c074a2a33660719ce3222d18c1464
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 20 16:11:10 2013 -0800
-
- osd: calculate initial PG mapping from PG's osdmap
-
- The initial values of up/acting need to be based on the PG's osdmap, not
- the OSD's latest. This can cause various confusion in
- pg_interval_t::check_new_interval() when calling OSDMap methods due to the
- up/acting OSDs not existing yet (for example).
-
- Fixes: #3879
- Reported-by: Jens Kristian S?gaard <jens@mermaidconsulting.dk>
- Tested-by: Jens Kristian S?gaard <jens@mermaidconsulting.dk>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 17160843d0c523359d8fa934418ff2c1f7bffb25)
-
-commit 6008b1d8e4587d5a3aea60684b1d871401496942
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 17 15:01:35 2013 -0800
-
- osdmap: make replica separate in default crush map configurable
-
- Add 'osd crush chooseleaf type' option to control what the default
- CRUSH rule separates replicas across. Default to 1 (host), and set it
- to 0 in vstart.sh.
-
- Fixes: #3785
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit c236a51a8040508ee893e4c64b206e40f9459a62)
-
-commit 5fb77bf1d1b241b4f9c1fe9e57288bbc84d8d97d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 16 14:09:53 2013 -0800
-
- ceph: adjust crush tunables via 'ceph osd crush tunables <profile>'
-
- Make it easy to adjust crush tunables. Create profiles:
-
- legacy: the legacy values
- argonaut: the argonaut defaults, and what is supported.. legacy! (*(
- bobtail: best that bobtail supports
- optimal: the current optimal values
- default: the current default values
-
- * In actuality, argonaut supports some of the tunables, but it doesn't
- say so via the feature bits.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 19ee23111585f15a39ee2907fa79e2db2bf523f0)
-
-commit 8c0d702e6f2ba0ed0fe31c06c7a028260ae08e42
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Dec 28 17:20:43 2012 -0800
-
- msg/Pipe: use state_closed atomic_t for _lookup_pipe
-
- We shouldn't look at Pipe::state in SimpleMessenger::_lookup_pipe() without
- holding pipe_lock. Instead, use an atomic that we set to non-zero only
- when transitioning to the terminal STATE_CLOSED state.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 82f8bcddb5fa09913eb477ee26c71d6b4bb8d97c)
-
-commit 8e0359c3e586c0edcce769c8ed1a03444a521165
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Dec 23 13:43:15 2012 -0800
-
- msgr: inject delays at inconvenient times
-
- Exercise some rare races by injecting delays before taking locks
- via the 'ms inject internal delays' option.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a5d692a7b9b4bec2c27993ca37aa3fec4065292b)
-
-commit 34e2d4024700f633c2c586265efb61537342db18
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Dec 23 09:22:18 2012 -0800
-
- msgr: fix race on Pipe removal from hash
-
- When a pipe is faulting and shutting down, we have to drop pipe_lock to
- take msgr lock and then remove the entry. The Pipe in this case will
- have STATE_CLOSED. Handle this case in all places we do a lookup on
- the rank_pipe hash so that we effectively ignore entries that are
- CLOSED.
-
- This fixes a race introduced by the previous commit where we won't use
- the CLOSED pipe and try to register a new one, but the old one is still
- registered.
-
- See bug #3675.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e99b4a307b4427945a4eb5ec50e65d6239af4337)
-
-commit ae1882e7efc91b770ac0ac8682ee6c5792a63a93
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Dec 23 09:19:05 2012 -0800
-
- msgr: don't queue message on closed pipe
-
- If we have a con that refs a pipe but it is closed, don't use it. If
- the ref is still there, it is only because we are racing with fault()
- and it is about to (or just was) be detached. Either way,
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6339c5d43974f4b495f15d199e01a141e74235f5)
-
-commit 373f1671b6cb64dba5a9172967b27177515be1fd
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Dec 22 21:24:52 2012 -0800
-
- msgr: atomically queue first message with connect_rank
-
- Atomically queue the first message on the new pipe, without dropping
- and retaking pipe_lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7bf0b0854d1f2706a3a2302bcbf92dd5c8c888ef)
-
-commit 82f22b38c5dc0b636574679ba1fee1b36a3c0478
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jan 10 11:06:02 2013 -0800
-
- config_opts.h: default osd_recovery_delay_start to 0
-
- This setting was intended to prevent recovery from overwhelming peering traffic
- by delaying the recovery_wq until osd_recovery_delay_start seconds after pgs
- stop being added to it. This should be less necessary now that recovery
- messages are sent with strictly lower priority then peering messages.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Gregory Farnum <greg@inktank.com>
- (cherry picked from commit 44625d4460f61effe2d63d8280752f10f159e7b4)
-
-commit 81e8bb55e28384048fd82116a791a65ca52ef999
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 16 21:19:18 2013 -0800
-
- osdmaptool: more fix cli test
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b0162fab3d927544885f2b9609b9ab3dc4aaff74)
-
-commit 2b5b2657579abdf5b1228f4c5c5ac8cec3706726
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 16 21:10:26 2013 -0800
-
- osdmaptool: fix cli test
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5bd8765c918174aea606069124e43c480c809943)
-
-commit f739d1238a8a67598c037b6e2ed5d539a2d79996
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 16 14:21:47 2013 -0800
-
- osdmaptool: allow user to specify pool for test-map-object
-
- Fixes: #3820
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Gregory Farnum <greg@inktank.com>
- (cherry picked from commit 85eb8e382a26dfc53df36ae1a473185608b282aa)
-
-commit 00759ee08f5dc62cbe4f237399f298472f6d8f4a
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Jan 16 12:41:16 2013 -0800
-
- rados.cc: fix rmomapkey usage: val not needed
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Reviewed-by: Samuel Just <samuel.just@inktank.com>
- (cherry picked from commit 625c3cb9b536a0cff7249b8181b7a4f09b1b4f4f)
-
-commit 06b3270f679be496df41810dacf863128b0cfcaa
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jan 15 21:27:23 2013 -0800
-
- librados.hpp: fix omap_get_vals and omap_get_keys comments
-
- We list keys greater than start_after.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3f0ad497b3c4a5e9bef61ecbae5558ae72d4ce8b)
-
-commit 75072965201380aa55a8e15f9db4ccaf4d34d954
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jan 15 21:26:22 2013 -0800
-
- rados.cc: use omap_get_vals_by_keys in getomapval
-
- Fixes: #3811
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit cb5e2be418924cf8b2c6a6d265a7a0327f08d00a)
-
-commit a3c2980fccfe95b7d094a7c93945437c3911b858
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jan 15 21:24:50 2013 -0800
-
- rados.cc: fix listomapvals usage: key,val are not needed
-
- Fixes: #3812
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 44c45e520cc2e60c6c803bb245edb9330bff37e4)
-
-commit 20b27a1ce71c379a3b2a29d282dc0689a3a0df46
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jan 16 15:01:47 2013 -0800
-
- rgw: copy object should not copy source acls
-
- Fixes: #3802
- Backport: argonaut, bobtail
-
- When using the S3 api and x-amz-metadata-directive is
- set to COPY we used to copy complete metadata of source
- object. However, this shouldn't include the source ACLs.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 37dbf7d9df93dd0e92019be31eaa1a19dd9569c7)
-
-commit 3293b31b44c9adad2b5e37da9d5342a6e4b72ade
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 11 11:02:15 2013 -0800
-
- OSD: only trim up to the oldest map still in use by a pg
-
- map_cache.cached_lb() provides us with a lower bound across
- all pgs for in-use osdmaps. We cannot trim past this since
- those maps are still in use.
-
- backport: bobtail
- Fixes: #3770
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 66eb93b83648b4561b77ee6aab5b484e6dba4771)
-
-commit 898a4b19ecc6fffc33feb198f37182ec0a6e77e9
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 14 08:15:02 2013 -0800
-
- Revert "osdmap: spread replicas across hosts with default crush map"
-
- This reverts commit 503917f0049d297218b1247dc0793980c39195b3.
-
- This breaks vstart and teuthology configs. A better fix is coming.
-
-commit 55b7dd3248f35929ea097525798e8667fafbf161
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jan 10 18:54:12 2013 +0000
-
- mon: OSDMonitor: don't output to stdout in plain text if json is specified
-
- Fixes: #3748
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 410906e04936c935903526f26fb7db16c412a711)
-
-commit 015a454a0c046cb678991cc4f4d53fb58c41dbe4
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 11 17:23:22 2013 -0800
-
- osdmap: spread replicas across hosts with default crush map
-
- This is more often the case than not, and we don't have a good way to
- magically know what size of cluster the user will be creating. Better to
- err on the side of doing the right thing for more people.
-
- Fixes: #3785
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 7ea5d84fa3d0ed3db61eea7eb9fa8dbee53244b6)
-
-commit d882d053927c319274be38a247f2beabb4e06b64
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jan 9 19:17:23 2013 -0800
-
- ReplicatedPG: fix snapdir trimming
-
- The previous logic was both complicated and not correct. Consequently,
- we have been tending to drop snapcollection links in some cases. This
- has resulted in clones incorrectly not being trimmed. This patch
- replaces the logic with something less efficient but hopefully a bit
- clearer.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0f42c37359d976d1fe90f2d3b877b9b0268adc0b)
diff --git a/src/ceph/doc/changelog/v0.56.3.txt b/src/ceph/doc/changelog/v0.56.3.txt
deleted file mode 100644
index c87675a..0000000
--- a/src/ceph/doc/changelog/v0.56.3.txt
+++ /dev/null
@@ -1,562 +0,0 @@
-commit 6eb7e15a4783b122e9b0c85ea9ba064145958aa5
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Feb 13 10:10:20 2013 -0800
-
- v0.56.3
-
-commit f5eb845a0f7a2c28d3a88a37479bcb34f882f40c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Feb 8 13:14:49 2013 -0800
-
- rgw: change json formatting for swift list container
-
- Fixes: #4048
- There is some difference in the way swift formats the
- xml output and the json output for list container. In
- xml the entity is named 'name' and in json it is named
- 'subdir'.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 3e4d79fe42dfc3ca70dc4d5d2aff5223f62eb34b)
-
-commit f21543f0d88f7bacb69cef3712b0ce087f386e93
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 11 17:08:55 2013 -0800
-
- librbd: unprotect any non-unprotected snapshot
-
- Include snapshots in the UNPROTECTING state as well, which can occur
- after an unprotect is interrupted.
-
- Fixes: #4100
- Backport: bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit fe283813b44a7c45def6768ea0788a3a0635957e)
-
-commit 65969f8fbef02ee39f6c2365fffbcd3f633f4b37
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 8 21:36:13 2013 -0800
-
- java: make CephMountTest use user.* xattr names
-
- Changes to the xattr code in Ceph require
- a few tweaks to existing test cases.
- Specifically, there is now a ceph.file.layout
- xattr by default and user defined xattrs
- are prepended with "user."
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joe Buck <jbbuck@gmail.com>
- Reviewed-by: Noah Watkins <noahwatkins@gmail.com>
-
-commit 14fddc3ce85d3695aad9d3597f8f50dba5960a86
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 8 09:59:25 2013 -0800
-
- mon: fix typo in C_Stats
-
- Broken by previous commit.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3cf3710be0b4cccc8de152a97be50d983c35116d)
-
-commit 0453140d187016a61950a8836da57f54d2c34602
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 7 23:13:11 2013 -0800
-
- mon: retry PGStats message on EAGAIN
-
- If we get EAGAIN from a paxos restart/election/whatever, we should
- restart the message instead of just blindly acking it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit 4837063d447afb45554f55bb6fde1c97559acd4b)
-
-commit e68fcec78286363935cf731015108b9ea36b50a6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 7 22:06:14 2013 -0800
-
- mon: handle -EAGAIN in completion contexts
-
- We can get ECANCELED, EAGAIN, or success out of the completion contexts,
- but in the EAGAIN case (meaning there was an election) we were sending
- a success to the client. This resulted in client hangs and all-around
- confusion when the monitor cluster was thrashing.
-
- Backport: bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit 17827769f1fe6d7c4838253fcec3b3a4ad288f41)
-
-commit 20ec490555728251444833520a40b20dc8015216
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 14:11:09 2013 -0800
-
- osd: only share maps on hb connection of OSD_HBMSGS feature is set
-
- Back in 1bc419a7affb056540ba8f9b332b6ff9380b37af we started sharing maps
- with dead osds via the heartbeat connection, but old code will crash on an
- unexpected message. Only do this if the OSD_HBMSGS feature is present.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 302b26ff70ee5539da3dcb2e5614e2b7e83b9dcd)
-
-commit cbf63b633e7a59456f503af487fd4ad2607bbd76
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 14:10:51 2013 -0800
-
- osd: tolerate unexpected messages on the heartbeat interface
-
- We should note but not crash on unexpected messages. Announce this awesome
- new "capability" via a feature bit.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit afda30aeaae0a65f83c6886658354ad2b57c4c43)
-
- Conflicts:
-
- src/include/ceph_features.h
-
-commit 102a519632f1b7a0fede9a3fbd4a5c1df0e732a5
-Merge: 2c6afa0 2ebf4d0
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 13:39:52 2013 -0800
-
- Merge remote-tracking branch 'gh/wip-bobtail-osd-msgr' into bobtail
-
-commit 2c6afa058e8b1738c1400392320482945834de86
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 30 11:32:23 2013 -0800
-
- test_libcephfs: fix xattr test
-
- Ignore the ceph.*.layout xattrs.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b0d4dd21c7be86eb47728a4702a3c67ca44424ac)
-
-commit f11beb954976f66bfae75e847937f84958ebeaf3
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 7 22:51:29 2013 -0800
-
- radosgw-admin: fix cli test
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1b05b0edbac09d1d7cf0da2e536829df05e48573)
-
-commit ec1085e534eb39d999775bebdcdb997f893a04ae
-Merge: 66d7758 62ed62f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 7 23:25:30 2013 -0800
-
- Merge remote-tracking branch 'gh/wip-bobtail-vxattrs' into bobtail
-
-commit 66d775858004d1d4e8a138b8d33a3799e03ce26e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 4 09:14:39 2013 -0800
-
- mon: enforce reweight be between 0..1
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit 4e29c95d6f61daa838888840cef0cceedc0fcfdd)
-
-commit 8bab3a1c3d0d2f619ddf885bb9050ad9a1c43517
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Feb 7 10:38:00 2013 -0800
-
- PG: dirty_info on handle_activate_map
-
- We need to make sure the pg epoch is persisted during
- activate_map.
-
- Backport: bobtail
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit dbce1d0dc919e221523bd44e1d0834711da1577d)
-
-commit dffa386bc13370c0ef56acf740b5200b2054980f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 7 10:21:49 2013 -0800
-
- osd: flush peering queue (consume maps) prior to boot
-
- If the osd itself is behind on many maps during boot, it will get more and
- (as part of that) flush the peering wq to ensure the pgs consume them.
- However, it is possible for OSD to have latest/recnet maps, but pgs to be
- behind, and to jump directly to boot and join. The OSD is then laggy and
- unresponsive because the peering wq is way behind.
-
- To avoid this, call consume_map() (kick the peering wq) at the end of
- init and flush it to ensure we are *internally* all caught up before we
- consider joining the cluster.
-
- I'm pretty sure this is the root cause of #3905 and possibly #3995.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit af95d934b039d65d3667fc022e2ecaebba107b01)
-
-commit 47c9f46aac4afac37fb6ec72f0482e61f5e0d798
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Feb 6 17:10:00 2013 -0800
-
- rgw: a tool to fix clobbered bucket info in user's bucket list
-
- This fixes bad entries in user's bucket list that may have occured
- due to issue #4039. Syntax:
-
- $ radosgw-admin user check --uid=<uid> [--fix]
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9cb6c33f0e2281b66cc690a28e08459f2e62ca13)
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit 6c8d63819fde1b6854f8fc03351465b420ff1bdc
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Feb 6 16:43:48 2013 -0800
-
- rgw: bucket recreation should not clobber bucket info
-
- Fixes: #4039
- User's list of buckets is getting modified even if bucket already
- exists. This fix removes the newly created directory object, and
- makes sure that user info's data points at the correct bucket.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9d006ec40ced9d97b590ee07ca9171f0c9bec6e9)
-
- Conflicts:
- src/rgw/rgw_op.cc
- src/rgw/rgw_rados.cc
-
-commit cc167914ac9603f87083c63f2cbc8dac9441329f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Feb 5 14:50:54 2013 -0800
-
- rgw: a tool to fix buckets with leaked multipart references
-
- Checks specified bucket for the #4011 symptoms, optionally fix
- the issue.
-
- sytax:
- radosgw-admin bucket check --bucket=<bucket> [--fix]
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 2d8faf8e5f15e833e6b556b0f3c4ac92e4a4151e)
-
- Conflicts:
- src/rgw/rgw_admin.cc
- src/rgw/rgw_rados.h
-
-commit 4d6964fc7ddd23806e225c95bcb90ef93e4d23a1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Feb 5 13:54:11 2013 -0800
-
- rgw: radosgw-admin object unlink
-
- Add a radosgw-admin option to remove object from bucket index
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 16235a7acb9543d60470170bb2a09956364626cd)
-
- Conflicts:
- src/rgw/rgw_admin.cc
- src/rgw/rgw_rados.h
- src/test/cli/radosgw-admin/help.t
-
-commit 2ebf4d065af3dc2e581a25b921071af3efb57f8a
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 09:30:00 2013 -0800
-
- osd: kill unused addr-based send_map()
-
- Not used, old API, bad.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e359a862199c8a94cb238f7271ba1b0edcc0863c)
-
-commit bac5b144b27f32da306161ae7018ccc337704121
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 09:29:37 2013 -0800
-
- osd: share incoming maps via Connection*, not addrs
-
- Kill a set of parallel methods that are using the old addr/inst-based
- msgr APIs, and instead use Connection handles. This is much safer and gets
- us closer to killing the old msgr API.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5e2fab54a4fdf2f59e2b635cbddef8a5909acb7c)
-
-commit 9ca3a165ded62313ba153d7bab89dadf3f73999f
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 09:27:00 2013 -0800
-
- osd: pass new maps to dead osds via existing Connection
-
- Previously we were sending these maps to dead osds via their old addrs
- using a new outgoing connection and setting the flags so that the msgr
- would clean up. That mechanism is possibly buggy and fragile, and we can
- avoid it entirely if we just reuse the existing heartbeat Connection.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1bc419a7affb056540ba8f9b332b6ff9380b37af)
-
-commit 4cb28b6ed5a702fdac99b8ec71233ef7f877a7a2
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 09:25:28 2013 -0800
-
- osd: requeue osdmaps on heartbeat connections for cluster connection
-
- If we receive an OSDMap on the cluster connection, requeue it for the
- cluster messenger, and process it there where we normally do. This avoids
- any concerns about locking and ordering rules.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 76705ace2e9767939aa9acf5d9257c800f838854)
-
-commit e4f7ff8c288eac8a8b57382f11a4b6f93682315a
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 09:23:23 2013 -0800
-
- msgr: add get_loopback_connection() method
-
- Return the Connection* for ourselves, so we can queue messages for
- ourselves.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a7059eb3f3922cf08c1e5bb5958acc2d45952482)
-
-commit 62ed62f5e2fb068cee38612d7974526aa1b3c759
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 11:33:04 2013 -0800
-
- qa: add layout_vxattrs.sh test script
-
- Test virtual xattrs for file and directory layouts.
-
- TODO: create a data pool, add it to the fs, and make sure we can use it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 61fbe27a52d12ecd98ddeb5fc0965c4f8ee7841a)
-
-commit d386622c3961a3b57eea42fdb82611cd2e904f4d
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 10:11:18 2013 -0800
-
- mds: allow dir layout/policy to be removed via removexattr on ceph.dir.layout
-
- This lets a user remove a policy that was previously set on a dir.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit db31a1f9f27416e4d531fda716e32d42a275e84f)
-
-commit 6af5da7ae2c4ef95c16c6460770b6244d1aa1a6e
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 10:09:39 2013 -0800
-
- mds: handle ceph.*.layout.* setxattr
-
- Allow individual fields of file or dir layouts to be set via setxattr.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ebebf72f0993d028e795c78a986e1aee542ca5e0)
-
-commit c0af056eb9bdb62cfd8a6f9054a3a3c78c8e7447
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 4 22:03:32 2013 -0800
-
- mdsmap: backported is_data_pool()
-
- This roughly corresponds to mainline commit 99d9e1d.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 0407af4641ea19697f8feb0f48a92cde8dd4fbe4
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 10:04:05 2013 -0800
-
- mds: fix client view of dir layout when layout is removed
-
- We weren't handling the case where the projected node has NULL for the
- layout properly. Fixes the client's view when we remove the dir layout.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 09f28541e374ffac198e4d48082b064aae93cb2c)
-
-commit 8ce834d3f50b00fdd59cd237f3fb5fef1d57e1dd
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 10:04:39 2013 -0800
-
- client: note presence of dir layout in inode operator<<
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 84751489ca208964e617516e04556722008ddf67)
-
-commit 99824b93cec93daaa0d536f031eb3b6180f94e3b
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 19 09:05:59 2013 -0800
-
- client: list only aggregate xattr, but allow setting subfield xattrs
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ba32ea9454d36072ec5ea3e6483dc3daf9199903)
-
-commit 809cff488ea1ffa299edd678ba6260993771bde3
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 22:26:00 2013 -0800
-
- client: implement ceph.file.* and ceph.dir.* vxattrs
-
- Display ceph.file.* vxattrs on any regular file, and ceph.dir.* vxattrs
- on any directory that has a policy set.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3f82912a891536dd7e930f98e28d9a8c18fab756)
-
-commit 13babca354d9fbe255de8bae9608a0c158bf6c40
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 17:21:37 2013 -0800
-
- client: move xattr namespace enforcement into internal method
-
- This captures libcephfs users now too.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit febb96509559084357bfaabf7e4d28e494c274aa)
-
-commit 65ab51740175254ba3ee050f0fd97332dffe2eb7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 18 17:20:22 2013 -0800
-
- client: allow ceph.* xattrs
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ad7ebad70bf810fde45067f78f316f130a243b9c)
-
-commit 6f3c1cd2cc07d951dfc23e523b9c6400b7c77c72
-Author: caleb miles <caselim@gmail.com>
-Date: Mon Jan 14 12:16:12 2013 -0500
-
- rgw_rest: Make fallback uri configurable.
-
- Some HTTP servers, notabily lighttp, do not set SCRIPT_URI, make the fallback
- string configurable.
-
- Signed-off-by: caleb miles <caleb.miles@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b3a2e7e955547a863d29566aab62bcc480e27a65)
-
- Conflicts:
- src/rgw/rgw_rest.cc
-
-commit f57d1b4c8cc4d08c6147423d7881be55ed2e88d9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Feb 1 10:56:11 2013 -0800
-
- rgw: fix setting of NULL to string
-
- Fixes: #3777
- s->env->get() returns char * and not string and can return NULL.
- Also, remove some old unused code.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9019fbbe8f84f530b6a8700dfe99dfeb03e0ed3d)
-
-commit 55687240b2de20185524de07e67f42c3b1ae6592
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jan 11 10:44:04 2013 -0800
-
- OSD: check for empty command in do_command
-
- Fixes: #3878
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 8cf79f252a1bcea5713065390180a36f31d66dfd)
-
-commit c3468f76a5e68a6426f03e508d8ecf26950fca2a
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Jan 30 18:52:24 2013 +0100
-
- PGMap: fix -Wsign-compare warning
-
- Fix -Wsign-compare compiler warning:
-
- mon/PGMap.cc: In member function 'void PGMap::apply_incremental
- (CephContext*, const PGMap::Incremental&)':
- mon/PGMap.cc:247:30: warning: comparison between signed and
- unsigned integer expressions [-Wsign-compare]
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b571f8ee2d22a3894120204bc5f119ff37e1de53)
-
-commit 5a6b9af90f00d08ef97b34ee0b5abc7b0b63e72b
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jan 28 19:46:33 2013 -0800
-
- mon: smooth pg stat rates over last N pgmaps
-
- This smooths the recovery and throughput stats over the last N pgmaps,
- defaulting to 2.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a7d15afb529615db56bae038b18b66e60d827a96)
-
-commit 7fd7a5eed19d5ab508d5fe11ff8734bc2bc8c565
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 19:51:40 2013 -0800
-
- mon/PGMap: report IO rates
-
- This does not appear to be very accurate; probably the stat values we're
- displaying are not being calculated correctly.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3f6837e022176ec4b530219043cf12e009d1ed6e)
-
-commit 7f149cf6730280f0e633d9f5ef3f0f95c5a5e430
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 19:51:14 2013 -0800
-
- mon/PGMap: report recovery rates
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 208b02a748d97378f312beaa5110d8630c853ced)
-
-commit 8d2d396c6d02bff72aca53920e9ac93fe91428d3
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 19:50:45 2013 -0800
-
- mon/PGMap: include timestamp
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 76e9fe5f06411eb0e96753dcd708dd6e43ab2c02)
-
-commit 8ab77bd4b510149f4df6b3134de0ef59272cec71
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 19:49:16 2013 -0800
-
- osd: track recovery ops in stats
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a2495f658c6d17f56ea0a2ab1043299a59a7115b)
-
-commit 8fd8534b4b808292a4b7c6b9f2f866c431cf9645
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 19:06:52 2013 -0800
-
- osd_types: add recovery counts to object_sum_stats_t
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4aea19ee60fbe1106bdd71de2d172aa2941e8aab)
diff --git a/src/ceph/doc/changelog/v0.56.4.txt b/src/ceph/doc/changelog/v0.56.4.txt
deleted file mode 100644
index f48fd83..0000000
--- a/src/ceph/doc/changelog/v0.56.4.txt
+++ /dev/null
@@ -1,1126 +0,0 @@
-commit 63b0f854d1cef490624de5d6cf9039735c7de5ca
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Mon Mar 25 11:02:31 2013 -0700
-
- v0.56.4
-
-commit 90ab120a3c08f30654207c9c67fb0a4ff1476aff
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Mar 25 09:50:33 2013 -0700
-
- rgw: bucket index ops on system buckets shouldn't do anything
-
- Fixes: #4508
- Backport: bobtail
- On certain bucket index operations we didn't check whether
- the bucket was a system bucket, which caused the operations
- to fail. This triggered an error message on bucket removal
- operations.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 70e0ee8ba955322832f0c366537ddf7a0288761e)
-
-commit b8657fa08d0fe176c71a60c1654c53c3156a9c53
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 25 15:02:50 2013 -0800
-
- systest: restrict list error acceptance
-
- Only ignore errors after the midway point if the midway_sem_post is
- defined.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 5b24a68b6e7d57bac688021b822fb2f73494c3e9)
-
-commit 5af3d64f62b30cbaac13ccc7c23fc884ee1b7ae3
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 25 14:55:34 2013 -0800
-
- systest: fix race with pool deletion
-
- The second test have pool deletion and object listing wait on the same
- semaphore to connect and start. This led to errors sometimes when the
- pool was deleted before it could be opened by the listing process. Add
- another semaphore so the pool deletion happens only after the listing
- has begun.
-
- Fixes: #4147
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit b0271e390564119e998e18189282252d54f75eb6)
-
-commit 3569489b541ac0643520d20b08c788c26dfaff7f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Mar 19 14:26:16 2013 -0700
-
- os/FileJournal: fix aio self-throttling deadlock
-
- This block of code tries to limit the number of aios in flight by waiting
- for the amount of data to be written to grow relative to a function of the
- number of aios. Strictly speaking, the condition we are waiting for is a
- function of both aio_num and the write queue, but we are only woken by
- changes in aio_num, and were (in rare cases) waiting when aio_num == 0 and
- there was no possibility of being woken.
-
- Fix this by verifying that aio_num > 0, and restructuring the loop to
- recheck that condition on each wakeup.
-
- Fixes: #4079
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit e5940da9a534821d0d8f872c13f9ac26fb05a0f5)
-
-commit 664ffa7d2178e486b00fa0706067f19b1bb9ab82
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 22 13:25:49 2013 -0700
-
- common/MemoryModel: remove logging to /tmp/memlog
-
- This was a hack for dev purposes ages ago; remove it. The predictable
- filename is a security issue.
-
- CVE-2013-1882
-
- Reported-by: Michael Scherer <misc@zarb.org>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit c524e2e01da41ab5b6362c117939ea1efbd98095)
-
-commit 901fa435bb4be29b72cec39e5ff77570d13cbc6c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 22 13:25:43 2013 -0700
-
- init-ceph: clean up temp ceph.conf filename on exit
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 6a7ad2eac1db6abca3d7edb23ca9b80751400a23)
-
-commit 951f7e562afb4ae91b8d037ef793a96779461e96
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 22 13:25:33 2013 -0700
-
- init-ceph: push temp conf file to a unique location on remote host
-
- The predictable file name is a security problem.
-
- CVE-2013-1882
-
- Reported-by: Michael Scherer <misc@zarb.org>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 051734522fea92878dd8139f28ec4e6b01371ede)
-
-commit dd670afccfd3ae58c03ea3b4c213dd8db22f618e
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 22 13:25:23 2013 -0700
-
- mkcephfs: make remote temp directory name unique
-
- The predictable file name is a security problem.
-
- CVE-2013-1882
-
- Reported-by: Michael Scherer <misc@zarb.org>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit f463ef78d77b11b5ad78b31e9a3a88d0a6e62bca)
-
-commit 1cd51eb63a91fa0aa395c41572cfee4d53fbc7f5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Mar 22 13:51:14 2013 -0700
-
- PG::GetMissing: need to check need_up_thru in MLogRec handler
-
- Backport: bobtail
- Fixes: #4534
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4fe4deafbe1758a6b3570048aca57485bd562440)
-
-commit d866814285667c7f9cd9205dca6cf95f3634c5fc
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Mar 22 13:48:49 2013 -0700
-
- PG,osd_types: improve check_new_interval debugging
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d611eba9caf45f2d977c627b123462a073f523a4)
-
-commit fc3406f395103737e5784611e2b38fd1c4f26369
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Mar 5 16:06:20 2013 -0800
-
- FileStore: fix reversed collection_empty return value
-
- Backport: bobtail
- Fixes: #4380
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 7a434d10da0f77e1b329de0b06b6645cd73cc81b)
-
- Conflicts:
- src/os/FileStore.cc
-
-commit 9f7c6ad395653b1039ea957cfaa7689699f510e7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Feb 11 12:52:07 2013 -0800
-
- FileStore: set replay guard on create_collection
-
- This should prevent sequences like:
-
- rmcoll a
- mkcoll a
- touch a foo
- <crash>
-
- from causing trouble by preventing the rmcoll
- and mkcoll from being replayed.
-
- Fixes: 4064
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 411770c45734c9827745ddc4018d86c14f2858a6)
-
-commit 9932c9f0a0503f1902549a3c39e5d51488fff3ef
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Feb 11 12:24:14 2013 -0800
-
- FileStore: _split_collection should not create the collection
-
- This will simplify adding a replay guard to create_collection.
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit b184ff581a08c9e6ce5b858f06ccbe9d0e2a170b)
-
-commit 7e7ea8266ee45d96863e1edc5a567dcc2977680c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 22 15:15:27 2013 -0800
-
- client: use 4MB f_bsize and f_frsize for statfs
-
- Old stat(1) reports:
-
- Block size: 1048576 Fundamental block size: 1048576
-
- and the df(1) arithmetic works out. New stat(1) reports:
-
- Block size: 1048576 Fundamental block size: 4096
-
- which is what we are shoving into statvfs, but we have the b_size and
- fr_size arithmetic swapped. However, doing the *correct* reporting would
- then break the old stat by making both sizes appear to be 4KB (or
- whatever).
-
- Sidestep the issue by making *both* values 4MB.. which is both large enough
- to report large FS sizes, and also the default stripe size and thus a
- "reasonable" value to report for a block size.
-
- Perhaps in the future, when we no longer care about old userland, we can
- report the page size for f_bsize, which is probably the "most correct"
- thing to do.
-
- Fixes: #3794. See also #3793.
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 7c94083643891c9d66a117352f312b268bdb1135)
-
-commit 66dca7730006dffbce12e6b27016ea5469b7691b
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 18 17:39:46 2013 -0800
-
- os/FileStore: check replay guard on src for collection rename
-
- This avoids a problematic sequence like:
-
- - rename A/ -> B/
- - remove B/1...100
- - destroy B/
- - create A/
- - write A/101...
- <crash>
- - replay A/ -> B/
- - remove B/1...100 (fails but tolerated)
- - destroy B/ (fails with ENOTEMPTY)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 5fc83c8d9887d2a916af11436ccc94fcbfe59b7a)
-
-commit ea570591b0d9dda102bece0f4cc7d263c3e2a3b0
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Feb 22 14:12:28 2013 -0800
-
- PG::proc_replica_log: oinfo.last_complete must be *before* first entry in omissing
-
- Fixes: #4189
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 2dae6a68ee85a20220ee940dbe33a2144d43457b)
-
-commit aa38d87c6237ccfb8b3b03bc7c28dcadb927237b
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 21 17:55:21 2013 -0800
-
- osd/PG: fix typo, missing -> omissing
-
- From ce7ffc34408bf32c66dc07e6f42d54b7ec489d41.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dc181224abf6fb8fc583730ae3d90acdf0b80f39)
-
-commit ac914834ba4fb0e4770f63c60713be7a48aa3fa1
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Feb 21 15:31:36 2013 -0800
-
- PG::proc_replica_log: adjust oinfo.last_complete based on omissing
-
- Otherwise, search_for_missing may neglect to check the missing
- set for some objects assuming that if the need version is
- prior to last_complete, the replica must have it.
-
- Fixes: #4994
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit ce7ffc34408bf32c66dc07e6f42d54b7ec489d41)
-
-commit 7f39704b0903fb11e3f1e102599bf0c540f93623
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 9 00:05:33 2013 -0800
-
- osd: fix load_pgs collection handling
-
- On a _TEMP pg, is_pg() would succeed, which meant we weren't actually
- hitting the cleanup checks. Instead, restructure this loop as positive
- checks and handle each type of collection we understand.
-
- This fixes _TEMP cleanup.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit b19b6dced85617d594c15631571202aab2f94ae8)
-
-commit 0a09be99f3e9d2b68a052ff63ea858a7c8e5626c
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 9 00:04:29 2013 -0800
-
- osd: fix load_pgs handling of pg dirs without a head
-
- If there is a pgid that passes coll_t::is_pg() but there is no head, we
- will populate the pgs map but then fail later when we try to do
- read_state. This is a side-effect of 55f8579.
-
- Take explicit note of _head collections we see, and then warn when we
- find stray snap collections.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 1f80a0b576c0af1931f743ad988b6293cbf2d6d9)
-
-commit 2dc25dfd47de8d3602bdb3699c82b8b118b0fb28
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Feb 7 13:34:47 2013 -0800
-
- OSD::load_pgs: first scan colls before initing PGs
-
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 073f58ede2e473af91f76d01679631c169274af7)
-
-commit 2fd8db29ccf56fd5473826f20e351edfe200419d
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue Jan 8 19:24:13 2013 -0800
-
- osd: Add digest of omap for deep-scrub
-
- Add ScrubMap encode/decode v4 message with omap digest
- Compute digest of header and key/value. Use bufferlist
- to reflect structure and compute as we go, clearing
- bufferlist to reduce memory usage.
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 509a93e89f04d7e9393090563cf7be8e0ea53891)
-
-commit ee59f517ccc195e591e0b1b6ddf6d1d054c4e2fd
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Mar 15 15:13:46 2013 -0700
-
- OSD: split temp collection as well
-
- Otherwise, when we eventually remove the temp collection, there might be
- objects in the temp collection which were independently pulled into the child
- pg collection. Thus, removing the old stale parent link from its temp
- collection also blasts the omap entries and snap mappings for the real child
- object.
-
- Backport: bobtail
- Fixes: #4452
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f8d66e87a5c155b027cc6249006b83b4ac9b6c9b)
-
-commit 7ec68e2d45b431a3a77458939622e6ea1e396d0e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Mar 14 19:59:36 2013 -0700
-
- PG: ignore non MISSING pg query in ReplicaActive
-
- 1) Replica sends notify
- 2) Prior to processing notify, primary queues query to replica
- 3) Primary processes notify and activates sending MOSDPGLog
- to replica.
- 4) Primary does do_notifies at end of process_peering_events
- and sends to Query.
- 5) Replica sees MOSDPGLog and activates
- 6) Replica sees Query and asserts.
-
- In the above case, the Replica should simply ignore the old
- Query.
-
- Fixes: #4050
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8222cbc8f35c359a35f8381ad90ff0eed5615dac)
-
-commit b279b148b38c755d2dcca6524d7b8a95daf123a0
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Mar 13 16:04:23 2013 -0700
-
- FileJournal: queue_pos \in [get_top(), header.max_size)
-
- If queue_pos == header.max_size when we create the entry
- header magic, the entry will be rejected at get_top() on
- replay.
-
- Fixes: #4436
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit de8edb732e3a5ce4471670e43cfe6357ae6a2758)
-
-commit 56e0a129b0d9ad463f4300999ed2c15173cbe603
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Mar 14 18:52:02 2013 -0700
-
- OSD: expand_pg_num after pg removes
-
- Otherwise:
- 1) expand_pg_num removes a splitting pg entry
- 2) peering thread grabs pg lock and starts split
- 3) OSD::consume_map grabs pg lock and starts removal
-
- At step 2), we run afoul of the assert(is_splitting)
- check in split_pgs. This way, the would be splitting
- pg is marked as removed prior to the splitting state
- being updated.
-
- Backport: bobtail
- Fixes: #4449
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f1b031b3cf195cf6df3d3c47c7d606fba63ed4c4)
-
-commit d6e678a62950ccc16d010a76500705e176ba9c73
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 11 06:23:54 2013 -0800
-
- osd: update snap collections for sub_op_modify log records conditionaly
-
- The only remaining caller is sub_op_modify(). If we do have a non-empty
- op transaction, we want to do this update, regardless of what we think
- last_backfill is (our notion may be not completely in sync with the
- primary). In particular, our last_backfill may be the same object but
- a different snapid, but the primary disagrees and is pushing an op
- transaction through.
-
- Instead, update the collections if we have a non-empty transaction.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 31e911b63d326bdd06981ec4029ad71b7479ed70)
-
-commit 51c2c4d7ccb25617967689d7e531eb145ee7011d
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 10 17:02:45 2013 -0800
-
- osd: include snaps in pg_log_entry_t::dump()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 715d8717a0e8a08fbe97a3e7d3ffd33aa9529d90)
-
-commit f0bf68ff500f7337103aef2a9d6d10c3597e410f
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 10 16:59:48 2013 -0800
-
- osd: unconditionally encode snaps buffer
-
- Previously we would only encode the updated snaps vector for CLONE ops.
- This doesn't work for MODIFY ops generated by the snap trimmer, which
- may also adjust the clone collections. It is also possible that other
- operations may need to populate this field in the future (e.g.,
- LOST_REVERT may, although it currently does not).
-
- Fixes: #4071, and possibly #4051.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 54b6dd924fea3af982f3d729150b6449f318daf2)
-
-commit aa74fabd90b776e9938f3d59ea5ed04bd4027dbb
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 10 10:57:12 2013 -0800
-
- osd: improve debug output on snap collections
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 8b05492ca5f1479589bb19c1ce058b0d0988b74f)
-
-commit a30903c6adaa023587d3147179d6038ad37ca520
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Mar 7 12:53:51 2013 -0800
-
- PG: check_recovery_sources must happen even if not active
-
- missing_loc/missing_loc_sources also must be cleaned up
- if a peer goes down during peering:
-
- 1) pg is in GetInfo, acting is [3,1]
- 2) we find object A on osd [0] in GetInfo
- 3) 0 goes down, no new peering interval since it is neither up nor
- acting, but peer_missing[0] is removed.
- 4) pg goes active and try to pull A from 0 since missing_loc did not get
- cleaned up.
-
- Backport: bobtail
- Fixes: #4371
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit de22b186c497ce151217aecf17a8d35cdbf549bb)
-
-commit 19f6df28337307ce6d8617524f88f222c0ffcab3
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Mar 5 15:49:26 2013 -0800
-
- HashIndex: _collection_list_partial must tolerate NULL next
-
- Backport: bobtail
- Fixes: #4379
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit ce4432adc67dc2fc06dd21ea08e59d179496bcc6)
-
-commit 1b5c1564bad3574db257cb17d48190958d870f51
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Mar 5 14:35:39 2013 -0800
-
- OSD: lock not needed in ~DeletingState()
-
- No further refs to the object can remain at this point.
- Furthermore, the callbacks might lock mutexes of their
- own.
-
- Backport: bobtail
- Fixes: #4378
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit e4bf1bcab159d7c5b720f5da01877c0f67c16d16)
-
-commit 50d2d4a77f339d489703c1125dc5c1159d08ca8a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Mar 10 12:50:01 2013 -0700
-
- ReplicatedPG: don't leak reservation on removal
-
- Fixes: 4431
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 32bf131e0141faf407b5ff993f75f97516b27c12)
-
- Conflicts:
-
- src/osd/ReplicatedPG.cc
-
-commit c6b7c4be3fc44d065c29ea76b744b39272c2ba05
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Mar 12 12:56:01 2013 -0700
-
- rgw: set up curl with CURL_NOSIGNAL
-
- Fixes: #4425
- Backport: bobtail
- Apparently, libcurl needs that in order to be thread safe. Side
- effect is that if libcurl is not compiled with c-ares support,
- domain name lookups are not going to time out.
- Issue affected keystone.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 88725316ddcfa02ff110e659f7a8131dc1ea2cfc)
-
-commit 8c16a376a9cbfd6812824fb71e2cc9935e14e667
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 8 08:56:44 2013 -0800
-
- osd: mark down connections from old peers
-
- Close out any connection with an old peer. This avoids a race like:
-
- - peer marked down
- - we get map, mark down the con
- - they reconnect and try to send us some stuff
- - we share our map to tell them they are old and dead, but leave the con
- open
- ...
- - peer marks itself up a few times, eventually reuses the same port
- - sends messages on their fresh con
- - we discard because of our old con
-
- This could cause a tight reconnect loop, but it is better than wrong
- behavior.
-
- Other possible fixes:
- - make addr nonce truly unique (augment pid in nonce)
- - make a smarter 'disposable' msgr state (bleh)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 881e9d850c6762290f8be24da9e74b9dc112f1c9)
-
-commit 1affc8b6e8cb82510aed524f90a6165c6edf7513
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 8 08:53:40 2013 -0800
-
- osd/PG: rename require_same_or_newer_map -> is_same_or_newer_map
-
- This avoids confusion with the OSD method of the same name, and better
- matches what the function tests (and does not do).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ba7e815a18cad110525f228db1b3fe39e011409e)
-
- Conflicts:
-
- src/osd/ReplicatedPG.cc
-
-commit 7ca55d36c4007be5880102fa1ed314d3d66e9d87
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 11 16:25:16 2013 -0700
-
- log: drop default 'log max recent' from 100k -> 10k
-
- Use less memory.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c021c5ccf0c063cccd7314964420405cea6406de)
-
-commit 33ac786ddc14d0904f4835cbf684a51f4815d45b
-Author: Jan Harkes <jaharkes@cs.cmu.edu>
-Date: Fri Mar 8 12:45:57 2013 -0500
-
- Fix radosgw actually reloading after rotating logs.
-
- The --signal argument to Debian's start-stop-daemon doesn't
- make it send a signal, but defines which signal should be send
- when --stop is specified.
-
- Signed-off-by: Jan Harkes <jaharkes@cs.cmu.edu>
- (cherry picked from commit 44f1cc5bc42f9bb6d5a386037408d2de17dc5413)
-
-commit 6838b8db9a3d4ceaf121a261e2ded4af9bfeaeb9
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 6 17:42:03 2013 -0800
-
- common: reduce default in-memory logs for non-daemons
-
- The default of 100000 can result in hundreds of MBs of extra memory
- used. This was most obvious when using librbd with caching enabled,
- since there was a dout(0) accidentally left in the ObjectCacher.
-
- refs: #4352
- backport: bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 7c208d2f8e3f28f4055a4ae51eceae892dcef1dc)
-
-commit f80f64cf024bd7519d5a1fb2a5698db97a003ce8
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 22 17:01:53 2013 -0800
-
- osd: allow (some) log trim when degraded, but not during recovery
-
- We allow some trim during degraded, although we keep more entries around to
- improve our chances of a restarting OSD of doing log-based recovery.
-
- Still disallow during recovery...
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 6d89b34e5608c71b49ef33ab58340e90bd8da6e4)
-
-commit e502a65da1779564059e74c09ab87aca1d901bd2
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 25 15:33:35 2013 -0800
-
- osd: restructure calc_trim
-
- No functional change, except that we log more debug, yay!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 86df164d04f6e31a0f20bbb94dbce0599c0e8b3d)
-
-commit 3a3123033d7d9e1574be3fb18c807eeb0f4678eb
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 22 16:48:02 2013 -0800
-
- osd: allow pg log trim during (non-classic) scrub
-
- Chunky (and deep) scrub do not care about PG log trimming. Classic scrub
- still does.
-
- Deep scrub can take a long time, so not trimming the log during that period
- may eat lots of RAM; avoid that!
-
- Might fix: #4179
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0ba8db6b664205348d5499937759916eac0997bf)
-
-commit cde0f224dac21b2e17e06d396ac52e18034a4262
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 28 12:46:00 2013 -0800
-
- msgr: drop messages on cons with CLOSED Pipes
-
- Back in commit 6339c5d43974f4b495f15d199e01a141e74235f5, we tried to make
- this deal with a race between a faulting pipe and new messages being
- queued. The sequence is
-
- - fault starts on pipe
- - fault drops pipe_lock to unregister the pipe
- - user (objecter) queues new message on the con
- - submit_message reopens a Pipe (due to this bug)
- - the message managed to make it out over the wire
- - fault finishes faulting, calls ms_reset
- - user (objecter) closes the con
- - user (objecter) resends everything
-
- It appears as though the previous patch *meant* to drop *m on the floor in
- this case, which is what this patch does. And that fixes the crash I am
- hitting; see #4271.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 0f42eddef5da6c1babe9ed51ceaa3212a42c2ec4)
-
-commit 2fa2546c90e7a6eab9a3de7ab4e4271f8b25bad6
-Author: Concubidated <tyler.brekke@inktank.com>
-Date: Fri Mar 8 13:44:39 2013 -0800
-
- Fix output of 'ceph osd tree --format=json'
-
- Signed-off-by: Tyler Brekke <tyler.brekke@inktank.com>
- (cherry picked from commit 9bcba944c6586ad5f007c0a30e69c6b5a886510b)
-
-commit b70e2c270b9eb3fce673b7e51b527ebf88214f14
-Author: Sam Lang <sam.lang@inktank.com>
-Date: Tue Feb 12 11:32:29 2013 -0600
-
- deb: Add ceph-coverage to ceph-test deb package
-
- Teuthology uses the ceph-coverage script extensively
- and expects it to be installed by the ceph task. Add
- the script to the ceph-test debian package so that it
- gets installed for that use case.
-
- Signed-off-by: Sam Lang <sam.lang@inktank.com>
- (cherry picked from commit 376cca2d4d4f548ce6b00b4fc2928d2e6d41038f)
-
-commit ca9aac785eb9e2d1ee955792d2f4d1d911727fb3
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Feb 22 15:04:37 2013 -0800
-
- rgw: set attrs on various list bucket xml results (swift)
-
- Fixes: #4247
- The list buckets operation was missing some attrs on the different
- xml result entities. This fixes it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 4384e59ad046afc9ec53a2d2f1fff6a86e645505)
-
-commit e39660c901756d5e722308e72a9d8ee4893f70f7
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Feb 22 15:02:02 2013 -0800
-
- formatter: add the ability to dump attrs in xml entities
-
- xml entities may have attrs assigned to them. Add the ability
- to set them. A usage example:
-
- formatter->open_array_section_with_attrs("container",
- FormatterAttrs("name", "foo", NULL));
-
- This will generate the following xml entity:
- <container name="foo">
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 7cb6ee28073824591d8132a87ea09a11c44efd66)
-
- Conflicts:
- src/common/Formatter.cc
-
-commit 0304b85e5c12c30459b94ec5d332dfaa04d20d5b
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Mar 6 19:32:21 2013 -0800
-
- rgw: don't iterate through all objects when in namespace
-
- Fixes: #4363
- Backport: argonaut, bobtail
- When listing objects in namespace don't iterate through all the
- objects, only go though the ones that starts with the namespace
- prefix
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 6669e73fa50e3908ec825ee030c31a6dbede6ac0)
-
-commit d0dafaa77f96fa91785df0796806ea07fd93f319
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 28 12:13:45 2013 -0800
-
- ObjectCacher: fix debug log level in split
-
- Level 0 should never be used for this kind of debugging.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit cb3ee33532fb60665f39f6ccb1d69d67279fd5e1)
-
-commit ff014ed26bfa4fbf40acffec4eb4805b95a9982c
-Author: Dan Mick <dmick@danceorelse.org>
-Date: Thu Jan 24 13:38:25 2013 -0800
-
- rados: remove unused "check_stdio" parameter
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit bb860e49a7faeaf552538a9492ef0ba738c99760)
-
-commit e89884da9f76b713372a79b772ba3cc2f3b03048
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 23 21:31:11 2013 -0800
-
- rados: obey op_size for 'get'
-
- Otherwise we try to read the whole object in one go, which doesn't bode
- well for large objects (either non-optimal or simply broken).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 234becd3447a679a919af458440bc31c8bd6b84f)
-
-commit ee943c8bcf36f1e2218d8e25edfa38ec5fe4bec2
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Feb 27 16:58:45 2013 -0800
-
- FileJournal::wrap_read_bl: adjust pos before returning
-
- Otherwise, we may feed an offset past the end of the journal to
- check_header in read_entry and incorrectly determine that the entry is
- corrupt.
-
- Fixes: 4296
- Backport: bobtail
- Backport: argonaut
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 5d54ab154ca790688a6a1a2ad5f869c17a23980a)
-
-commit 8c6f52215240f48b5e4d5bb99a5f2f451e7ce70a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jan 16 13:14:00 2013 -0800
-
- osd: leave osd_lock locked in shutdown()
-
- No callers expect the lock to be dropped.
-
- Fixes: #3816
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 98a763123240803741ac9f67846b8f405f1b005b)
-
-commit a324d999804b4648f245ee36b3bd611b3d139d5d
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 26 14:07:12 2013 -0800
-
- msg: fix entity_addr_t::is_same_host() for IPv6
-
- We weren't checking the memcmp return value properly! Aie...
-
- Backport: bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c8dd2b67b39a8c70e48441ecd1a5cc3c6200ae97)
-
-commit 79d68ae8581141c3fb4cfafd76d5111ff009b762
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 17 22:35:50 2013 -0800
-
- osd: requeue pg waiters at the front of the finished queue
-
- We could have a sequence like:
-
- - op1
- - notify
- - op2
-
- in the finished queue. Op1 gets put on waiting_for_pg, the notify
- creates the pg and requeues op1 (and the end), op2 is handled, and
- finally op1 is handled. That breaks ordering; see #2947.
-
- Instead, when we wake up a pg, queue the waiting messages at the front
- of the dispatch queue.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 56c5a07708d52de1699585c9560cff8b4e993d0a)
-
-commit 79c4e7e91becc497843d96251776bdc176706aa0
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 17 20:49:52 2013 -0800
-
- osd: pull requeued requests off one at a time
-
- Pull items off the finished queue on at a time. In certain cases, an
- event may result in new items betting added to the finished queue that
- will be put at the *front* instead of the back. See latest incarnation
- of #2947.
-
- Note that this is a significant changed in behavior in that we can
- theoretically starve if an event keeps resulting in new events getting
- generated. Beware!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit f1841e4189fce70ef5722d508289e516faa9af6a)
-
-commit 3a6ce5d0355beaa56199465e94666cae40bd8da1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 17 22:00:42 2013 -0800
-
- mds: open mydir after replay
-
- In certain cases, we may replay the journal and not end up with the
- dirfrag for mydir open. This is fine--we just need to open it up and
- fetch it below.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e51299fbce6bdc3d6ec736e949ba8643afc965ec)
-
-commit 36ed407e0f939a9bca57c3ffc0ee5608d50ab7ed
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Feb 21 09:21:01 2013 -0800
-
- mds: use inode_t::layout for dir layout policy
-
- Remove the default_file_layout struct, which was just a ceph_file_layout,
- and store it in the inode_t. Rip out all the annoying code that put this
- on the heap.
-
- To aid in this usage, add a clear_layout() function to inode_t.
-
- Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit b4fd196cae5ab76aeb8f82f0581d0a6a2133a3ed
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jan 20 21:53:37 2013 -0800
-
- mds: parse ceph.*.layout vxattr key/value content
-
- Use qi to parse a strictly formatted set of key/value pairs. Be picky
- about whitespace. Any subset of recognized keys is allowed. Parse the
- same set of keys as the ceph.*.layout.* vxattrs.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5551aa5b3b5c2e9e7006476b9cd8cc181d2c9a04)
-
-commit 5f92adca26b509aed5655e85ad53174fa7b574b9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Feb 18 09:10:43 2013 -0800
-
- rgw: fix multipart uploads listing
-
- Fixes: #4177
- Backport: bobtail
- Listing multipart uploads had a typo, and was requiring the
- wrong resource (uploadId instead of uploads).
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit db99fb4417b87301a69cb37b00c35c838b77197e)
-
-commit a44df9343594099fecb3897df393249d3d1992e2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Feb 15 10:22:54 2013 -0800
-
- rgw: don't copy object when it's copied into itself
-
- Fixes: #4150
- Backport: bobtail
-
- When object copied into itself, object will not be fully copied: tail
- reference count stays the same, head part is rewritten.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 34f885be536d0ac89c10fd29b1518751d2ffc547)
-
-commit 91d6be8353259ca30dc87062422e9ae334c3c344
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Feb 19 10:49:33 2013 -0800
-
- PG: remove weirdness log for last_complete < log.tail
-
- In the case of a divergent object prior to log.tail,
- last_complete may end up before log.tail.
-
- Backport: bobtail
- Fixes #4174
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dbadb3e2921297882c5836c67ca32bb8ecdc75db)
-
- Conflicts:
-
- src/osd/PG.cc
-
-commit 7889c5412deaab1e7ba53d66814d0f25659229c1
-Author: James Page <james.page@ubuntu.com>
-Date: Mon Feb 18 16:24:54 2013 +0000
-
- Strip any trailing whitespace from rbd showmapped
-
- More recent versions of ceph append a bit of whitespace to the line
- after the name of the /dev/rbdX device; this causes the monitor check
- to fail as it can't find the device name due to the whitespace.
-
- This fix excludes any characters after the /dev/rbdN match.
- (cherry picked from commit ad84ea07cac5096de38b51b8fc452c99f016b8d8)
-
-commit 42fba772c3c0e2396124a9d6ec39297dd9af4cc9
-Merge: 290a352 ad6655e
-Author: Sage Weil <sage@newdream.net>
-Date: Sun Feb 17 21:52:55 2013 -0800
-
- Merge pull request #64 from dalgaaf/wip-bobtail-memleaks
-
- cherry-pick some memleak fixes from master to bobtail
-
-commit ad6655e976916d3b62e0c91fd469eeb49fe7da3e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Feb 8 17:17:59 2013 +0100
-
- rgw/rgw_rest.cc: fix 4K memory leak
-
- Fix 4K memory leak in case RGWClientIO::read() fails in
- read_all_chunked_input().
-
- Error from cppcheck was:
- Checking src/rgw/rgw_rest.cc...
- [src/rgw/rgw_rest.cc:688]: (error) Memory leak: data
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 89df090e04ef9fc5aae29122df106b0347786fab)
-
-commit 3de692753c28ddbeb3c86b51466be16e94c9c458
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Feb 8 17:14:19 2013 +0100
-
- SyntheticClient.cc: fix some memory leaks in the error handling
-
- Fix some memory leaks in case of error handling due to failed
- client->open() calls.
-
- Error from cppcheck was:
- [src/client/SyntheticClient.cc:1980]: (error) Memory leak: buf
- [src/client/SyntheticClient.cc:2040]: (error) Memory leak: buf
- [src/client/SyntheticClient.cc:2090]: (error) Memory leak: buf
- (cherry picked from commit f0ba80756d1c3c313014ad7be18191981fb545be)
-
-commit f19d228c6a49222659c769099aaa4e755b80331d
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Feb 8 16:57:20 2013 +0100
-
- rgw/rgw_xml.cc: fix realloc memory leak in error case
-
- Fix error from cppcheck:
-
- [src/rgw/rgw_xml.cc:212]: (error) Common realloc mistake: 'buf'
- nulled but not freed upon failure
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit d48cc789ea075ba2745754035640ada4131b2119)
-
-commit b0c6be95b03d9f3dd2badcdcff359ae7bc9684f4
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Feb 8 16:54:33 2013 +0100
-
- os/FileStore.cc: fix realloc memory leak in error case
-
- Fix error from cppcheck:
-
- [src/os/FileStore.cc:512]: (error) Common realloc mistake: 'fiemap'
- nulled but not freed upon failure
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit c92a0f552587a232f66620170660d6b2ab6fb3a5)
-
-commit f3e5cedbc11005701ac0a8e70909a6372cd2fe6f
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Feb 8 16:49:36 2013 +0100
-
- common/fiemap.cc: fix realloc memory leak
-
- Fix error from cppcheck:
-
- [src/common/fiemap.cc:73]: (error) Common realloc mistake: 'fiemap'
- nulled but not freed upon failure
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit f26f1470e7af36fa1eb8dc59c8a7c62c3c3a22ba)
-
-commit 290a352c3f9e241deac562e980ac8c6a74033ba6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 14 11:37:57 2013 -0800
-
- osd/OSDCap: add unit test for parsing pools/objects with _ and -
-
- Hunting #4122, where a user saw
-
- 2013-02-13 19:39:25.467916 7f766fdb4700 10 osd.0 10 session 0x2c8cc60 client.libvirt has caps osdcap[grant(object_prefix rbd^@children class-read),grant(pool libvirt^@pool^@test rwx)] 'allow class-read object_prefix rbd_children, allow pool libvirt-pool-test rwx'
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2ce28ef1d7f95e71e1043912dfa269ea3b0d1599)
- (cherry picked from commit a6534bc8a0247418d5263b765772d5266f99229c)
-
-commit f47916353547c77a65c7b70e609a9096f09c6d28
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 14 15:39:43 2013 -0800
-
- osd/OSDCap: tweak unquoted_word parsing in osd caps
-
- Newer versions of spirit (1.49.0-3.1ubuntu1.1 in quantal, in particular)
- dislike the construct with alnum and replace the - and _ with '\0' in the
- resulting string.
-
- Fixes: #4122
- Backport: bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 6c504d96c1e4fbb67578fba0666ca453b939c218)
diff --git a/src/ceph/doc/changelog/v0.56.5.txt b/src/ceph/doc/changelog/v0.56.5.txt
deleted file mode 100644
index 0e9ce5e..0000000
--- a/src/ceph/doc/changelog/v0.56.5.txt
+++ /dev/null
@@ -1,1972 +0,0 @@
-commit df884bb7b59e5796c996ab806f5ec8b8322e292f
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Thu May 2 18:08:06 2013 -0700
-
- v0.56.5
-
-commit b38cbabb2a38e4476de1135c33c25c673d62cd67
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Apr 4 18:23:40 2013 +0200
-
- ceph.spec.in: fix udev rules.d files handling
-
- Move 50-rbd.rules into the ceph base package since the related
- ceph-rbdnamer binary is part of this package. Use correct install
- pattern.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-
-commit d0678a062a1baf738ce96114114d99495be19478
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Apr 29 17:01:55 2013 -0700
-
- debian: only start/stop upstart jobs if upstart is present
-
- This avoids errors on non-upstart distros (like wheezy).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 030bf8aaa15837f898e453161eeaf1d52fc5779d)
-
- Conflicts:
- debian/ceph-mds.postinst
-
-commit 209ce34a420cc5cdbe7219393f2f150ac28f612c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 11 17:09:37 2013 -0700
-
- debian: stop ceph-mds before uninstalling ceph-mds
-
- Fixes: #4384
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9eb0d91b867ab980135d7c6ff6347d69d0a8a794)
-
-commit 0c91becfa6cc5f05c5b2eaa89299dbf1aa202344
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Apr 25 15:53:51 2013 -0700
-
- Makefile.am: Add -lpthread to fix build on newer ld in Raring Ringtail
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 98f532e8000af281fa03b24da9ad2fda81755270)
-
- Conflicts:
- src/Makefile.am
-
-commit 15e6544f0892e8472f436149d15fc30257496c0b
-Merge: fdc0534 418cff5
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 1 12:57:43 2013 -0700
-
- Merge remote-tracking branch 'gh/bobtail-deploy' into bobtail-next
-
-commit fdc05346177a60f064fe351ca81c6078cd065179
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Apr 25 11:13:33 2013 -0700
-
- init-ceph: use remote config when starting daemons on remote nodes (-a)
-
- If you use -a to start a remote daemon, assume the remote config is present
- instead of pushing the local config. This makes more sense and simplifies
- things.
-
- Note that this means that -a in concert with -c foo means that foo must
- also be present on the remote node in the same path. That, however, is a
- use case that I don't particularly care about right now. :)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit cd7e52cc76878eed0f084f7b9a6cf7c792b716c6)
-
-commit 55c87e821b6acc1cd46056ca27c6e7f7030466e7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Apr 24 12:20:17 2013 -0700
-
- PG: call check_recovery_sources in remove_down_peer_info
-
- If we transition out of peering due to affected
- prior set, we won't trigger start_peering_interval
- and check_recovery_sources won't get called. This
- will leave an entry in missing_loc_sources without
- a matching missing set. We always want to
- check_recovery_sources with remove_down_peer_info.
-
- Fixes: 4805
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 81a6165c13c533e9c1c6684ab7beac09d52ca6b5)
-
-commit a28c2f55bfc768a502fbc8ec35265e7f1a53e044
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Apr 25 14:08:57 2013 -0700
-
- PG: clear want_acting when we leave Primary
-
- This is somewhat annoying actually. Intuitively we want to
- clear_primary_state when we leave primary, but when we restart
- peering due to a change in prior set status, we can't afford
- to forget most of our peering state. want_acting, on the
- other hand, should never persist across peering attempts.
- In fact, in the future, want_acting should be pulled into
- the Primary state structure.
-
- Fixes: #3904
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit a5cade1fe7338602fb2bbfa867433d825f337c87)
-
-commit 849ed5982d4547dd651313919fb090944f568214
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Apr 30 18:12:10 2013 -0700
-
- mon: communicate the quorum_features properly when declaring victory.
-
- Fixes #4747.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fe68afe9d10bc5d49a05a8bafa644d57783447cf)
-
-commit ea9c76b8f457d44e63551d47b6dd30bd16a56468
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Apr 30 11:01:54 2013 -0700
-
- elector: trigger a mon reset whenever we bump the epoch
-
- We need to call reset during every election cycle; luckily we
- can call it more than once. bump_epoch is (by definition!) only called
- once per cycle, and it's called at the beginning, so we put it there.
-
- Fixes #4858.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6ae9bbb5d03cb5695a4ebb7a3c20f729de1bd67a)
-
- Conflicts:
-
- src/mon/Elector.cc
-
-commit 418cff585bf6fc292d260a464369d82f7cdb3b79
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Fri Apr 19 15:09:28 2013 -0700
-
- Fix journal partition creation
-
- With OSD sharing data and journal, the previous code created the
- journal partiton from the end of the device. A uint32_t is
- used in sgdisk to get the last sector, with large HD, uint32_t
- is too small.
- The journal partition will be created backwards from the
- a sector in the midlle of the disk leaving space before
- and after it. The data partition will use whichever of
- these spaces is greater. The remaining will not be used.
-
- This patch creates the journal partition from the start as a workaround.
-
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit 56619ab91732bd2eacbef388311954f4e0230a30)
-
-commit 1a6b87ea48c3bcd3904d888a2ad1e5774aa2de8e
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 26 15:37:21 2013 -0700
-
- ceph.spec.in: put ceph-disk-* et al in correct sbindir
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 86337936059d6b17c887e82f79167324eafa083c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 26 15:29:12 2013 -0700
-
- debian: fix ceph.install
-
- This got out of sync somewhere in cherry-picking all of these patches.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 0b42b1edb306a9763bcd02bd962bd284f6b7b3a3
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Apr 4 15:54:31 2013 +0200
-
- Makefile.am: install ceph-* python scripts to /usr/bin directly
-
- Install ceph-* scripts directly to $(prefix)$(sbindir) (which
- normaly would be /usr/sbin) instead of moving it around after
- installation in SPEC file or debian files.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 4d16f38f48e276497190c8bc03abc55c40e18eed)
-
-commit c71fb8d5b39667fc2c9f7e898ced53059d3f1eec
-Author: Gary Lowell <glowell@inktank.com>
-Date: Tue Apr 2 12:11:10 2013 -0700
-
- ceph-disk: CalledProcessError has no output keyword on 2.6
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit a793853850ee135de14b9237f7023cadcdb8575c)
-
-commit 1b86b1c7618b1ab93e25e1abf79bbe0a992c8526
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:54:53 2013 +0200
-
- ceph-disk: fix some (local) variable names
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit c4eb7e6ddd593cd45ab8343da01355be7382723e)
-
-commit ee452ebe6ff37087714c085dacd1ca2bcf66bd49
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:36:37 2013 +0200
-
- ceph-disk: fix naming of local variable in is_mounted()
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 3dd8b461219e64bb0f7a210dba5a9ab7c644f014)
-
-commit 0e47d312dcec2deb26a960e6097708d8742d85cb
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:33:08 2013 +0200
-
- ceph-disk: merge twice defined function is_mounted(dev)
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit eaf31bf9f90ba9709a57a6870dbafa21142dae2c)
-
-commit 7326ea6397160607d78914444f7f0598a6ba346f
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:26:12 2013 +0200
-
- ceph-disk: define exception type
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 4c6d6442a89adc5b56e99cb4d2ed572f2ad192c9)
-
-commit 14a348dc8ea9c012b6843825fd7beb5896a6d92e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:17:38 2013 +0200
-
- ceph-disk: fix Redefining name 'uuid' from outer scope
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 058eb923c5b7dab611901fdd1724ce2a7c180827)
-
-commit 9419dca69292146ea1fd216a1ad08b2e07bdc1a0
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Apr 2 17:14:23 2013 +0200
-
- ceph-disk: add missing space after comma
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 0080d1df7c7950e051840a543fc4bdabe6cc53e5)
-
-commit 7406981aa5515a3be8af0b9a0abef83a40c432b2
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 29 17:30:28 2013 -0700
-
- ceph-disk list: say 'unknown cluster $UUID' when cluster is unknown
-
- This makes it clearer that an old osd is in fact old.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e9b3f2e6e93426d631d4f8101fb431a523b0d88a)
-
-commit 0182973b66d449552d17248e27cd12c470137ea9
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 29 13:59:04 2013 -0700
-
- ceph-disk: handle missing journal_uuid field gracefully
-
- Only lower if we know it's not None.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 562e1716bd4b5372716e502a5e4dd872d381bfb7)
-
-commit 24d729c591430349b033992f87141e596dcd6bff
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 28 20:49:24 2013 -0700
-
- ceph-disk: implement 'list'
-
- This is based on Sandon's initial patch, but much-modified.
-
- Mounts ceph data volumes temporarily to see what is inside. Attempts to
- associated journals with osds.
-
- Resolves: #3120
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 6a65b9131c444041d16b880c6a7f332776063a78)
-
-commit bf3f8702c580c6b9647878837355688a2a4f954c
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 18:44:32 2013 -0700
-
- ceph-disk: reimplement list_all_partitions
-
- Use /dev/disk/by-id to list disks and their partitions. This is more
- accurate and correct than the previous (as-yet unused) implementation.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d3e49047ff405573aa41f45864cf315be23f5c50)
-
-commit 9da81e4e798b8e5593f3a7eda6dfa8586307121f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 18:43:59 2013 -0700
-
- ceph-disk: reimplement is_partition
-
- Previously we were assuming any device that ended in a digit was a
- partition, but this is not at all correct (e.g., /dev/sr0, /dev/rbd1).
- Instead, look in /dev/disk/by-id and see if there is a symlink that ends in
- -partNN that links to our device.
-
- There is probably still a better way...
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 20d594a889d62110ad03b761d8703f79f8eea6ad)
-
-commit 0c8efc0664f068a1952fe54b8034d005cf3f9ce8
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 12:45:29 2013 -0700
-
- ceph-disk: conditionally remove mount path
-
- umount removes it on success; only remove it here if it is still there.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4362934a94c5a6f7521f06aa1255e111094e1d88)
-
-commit 153994cdcf9bc4a9719849d951bec5f4983340b5
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Mar 26 17:04:14 2013 -0700
-
- ceph-disk: ignore udevadm settle return code
-
- If we time out, just continue and let the next step fail.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2ae297ccb812c00204ec0c4dc614821c506062b9)
-
-commit d714049d530dc9611cf5f2fcb9b272c355dbe9f1
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 17:45:32 2013 +0100
-
- ceph-disk: rename some local variabels in list_*partitions
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b7d7e6894c550a7afa8dfb5bfa2bc54b5d331178)
-
-commit ecb34b81b843adaf9455503eb3ecc69ea94652a3
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 16:24:00 2013 +0100
-
- ceph-disk: fix naming of a local variable in find_cluster_by_uuid
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 0b5fcfffe6d2f69bd4318cc93ef73195d948b9c5)
-
-commit 63eb85072f6a61552725bd04dfb261e5cd52a60a
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 16:18:17 2013 +0100
-
- ceph-disk: rename some constants to upper case variable names
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 8a999ded088e688fd3f4a7c27127b7c06f0b2f66)
-
-commit d26a03422a37f16d609de12f8973f3c32ffedae0
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 16:15:29 2013 +0100
-
- ceph-disk: add some more docstrings
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 86e55f5448c4b5b46b74d2d89b01d1e64b1ea826)
-
-commit bd8bb984806a1dbc3514c3a2a8980a03cfb2bc23
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 14:36:41 2013 +0100
-
- ceph-disk: print subprocess.CalledProcessError on error
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 543327b1f2a9efe8083bb196433c4bcf83883269)
-
-commit 970348fc46a7e100731ffdc63d20f343dcb1b787
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Mar 25 13:55:56 2013 +0100
-
- ceph-disk: fix indention
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 2d26bcc07162a5176cdbc1748b829e3f39653697)
-
-commit 0113e5335e1552294bbf075cfff85c204b164e95
-Author: Gary Lowell <glowell@inktank.com>
-Date: Tue Mar 26 11:31:16 2013 -0700
-
- ceph-disk: udevadm settle before partprobe
-
- After changing the partition table, allow the udev event to be
- processed before calling partprobe. This helps prevent partprobe
- from getting a resource busy error on some platforms.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit 9eda8e5d5abf0743a2ad484806cfb2018243515f)
-
-commit 02d48351f73330917185d8980f8ad123b99138b5
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 22 10:09:55 2013 -0700
-
- ceph-disk: re-add python 2.7 dependency comment
-
- FIXME!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6d63752c8fde91cdab306d1ca689690b269fe977)
-
-commit e92baf5081a43ff3290eb934612a11fbed946469
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 14:36:58 2013 +0100
-
- ceph-disk: cast output of subprocess.Popen() to str()
-
- Cast output of subprocess.Popen() to str() to be able to use
- str.split() and str.splitlines() without warnings from pylint.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 87691dc46edfba11c370592dbb533772190be4b2)
-
-commit 1ffc89af1954643426708987a09291463bd7525b
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 14:02:28 2013 +0100
-
- ceph-disk: fix adjust_symlink() replace 'journal' with 'target'
-
- Replace 'journal' variable with 'target' since journal doesn't
- exist in this function.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 3575feb7d2e5f4e35c5df193a1f8c9f08f88fcf4)
-
-commit 690ab6b3e284e9beed74b3e77612e804464e467d
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 14:01:02 2013 +0100
-
- ceph-disk: fix adjust_symlink() replace 'canonical' with 'path'
-
- Replace 'canonical' variable with 'path' since canonical doesn't
- exist in this function.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit a27cb85b21610b4a9f8eb24f8f6cd04902349728)
-
-commit 329f279cd108c837e434ee3aae6c8ad502ba802f
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 13:56:23 2013 +0100
-
- ceph-disk: there is no os.path.lstat use os.lstat
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 6d3247b5c02c39a66666a5833106dbc23044e436)
-
-commit ffe024b8b5024cdac256bacb9df433b69385cc0a
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 13:30:21 2013 +0100
-
- ceph-disk: remove unused variable key from prepare_journal_dev()
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 97b4f8d66bef2328fa53f9e508eb38f8b8d49632)
-
-commit 9464284f3ac9737345c595847e165db48adc0a70
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 13:27:27 2013 +0100
-
- ceph-disk: fix except to catch OSError
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9daf6cfce2d57509d896eae28bb97146a682a306)
-
-commit 01152115f7bf4a307296c9126174ce09bb0ce22d
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 13:15:36 2013 +0100
-
- ceph-disk: add missing space after >> operator
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 0ada43f79d2b1f9f84367e558c6d1a3e90e5c9b2)
-
-commit b9f86d96f5dd6ca18eb39882caf69e76369b5e0b
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 12:33:09 2013 +0100
-
- fix: Redefining name 'uuid' from outer scope (line 14)
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit d3c60dc8cad1db1d5df1c740bc805aaf9ba606ba)
-
-commit 6fa6cd85b55935739e16b8ba537f7848dbb0218f
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 12:17:45 2013 +0100
-
- ceph-disk: remove unused variables from list_partitions()
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 6a8120d4b0c4cfa851d473532eb2366534f8653d)
-
-commit 0b4e85fe23e8aa24e8aef8548df2b508bda24752
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 20 12:10:22 2013 +0100
-
- ceph-disk: fix /dev/dm-[0-9] handling list_all_partitions()
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 3af7a1ac5bf24bf832d7180002281d6b5853e85a)
-
-commit 3ec61f85f6a8a8af8a2b921f94e77a77be77a1d7
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Mar 19 22:07:36 2013 +0100
-
- ceph-disk: rename local variable shadowing builtin
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9bcf5b64f45ab6c4bdedf820ed111319b2dbd778)
-
-commit bd1036dd83fa2ee4807047fb9c2b414ccc9375eb
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Mar 19 22:05:23 2013 +0100
-
- ceph-disk: remove twice defined identical function unmount
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 4adf088107586be7b356d1e963570cdab232809e)
-
-commit 8dd8cbac6f88fcb9d2c6838b9f961c70cccb9288
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Mar 19 22:02:49 2013 +0100
-
- ceph-disk: remove twice defined function mount
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit ea26ea0d81a23aa76076ad5441c3b1aadfba3b44)
-
-commit 0da87db1c0e4b44b69c19b718d89e7a621979009
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Mar 19 21:58:22 2013 +0100
-
- ceph-disk: remove double defined function get_conf
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit c57daa3c6e03e8974e133d3a2d9bc3d6f06f4faf)
-
-commit 9c46dfb2512d3b55345faed1bebb9204ba07d030
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Mar 19 21:51:54 2013 +0100
-
- ceph-disk: rename local variable shadowing builtin
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 57dde5c8b18ff4ccd53a30bb94119c0ffceb52b7)
-
-commit b807d8ba0a0c23c7dab6893bc5297e07c0fd902f
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 18 14:55:24 2013 -0700
-
- ceph-disk: install and package
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c2602d749023b24ac22d8cfce6e04889078f14d8)
-
- Conflicts:
-
- debian/ceph.install
-
-commit 8901e02db05837b12d5e1d0ec6f14f909cc03315
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 15 16:50:05 2013 -0700
-
- ceph-disk: simplify command dispatch
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f287c6f90af0dfdd41358846b069aa3c54b600b3)
-
-commit 3cbc0d0c92ad19d5022c94d9d1ac00aff4eb9b2d
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 15 16:40:32 2013 -0700
-
- ceph-disk: consolidate exceptions
-
- Use a single exception type, and catch it at the top level.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a019753bd3897ee0f5d9c3563c653c5457d5e67d)
-
-commit b4176bafa2b0721664332a1bb8b73da54151f685
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 15 16:36:45 2013 -0700
-
- ceph-disk: consolidate ceph-disk-* into a single binary
-
- ceph-disk prepare ...
- ceph-disk activate ...
- ceph-disk ...
-
- This let's us share code (we were already duplicating a bunch of stuff!)
- and to add new commands easily.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 20e4ba5cebb7b4989d1745932f7a412c28504ee1)
-
-commit 455cb32543df8036a605dc7b6c194e58b10bc4ec
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 18 21:13:34 2013 -0700
-
- ceph-disk-prepare: 'mkfs -t' instead of 'mkfs --type='
-
- Older mkfs (el6) doesn't like --type=.
-
- Fixes: #4495
- Reported-by: Alexandre Maragone <alexandre.maragone@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d47759429a6e2fdd392265e90b67046302c97644)
-
-commit 19a2cf58504a3305ac9afe3d6642cf68e1b0f6c1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 14 21:05:07 2013 -0700
-
- ceph-disk-activate: identify cluster .conf by fsid
-
- Determine what cluster the disk belongs to by checking the fsid defined
- in /etc/ceph/*.conf. Previously we hard-coded 'ceph'.
-
- Note that this has the nice side-effect that if we have a disk with a
- bad/different fsid, we now fail to activate it. Previously, we would
- mount and start ceph-osd, but the daemon would fail to authenticate
- because it was part of the wrong cluster.
-
- Fixes: #3253
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 80af5fb887f30792c342ac16da9ed95d7e89e491)
-
-commit 568485bea8ae9f0f36571de259c7254fa4227b15
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 14 16:18:26 2013 -0700
-
- ceph-disk-activate: abort if target position is already mounted
-
- If the target position is already a mount point, fail to move our mount
- over to it. This usually indicates that a different osd.N from a
- different cluster instances is in that position.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7370b5564606474f11b9ac5afb7cc60e0ac36ed1)
-
-commit a6ecf9288af248656bc712c1a4de910ff107a9a2
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 14 12:05:52 2013 -0700
-
- Revert "ceph-disk-activate: rely on default/configured keyring path"
-
- This reverts commit 936b8f20af1d390976097c427b6e92da4b39b218.
-
- This is necessary because we mount the osd in a temporary location.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b6102c0945a0d68b7c5ff7f2254a1a994788ca0f)
-
-commit 7c1edc0c927a27c07b6f1611c2cf9c48f2dc95f6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 14 12:04:44 2013 -0700
-
- Revert "ceph-disk-activate: don't override default or configured osd journal path"
-
- This reverts commit 813e9fe2b4291a1c1922ef78f031daa9b78fe53b.
-
- We run --mkfs with the osd disk mounted in a temporary location, so it is
- necessary to explicitly pass in these paths.
-
- If we want to support journals in a different location, we need to make
- ceph-disk-prepare update the journal symlink accordingly.. not control it via
- the config option.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3e628eee770508e750f64ea50179bbce52e7b8e0)
-
-commit 739b013cfa4b84d36750b80ce44579498e7ea4f4
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 11 21:15:11 2013 -0700
-
- ceph-disk-activate: rely on default/configured keyring path
-
- No reason to override the default or configured value here.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 936b8f20af1d390976097c427b6e92da4b39b218)
-
-commit 897413f90c0e802c6824c0ee8d06bdae33979293
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 11 21:14:53 2013 -0700
-
- ceph-disk-activate: don't override default or configured osd journal path
-
- There is no reason not to rely on the default or obey any configured
- value here.
-
- Fixes: #4031
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 813e9fe2b4291a1c1922ef78f031daa9b78fe53b)
-
-commit 35eac085182e569b17c287c86e1415880909be22
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Mar 5 13:08:26 2013 -0800
-
- ceph-disk-prepare: move in-use checks to the top, before zap
-
- Move the in-use checks to the very top, before we (say) zap!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 32407c994f309cd788bf13fe9af27e17a422309a)
-
-commit 5ad4120a4825d6615778a005cff990afccf30691
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 4 20:57:52 2013 -0800
-
- ceph-disk-prepare: verify device is not in use by device-mapper
-
- Be nice and tell the user which devices/mappings are consuming the device,
- too.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a6196de9e2f3ca9d67691f79d44e9a9f669443e9)
-
-commit e4a520029196cc76f1ec45695554ca6330bf14aa
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 4 16:38:57 2013 -0800
-
- ceph-disk-prepare: verify device is not mounted before using
-
- Make sure the data and/or journal device(s) are not in use (mounted)
- before using them. Make room for additional "in-use" checks in the future.
-
- Closes: #3256
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3bd0ac0ab011c4cdf0121f0d9732938d085fb8bf)
-
-commit d05b439142a24d28f35c6a09a8ab7c9eed503cd5
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 4 16:29:57 2013 -0800
-
- ceph-disk-prepare: clean up stupid check for a digit
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f03f62697f170d42b4b62c53d2860ff2f24a2d73)
-
-commit ea07b0e1047a4ac1b4dde88c795709190bd048be
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 4 16:08:15 2013 -0800
-
- ceph-disk-prepare: use os.path.realpath()
-
- My janky symlink resolution is broken in various ways.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 59505546e52a175435881b431bd349d532ae627e)
-
-commit 8f7e3e7dbbb9cab869366927c1687c38c012a1ef
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Feb 28 14:16:26 2013 +0100
-
- ceph.spec.in: add new Requires from ceph-disk-prepare
-
- Added new Requires from ceph-disk-prepare: cryptsetup, gptfdisk,
- parted and util-linux.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 5c3f5c5b69a9edc99138d4f1ddb016689303dc28)
-
- Conflicts:
-
- ceph.spec.in
-
-commit 3441acf3749dbd99f1e00e5306e8180647085d2a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 27 13:31:12 2013 -0800
-
- debian: require cryptsetup-bin
-
- This is needed for ceph-disk-prepare's dmcrypt support.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cfcaceac44d6b7b7c55e81d0bfb05f4893f3b1d0)
-
- Conflicts:
-
- debian/control
-
-commit abdac6fddd25bc71f59c1097246cfa32b33b0f5f
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Mon Apr 15 15:57:00 2013 -0700
-
- Fix: use absolute path with udev
-
- Avoids the following: udevd[61613]: failed to execute '/lib/udev/bash'
- 'bash -c 'while [ ! -e /dev/mapper/....
-
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit 785b25f53dc7f8035eeba2aae8a196e3b102d930)
-
-commit d1775daf68d9aa887116a357cbcaf7c44e091cce
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 16 20:55:03 2013 -0800
-
- ceph-disk-prepare: -f for mkfs.xfs only
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fecc3c3abf1176f4c7938e161559ea2db59f1cff)
-
-commit 405e0ea1c692b1d62f948734e07c4f919b90d4e0
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 16 16:49:50 2013 -0800
-
- debian: fix start of ceph-all
-
- Tolerate failure, and do ceph-all, not ceph-osd-all.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit aff0bb6fdc8ca358f7ac1e941bb9cfecbefb4bb6)
-
-commit 632be442261cabd56da0dc897b8a47a8e5493dce
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Fri Feb 15 12:24:01 2013 -0800
-
- ceph-disk-prepare: always force mkfs.xfs
-
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit d950d83250db3a179c4b629fd32cd7bc8149997e)
-
-commit 28d1193836edee622763e308aad69c7bfe7a4971
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 18:22:45 2013 -0800
-
- udev: trigger on dmcrypted osd partitions
-
- Automatically map encrypted journal partitions.
-
- For encrypted OSD partitions, map them, wait for the mapped device to
- appear, and then ceph-disk-activate.
-
- This is much simpler than doing the work in ceph-disk-activate.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e090a92a20f4161f473d16bc966f7d6aacac75ee)
-
-commit 5c5021b43ab70a08d791020262f76879dc77effb
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 21:35:56 2013 -0800
-
- ceph-disk-prepare: add initial support for dm-crypt
-
- Keep keys in /etc/ceph/dmcrypt-keys.
-
- Identify partition instances by the partition UUID. Identify encrypted
- partitions by a parallel set of type UUIDs.
-
- Signed-off-by: Alexandre Marangone <alexandre.maragone@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c6ac0ddf91915ba2aeae46d21367f017e18e82cd)
-
-commit d7084037d7a2395acfe8181f94963c1337c0f95b
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Fri Feb 15 12:22:33 2013 -0800
-
- ceph-disk-activate: pull mount options from ceph.conf
-
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit e7040f55f01db3de7d5cebfc79de50c8b6ad5d45)
-
-commit 34fba357ca8b662c7b943d426ed37875c173003f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 14 17:05:32 2013 -0800
-
- ceph-disk-activate: use full paths for everything
-
- We are run from udev, which doesn't get a decent PATH.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b1c0fccba42dd184a2891ee873c0d6d8f8c79d14)
-
-commit caad18745cd8553a012d9e7f92e59d5b4450dcf2
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 14 17:04:55 2013 -0800
-
- ceph-disk-prepare: do partprobe after setting final partition type
-
- This is necessary to kick udev into processing the updated partition and
- running its rules.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 95835de9f80712eb26652ac6b66ba9c5eeb093d6)
-
-commit e1624e4626b4e67909f3bb83920c99ad323ed083
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 21:47:30 2013 -0800
-
- debian: start/stop ceph-all event on install/uninstall
-
- This helps us avoid the confusing situation with upstart where an individual
- daemon job is running (like ceph-osd id=2) but the container jobs ceph-osd-all
- and ceph-all are not.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b7b9af5c0d531dcee7ce9b10043a29b0a1b31f47)
-
-commit 656305f65eb33d68b95f4d29f37b031cf6cf889a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 21:37:08 2013 -0800
-
- ceph-disk-activate: catch daemon start errors
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 690ae05309db118fb3fe390a48df33355fd068a0)
-
-commit 8b771bf929c4a9ab3fd4eb6f40b9222a463fd1a4
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 17:30:19 2013 -0800
-
- udev: trigger ceph-disk-activate directly from udev
-
- There is no need to depend on upstart for this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5bd85ee5aa31bfd1f4f0e434f08c2a19414358ef)
-
- Conflicts:
-
- ceph.spec.in
-
-commit ffb0613efaa9cf919992640322785eedf95ca25f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 16:02:10 2013 -0800
-
- ceph-disk-activate: auto detect init system
-
- Look for an option 'init' in ceph.conf. Otherwise, check if we're ubuntu.
- If so, use upstart. Otherwise, use sysvinit.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d1904b2a848af3c02d2065ac2a42abe0e2699d0f)
-
-commit 74b562703c422890c67b2a88d7b18242f64949dc
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Feb 13 15:49:42 2013 -0800
-
- ceph-disk-activate: specify full path for blkid, initctl, service
-
- /sbin apparently isn't in the path when udev runs us.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f06b45e66315310abb0720e021da377186455048)
-
-commit 9ea32e5f066bee75923212d8009fb37a365ef32e
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 19:18:23 2013 -0800
-
- upstart: ceph-hotplug -> ceph-osd-activate
-
- This is a more meaningful name.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e011ad128e7f302cb6955d9a7171ac0ec8890ddf)
-
-commit 494533a55010a59a52f6dcbe64f76e677a7dfe8e
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 19:14:22 2013 -0800
-
- upstart/ceph-hotplug: tell activate to start via upstart
-
- This will mark the OSD data dir as upstart-managed.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 792e45c63dd7a9622fddd6e15ee4c075f995ea56)
-
-commit 5e0892fd8cbc2571d94cffc0b64daaa4ec6c38f8
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 19:08:22 2013 -0800
-
- ceph-disk-prepare: refactor to support DIR, DISK, or PARTITION for data or journal
-
- Lots of code reorganization collapsed into a single commit here.
-
- - detect whether the user gave us a directory, disk, or partition, and Do The
- Right Thing
- - allow them to force that the input was of type X, for the careful/paranoid.
- - make --zap-disk an option -- no longer the default
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b2ff6e8c9d96dee2c063b126de7030a5c2ae0d02)
-
-commit aa428017e4aad9872a54cd87036ef2bb528aac7b
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 20:33:16 2013 -0800
-
- ceph-disk-activate: detect whether PATH is mount or dir
-
- remove in-the-way symlinks in /var/lib/ceph/osd
-
- This is simpler. Just detect what the path is and Do The Right Thing.
-
- Closes #3341 (which wanted to make --mount the default)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 191d5f7535f8d96d493e1b35b43a421c67c168ea)
-
-commit e6d5aa053dbaaf07c94e35406c23f4ca009fe2da
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 20:32:47 2013 -0800
-
- ceph-disk-activate: add --mark-init INITSYSTEM option
-
- Do not assume we will manage via upstart; let that be passed down via the
- command line.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fd4a921085a861e4aa428376219bb39055731f2b)
-
-commit fa23919eae363291b4807afe3fadd34f94e9ddcb
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 14:44:26 2013 -0800
-
- ceph-disk-activate: factor mounting out of activate
-
- The activate stuff is generic for any OSD, regardless of whether we want
- to mount it or not. Pull that part out.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 07655288281c9c6f691f87352dc26b7c11ae07e8)
-
-commit 181ebdee0addfe3d13c13342def94ecf9415d6d5
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 18:17:55 2013 -0800
-
- debian: put ceph-mds upstart conf in ceph-mds package
-
- Fixes: #3157
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 23ad3a46a0099e263f43e0f0c1df1d21cfe58b3f)
-
-commit 919b0aedf7286e85e6ddc23f99f80f29e1d35db6
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 17:02:52 2013 -0800
-
- debian: include /var/lib/ceph/bootstrap-mds in package
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e80675a0f333c04452d4822fd0eb3c6e92eda3df)
-
-commit f97f49b1e7ca8555c945b93fbc8241f5fa620dd8
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 12 16:26:14 2013 -0800
-
- ceph-create-keys: create mds bootstrap key
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 809143f16c70483ba5bb429dea812d31b67f2b49)
-
-commit f43c339d67b78e6afc3737d26cea4bc05dcea900
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 26 14:45:43 2013 -0800
-
- upstart/ceph-hotplug: drop -- in ceph-disk-activate args
-
- We would like to transition to
-
- ceph-disk-activate --mount DEV
-
- and away from a generic multi-definition PATH argument.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4698b6a1035dee8509ce2d4dab7b34a16b78f7cd)
-
-commit 39df4c81f2166b7e9ac89c591b268b60de4042e6
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 22:53:23 2013 -0800
-
- init-ceph: iterate/locate local sysvinit-tagged directories
-
- Search /var/lib/ceph/$type/ceph-$id and start/stop those daemons if
- present and tagged with the sysvinit file.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c8f528a4070dd3aa0b25c435c6234032aee39b21)
-
-commit 05efb7ab5b289472a1af05d6aa100a7385be304e
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 25 22:52:03 2013 -0800
-
- init-ceph: consider sysvinit-tagged dirs as local
-
- If there is a 'sysvinit' file in the daemon directory in the default
- location (/var/lib/ceph/$type/ceph-$id), consider it sysvinit-managed.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b8aa4769a62e0d88174678cbefd89d9ee2baceea)
-
-commit 8c4c53abf84d30ff4a605225a22575f56d946971
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 11 17:39:03 2013 -0800
-
- ceph-disk-prepare: align mkfs, mount config options with mkcephfs
-
- 'osd mkfs ...', not 'osd fs mkfs ...'. Sigh. Support both.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit af2372ca4a702da70275edd1b1357fcff51e6ae2)
-
-commit a8e7e9df61a7229d9e2b4b4dedc68b5c1bf15c38
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Apr 23 10:00:38 2013 -0700
-
- init-ceph: fix (and simplify) pushing ceph.conf to remote unique name
-
- The old code would only do the push once per remote node (due to the
- list in $pushed_to) but would reset $unique on each attempt. This would
- break if a remote host was processed twice.
-
- Fix by just skipping the $pushed_to optimization entirely.
-
- Fixes: #4794
- Reported-by: Andreas Friedrich <andreas.friedrich@ts.fujitsu.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ccbc4dbc6edf09626459ca52a53a72682f541e86)
-
-commit 9374baccb8a71e1fe5ea2e614feac93e865dd027
-Merge: b6b4ebe aa37726
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 23 12:04:45 2013 -0700
-
- Merge pull request #238 from ceph/wip-bobtail-rbd-backports-req-order
-
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
-
-commit aa37726b8d43d08b495d55dc2aef93854e9539c5
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 23 09:18:30 2013 -0700
-
- rbd: only set STRIPINGV2 feature when needed
-
- Only set the STRIPINGV2 feature if the striping parameters are non-default.
- Specifically, fix the case where the passed-in size and count are == 0.
-
- Fixes: #4710
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5926ffa576e9477324ca00eaec731a224195e7db)
-
- Conflicts:
-
- src/rbd.cc
-
-commit 0e2266dba912cde2c4a86ba7055c8bec3a5bc1a5
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Apr 10 14:16:56 2013 -0700
-
- LibrbdWriteback: complete writes strictly in order
-
- RADOS returns writes to the same object in the same order. The
- ObjectCacher relies on this assumption to make sure previous writes
- are complete and maintain consistency. Reads, however, may be
- reordered with respect to each other. When writing to an rbd clone,
- reads to the parent must be performed when the object does not exist
- in the child yet. These reads may be reordered, resulting in the
- original writes being reordered. This breaks the assmuptions of the
- ObjectCacher, causing an assert to fail.
-
- To fix this, keep a per-object queue of outstanding writes to an
- object in the LibrbdWriteback handler, and finish them in the order in
- which they were sent.
-
- Fixes: #4531
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 06d05e5ed7e09fa873cc05021d16f21317a1f8ef)
-
-commit 7a11c2505a8b74babee90cca945c2a068a656ec1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Apr 10 12:22:02 2013 -0700
-
- LibrbdWriteback: removed unused and undefined method
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 909dfb7d183f54f7583a70c05550bec07856d4e4)
-
-commit 884438febaf12dc380d4a1a3c3c8d3cbefd32399
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Apr 10 12:06:36 2013 -0700
-
- LibrbdWriteback: use a tid_t for tids
-
- An int could be much smaller, leading to overflow and bad behavior.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 9d19961539b2d50d0c9edee1e3d5ac6912a37f24)
-
-commit 124f81cc5fa5a3ac9e7777ad49dd42d864fd7f68
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Apr 10 12:03:04 2013 -0700
-
- WritebackHandler: make read return nothing
-
- The tid returned by reads is ignored, and would make tracking writes
- internally more difficult by using the same id-space as them. Make read
- void and update all implementations.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 870f9cd421ca7b0094f9f89e13b1898a8302c494)
-
-commit 13ba07a0f3af479861c0e83e3e6441fef1bc8a99
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Apr 1 14:51:46 2013 -0700
-
- ObjectCacher: deduplicate final part of flush_set()
-
- Both versions of flush_set() did the same thing. Move it into a
- helper called from both.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f5b81d8d167d1aa7f82a5776bbb1f319063ab809)
-
-commit 7bc8df1f3e3b60b59672a082eba374729a6866b8
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Apr 10 11:35:46 2013 -0700
-
- test_stress_watch: remove bogus asserts
-
- There's no reason to check the duration of a watch. The notify will
- timeout after 30s on the OSD, but there's no guarantee the client will
- see that in any bounded time. This test is really meant as a stress
- test of the OSDs anyway, not of the clients, so just remove asserts
- about operation duration.
-
- Fixes: #4591
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sam Just <sam.just@inktank.com>
- (cherry picked from commit 4b656730ffff21132f358c2b9a63504dfbf0998d)
-
-commit 4a1c27c0e6e2e70be2b58e01872e321352c8e484
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Apr 1 11:09:52 2013 -0700
-
- librados: don't use lockdep for AioCompletionImpl
-
- This is a quick workaround for the next branch. A more complete fix
- will be done for the master branch. This does not affect correctness,
- just what qa runs with lockdep enabled do.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 267ce0d90b8f3afaaddfdc0556c9bafbf4628426)
-
-commit d36c5b5bd30a9d7e60403a09cedaea28bdc29e99
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 29 12:46:27 2013 -0700
-
- librados: move snapc creation to caller for aio_operate
-
- The common case already has a snapshot context, so avoid duplicating
- it (copying a potentially large vector) in IoCtxImpl::aio_operate().
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 4c4d5591bdb048cd9ffa25b529c6127356e7f9a7)
-
-commit 31a45e8e23ebf9815ce5a4e0c89ddbf384702aad
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Mar 21 16:04:10 2013 -0700
-
- librbd: add an async flush
-
- At this point it's a simple wrapper around the ObjectCacher or
- librados.
-
- This is needed for QEMU so that its main thread can continue while a
- flush is occurring. Since this will be backported, don't update the
- librbd version yet, just add a #define that QEMU and others can use to
- detect the presence of aio_flush().
-
- Refs: #3737
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 302b93c478b3f4bc2c82bfb08329e3c98389dd97)
-
-commit f2e490cb5b1f322e637d787e788733ac4b2496f4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 27 15:42:10 2013 -0700
-
- librbd: use the same IoCtx for each request
-
- Before we were duplicating the IoCtx for each new request since they
- could have a different snapshot context or read from a different
- snapshot id. Since librados now supports setting these explicitly
- for a given request, do that instead.
-
- Since librados tracks outstanding requests on a per-IoCtx basis, this
- also fixes a bug that causes flush() without caching to ignore
- all the outstanding requests, since they were to separate,
- duplicate IoCtxs.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 860493e7ff0d87d02069b243fc1c8326ce0721f9)
-
-commit cbb37fb5470f22949a4dbb747f428943cce4aca7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 27 15:37:27 2013 -0700
-
- librbd: add an is_complete() method to AioCompletions
-
- Mainly this is useful for testing, like flushing and checking that
- all pending writes are complete after the flush finishes.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 2ae32068dee22a0ca0698e230ead98f2eeeff3e6)
-
-commit f9bcffa2482220202e68d6bac70216d44ee5046b
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 27 15:32:29 2013 -0700
-
- librados: add versions of a couple functions taking explicit snap args
-
- Usually the snapid to read from or the snapcontext to send with a write
- are determined implicitly by the IoCtx the operations are done on.
-
- This makes it difficult to have multiple ops in flight to the same
- IoCtx using different snapcontexts or reading from different snapshots,
- particularly when more than one operation may be needed past the initial
- scheduling.
-
- Add versions of aio_read, aio_sparse_read, and aio_operate
- that don't depend on the snap id or snapcontext stored in the IoCtx,
- but get them from the caller. Specifying this information for each
- operation can be a more useful interface in general, but for now just
- add it for the methods used by librbd.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f06debef6c293750539501ec4e6103e5ae078392)
-
-commit fb95b800a4cc431a8bd98692fffbfc150f6f8d67
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 27 14:48:31 2013 -0700
-
- librados: add async flush interface
-
- Sometimes you don't want flush to block, and can't modify
- already scheduled aio_writes. This will be useful for a
- librbd async flush interface.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 7cc0940f89070dadab5b9102b1e78362f762f402)
-
- Conflicts:
-
- src/include/rados/librados.h
- src/include/rados/librados.hpp
-
-commit 3a61d17b6729b73d0bf2df106f54dafb603af646
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Mar 28 10:34:37 2013 -0700
-
- ObjectCacher: remove unneeded var from flush_set()
-
- The gather will only have subs if there is something to flush. Remove
- the safe variable, which indicates the same thing, and convert the
- conditionals that used it to an else branch. Movinig gather.activate()
- inside the has_subs() check has no effect since activate() does
- nothing when there are no subs.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 553aaac8a19e2359acf6d9d2e1bb4ef0bdba7801)
-
-commit ee7bf281005cce671e467ca9b9eff0ba7eb9899e
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 22 12:17:43 2013 -0700
-
- ObjectCacher: remove NULL checks in flush_set()
-
- Callers will always pass a callback, so assert this and remove the
- checks for it being NULL.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 41568b904de6d155e5ee87c68e9c31cbb69508e5)
-
-commit d86f9b1dd370563170ab875c6a7de511f05acbf7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 22 12:13:36 2013 -0700
-
- ObjectCacher: always complete flush_set() callback
-
- This removes the last remnants of
- b5e9995f59d363ba00d9cac413d9b754ee44e370. If there's nothing to flush,
- immediately call the callback instead of deleting it. Callers were
- assuming they were responsible for completing the callback whenever
- flush_set() returned true, and always called complete(0) in this
- case. Simplify the interface and just do this in flush_set(), so that
- it always calls the callback.
-
- Since C_GatherBuilder deletes its finisher if there are no subs,
- only set its finisher when subs are present. This way we can still
- call ->complete() for the callback.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 92db06c05dc2cad8ed31648cb08866781aee2855)
-
- Conflicts:
-
- src/client/Client.cc
-
-commit 00dfb3f06fb6c2581a3f71126adcde0126e5e207
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Jan 29 14:22:15 2013 -0800
-
- ObjectCacher: fix flush_set when no flushing is needed
-
- C_GatherBuilder takes ownership of the Context we pass it. Deleting it
- in flush_set after constructing the C_GatherBuilder results in a
- double delete.
-
- Fixes: #3946
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sam Lang <sam.lang@inktank.com>
- (cherry picked from commit 3bc21143552b35698c9916c67494336de8964d2a)
-
-commit 0f2e5d36e4dcd073174715c310fa22a835ca1259
-Author: Sam Lang <sam.lang@inktank.com>
-Date: Fri Jan 18 14:59:12 2013 -0600
-
- objectcacher: Remove commit_set, use flush_set
-
- commit_set() and flush_set() are identical in functionality,
- so use flush_set everywhere and remove commit_set from
- the code.
-
- Also fixes a bug in flush_set where the finisher context was
- getting freed twice if no objects needed to be flushed.
-
- Signed-off-by: Sam Lang <sam.lang@inktank.com>
- (cherry picked from commit 72147fd3a1da8ecbcb31ddf6b66a158d71933909)
-
-commit 3b0c565dceb41dcaf53965321ef420641bcb699b
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 13 09:42:43 2013 -0700
-
- librbd: make aio_writes to the cache always non-blocking by default
-
- When the ObjectCacher's writex blocks, it affects the thread requesting
- the aio, which can cause starvation for other I/O when used by QEMU.
-
- Preserve the old behavior via a config option in case this has any
- bad side-effects, like too much memory usage under heavy write loads.
-
- Fixes: #4091
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 03ac01fa6a94fa7a66ede057e9267e0a562c3cdb)
-
-commit e237dfc742bba76664861a8868c502946fe53548
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 13 09:37:21 2013 -0700
-
- ObjectCacher: optionally make writex always non-blocking
-
- Add a callback argument to writex, and a finisher to run the
- callbacks. Move the check for dirty+tx > max_dirty into a helper that
- can be called from a wrapper around the callbacks from writex, or from
- the current place in _wait_for_write().
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit c21250406eced8e5c467f492a2148c57978634f4)
-
-commit 7bc1596b90d2d5853659cb3ffbe9653b633345f4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 27 17:30:42 2013 -0700
-
- librbd: flush cache when set_snap() is called
-
- If there are writes pending, they should be sent while the image
- is still writeable. If the image becomes read-only, flushing the
- cache will just mark everything dirty again due to -EROFS.
-
- Fixes: #4525
- Backport: bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 613b7085bb48cde1e464b7a97c00b8751e0e917f)
-
-commit 9facdcac7bb8ab92f1ab486eaabee681e6b6519d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 15 17:28:13 2013 -0700
-
- librbd: optionally wait for a flush before enabling writeback
-
- Older guests may not send flushes properly (i.e. never), so if this is
- enabled, rbd_cache=true is safe for them transparently.
-
- Disable by default, since it will unnecessarily slow down newer guest
- boot, and prevent writeback caching for things that don't need to send
- flushes, like the command line tool.
-
- Refs: #3817
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1597b3e3a1d776b56e05c57d7c3de396f4f2b5b2)
-
-commit 1c44b66fb371a5864860c067bb5f59374f43005d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 8 18:57:24 2013 -0800
-
- librbd: invalidate cache when flattening
-
- The cache stores which objects don't exist. Flatten bypasses the cache
- when doing its copyups, so when it is done the -ENOENT from the cache
- is treated as zeroes instead of 'need to read from parent'.
-
- Clients that have the image open need to forgot about the cached
- non-existent objects as well. Do this during ictx_refresh, while the
- parent_lock is held exclusively so no new reads from the parent can
- happen until the updated parent metadata is visible, so no new reads
- from the parent will occur.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 46e8fc00b2dc8eb17d8777b6ef5ad1cfcc389cea)
-
-commit d9ca1b00a4dacb4715a69a276a644d645d0d5bc1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 8 17:53:31 2013 -0800
-
- ObjectCacher: add a method to clear -ENOENT caching
-
- Clear the exists and complete flags for any objects that have exists
- set to false, and force any in-flight reads to retry if they get
- -ENOENT instead of generating zeros.
-
- This is useful for getting the cache into a consistent state for rbd
- after an image has been flattened, since many objects which previously
- did not exist and went up to the parent to retrieve data may now exist
- in the child.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f2a23dc0b092c5ac081893e8f28c6d4bcabd0c2e)
-
-commit 1e51be05b7909a676ae499ca84e4cce94bb50da4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Mar 8 17:49:27 2013 -0800
-
- ObjectCacher: keep track of outstanding reads on an object
-
- Reads always use C_ReadFinish as a callback (and they are the only
- user of this callback). Keep an xlist of these for each object, so
- they can remove themselves as they finish. To prevent racing requests
- and with discard removing objects from the cache, clear the xlist in
- the object destructor, so if the Object is still valid the set_item
- will still be on the list.
-
- Make the ObjectCacher constructor take an Object* instead of the pool
- and object id, which are derived from the Object* anyway.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f6f876fe51e40570596c25ac84ba3689f72776c2)
-
-commit f2bcf241257500f5784b216b7a377ddec4669531
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 25 16:09:26 2013 -0800
-
- test_rbd: move flatten tests back into TestClone
-
- They need the same setup, and it's easy enough to run specific
- subtests. Making them a separate subclass accidentally duplicated
- tests from TestClone.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 9c693d7e8312026f6d8d9586381b026ada35d808)
-
-commit cd989681823a2b8521c789f5d4fea5525ac53911
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Feb 26 13:20:08 2013 -0800
-
- librbd: fix rollback size
-
- The duplicate calls to get_image_size() and get_snap_size() replaced
- by 5806226cf0743bb44eaf7bc815897c6846d43233 uncovered this. The first
- call was using the currently set snap_id instead of the snapshot being
- rolled back to.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit d6c126e2131fefab6df676f2b9d0addf78f7a488)
-
-commit 796066b7a8324b12a660d9b80b927e643db7529e
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 25 12:05:16 2013 -0800
-
- Merge branch 'wip-4249' into wip-4249-master
-
- Make snap_rollback() only take a read lock on snap_lock, since
- it does not modify snapshot-related fields.
- Conflicts:
- src/librbd/internal.cc
- (cherry picked from commit db5fc2270f91aae220fc3c97b0c62e92e263527b)
-
-commit 34e9030e50fe15a320cbfbc9854c86deb3a9c57c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 21 11:26:45 2013 -0800
-
- librbd: make sure racing flattens don't crash
-
- The only way for a parent to disappear is a racing flatten completing,
- or possibly in the future the image being forcibly removed. In either
- case, continuing to flatten makes no sense, so stop early.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit a1ae8562877d1b902918e866a1699214090c40bd)
-
-commit 6e6636d50840e97022c8e4a1072f42fee15050a9
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 21 11:17:18 2013 -0800
-
- librbd: use rwlocks instead of mutexes for several fields
-
- Image metadata like snapshots, size, and parent is frequently read,
- but rarely updated. During flatten, we were depending on the parent
- lock to prevent the parent ImageCtx from disappearing out from under
- us while we read from it. The copy-up path also needed the parent lock
- to be able to read from the parent image, which lead to a deadlock.
-
- Convert parent_lock, snap_lock, and md_lock to RWLocks, and change
- their use to read instead of exclusive locks where appropriate. The
- main place exclusive locks are needed is in ictx_refresh, so this is
- pretty simple. This fixes the deadlock, since parent_lock is only
- needed for read access in both flatten and the copy-up operation.
-
- cache_lock and refresh_lock are only really used for exclusive access,
- so leave them as regular mutexes.
-
- One downside to this is that there's no way to assert is_locked()
- for RWLocks, so we'll have to be very careful about changing code
- in the future.
-
- Fixes: #3665
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 995ff0e3eaa560b242da8c019a2e11e735e854f7)
-
-commit 9b292199ef63822462c67cb6cf1cca6a53cf9fd7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 21 11:15:41 2013 -0800
-
- common: add lockers for RWLocks
-
- This makes them easier to use, especially instead of existing mutexes.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e0f8e5a80d6d22bd4dee79a4996ea7265d11b0c1)
-
-commit d8ac6cbf883fce0f39d661a879ff2462479d5494
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 21 23:22:59 2013 -0800
-
- objecter: initialize linger op snapid
-
- Since they are write ops now, it must be CEPH_NOSNAP or the OSD
- returns EINVAL.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 15bb9ba9fbb4185708399ed6deee070d888ef6d2)
-
-commit 9ea4dac1db46c20cd83c5af5d29d9ce7a5768380
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 21 15:44:19 2013 -0800
-
- objecter: separate out linger_read() and linger_mutate()
-
- A watch is a mutation, while a notify is a read. The mutations need to
- pass in a proper snap context to be fully correct.
-
- Also, make the WRITE flag implicit so the caller doesn't need to pass it
- in.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6c08c7c1c6d354d090eb16df279d4b63ca7a355a)
-
-commit d9636faabfdb2c0a876f0afa092a2ab925cf8983
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 21 15:31:08 2013 -0800
-
- osd: make watch OSDOp print sanely
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit de4fa95f03b99a55b5713911c364d7e2a4588679)
-
-commit 959bfe9097a2cfa48e2ab21f11bd32c1349807aa
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 21 13:28:47 2013 -0800
-
- osdc/Objecter: unwatch is a mutation, not a read
-
- This was causing librados to unblock after the ACK on unwatch, which meant
- that librbd users raced and tried to delete the image before the unwatch
- change was committed..and got EBUSY. See #3958.
-
- The watch operation has a similar problem.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fea77682a6cf9c7571573bc9791c03373d1d976d)
-
- Conflicts:
-
- src/librados/IoCtxImpl.cc
-
-commit b6b4ebed559db8bf74da4f482201948b5abc9225
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 21 11:15:58 2013 -0800
-
- osd: an interval can't go readwrite if its acting is empty
-
- Let's not forget that min_size can be zero.
-
- Fixes: #4159
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4277265d99647c9fe950ba627e5d86234cfd70a9)
-
-commit 055d746c3bca0d7067b71ed1ff6d1c1cce42b5ed
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 19 08:29:53 2013 -0800
-
- mon: restrict pool size to 1..10
-
- See: #4159
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 30b8d653751acb4bc4be5ca611f154e19afe910a)
-
-commit c073bd25610ba556f3b30e6c583d1d74a10f09e2
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 19 13:05:43 2013 -0700
-
- init-ceph: do not stop start on first failure
-
- When starting we often loop over many daemon instances. Currently we stop
- on the first error and do not try to start other daemons.
-
- Instead, try them all, but return a failure if anything did not start.
-
- Fixes: #2545
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit d395aa521e8a4b295ed2b08dd7cfb7d9f995fcf7)
-
- Conflicts:
-
- src/init-ceph.in
-
-commit daa6ed2bfe790f83f986f51d0917d6268d3e9d78
-Merge: 1d0bf61 9fe57e2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Apr 11 13:00:27 2013 -0700
-
- Merge pull request #210 from dalgaaf/wip-da-bobtail-pybind
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 9fe57e2bea89243a0080e667f90b7d4fb15ed883
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Apr 5 15:55:34 2013 +0200
-
- rados.py: fix create_pool()
-
- Call rados_pool_create_with_all() only if auid and crush_rule
- are set properly. In case only crush_rule is set call
- rados_pool_create_with_crush_rule() on librados, not the other
- way around.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 94a1f25e7230a700f06a2699c9c2b99ec1bf7144)
-
-commit 1d0bf61da98bec7318f44b95a49298e13b792b70
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Apr 8 13:52:32 2013 -0700
-
- mon: Use _daemon version of argparse functions
-
- Allow argparse functions to fail if no argument given by using
- special versions that avoid the default CLI behavior of "cerr/exit"
-
- Fixes: #4678
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit be801f6c506d9fbfb6c06afe94663abdb0037be5)
-
- Conflicts:
- src/mon/Monitor.cc
-
-commit 3769250acf42a751ee8dfa95207a4ffafd25574a
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Apr 8 13:49:22 2013 -0700
-
- ceph_argparse: add _daemon versions of argparse calls
-
- mon needs to call argparse for a couple of -- options, and the
- argparse_witharg routines were attempting to cerr/exit on missing
- arguments. This is appropriate for the CLI usage, but not the daemon
- usage. Add a 'cli' flag that can be set false for the daemon usage
- (and cause the parsing routine to return false instead of exit).
-
- The daemon's parsing code due for a rewrite soon.
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit c76bbc2e6df16d283cac3613628a44937e38bed8)
-
-commit 1f3b4917cc5c4d796a96637912d2ae5ce2877861
-Author: Alexandre Oliva <oliva@gnu.org>
-Date: Wed Feb 6 15:27:13 2013 -0200
-
- silence logrotate some more
-
- I was getting email with logrotate error output from “which invoke-rc.dâ€
- on systems without an invoke-rc.d. This patch silences it.
-
- Silence stderr from which when running logrotate
-
- From: Alexandre Oliva <oliva@gnu.org>
-
- Signed-off-by: Alexandre Oliva <oliva@gnu.org>
- (cherry picked from commit d02340d90c9d30d44c962bea7171db3fe3bfba8e)
-
-commit e6eace2334d04fc9292c96a843304d1748b5bbe7
-Merge: 8cb13a1 1507443
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Mar 29 12:14:22 2013 -0700
-
- Merge remote-tracking branch 'upstream/bobtail-4556' into bobtail
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 8cb13a195c592fd2f17889e77d717c1864f97dca
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Feb 14 14:03:56 2013 -0800
-
- OSD: always activate_map in advance_pgs, only send messages if up
-
- We should always handle_activate_map() after handle_advance_map() in
- order to kick the pg into a valid peering state for processing requests
- prior to dropping the lock.
-
- Additionally, we would prefer to avoid sending irrelevant messages
- during boot, so only send if we are up according to the current service
- osdmap.
-
- Fixes: #4572
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4dfcad44431855ba7d68a1ccb41dc3cb5db6bb50)
-
-commit d89ab0ea6fa8d0961cad82f6a81eccbd3bbd3f55
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Mar 28 14:09:17 2013 -0700
-
- PG: update PGPool::name in PGPool::update
-
- Fixes: #4471
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f804892d725cfa25c242bdc577b12ee81dcc0dcc)
-
-commit 750626108616761512271d5a4f10dee82a54e460
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Mar 26 15:10:37 2013 -0700
-
- ReplicatedPG: send entire stats on OP_BACKFILL_FINISH
-
- Otherwise, we update the stat.stat structure, but not the
- stat.invalid_stats part. This will result in a recently
- split primary propogating the invalid stats but not the
- invalid marker. Sending the whole pg_stat_t structure
- also mirrors MOSDSubOp.
-
- Fixes: #4557
- Backport: bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 76b296f01fd0d337c8fc9f79013883e62146f0c6)
-
-commit 1507443271fda933032ef0877aff1890d4fd5b63
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 13:19:03 2013 -0700
-
- osd: disallow classes with flags==0
-
- They must be RD, WR, or something....
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 89c69016e1dddb9f3ca40fd699e4a995ef1e3eee)
-
-commit 6b6e0cef99e66b46ade35ab262f071982049bc22
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 12:59:41 2013 -0700
-
- osd: EINVAL when rmw_flags is 0
-
- A broken client (e.g., v0.56) can send a request that ends up with an
- rmw_flags of 0. Treat this as invalid and return EINVAL.
-
- Fixes: #4556
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f2dda43c9ed4fda9cfa87362514985ee79e0ae15)
-
-commit 4bdd37495cedb1cf30a5311548492fe3f5db6e92
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 13:08:38 2013 -0700
-
- osd: fix detection of non-existent class method
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 50b831e3641c21cd5b145271688189e199f432d1)
-
-commit f28800f8b65e90a3b96429f07197236e6c9bf1a2
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 27 13:12:38 2013 -0700
-
- osd: tolerate rmw_flags==0
-
- We will let OSD return a proper error instead of asserting.
-
- This is effectively a backport of c313423cfda55a2231e000cd5ff20729310867f8.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 94321ccdff81d5d6cea1acdb54344c3d930a49eb
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Feb 21 17:39:19 2013 -0800
-
- test_librbd_fsx: fix image closing
-
- Always close the image we opened in check_clone(), and check the
- return code of the rbd_close() called before cloning.
-
- Refs: #3958
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 94ae72546507799667197fd941633bb1fd2520c2)
-
-commit 7fbc1ab69267e6be96665b0d4e277dc4a07f9220
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 13 17:05:42 2013 -0700
-
- rbd: remove fiemap use from import
-
- On some kernels and filesystems fiemap can be racy and provide
- incorrect data even after an fsync. Later we can use SEEK_HOLE and
- SEEK_DATA, but for now just detect zero runs like we do with stdin.
-
- Basically this adapts import from stdin to work in the case of a file
- or block device, and gets rid of other cruft in the import that used
- fiemap.
-
- Fixes: #4388
- Backport: bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3091283895e8ffa3e4bda13399318a6e720d498f)
diff --git a/src/ceph/doc/changelog/v0.56.6.txt b/src/ceph/doc/changelog/v0.56.6.txt
deleted file mode 100644
index 17818d2..0000000
--- a/src/ceph/doc/changelog/v0.56.6.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 95a0bda7f007a33b0dc7adf4b330778fa1e5d70c
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri May 3 12:53:00 2013 -0700
-
- v0.56.6
-
-commit 6dbdcf5a210febb5e0dd585e0e599ac807642210
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri May 3 12:45:24 2013 -0700
-
- ceph.spec.in: Fix platform dependecies
-
- Picked up an incorrect dependency merging the rbd udev rules update.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 05af17e697eb95b2a807d9c05cde39106c5ecee9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 22 12:48:56 2013 -0700
-
- rgw: don't send tail to gc if copying object to itself
-
- Fixes: #4776
- Backport: bobtail
- Need to make sure that when copying an object into itself we don't
- send the tail to the garbage collection.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit de5d1da810732ee48f41e8be18257053d862301b)
-
-commit f0eb20a7b0f7c8afadc21cc063f1f289b5092bab
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 3 12:24:21 2013 -0700
-
- ceph_common.sh: re-sync get_name_list with master
-
- We backported various items but didn't catch all the changes! :(
-
- Signed-off-by: Sage Weil <sage@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.56.7.txt b/src/ceph/doc/changelog/v0.56.7.txt
deleted file mode 100644
index b01c0de..0000000
--- a/src/ceph/doc/changelog/v0.56.7.txt
+++ /dev/null
@@ -1,454 +0,0 @@
-commit 14f23ab86b0058a8651895b3dc972a29459f3a33
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Tue Aug 27 10:44:32 2013 -0700
-
- v0.56.7
-
-commit 8551be345c86837e0893fdf6c9c5b0af523f50f8
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 21 14:28:49 2013 -0700
-
- objecter: resend unfinished lingers when osdmap is no longer paused
-
- Plain Ops that haven't finished yet need to be resent if the osdmap
- transitions from full or paused to unpaused. If these Ops are
- triggered by LingerOps, they will be cancelled instead (since
- should_resend = false), but the LingerOps that triggered them will not
- be resent.
-
- Fix this by checking the registered flag for all linger ops, and
- resending any of them that aren't paused anymore.
-
- Fixes: #6070
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 38a0ca66a79af4b541e6322467ae3a8a4483cc72)
-
-commit 1670a73b56e0b407b65334d8f03d3ebb9558ac8b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 12:52:41 2013 -0700
-
- librados: fix async aio completion wakeup
-
- For aio flush, we register a wait on the most recent write. The write
- completion code, however, was *only* waking the waiter if they were waiting
- on that write, without regard to previous writes (completed or not).
- For example, we might have 6 and 7 outstanding and wait on 7. If they
- finish in order all is well, but if 7 finishes first we do the flush
- completion early. Similarly, if we
-
- - start 6
- - start 7
- - finish 7
- - flush; wait on 7
- - finish 6
-
- we can hang forever.
-
- Fix by doing any completions that are prior to the oldest pending write in
- the aio write completion handler.
-
- Refs: #5919
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 16ed0b9af8bc08c7dabead1c1a7c1a22b1fb02fb)
-
-commit 6cf05375abea26d2645e3301c9082c64ddf31a55
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Aug 12 19:17:09 2013 -0700
-
- librados: fix locking for AioCompletionImpl refcounting
-
- Add an already-locked helper so that C_Aio{Safe,Complete} can
- increment the reference count when their caller holds the
- lock. C_AioCompleteAndSafe's caller is not holding the lock, so call
- regular get() to ensure no racing updates can occur.
-
- This eliminates all direct manipulations of AioCompletionImpl->ref,
- and makes the necessary locking clear.
-
- The only place C_AioCompleteAndSafe is used is in handling
- aio_flush_async(). This could cause a missing completion.
-
- Refs: #5919
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 7a52e2ff5025754f3040eff3fc52d4893cafc389)
-
-commit 6a37a62b6f794026b82b88630519ec2cde4f20d6
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 12 10:05:44 2013 -0700
-
- rgw: fix multi delete
-
- Fixes: #5931
- Backport: bobtail, cuttlefish
-
- Fix a bad check, where we compare the wrong field. Instead of
- comparing the ret code to 0, we compare the string value to 0
- which generates implicit casting, hence the crash.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f9f1c48ad799da2b4be0077bf9d61ae116da33d7)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
-commit 586c68f544c95f9e379df7e4d2705a3090baca49
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 21:21:09 2013 -0700
-
- ceph-fuse: create finisher threads after fork()
-
- The ObjectCacher and MonClient classes both instantiate Finisher
- threads. We need to make sure they are created *after* the fork(2)
- or else the process will fail to join() them on shutdown, and the
- threads will not exist while fuse is doing useful work.
-
- Put CephFuse on the heap and move all this initalization into the child
- block, and make sure errors are passed back to the parent.
-
- Fix-proposed-by: Alexandre Marangone <alexandre.maragone@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c1198d680587928b390bb82c87442384331afd40
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 21 16:22:08 2013 -0700
-
- debian: update postinst, prerm hooks
-
- This syncs up the hooks with the latest master versions. In particular,
- do not blindly stop/restart daemons on package upgrade!
-
- Fixes: #5414
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit de8900dcd079207852b6ce0b51473037be9ae956
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 18 21:33:09 2013 -0700
-
- os/FileStore: use fdatasync(2) instead of sync_file_range(2)
-
- This fixes data corruption on XFS. Backported from
- ffade3c85dfffa13a16edd9630a52d99eb8a413d.
-
- Fixes: #4976
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit cbbad5b5d917fe74d6cbc50a259f9dbaeda54ca8
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 20:06:59 2013 -0700
-
- chmod +x iogen.sh
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit fcd65139135d907098a47427d8503ac6d6042f81
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jun 14 14:53:54 2013 -0700
-
- rgw: escape prefix correctly when listing objects
-
- Fixes: #5362
- When listing objects prefix needs to be escaped correctly (the
- same as with the marker). Otherwise listing objects with prefix
- that starts with underscore doesn't work.
- Backport: bobtail, cuttlefish
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit a8f9d57a15ad7a69d53aa8fc6090fd1b394b616a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Sun Mar 31 00:02:15 2013 -0700
-
- rgw: translate object marker to raw format
-
- Fixes: #4600
- Object marker should be treated as an object, so that name is formatted
- correctly when getting the raw oid.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b083dece36a050ec15ac41a275aeef0ece1ac009)
-
-commit e1d41901cde97a77fc1fda2d7f6e78a7cea61c5c
-Author: tamil <tamil.muthamizhan@inktank.com>
-Date: Thu Jun 13 13:50:56 2013 -0700
-
- adding iogen.sh
-
- Signed-off-by: tamil <tamil.muthamizhan@inktank.com>
-
-commit 32b2f11366418f9a0cc0659be22cf15fbafbe3b1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 6 16:35:54 2013 -0700
-
- osd: do not include logbl in scrub map
-
- This is a potentially use object/file, usually prefixed by a zeroed region
- on disk, that is not used by scrub at all. It dates back to
- f51348dc8bdd5071b7baaf3f0e4d2e0496618f08 (2008) and the original version of
- scrub.
-
- This *might* fix #4179. It is not a leak per se, but I observed 1GB
- scrub messages going over the write. Maybe the allocations are causing
- fragmentation, or the sub_op queues are growing.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0b036ecddbfd82e651666326d6f16b3c000ade18)
-
-commit 5047a4ff16f556ec25b6624fe8f1a07e3ec5f864
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 6 21:53:00 2013 -0700
-
- rgw: handle deep uri resources
-
- In case of deep uri resources (ones created beyond a single level
- of hierarchy, e.g. auth/v1.0) we want to create a new empty
- handlers for the path if no handlers exists. E.g., for
- auth/v1.0 we need to have a handler for 'auth', otherwise
- the default S3 handler will be used, which we don't want.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit ad3934e335399f7844e45fcfd17f7802800d2cb3)
-
-commit 3ea45533c18174cb49af52024dae27533971fa01
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 6 21:47:21 2013 -0700
-
- rgw: fix get_resource_mgr() to correctly identify resource
-
- Fixes: #5262
- The original test was not comparing the correct string, ended up
- with the effect of just checking the substring of the uri to match
- the resource.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 8d55b87f95d59dbfcfd0799c4601ca37ebb025f5)
-
-commit 4ee638cc3b1d74e678a3f78b3a57baf57a5d407c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Apr 15 16:33:48 2013 -0700
-
- PG: don't write out pg map epoch every handle_activate_map
-
- We don't actually need to write out the pg map epoch on every
- activate_map as long as:
- a) the osd does not trim past the oldest pg map persisted
- b) the pg does update the persisted map epoch from time
- to time.
-
- To that end, we now keep a reference to the last map persisted.
- The OSD already does not trim past the oldest live OSDMapRef.
- Second, handle_activate_map will trim if the difference between
- the current map and the last_persisted_map is large enough.
-
- Fixes: #4731
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 8c6a912ae46c4d3aeb7c1000d221f67e158ec5c8
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu May 30 12:58:11 2013 -0700
-
- rgw: only append prefetched data if reading from head
-
- Fixes: #5209
- Backport: bobtail, cuttlefish
- If the head object wrongfully contains data, but according to the
- manifest we don't read from the head, we shouldn't copy the prefetched
- data. Also fix the length calculation for that data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit c5fc52ae0fc851444226abd54a202af227d7cf17)
-
-commit f42e84ee3148dcc59a05c8a12ce39996eb854e26
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu May 30 09:34:21 2013 -0700
-
- rgw: don't copy object idtag when copying object
-
- Fixes: #5204
- When copying object we ended up also copying the original
- object idtag which overrode the newly generated one. When
- refcount put is called with the wrong idtag the count
- does't go down.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit b1312f94edc016e604f1d05ccfe2c788677f51d1)
-
-commit d86b9a852b57553448709c2b978ac3a8637cd63f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 16:50:04 2013 -0700
-
- osd: initialize new_state field when we use it
-
- If we use operator[] on a new int field its value is undefined; avoid
- reading it or using |= et al until we initialize it.
-
- Fixes: #4967
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 50ac8917f175d1b107c18ecb025af1a7b103d634)
-
-commit fca54bfbb35f0c200fac52963cd2d1780467f59a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 28 11:10:05 2013 -0700
-
- HashIndex: sync top directory during start_split,merge,col_split
-
- Otherwise, the links might be ordered after the in progress
- operation tag write. We need the in progress operation tag to
- correctly recover from an interrupted merge, split, or col_split.
-
- Fixes: #5180
- Backport: cuttlefish, bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5bca9c38ef5187c7a97916970a7fa73b342755ac)
-
-commit ac6c77830ad9182c7345f10943ea4f537c1629b0
-Merge: 3984b98 0b50d07
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 19:29:06 2013 -0700
-
- Merge remote-tracking branch 'upstream/wip_scrub_tphandle_bobtail' into bobtail
-
- Fixes: #5159
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 0b50d073fab11f64682e20fec7bb71d4e931bd3c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 17:40:44 2013 -0700
-
- PG: ping tphandle during omap loop as well
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 5979a26d521918d74fc3b62b75c9fb6afe109933
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 15:24:39 2013 -0700
-
- PG: reset timeout in _scan_list for each object, read chunk
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit bde6b58baf5e78550980ee5076bbc2d72a52c0fc
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 15:23:05 2013 -0700
-
- OSD,PG: pass tphandle down to _scan_list
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 3984b98804bf18711a7a4fc3940143ab599ad5b5
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed May 22 21:34:52 2013 -0700
-
- rgw: iterate usage entries from correct entry
-
- Fixes: #5152
- When iterating through usage entries, and when user id was
- provided, we started at the user's first entry and not from
- the entry indexed by the request start time.
- This commit fixes the issue.
-
- Backport: bobtail
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 8b3a04dec8be13559716667d4b16cde9e9543feb)
-
-commit 3d7f8f840fb9fd975089af32c85093eeb1eac338
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 12:45:27 2013 -0700
-
- mon: be a bit more verbose about osd mark down events
-
- Put these in the cluster log; they are interesting.
-
- This is a backport of 87767fb1fb9a52d11b11f0b641cebbd9998f089e.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit f21a7f7bf3db61bd533e777297bff1346112a0db
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 3 12:57:00 2013 -0700
-
- rgw: protect ops log socket formatter
-
- Fixes: #4905
- Ops log (through the unix domain socket) uses a formatter, which wasn't
- protected.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d48f1edb07a4d8727ac956f70e663c1b4e33e1dd)
-
-commit 49c04c623466df45003ed2a18445c354c424a078
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:28:40 2013 -0700
-
- librbd: make image creation defaults configurable
-
- Programs using older versions of the image creation functions can't
- set newer parameters like image format and fancier striping.
-
- Setting these options lets them use all the new functionality without
- being patched and recompiled to use e.g. rbd_create3().
- This is particularly useful for things like qemu-img, which does not
- know how to create format 2 images yet.
-
- Refs: #5067
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit aacc9adc4e9ca90bbe73ac153cc754a3a5b2c0a1)
-
-commit 4d7058fe2254f335969f05bef649b1a27d470aa4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:21:24 2013 -0700
-
- rbd.py: fix stripe_unit() and stripe_count()
-
- These matched older versions of the functions, but would segfault
- using the current versions.
-
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 53ee6f965e8f06c7256848210ad3c4f89d0cb5a0)
-
-commit 82a16c32a37dc46e3019cedc2a5407ae34f806e2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:19:46 2013 -0700
-
- cls_rbd: make sure stripe_unit is not larger than object size
-
- Test a few other cases too.
-
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 810306a2a76eec1c232fd28ec9c351e827fa3031)
-
-commit e0de00897468a434e94790a86fc812b77a59614c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 10 22:14:05 2013 -0700
-
- mon: fix validatation of mds ids in mon commands
-
- Fixes: #4996
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5c305d63043762027323052b4bb3ae3063665c6f)
-
- Conflicts:
-
- src/mon/MDSMonitor.cc
diff --git a/src/ceph/doc/changelog/v0.61.1.txt b/src/ceph/doc/changelog/v0.61.1.txt
deleted file mode 100644
index 4dbbe97..0000000
--- a/src/ceph/doc/changelog/v0.61.1.txt
+++ /dev/null
@@ -1,139 +0,0 @@
-commit 56c4847ba82a92023700e2d4920b59cdaf23428d
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed May 8 17:23:47 2013 -0700
-
- v0.61.1
-
-commit 3b94f03ec58abe3d7a6d0359ff9b4d75826f3777
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 2 14:13:07 2013 -0700
-
- mon: dump MonitorDBStore transactions to file
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 797089ef082b99910eebfd9454c03d1f027c93bb)
-
-commit 9143d6d0d0ebaaee81622587dc21a3d562b05c9c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 6 14:21:28 2013 -0700
-
- osd: optionally enable leveldb logging
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0b4c5c1a3349670d11cc3c4fb3c4b3c1a80b2502)
-
-commit 8f456e89ec38f37ae4b444f5cabccd9fc0e415b8
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 6 14:13:50 2013 -0700
-
- mon: allow leveldb logging
-
- 'mon leveldb log = filename'
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c1d5f815546b731e10bfcb81cbcd48b7d432e9c4)
-
-commit 306ebc6a9164feab084123f91a0fe928125f4b74
-Author: Gary Lowell <glowell@inktank.com>
-Date: Wed May 8 16:33:05 2013 -0700
-
- debian/control: squeeze requres cryptsetup package
-
- Squeeze requires the cryptsetup package which has been renamed
- cryptsetup-bin in later versions. Allow either package to
- satisfy the dependency.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit 83bbae415de16f708ca1cb24861ddbb0bd514a7f)
-
-commit e0c0a5c1a711263d234b70b454aca07c23e98243
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed May 8 12:18:49 2013 -0700
-
- osd: don't assert if get_omap_iterator() returns NULL
-
- Fixes: #4949
- This can happen if the object does not exist and it's
- a write operation. Just return -ENOENT.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 36ec6f9bce63641f4fc2e4ab04d03d3ec1638ea0)
-
-commit 82b9299512537b8d921caa044107472adacbdabe
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 8 14:54:33 2013 -0700
-
- ceph-create-keys: gracefully handle no data from admin socket
-
- Old ceph-mon (prior to 393c9372f82ef37fc6497dd46fc453507a463d42) would
- return an empty string and success if the command was not registered yet.
- Gracefully handle that case by retrying.
-
- If we still fail to parse, exit entirely with EINVAL.
-
- Fixes: #4952
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@intank.com>
- (cherry picked from commit e2528ae42c455c522154c9f68b5032a3362fca8e)
-
-commit ee3da880fbc0488467c30b1d0b635e3c50e23cc3
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 8 14:35:54 2013 -0700
-
- init-ceph: fix osd_data location when checking df utilization
-
- Do not assume default osd data location.
-
- Fixes: #4951
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Gary Lowelll <gary.lowell@inktank.com>
- (cherry picked from commit f2a54cc9c98a9f31aef049c74ea932b2d9000d3c)
-
-commit 4848fac24224879bcdc4fcf202d6ab689d8d990f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 7 16:41:22 2013 -0700
-
- OSD: handle stray snap collections from upgrade bug
-
- Previously, we failed to clear snap_collections, which causes split to
- spawn a bunch of snap collections. In load_pgs, we now clear any such
- snap collections and then snap_collections field on the PG itself.
-
- Related: #4927
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8e89db89cb36a217fd97cbc1f24fd643b62400dc)
-
-commit dc6b9e6b2e8c1b41e982430795ff41a65a5813dc
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 7 16:35:57 2013 -0700
-
- PG: clear snap_collections on upgrade
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 252d71a81ef4536830a74897c84a7015ae6ec9fe)
-
-commit b514941ba5f49b6465082e4906b7f4022631bfb3
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 7 16:34:57 2013 -0700
-
- OSD: snap collections can be ignored on split
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 438d9aa152e546b2008ec355b481df71aa1c51a5)
-
-commit 30ffca77df006a244044604074779af538721f14
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 8 11:05:29 2013 -0700
-
- ceph: return error code when failing to get result from admin socket
-
- Make sure we return a non-zero result code when we fail to read something
- from the admin socket.
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 393c9372f82ef37fc6497dd46fc453507a463d42)
diff --git a/src/ceph/doc/changelog/v0.61.2.txt b/src/ceph/doc/changelog/v0.61.2.txt
deleted file mode 100644
index b57c7e6..0000000
--- a/src/ceph/doc/changelog/v0.61.2.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-commit fea782543a844bb277ae94d3391788b76c5bee60
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Mon May 13 11:58:35 2013 -0700
-
- v0.61.2
-
-commit 8464c06412b72673ca9d01d35e8f68451e1982b3
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Mon May 13 15:36:59 2013 +0100
-
- mon: Monitor: tolerate GV duplicates during conversion
-
- Fixes: #4974
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit ba05b16ee2b6e25141f2ab88265a1cf92dcd493c)
-
-commit 703bc2fd8aec512fb2b58d5ef263e37647c1f047
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Fri May 10 20:09:34 2013 -0700
-
- config_opts: default mon_debug_dump_transactions to 'false'
-
- otherwise, it chews mon log space at an alarming rate.
-
- Fixes: #5024
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.61.3.txt b/src/ceph/doc/changelog/v0.61.3.txt
deleted file mode 100644
index c190d40..0000000
--- a/src/ceph/doc/changelog/v0.61.3.txt
+++ /dev/null
@@ -1,831 +0,0 @@
-commit 92b1e398576d55df8e5888dd1a9545ed3fd99532
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Jun 5 11:10:05 2013 -0700
-
- v0.61.3
-
-commit 7d549cb82ab8ebcf1cc104fc557d601b486c7635
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 4 10:42:13 2013 -0700
-
- os/LevelDBStore: only remove logger if non-null
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ce67c58db7d3e259ef5a8222ef2ebb1febbf7362)
- Fixes: #5255
-
-commit 8544ea751884617616addc17b4467b9a86bd9d8a
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Jun 3 15:57:23 2013 -0700
-
- test_librbd: use correct type for varargs snap test
-
- uint64_t is passed in, but int was extracted. This fails on 32-bit builds.
-
- Fixes: #5220
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 17029b270dee386e12e5f42c2494a5feffd49b08)
-
-commit b226e117b5a72c3b04b74aec50a9198601f3730b
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 18:07:34 2013 -0700
-
- os/LevelDBStore: fix merge loop
-
- We were double-incrementing p, both in the for statement and in the
- body. While we are here, drop the unnecessary else's.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit eb6d5fcf994d2a25304827d7384eee58f40939af)
-
-commit d017afb5b075a1958cb19213dd95e41d54065e45
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 17:27:10 2013 -0700
-
- msgr: add get_messenger() to Connection
-
- This was part of commit 27381c0c6259ac89f5f9c592b4bfb585937a1cfc.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ffb87918fa7b829a5199eec08804dc540a819bf2
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 17:09:19 2013 -0700
-
- mon: start lease timer from peon_init()
-
- In the scenario:
-
- - leader wins, peons lose
- - leader sees it is too far behind on paxos and bootstraps
- - leader tries to sync with someone, waits for a quorum of the others
- - peons sit around forever waiting
-
- The problem is that they never time out because paxos never issues a lease,
- which is the normal timeout that lets them detect a leader failure.
-
- Avoid this by starting the lease timeout as soon as we lose the election.
- The timeout callback just does a bootstrap and does not rely on any other
- state.
-
- I see one possible danger here: there may be some "normal" cases where the
- leader takes a long time to issue its first lease that we currently
- tolerate, but won't with this new check in place. I hope that raising
- the lease interval/timeout or reducing the allowed paxos drift will make
- that a non-issue. If it is problematic, we will need a separate explicit
- "i am alive" from the leader while it is getting ready to issue the lease
- to prevent a live-lock.
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit f1ccb2d808453ad7ef619c2faa41a8f6e0077bd9)
-
-commit 38f8d850d35500e3d8751cd14c5cdaaff682c7d7
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 22:52:21 2013 -0700
-
- mon: discard messages from disconnected clients
-
- If the client is not connected, discard the message. They will
- reconnect and resend anyway, so there is no point in processing it
- twice (now and later).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit fb3cd0c2a8f27a1c8d601a478fd896cc0b609011)
-
-commit 36d948981685114d2fe807f480c19aade7497194
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 08:13:21 2013 -0700
-
- msgr: add Messenger reference to Connection
-
- This allows us to get the messenger associated with a connection.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 92a558bf0e5fee6d5250e1085427bff22fe4bbe4)
-
-commit 61135964419ecf5165366724d064b623b517fb4e
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 15:59:49 2013 -0700
-
- mon/Paxos: adjust trimming defaults up; rename options
-
- - trim more at a time (by an order of magnitude)
- - rename fields to paxos_trim_{min,max}; only trim when there are min items
- that are trimmable, and trim at most max items at a time.
- - adjust the paxos_service_trim_{min,max} values up by a factor of 2.
-
- Since we are compacting every time we trim, adjusting these up mean less
- frequent compactions and less overall work for the monitor.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 6b8e74f0646a7e0d31db24eb29f3663fafed4ecc)
-
-commit 2dc402815f71204cfe592cfb3d6758486d84166d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 8 16:42:24 2013 -0700
-
- common/Preforker: fix warnings
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a284c9ece85f11d020d492120be66a9f4c997416)
-
-commit 48ee9283de288c101d3387cc48df6eb8ea889fb7
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 15:53:35 2013 -0700
-
- fix test users of LevelDBStore
-
- Need to pass in cct.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 446e0770c77de5d72858dcf7a95c5b19f642cf98)
-
-commit 3372235d307172b404a48e4c4d24702a96116d00
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 21:43:50 2013 -0700
-
- mon: destroy MonitorDBStore before g_ceph_context
-
- Put it on the heap so that we can destroy it before the g_ceph_context
- cct that it references. This fixes a crash like
-
- *** Caught signal (Segmentation fault) **
- in thread 4034a80
- ceph version 0.63-204-gcf9aa7a (cf9aa7a0037e56eada8b3c1bb59d59d0bfe7bba5)
- 1: ceph-mon() [0x59932a]
- 2: (()+0xfcb0) [0x4e41cb0]
- 3: (Mutex::Lock(bool)+0x1b) [0x6235bb]
- 4: (PerfCountersCollection::remove(PerfCounters*)+0x27) [0x6a0877]
- 5: (LevelDBStore::~LevelDBStore()+0x1b) [0x582b2b]
- 6: (LevelDBStore::~LevelDBStore()+0x9) [0x582da9]
- 7: (main()+0x1386) [0x48db16]
- 8: (__libc_start_main()+0xed) [0x658076d]
- 9: ceph-mon() [0x4909ad]
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit df2d06db6f3f7e858bdadcc8cd2b0ade432df413)
-
-commit d284eaf9ce7d2022ba62562236d5fa41c26c1eb3
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 11:07:06 2013 -0700
-
- mon: fix leak of health_monitor and config_key_service
-
- Switch to using regular pointers here. The lifecycle of these services is
- very simple such that refcounting is overkill.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c888d1d3f1b77e62d1a8796992e918d12a009b9d)
-
-commit cc88cdfe8de02da675f9051e95b70da11f7fbe9e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 17:54:17 2013 -0700
-
- mon: return instead of exit(3) via preforker
-
- This lets us run all the locally-scoped dtors so that leak checking will
- work.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3c5706163b72245768958155d767abf561e6d96d)
-
-commit 85d629a5f8e1deef9a562d9a7b371707d90c5ba1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 14:57:42 2013 -0700
-
- os/LevelDBStore: add perfcounters
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7802292e0a49be607d7ba139b44d5ea1f98e07e6)
-
-commit 0109fa8ae70671c2d8ca19bcc95662d5f41cac66
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 14:36:41 2013 -0700
-
- mon: make compaction bounds overlap
-
- When we trim items N to M, compact over range (N-1) to M so that the
- items in the queue will share bounds and get merged. There is no harm in
- compacting over a larger range here when the lower bound is a key that
- doesn't exist anyway.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a47ca583980523ee0108774b466718b303bd3f46)
-
-commit 83b1edac07dd74b91ba2cdfe8b63236d7930c9b1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 14:26:42 2013 -0700
-
- os/LevelDBStore: merge adjacent ranges in compactionqueue
-
- If we get behind and multiple adjacent ranges end up in the queue, merge
- them so that we fire off compaction on larger ranges.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f628dd0e4a5ace079568773edfab29d9f764d4f0)
-
-commit d14665e550d9b2dfc47684b73427042b0744127f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 08:40:32 2013 -0700
-
- mon: compact trimmed range, not entire prefix
-
- This will reduce the work that leveldb is asked to do by only triggering
- compaction of the keys that were just trimmed.
-
- We ma want to further reduce the work by compacting less frequently, but
- this is at least a step in that direction.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6da4b20ca53fc8161485c8a99a6b333e23ace30e)
-
-commit dcd9b793fb0b05976b55be029315114d6f1df0e5
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 08:35:44 2013 -0700
-
- mon/MonitorDBStore: allow compaction of ranges
-
- Allow a transaction to describe the compaction of a range of keys. Do this
- in a backward compatible say, such that older code will interpret the
- compaction of a prefix + range as compaction of the entire prefix. This
- allows us to avoid introducing any new feature bits.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ab09f1e5c1305a64482ebbb5a6156a0bb12a63a4)
-
- Conflicts:
-
- src/mon/MonitorDBStore.h
-
-commit 6543da740a12c6ad085b807c9038d5b7b5aeaba6
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 08:34:13 2013 -0700
-
- os/LevelDBStore: allow compaction of key ranges
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e20c9a3f79ccfeb816ed634ca25de29fc5975ea8)
-
-commit 87dcba2dd12a673fdc63ad64fb23e6e9f841d74f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 28 16:35:55 2013 -0700
-
- os/LevelDBStore: do compact_prefix() work asynchronously
-
- We generally do not want to block while compacting a range of leveldb.
- Push the blocking+waiting off to a separate thread. (leveldb will do what
- it can to avoid blocking internally; no reason for us to wait explicitly.)
-
- This addresses part of #5176.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4af917d4478ec07734a69447420280880d775fa2)
-
-commit bac5720b2a583e799c6961c733c4a9132a002440
-Author: Sage Weil <sage@inktank.com>
-Date: Sat May 11 17:36:13 2013 -0700
-
- qa: rsync test: exclude /usr/local
-
- Some plana have non-world-readable crap in /usr/local/samba. Avoid
- /usr/local entirely for that and any similar landmines.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 82211f2197241c4f3d3135fd5d7f0aa776eaeeb6)
-
-commit 9f1afe1a8e7906bdc54158a4813f011933f6a78f
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 21:16:54 2013 -0700
-
- mon: fix uninitialized fields in MMonHealth
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d7e2ab1451e284cd4273cca47eec75e1d323f113)
-
-commit d5b67d49c87b4fe6a90cdd0bf4fac4f9d9377e81
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 31 13:44:39 2013 -0700
-
- PGLog: only add entry to caller_ops in add() if reqid_is_indexed()
-
- Fixes: #5216
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit a5f6d8967fbbe87f34b23cfcceea84317b647f62
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Apr 15 16:33:48 2013 -0700
-
- PG: don't write out pg map epoch every handle_activate_map
-
- We don't actually need to write out the pg map epoch on every
- activate_map as long as:
- a) the osd does not trim past the oldest pg map persisted
- b) the pg does update the persisted map epoch from time
- to time.
-
- To that end, we now keep a reference to the last map persisted.
- The OSD already does not trim past the oldest live OSDMapRef.
- Second, handle_activate_map will trim if the difference between
- the current map and the last_persisted_map is large enough.
-
- Fixes: #4731
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 2c5a9f0e178843e7ed514708bab137def840ab89)
-
- Conflicts:
-
- src/common/config_opts.h
- src/osd/PG.cc
- - last_persisted_osdmap_ref gets set in the non-static
- PG::write_info
-
-commit 9aaff1492a00e137f84af9b03e3a4608cea4b520
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Fri May 31 12:33:11 2013 -0700
-
- upstart: handle upper case in cluster name and id
-
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit 851619ab6645967e5d7659d9b0eea63d5c402b15)
-
-commit f87a19d34f9a03493eaca654dd176992676c5812
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 21 15:22:56 2013 -0700
-
- OSDMonitor: skip new pools in update_pools_status() and get_pools_health()
-
- New pools won't be full. mon->pgmon()->pg_map.pg_pool_sum[poolid] will
- implicitly create an entry for poolid causing register_new_pgs() to assume that
- the newly created pgs in the new pool are in fact a result of a split
- preventing MOSDPGCreate messages from being sent out.
-
- Fixes: #4813
- Backport: cuttlefish
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0289c445be0269157fa46bbf187c92639a13db46)
-
-commit 34733bdc3b9da13195dfac8a25f98c6de64070d7
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu May 30 12:58:11 2013 -0700
-
- rgw: only append prefetched data if reading from head
-
- Fixes: #5209
- Backport: bobtail, cuttlefish
- If the head object wrongfully contains data, but according to the
- manifest we don't read from the head, we shouldn't copy the prefetched
- data. Also fix the length calculation for that data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit c5fc52ae0fc851444226abd54a202af227d7cf17)
-
-commit 3d91301e5d788f9f9f52ba4067006f39a89e1531
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu May 30 09:34:21 2013 -0700
-
- rgw: don't copy object idtag when copying object
-
- Fixes: #5204
- When copying object we ended up also copying the original
- object idtag which overrode the newly generated one. When
- refcount put is called with the wrong idtag the count
- does't go down.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit b1312f94edc016e604f1d05ccfe2c788677f51d1)
-
-commit 131dca7d10d5b0b7dca5c5cbe9b0b54938805015
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 30 08:53:22 2013 -0700
-
- debian: sync up postinst and prerm with latest
-
- - do not use invoke-rc.d for upstart
- - do not stop daemons on upgrade
- - misc other cleanups
-
- This corresponds to the state of master as of cf9aa7a.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 8b7ca687ded06fe0b67d98e81fa1dabbed440853
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu May 30 18:17:28 2013 +0100
-
- mon: Monitor: backup monmap using all ceph features instead of quorum's
-
- When a monitor is freshly created and for some reason its initial sync is
- aborted, it will end up with an incorrect backup monmap. This monmap is
- incorrect in the sense that it will not contain the monitor's names as
- it will expect on the next run.
-
- This results from us being using the quorum features to encode the monmap
- when backing it up, instead of CEPH_FEATURES_ALL.
-
- Fixes: #5203
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 626de387e617db457d6d431c16327c275b0e8a34)
-
-commit 02ef6e918e4fe0368b02fbc700a4d921ae298dc3
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 09:49:11 2013 -0700
-
- osd: do not assume head obc object exists when getting snapdir
-
- For a list-snaps operation on the snapdir, do not assume that the obc for the
- head means the object exists. This fixes a race between a head deletion and
- a list-snaps that wrongly returns ENOENT, triggered by the DiffItersateStress
- test when thrashing OSDs.
-
- Fixes: #5183
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 29e4e7e316fe3f3028e6930bb5987cfe3a5e59ab)
-
-commit 85ad65e294f2b3d4bd1cfef6ae613e31d1cea635
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 29 16:50:04 2013 -0700
-
- osd: initialize new_state field when we use it
-
- If we use operator[] on a new int field its value is undefined; avoid
- reading it or using |= et al until we initialize it.
-
- Fixes: #4967
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 50ac8917f175d1b107c18ecb025af1a7b103d634)
-
-commit 65236a4a2541799a0d946df7f3048d4404678f64
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 28 11:10:05 2013 -0700
-
- HashIndex: sync top directory during start_split,merge,col_split
-
- Otherwise, the links might be ordered after the in progress
- operation tag write. We need the in progress operation tag to
- correctly recover from an interrupted merge, split, or col_split.
-
- Fixes: #5180
- Backport: cuttlefish, bobtail
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5bca9c38ef5187c7a97916970a7fa73b342755ac)
-
-commit 0e127dc4ef16d19d56a3603ca90fa6b076d905b0
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed May 22 13:59:08 2013 +0100
-
- mon: Paxos: get rid of the 'prepare_bootstrap()' mechanism
-
- We don't need it after all. If we are in the middle of some proposal,
- then we guarantee that said proposal is likely to be retried. If we
- haven't yet proposed, then it's forever more likely that a client will
- eventually retry the message that triggered this proposal.
-
- Basically, this mechanism attempted at fixing a non-problem, and was in
- fact triggering some unforeseen issues that would have required increasing
- the code complexity for no good reason.
-
- Fixes: #5102
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit e15d29094503f279d444eda246fc45c09f5535c9)
-
-commit f29206bdd950d1e916a1422b4826caaf4a8cef3a
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed May 22 13:51:13 2013 +0100
-
- mon: Paxos: finish queued proposals instead of clearing the list
-
- By finishing these Contexts, we make sure the Contexts they enclose (to be
- called once the proposal goes through) will behave as their were initially
- planned: for instance, a C_Command() may retry the command if a -EAGAIN
- is passed to 'finish_contexts', while a C_Trimmed() will simply set
- 'going_to_trim' to false.
-
- This aims at fixing at least a bug in which Paxos will stop trimming if an
- election is triggered while a trim is queued but not yet finished. Such
- happens because it is the C_Trimmed() context that is responsible for
- resetting 'going_to_trim' back to false. By clearing all the contexts on
- the proposal list instead of finishing them, we stay forever unable to
- trim Paxos again as 'going_to_trim' will stay True till the end of time as
- we know it.
-
- Fixes: #4895
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 586e8c2075f721456fbd40f738dab8ccfa657aa8)
-
-commit b73d7c6b7e83fe8ce29e7150f25a4cca7647cccd
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 17 18:23:36 2013 +0100
-
- mon: Paxos: finish_proposal() when we're finished recovering
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 2ff23fe784245f3b86bc98e0434b21a5318e0a7b)
-
-commit 79eb61c4eadd9d94b3b8087d85b7210f4ab71d54
-Merge: a460e53 8682248
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 20:09:29 2013 -0700
-
- Merge branch 'wip_scrub_tphandle' into cuttlefish
-
- Fixes: #5159
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 86822485e518d61d7b2c02a6ff25eb2c4b4bc307
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 17:40:44 2013 -0700
-
- PG: ping tphandle during omap loop as well
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit d62716dd4ceb29032759bf84e864d214fe38a17c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 15:24:39 2013 -0700
-
- PG: reset timeout in _scan_list for each object, read chunk
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit b8a25e08a638c31b9cfc2c1bf6d9bad40e921a9f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 23 15:23:05 2013 -0700
-
- OSD,PG: pass tphandle down to _scan_list
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit a460e53ecac03e9c8f54c402a790e6d8cf75b38c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed May 22 21:34:52 2013 -0700
-
- rgw: iterate usage entries from correct entry
-
- Fixes: #5152
- When iterating through usage entries, and when user id was
- provided, we started at the user's first entry and not from
- the entry indexed by the request start time.
- This commit fixes the issue.
-
- Backport: bobtail
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 8b3a04dec8be13559716667d4b16cde9e9543feb)
-
-commit 48e1b11bcbdbdf8661cb560c8563f91738034287
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 16 20:37:05 2013 -0700
-
- sysvinit: fix enumeration of local daemons when specifying type only
-
- - prepend $local to the $allconf list at the top
- - remove $local special case for all case
- - fix the type prefix checks to explicitly check for prefixes
-
- Fugly bash, but works!
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit c80c6a032c8112eab4f80a01ea18e1fa2c7aa6ed)
-
-commit 6e5f0db75a2bf591bd1fc0a5c2a93051f83ebc5d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 09:47:29 2013 -0700
-
- sysvinit: fix osd weight calculation on remote hosts
-
- We need to do df on the remote host, not locally.
-
- Simlarly, the ceph command uses the osd key, which exists remotely; run it there.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d81d0ea5c442699570bd93a90bea0d97a288a1e9)
-
-commit 674e75bc0783cd9befe9c20e36fbc2cfdac62e5a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 09:47:03 2013 -0700
-
- sysvinit: use known hostname $host instead of (incorrectly) recalculating
-
- We would need to do hostname -s on the remote node, not the local one.
- But we already have $host; use it!
-
- Reported-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit caa15a34cb5d918c0c8b052cd012ec8a12fca150)
-
-commit f4cd61d339419738355a26d7f4fce04eac9dedee
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 20 12:41:30 2013 -0700
-
- mon: be a bit more verbose about osd mark down events
-
- Put these in the cluster log; they are interesting.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 87767fb1fb9a52d11b11f0b641cebbd9998f089e)
-
-commit e04b1894ed7f3a6e95007e58dae5b35357e5c507
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon May 13 14:23:00 2013 -0700
-
- PG: subset_last_update must be at least log.tail
-
- Fixes: 5020
- Backport: bobtail, cuttlefish
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 72bf5f4813c273210b5ced7f7793bc1bf813690c)
-
-commit 3a02e00d1d3b904b312db283faedf4dff37b0f6f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 14 16:35:48 2013 -0700
-
- FileJournal: adjust write_pos prior to unlocking write_lock
-
- In committed_thru, we use write_pos to reset the header.start value in cases
- where seq is past the end of our journalq. It is therefore important that the
- journalq be updated atomically with write_pos (that is, under the write_lock).
-
- The call to align_bl() is moved into do_write in order to ensure that write_pos
- is adjusted correctly prior to write_bl().
-
- Also, we adjust pos at the end of write_bl() such that pos \in [get_top(),
- header.max_size) after write_bl().
-
- Fixes: #5020
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit eaf3abf3f9a7b13b81736aa558c9084a8f07fdbe)
-
-commit 8a030eb0e1b61121f7b1e2b7a551bb213d1c428b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 21 14:36:11 2013 -0700
-
- mon: implement --extract-monmap <filename>
-
- This will make for a simpler process for
- http://docs.ceph.com/docs/master/rados/operations/add-or-rm-mons/#removing-monitors-from-an-unhealthy-cluster
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c0268e27497a4d8228ef54da9d4ca12f3ac1f1bf)
-
-commit 4ad13c945fd29a2d183f7ea6c6ac8a51d24dabe1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:28:40 2013 -0700
-
- librbd: make image creation defaults configurable
-
- Programs using older versions of the image creation functions can't
- set newer parameters like image format and fancier striping.
-
- Setting these options lets them use all the new functionality without
- being patched and recompiled to use e.g. rbd_create3().
- This is particularly useful for things like qemu-img, which does not
- know how to create format 2 images yet.
-
- Refs: #5067
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit aacc9adc4e9ca90bbe73ac153cc754a3a5b2c0a1)
-
-commit 684444f88f2a7cf28f2e685c18f0771730a1d48f
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:21:24 2013 -0700
-
- rbd.py: fix stripe_unit() and stripe_count()
-
- These matched older versions of the functions, but would segfault
- using the current versions.
-
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 53ee6f965e8f06c7256848210ad3c4f89d0cb5a0)
-
-commit 9c7faf957fffb2721ccb915b68ca90ffb0d04a9f
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu May 16 15:19:46 2013 -0700
-
- cls_rbd: make sure stripe_unit is not larger than object size
-
- Test a few other cases too.
-
- backport: cuttlefish, bobtail
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 810306a2a76eec1c232fd28ec9c351e827fa3031)
-
-commit 4071d7a79585ee2768d0a63819d99405a083369f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 3 12:57:00 2013 -0700
-
- rgw: protect ops log socket formatter
-
- Fixes: #4905
- Ops log (through the unix domain socket) uses a formatter, which wasn't
- protected.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d48f1edb07a4d8727ac956f70e663c1b4e33e1dd)
-
-commit 57a6a54db4020debd826a493cccca4695934f693
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 15 23:02:10 2013 -0700
-
- Makefle: force char to be signed
-
- On an armv7l build, we see errors like
-
- warning: rgw/rgw_common.cc:626:16: comparison is always false due to limited range of data type [-Wtype-limits]
-
- from code
-
- char c1 = hex_to_num(*src++);
- ...
- if (c1 < 0)
-
- Force char to be signed (regardless of any weird architecture's default)
- to avoid risk of this leading to misbehavior.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 769a16d6674122f3b537f03e17514ad974bf2a2f)
-
-commit 85fb422a084785176af3b694882964841e02195d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 20 13:34:27 2013 -0700
-
- debian: stop sysvinit on ceph.prerm
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2f193fb931ed09d921e6fa5a985ab87aa4874589)
-
-commit eac3cd2d8334db7c70cbba433610136ff76e447f
-Author: Mike Kelly <pioto@pioto.org>
-Date: Thu May 16 12:29:50 2013 -0400
-
- ceph df: fix si units for 'global' stats
-
- si_t expects bytes, but it was being given kilobytes.
-
- Signed-off-by: Mike Kelly <pioto@pioto.org>
- (cherry picked from commit 0c2b738d8d07994fee4c73dd076ac9364a64bdb2)
-
-commit 7bc7c9d4bc6f5bbadbb5e6f9844a0e1f66373c90
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 16 18:40:29 2013 -0700
-
- udev: install disk/by-partuuid rules
-
- Wheezy's udev (175-7.2) has broken rules for the /dev/disk/by-partuuid/
- symlinks that ceph-disk relies on. Install parallel rules that work. On
- new udev, this is harmless; old older udev, this will make life better.
-
- Fixes: #4865
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d8d7113c35b59902902d487738888567e3a6b933)
-
-commit c2acecbdab93177227a80a114ecc4ce71dbdbe49
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 16 13:17:45 2013 -0700
-
- debian: make radosgw require matching version of librados2
-
- ...indirectly via ceph-common. We get bad behavior when they diverge, I
- think because of libcommon.la being linked both statically and dynamically.
-
- Fixes: #4997
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit 604c83ff18f9a40c4f44bc8483ef22ff41efc8ad)
-
-commit 4c0d3eb72c045c39e8b38fd5abf9ddfbb2219f9c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 10 22:14:05 2013 -0700
-
- mon: fix validatation of mds ids in mon commands
-
- Fixes: #4996
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5c305d63043762027323052b4bb3ae3063665c6f)
diff --git a/src/ceph/doc/changelog/v0.61.4.txt b/src/ceph/doc/changelog/v0.61.4.txt
deleted file mode 100644
index 0964274..0000000
--- a/src/ceph/doc/changelog/v0.61.4.txt
+++ /dev/null
@@ -1,823 +0,0 @@
-commit 1669132fcfc27d0c0b5e5bb93ade59d147e23404
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Jun 19 13:51:38 2013 -0700
-
- v0.61.4
-
-commit b76540f6e2db7a08dee86f84358d56c4ea0b3293
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 14:29:37 2013 -0700
-
- messages/MOSDMarkMeDown: fix uninit field
-
- Fixes valgrind warning:
- ==14803== Use of uninitialised value of size 8
- ==14803== at 0x12E7614: sctp_crc32c_sb8_64_bit (sctp_crc32.c:567)
- ==14803== by 0x12E76F8: update_crc32 (sctp_crc32.c:609)
- ==14803== by 0x12E7720: ceph_crc32c_le (sctp_crc32.c:733)
- ==14803== by 0x105085F: ceph::buffer::list::crc32c(unsigned int) (buffer.h:427)
- ==14803== by 0x115D7B2: Message::calc_front_crc() (Message.h:441)
- ==14803== by 0x1159BB0: Message::encode(unsigned long, bool) (Message.cc:170)
- ==14803== by 0x1323934: Pipe::writer() (Pipe.cc:1524)
- ==14803== by 0x13293D9: Pipe::Writer::entry() (Pipe.h:59)
- ==14803== by 0x120A398: Thread::_entry_func(void*) (Thread.cc:41)
- ==14803== by 0x503BE99: start_thread (pthread_create.c:308)
- ==14803== by 0x6C6E4BC: clone (clone.S:112)
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit eb91f41042fa31df2bef9140affa6eac726f6187)
-
-commit 2434ecca6f8e1f2af62c74cb1b7df277f4a076f7
-Merge: f8973bd 3f32ded
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 19 10:56:51 2013 -0700
-
- Merge remote-tracking branch 'gh/wip-4976-cuttlefish' into cuttlefish
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit f8973bda801dbb2412c4cd83869c0203930f38e9
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 20:32:15 2013 -0700
-
- common/Preforker: fix warning
-
- common/Preforker.h: In member function ‘int Preforker::signal_exit(int)’:
- warning: common/Preforker.h:82:45: ignoring return value of ‘ssize_t safe_write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
-
- This is harder than it should be to fix. :(
- http://stackoverflow.com/questions/3614691/casting-to-void-doesnt-remove-warn-unused-result-error
-
- Whatever, I guess we can do something useful with this return value.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit ce7b5ea7d5c30be32e4448ab0e7e6bb6147af548)
-
-commit 6427985b746b7c29f5337d87b60aab9008a8bc6e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 19 02:50:45 2013 +0100
-
- mon: Monitor: make sure we backup a monmap during sync start
-
- First of all, we must find a monmap to backup. The newest version.
-
- Secondly, we must make sure we back it up before clearing the store.
-
- Finally, we must make sure that we don't remove said backup while
- clearing the store; otherwise, we would be out of a backup monmap if the
- sync happened to fail (and if the monitor happened to be killed before a
- new sync had finished).
-
- This patch makes sure these conditions are met.
-
- Fixes: #5256 (partially)
- Backport: cuttlefish
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5e6dc4ea21b452e34599678792cd36ce1ba3edb3)
-
-commit f8f83e78218ee5b8602cfe6758caf2ecd3e06602
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 19 02:36:44 2013 +0100
-
- mon: Monitor: obtain latest monmap on sync store init
-
- Always use the highest version amongst all the typically available
- monmaps: whatever we have in memory, whatever we have under the
- MonmapMonitor's store, and whatever we have backed up from a previous
- sync. This ensures we always use the newest version we came across
- with.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6284fdce794b73adcc757fee910e975b6b4bd054)
-
-commit 41e1a6beeef69136fe6ec3f31d07ea8c33d64cba
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 19 02:21:58 2013 +0100
-
- mon: Monitor: don't remove 'mon_sync' when clearing the store during abort
-
- Otherwise, we will end up losing the monmap we backed up when we started
- the sync, and the monitor may be unable to start if it is killed or
- crashes in-between the sync abort and finishing a new sync.
-
- Fixes: #5256 (partially)
- Backport: cuttlefish
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit af5a9861d7c6b4527b0d2312d0efa792910bafd9)
-
-commit 3f32ded41818ad3c607339d723c095f166e36f7e
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 18 21:31:23 2013 -0700
-
- os/FileStore: drop posix_fadvise(...DONTNEED)
-
- On XFS this call is problematic because it directly calls the filemap
- writeback without vectoring through xfs. This can break the delicate
- ordering of writeback and range zeroing; see #4976 and this thread
-
- http://oss.sgi.com/archives/xfs/2013-06/msg00066.html
-
- Drop this behavior for now to avoid subtle data corruption.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit ffade3c85dfffa13a16edd9630a52d99eb8a413d
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 18 21:24:16 2013 -0700
-
- os/FileStore: use fdatasync(2) instead of sync_file_range(2)
-
- The use of sync_file_range(2) on XFS screws up XFS' delicate ordering
- of writeback and range zeroing; see #4976 and this thread:
-
- http://oss.sgi.com/archives/xfs/2013-06/msg00066.html
-
- Instead, replace all sync_file_range(2) calls with fdatasync(2), which
- *does* do ordered writeback and should not leak unzeroed blocks.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 3383ba6326aeff6500df4792fcef65740dd6b3ea
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 12 21:47:09 2013 -0700
-
- config: fix run_dir typo
-
- From 654299108bfb11e7dce45f54946d1505f71d2de8.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e9689ac6f5f50b077a6ac874f811d204ef996c96)
-
-commit 41e1416c3585507db75f10ed69f65a5a80370827
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 18 14:51:08 2013 -0700
-
- ceph.spec: create /var/run on package install
-
- The %ghost %dir ... line will make this get cleaned up but won't install
- it.
-
- Reported-by: Derek Yarnell <derek@umiacs.umd.edu>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
- (cherry picked from commit 64ee0148a5b7324c7df7de2d5f869b880529d452)
-
-commit 2df3619169d2e83617fc3005b68de395e982b39a
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 17:03:41 2013 -0700
-
- global: create /var/run/ceph on daemon startup
-
- This handles cases where the daemon is started without the benefit of
- sysvinit or upstart (as with teuthology or ceph-fuse).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 654299108bfb11e7dce45f54946d1505f71d2de8)
-
-commit eace9987c19f4da5cc89ca84abec5e54035b4887
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jun 5 11:10:34 2013 -0700
-
- PG: don't dirty log unconditionally in activate()
-
- merge_log and friends all take care of dirtying the log
- as necessary.
-
- Fixes: #5238
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 5deece1d034749bf72b7bd04e4e9c5d97e5ad6ce)
-
-commit fda618e96690b2693c7a8dd523ece7c1c5a90b67
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Jun 14 17:11:43 2013 +0100
-
- mon: OSDMonitor: don't ignore apply_incremental()'s return on UfP [1]
-
- apply_incremental() may return -EINVAL. Don't ignore it.
-
- [1] UfP = Update from Paxos
-
- Fixes: #5343
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit e3c33f4315cbf8718f61eb79e15dd6d44fc908b7)
-
-commit c14dd154584eef97075e4a260719b6cbe686d4c7
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 16:38:26 2013 -0700
-
- client: handle reset during initial mds session open
-
- If we get a reset during our attempt to open an MDS session, close out the
- Connection* and retry to open the session, moving the waiters over.
-
- Fixes: #5379
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit df8a3e5591948dfd94de2e06640cfe54d2de4322)
-
-commit aa8834831dbfcdebb96841686e3707e552c349f6
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 15:43:40 2013 -0700
-
- ceph-disk: add some notes on wth we are up to
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8c6b24e9039079e897108f28d6af58cbc703a15a)
-
-commit 261964adc5a7efe7c0efac2d527bc10a95498e45
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 16:29:10 2013 -0700
-
- ceph-disk: clear TERM to avoid libreadline hijinx
-
- The weird output from libreadline users is related to the TERM variable.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e538829f16ce19d57d63229921afa01cc687eb86)
-
-commit e36fb3267cdbe0ec5bb01f8a012485de1bbf1652
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 09:49:46 2013 -0700
-
- ceph-disk-udev: set up by-partuuid, -typeuuid symlinks on ancient udev
-
- Make the ancient-udev/blkid workaround script for RHEL/CentOS create the
- symlinks for us too.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d7f7d613512fe39ec883e11d201793c75ee05db1)
-
-commit c3936ebb159b419115bfdc5dc7a23f5807cff9fa
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jun 15 20:06:33 2013 -0700
-
- ceph-disk: do not stop activate-all on first failure
-
- Keep going even if we hit one activation error. This avoids failing to
- start some disks when only one of them won't start (e.g., because it
- doesn't belong to the current cluster).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c9074375bfbe1e3757b9c423a5ff60e8013afbce)
-
-commit 3cb783c31541cebe928b97cf27eb326bb4b54f9b
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 16:30:24 2013 -0700
-
- ceph.spec: include partuuid rules in package
-
- Commit f3234c147e083f2904178994bc85de3d082e2836 missed this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 253069e04707c5bf46869f4ff5a47ea6bb0fde3e)
-
-commit 2d771b57082545e139086f3c5c9f79ba47101a14
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 15:01:14 2013 -0700
-
- ceph.spec: install/uninstall init script
-
- This was commented out almost years ago in commit 9baf5ef4 but it is not
- clear to me that it was correct to do so. In any case, we are not
- installing the rc.d links for ceph, which means it does not start up after
- a reboot.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cc9b83a80262d014cc37f0c974963cf7402a577a)
-
-commit dfe421e44cfa13178950258509a0cf71e308daa1
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 13:39:03 2013 -0700
-
- sysvinit, upstart: ceph-disk activate-all on start
-
- On 'service ceph start' or 'service ceph start osd' or start ceph-osd-all
- we should activate any osd GPT partitions.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 13680976ef6899cb33109f6f841e99d4d37bb168)
-
-commit ef47cf9c9dd7f4a1f549c14f984cd052fc95bb64
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 13:34:40 2013 -0700
-
- ceph-disk: add 'activate-all'
-
- Scan /dev/disk/by-parttypeuuid for ceph OSDs and activate them all. This
- is useful when the event didn't trigger on the initial udev event for
- some reason.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5c7a23687a1a21bec5cca7b302ac4ba47c78e041)
-
-commit 65ec1d87f96694ab08c99a7104329065c7c5ebae
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 13:23:52 2013 -0700
-
- udev: /dev/disk/by-parttypeuuid/$type-$uuid
-
- We need this to help trigger OSD activations.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d512dc9eddef3299167d4bf44e2018b3b6031a22)
-
-commit 4a739b13f420acf4f0af21b4cf133ac08c97ee18
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jun 14 14:53:54 2013 -0700
-
- rgw: escape prefix correctly when listing objects
-
- Fixes: #5362
- When listing objects prefix needs to be escaped correctly (the
- same as with the marker). Otherwise listing objects with prefix
- that starts with underscore doesn't work.
- Backport: bobtail, cuttlefish
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit d582ee2438a3bd307324c5f44491f26fd6a56704)
-
-commit 6edba9e9ad1c115a462aeab858063fe3939a40e4
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 10 17:28:22 2013 -0700
-
- messages/MMonSync: initialize crc in ctor
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cd1c289b96a874ff99a83a44955d05efc9f2765a)
-
-commit 2ad85576850bcb61c3ac8fee38609f9cd51bfac2
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jun 15 08:48:37 2013 -0700
-
- client: fix ancient typo in caps revocation path
-
- If we have dropped all references to a revoked capability, send the ack
- to the MDS. This typo has been there since v0.7 (early 2009)!
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit b7143c2f84daafbe2c27d5b2a2d5dc40c3a68d15)
-
-commit d3d88983bceaf508f2585cc6bf8fc304a0943ffe
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 5 08:42:25 2013 -0700
-
- messages/MMonHealth: remove unused flag field
-
- This was initialized in (one of) the ctor(s), but not encoded/decoded,
- and not used. Remove it. This makes valgrind a happy.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 08bb8d510b5abd64f5b9f8db150bfc8bccaf9ce8)
-
-commit 646d9ccc575bf91cf73fbfaf91ab4d04ed2b5981
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 5 08:34:20 2013 -0700
-
- messages/MMonProbe: fix uninitialized variables
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4974b29e251d433101b69955091e22393172bcd8)
-
-commit 08304a7c46da7517319b7db0b64d1c4f54771472
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jun 15 08:14:40 2013 -0700
-
- common/Preforker: fix broken recursion on exit(3)
-
- If we exit via preforker, call exit(3) and not recursively back into
- Preforker::exit(r). Otherwise you get a hang with the child blocked
- at:
-
- Thread 1 (Thread 0x7fa08962e7c0 (LWP 5419)):
- #0 0x000000309860e0cd in write () from /lib64/libpthread.so.0
- #1 0x00000000005cc906 in Preforker::exit(int) ()
- #2 0x00000000005c8dfb in main ()
-
- and the parent at
-
- #0 0x000000309860eba7 in waitpid () from /lib64/libpthread.so.0
- #1 0x00000000005cc87a in Preforker::parent_wait() ()
- #2 0x00000000005c75ae in main ()
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7e7ff7532d343c473178799e37f4b83cf29c4eee)
-
-commit f202d332dc86844caa9076c7866cc009d87f76b6
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Jun 13 16:38:26 2013 -0700
-
- rules: Don't disable tcmalloc on ARM (and other non-intel)
-
- Fixes #5342
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit cbca9232618e85bd15b8677c9306042caad876a6
-Author: Guilhem Lettron <guilhem+github@lettron.fr>
-Date: Mon May 27 12:41:53 2013 +0200
-
- Remove mon socket in post-stop
-
- If ceph-mon segfault, socket file isn't removed.
-
- By adding a remove in post-stop, upstart clean run directory properly.
-
- Signed-off-by: Guilhem Lettron <guilhem@lettron.fr>
- (cherry picked from commit 554b41b171eab997038e83928c462027246c24f4)
-
-commit 3f8b3cf1d4042ae6bb64a840ff19f859e6ce6dc2
-Author: James Page <james.page@ubuntu.com>
-Date: Mon May 20 10:26:06 2013 +0100
-
- Remove stop on from upstart tasks
-
- Upstart tasks don't have to concept of 'stop on' as they
- are not long running.
- (cherry picked from commit 17f6fccabc262b9a6d59455c524b550e77cd0fe3)
-
-commit 0b9b8368aec049bfdd4cf72b481f3a4aa8cb031e
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jun 12 22:22:42 2013 -0700
-
- ceph-disk: extra dash in error message
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit f86b4e7a4831c684033363ddd335d2f3fb9a189a)
-
-commit ecddd1e0062ae58e8cc75e125cc683fc04b8befe
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri May 24 12:41:11 2013 +0200
-
- ceph-disk: cast output of _check_output()
-
- Cast output of _check_output() to str() to be able to use
- str.split().
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 16ecae153d260407085aaafbad1c1c51f4486c9a)
-
-commit 43855e3788cc90900f1b3424c4e4e2c28e8f351e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri May 24 12:46:15 2013 +0200
-
- ceph-disk: remove unnecessary semicolons
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9785478a2aae7bf5234fbfe443603ba22b5a50d2)
-
-commit 53927f94f3dcf7c57b73b66159d924557d92506e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri May 24 12:33:16 2013 +0200
-
- ceph-disk: fix undefined variable
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9429ff90a06368fc98d146e065a7b9d1b68e9822)
-
-commit f1beeb267d6e19754a9f2f483b5849a6b900f3ce
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri May 24 12:29:07 2013 +0200
-
- ceph-disk: add missing spaces around operator
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit c127745cc021c8b244d721fa940319158ef9e9d4)
-
-commit fe23ae0042629f493792eadb88a30514c29fc1a0
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 22:02:03 2013 -0700
-
- udev: drop useless --mount argument to ceph-disk
-
- It doesn't mean anything anymore; drop it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bcfd2f31a50d27038bc02e645795f0ec99dd3b32)
-
-commit d99e0a8908d4feccc0a73952ee31586c83174589
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 22:01:34 2013 -0700
-
- ceph-disk-udev: activate-journal
-
- Trigger 'ceph-disk activate-journal' from the alt udev rules.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b139152039bfc0d190f855910d44347c9e79b22a)
-
-commit dfbd20104e01ce22c7e501f748b2bf13382ee7f6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 21:56:23 2013 -0700
-
- ceph-disk: do not use mount --move (or --bind)
-
- The kernel does not let you mount --move when the parent mount is
- shared (see, e.g., https://bugzilla.redhat.com/show_bug.cgi?id=917008
- for another person this also confused). We can't use --bind either
- since that (on RHEL at least) screws up /etc/mtab so that the final
- result looks like
-
- /var/lib/ceph/tmp/mnt.HNHoXU /var/lib/ceph/osd/ceph-0 none rw,bind 0 0
-
- Instead, mount the original dev in the final location and then umount
- from the old location.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e5ffe0d2484eb6cbcefcaeb5d52020b1130871a5)
-
-commit 98a990d796e71c62fa64c13230a18a4a40aedcdf
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 21:22:53 2013 -0700
-
- ceph.spec: include by-partuuid udev workaround rules
-
- These are need for old or buggy udev. Having them for new and unbroken
- udev is harmless.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f3234c147e083f2904178994bc85de3d082e2836)
-
-commit 1504e23f177fff00a794c0db76db8a8c72bc8eb7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 12:10:49 2013 -0700
-
- ceph-disk: work around buggy rhel/centos parted
-
- parted on RHEL/Centos prefixes the *machine readable output* with
-
- 1b 5b 3f 31 30 33 34 68
-
- Note that the same thing happens when you 'import readline' in python.
-
- Work around it!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 82ff72f827b9bd7f91d30a09d35e42b25d2a7344)
-
-commit 0b9482bd631aada9e2ca730b6cddd51d7954fb11
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 15:54:58 2013 -0700
-
- ceph-disk: implement 'activate-journal'
-
- Activate an osd via its journal device. udev populates its symlinks and
- triggers events in an order that is not related to whether the device is
- an osd data partition or a journal. That means that triggering
- 'ceph-disk activate' can happen before the journal (or journal symlink)
- is present and then fail.
-
- Similarly, it may be that they are on different disks that are hotplugged
- with the journal second.
-
- This can be wired up to the journal partition type to ensure that osds are
- started when the journal appears second.
-
- Include the udev rules to trigger this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a2a78e8d16db0a71b13fc15457abc5fe0091c84c)
-
-commit 062b9296c98a03f4f291615dce010aebc55aaa32
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 11 18:35:01 2013 -0700
-
- ceph-disk: call partprobe outside of the prepare lock; drop udevadm settle
-
- After we change the final partition type, sgdisk may or may not trigger a
- udev event, depending on how well udev is behaving (it varies between
- distros, it seems). The old code would often settle and wait for udev to
- activate the device, and then partprobe would uselessly fail because it
- was already mounted.
-
- Call partprobe only at the very end, after prepare is done. This ensures
- that if partprobe calls udevadm settle (which is sometimes does) we do not
- get stuck.
-
- Drop the udevadm settle. I'm not sure what this accomplishes; take it out,
- at least until we determine we need it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8b3b59e01432090f7ae774e971862316203ade68)
-
-commit 9f9dc8b85a81529deb6865ec5f1cebb45f04ddc4
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 11:03:37 2013 -0700
-
- ceph-disk: add 'zap' command
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 10ba60cd088c15d4b4ea0b86ad681aa57f1051b6)
-
-commit 4fab29c1c5e4dec79f089e9803adf0e855e5ec4f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 21 12:52:03 2013 -0700
-
- ceph-disk: fix stat errors with new suppress code
-
- Broken by 225fefe5e7c997b365f481b6c4f66312ea28ed61.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bcc8bfdb672654c6a6b48a2aa08267a894debc32)
-
-commit 01ba391b079a494272a071b76f8dee89b5f5c44d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 13 12:35:32 2013 -0700
-
- ceph-disk: add '[un]suppress-activate <dev>' command
-
- It is often useful to prepare but not activate a device, for example when
- preparing a bunch of spare disks. This marks a device as 'do not
- activate' so that it can be prepared without activating.
-
- Fixes: #3255
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 225fefe5e7c997b365f481b6c4f66312ea28ed61)
-
-commit 41a15a63349abc5f3e1c0b8de8fcc543e2567035
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 14 11:21:25 2013 -0700
-
- upstart: start ceph-all on runlevel [2345]
-
- Starting when only one network interface has started breaks machines with
- multiple nics in very problematic ways.
-
- There may be an earlier trigger that we can use for cases where other
- services on the local machine depend on ceph, but for now this is better
- than the existing behavior.
-
- See #5248
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7e08ed1bf154f5556b3c4e49f937c1575bf992b8)
-
-commit 60e4bb0acb41febb75c866646c7102e9a25782f7
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jun 8 17:38:07 2013 -0700
-
- client: set issue_seq (not seq) in cap release
-
- We regularly have been observing a stall where the MDS is blocked waiting
- for a cap revocation (Ls, in our case) and never gets a reply. We finally
- tracked down the sequence:
-
- - mds issues cap seq 1 to client
- - mds does revocation (seq 2)
- - client replies
- - much time goes by
- - client trims inode from cache, sends release with seq == 2
- - mds ignores release because its issue_seq is 1
- - mds later tries to revoke other caps
- - client discards message because it doesn't have the inode in cache
-
- The problem is simply that we are using seq instead of issue_seq in the
- cap release message. Note that the other release call site in
- encode_inode_release() is correct. That one is much more commonly
- triggered by short tests, as compared to this case where the inode needs to
- get pushed out of the client cache.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9b012e234a924efd718826ab6a53b9aeb7cd6649)
-
-commit ae522291d2a9b994a65fed5e63e9fec74eece5be
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 22 15:03:50 2013 -0700
-
- osd: skip mark-me-down message if osd is not up
-
- Fixes crash when the OSD has not successfully booted and gets a
- SIGINT or SIGTERM.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c2e262fc9493b4bb22c2b7b4990aa1ee7846940e)
-
-commit 48f8d6e3ffe9fc5bb71b362e3059ffb2da69926b
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 21:21:51 2013 -0700
-
- ceph-fuse: create finisher threads after fork()
-
- The ObjectCacher and MonClient classes both instantiate Finisher
- threads. We need to make sure they are created *after* the fork(2)
- or else the process will fail to join() them on shutdown, and the
- threads will not exist while fuse is doing useful work.
-
- Put CephFuse on the heap and move all this initalization into the child
- block, and make sure errors are passed back to the parent.
-
- Fix-proposed-by: Alexandre Marangone <alexandre.maragone@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4fa5f99a40792341d247e51488c37301da3c4e4f)
-
-commit 7012d192e6a31d91e57bc9f5b00af6c541ceb3e0
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 6 16:35:54 2013 -0700
-
- osd: do not include logbl in scrub map
-
- This is a potentially use object/file, usually prefixed by a zeroed region
- on disk, that is not used by scrub at all. It dates back to
- f51348dc8bdd5071b7baaf3f0e4d2e0496618f08 (2008) and the original version of
- scrub.
-
- This *might* fix #4179. It is not a leak per se, but I observed 1GB
- scrub messages going over the write. Maybe the allocations are causing
- fragmentation, or the sub_op queues are growing.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0b036ecddbfd82e651666326d6f16b3c000ade18)
-
-commit c75760e39d8df5b1971343e9f9186fd67e154af6
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 6 21:53:00 2013 -0700
-
- rgw: handle deep uri resources
-
- In case of deep uri resources (ones created beyond a single level
- of hierarchy, e.g. auth/v1.0) we want to create a new empty
- handlers for the path if no handlers exists. E.g., for
- auth/v1.0 we need to have a handler for 'auth', otherwise
- the default S3 handler will be used, which we don't want.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit ad3934e335399f7844e45fcfd17f7802800d2cb3)
-
-commit bd12e81e48014024171c55f5984c9183c8e363cb
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 6 21:47:21 2013 -0700
-
- rgw: fix get_resource_mgr() to correctly identify resource
-
- Fixes: #5262
- The original test was not comparing the correct string, ended up
- with the effect of just checking the substring of the uri to match
- the resource.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 8d55b87f95d59dbfcfd0799c4601ca37ebb025f5)
-
-commit b1d436e752c9c20e7dbff91b769cb2ba47383571
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jun 6 11:22:38 2013 -0700
-
- rgw: add 'cors' to the list of sub-resources
-
- Fixes: #5261
- Backport: cuttlefish
- Add 'cors' to the list of sub-resources, otherwise auth signing
- is wrong.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9a0a9c205b8c24ca9c1e05b0cf9875768e867a9e)
-
-commit 4bf75015ae7539a9dbabbbfc0c784dbd58aa6004
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 21:23:45 2013 -0700
-
- mon: fix preforker exit behavior behavior
-
- In 3c5706163b72245768958155d767abf561e6d96d we made exit() not actually
- exit so that the leak checking would behave for a non-forking case.
- That is only needed for the normal exit case; every other case expects
- exit() to actually terminate and not continue execution.
-
- Instead, make a signal_exit() method that signals the parent (if any)
- and then lets you return. exit() goes back to it's usual behavior,
- fixing the many other calls in main().
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 92d085f7fd6224ffe5b7651c1f83b093f964b5cd)
-
-commit d398a1850d5895ad409f5229f0dc06651c3d4d75
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Jun 4 13:23:36 2013 -0700
-
- rados.py: correct some C types
-
- trunc was getting size_t instead of uint64_t, leading to bad results
- in 32-bit environments. Explicitly cast to the desired type
- everywhere, so it's clear the correct type is being used.
-
- Fixes: #5233
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 6dd7d469000144b499af84bda9b735710bb5cec3)
diff --git a/src/ceph/doc/changelog/v0.61.5.txt b/src/ceph/doc/changelog/v0.61.5.txt
deleted file mode 100644
index 9d99f91..0000000
--- a/src/ceph/doc/changelog/v0.61.5.txt
+++ /dev/null
@@ -1,1199 +0,0 @@
-commit 8ee10dc4bb73bdd918873f29c70eedc3c7ef1979
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Jul 17 16:39:08 2013 -0700
-
- v0.61.5
-
-commit 39bffac6b6c898882d03de392f7f2218933d942b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 13:14:50 2013 -0700
-
- ceph-disk: rely on /dev/disk/by-partuuid instead of special-casing journal symlinks
-
- This was necessary when ceph-disk-udev didn't create the by-partuuid (and
- other) symlinks for us, but now it is fragile and error-prone. (It also
- appears to be broken on a certain customer RHEL VM.) See
- d7f7d613512fe39ec883e11d201793c75ee05db1.
-
- Instead, just use the by-partuuid symlinks that we spent all that ugly
- effort generating.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 64379e701b3ed862c05f156539506d3382f77aa8)
-
-commit 363d54288254b5e2311cd28fce5988d68cfd5773
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 16 16:49:48 2013 +0100
-
- mon: Monitor: StoreConverter: clearer debug message on 'needs_conversion()'
-
- The previous debug message outputted the function's name, as often our
- functions do. This was however a source of bewilderment, as users would
- see those in logs and think their stores would need conversion. Changing
- this message is trivial enough and it will make ceph users happier log
- readers.
-
- Backport: cuttlefish
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ad1392f68170b391d11df0ce5523c2d1fb57f60e)
-
-commit 0ea89760def73f76d8100889eca3c25b0a6eb772
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 16 16:45:39 2013 +0100
-
- mon: Monitor: do not reopen MonitorDBStore during conversion
-
- We already open the store on ceph_mon.cc, before we start the conversion.
- Given we are unable to reproduce this every time a conversion is triggered,
- we are led to believe that this causes a race in leveldb that will lead
- to 'store.db/LOCK' being locked upon the open this patch removes.
-
- Regardless, reopening the db here is pointless as we already did it when
- we reach Monitor::StoreConverter::convert().
-
- Fixes: #5640
- Backport: cuttlefish
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 036e6739a4e873863bae3d7d00f310c015dfcdb3)
-
-commit 595c09df9134fb0d62144fe1594914c90e567dca
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 14 15:54:29 2013 -0700
-
- messages/MClientReconnect: clear data when encoding
-
- The MClientReconnect puts everything in the data payload portion of
- the message and nothing in the front portion. That means that if the
- message is resent (socket failure or something), the messenger thinks it
- hasn't been encoded yet (front empty) and reencodes, which means
- everything gets added (again) to the data portion.
-
- Decoding keep decoding until it runs out of data, so the second copy
- means we decode garbage snap realms, leading to the crash in bug
-
- Clearing data each time around resolves the problem, although it does
- mean we do the encoding work multiple times. We could alternatively
- (or also) stick some data in the front portion of the payload
- (ignored), but that changes the wire protocol and I would rather not
- do that.
-
- Fixes: #4565
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 314cf046b0b787ca69665e8751eab6fe7adb4037)
-
-commit 8c178e0d39d8d4a4820eb061f79d74f95e60199f
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 15 10:05:37 2013 -0700
-
- mon: once sync full is chosen, make sure we don't change our mind
-
- It is possible for a sequence like:
-
- - probe
- - first probe reply has paxos trim that indicates a full sync is
- needed
- - start sync
- - clear store
- - something happens that makes us abort and bootstrap (e.g., the
- provider mon restarts
- - probe
- - first probe reply has older paxos trim bound and we call an election
- - on election completion, we crash because we have no data.
-
- Non-determinism of the probe decision aside, we need to ensure that
- the info we share during probe (fc, lc) is accurate, and that once we
- clear the store we know we *must* do a full sync.
-
- This is a backport of aa60f940ec1994a61624345586dc70d261688456.
-
- Fixes: #5621
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 6af0ed9bc4cc955f8c30ad9dc6e9095599f323d0
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 9 14:12:15 2013 -0700
-
- mon: do not scrub if scrub is in progress
-
- This prevents an assert from unexpected scrub results from the previous
- scrub on the leader.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 00ae543b3e32f89d906a0e934792cc5309f57696)
-
-commit 5642155ba5ca9b384a7af058a6538ac00c2a592d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 10 10:06:20 2013 -0700
-
- messages/MPGStats: do not set paxos version to osdmap epoch
-
- The PaxosServiceMessage version field is meant for client-coordinated
- ordering of messages when switching between monitors (and is rarely
- used). Do not fill it with the osdmap epoch lest it be compared to a
- pgmap version, which may cause the mon to (near) indefinitely put it on
- a wait queue until the pgmap version catches up.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit b36338be43f43b6dd4ee87c97f2eaa23b467c386)
-
-commit 06c65988bb0b1d1ec626fe31e9d806a1c4e24b28
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 11 18:43:24 2013 -0700
-
- osd/OSDmap: fix OSDMap::Incremental::dump() for new pool names
-
- The name is always present when pools are created, but not when they are
- modified. Also, a name may be present with a new_pools entry if the pool
- is just renamed. Separate it out completely in the dump.
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3e4a29111e89588385e63f8d92ce3d67739dd679)
-
-commit 658240710baaf9c661b8fbf856322907a0d394ee
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 10:49:28 2013 -0700
-
- mon/PaxosService: prevent reads until initial service commit is done
-
- Do not process reads (or, by PaxosService::dispatch() implication, writes)
- until we have committed the initial service state. This avoids things like
- EPERM due to missing keys when we race with mon creation, triggered by
- teuthology tests doing their health check after startup.
-
- Fixes: #5515
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit d08b6d6df7dba06dad73bdec2c945f24afc02717)
-
-commit 5c3ff33771e227b3fb5cc354323846fe8db4ecc1
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 28 12:21:58 2013 -0700
-
- client: send all request put's through put_request()
-
- Make sure all MetaRequest reference put's go through the same path that
- releases inode references, including all of the error paths.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 87217e1e3cb2785b79d0dec49bd3f23a827551f5)
-
-commit 1df78ad73df581bc7537688ae28bda820b089a13
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 28 11:50:11 2013 -0700
-
- client: fix remaining Inode::put() caller, and make method psuedo-private
-
- Not sure I can make this actually private and make Client::put_inode() a
- friend method (making all of Client a friend would defeat the purpose).
- This works well enough, though!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9af3b86b25574e4d2cdfd43e61028cffa19bdeb1)
-
-commit fea024cc3dd2c6fd9ff322d1cd15e0d75c92eca5
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 27 21:39:35 2013 -0700
-
- client: use put_inode on MetaRequest inode refs
-
- When we drop the request inode refs, we need to use put_inode() to ensure
- they get cleaned up properly (removed from inode_map, caps released, etc.).
- Do this explicitly here (as we do with all other inode put() paths that
- matter).
-
- Fixes: #5381
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 81bee6487fb1ce9e090b030d61bda128a3cf4982)
-
-commit 62ae39ec8f208cb8f89e43ba844b9a20b4315c61
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 15:57:48 2013 -0700
-
- mon: be smarter about calculating last_epoch_clean lower bound
-
- We need to take PGs whose mapping has not changed in a long time into
- account. For them, the pg state will indicate it was clean at the time of
- the report, in which case we can use that as a lower-bound on their actual
- latest epoch clean. If they are not currently clean (at report time), use
- the last_epoch_clean value.
-
- Fixes: #5519
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cc0006deee3153e06ddd220bf8a40358ba830135)
-
-commit da725852190245d2f91b7b21e72baee70e4342bd
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 13:27:58 2013 -0700
-
- osd: report pg stats to mon at least every N (=500) epochs
-
- The mon needs a moderately accurate last_epoch_clean value in order to trim
- old osdmaps. To prevent a PG that hasn't peered or received IO in forever
- from preventing this, send pg stats at some minimum frequency. This will
- increase the pg stat report workload for the mon over an idle pool, but
- should be no worse that a cluster that is getting actual IO and sees these
- updates from normal stat updates.
-
- This makes the reported update a bit more aggressive/useful in that the epoch
- is the last map epoch processed by this PG and not just one that is >= the
- currenting interval. Note that the semantics of this field are pretty useless
- at this point.
-
- See #5519
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit da81228cc73c95737f26c630e5c3eccf6ae1aaec)
-
-commit 757af91b2af0da6bbfeeb53551fa1ef4ef9118ea
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 10 11:32:34 2013 -0700
-
- osd: fix warning
-
- From 653e04a79430317e275dd77a46c2b17c788b860b
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bc291d3fc3fc1cac838565cbe0f25f71d855a6e3)
-
-commit 65af2538329472d2fd078bb961863c40cdabda12
-Merge: e537699 804314b
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 12 15:21:20 2013 -0700
-
- Merge remote-tracking branch 'gh/wip-mon-sync-2' into cuttlefish
-
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit e537699b33f84c14f027b56372fbcb0a99bbe88d
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Wed Jul 10 14:55:52 2013 -0700
-
- Get device-by-path by looking for it instead of assuming 3rd entry.
-
- On some systems (virtual machines so far) the device-by-path entry
- from udevadm is not always in the same spot so instead actually
- look for the right output instead of blindy assuming that its a
- specific field in the output.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- Reviewed-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 804314b8bfa5ec75cc9653e2928874c457395c92
-Merge: 6ad9fe1 78f2266
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 10 11:40:37 2013 -0700
-
- Merge remote-tracking branch 'gh/cuttlefish' into wip-mon-sync-2
-
-commit 78f226634bd80f6678b1f74ccf785bc52fcd6b62
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 10 11:02:08 2013 -0700
-
- osd: limit number of inc osdmaps send to peers, clients
-
- We should not send an unbounded number of inc maps to our peers or clients.
- In particular, if a peer is not contacted for a while, we may think they
- have a very old map (say, 10000 epochs ago) and send thousands of inc maps
- when the distribution shifts and we need to peer.
-
- Note that if we do not send enough maps, the peers will make do by
- requesting the map from somewhere else (currently the mon). Regardless
- of the source, however, we must limit the amount that we speculatively
- share as it usually is not needed.
-
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 653e04a79430317e275dd77a46c2b17c788b860b)
-
-commit 54ee2dc80ed032c286546da51442340ec9991cdf
-Author: Christophe Courtaut <christophe.courtaut@gmail.com>
-Date: Mon Jul 1 14:57:17 2013 +0200
-
- rgw: Fix return value for swift user not found
-
- http://tracker.ceph.com/issues/1779 fixes #1779
-
- Adjust the return value from rgw_get_user_info_by_swift call
- in RGW_SWIFT_Auth_Get::execute() to have the correct
- return code in response.
- (cherry picked from commit 4089001de1f22d6acd0b9f09996b71c716235551)
-
-commit 47852c263831707fff1570317a7446b0700c5962
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 9 21:55:51 2013 -0700
-
- mon/OSDMonitor: make 'osd crush rm ...' slightly more idempotent
-
- This is a manual backport of 18a624fd8b90d9959de51f07622cf0839e6bd9aa.
- Do not return immediately if we are looking at uncommitted state.t
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit bfc26c656d183fbcc90a352391e47f9f51c96052
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 17:46:40 2013 -0700
-
- mon/OSDMonitor: fix base case for loading full osdmap
-
- Right after cluster creation, first_committed is 1 and latest stashed in 0,
- but we don't have the initial full map yet. Thereafter, we do (because we
- write it with trim). Fixes afd6c7d8247075003e5be439ad59976c3d123218.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 43fa7aabf1f7e5deb844c1f52d451bab9e7d1006)
-
-commit 7fb3804fb860dcd0340dd3f7c39eec4315f8e4b6
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 15:04:59 2013 -0700
-
- mon: fix osdmap stash, trim to retain complete history of full maps
-
- The current interaction between sync and stashing full osdmaps only on
- active mons means that a sync can result in an incomplete osdmap_full
- history:
-
- - mon.c starts a full sync
- - during sync, active osdmap service should_stash_full() is true and
- includes a full in the txn
- - mon.c sync finishes
- - mon.c update_from_paxos gets "latest" stashed that it got from the
- paxos txn
- - mon.c does *not* walk to previous inc maps to complete it's collection
- of full maps.
-
- To fix this, we disable the periodic/random stash of full maps by the
- osdmap service.
-
- This introduces a new problem: we must have at least one full map (the first
- one) in order for a mon that just synced to build it's full collection.
- Extend the encode_trim() process to allow the osdmap service to include
- the oldest full map with the trim txn. This is more complex than just
- writing the full maps in the txn, but cheaper--we only write the full
- map at trim time.
-
- This *might* be related to previous bugs where the full osdmap was
- missing, or case where leveldb keys seemed to 'disappear'.
-
- Fixes: #5512
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit afd6c7d8247075003e5be439ad59976c3d123218)
-
-commit 24f90b832c695ef13021db66a178c18369ac356d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 15:07:57 2013 -0700
-
- mon: implement simple 'scrub' command
-
- Compare all keys within the sync'ed prefixes across members of the quorum
- and compare the key counts and CRC for inconsistencies.
-
- Currently this is a one-shot inefficient hammer. We'll want to make this
- work in chunks before it is usable in production environments.
-
- Protect with a feature bit to avoid sending MMonScrub to mons who can't
- decode it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit a9906641a1dce150203b72682da05651e4d68ff5)
-
- Conflicts:
-
- src/mon/MonCommands.h
- src/mon/Monitor.cc
-
-commit 926f723c12428a034545c6c4ff6641e1d5e05d24
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jul 3 11:18:33 2013 -0700
-
- Elector.h: features are 64 bit
-
- Fixes: #5497
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit 3564e304e3f50642e4d9ff25e529d5fc60629093)
-
-commit c2b38291e706c9d1d4d337cee3a944f34bf66525
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jul 3 11:18:19 2013 -0700
-
- ceph_features.h: declare all features as ULL
-
- Otherwise, the first 32 get |'d together as ints. Then, the result
- ((int)-1) is sign extended to ((long long int)-1) before being |'d
- with the 1LL entries. This results in ~((uint64_t)0).
-
- Fixes: #5497
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit 4255b5c2fb54ae40c53284b3ab700fdfc7e61748)
-
-commit 95ef961d8537fc369efd0634262ffb8f288d6e9e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 2 21:09:36 2013 -0700
-
- Pipe: use uint64_t not unsigned when setting features
-
- Fixes: #5497
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit bc3e2f09f8860555d8b3b49b2eea164b4118d817)
-
-commit 09d258b70a28e5cea555b9d7e215fe41d6b84577
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 11:24:48 2013 -0700
-
- client: remove O_LAZY
-
- The once-upon-a-time unique O_LAZY value I chose forever ago is now
- O_NOATIME, which means that some clients are choosing relaxed
- consistency without meaning to.
-
- It is highly unlikely that a real O_LAZY will ever exist, and we can
- select it in the ceph case with the ioctl or libcephfs call, so drop
- any support for doing this via open(2) flags.
-
- Update doc/lazy_posix.txt file re: lazy io.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 94afedf02d07ad4678222aa66289a74b87768810)
-
-commit c3b684932bad31fc853ad556d16e1e4a9926486e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 8 12:55:20 2013 -0700
-
- osd/osd_types: fix pg_stat_t::dump for last_epoch_clean
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 69a55445439fce0dd6a3d32ff4bf436da42f1b11)
-
-commit a02f2510fcc800b9f2cf2a06401a7b97d5985409
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 5 16:03:49 2013 -0700
-
- mon: remove bad assert about monmap version
-
- It is possible to start a sync when our newest monmap is 0. Usually we see
- e0 from probe, but that isn't always published as part of the very first
- paxos transaction due to the way PaxosService::_active generates it's
- first initial commit.
-
- In any case, having e0 here is harmless.
-
- Fixes: #5509
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 85a1d6cc5d3852c94d1287b566656c5b5024fa13)
-
-commit 6ad9fe17a674ba65bbeb4052cb1ac47f3113e7bf
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 19:33:06 2013 -0700
-
- mon/Paxos: fix sync restart
-
- If we have a sync going, and an election intervenes, the client will
- try to continue by sending a new start_chunks request. In order to
- ensure that we get all of the paxos commits from our original starting
- point (and thus properly update the keys from which they started),
- only pay attention if they *also* send their current last_committed
- version. Otherwise, start them at the beginning.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c5812b1c893305a7d20f9eaec2695c8b1691f0c9
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 14:57:06 2013 -0700
-
- mon: uninline _trim_enable and Paxos::trim_{enable,disable} so we can debug them
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 6fbcbd7fddf35a5be4b38e536871903bff4f9bf1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 14:55:34 2013 -0700
-
- mon/Paxos: increase paxos max join drift
-
- A value of 10 is too aggressive for large, long-running syncs. 100 is
- about 2 minutes of activity at most, which should be a more forgiving
- buffer.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit f3a51fa30e5ce1656853b40d831409f195f6e4ca
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 14:21:04 2013 -0700
-
- mon/Paxos: configure minimum paxos txns separately
-
- We were using paxos_max_join_drift to control the minimum number of
- paxos transactions to keep around. Instead, make this explicit, and
- separate from the join drift.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 1156721f22f5f337241eef3d0276ca74fe6352d1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 17:09:07 2013 -0700
-
- mon: include any new paxos commits in each sync CHUNK message
-
- We already take note of the paxos version when we begin the sync. As
- sync progresses and there are new paxos commits/txns, include those
- and update last_committed, so that when sync completes we will have
- a full view of everything that happened during sync.
-
- Note that this does not introduce any compatibility change. This change
- *only* affects the provider. The key difference is that at the end
- of the sync, the provide will set version to the latest version, and
- not the version from the start of the sync (as was done previously).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 40672219a081f0dc2dd536977290ef05cfc9f097
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 4 12:17:28 2013 -0700
-
- mon/MonitorDBStore: expose get_chunk_tx()
-
- Allow users get the transaction unencoded.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit db2bb270e93ed44f9252d65d1d4c9b36875d0ea5
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 17:15:56 2013 -0700
-
- mon: enable leveldb cache by default
-
- 256 is not as large as the upstream 512 MB, but will help signficiantly and
- be less disruptive for existing cuttlefish clusters.
-
- Sort-of backport of e93730b7ffa48b53c8da2f439a60cb6805facf5a.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 123f676e3ae8154ca94cb076c4c4ec5389d2a643
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 16:56:06 2013 -0700
-
- mon/Paxos: make 'paxos trim disabled max versions' much much larger
-
- 108000 is about 3 hours if paxos is going full-bore (1 proposal/second).
- That ought to be pretty safe. Otherwise, we start trimming to soon and a
- slow sync will just have to restart when it finishes.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 71ebfe7e1abe4795b46cf00dfe1b03d1893368b0)
-
- Conflicts:
-
- src/common/config_opts.h
-
-commit 03393c0df9f54e4f1db60e1058ca5a7cd89f44e6
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 26 06:01:40 2013 -0700
-
- mon: do not reopen MonitorDBStore during startup
-
- level doesn't seem to like this when it races with an internal compaction
- attempt (see below). Instead, let the store get opened by the ceph_mon
- caller, and pull a bit of the logic into the caller to make the flow a
- little easier to follow.
-
- -2> 2013-06-25 17:49:25.184490 7f4d439f8780 10 needs_conversion
- -1> 2013-06-25 17:49:25.184495 7f4d4065c700 5 asok(0x13b1460) entry start
- 0> 2013-06-25 17:49:25.316908 7f4d3fe5b700 -1 *** Caught signal (Segmentation fault) **
- in thread 7f4d3fe5b700
-
- ceph version 0.64-667-g089cba8 (089cba8fc0e8ae8aef9a3111cba7342ecd0f8314)
- 1: ceph-mon() [0x649f0a]
- 2: (()+0xfcb0) [0x7f4d435dccb0]
- 3: (leveldb::Table::BlockReader(void*, leveldb::ReadOptions const&, leveldb::Slice const&)+0x154) [0x806e54]
- 4: ceph-mon() [0x808840]
- 5: ceph-mon() [0x808b39]
- 6: ceph-mon() [0x806540]
- 7: (leveldb::DBImpl::DoCompactionWork(leveldb::DBImpl::CompactionState*)+0xdd) [0x7f363d]
- 8: (leveldb::DBImpl::BackgroundCompaction()+0x2c0) [0x7f4210]
- 9: (leveldb::DBImpl::BackgroundCall()+0x68) [0x7f4cc8]
- 10: ceph-mon() [0x80b3af]
- 11: (()+0x7e9a) [0x7f4d435d4e9a]
- 12: (clone()+0x6d) [0x7f4d4196bccd]
- NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ea1f316e5de21487ae034a1aa929068ba23ac525)
-
-commit 0143acc49bc5834836afc2c5a9d8f67030bec85f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 2 14:43:17 2013 -0700
-
- sysvinit, upstart: handle symlinks to dirs in /var/lib/ceph/*
-
- Match a symlink to a dir, not just dirs. This fixes the osd case of e.g.,
- creating an osd in /data/osd$id in which ceph-disk makes a symlink from
- /var/lib/ceph/osd/ceph-$id.
-
- Fix proposed by Matt Thompson <matt.thompson@mandiant.com>; extended to
- include the upstart users too.
-
- Fixes: #5490
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 87c98e92d1375c8bc76196bbbf06f677bef95e64)
-
-commit 7e878bcc8c1b51538f3c05f854a9dac74c09b116
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 1 17:33:11 2013 -0700
-
- rgw: add RGWFormatter_Plain allocation to sidestep cranky strlen()
-
- Valgrind complains about an invalid read when we don't pad the allocation,
- and because it is inlined we can't whitelist it for valgrind. Workaround
- the warning by just padding our allocations a bit.
-
- Fixes: #5346
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 49ff63b1750789070a8c6fef830c9526ae0f6d9f)
-
-commit ca61402855966210ba1598239eaf454eaad0f5f2
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Wed May 15 11:24:36 2013 +0800
-
- mds: warn on unconnected snap realms
-
- When there are more than one active MDS, restarting MDS triggers
- assertion "reconnected_snaprealms.empty()" quite often. If there
- is no snapshot in the FS, the items left in reconnected_snaprealms
- should be other MDS' mdsdir. I think it's harmless.
-
- If there are snapshots in the FS, the assertion probably can catch
- real bugs. But at present, snapshot feature is broken, fixing it is
- non-trivial. So replace the assertion with a warning.
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit 26effc0e583b0a3dade6ec81ef26dec1c94ac8b2)
-
-commit e11f258831e14dc3755e09c0fd4f9bfdf79022a7
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 26 06:53:08 2013 -0700
-
- mon/PGMonitor: use post_paxos_update, not init, to refresh from osdmap
-
- We do two things here:
- - make init an one-time unconditional init method, which is what the
- health service expects/needs.
- - switch PGMonitor::init to be post_paxos_update() which is called after
- the other services update, which is what PGMonitor really needs.
-
- This is a new version of the fix originally in commit
- a2fe0137946541e7b3b537698e1865fbce974ca6 (and those around it). That is,
- this re-fixes a problem where osds do not see pg creates from their
- subscribe due to map_pg_creates() not getting called.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e635c47851d185eda557e36bdc4bf3775f7b87a2)
-
- Conflicts:
- src/mon/PGMonitor.cc
- src/mon/PGMonitor.h
-
-commit 4d07fb014178da3c88edeb8765e1aaacb8cb8ffa
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 26 06:52:01 2013 -0700
-
- mon/PaxosService: add post_paxos_update() hook
-
- Some services need to update internal state based on other service's
- state, and thus need to be run after everyone has pulled their info out of
- paxos.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 131686980f0a930d5de7cbce8234fead5bd438b6)
-
-commit 90f5c448abeb127ae5a5528a79bd7bdbc74cb497
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Jun 27 14:58:14 2013 -0700
-
- ceph-disk: s/else if/elif/
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Joao Luis <joao.luis@inktank.com>
- (cherry picked from commit bd8255a750de08c1b8ee5e9c9a0a1b9b16171462)
- (cherry picked from commit 9e604ee6943fdb131978afbec51321050faddfc6)
-
-commit 5c4bb463dca5aa61ea5f02f7592d5a3cc82cf6f4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jun 26 11:28:57 2013 -0700
-
- rgw: fix radosgw-admin buckets list
-
- Fixes: #5455
- Backport: cuttlefish
- This commit fixes a regression, where radosgw-admin buckets list
- operation wasn't returning any data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e1f9fe58d2860fcbb18c92d3eb3946236b49a6ce)
-
-commit b2fb48762f32279e73feb83b220339fea31275e9
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 19 17:27:49 2013 -0700
-
- ceph-disk: use unix lock instead of lockfile class
-
- The lockfile class relies on file system trickery to get safe mutual
- exclusion. However, the unix syscalls do this for us. More
- importantly, the unix locks go away when the owning process dies, which
- is behavior that we want here.
-
- Fixes: #5387
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 2a4953b697a3464862fd3913336edfd7eede2487)
-
-commit 26e7a6fffde4abcb685f34247e8491c05ee2a68d
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 26 18:27:49 2013 -0700
-
- ceph-disk: do not mount over an osd directly in /var/lib/ceph/osd/$cluster-$id
-
- If we see a 'ready' file in the target OSD dir, do not mount our device
- on top of it.
-
- Among other things, this prevents ceph-disk activate on stray disks from
- stepping on teuthology osds.
-
- Fixes: #5445
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8a17f33b14d858235dfeaa42be1f4842dcfd66d2)
-
-commit ccb3dd5ad5533ca4e9b656b4e3df31025a5f2017
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Tue Apr 2 15:46:51 2013 +0800
-
- mds: fix underwater dentry cleanup
-
- If the underwater dentry is a remove link, we shouldn't mark the
- inode clean
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit 81d073fecb58e2294df12b71351321e6d2e69652)
-
-commit 3020c5ea07a91475a7261dc2b810f5b61a1ae1f2
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 18:51:07 2013 -0700
-
- mon/Elector: cancel election timer if we bootstrap
-
- If we short-circuit and bootstrap, cancel our timer. Otherwise it will
- go off some time later when we are in who knows what state.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 9ae0ec83dabe37ac15e5165559debdfef7a5f91d)
-
-commit 305f0c50a5f0ffabc73e10bdf4590217d5d5d211
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 18:12:11 2013 -0700
-
- mon: cancel probe timeout on reset
-
- If we are probing and get (say) an election timeout that calls reset(),
- cancel the timer. Otherwise, we assert later with a splat like
-
- 2013-06-24 01:09:33.675882 7fb9627e7700 4 mon.b@0(leader) e1 probe_timeout 0x307a520
- 2013-06-24 01:09:33.676956 7fb9627e7700 -1 mon/Monitor.cc: In function 'void Monitor::probe_timeout(int)' thread 7fb9627e7700 time 2013-06-24 01:09:43.675904
- mon/Monitor.cc: 1888: FAILED assert(is_probing() || is_synchronizing())
-
- ceph version 0.64-613-g134d08a (134d08a9654f66634b893d493e4a92f38acc63cf)
- 1: (Monitor::probe_timeout(int)+0x161) [0x56f5c1]
- 2: (Context::complete(int)+0xa) [0x574a2a]
- 3: (SafeTimer::timer_thread()+0x425) [0x7059a5]
- 4: (SafeTimerThread::entry()+0xd) [0x7065dd]
- 5: (()+0x7e9a) [0x7fb966f62e9a]
- 6: (clone()+0x6d) [0x7fb9652f9ccd]
- NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
-
- Fixes: #5438
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 03d3be3eaa96a8e72754c36abd6f355c68d52d59)
-
-commit a8f601d543168f4cdbddf674479d8de4b8dfc732
-Author: Alexandre Maragone <alexandre.marangone@inktank.com>
-Date: Tue Jun 18 16:18:01 2013 -0700
-
- ceph-disk: make list_partition behave with unusual device names
-
- When you get device names like sdaa you do not want to mistakenly conclude that
- sdaa is a partition of sda. Use /sys/block/$device/$partition existence
- instead.
-
- Fixes: #5211
- Backport: cuttlefish
- Signed-off-by: Alexandre Maragone <alexandre.maragone@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8c0daafe003935881c5192e0b6b59b949269e5ae)
-
-commit 1c890f5cdfc596588e54fffeb016b4a5e9e2124c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 20:28:24 2013 -0700
-
- client: fix warning
-
- client/Client.cc: In member function 'virtual void Client::ms_handle_remote_reset(Connection*)':
- warning: client/Client.cc:7892:9: enumeration value 'STATE_NEW' not handled in switch [-Wswitch]
- warning: client/Client.cc:7892:9: enumeration value 'STATE_OPEN' not handled in switch [-Wswitch]
- warning: client/Client.cc:7892:9: enumeration value 'STATE_CLOSED' not handled in switch [-Wswitch]
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 8bd936f077530dfeb2e699164e4492b1c0973088)
-
-commit c3b97591fd8206825bcfe65bdb24fbc75a2a9b42
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 17:58:48 2013 -0700
-
- mon/AuthMonitor: ensure initial rotating keys get encoded when create_initial called 2x
-
- The create_initial() method may get called multiple times; make sure it
- will unconditionally generate new/initial rotating keys. Move the block
- up so that we can easily assert as much.
-
- Broken by commit cd98eb0c651d9ee62e19c2cc92eadae9bed678cd.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 521fdc2a4e65559b3da83283e6ca607b6e55406f)
-
-commit 0cc826c385edb2e327505696491d3ff1c3bfe8fd
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 17:42:04 2013 -0700
-
- init-radosgw.sysv: remove -x debug mode
-
- Fixes: #5443
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 31d6062076fdbcd2691c07a23b381b26abc59f65)
-
-commit 4d57c12faceb7f591f10776c6850d98da55c667b
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 12:52:44 2013 -0700
-
- common/pick_addresses: behave even after internal_safe_to_start_threads
-
- ceph-mon recently started using Preforker to working around forking issues.
- As a result, internal_safe_to_start_threads got set sooner and calls to
- pick_addresses() which try to set string config values now fail because
- there are no config observers for them.
-
- Work around this by observing the change while we adjust the value. We
- assume pick_addresses() callers are smart enough to realize that their
- result will be reflected by cct->_conf and not magically handled elsewhere.
-
- Fixes: #5195, #5205
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit eb86eebe1ba42f04b46f7c3e3419b83eb6fe7f9a)
-
-commit e1ac7c6c3ca673d08710829aa5a3c03735710486
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 20 15:39:23 2013 -0700
-
- mon/PaxosService: allow paxos service writes while paxos is updating
-
- In commit f985de28f86675e974ac7842a49922a35fe24c6c I mistakenly made
- is_writeable() false while paxos was updating due to a misread of
- Paxos::propose_new_value() (I didn't see that it would queue).
- This is problematic because it narrows the window during which each service
- is writeable for no reason.
-
- Allow service to be writeable both when paxos is active and updating.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 11169693d086e67dcf168ce65ef6e13eebd1a1ab)
-
-commit 02b0b4a9acb439b2ee5deadc8b02492006492931
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 11:41:21 2013 -0700
-
- mon/PaxosService: not active during paxos UPDATING_PREVIOUS
-
- Treat this as an extension of the recovery process, e.g.
-
- RECOVERING -> ACTIVE
- or
- RECOVERING -> UPDATING_PREVIOUS -> ACTIVE
-
- and we are not active until we get to "the end" in both cases.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 392a8e21f8571b410c85be2129ef62dd6fc52b54)
-
-commit c6d5dc4d47838c8c8f4d059b7d018dea3f9c4425
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 11:40:22 2013 -0700
-
- mon: simplify states
-
- - make states mutually exclusive (an enum)
- - rename locked -> updating_previous
- - set state prior to begin() to simplify things a bit
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ee34a219605d1943740fdae0d84cfb9020302dd6)
-
-commit c43b1f4dff254df96144b0b4d569cc72421a8fff
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 11:14:58 2013 -0700
-
- mon/Paxos: not readable when LOCKED
-
- If we are re-proposing a previously accepted value from a previous quorum,
- we should not consider it readable, because it is possible it was exposed
- to clients as committed (2/3 accepted) but not recored to be committed, and
- we do not want to expose old state as readable when new state was
- previously readable.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ec2ea86ed55e00265c2cc5ad0c94460b4c92865c)
-
-commit 10d41200622d76dbf276602828584e7153cb22b5
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 11:07:38 2013 -0700
-
- mon/Paxos: cleanup: drop unused PREPARING state bit
-
- This is never set when we block, and nobody looks at it.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7b7ea8e30e20704caad9a841332ecb2e39819a41)
-
-commit 9d7c40e3f4ea2dd969aa0264ea8a6ad74f3e678a
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 6 15:20:05 2013 -0700
-
- mon/PaxosService: simplify is_writeable
-
- Recast this in terms of paxos check + our conditions, and make it
- match wait_for_writeable().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f985de28f86675e974ac7842a49922a35fe24c6c)
-
-commit 35745cba8985c5f3238e3c28fd28b194fae043d9
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 4 17:03:15 2013 -0700
-
- mon/PaxosService: simplify readable check
-
- Recast this in terms of the paxos check and our additional conditions,
- which match wait_for_readable().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3aa61a0beb540e48bf61ceded766d6ff52c95eb2)
-
-commit 57c89291a48c319907fb3029746d9f5a4bd9dd61
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 16:45:08 2013 -0700
-
- mon: simplify Monitor::init_paxos()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e832e76a4af04b091c806ad412bcfd0326d75a2d)
-
-commit fd1769cb2d61e8f2c7921a78760e8f12b28258fb
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 16:39:37 2013 -0700
-
- mon/Paxos: go active *after* refreshing
-
- The update_from_paxos() methods occasionally like to trigger new activity.
- As long as they check is_readable() and is_writeable(), they will defer
- until we go active and that activity will happen in the normal callbacks.
-
- This fixes the problem where we active but is_writeable() is still false,
- triggered by PGMonitor::check_osd_map().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e68b1bd36ed285e38a558899f83cf224d3aa60ed)
-
-commit cf75478d027dfd377424988745230d096dae79ac
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 15:32:06 2013 -0700
-
- mon: safely signal bootstrap from MonmapMonitor::update_from_paxos()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dc83430124a5fd37573202a4cc0986c3c03739ef)
-
-commit 6ac58cd9c1f9c80c5f3cbe97e19cfcd8427db46d
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 16:57:11 2013 -0700
-
- mon/Paxos: do paxos refresh in finish_proposal; and refactor
-
- Do the paxos refresh inside finish_proposal, ordered *after* the leader
- assertion so that MonmapMonitor::update_from_paxos() calling bootstrap()
- does not kill us.
-
- Also, remove unnecessary finish_queued_proposal() and move the logic inline
- where the bad leader assertion is obvious.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a42d7582f816b45f5d19c393fd45447555e78fdd)
-
-commit 054e96d96533b1c4078402e43184f13b97329905
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sun Jun 2 16:15:02 2013 -0700
-
- mon/PaxosService: cache {first,last}_committed
-
- Refresh the in-memory values when we are told the on-disk paxos state
- may have changed.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 2fccb300bdf6ffd44db3462eb05115da11322ed4)
-
-commit 265212a7384399bf85e15e6978bc7543824c0e92
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 31 14:30:48 2013 -0700
-
- mon: no need to refresh from _active
-
- The refresh is done explicitly by the monitor, independent of the more
- fragile PaxosService callbacks.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d941363d6e4249e97b64faff0e573f75e918ac0c)
-
-commit 1d8662504299babec22c714662cefbb86a0acb8b
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 16:10:57 2013 -0700
-
- mon: remove unnecessary update_from_paxos calls
-
- The refresh() will do this when the state changes; no need to
- opportunistically call this method all of the time.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 03014a4ecc06cde420fad0c6c2a0177ebd7b839d)
-
-commit 34acc5a3161b6bcda2b9f7ce18d89a8618fff1c5
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 2 16:14:01 2013 -0700
-
- mon: explicitly refresh_from_paxos() when leveldb state changes
-
- Instead of opportunistically calling each service's update_from_paxos(),
- instead explicitly refresh all in-memory state whenever we know the
- paxos state may have changed. This is simpler and less fragile.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cc339c07312006e65854207523f50542d00ecf87)
-
-commit 4474a0cc6c009a566ecf46efadb39d80343a7c68
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 23 09:25:55 2013 -0700
-
- mon/AuthMonitor: make initial auth include rotating keys
-
- This closes a very narrow race during mon creation where there are no
- service keys.
-
- Fixes: #5427
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cd98eb0c651d9ee62e19c2cc92eadae9bed678cd)
-
-commit d572cf6f77418f217a5a8e37f1124dc566e24d0b
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 21 11:53:29 2013 -0700
-
- mds: fix iterator invalidation for backtrace removal
-
- - Don't increment before we dereference!
- - We need to update the iterator before we delete the item.
-
- This code is changed in master, so this fix is for cuttlefish only.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 50957772c3582290331f69ba4a985b1cdf86834d
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 9 09:44:20 2013 -0700
-
- osd: init test_ops_hook
-
- CID 1019628 (#1 of 1): Uninitialized pointer field (UNINIT_CTOR)
- 2. uninit_member: Non-static class member "test_ops_hook" is not initialized in this constructor nor in any functions that it calls.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e30a03210c3efb768b1653df5ae58917ef26e579)
-
-commit 17d2745f095e7bb640dece611d7824d370ea3b81
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 9 09:45:51 2013 -0700
-
- osd: initialize OSDService::next_notif_id
-
- CID 1019627 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
- 2. uninit_member: Non-static class member "next_notif_id" is not initialized in this constructor nor in any functions that it calls.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 499edd8bfc355c2d590f5fa1ef197d1ea5680351)
-
-commit ffdb7236a994aa20b5f75860b9c81dac0f131f9a
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 20 09:46:42 2013 -0700
-
- mon: more fix dout use in sync_requester_abort()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d60534b8f59798feaeeaa17adba2a417d7777cbf)
-
-commit 38ddae04bb974a93f1718c509363f1afbe6b612d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 10 11:48:25 2013 -0700
-
- mon: fix raw use of *_dout in sync_requester_abort()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8a4ed58e39b287fd8667c62b45848487515bdc80)
diff --git a/src/ceph/doc/changelog/v0.61.6.txt b/src/ceph/doc/changelog/v0.61.6.txt
deleted file mode 100644
index 3a1e5bd..0000000
--- a/src/ceph/doc/changelog/v0.61.6.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-commit 59ddece17e36fef69ecf40e239aeffad33c9db35
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Tue Jul 23 13:52:19 2013 -0700
-
- v0.61.6
-
-commit 38c3271d3fc415919f0856398bd94eb87a0776b5
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 23 13:32:12 2013 -0700
-
- mon/OSDMonitor: fix base case for 7fb3804fb workaround
-
- After cluster creation, we have no full map stored and first_committed ==
- 1. In that case, there is no need for a full map, since we can get there
- from OSDMap() and the incrementals.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao@inktank.com>
- (cherry picked from commit e807770784175b05130bba938113fdbf874f152e)
-
-commit f94956cb1a56ff62e01b7ae218a93c4004470ae5
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 23 17:25:13 2013 +0100
-
- mon: OSDMonitor: work around a full version bug introduced in 7fb3804fb
-
- In 7fb3804fb860dcd0340dd3f7c39eec4315f8e4b6 we moved the full version
- stashing logic to the encode_trim_extra() function. However, we forgot
- to update the osdmap's 'latest_full' key that should always point to
- the latest osdmap full version. This eventually degenerated in a missing
- full version after a trim. This patch works around this bug by looking
- for the latest available full osdmap version in the store and updating
- 'latest_full' to its proper value.
-
- Related-to: #5704
- Backport: cuttlefish
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 97462a3213e5e15812c79afc0f54d697b6c498b1)
-
-commit 10e1de45dc8ace793ecf921f884f90c9daa99c48
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 23 16:36:52 2013 +0100
-
- mon: OSDMonitor: update the osdmap's latest_full with the new full version
-
- We used to do this on encode_full(), but since [1] we no longer rely on
- PaxosService to manage the full maps for us. And we forgot to write down
- the latest_full version to the store, leaving it in a truly outdated state.
-
- [1] - 7fb3804fb860dcd0340dd3f7c39eec4315f8e4b6
-
- Fixes: #5704
- Backport: cuttlefish
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a815547ed3e5ffdbbb96c8c0c1b8d6dd8c62bfba)
-
-commit a0cb40b45c4f2f921a63c2d7bb5a28572381d793
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 18 14:35:19 2013 -0700
-
- mon: decline to scrub when paxos is not active
-
- In f1ce8d7c955a2443111bf7d9e16b4c563d445712 we close a race between scrub
- and paxos commit completion on the leader. The fix is nontrivial to
- backport and probably not worthwhile; just avoid scrubbing at that time
- for now.
-
- Note that the actual fix for this is in commit
- f1ce8d7c955a2443111bf7d9e16b4c563d445712.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.61.7.txt b/src/ceph/doc/changelog/v0.61.7.txt
deleted file mode 100644
index 5836c6a..0000000
--- a/src/ceph/doc/changelog/v0.61.7.txt
+++ /dev/null
@@ -1,220 +0,0 @@
-commit 8f010aff684e820ecc837c25ac77c7a05d7191ff
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Jul 24 20:44:12 2013 -0700
-
- v0.61.7
-
-commit 24a56a9637afd8c64b71d264359c78a25d52be02
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 24 14:46:24 2013 -0700
-
- ceph-disk: use new get_dev_path helper for list
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- Tested-by: Olivier Bonvalet <ob.ceph@daevel.fr>
- (cherry picked from commit fd1fd664d6102a2a96b27e8ca9933b54ac626ecb)
-
-commit 1f8e4b15eeb132fd7f389318009b19f8f13adbf5
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 11 12:59:56 2013 -0700
-
- ceph-disk: use /sys/block to determine partition device names
-
- Not all devices are basename + number; some have intervening character(s),
- like /dev/cciss/c0d1p2.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2ea8fac441141d64ee0d26c5dd2b441f9782d840)
-
-commit 0a08c8226cb3e461301beade9bab2e264d1b960e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 11:01:58 2013 -0700
-
- ceph-disk: reimplement is_partition() using /sys/block
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5b031e100b40f597752b4917cdbeebb366eb98d7)
-
-commit 056000346db09ea7274a22e57cf4b86a7ea4090e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 11:01:39 2013 -0700
-
- ceph-disk: use get_dev_name() helper throughout
-
- This is more robust than the broken split trick.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3359aaedde838c98d1155611e157fd2da9e8b9f5)
-
-commit f3ee3e690c42769229a6cd9ae8dec43f2aa22ecd
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 10:55:36 2013 -0700
-
- ceph-disk: refactor list_[all_]partitions
-
- Make these methods work in terms of device *names*, not paths, and fix up
- the only direct list_partitions() caller to do the same.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 35d3f2d84808efda3d2ac868afe03e6959d51c03)
-
-commit be12811b4cb98ff1c2c691c67af7ad3586c436ff
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 3 10:52:29 2013 -0700
-
- ceph-disk: add get_dev_name, path helpers
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e0401591e352ea9653e3276d66aebeb41801eeb3)
-
-commit f46dbc462f623e9ab6c00394abb4d890e5d90890
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 18 16:21:48 2013 -0700
-
- ceph-disk: handle /dev/foo/bar devices throughout
-
- Assume the last component is the unique device name, even if it appears
- under a subdir of /dev.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cb97338b1186939deecb78e9d949c38c3ef59026)
-
-commit f799dac7bdf7cf0824a177131473cf59ef3c5205
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 20:54:15 2013 -0700
-
- ceph-disk: make is_held() smarter about full disks
-
- Handle the case where the device is a full disk. Make the partition
- check a bit more robust (don't make assumptions about naming aside from
- the device being a prefix of the partition).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e082f1247fb6ddfb36c4223cbfdf500d6b45c978)
-
-commit 27f31895664fa7f10c1617d486f2a6ece0f97091
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 24 11:55:42 2013 -0700
-
- mon/OSDMonitor: search for latest full osdmap if record version is missing
-
- In 97462a3213e5e15812c79afc0f54d697b6c498b1 we tried to search for a
- recent full osdmap but were looking at the wrong key. If full_0 was
- present we could record that the latest full map was last_committed even
- though it wasn't present. This is fixed in 76cd7ac1c, but we need to
- compensate for when get_version_latest_full() gives us a back version
- number by repeating the search.
-
- Fixes: #5737
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit c2131d4047156aa2964581c9dbd93846382a07e7)
-
-commit 5b0967f03efb1be210b52f24f095f023fe1bc539
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Mon Jun 17 14:43:36 2013 +0100
-
- test: test_store_tool: global init before using LevelDBStore
-
- Fixes a segfault
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a7a7d3fc8a2ba4a30ef136a32f2903d157b3e19a)
-
-commit 115468c73f121653eec2efc030d5ba998d834e43
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jul 24 12:00:28 2013 +0100
-
- mon: OSDMonitor: fix a bug introduced on 97462a32
-
- Fixes: #5737
- Backport: cuttlefish
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 76cd7ac1c2094b34ad36bea89b2246fa90eb2f6d)
-
-commit 938a639e2cb6abd22c2c588e619c1aae32c6521f
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 21 08:48:18 2013 -0700
-
- mon/Paxos: fix pn for uncommitted value during collect/last phase
-
- During the collect/last exchange, peers share any uncommitted values
- with the leader. They are supposed to also share the pn under which
- that value was accepted, but were instead using the just-accepted pn
- value. This effectively meant that we *always* took the uncommitted
- value; if there were multiples, which one we accepted depended on what
- order the LAST messages arrived, not which pn the values were generated
- under.
-
- The specific failure sequence I observed:
-
- - collect
- - learned uncommitted value for 262 from myself
- - send collect with pn 901
- - got last with pn 901 (incorrect) for 200 (old) from peer
- - discard our own value, remember the other
- - finish collect phase
- - ignore old uncommitted value
-
- Fix this by storing a pending_v and pending_pn value whenever we accept
- a value. Use this to send an appropriate pn value in the LAST reply
- so that the leader can make it's decision about which uncommitted value
- to accept based on accurate information. Also use it when we learn
- the uncommitted value from ourselves.
-
- We could probably be more clever about storing less information here,
- for example by omitting pending_v and clearing pending_pn at the
- appropriate point, but that would be more fragile. Similarly, we could
- store a pn for *every* commit if we wanted to lay some groundwork for
- having multiple uncommitted proposals in flight, but I don't want to
- speculate about what is necessary or sufficient for a correct solution
- there.
-
- Fixes: #5698
- Backport: cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 20baf662112dd5f560bc3a2d2114b469444c3de8)
-
-commit 18596340f020be1f21bdc9bcc752ae1da4a93a46
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 21 08:12:46 2013 -0700
-
- mon/Paxos: debug ignored uncommitted values
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 19b29788966eb80ed847630090a16a3d1b810969)
-
-commit f598245f1355d7791162c03d90bdd97b013e56f3
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 21 08:11:22 2013 -0700
-
- mon/Paxos: only learn uncommitted value if it is in the future
-
- If an older peer sends an uncommitted value, make sure we only take it
- if it is in the future, and at least as new as any current uncommitted
- value.
-
- (Prior to the previous patch, peers could send values from long-past
- rounds. The pn values are also bogus.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b3253a453c057914753846c77499f98d3845c58e)
-
-commit 732286a28cd8a643593d490a7a84a590d372f78d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 22 14:13:23 2013 -0700
-
- mon/Paxos: only share uncommitted value if it is next
-
- We may have an uncommitted value from our perspective (it is our lc + 1)
- when the collector has a much larger lc (because we have been out for
- the last few rounds). Only share an uncommitted value if it is in fact
- the next value.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b26b7f6e5e02ac6beb66e3e34e177e6448cf91cf)
diff --git a/src/ceph/doc/changelog/v0.61.8.txt b/src/ceph/doc/changelog/v0.61.8.txt
deleted file mode 100644
index ef01d45..0000000
--- a/src/ceph/doc/changelog/v0.61.8.txt
+++ /dev/null
@@ -1,810 +0,0 @@
-commit d783e33b672ec324eb48d588f956da0c51ff5dac
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Sun Aug 18 23:54:49 2013 -0700
-
- v0.61.8
-
-commit 21a6e2479133a3debb9ab9057ff9fae70c9eede9
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Aug 8 15:12:46 2013 -0700
-
- RadosClient: shutdown monclient after dropping lock
-
- Otherwise, the monclient shutdown may deadlock waiting
- on a context trying to take the RadosClient lock.
-
- Fixes: #5897
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0aacd10e2557c55021b5be72ddf39b9cea916be4)
-
-commit 64bef4ae4bab28b0b82a1481381b0c68a22fe1a4
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Aug 17 09:05:32 2013 -0700
-
- mon/OSDMonitor: make 'osd pool mksnap ...' not expose uncommitted state
-
- [This is a backport of d1501938f5d07c067d908501fc5cfe3c857d7281]
-
- We were returning success without waiting if the pending pool state had
- the snap.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-
-commit 411871f6bcc9a4b81140c2e98d13dc123860f6f7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 16 10:52:02 2013 -0700
-
- mon/OSDMonitor: make 'osd pool rmsnap ...' not racy/crashy
-
- NOTE: This is a manual backport of d90683fdeda15b726dcf0a7cab7006c31e99f14.
- Due to all kinds of collateral changes in the mon the original patch
- doesn't cleanly apply.
-
- Ensure that the snap does in fact exist before we try to remove it. This
- avoids a crash where a we get two dup rmsnap requests (due to thrashing, or
- a reconnect, or something), the committed (p) value does have the snap, but
- the uncommitted (pp) does not. This fails the old test such that we try
- to remove it from pp again, and assert.
-
- Restructure the flow so that it is easier to distinguish the committed
- short return from the uncommitted return (which must still wait for the
- commit).
-
- 0> 2013-07-16 14:21:27.189060 7fdf301e9700 -1 osd/osd_types.cc: In function 'void pg_pool_t::remove_snap(snapid_t)' thread 7fdf301e9700 time 2013-07-16 14:21:27.187095
- osd/osd_types.cc: 662: FAILED assert(snaps.count(s))
-
- ceph version 0.66-602-gcd39d8a (cd39d8a6727d81b889869e98f5869e4227b50720)
- 1: (pg_pool_t::remove_snap(snapid_t)+0x6d) [0x7ad6dd]
- 2: (OSDMonitor::prepare_command(MMonCommand*)+0x6407) [0x5c1517]
- 3: (OSDMonitor::prepare_update(PaxosServiceMessage*)+0x1fb) [0x5c41ab]
- 4: (PaxosService::dispatch(PaxosServiceMessage*)+0x937) [0x598c87]
- 5: (Monitor::handle_command(MMonCommand*)+0xe56) [0x56ec36]
- 6: (Monitor::_ms_dispatch(Message*)+0xd1d) [0x5719ad]
- 7: (Monitor::handle_forward(MForward*)+0x821) [0x572831]
- 8: (Monitor::_ms_dispatch(Message*)+0xe44) [0x571ad4]
- 9: (Monitor::ms_dispatch(Message*)+0x32) [0x588c52]
- 10: (DispatchQueue::entry()+0x549) [0x7cf1d9]
- 11: (DispatchQueue::DispatchThread::entry()+0xd) [0x7060fd]
- 12: (()+0x7e9a) [0x7fdf35165e9a]
- 13: (clone()+0x6d) [0x7fdf334fcccd]
- NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-
-commit 50698d1862065c8d74338fd08c7e5af66e222490
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 12:52:41 2013 -0700
-
- librados: fix async aio completion wakeup
-
- For aio flush, we register a wait on the most recent write. The write
- completion code, however, was *only* waking the waiter if they were waiting
- on that write, without regard to previous writes (completed or not).
- For example, we might have 6 and 7 outstanding and wait on 7. If they
- finish in order all is well, but if 7 finishes first we do the flush
- completion early. Similarly, if we
-
- - start 6
- - start 7
- - finish 7
- - flush; wait on 7
- - finish 6
-
- we can hang forever.
-
- Fix by doing any completions that are prior to the oldest pending write in
- the aio write completion handler.
-
- Refs: #5919
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 16ed0b9af8bc08c7dabead1c1a7c1a22b1fb02fb)
-
-commit ef731dfc84a71d3c3262f5cff9a9d33a60255485
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Aug 12 19:17:09 2013 -0700
-
- librados: fix locking for AioCompletionImpl refcounting
-
- Add an already-locked helper so that C_Aio{Safe,Complete} can
- increment the reference count when their caller holds the
- lock. C_AioCompleteAndSafe's caller is not holding the lock, so call
- regular get() to ensure no racing updates can occur.
-
- This eliminates all direct manipulations of AioCompletionImpl->ref,
- and makes the necessary locking clear.
-
- The only place C_AioCompleteAndSafe is used is in handling
- aio_flush_async(). This could cause a missing completion.
-
- Refs: #5919
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 7a52e2ff5025754f3040eff3fc52d4893cafc389)
-
-commit 32631685199f2e47c2ba0ed27d16eff80fa6917d
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 12 14:27:04 2013 -0700
-
- mon/Paxos: bootstrap peon too if monmap updates
-
- If we get a monmap update, the leader bootstraps. Peons should do the
- same.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit efe5b67bb700ef6218d9579abf43cc9ecf25ef52)
-
-commit 1ea6b56170fc9e223e7c30635db02fa2ad8f4b4e
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 25 13:16:45 2013 -0700
-
- osd: fix race when queuing recovery ops
-
- Previously we would sample how many ops to start under the lock, drop it,
- and start that many. This is racy because multiple threads can jump in
- and we start too many ops. Instead, claim as many slots as we can and
- release them back later if we do not end up using them.
-
- Take care to re-wake the work-queue since we are releasing more resources
- for wq use.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 01d3e094823d716be0b39e15323c2506c6f0cc3b)
-
-commit 4433f9ad8b338b6a55e205602434b307287bfaa3
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 16:37:29 2013 -0700
-
- osd: tolerate racing threads starting recovery ops
-
- We sample the (max - active) recovery ops to know how many to start, but
- do not hold the lock over the full duration, such that it is possible to
- start too many ops. This isn't problematic except that our condition
- checks for being == max but not beyond it, and we will continue to start
- recovery ops when we shouldn't. Fix this by adjusting the conditional
- to be <=.
-
- Reported-by: Stefan Priebe <s.priebe@profihost.ag>
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3791a1e55828ba541f9d3e8e3df0da8e79c375f9)
-
-commit 0964d53ef3e8e386e0a1635d2240aefad7b8e2c1
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 18:02:32 2013 -0700
-
- ceph-disk: fix mount options passed to move_mount
-
- Commit 6cbe0f021f62b3ebd5f68fcc01a12fde6f08cff5 added a mount_options but
- in certain cases it may be blank. Fill in with the defaults, just as we
- do in mount().
-
- Backport: cuttlefish
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cb50b5a7f1ab2d4e7fdad623a0e7769000755a70)
-
-commit d6be5ed2601b8cf45570afe7ca75ce5aba3f8b4f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 12 10:05:44 2013 -0700
-
- rgw: fix multi delete
-
- Fixes: #5931
- Backport: bobtail, cuttlefish
-
- Fix a bad check, where we compare the wrong field. Instead of
- comparing the ret code to 0, we compare the string value to 0
- which generates implicit casting, hence the crash.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit f9f1c48ad799da2b4be0077bf9d61ae116da33d7)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
-commit ecaa46a13837305b9382ab319d43890729c54f1e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Jul 23 21:56:09 2013 +0200
-
- ceph.spec.in: obsolete ceph-libs only on the affected distro
-
- The ceph-libs package existed only on Redhat based distro,
- there was e.g. never such a package on SUSE. Therefore: make
- sure the 'Obsoletes' is only set on these affected distros.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-
-commit 81aa68c309a6d4eaecc54f8d735efde8843fed8c
-Author: Gary Lowell <glowell@inktank.com>
-Date: Wed Jul 3 11:28:28 2013 -0700
-
- ceph.spec.in: Obsolete ceph-libs
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 2a34df68bb02d14f6a25bd13dff600a4d629ad05
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Aug 9 14:48:15 2013 -0700
-
- common: pick_addresses: fix bug with observer class that triggered #5205
-
- The Observer class we defined to observe conf changes and thus avoid
- triggering #5205 (as fixed by eb86eebe1ba42f04b46f7c3e3419b83eb6fe7f9a),
- was returning always the same const static array, which would lead us to
- always populate the observer's list with an observer for 'public_addr'.
-
- This would of course become a problem when trying to obtain the observer
- for 'cluster_add' during md_config_t::set_val() -- thus triggering the
- same assert as initially reported on #5205.
-
- Backport: cuttlefish
- Fixes: #5205
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7ed6de9dd7aed59f3c5dd93e012cf080bcc36d8a)
-
-commit 1243c9749ed27850c5d041023780efcdf7b31a68
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Thu Aug 8 16:09:26 2013 -0700
-
- make sure we are using the mount options
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 34831d0989d4bcec4920068b6ee09ab6b3234c91)
-
-commit a9a370be2d8155b696ebe2866febb0571da5740f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Aug 2 11:58:52 2013 -0700
-
- PG: set !flushed in Reset()
-
- Otherwise, we might serve a pull before we start_flush in the
- ReplicaActive constructor.
-
- Fixes: #5799
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9e7d6d547e0e8a6db6ba611882afa9bf74ea0195)
-
-commit 65bfa4941f983c988837cd010f731966ff53fd19
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 14:02:07 2013 -0700
-
- osd: make open classes on start optional
-
- This is cuttlefish; default to the old behavior!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6f996223fb34650771772b88355046746f238cf2)
-
-commit e8253ae5451b1c8e3d7d50199b8db7b2d4c66486
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 13:58:46 2013 -0700
-
- osd: load all classes on startup
-
- This avoid creating a wide window between when ceph-osd is started and
- when a request arrives needing a class and it is loaded. In particular,
- upgrading the packages in that window may cause linkage errors (if the
- class API has changed, for example).
-
- Fixes: #5752
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit c24e652d8c5e693498814ebe38c6adbec079ea36)
-
- Conflicts:
- src/osd/ClassHandler.cc
-
-commit 7a1d6d3e727fd8b6947c658e171bf7ec31cd7966
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 28 15:42:08 2013 -0700
-
- ceph_test_rados: print version banner on startup
-
- It is helpful when looking at qa run logs to see what version of the
- tester is running.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 12c1f1157c7b9513a3d9f716a8ec62fce00d28f5)
-
-commit 86769f05ccc54bfec403bb9ea9a3a951bbcea301
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 13 22:08:36 2013 -0700
-
- ceph_test_rados: add --pool <name> arg
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bcfbd0a3ffae6947464d930f636c8b35d1331e9d)
-
-commit b70a9abc5e3ae01204256f414bd7e69d083ed7c6
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 14:07:02 2013 -0700
-
- upstart: stop ceph-create-keys when the monitor stops
-
- This avoids lingering ceph-create-keys tasks.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a90a2b42db8de134b8ea5d81cab7825fb9ec50b4)
-
-commit 5af48dc7c7e3a0d7f7bc22af58831d58d165e657
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jul 26 13:42:27 2013 -0700
-
- FileStore: fix fd leak in _check_global_replay_guard
-
- Bug introduced in f3f92fe21061e21c8b259df5ef283a61782a44db.
-
- Fixes: #5766
- Backport: cuttlefish
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c562b72e703f671127d0ea2173f6a6907c825cd1)
-
-commit 17aa2d6d16c77028bae1d2a77903cdfd81efa096
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 25 11:10:53 2013 -0700
-
- mon/Paxos: share uncommitted value when leader is/was behind
-
- If the leader has and older lc than we do, and we are sharing states to
- bring them up to date, we still want to also share our uncommitted value.
- This particular case was broken by b26b7f6e, which was only contemplating
- the case where the leader was ahead of us or at the same point as us, but
- not the case where the leader was behind. Note that the call to
- share_state() a few lines up will bring them fully up to date, so
- after they receive and store_state() for this message they will be at the
- same lc as we are.
-
- Fixes: #5750
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 05b6c7e8645081f405c616735238ae89602d3cc6)
-
-commit 09a664e25391dbad9a479bae33904d28231f429d
-Merge: 8f010af b0535fc
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 25 15:21:31 2013 -0700
-
- Merge remote-tracking branch 'gh/cuttlefish-next' into cuttlefish
-
-commit b0535fcf854c5042d6b5ff481aabca08026d8f7f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 23 18:04:40 2013 -0700
-
- HashIndex: reset attr upon split or merge completion
-
- A replay of an in progress merge or split might make
- our counts unreliable.
-
- Fixes: #5723
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0dc3efdd885377a07987d868af5bb7a38245c90b)
-
-commit 8f73302b4e637ca8b85d68ea7503279faecb57d8
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 23 17:34:25 2013 -0700
-
- test/filestore/store_test: add test for 5723
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 37a4c4af54879512429bb114285bcb4c7c3488d5)
-
- Conflicts:
- src/os/LFNIndex.cc
- src/test/filestore/store_test.cc
-
-commit 6a7b9e5f0c1d2344209c69ab9992f94221a16468
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 23 13:51:26 2013 -0700
-
- FileStore::_collection_rename: fix global replay guard
-
- If the replay is being replayed, we might have already
- performed the rename, skip it. Also, we must set the
- collection replay guard only after we have done the
- rename.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 870c474c5348831fcb13797d164f49682918fb30)
-
-commit 7d98651775265896c22bacfc4afcfccbb0128470
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 22 13:46:10 2013 -0700
-
- PGLog::rewind_divergent_log: unindex only works from tail, index() instead
-
- Fixes: #5714
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6957dbc75cc2577652b542aa3eae69f03060cb63)
-
- The original patch covered the same code in PGLog.cc.
-
- Conflicts:
-
- src/osd/PGLog.cc
- src/osd/PG.cc
-
-commit 611a06ae6c9cba468db206dfc82ec883c7a394af
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 18 09:55:43 2013 -0700
-
- msg/Pipe: do not hold pipe_lock for verify_authorizer()
-
- We shouldn't hold the pipe_lock while doing the ms_verify_authorizer
- upcalls.
-
- Fix by unlocking a bit earlier, and verifying our state is still correct
- in the failure path.
-
- This regression was introduced by ecab4bb9513385bd765cca23e4e2fadb7ac4bac2.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 723d691f7a1f53888618dfc311868d1988f61f56)
-
- Conflicts:
-
- src/msg/Pipe.cc
-
-commit 45bda482fa8a23f4b80d115e29d6f04cb5e226d6
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 14:17:05 2013 -0700
-
- msg/Pipe: a bit of additional debug output
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 16568d9e1fb8ac0c06ebaa1e1dc1d6a432a5e4d4)
-
-commit 806eab59ad1a32aedb662c51de3b4a1d61fcbb62
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 13:13:46 2013 -0700
-
- msg/Pipe: hold pipe_lock during important parts of accept()
-
- Previously we did not bother with locking for accept() because we were
- not visible to any other threads. However, we need to close accepting
- Pipes from mark_down_all(), which means we need to handle interference.
-
- Fix up the locking so that we hold pipe_lock when looking at Pipe state
- and verify that we are still in the ACCEPTING state any time we retake
- the lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ecab4bb9513385bd765cca23e4e2fadb7ac4bac2)
-
-commit ce6a0b74459996f91a0511a4a7147179bcd47876
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Jul 17 15:23:12 2013 -0700
-
- msgr: fix a typo/goto-cross from dd4addef2d
-
- We didn't build or review carefully enough!
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1a84411209b13084b3edb87897d5d678937e3299)
-
-commit 1ed51ad535612d5c444a3cc35a331f5e6a68ce30
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 15 17:16:23 2013 -0700
-
- msgr: close accepting_pipes from mark_down_all()
-
- We need to catch these pipes too, particularly when doing a rebind(),
- to avoid them leaking through.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 687fe888b32ac9d41595348dfc82111c8dbf2fcb)
-
-commit 2f696f17a413015a3038d5aa76d18fe94f503f03
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 15 17:14:25 2013 -0700
-
- msgr: maintain list of accepting pipes
-
- New pipes exist in a sort of limbo before we know who the peer is and
- add them to rank_pipe. Keep a list of them in accepting_pipes for that
- period.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dd4addef2d5b457cc9a58782fe42af6b13c68b81)
-
-commit 540a6f49d402c1990f0e0fe9f8897dd664e79501
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 16:25:28 2013 -0700
-
- msgr: adjust nonce on rebind()
-
- We can have a situation where:
-
- - we have a pipe to a peer
- - pipe goes to standby (on peer)
- - we rebind to a new port
- - ....
- - we rebind again to the same old port
- - we connect to peer
-
- and get reattached to the ancient pipe from two instances back. Avoid that
- by picking a new nonce each time we rebind.
-
- Add 1,000,000 each time so that the port is still legible in the printed
- output.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 994e2bf224ab7b7d5b832485ee14de05354d2ddf)
-
- Conflicts:
-
- src/msg/Accepter.cc
-
-commit f938a5bf604885ffba65a9b86e19258ca254e58c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 15 17:10:23 2013 -0700
-
- msgr: mark_down_all() after, not before, rebind
-
- If we are shutting down all old connections and binding to new ports,
- we want to avoid a sequence like:
-
- - close all prevoius connections
- - new connection comes in on old port
- - rebind to new ports
- -> connection from old port leaks through
-
- As a first step, close all connections after we shut down the old
- accepter and before we start the new one.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 07a0860a1899c7353bb506e33de72fdd22b857dd)
-
- Conflicts:
-
- src/msg/SimpleMessenger.cc
-
-commit 07b9ebf4212d53606ce332ff927a2ff68ed26978
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 13:01:18 2013 -0700
-
- msg/Pipe: unlock msgr->lock earlier in accept()
-
- Small cleanup. Nothing needs msgr->lock for the previously larger
- window.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ad548e72fd94b4a16717abd3b3f1d1be4a3476cf)
-
-commit ae85a0a101d624363fe761c06ecd52d3d38ba4a2
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 16 10:09:02 2013 -0700
-
- msg/Pipe: avoid creating empty out_q entry
-
- We need to maintain the invariant that all sub queues in out_q are never
- empty. Fix discard_requeued_up_to() to avoid creating an entry unless we
- know it is already present.
-
- This bug leads to an incorrect reconnect attempt when
-
- - we accept a pipe (lossless peer)
- - they send some stuff, maybe
- - fault
- - we initiate reconnect, even tho we have nothing queued
-
- In particular, we shouldn't reconnect because we aren't checking for
- resets, and the fact that our out_seq is 0 while the peer's might be
- something else entirely will trigger asserts later.
-
- This fixes at least one source of #5626, and possibly #5517.
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9f1c27261811733f40acf759a72958c3689c8516)
-
-commit 21e27262edc6f5f090ea8915517ee867e30b9066
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 15 14:47:05 2013 -0700
-
- msg/Pipe: assert lock is held in various helpers
-
- These all require that we hold pipe_lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 579d858aabbe5df88543d096ef4dbddcfc023cca)
-
-commit 25f4786ac41869b3f135bd072000634765bb8919
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 14 08:55:52 2013 -0700
-
- msg/Pipe: be a bit more explicit about encoding outgoing messages
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4282971d47b90484e681ff1a71ae29569dbd1d32)
-
-commit 48105a32605aa59b6970eb89fce4ecc4201e8d04
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 12 16:21:24 2013 -0700
-
- msg/Pipe: fix RECONNECT_SEQ behavior
-
- Calling handle_ack() here has no effect because we have already
- spliced sent messages back into our out queue. Instead, pull them out
- of there and discard. Add a few assertions along the way.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 495ee108dbb39d63e44cd3d4938a6ec7d11b12e3)
-
-commit 1eab069017ce6b71e4bc2bb9679dbe31b50ae938
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 13:32:38 2013 -0700
-
- msgr: reaper: make sure pipe has been cleared (under pipe_lock)
-
- All paths to pipe shutdown should have cleared the con->pipe reference
- already. Assert as much.
-
- Also, do it under pipe_lock!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9586305a2317c7d6bbf31c9cf5b67dc93ccab50d)
-
-commit db06a5092bc45d0479fe492a5d592713a7c53494
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 14:14:02 2013 -0700
-
- msg/Pipe: goto fail_unlocked on early failures in accept()
-
- Instead of duplicating an incomplete cleanup sequence (that does not
- clear_pipe()), goto fail_unlocked and do the cleanup in a generic way.
- s/rc/r/ while we are here.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ec612a5bda119cea52bbac9b2a49ecf1e83b08e5)
-
-commit 8612e50fd70bfceebd6c291e6cab10d9dfd39e8c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 13:32:07 2013 -0700
-
- msgr: clear con->pipe inside pipe_lock on mark_down
-
- We need to do this under protection of the pipe_lock.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit afafb87e8402242d3897069f4b94ba46ffe0c413)
-
-commit 8aafe131acadc22cb069f3d98bba6922ab09c749
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 17 12:47:11 2013 -0700
-
- msgr: clear_pipe inside pipe_lock on mark_down_all
-
- Observed a segfault in rebind -> mark_down_all -> clear_pipe -> put that
- may have been due to a racing thread clearing the connection_state pointer.
- Do the clear_pipe() call under the protection of pipe_lock, as we do in
- all other contexts.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5fc1dabfb3b2cbffdee3214d24d7769d6e440e45)
-
- Conflicts:
-
- src/msg/SimpleMessenger.cc
-
-commit 2f7979d1262e9d4899be76963a1620db46b334e8
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jul 18 19:26:02 2013 -0700
-
- ReplicatedPG: track temp collection contents, clear during on_change
-
- We also assert in on_flushed() that the temp collection is actually
- empty.
-
- Fixes: #5670
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 47516d9c4b7f023f3a16e166749fa7b1c7b3b24c)
-
- Conflicts:
-
- src/osd/ReplicatedPG.cc
-
-commit c7e2945a42541f966017180684dd969389eef3ac
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jul 18 19:25:14 2013 -0700
-
- PG, ReplicatedPG: pass a transaction down to ReplicatedPG::on_change
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9f56a7b8bfcb63cb4fbbc0c9b8ff01de9e518c57)
-
-commit 7ffc65fc4d7d842954cf791c016fd2711f644a9c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jul 17 15:04:10 2013 -0700
-
- PG: start flush on primary only after we process the master log
-
- Once we start serving reads, stray objects must have already
- been removed. Therefore, we have to flush all operations
- up to the transaction writing out the authoritative log.
- On replicas, we flush in Stray() if we will not eventually
- be activated and in ReplicaActive if we are in the acting
- set. This way a replica won't serve a replica read until
- the store is consistent.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b41f1ba48563d1d3fd17c2f62d10103b5d63f305)
-
-commit 850da0890da5df7e670df9268afe420d0c906c38
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Jul 17 12:51:19 2013 -0700
-
- ReplicatedPG: replace clean_up_local with a debug check
-
- Stray objects should have been cleaned up in the merge_log
- transactions. Only on the primary have those operations
- necessarily been flushed at activate().
-
- Fixes: 5084
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 278c7b59228f614addf830cb0afff4988c9bc8cb)
-
-commit 95b1b5da439f1b7e2fb1886aaeec2d61532183f0
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jul 18 10:12:17 2013 -0700
-
- FileStore: add global replay guard for split, collection_rename
-
- In the event of a split or collection rename, we need to ensure that
- we don't replay any operations on objects within those collections
- prior to that point. Thus, we mark a global replay guard on the
- collection after doing a syncfs and make sure to check that in
- _check_replay_guard() for all object operations.
-
- Fixes: #5154
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f3f92fe21061e21c8b259df5ef283a61782a44db)
-
- Conflicts:
-
- src/os/FileStore.cc
-
-commit d92a43d8ff0123b234e47a94c2ce73fcaae7f625
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 15 13:44:20 2013 -0700
-
- OSD: add config option for peering_wq batch size
-
- Large peering_wq batch sizes may excessively delay
- peering messages resulting in unreasonably long
- peering. This may speed up peering.
-
- Backport: cuttlefish
- Related: #5084
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 39e5a2a406b77fa82e9a78c267b679d49927e3c3)
diff --git a/src/ceph/doc/changelog/v0.61.9.txt b/src/ceph/doc/changelog/v0.61.9.txt
deleted file mode 100644
index fe2a7e7..0000000
--- a/src/ceph/doc/changelog/v0.61.9.txt
+++ /dev/null
@@ -1,571 +0,0 @@
-commit 7440dcd135750839fa0f00263f80722ff6f51e90
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Wed Oct 16 18:57:51 2013 +0000
-
- v0.61.9
-
-commit fcf5f117a9111c2d88b8fa5d00c975a8e377df7e
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Oct 15 10:20:48 2013 -0700
-
- rgw: fix authenticated users acl group check
-
- Fixes: #6553
- Backport: bobtail, cuttlefish, dumpling
- Authenticated users group acl bit was not working correctly. Check to
- test whether user is anonymous was wrong.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit bebbd6cb7b71697b34b8f27652cabdc40c97a33b)
-
-commit 991ed515480114c476cd3c4d761f256d1708fb39
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Oct 15 10:55:07 2013 -0700
-
- rgw: change default log level
-
- Fixes: #6554
- Backport: cuttlefish, dumpling
- Default log level was just too high, bring it down a bit.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8d7dbf85472cfca9268d81ecf057ea078cf345b3)
-
-commit ebb9b0cb7e4ab60fdbbc410ecfb35e51cf11434d
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jul 6 09:21:47 2013 -0700
-
- mds: do not allow GLAZYIO in mix->sync state
-
- GLAZYIO is not allowed in SYNC, so we cannot allow it in the preceding
- gather state.
-
- I verified the other GLAZYIO rules look ok. We should make a validater
- to confirm that no gather state includes caps that its target state
- does not... or at least assert as much in eval_gather().
-
- Backport: cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b88938e5a646fbf175a7135e872bcb2d1afafbb8)
-
-commit 33da08f683d40f33061cefa0cf145f3ff21ea089
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Thu Sep 12 10:36:39 2013 +0800
-
- osdc/ObjectCacher: finish contexts after dropping object reference
-
- The context to finish can be class C_Client_PutInode, which may drop
- inode's last reference. So we should first drop object's reference,
- then finish contexts.
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit b66ac77fa7aa3ff37804918c4308a348f239af09)
-
-commit 346b43d80f728e6b389208ccd8054d96b76b093c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 7 22:04:09 2013 -0700
-
- mds: fix filelock eval_gather
-
- Broken by a08d62045657713bf0a5372bf14136082ec3b17e
-
- Reported-by: Yan, Zheng <yan.zheng@intel.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e8300d0afb5154d4d13536abdcf47bd5cc8ce810)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit ffdc7fce132b3b98463b4222d2c51ccef6b94d82
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 6 21:38:56 2013 -0700
-
- mds: do not double-queue file recovery in eval_gather
-
- This fixes a specific case of double-queuing seen in #4832:
-
- - client goes stale, inode marked NEEDSRECOVER
- - eval does sync, queued, -> RECOVERING
- - client resumes
- - client goes stale (again), inode marked NEEDSRECOVER
- - eval_gather queues *again*
-
- Note that a cursory look at the recovery code makes me think this needs
- a much more serious overhaul. In particular, I don't think we should
- be triggering recovery when transitioning *from* a stable state, but
- explicitly when we are flagged, or when gathering. We should probably
- also hold a wrlock over the recovery period and remove the force_wrlock
- kludge from the final size check. Opened ticket #5268.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a08d62045657713bf0a5372bf14136082ec3b17e)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 60033c31381d36cbbc6c873d7055cbe735f5deb2
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Tue Oct 8 11:58:57 2013 -0700
-
- Go back to $PWD in fsstress.sh if compiling from source.
-
- Although fsstress was being called with a static path the directory
- it was writing to was in the current directory so doing a cd to the
- source directory that is made in /tmp and then removing it later
- caused it to be unable to write the files in a non-existent dir.
-
- This change gets the current path first and cd's back into it after
- it is done compiling fsstress.
-
- Issue #6479.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- Reviewed-by: Alfredo Deza <alfredo.deza@inktank.com>
-
-commit eb06f3738851d27914704821897ed80104c4c29c
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Tue Aug 27 09:53:12 2013 -0700
-
- ceph.spec.in: radosgw package doesn't require mod_fcgi
-
- Fixes #5702
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 5a426a1f1f34d3f5a510009cc3f3b219d3cbc74b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 1 15:53:42 2013 -0700
-
- crush: invalidate rmap on create (and thus decode)
-
- If we have an existing CrushWrapper object and decode from a bufferlist,
- reset build_rmaps so that they get rebuilt.
-
- Remove the build_rmaps() all in decode that was useless on a redecode
- (because have_rmaps == true in that case and it did nothing).
-
- Fixes: #6442
- Backport: dumpling, maybe cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 9b7a2ae329b6a511064dd3d6e549ba61f52cfd21)
-
-commit 6f342872cdd211e24deb19f5e00380494514c437
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Sep 24 19:04:23 2013 +0200
-
- osd: change warn_interval_multiplier to uint32_t
-
- to prevent overflow in OpTracker::check_ops_in_flight when
- multiplying warn_interval_multiplier *= 2
-
- Backport: cuttlefish, dumpling
-
- http://tracker.ceph.com/issues/6370 fixes #6370
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 1bce1f009bffd3e28025a08775fec189907a81db)
-
-commit be2907ef85a31c2be8be7446fe71f5d2e1410ec0
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 11 22:30:12 2013 -0700
-
- rgw: don't call list::size() in ObjectCache
-
- Fixes: #6286
- Use an external counter instead of calling list::size()
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 31e3a51e933429d286104fe077e98ea883437ad6)
-
-commit bbfbb097e2f9efbf4f7ec997c70befa20c79d27c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Sep 10 12:18:55 2013 -0700
-
- rgw: drain pending requests before completing write
-
- Fixes: #6268
- When doing aio write of objects (either regular or multipart parts) we
- need to drain pending aio requests. Otherwise if gateway goes down then
- object might end up corrupted.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit b16f812362ccb1d9bdd4900d155e248d695ef0d7
-Merge: 97a97c3 5f16ea6
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Sep 7 13:32:40 2013 -0700
-
- Merge pull request #573 from dalgaaf/fix/da-cuttlefish-fixes-and-cherry-picks
-
- Cherry-pick some smaller changes from master to cuttlefish
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 5f16ea62cee4fad9be6e44f3562da31908303ae5
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sat Sep 7 20:32:40 2013 +0200
-
- tools/ceph.cc: add missig 'ceph osd lspools' command to help
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-
-commit 59f02ecf0b91a2248d8b7b75dc27b517f04ac292
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sat Sep 7 11:30:15 2013 +0200
-
- init-radosgw*: fix status return value if radosgw isn't running
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b5137baf651eaaa9f67e3864509e437f9d5c3d5a)
-
-commit c25770c39ae006ab4ad14a5d75bf7a2dffe0279e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Jun 6 15:34:54 2013 +0200
-
- init-radosgw*: add all sections to usage output
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit a0c5095be3640e98d5541920c19387bf3764a350)
-
-commit 1a8347e0d1cafc38259adc1f1a6154fa0d48f1d2
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Jun 6 15:33:23 2013 +0200
-
- init-radosgw*: add status
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 385457f8d871238a896229d0c2cbb25646969f6a)
-
-commit b1c2aa2c4a8c0266a01903eab5539e7929ea0431
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Jun 6 15:21:30 2013 +0200
-
- fix init-radosgw* to use the same indentation
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b4d4e92ed2deae435a24b36d086c1a73e5997855)
-
-commit 794ed1faec7ced23b5b46d114f5320d718c9e9fb
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sun Jul 28 23:25:58 2013 +0200
-
- ceph_authtool.cc: update help/usage text
-
- Added implemented but not listed commands to the help/usage text:
- * -g shortcut for --gen-key
- * -a shortcut for --add-key
- * -u/--set-uid to set auid
- * --gen-print-key
- * --import-keyring
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9a9a0ef3f9f39909eaeb95eb99db4711a2425af5)
-
-commit 97a97c3c554f689dd3f987e63eaa2b9c5ec1dd0a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 26 19:46:43 2013 -0700
-
- rgw: check object name after rebuilding it in S3 POST
-
- Fixes: #6088
- Backport: bobtail, cuttlefish, dumpling
-
- When posting an object it is possible to provide a key
- name that refers to the original filename, however we
- need to verify that in the end we don't end up with an
- empty object name.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit c8ec532fadc0df36e4b265fe20a2ff3e35319744)
-
-commit 7a0bd5bc2c6e5464f70b19154834448ac1e4c369
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Aug 22 13:29:32 2013 -0700
-
- ceph.spec.in: remove trailing paren in previous commit
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit f1507d23707e7929f7a55fe2ea9418dcc715d8b2
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Aug 22 11:07:16 2013 -0700
-
- ceph.spec.in: Don't invoke debug_package macro on centos.
-
- If the redhat-rpm-config package is installed, the debuginfo rpms will
- be built by default. The build will fail when the package installed
- and the specfile also invokes the macro.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 65a10862feec199d14f17627d0c42fa7c85766fa
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 28 08:59:21 2013 -0700
-
- osd: get initial full map after a map gap
-
- If there is a gap in our map history, get the full range of maps that
- the mon has. Make sure the first one is a full map.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit a6cd9fea50a4bd7048a222617a2bfe0680f7a969)
-
-commit aceef04f7fd56935e691c7deb05f25ace653bb76
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jul 28 08:55:38 2013 -0700
-
- osd: fix off-by-one in map gap logic
-
- If we have map 250, and monitor's first is 251, but sends 260, we can
- request the intervening range.
-
- Fixes: #5784
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit e24b50225c841a650d9303041bbe811e04bdd668)
-
-commit cdbfd66249cdf91c02a88af5df5a6517688a78df
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 22 16:00:07 2013 -0700
-
- OSD: tolerate holes in stored maps
-
- We may have holes in stored maps during init_splits_between
- and advance_pg. In either case, we should simply skip the
- missing maps.
-
- Fixes: #5677
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6951d2345a5d837c3b14103bd4d8f5ee4407c937)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 234d68c68028fcf9c2665cb9f45b9b76556241ba
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 22:39:09 2013 -0700
-
- ceph-disk: partprobe after creating journal partition
-
- At least one user reports that a partprobe is needed after creating the
- journal partition. It is not clear why sgdisk is not doing it, but this
- fixes ceph-disk for them, and should be harmless for other users.
-
- Fixes: #5599
- Tested-by: lurbs in #ceph
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2af59d5e81c5e3e3d7cfc50d9330d7364659c5eb)
-
-commit cf2f31ac23b6eb43a81a1c8157907b9cae4d58a7
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 21:48:06 2013 -0700
-
- osdc/ObjectCacher: do not merge rx buffers
-
- We do not try to merge rx buffers currently. Make that explicit and
- documented in the code that it is not supported. (Otherwise the
- last_read_tid values will get lost and read results won't get applied
- to the cache properly.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1c50c446152ab0e571ae5508edb4ad7c7614c310)
-
-commit 02da55757a9fb53df4746db5dd14724e77da95b6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 21:47:18 2013 -0700
-
- osdc/ObjectCacher: match reads with their original rx buffers
-
- Consider a sequence like:
-
- 1- start read on 100~200
- 100~200 state rx
- 2- truncate to 200
- 100~100 state rx
- 3- start read on 200~200
- 100~100 state rx
- 200~200 state rx
- 4- get 100~200 read result
-
- Currently this makes us crash on
-
- osdc/ObjectCacher.cc: 738: FAILED assert(bh->length() <= start+(loff_t)length-opos)
-
- when processing the second 200~200 bufferhead (it is too big). The
- larger issue, though, is that we should not be looking at this data at
- all; it has been truncated away.
-
- Fix this by marking each rx buffer with the read request that is sent to
- fill it, and only fill it from that read request. Then the first reply
- will fill the first 100~100 extend but not touch the other extent; the
- second read will do that.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b59f930ae147767eb4c9ff18c3821f6936a83227)
-
-commit 43e7ad989dcb4deb18b32ec31f76c8755354d2a6
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 22 15:54:48 2013 -0700
-
- mon/Paxos: fix another uncommitted value corner case
-
- It is possible that we begin the paxos recovery with an uncommitted
- value for, say, commit 100. During last/collect we discover 100 has been
- committed already. But also, another node provides an uncommitted value
- for 101 with the same pn. Currently, we refuse to learn it, because the
- pn is not strictly > than our current uncommitted pn... even though it is
- the next last_committed+1 value that we need.
-
- There are two possible fixes here:
-
- - make this a >= as we can accept newer values from the same pn.
- - discard our uncommitted value metadata when we commit the value.
-
- Let's do both!
-
- Fixes: #6090
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fe5010380a3a18ca85f39403e8032de1dddbe905)
-
-commit 2de1515289f49f2e388448506f4788db56d0e25a
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 23 11:45:35 2013 -0700
-
- os: make readdir_r buffers larger
-
- PATH_MAX isn't quite big enough.
-
- Backport: dumpling, cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 99a2ff7da99f8cf70976f05d4fe7aa28dd7afae5)
-
-commit af9818c486484c7617c07f26beaded8a3bc88043
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 23 11:45:08 2013 -0700
-
- os: fix readdir_r buffer size
-
- The buffer needs to be big or else we're walk all over the stack.
-
- Backport: dumpling, cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2df66d9fa214e90eb5141df4d5755b57e8ba9413)
-
- Conflicts:
-
- src/os/BtrfsFileStoreBackend.cc
-
-commit cce1d1f9cd8b034deee29d8566780763beb0155f
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Fri Aug 23 08:56:07 2013 -0400
-
- ceph-disk: specify the filetype when mounting
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f040020fb2a7801ebbed23439159755ff8a3edbd)
-
-commit c25e7da57d704d4a8db59a2e97fb687968520c69
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Thu Aug 22 19:44:40 2013 -0700
-
- QA: Compile fsstress if missing on machine.
-
- Some distro's have a lack of ltp-kernel packages and all we need is
- fstress. This just modified the shell script to download/compile
- fstress from source and copy it to the right location if it doesn't
- currently exist where it is expected. It is a very small/quick
- compile and currently only SLES and debian do not have it already.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
-
-commit c807f27c391d336a7223fcfdd3daad9bb374a3dc
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 5 12:52:44 2013 -0700
-
- mds: fix locking, use-after-free/race in handle_accept
-
- We need to hold mds_lock here.
-
- Normally the con also holds a reference, but an ill-timed connection reset
- could drop it.
-
- Fixes: #5883
- Backport: dumpling, cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a0929955cb84fb8cfdeb551d6863e4955b8e2a71)
-
-commit bd71192eaa6f884e879b1711e5937b1e3609d86d
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 22 10:14:59 2013 -0700
-
- .gitignore: ignore test-driver
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit edf2c3449ec96d91d3d7ad01c50f7a79b7b2f7cc)
-
- Conflicts:
-
- .gitignore
-
-commit bc997ebea3263c2bc7df83661ae3a966470ba35e
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:42:49 2013 -0700
-
- fuse: fix warning when compiled against old fuse versions
-
- client/fuse_ll.cc: In function 'void invalidate_cb(void*, vinodeno_t, int64_t, int64_t)':
- warning: client/fuse_ll.cc:540: unused variable 'fino'
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9833e9dabe010e538cb98c51d79b6df58ce28f9e)
-
-commit 9cb2c2eb3627b52c3413b39b45e7fb7e0e9a074c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:40:34 2013 -0700
-
- json_spirit: remove unused typedef
-
- In file included from json_spirit/json_spirit_writer.cpp:7:0:
- json_spirit/json_spirit_writer_template.h: In function 'String_type json_spirit::non_printable_to_string(unsigned int)':
- json_spirit/json_spirit_writer_template.h:37:50: warning: typedef 'Char_type' locally defined but not used [-Wunused-local-typedefs]
- typedef typename String_type::value_type Char_type;
-
- (Also, ha ha, this file uses \r\n.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6abae35a3952e5b513895267711fea63ff3bad09)
-
-commit d774559f118d26cd15ecf1a49468ce1a3d260efc
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:31:41 2013 -0700
-
- gtest: add build-aux/test-driver to .gitignore
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c9cdd19d1cd88b84e8a867f5ab85cb51fdc6f8e4)
-
-commit 1a2d9edde0311b51d3d68b87c20dea3061b2395b
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 21 14:28:49 2013 -0700
-
- objecter: resend unfinished lingers when osdmap is no longer paused
-
- Plain Ops that haven't finished yet need to be resent if the osdmap
- transitions from full or paused to unpaused. If these Ops are
- triggered by LingerOps, they will be cancelled instead (since
- should_resend = false), but the LingerOps that triggered them will not
- be resent.
-
- Fix this by checking the registered flag for all linger ops, and
- resending any of them that aren't paused anymore.
-
- Fixes: #6070
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 38a0ca66a79af4b541e6322467ae3a8a4483cc72)
diff --git a/src/ceph/doc/changelog/v0.67.1.txt b/src/ceph/doc/changelog/v0.67.1.txt
deleted file mode 100644
index 9b9405f..0000000
--- a/src/ceph/doc/changelog/v0.67.1.txt
+++ /dev/null
@@ -1,142 +0,0 @@
-commit e23b817ad0cf1ea19c0a7b7c9999b30bed37d533
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Aug 16 19:39:41 2013 -0700
-
- v0.67.1
-
-commit 1aa01910957e967e87e46b86f1e67844148703e3
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Aug 15 17:10:56 2013 -0700
-
- ceph.in: --admin-daemon was not returning EINVAL on bad command
-
- Fix by restructuring code to hoist common code and have only one
- place where admin_socket is actually called.
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 266460e97ec9ef9711e9eaa4bd954f3188d8da69)
-
-commit d290a91525c3ebc6941dae2bb55f0bfbf120cb60
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 14:37:07 2013 -0700
-
- mon: use str_join instead of std::copy
-
- The std::copy method leaves a trailing separator.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 35565ee64e41d7fddc7849c6006692c78227132c)
-
-commit b99921746ef2e1e15777c748a15e929c72888db1
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 14:36:57 2013 -0700
-
- config: fix stringification of config values
-
- The std::copy construct leaves a trailing separator character, which breaks
- parsing for booleans (among other things) and probably mangles everything
- else too.
-
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit fc23cfe3fe567b30413d8af0c614a32fec238939)
-
-commit d212bba6bd0d7d234097122988e4d973064b5645
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 14:36:49 2013 -0700
-
- common: add str_join helper
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit ce3a0944d9b47f7b178fe7775c9d105305b238e0)
-
-commit a99fef9189086f5dd6ddacaecf967619dc5fe407
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 14 15:50:59 2013 -0700
-
- rados.py: fix Rados() unicode checking
-
- Check new parameters and check that rados_id is not None again to
- catch the empty string.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 4422f21a6586467a63ce6841552d0f60aa849cf1)
-
-commit dd0df583e2661444287a36acc240a8ac0ec381e8
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 14 15:28:19 2013 -0700
-
- rados.py: fix Rados() backwards compatibility
-
- Previously it had no name parameter, so the default will be used by
- old clients. However, if an old client set rados_id, a new check that
- both rados_id and name are set would result in an error. Fix this by
- only applying the default names after the check, and add tests of this
- behavior.
-
- This was introduced in 783b7ec847c7f987ac1814c9c41c91921cac4eba,
- so it does not affect cuttlefish.
-
- Fixes: #5970
- Reported-by: Michael Morgan <mmorgan@dca.net>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 34da9cbc33205623cf64aee1989f53dfb2c5bddd)
-
-commit b9d1bf51610159a88ad257f29a81691e6b178e17
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 12:52:41 2013 -0700
-
- librados: fix async aio completion wakeup
-
- For aio flush, we register a wait on the most recent write. The write
- completion code, however, was *only* waking the waiter if they were waiting
- on that write, without regard to previous writes (completed or not).
- For example, we might have 6 and 7 outstanding and wait on 7. If they
- finish in order all is well, but if 7 finishes first we do the flush
- completion early. Similarly, if we
-
- - start 6
- - start 7
- - finish 7
- - flush; wait on 7
- - finish 6
-
- we can hang forever.
-
- Fix by doing any completions that are prior to the oldest pending write in
- the aio write completion handler.
-
- Refs: #5919
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 16ed0b9af8bc08c7dabead1c1a7c1a22b1fb02fb)
-
-commit 29ae033b435581a64fc92a26106b4ea1c3dfc0b1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Aug 12 19:17:09 2013 -0700
-
- librados: fix locking for AioCompletionImpl refcounting
-
- Add an already-locked helper so that C_Aio{Safe,Complete} can
- increment the reference count when their caller holds the
- lock. C_AioCompleteAndSafe's caller is not holding the lock, so call
- regular get() to ensure no racing updates can occur.
-
- This eliminates all direct manipulations of AioCompletionImpl->ref,
- and makes the necessary locking clear.
-
- The only place C_AioCompleteAndSafe is used is in handling
- aio_flush_async(). This could cause a missing completion.
-
- Refs: #5919
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Tested-by: Oliver Francke <Oliver.Francke@filoo.de>
- (cherry picked from commit 7a52e2ff5025754f3040eff3fc52d4893cafc389)
diff --git a/src/ceph/doc/changelog/v0.67.10.txt b/src/ceph/doc/changelog/v0.67.10.txt
deleted file mode 100644
index 165c8e0..0000000
--- a/src/ceph/doc/changelog/v0.67.10.txt
+++ /dev/null
@@ -1,669 +0,0 @@
-commit 9d446bd416c52cd785ccf048ca67737ceafcdd7f (tag: refs/tags/v0.67.10)
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon Aug 11 05:30:10 2014 -0700
-
- 0.67.10
-
-commit a86e497a343b24425a1237e65ec2776398d07a95
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Mon Jul 14 14:27:17 2014 +0800
-
- Add rbdcache max dirty object option
-
- Librbd will calculate max dirty object according to rbd_cache_max_size, it
- doesn't suitable for every case. If user set image order 24, the calculating
- result is too small for reality. It will increase the overhead of trim call
- which is called each read/write op.
-
- Now we make it as option for tunning, by default this value is calculated.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 3c7229a2fea98b30627878c86b1410c8eef2b5d7)
-
-commit d02381316ba96746a00b2b6f8c5c665179fe7a79
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Jun 4 23:22:18 2014 +0200
-
- librbd/internal.cc: check earlier for null pointer
-
- Fix potential null ponter deref, move check for 'order != NULL'
- to the beginning of the function to prevent a) deref in ldout() call
- and b) to leave function as early as possible if check fails.
-
- [src/librbd/internal.cc:843] -> [src/librbd/internal.cc:865]: (warning)
- Possible null pointer dereference: order - otherwise it is redundant
- to check it against null.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 3ee3e66a9520a5fcafa7d8c632586642f7bdbd29)
-
-commit dda98b9afb5d74c8c5f101b792daca9ca344fe87
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Apr 24 14:47:24 2014 -0700
-
- librbd: add an interface to invalidate cached data
-
- This is useful for qemu to guarantee live migration with caching is
- safe, by invalidating the cache on the destination before starting it.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 5d340d26dd70192eb0e4f3f240e3433fb9a24154)
-
-commit d93579514db74eed61580a6166c2787304a8a9fb
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Apr 24 14:43:35 2014 -0700
-
- librbd: check return code and error out if invalidate_cache fails
-
- This will only happen when shrinking or rolling back an image is done
- while other I/O is in flight to the same ImageCtx. This is unsafe, so
- return an error before performing the resize or rollback.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e08b8b66c77be3a3d7f79d91c20b1619571149ee)
-
-commit 617914209694f67150264358da888c1ca9ff42e1
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed May 21 18:12:22 2014 +0800
-
- Avoid extra check for clean object
-
- We needn't to check clean object via buffer state, skip the clean object.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit f51e33bd9c5a8e1cfc7065b30785696dc45918bc)
-
-commit d474443b12b978dbe267e63cd8e34e8c835e4f6c
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Fri Mar 28 18:10:43 2014 -0700
-
- rbd.cc: yes, cover formatted output as well. sigh.
-
- Fixes: #7577
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit bd6e35c1b171e46cc3e026c59b076b73440a8502)
-
-commit 051d1b4e56b37b2293b54d8cdb58a974684c8464
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Mar 25 17:09:48 2014 -0700
-
- rbd.cc: tolerate lack of NUL-termination on block_name_prefix
-
- Fixes: #7577
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fd76fec589be13a4a6362ef388929d3e3d1d21f6)
-
-commit 61e2219dd07ebb856a61f54e8cd992dc1e16f5d9
-Author: Ilya Dryomov <ilya.dryomov@inktank.com>
-Date: Wed Jan 29 16:12:01 2014 +0200
-
- rbd: don't forget to call close_image() if remove_child() fails
-
- close_image() among other things unregisters a watcher that's been
- registered by open_image(). Even though it'll timeout in 30 or so
- seconds, it's not nice now that we check for watchers before starting
- the removal process.
-
- Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
- (cherry picked from commit 4ebc32f37a4860bdc676491bf8b042c18fd619cf)
-
-commit 2c6c23cee7ff2a8f56f3986051d43824b7bd3526
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Aug 9 13:23:06 2014 -0700
-
- os/FileStore: dump open fds before asserting
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4e8de1792731cf30f2744ab0659d036adc0565a3)
-
-commit 3663233a63df3a1fb1584d9800e1c6a8feac2fe0
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Feb 18 16:43:48 2014 -0800
-
- rgw: return error if accessing object in non-existent bucket
-
- Fixes: #7064
- Instead of trying to access the object, which is impossible as we don't
- even have a proper bucket info. Up until now we ended up creating an
- empty pool and eventually returning ENOENT, this fix catches the issue
- earlier in the process.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 3ed68eb9fac9b3d0bf9111867d609f9ea08fb202)
-
-commit 0a1cea58641c4584b85165755145d8d0288f4f22
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 6 17:04:02 2014 -0700
-
- os/FileStore: force any new xattr into omap on E2BIG
-
- If we have a huge xattr (or many little ones), the _fgetattrs() for the
- inline_set will fail with E2BIG. The conditions later where we decide
- whether to clean up the old xattr will then also fail. Will *will* put
- the xattr in omap, but the non-omap version isn't cleaned up.
-
- Fix this by setting a flag if we get E2BIG that the inline_set is known
- to be incomplete. In that case, take the conservative step of assuming
- the xattr might be present and chain_fremovexattr(). Ignore any error
- because it might not be there.
-
- This is clearly harmless in the general case because it won't be there. If
- it is, we will hopefully remove enough xattrs that the E2BIG condition
- will go away (usually by removing some really big chained xattr).
-
- See bug #7779.
-
- This is a backport of 26750fcfe8d766874513e57981565adde2e6d8c7.
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 64d5c406995bedbb6a4bc9c851f5d25fe94749ee
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 23 14:58:54 2014 -0700
-
- rgw: calc md5 and compare if user provided appropriate header
-
- Fixes: #8436
- Backport: firefly
-
- This was broken in ddc2e1a8e39a5c6b9b224c3eebd1c0e762ca5782. The fix
- resurrects and old check that was dropped.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9c56c86bdac6bcb8e76c3f04e7d393e4eaadd721)
-
-commit ebecd80d3a082ac87e7cd6a63cbd00259c5a8baf
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 21 15:07:12 2014 -0700
-
- rgw: calculate user manifest
-
- Fixes: #8169
- Backport: firefly
- We didn't calculate the user manifest's object etag at all. The etag
- needs to be the md5 of the contantenation of all the parts' etags.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit ddc2e1a8e39a5c6b9b224c3eebd1c0e762ca5782)
-
- Conflicts:
- src/rgw/rgw_op.cc
-
-commit 1f3f2982224f68109cce8b5564d99977b22c8f60
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jul 29 15:25:47 2014 -0700
-
- rgw: fix crash in swift CORS preflight request
-
- Fixes: #8586
-
- This fixes error handling, in accordance with commit 6af5a537 that fixed
- the same issue for the S3 case.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 18ea2a869791b4894f93fdafde140285f2e4fb65)
-
-commit 6e4921500aeb256da0fa20da6ee47fb7d4e171f6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 30 11:53:16 2014 -0700
-
- cls_rgw: fix object name of objects removed on object creation
-
- Fixes: #8972
- Backport: firefly, dumpling
-
- Reported-by: Patrycja Szabłowska <szablowska.patrycja@gmail.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 0f8929a68aed9bc3e50cf15765143a9c55826cd2)
-
-commit 4aa2b87385e94be0147401918c332d526029e481
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 2 10:38:43 2014 -0700
-
- qa/workunits/rest/test.py: make osd create test idempotent
-
- Avoid possibility that we create multiple OSDs do to retries by passing in
- the optional uuid arg. (A stray osd id will make the osd tell tests a
- few lines down fail.)
-
- Fixes: #8728
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bb3e1c92b6682ed39968dc5085b69c117f43cbb0)
-
-commit 935e75a850b3363536cc09b68f45f2a497da4bb4
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Apr 10 15:14:19 2014 +0100
-
- mon: Monitor: suicide on start if mon has been removed from monmap
-
- If the monitor has been marked as having been part of an existing quorum
- and is no longer in the monmap, then it is safe to assume the monitor
- was removed from the monmap. In that event, do not allow the monitor
- to start, as it will try to find its way into the quorum again (and
- someone clearly stated they don't really want them there), unless
- 'mon force quorum join' is specified.
-
- Fixes: 6789
- Backport: dumpling, emperor
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 86b85947a2148c2e73886c1a7edd09093966ada0)
-
- Conflicts:
- src/common/config_opts.h
-
-commit 4aca6c0d7540c2bf5fb54df2d70c4649a9b94100
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 16:05:58 2014 -0700
-
- utf8: export encode_utf8() and decode_utf8()
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 49fc68cf8c3122c878ea9503c9c74d7046bc9c6f)
-
-commit ffa1f5200061c48de6315b5e7bd335ab5f718a6f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jul 18 14:52:48 2014 -0700
-
- rgw: dump prefix unconditionally
-
- As part of issue #8858, and to be more in line with S3, dump the Prefix
- field when listing bucket even if bucket is empty.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d7209c11251d42227608bc54cc69232ef62ffe80)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
-commit 6df17a92283da9933bf5a3fca1278b728c79b8ee
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 15:48:26 2014 -0700
-
- rgw: list extra objects to set truncation flag correctly
-
- Otherwise we end up returning wrong truncated value, and no data on the
- next iteration.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit dc417e477d4ad262885c6b5f5987cf06d63b159d)
-
-commit 77c20879d02c9793241da508b5ad59f8b927e9f7
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 11:45:44 2014 -0700
-
- rgw: account common prefixes for MaxKeys in bucket listing
-
- To be more in line with the S3 api. Beforehand we didn't account the
- common prefixes towards the MaxKeys (a single common prefix counts as a
- single key). Also need to adjust the marker now if it is pointing at a
- common prefix.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 82d2d612e700f94a0bb2d9fb7555abf327be379b)
-
-commit 7068d8595ff462323dedd9b56bce28a76405585a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 11:24:51 2014 -0700
-
- rgw: add NextMarker param for bucket listing
-
- Partially fixes #8858.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 924686f0b6593deffcd1d4e80ab06b1e7af00dcb)
-
-commit 9604425b86f5839a109faa1f396b0d114e9b9391
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 15:21:09 2014 -0700
-
- rgw: improve delmited listing of bucket
-
- If found a prefix, calculate a string greater than that so that next
- request we can skip to that. This is still not the most efficient way to
- do it. It'll be better to push it down to the objclass, but that'll
- require a much bigger change.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit e6cf618c257f26f97f60a4c1df1d23a14496cab0)
-
-commit b287c677ba1a5573e66c8a287f6a1f420c3ba46f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 12:23:31 2014 -0700
-
- rgw: don't try to wait for pending if list is empty
-
- Fixes: #8846
- Backport: firefly, dumpling
-
- This was broken at ea68b9372319fd0bab40856db26528d36359102e. We ended
- up calling wait_pending_front() when pending list was empty.
- This commit also moves the need_to_wait check to a different place,
- where we actually throttle (and not just drain completed IOs).
-
- Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit f9f2417d7db01ecf2425039539997901615816a9)
-
-commit 4b13caf5be33d4644811d387d1350f2f11ac5409
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Thu Apr 24 12:55:26 2014 -0700
-
- Use new git mirror for qemu-iotests
-
- Fixes: 8191
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
- (cherry picked from commit ddf37d903f826f3e153d8009c716780453b68b05)
-
-commit 3f251024bf056f5a8c22f29333b3a81589431424
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Wed Apr 23 13:20:14 2014 -0700
-
- Support latest qemu iotest code
-
- Modified qemu-iotests workunit script to check for versions
- that use the latest qemu (currently only Trusty). Limit the
- tests to those that are applicable to rbd.
-
- Fixes: 7882
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
- (cherry picked from commit 606e725eb5204e76e602d26ffd113e40af2ee812)
-
-commit d06137841f9911ce4dc0d9ab9be73a131ede879d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Mar 31 14:53:31 2014 -0700
-
- librbd: skip zeroes when copying an image
-
- This is the simple coarse-grained solution, but it works well in
- common cases like a small base image resized with a bunch of empty
- space at the end. Finer-grained sparseness can be copied by using rbd
- {export,import}-diff.
-
- Fixes: #6257
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 824da2029613a6f4b380b6b2f16a0bd0903f7e3c)
-
-commit 8649cbbc96a4de9de169b0203f35e0ac6c36a2ef
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Jul 1 15:19:21 2014 -0700
-
- Revert "qa/workunits/suites/fsx.sh: don't use zero range"
-
- This reverts commit 583e6e3ef7f28bf34fe038e8a2391f9325a69adf.
-
- We're using a different fsx source, which doesn't support the
- same options as our git-based one does.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
-
-commit 583e6e3ef7f28bf34fe038e8a2391f9325a69adf
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 30 07:05:04 2014 -0700
-
- qa/workunits/suites/fsx.sh: don't use zero range
-
- Zero range is not supported by cephfs.
-
- Fixes: #8542
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2dec8a810060f65d022c06e82090b4aa5ccec0cb)
-
-commit 49c0b46153f96a94407ef2487b2bd9525dfaa1e6
-Merge: 3c63601 4ca12b4
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 30 19:19:24 2014 +0200
-
- Merge pull request #2014 from ceph/wip-scrub-dumpling
-
- osd: scrub priority updates for dumpling
-
- Reviewed-by: Loic Dachary <loic@dachary.org>
-
-commit 3c63601888c5c825f33ffc6797474eb8dc6935a4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jun 16 11:48:24 2014 -0700
-
- rgw: allocate enough space for bucket instance id
-
- Fixes: #8608
- Backport: dumpling, firefly
- Bucket instance id is a concatenation of zone name, rados instance id,
- and a running counter. We need to allocate enough space to account zone
- name length.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d2e86a66ca55685e04ffbfaa58452af59f381277)
-
-commit 15360a900c8746c28006d6f5c8b093685ddac796
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 08:52:51 2014 -0700
-
- ceph-disk: partprobe before settle when preparing dev
-
- Two users have reported this fixes a problem with using --dmcrypt.
-
- Fixes: #6966
- Tested-by: Eric Eastman <eric0e@aol.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0f196265f049d432e399197a3af3f90d2e916275)
-
-commit ef736f530405a2c4f9a9a1b4cc98d1160524e1ab
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 17 13:33:14 2014 -0700
-
- osd: fix filestore perf stats update
-
- Update the struct we are about to send, not the (unlocked!) one we will
- send the next time around.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4afffb4a10a0bbf7f2018ef3ed6b167c7921e46b)
-
-commit 4ca12b40206f64d32369a78ce443a0dbf5d2b757
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:02:09 2014 -0700
-
- common/WorkQueue: allow io priority to be set for wq
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5e4b3b1f1cb870f39fc7cfb3adeae93e078d9057)
-
- Conflicts:
- src/common/WorkQueue.cc
-
-commit c9b3067f9b78a65e0b9c2ce2488d8906eb73c869
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:01:42 2014 -0700
-
- common/Thread: allow io priority to be set for a Thread
-
- Ideally, set this before starting the thread. If you set it after, we
- could potentially race with create() itself.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 01533183e7455b713640e001962339907fb6f980)
-
-commit 0796057f1c13c467dd3eadca036e3034da20e500
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:01:09 2014 -0700
-
- common/io_priority: wrap ioprio_set() and gettid()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 705713564bebd84ad31cc91698311cf2fbd51a48)
-
- Conflicts:
- src/common/Makefile.am
-
-commit c46fe8e9ec54d4decd1f70256a8ab05c9b183f8a
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 17 10:47:24 2014 -0700
-
- osd: introduce simple sleep during scrub
-
- This option is similar to osd_snap_trim_sleep: simply inject an optional
- sleep in the thread that is doing scrub work. This is a very kludgey and
- coarse knob for limiting the impact of scrub on the cluster, but can help
- until we have a more robust and elegant solution.
-
- Only sleep if we are in the NEW_CHUNK state to avoid delaying processing of
- an in-progress chunk. In this state nothing is blocked on anything.
- Conveniently, chunky_scrub() requeues itself for each new chunk.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c4e8451cc5b4ec5ed07e09c08fb13221e31a7ac6)
-
-commit 3cf01a0e56c5599731e25898c1d9f2d2b3d6a9ba
-Merge: 8fd2fc1 c340085
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 09:27:03 2014 -0700
-
- Merge pull request #1963 from dachary/wip-8599-ruleset-dumpling
-
- mon: pool set <pool> crush_ruleset must not use rule_exists (dumpling)
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit c34008532362c3afadff6287bc8746c141a221a3
-Author: John Spray <john.spray@inktank.com>
-Date: Tue May 20 16:50:18 2014 +0100
-
- mon: pool set <pool> crush_ruleset must not use rule_exists
-
- Implement CrushWrapper::ruleset_exists that iterates over the existing
- rulesets to find the one matching the ruleset argument.
-
- ceph osd pool set <pool> crush_ruleset must not use
- CrushWrapper::rule_exists, which checks for a *rule* existing, whereas
- the value being set is a *ruleset*. (cherry picked from commit
- fb504baed98d57dca8ec141bcc3fd021f99d82b0)
-
- A test via ceph osd pool set data crush_ruleset verifies the ruleset
- argument is accepted.
-
- http://tracker.ceph.com/issues/8599 fixes: #8599
-
- Backport: firefly, emperor, dumpling
- Signed-off-by: John Spray <john.spray@inktank.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit d02d46e25080d5f7bb8ddd4874d9019a078b816b)
-
- Conflicts:
- src/mon/OSDMonitor.cc
-
-commit 8fd2fc1aec4ba08c086a7db2208dbdebfcb4e92e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 3 07:03:01 2014 -0800
-
- osd: 'status' admin socket command
-
- Basic stuff, like what state is the OSD in, and what osdmap epoch are
- we on.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 09099c9e4c7d2aa31eb8a0b7c18e43272fae7ce2)
-
-commit 323492451c2d29b90c30a4e133dc8ca9780035a5
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 8 20:18:49 2014 -0700
-
- init-ceph: continue after failure doing osd data mount
-
- If we are starting many daemons and hit an error, we normally note it and
- move on. Do the same when doing the pre-mount step.
-
- Fixes: #8554
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6a7e20147cc39ed4689809ca7d674d3d408f2a17)
-
-commit 558249c519225d5e6d0784da20fe12d8f5d71cd2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue May 6 11:06:29 2014 -0700
-
- rgw: cut short object read if a chunk returns error
-
- Fixes: #8289
- Backport: firefly, dumpling
- When reading an object, if we hit an error when trying to read one of
- the rados objects then we should just stop. Otherwise we're just going
- to continue reading the rest of the object, and since it can't be sent
- back to the client (as we have a hole in the middle), we end up
- accumulating everything in memory.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 03b0d1cfb7bd30a77fedcf75eb06476b21b14e95)
-
-commit a948ce2f9ccf67d5ccc690b5c326af19b6e6da4d
-Merge: 95a464a 7ad2fbf
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 8 21:12:32 2014 -0700
-
- Merge pull request #1931 from ceph/wip-7068-dumpling
-
- Wip 7068 dumpling
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 95a464a443e3a249889151807065736fff44ea3a
-Merge: a79a787 94e6c08
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Jun 6 08:45:58 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-8269-dumpling' into dumpling
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit a79a787b924ef7e04efb7f3c13b9559e06bebfd8
-Author: John Wilkins <john.wilkins@inktank.com>
-Date: Thu Jun 5 11:41:41 2014 -0700
-
- doc: Added requiretty comment to preflight checklist.
-
- Signed-off-by: John Wilkins <john.wilkins@inktank.com>
-
-commit 5c5eb21fd1a12666e1ce79718c8166eb7bdd6748
-Author: John Wilkins <john.wilkins@inktank.com>
-Date: Thu Jun 5 11:34:46 2014 -0700
-
- doc: Added Disable requiretty to quick start.
-
- Signed-off-by: John Wilkins <john.wilkins@inktank.com>
-
-commit 7ad2fbf3bd3208f47aa2a76d3fd16479e2c845ab
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Oct 2 18:00:04 2013 -0700
-
- ReplicatedPG: lock snapdir obc during write
-
- Otherwise, we won't block properly in prep_push_backfill_object.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit b87bc2311aa4da065477f402a869e2edc1558e2f)
-
- Conflicts:
- src/osd/ReplicatedPG.h
-
-commit 94e6c0858fb07c0edb8fc4d08e02542d22823ed2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 2 17:06:05 2014 -0700
-
- rgw: don't allow multiple writers to same multiobject part
-
- Fixes: #8269
-
- A client might need to retry a multipart part write. The original thread
- might race with the new one, trying to clean up after it, clobbering the
- part's data.
- The fix is to detect whether an original part already existed, and if so
- use a different part name for it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.67.11.txt b/src/ceph/doc/changelog/v0.67.11.txt
deleted file mode 100644
index 6e581ec..0000000
--- a/src/ceph/doc/changelog/v0.67.11.txt
+++ /dev/null
@@ -1,215 +0,0 @@
-commit bc8b67bef6309a32361be76cd11fb56b057ea9d2 (tag: refs/tags/v0.67.11, refs/remotes/gh/dumpling)
-Author: Jenkins <jenkins@inktank.com>
-Date: Wed Sep 24 06:25:55 2014 -0700
-
- 0.67.11
-
-commit 0e90b04d9452999d7d91305c80585782d492c91b (refs/remotes/gh/dumpling-jni)
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed May 21 21:41:23 2014 -0700
-
- cephfs-java: build against older jni headers
-
- Older versions of the JNI interface expected non-const parameters
- to their memory move functions. It's unpleasant, but won't actually
- change the memory in question, to do a cast_const in order to satisfy
- those older headers. (And even if it *did* modify the memory, that
- would be okay given our single user.)
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 4d4b77e5b6b923507ec4a0ad9d5c7018e4542a3c)
-
-commit 3f020443c8d92e61d8593049147a79a6696c9c93
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Jul 24 15:29:40 2014 -0700
-
- librbd: fix crash using clone of flattened image
-
- The crash occurs due to ImageCtx->parent->parent being uninitialized,
- since the inital open_parent() -> open_image(parent) ->
- ictx_refresh(parent) occurs before ImageCtx->parent->snap_id is set,
- so refresh_parent() is not called to open an ImageCtx for the parent
- of the parent. This leaves the ImageCtx->parent->parent NULL, but the
- rest of ImageCtx->parent updated to point at the correct parent snapshot.
-
- Setting the parent->snap_id earlier has some unintended side effects
- currently, so for now just call refresh_parent() during
- open_parent(). This is the easily backportable version of the
- fix. Further patches can clean up this whole initialization process.
-
- Fixes: #8845
- Backport: firefly, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 2545e80d274b23b6715f4d8b1f4c6b96182996fb)
-
-commit d3e880af5f3ae71d13159514c33c6b41fc648d54
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 10 08:00:50 2014 -0700
-
- test/cli-integration/rbd: fix trailing space
-
- Newer versions of json.tool remove the trailing ' ' after the comma. Add
- it back in with sed so that the .t works on both old and new versions, and
- so that we don't have to remove the trailing spaces from all of the test
- cases.
-
- Fixes: #8920
-
- Backports commit 605064dc685aa25cc7d58ec18b6449a3ce476d01
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 5336398618f49d10e497392ab942d43062ed772d
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Aug 16 12:42:33 2014 -0700
-
- os/FileStore: fix mount/remount force_sync race
-
- Consider:
-
- - mount
- - sync_entry is doing some work
- - umount
- - set force_sync = true
- - set done = true
- - sync_entry exits (due to done)
- - ..but does not set force_sync = false
- - mount
- - journal replay starts
- - sync_entry sees force_sync and does a commit while op_seq == 0
- ...crash...
-
- Fixes: #9144
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit dd11042f969b94f7a461d02e1475794031c79f61)
-
- Conflicts:
- src/os/FileStore.cc
-
-commit f7498c47ed90db71e50a3d4ff9ce13626e863719
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 13:44:57 2014 -0700
-
- osdc/Objecter: revoke rx_buffer on op_cancel
-
- If we cancel a read, revoke the rx buffers to avoid a use-after-free and/or
- other undefined badness by using user buffers that may no longer be
- present.
-
- Fixes: #9362
- Backport: firefly, dumpling
- Reported-by: Matthias Kiefer <matthias.kiefer@1und1.de>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2305b2897acba38384358c33ca3bbfcae6f1c74e)
-
- (adjusted for op->con instead of s->con)
-
-commit 4dbb5010bd73ea8c7f9ed85e90e645ba1e85ea0a
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 06:58:45 2014 -0700
-
- mon/Paxos: don't spam log with is_readable at dout level 1
-
- Backport: firefly, dumpling
- Reported-by: Aanchal Agrawal <Aanchal.Agrawal@sandisk.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 62ca27d0b119b597ebad40dde64c4d86599e466d)
-
-commit 5315cf0a47e0a21e514df0d85be170dbca7ffc92
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Sep 4 13:58:14 2014 -0400
-
- doc: add note on soft JS dependency for navigating docs
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 657be818375bea2d8b5998ea1e5505eedc2f294d)
-
-commit 707076e3a9294169c3042afeb11b71b84727094b
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Sep 3 21:21:45 2014 -0400
-
- doc: fix missing bracket
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 69638dfaeb0dcd96dac4b5f5c00ed08042432487)
-
-commit 2ebdcfd5490462d77e32ffe3ef162f70183d53ab
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Sep 3 20:47:54 2014 -0400
-
- doc: attempt to get the ayni JS into all head tags
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 35663fa55ac1579a3b0c8b67028a3a8dfea87b48)
-
-commit c7948afa8232117c8a6e13b17774045a5e1bea6d
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 17 20:54:28 2014 -0700
-
- qa/workunits/rbd/qemu-iotests: touch common.env
-
- This seems to be necessary on trusty.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 055be68cf8e1b84287ab3631a02e89a9f3ae6cca)
-
-commit aaeebceb2189336f5f957f2a797d0448c2754b15
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 13:32:29 2014 -0700
-
- mon: fix divide by zero when pg_num adjusted and no osds
-
- Fixes: #9052
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
-
- Manual backport of 239401db7b51541a57c59a261b89e0f05347c32d
-
-commit e7c5fb58d85ed0d1be359e616137666c5e207c38
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 07:05:34 2014 -0700
-
- common/LogClient: fix sending dup log items
-
- We need to skip even the most recently sent item in order to get to the
- ones we haven't sent yet.
-
- Fixes: #9080
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 057c6808be5bc61c3f1ac2b956c1522f18411245)
-
-commit cbc9218edc122337fd6d9dbbdca18670e20c6169
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Aug 11 16:41:26 2014 -0700
-
- librbd: fix error path cleanup for opening an image
-
- If the image doesn't exist and caching is enabled, the ObjectCacher
- was not being shutdown, and the ImageCtx was leaked. The IoCtx could
- later be closed while the ObjectCacher was still running, resulting in
- a segfault. Simply use the usual cleanup path in open_image(), which
- works fine here.
-
- Fixes: #8912
- Backport: dumpling, firefly
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3dfa72d5b9a1f54934dc8289592556d30430959d)
-
-commit b5dafe1c0f7ecf7c3a25d0be5dfddcbe3d07e69e
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:02:58 2014 -0700
-
- osd: allow io priority to be set for the disk_tp
-
- The disk_tp covers scrubbing, pg deletion, and snap trimming
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 84b3003119eeb8acfb3faacf357e6c6a452950e3)
-
- Conflicts:
- src/osd/OSD.cc
-
- (cherry picked from commit 987ad133415aa988061c95259f9412b05ce8ac7e)
diff --git a/src/ceph/doc/changelog/v0.67.2.txt b/src/ceph/doc/changelog/v0.67.2.txt
deleted file mode 100644
index e5d0f3d..0000000
--- a/src/ceph/doc/changelog/v0.67.2.txt
+++ /dev/null
@@ -1,207 +0,0 @@
-commit eb4380dd036a0b644c6283869911d615ed729ac8
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Thu Aug 22 19:10:55 2013 -0700
-
- v0.67.2
-
-commit 242e43dae5b7c935b8f92c09e8dfe4704ba13787
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:49:57 2013 -0700
-
- .gitignore: ignore test-driver
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit edf2c3449ec96d91d3d7ad01c50f7a79b7b2f7cc)
-
-commit 88aef702fb77c0a176caf37646a11ef480621412
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:42:49 2013 -0700
-
- fuse: fix warning when compiled against old fuse versions
-
- client/fuse_ll.cc: In function 'void invalidate_cb(void*, vinodeno_t, int64_t, int64_t)':
- warning: client/fuse_ll.cc:540: unused variable 'fino'
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9833e9dabe010e538cb98c51d79b6df58ce28f9e)
-
-commit 48e104c9486f7a532455df108dbc225c00796097
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:40:34 2013 -0700
-
- json_spirit: remove unused typedef
-
- In file included from json_spirit/json_spirit_writer.cpp:7:0:
- json_spirit/json_spirit_writer_template.h: In function 'String_type json_spirit::non_printable_to_string(unsigned int)':
- json_spirit/json_spirit_writer_template.h:37:50: warning: typedef 'Char_type' locally defined but not used [-Wunused-local-typedefs]
- typedef typename String_type::value_type Char_type;
-
- (Also, ha ha, this file uses \r\n.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6abae35a3952e5b513895267711fea63ff3bad09)
-
-commit ae42619ca710d737bf4d8c63f39d1102326c903c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 9 12:31:41 2013 -0700
-
- gtest: add build-aux/test-driver to .gitignore
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c9cdd19d1cd88b84e8a867f5ab85cb51fdc6f8e4)
-
-commit 2c122be08db2f233d66214eb804734ae45646084
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Aug 21 14:28:49 2013 -0700
-
- objecter: resend unfinished lingers when osdmap is no longer paused
-
- Plain Ops that haven't finished yet need to be resent if the osdmap
- transitions from full or paused to unpaused. If these Ops are
- triggered by LingerOps, they will be cancelled instead (since
- should_resend = false), but the LingerOps that triggered them will not
- be resent.
-
- Fix this by checking the registered flag for all linger ops, and
- resending any of them that aren't paused anymore.
-
- Fixes: #6070
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- (cherry picked from commit 38a0ca66a79af4b541e6322467ae3a8a4483cc72)
-
-commit f6fe74ff51f679e7245b02462822d9ef1e15d28c
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 11:23:46 2013 -0700
-
- pybind: fix Rados.conf_parse_env test
-
- This happens after we connect, which means we get ENOSYS always.
- Instead, parse_env inside the normal setup method, which had the added
- benefit of being able to debug these tests.
-
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6ef1970340c57d6e02f947348fb38882b51d131c)
-
-commit 47c89497b7f69cbf1557cd05b89837c388e2ba2f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 13:14:59 2013 -0700
-
- librados: fix MWatchNotify leak
-
- Do not leak the message if the watcher is not registered. Also, simplify
- this block.
-
- Fixes (part of): #5949
- Backport: dumpling, cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 6f5d8036f3e70c5e30edf7e36fb8ff9a56197f60)
-
-commit b3a9a8c4e5edff5431d8da71033047eced6bf985
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Aug 19 17:23:44 2013 -0700
-
- PG: remove old log when we upgrade log version
-
- Otherwise the log_oid will be non-empty and the next
- boot will cause us to try to upgrade again.
-
- Fixes: #6057
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1f851cb2489a95526de932ec6734ebf413e43490)
-
-commit c6005ccbaa482c62d7a6cbb387bdcf17f0e308d5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Aug 19 00:02:24 2013 -0700
-
- PGLog: add a config to disable PGLog::check()
-
- This is a debug check which may be causing excessive
- cpu usage.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 00080d785f6695b800f71317a3048a21064e61cb)
-
-commit 96d719eeecceaa06078a29c2f868e50e6bc9ab31
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 19 12:48:50 2013 -0700
-
- ceph: parse CEPH_ARGS environment variable
-
- Fixes: #6052
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 67a95b9880c9bc6e858150352318d68d64ed74ad)
-
-commit d348cf5d135d099fe0490c1519196cd83a04831e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 19 12:48:40 2013 -0700
-
- rados pybind: add conf_parse_env()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit eef7cacdb19313907a9367187b742db5382ee584)
-
-commit 290bcd8a718887eb0e28aa2d97bceeee79068ea9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Aug 13 13:16:07 2013 -0700
-
- rgw: drain requests before exiting
-
- Fixes: #5953
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3cbf6a7b031c2ce8072733c5c0b7ceb53fdcb090)
-
-commit 863df08a43dff99797453040eb1ef6071b0432f9
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 11:16:17 2013 -0700
-
- rgw: do not leak handler in get_handler() error path
-
- If we fail to initialize, delete the handler.
-
- Fixes (part of): #5949
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 810c52de36719c3ee6cf2bdf59d5cde8840bbe55)
-
-commit 9ac003f793b6cc72059110aac44014ddf2372bee
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 23:20:54 2013 -0700
-
- rgw: fix leak of RGWDataChangesLog::renew_thread
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 25948319c4d256c4aeb0137eb88947e54d14cc79)
-
-commit 89cd9dc403e97b4bd08920fbb5d6e2b8b9b7dac2
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 23:17:10 2013 -0700
-
- rgw: free resolver on shutdown
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a31356338b8ae55df59d829d9080ffad70b97d10)
-
-commit 5b26ca7fa5beb87cbbe6bbb26d70789ff2aa7661
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 26 23:22:20 2013 -0700
-
- rgw: fix up signal handling
-
- OMG libfcgi is annoying with shutdown and signals. You need to close
- the fd *and* resend a signal to ensure that you kick the accept loop
- hard enough to make it shut down.
-
- Document this, and switch to the async signal handlers. Put them
- tightly around the runtime loop as we do with other daemons.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 59b13cebee600dad2551d2c7dc3482b05eaf8b22)
diff --git a/src/ceph/doc/changelog/v0.67.3.txt b/src/ceph/doc/changelog/v0.67.3.txt
deleted file mode 100644
index d6b1f2b..0000000
--- a/src/ceph/doc/changelog/v0.67.3.txt
+++ /dev/null
@@ -1,700 +0,0 @@
-commit 408cd61584c72c0d97b774b3d8f95c6b1b06341a
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Mon Sep 9 12:50:11 2013 -0700
-
- v0.67.3
-
-commit 17a7342b3b935c06610c58ab92a9a1d086923d32
-Merge: b4252bf 10433bb
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Sep 7 13:34:45 2013 -0700
-
- Merge pull request #574 from dalgaaf/fix/da-dumpling-cherry-picks
-
- init-radosgw*: fix status return value if radosgw isn't running
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 10433bbe72dbf8eae8fae836e557a043610eb54e
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sat Sep 7 11:30:15 2013 +0200
-
- init-radosgw*: fix status return value if radosgw isn't running
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b5137baf651eaaa9f67e3864509e437f9d5c3d5a)
-
-commit b4252bff79150a95e9d075dd0b5e146ba9bf2ee5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Aug 22 11:19:37 2013 -0700
-
- FileStore: add config option to disable the wbthrottle
-
- Backport: dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3528100a53724e7ae20766344e467bf762a34163)
-
-commit 699324e0910e5e07a1ac68df8cf1108e5671ec15
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Aug 22 11:19:52 2013 -0700
-
- WBThrottle: use fdatasync instead of fsync
-
- Backport: dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d571825080f0bff1ed3666e95e19b78a738ecfe8)
-
-commit 074717b4b49ae1a55bc867e5c34d43c51edc84a5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Aug 29 15:08:58 2013 -0700
-
- PGLog: initialize writeout_from in PGLog constructor
-
- Fixes: 6151
- Backport: dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Introduced: f808c205c503f7d32518c91619f249466f84c4cf
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 42d65b0a7057696f4b8094f7c686d467c075a64d)
-
-commit c22d980cf42e580818dc9f526327518c0ddf8ff5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 27 08:49:14 2013 -0700
-
- PGLog: maintain writeout_from and trimmed
-
- This way, we can avoid omap_rmkeyrange in the common append
- and trim cases.
-
- Fixes: #6040
- Backport: Dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit f808c205c503f7d32518c91619f249466f84c4cf)
-
-commit 53c7ab4db00ec7034f5aa555231f9ee167f43201
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 27 07:27:26 2013 -0700
-
- PGLog: don't maintain log_keys_debug if the config is disabled
-
- Fixes: #6040
- Backport: Dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 1c0d75db1075a58d893d30494a5d7280cb308899)
-
-commit 40dc489351383c2e35b91c3d4e76b633309716df
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Aug 26 23:19:45 2013 -0700
-
- PGLog: move the log size check after the early return
-
- There really are stl implementations (like the one on my ubuntu 12.04
- machine) which have a list::size() which is linear in the size of the
- list. That assert, therefore, is quite expensive!
-
- Fixes: #6040
- Backport: Dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit fe68b15a3d82349f8941f5b9f70fcbb5d4bc7f97)
-
-commit 4261eb5ec105b9c27605360910602dc367fd79f5
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 13 17:16:08 2013 -0700
-
- rbd.cc: relicense as LGPL2
-
- All past authors for rbd.cc have consented to relicensing from GPL to
- LGPL2 via email:
-
- ---
-
- Date: Sat, 27 Jul 2013 01:59:36 +0200
- From: Sylvain Munaut <s.munaut@whatever-company.com>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I hereby consent to the relicensing of any contribution I made to the
- aforementioned rbd.cc file from GPL to LGPL2.1.
-
- (I hope that'll be impressive enough, I did my best :p)
-
- btw, tnt@246tNt.com and s.munaut@whatever-company.com are both me.
-
- Cheers,
-
- Sylvain
-
- ---
-
- Date: Fri, 26 Jul 2013 17:00:48 -0700
- From: Yehuda Sadeh <yehuda@inktank.com>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent.
-
- ---
-
- Date: Fri, 26 Jul 2013 17:02:24 -0700
- From: Josh Durgin <josh.durgin@inktank.com>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent.
-
- ---
-
- Date: Fri, 26 Jul 2013 18:17:46 -0700
- From: Stanislav Sedov <stas@freebsd.org>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent.
-
- Thanks for taking care of it!
-
- ---
-
- Date: Fri, 26 Jul 2013 18:24:15 -0700
- From: Colin McCabe <cmccabe@alumni.cmu.edu>
-
- I consent.
-
- cheers,
- Colin
-
- ---
-
- Date: Sat, 27 Jul 2013 07:08:12 +0200
- From: Christian Brunner <christian@brunner-muc.de>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent
-
- Christian
-
- ---
-
- Date: Sat, 27 Jul 2013 12:17:34 +0300
- From: Stratos Psomadakis <psomas@grnet.gr>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- Hi,
-
- I consent with the GPL -> LGL2.1 re-licensing.
-
- Thanks
- Stratos
-
- ---
-
- Date: Sat, 27 Jul 2013 16:13:13 +0200
- From: Wido den Hollander <wido@42on.com>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent!
-
- You have my permission to re-license the code I wrote for rbd.cc to LGPL2.1
-
- ---
-
- Date: Sun, 11 Aug 2013 10:40:32 +0200
- From: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- Subject: Re: btw
-
- Hi Sage,
-
- I agree to switch the license of ceph_argparse.py and rbd.cc from GPL2
- to LGPL2.
-
- Regards
-
- Danny Al-Gaaf
-
- ---
-
- Date: Tue, 13 Aug 2013 17:15:24 -0700
- From: Dan Mick <dan.mick@inktank.com>
- Subject: Re: Ceph rbd.cc GPL -> LGPL2 license change
-
- I consent to relicense any contributed code that I wrote under LGPL2.1 license.
-
- ---
-
- ...and I consent too. Drop the exception from COPYING and debian/copyright
- files.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2206f55761c675b31078dea4e7dd66f2666d7d03)
-
-commit 211c5f13131e28b095a1f3b72426128f1db22218
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Aug 23 15:39:20 2013 -0700
-
- rgw: flush pending data when completing multipart part upload
-
- Fixes: #6111
- Backport: dumpling
- When completing the part upload we need to flush any data that we
- aggregated and didn't flush yet. With earlier code didn't have to deal
- with it as for multipart upload we didn't have any pending data.
- What we do now is we call the regular atomic data completion
- function that takes care of it.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 9a551296e0811f2b65972377b25bb28dbb42f575)
-
-commit 1a9651010aab51c9be2edeccd80e9bd11f5177ce
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 26 19:46:43 2013 -0700
-
- rgw: check object name after rebuilding it in S3 POST
-
- Fixes: #6088
- Backport: bobtail, cuttlefish, dumpling
-
- When posting an object it is possible to provide a key
- name that refers to the original filename, however we
- need to verify that in the end we don't end up with an
- empty object name.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit c8ec532fadc0df36e4b265fe20a2ff3e35319744)
-
-commit 1bd74a020b93f154b2d4129d512f6334387de7c7
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 22 17:46:45 2013 -0700
-
- mon/MonClient: release pending outgoing messages on shutdown
-
- This fixes a small memory leak when we have messages queued for the mon
- when we shut down. It is harmless except for the valgrind leak check
- noise that obscures real leaks.
-
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 309569a6d0b7df263654b7f3f15b910a72f2918d)
-
-commit 24f2669783e2eb9d9af5ecbe106efed93366ba63
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Aug 29 13:06:33 2013 -0700
-
- rgw: change watch init ordering, don't distribute if can't
-
- Backport: dumpling
-
- Moving back the watch initialization after the zone init,
- as the zone info holds the control pool name. Since zone
- init might need to create a new system object (that needs
- to distribute cache), don't try to distribute cache if
- watch is not yet initialized.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 1d1f7f18dfbdc46fdb09a96ef973475cd29feef5)
-
-commit a708c8ab52e5b1476405a1f817c23b8845fbaab3
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 30 09:41:29 2013 -0700
-
- ceph-post-file: use mktemp instead of tempfile
-
- tempfile is a debian thing, apparently; mktemp is present everywhere.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e60d4e09e9f11e3c34a05cd122341e06c7c889bb)
-
-commit 625f13ee0d6cca48d61dfd65e00517d092552d1c
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Aug 28 09:50:11 2013 -0700
-
- mon: discover mon addrs, names during election state too
-
- Currently we only detect new mon addrs and names during the probing phase.
- For non-trivial clusters, this means we can get into a sticky spot when
- we discover enough peers to form an quorum, but not all of them, and the
- undiscovered ones are enough to break the mon ranks and prevent an
- election.
-
- One way to work around this is to continue addr and name discovery during
- the election. We should also consider making the ranks less sensitive to
- the undefined addrs; that is a separate change.
-
- Fixes: #4924
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Tested-by: Bernhard Glomm <bernhard.glomm@ecologic.eu>
- (cherry picked from commit c24028570015cacf1d9e154ffad80bec06a61e7c)
-
-commit 83cfd4386c1fd0fa41aea345704e27f82b524ece
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Aug 22 17:30:24 2013 -0700
-
- ceph_rest_api.py: create own default for log_file
-
- common/config thinks the default log_file for non-daemons should be "".
- Override that so that the default is
- /var/log/ceph/{cluster}-{name}.{pid}.log
- since ceph-rest-api is more of a daemon than a client.
-
- Fixes: #6099
- Backport: dumpling
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 2031f391c3df68e0d9e381a1ef3fe58d8939f0a8)
-
-commit 8a1da62d9564a32f7b8963fe298e1ac3ad0ea3d9
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 16 17:59:11 2013 -0700
-
- ceph-post-file: single command to upload a file to cephdrop
-
- Use sftp to upload to a directory that only this user and ceph devs can
- access.
-
- Distribute an ssh key to connect to the account. This will let us revoke
- the key in the future if we feel the need. Also distribute a known_hosts
- file so that users have some confidence that they are connecting to the
- real ceph drop account and not some third party.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit d08e05e463f1f7106a1f719d81b849435790a3b9)
-
-commit 3f8663477b585dcb528fdd7047c50d9a52d24b95
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Aug 22 13:29:32 2013 -0700
-
- ceph.spec.in: remove trailing paren in previous commit
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 23fb908cb3ac969c874ac12755d20ed2f636e1b9
-Author: Gary Lowell <glowell@inktank.com>
-Date: Thu Aug 22 11:07:16 2013 -0700
-
- ceph.spec.in: Don't invoke debug_package macro on centos.
-
- If the redhat-rpm-config package is installed, the debuginfo rpms will
- be built by default. The build will fail when the package installed
- and the specfile also invokes the macro.
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 11f5853d8178ab60ab948d373c1a1f67324ce3bd
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Aug 24 14:04:09 2013 -0700
-
- osd: install admin socket commands after signals
-
- This lets us tell by the presence of the admin socket commands whether
- a signal will make us shut down cleanly. See #5924.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit c5b5ce120a8ce9116be52874dbbcc39adec48b5c)
-
-commit 39adc0195e6016ce36828885515be1bffbc10ae1
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 22:39:09 2013 -0700
-
- ceph-disk: partprobe after creating journal partition
-
- At least one user reports that a partprobe is needed after creating the
- journal partition. It is not clear why sgdisk is not doing it, but this
- fixes ceph-disk for them, and should be harmless for other users.
-
- Fixes: #5599
- Tested-by: lurbs in #ceph
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2af59d5e81c5e3e3d7cfc50d9330d7364659c5eb)
- (cherry picked from commit 3e42df221315679605d68b2875aab6c7eb6b3cc4)
-
-commit 6a4fe7b9b068ae990d6404921a46631fe9ebcd31
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 11:27:23 2013 -0700
-
- mon/Paxos: always refresh after any store_state
-
- If we store any new state, we need to refresh the services, even if we
- are still in the midst of Paxos recovery. This is because the
- subscription path will share any committed state even when paxos is
- still recovering. This prevents a race like:
-
- - we have maps 10..20
- - we drop out of quorum
- - we are elected leader, paxos recovery starts
- - we get one LAST with committed states that trim maps 10..15
- - we get a subscribe for map 10..20
- - we crash because 10 is no longer on disk because the PaxosService
- is out of sync with the on-disk state.
-
- Fixes: #6045
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 981eda9f7787c83dc457f061452685f499e7dd27)
-
-commit 13d396e46ed9200e4b9f21db2f0a8efbc5998d82
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 11:27:09 2013 -0700
-
- mon/Paxos: return whether store_state stored anything
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 7e0848d8f88f156a05eef47a9f730b772b64fbf2)
-
-commit f248383bacff76203fa94716cfdf6cf766da24a7
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 20 11:26:57 2013 -0700
-
- mon/Paxos: cleanup: use do_refresh from handle_commit
-
- This avoid duplicated code by using the helper created exactly for this
- purpose.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit b9dee2285d9fe8533fa98c940d5af7b0b81f3d33)
-
-commit 02608a12d4e7592784148a62a47d568efc24079d
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 21:48:06 2013 -0700
-
- osdc/ObjectCacher: do not merge rx buffers
-
- We do not try to merge rx buffers currently. Make that explicit and
- documented in the code that it is not supported. (Otherwise the
- last_read_tid values will get lost and read results won't get applied
- to the cache properly.)
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1c50c446152ab0e571ae5508edb4ad7c7614c310)
-
-commit 0e2bfe71965eeef29b47e8032637ea820a7ce49c
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 15 21:47:18 2013 -0700
-
- osdc/ObjectCacher: match reads with their original rx buffers
-
- Consider a sequence like:
-
- 1- start read on 100~200
- 100~200 state rx
- 2- truncate to 200
- 100~100 state rx
- 3- start read on 200~200
- 100~100 state rx
- 200~200 state rx
- 4- get 100~200 read result
-
- Currently this makes us crash on
-
- osdc/ObjectCacher.cc: 738: FAILED assert(bh->length() <= start+(loff_t)length-opos)
-
- when processing the second 200~200 bufferhead (it is too big). The
- larger issue, though, is that we should not be looking at this data at
- all; it has been truncated away.
-
- Fix this by marking each rx buffer with the read request that is sent to
- fill it, and only fill it from that read request. Then the first reply
- will fill the first 100~100 extend but not touch the other extent; the
- second read will do that.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit b59f930ae147767eb4c9ff18c3821f6936a83227)
-
-commit 6b51c960715971a0351e8203d4896cb0c4138a3f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Aug 22 15:54:48 2013 -0700
-
- mon/Paxos: fix another uncommitted value corner case
-
- It is possible that we begin the paxos recovery with an uncommitted
- value for, say, commit 100. During last/collect we discover 100 has been
- committed already. But also, another node provides an uncommitted value
- for 101 with the same pn. Currently, we refuse to learn it, because the
- pn is not strictly > than our current uncommitted pn... even though it is
- the next last_committed+1 value that we need.
-
- There are two possible fixes here:
-
- - make this a >= as we can accept newer values from the same pn.
- - discard our uncommitted value metadata when we commit the value.
-
- Let's do both!
-
- Fixes: #6090
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit fe5010380a3a18ca85f39403e8032de1dddbe905)
-
-commit b3a280d5af9d06783d2698bd434940de94ab0fda
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 23 11:45:35 2013 -0700
-
- os: make readdir_r buffers larger
-
- PATH_MAX isn't quite big enough.
-
- Backport: dumpling, cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 99a2ff7da99f8cf70976f05d4fe7aa28dd7afae5)
-
-commit 989a664ef0d1c716cab967f249112f595cf98c43
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 23 11:45:08 2013 -0700
-
- os: fix readdir_r buffer size
-
- The buffer needs to be big or else we're walk all over the stack.
-
- Backport: dumpling, cuttlefish, bobtail
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2df66d9fa214e90eb5141df4d5755b57e8ba9413)
-
- Conflicts:
-
- src/os/BtrfsFileStoreBackend.cc
-
-commit a4cca31c82bf0e84272e01eb1b3188dfdb5b5615
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Aug 22 10:53:12 2013 -0700
-
- rgw: fix crash when creating new zone on init
-
- Moving the watch/notify init before the zone init,
- as we might need to send a notification.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 3d55534268de7124d29bd365ea65da8d2f63e501)
-
-commit 4cf6996803ef66f2b6083f73593259d45e2740a3
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 19 08:40:16 2013 -0700
-
- rgw: change cache / watch-notify init sequence
-
- Fixes: #6046
- We were initializing the watch-notify (through the cache
- init) before reading the zone info which was much too
- early, as we didn't have the control pool name yet. Now
- simplifying init/cleanup a bit, cache doesn't call watch/notify
- init and cleanup directly, but rather states its need
- through a virtual callback.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d26ba3ab0374e77847c742dd00cb3bc9301214c2)
-
-commit aea6de532b0b843c3a8bb76d10bab8476f0d7c09
-Author: Alexandre Oliva <oliva@gnu.org>
-Date: Thu Aug 22 03:40:22 2013 -0300
-
- enable mds rejoin with active inodes' old parent xattrs
-
- When the parent xattrs of active inodes that the mds attempts to open
- during rejoin lack pool info (struct_v < 5), this field will be filled
- in with -1, causing the mds to retry fetching a backtrace with a pool
- number that matches the expected value, which fails and causes the
- err==-ENOENT branch to be taken and retry pool 1, which succeeds, but
- with pool -1, and so keeps on bouncing between the two retry cases
- forever.
-
- This patch arranges for the mds to go along with pool -1 instead of
- insisting that it be refetched, enabling it to complete recovery
- instead of eating cpu, network bandwidth and metadata osd's resources
- like there's no tomorrow, in what AFAICT is an infinite and very busy
- loop.
-
- This is not a new problem: I've had it even before upgrading from
- Cuttlefish to Dumpling, I'd just never managed to track it down, and
- force-unmounting the filesystem and then restarting the mds was an
- easier (if inconvenient) work-around, particularly because it always
- hit when the filesystem was under active, heavy-ish use (or there
- wouldn't be much reason for caps recovery ;-)
-
- There are two issues not addressed in this patch, however. One is
- that nothing seems to proactively update the parent xattr when it is
- found to be outdated, so it remains out of date forever. Not even
- renaming top-level directories causes the xattrs to be recursively
- rewritten. AFAICT that's a bug.
-
- The other is that inodes that don't have a parent xattr (created by
- even older versions of ceph) are reported as non-existing in the mds
- rejoin message, because the absence of the parent xattr is signaled as
- a missing inode (?failed to reconnect caps for missing inodes?). I
- suppose this may cause more serious recovery problems.
-
- I suppose a global pass over the filesystem tree updating parent
- xattrs that are out-of-date would be desirable, if we find any parent
- xattrs still lacking current information; it might make sense to
- activate it as a background thread from the backtrace decoding
- function, when it finds a parent xattr that's too out-of-date, or as a
- separate client (ceph-fsck?).
-
- Backport: dumpling, cuttlefish
- Signed-off-by: Alexandre Oliva <oliva@gnu.org>
- Reviewed-by: Zheng, Yan <zheng.z.yan@intel.com>
- (cherry picked from commit 617dc36d477fd83b2d45034fe6311413aa1866df)
-
-commit 0738bdf92f5e5eb93add152a4135310ac7ea1c91
-Author: David Disseldorp <ddiss@suse.de>
-Date: Mon Jul 29 17:05:44 2013 +0200
-
- mds: remove waiting lock before merging with neighbours
-
- CephFS currently deadlocks under CTDB's ping_pong POSIX locking test
- when run concurrently on multiple nodes.
- The deadlock is caused by failed removal of a waiting_locks entry when
- the waiting lock is merged with an existing lock, e.g:
-
- Initial MDS state (two clients, same file):
- held_locks -- start: 0, length: 1, client: 4116, pid: 7899, type: 2
- start: 2, length: 1, client: 4110, pid: 40767, type: 2
- waiting_locks -- start: 1, length: 1, client: 4116, pid: 7899, type: 2
-
- Waiting lock entry 4116@1:1 fires:
- handle_client_file_setlock: start: 1, length: 1,
- client: 4116, pid: 7899, type: 2
-
- MDS state after lock is obtained:
- held_locks -- start: 0, length: 2, client: 4116, pid: 7899, type: 2
- start: 2, length: 1, client: 4110, pid: 40767, type: 2
- waiting_locks -- start: 1, length: 1, client: 4116, pid: 7899, type: 2
-
- Note that the waiting 4116@1:1 lock entry is merged with the existing
- 4116@0:1 held lock to become a 4116@0:2 held lock. However, the now
- handled 4116@1:1 waiting_locks entry remains.
-
- When handling a lock request, the MDS calls adjust_locks() to merge
- the new lock with available neighbours. If the new lock is merged,
- then the waiting_locks entry is not located in the subsequent
- remove_waiting() call because adjust_locks changed the new lock to
- include the old locks.
- This fix ensures that the waiting_locks entry is removed prior to
- modification during merge.
-
- Signed-off-by: David Disseldorp <ddiss@suse.de>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 476e4902907dfadb3709ba820453299ececf990b)
-
-commit a0ac88272511d670b5c3756dda2d02c93c2e9776
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Aug 20 11:10:42 2013 -0700
-
- mon/PGMap: OSD byte counts 4x too large (conversion to bytes overzealous)
-
- Fixes: #6049
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit eca53bbf583027397f0d5e050a76498585ecb059)
-
-commit 87b19c33ce29e2ca4fc49a2adeb12d3f14ca90a9
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Fri Aug 23 08:56:07 2013 -0400
-
- ceph-disk: specify the filetype when mounting
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f040020fb2a7801ebbed23439159755ff8a3edbd)
diff --git a/src/ceph/doc/changelog/v0.67.4.txt b/src/ceph/doc/changelog/v0.67.4.txt
deleted file mode 100644
index 73b997e..0000000
--- a/src/ceph/doc/changelog/v0.67.4.txt
+++ /dev/null
@@ -1,550 +0,0 @@
-commit ad85b8bfafea6232d64cb7ba76a8b6e8252fa0c7
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Thu Oct 3 22:41:31 2013 +0000
-
- v0.67.4
-
-commit 5cd66d3b4bca92b402c95ab256fbc3f0329c446f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Sep 20 14:04:47 2013 -0700
-
- rgw: fix keystone token expiration test
-
- Fixes: #6360
- The test was inverted, need expiration to be greater than
- current time in order for token to be valid.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit e0203c61a3f45fdd6d3d3ece26fef6152bdc036d
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Sep 11 16:55:06 2013 -0700
-
- osd/OSD.cc: Use MIN() so that we don't exceed osd_recovery_max_active
-
- Caused by 944f3b73531af791c90f0f061280160003545c63
-
- Fixes: #6291
-
- Backport: dumpling
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 139a714e13aa3c7f42091270b55dde8a17b3c4b8)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit c376708358cedb5561fbb43e9b9e622df3ea7a58
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Sep 25 22:08:24 2013 +0100
-
- mon: OSDMonitor: do not write full_latest during trim
-
- On commit 81983bab we patched OSDMonitor::update_from_paxos() such that we
- write the latest full map version to 'full_latest' each time the latest
- full map was built from the incremental versions.
-
- This change however clashed with OSDMonitor::encode_trim_extra(), which
- also wrote to 'full_latest' on each trim, writing instead the version of
- the *oldest* full map. This duality of behaviors could lead the store
- to an inconsistent state across the monitors (although there's no sign of
- it actually imposing any issues besides rebuilding already existing full
- maps on some monitors).
-
- We now stop OSDMonitor::encode_trim_extra() from writing to 'full_latest'.
- This function will still write out the oldest full map it has in the store,
- but it will no longer write to full_latest, instead leaving it up to
- OSDMonitor::update_from_paxos() to figure it out -- and it already does.
-
- Fixes: #6378
-
- Backport: dumpling
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bd0f29a2c28cca496ec830eac932477ebf3182ba)
-
-commit de40d0b3e35ab0124cd3c4ebfcaa435ab8abfab9
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 1 15:53:42 2013 -0700
-
- crush: invalidate rmap on create (and thus decode)
-
- If we have an existing CrushWrapper object and decode from a bufferlist,
- reset build_rmaps so that they get rebuilt.
-
- Remove the build_rmaps() all in decode that was useless on a redecode
- (because have_rmaps == true in that case and it did nothing).
-
- Fixes: #6442
- Backport: dumpling, maybe cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 9b7a2ae329b6a511064dd3d6e549ba61f52cfd21)
-
-commit 32f5233288c47d95b87c0a9cab5f9c2ffcf15417
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Sep 30 14:58:11 2013 -0700
-
- Invoke python with /usr/bin/env python instead of directly
-
- Fixes: #6311
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit b9000b314b9166845ff302d4a827a996775d9a14)
-
-commit 66aeca5a9079be398403bbff67bd5bf68c6fb111
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Sep 25 10:10:21 2013 -0700
-
- qa/workunits/mon/crush_ops.sh: fix test
-
- Fix root.
-
- Fixes: #6392
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c8cae87e9e08468cc86145e0fd60c05d12826239)
-
-commit beb366302a125dd422c4f092b12eb541cb3bc788
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Sep 23 09:04:34 2013 -0700
-
- Revert "ceph: parse CEPH_ARGS environment variable"
-
- This reverts commit 67a95b9880c9bc6e858150352318d68d64ed74ad.
-
- We now put CEPH_ARGS in the actual args we parse in python, which are passed
- to rados piecemeal later. This lets you put things like --id ... in there
- that need to be parsed before librados is initialized.
- (cherry picked from commit 97f462be4829f0167ed3d65e6694dfc16f1f3243)
-
-commit b475ff9576f145d31c053213c699e13df76d2bcb
-Author: Benoît Knecht <benoit.knecht@fsfe.org>
-Date: Mon Sep 23 15:58:42 2013 +0200
-
- Add CEPH_ARGS at the end of sys.argv
-
- This allows, for instance, to pass a different client name to ceph by
- exporting CEPH_ARGS="--id client_id".
-
- Signed-off-by: Benoît Knecht <benoit.knecht@fsfe.org>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 30abe3244c86cbbe1f5b005850c29c9c0eafcad4)
-
-commit 94548b4b67cca37366c7d8719209a6d2e7956811
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Sep 24 15:26:03 2013 -0700
-
- mon/OSDMonitor: fix 'ceph osd crush reweight ...'
-
- The adjust method returns a count of adjusted items.
-
- Add a test.
-
- Fixes: #6382
- Backport: dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 3de32562b55c6ece3a6ed783c36f8b9f21460339)
-
-commit 00ff7f5c20e13869d0694379739ba4e61d44b97c
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Sep 10 00:20:41 2013 +0100
-
- qa: workunits: mon: crush_ops: test 'ceph osd crush move'
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 3bc618b7b46496c5110edde0da9cae5d3e68e0e1)
-
-commit 0ff5b4a96833681e92cc41f019a569134474f4cf
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Sep 24 19:04:23 2013 +0200
-
- osd: change warn_interval_multiplier to uint32_t
-
- to prevent overflow in OpTracker::check_ops_in_flight when
- multiplying warn_interval_multiplier *= 2
-
- Backport: cuttlefish, dumpling
-
- http://tracker.ceph.com/issues/6370 fixes #6370
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 1bce1f009bffd3e28025a08775fec189907a81db)
-
-commit fb15040b6cec6221baa550ddfffade823f784c4a
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon Sep 9 13:01:12 2013 -0700
-
- crushtool: do not dump core with non-unique bucket IDs
-
- Return -EEXIST on duplicate ID
- BUG FIX: crush_add_bucket() mixes error returns and IDs
- Add optional argument to return generated ID
-
- Fixes: #6246
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8c76f3a0f9cf100ea2c941dc2b61c470aa5033d7)
-
-commit 410db3f30c6eb54b807908c1f251ad4026e7d446
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Fri Sep 20 17:06:30 2013 +0100
-
- qa: workunits: cephtool: check if 'heap' commands are parseable
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- (cherry picked from commit b1eeaddd5f214c1b0883b44fc8cae07c649be7c4)
-
-commit 062060a38bb26ff260cc51accc534413d726de49
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Fri Sep 20 17:50:27 2013 +0100
-
- osd: OSD: add 'heap' command to known osd commands array
-
- Must have been forgotten during the cli rework.
-
- Backport: dumpling
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- (cherry picked from commit 296f2d0db31e9f5a59a3a62a1e95b6c440430fa3)
-
-commit 3f32f57b98e0224a1d30b2a81d7d260be0f53800
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Fri Sep 20 16:43:27 2013 +0100
-
- mds: MDS: pass only heap profiler commands instead of the whole cmd vector
-
- The heap profiler doesn't care, nor should it, what our command name is.
- It only cares about the commands it handles.
-
- Backport: dumpling
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- (cherry picked from commit 238fe272c6bdb62d4e57fd8555c0136de99c8129)
-
-commit 46dcc46617d8f35ab8433540b22343ddcbcc3716
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Fri Sep 20 16:41:14 2013 +0100
-
- perfglue/heap_profiler.cc: expect args as first element on cmd vector
-
- We used to pass 'heap' as the first element of the cmd vector when
- handling commands. We haven't been doing so for a while now, so we
- needed to fix this.
-
- Not expecting 'heap' also makes sense, considering that what we need to
- know when we reach this function is what command we should handle, and
- we should not care what the caller calls us when handling his business.
-
- Fixes: #6361
- Backport: dumpling
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- (cherry picked from commit c98b910d49bd2b46ceafdc430044a31524c29f5b)
-
-commit 9dc5f15fbae22244ad1f62925e17c9d81e856e55
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Sep 16 14:35:25 2013 -0700
-
- rgw: destroy get_obj handle in copy_obj()
-
- Fixes: #6176
- Backport: dumpling
- We take different code paths in copy_obj, make sure we close the handle
- when we exit the function. Move the call to finish_get_obj() out of
- copy_obj_data() as we don't create the handle there, so that should
- makes code less confusing and less prone to errors.
- Also, note that RGWRados::get_obj() also calls finish_get_obj(). For
- everything to work in concert we need to pass a pointer to the handle
- and not the handle itself. Therefore we needed to also change the call
- to copy_obj_data().
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 9e98620e4325d15c88440a890b267131613e1aa1)
-
-commit 471233e98a9f64ad513a4a196b7661b80534cb00
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Mon Sep 9 23:14:11 2013 +0100
-
- mon: MonCommands: expect a CephString as 1st arg for 'osd crush move'
-
- Fixes: #6230
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 7d3799fde19138f957f26ec6be10a8a0000fc1f0)
-
-commit 2908225092bd2aa1b8afcb7848c1cdac5bd9e638
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Sep 23 16:23:33 2013 -0700
-
- osd: revert 'osd max xattr size' limit
-
- Set it to 0 (unlimited) for now.
-
- Backport: dumpling
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit abb88d70643c3a76435b7a9d5b04ff29f7502361)
-
-commit b3d3b3747c1eef695138dac828e5fcb435309c7b
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Sep 11 16:24:32 2013 -0700
-
- mds: be more careful about decoding LogEvents
-
- We need to wrap the full decode section or we can abort the process
- if there's an issue (which we may want to just skip by).
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 73289b34b0be5b6612e38944794d59b5e789f841)
-
-commit 06c58132199ed22413b509dfa751321ccdb24225
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Sep 17 17:58:20 2013 +0100
-
- mon: OSDMonitor: multiple rebuilt full maps per transaction
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 0d20cae0be701c5b6151a26ee5e4fe24d89aa20a)
-
-commit 65bbcaf4b68790dae4506c1f5db237077e1ff0ae
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sun Sep 15 21:03:50 2013 +0100
-
- mon: OSDMonitor: update latest_full while rebuilding full maps
-
- Not doing so will make the monitor rebuild the osdmap full versions, even
- though they may have been rebuilt before, every time the monitor starts.
-
- This mostly happens when the cluster is left in an unhealthy state for
- a long period of time and incremental versions build up. Even though we
- build the full maps on update_from_paxos(), not updating 'full_latest'
- leads to the situation initially described.
-
- Fixes: #6322
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 81983bab3630520d6c7ee9b7e4a747bc17b8c5c3)
-
-commit 9b9edb04581cca15e67c567332529f5b3f426743
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sun Sep 15 21:00:55 2013 +0100
-
- mon: OSDMonitor: smaller transactions when rebuilding full versions
-
- Otherwise, for considerably sized rebuilds, the monitor will not only
- consume vast amounts of memory, but it will also have troubles committing
- the transaction. Anyway, it's also a good idea to adjust transactions to
- the granularity we want, and to be fair we care that each rebuilt full map
- gets to disk, even if subsequent full maps don't (those can be rebuilt
- later).
-
- Fixes: #6323
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 4ac1570c5cdcd6556dc291cc6d7878fd92d343ae)
-
-commit 298811f7a15541b9ec1015c416ad2aa075be5691
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Wed Aug 28 15:51:01 2013 +0100
-
- mon: OSDMonitor: check if pool is on unmanaged snaps mode on mk/rmsnap
-
- Backport: dumpling
- Fixes: #6047
-
- Signed-off-by: Joao Eduardo Luis <jecluis@gmail.com>
- (cherry picked from commit fab79543c54c2e446d3f76520d7906645c6b0075)
-
-commit a992664435db9dde3745eb7f354cce3fc5400a47
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Sep 12 14:32:17 2013 -0700
-
- lru_map: don't use list::size()
-
- replace list::size() with map::size(), which should have
- a constant time complexity.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 7c1d2ded8fa8061bf3f14932800998b963745dd1)
-
-commit 788546ea71c994ff35323747294ed9c177fe7020
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Sep 12 14:30:19 2013 -0700
-
- common/lru_map: rename tokens to entries
-
- This code was originally used in a token cache, now
- as a generic infrastructure rename token fields.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 532e41a9985a16b35a6e49cdcba38af0ad166fa8)
-
-commit babeb00c42af760b3e7575166479e95365cfcc0a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 18 10:37:21 2013 -0700
-
- rgw: use bufferlist::append() instead of bufferlist::push_back()
-
- push_back() expects char *, whereas append can append a single char.
- Appending a NULL char to push_back is cast as a NULL pointer which is
- bad.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 08fe028bad13096d482454a2f303158727c363ff)
-
-commit daf85c45dd4d158bc7c33a2fb784857bc7db35cd
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 11 13:46:31 2013 -0700
-
- rgw: NULL terminate buffer before parsing it
-
- Fixes: #6175
- Backport: dumpling
- We get a buffer off the remote gateway which might
- not be NULL terminated. The JSON parser needs the
- buffer to be NULL terminated even though we provide
- a buffer length as it calls strlen().
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit e7f7483192cddca1159aba439ce62b1e78669d51)
-
-commit c73040a5518971813b9ebaae1624c5bacef315d0
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 11 22:30:12 2013 -0700
-
- rgw: don't call list::size() in ObjectCache
-
- Fixes: #6286
- Use an external counter instead of calling list::size()
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 31e3a51e933429d286104fe077e98ea883437ad6)
-
-commit a855aba9d18936e9a060119e041518790cd4b831
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Sep 10 12:18:55 2013 -0700
-
- rgw: drain pending requests before completing write
-
- Fixes: #6268
- When doing aio write of objects (either regular or multipart parts) we
- need to drain pending aio requests. Otherwise if gateway goes down then
- object might end up corrupted.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 626669afaa333d73707553a85f5c874e99e9cbd8)
-
-commit 670db7e80ddc9c26c43a4f66907a5996ce207c4d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Sep 6 22:33:38 2013 -0700
-
- rgw: fix get cors, delete cors
-
- Remove a couple of variables that overrode class member. Not
- really clear how it was working before, might have been a bad
- merge / rebase.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 13872785aeeddbe1b8dd97e49fd6a2d879514f8d)
-
-commit a304016fa01b02efd500135c00b9bf3407a9999c
-Merge: 408cd61 ac0a30f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Sep 11 09:47:10 2013 -0700
-
- Merge branch 'wip-6078-dumpling' into dumpling
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit ac0a30feb8c64a3b80d9c519a7b561213403afab
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 28 21:25:20 2013 -0700
-
- rgw: fix certain return status cases in CORS
-
- Change return values in certain cases, reorder
- checks, etc.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 13b28cc3f1eb8ef42875b630c485ee0105cd244a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 28 21:24:36 2013 -0700
-
- rgw: add COPY method to be handled by CORS
-
- Was missing this http method.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit d45c87ea738807487e72c0719b0d3d459cbe19e9
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Aug 27 19:38:45 2013 -0700
-
- rgw: fix CORS rule check
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 986fa92a7a1d88111ba28457160adfcfdaabc5d2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Aug 27 19:38:18 2013 -0700
-
- rgw: don't handle CORS if rule not found (is NULL)
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 71873aba6553492d3ad71596cefd7c841030a277
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Aug 22 13:38:55 2013 -0700
-
- rgw: tie CORS header response to all relevant operations
-
- Have the CORS responses on all relevant operations. Also add headers
- on failure cases.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 94e7b594d85dbd26e58d823b41f418032e9f163f
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Aug 22 10:00:53 2013 -0700
-
- rgw: add a generic CORS response handling
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit c3385d8a102faf5379559bb98cf89637ceda1579
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 21 17:22:46 2013 -0700
-
- rgw: OPTIONS request doesn't need to read object info
-
- This is a bucket-only operation, so we shouldn't look at the
- object. Object may not exist and we might respond with Not
- Exists response which is not what we want.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit a5fdd44e5d8ce4b8d82273d83e27aea19e63aa7c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Aug 21 14:43:28 2013 -0700
-
- rgw: remove use of s->bucket_cors
-
- Some old code still tried to use s->bucket_cors, which was
- abandoned in a cleanup work.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.67.5.txt b/src/ceph/doc/changelog/v0.67.5.txt
deleted file mode 100644
index 2767fb8..0000000
--- a/src/ceph/doc/changelog/v0.67.5.txt
+++ /dev/null
@@ -1,711 +0,0 @@
-commit a60ac9194718083a4b6a225fc17cad6096c69bd1
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Thu Dec 19 20:53:10 2013 +0000
-
- v0.67.5
-
-commit 8745ba63533ba77b2ec9d40780cad822a577089c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Dec 18 13:11:01 2013 -0800
-
- rgw: fix use-after-free when releasing completion handle
-
- Backport: emperor, dumpling
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c8890ab2d46fe8e12200a0d2f9eab31c461fb871)
-
-commit 7587ee52161d74a41bf89dc741e8ece9c964fb67
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Dec 18 13:10:21 2013 -0800
-
- rgw: don't return data within the librados cb
-
- Fixes: #7030
- The callback is running within a single Finisher thread, thus we
- shouldn't block there. Append read data to a list and flush it within
- the iterate context.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d6a4f6adfaa75c3140d07d6df7be03586cc16183)
-
-commit 9bd1ebe960aae69f6528a33809a58c13481f8df3
-Author: Christophe Courtaut <christophe.courtaut@gmail.com>
-Date: Mon Jul 22 15:15:38 2013 +0200
-
- rgw: Allow wildcard in supported keystone roles.
-
- http://tracker.ceph.com/issues/4365 fixes #4365
-
- Signed-off-by: Christophe Courtaut <christophe.courtaut@gmail.com>
- (cherry picked from commit 60195581273aee259e8c83d0b471af859d928342)
-
-commit e52b9b76844f935daf2dc060905f869248bba60b
-Author: Roald J. van Loon <roaldvanloon@gmail.com>
-Date: Fri Aug 9 13:31:10 2013 +0200
-
- Validate S3 tokens against Keystone
-
- - Added config option to allow S3 to use Keystone auth
- - Implemented JSONDecoder for KeystoneToken
- - RGW_Auth_S3::authorize now uses rgw_store_user_info on keystone auth
- - Minor fix in get_canon_resource; dout is now after the assignment
-
- Reviewed-by: Yehuda Sadeh<yehuda@inktank.com>
- Signed-off-by: Roald J. van Loon <roaldvanloon@gmail.com>
- (cherry picked from commit a200e184b15a03a4ca382e94caf01efb41cb9db7)
-
- Conflicts:
- src/rgw/rgw_swift.h
-
-commit 5df2f35ee5797ffe85e8398b1ecf75f2eefb5031
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 21 18:02:32 2013 -0700
-
- rgw: init src_bucket_name, src_object in the S3 handler
-
- Be consistent and initialize these fields also in the S3 case.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit ccaab2abf9e49ce3e50c15df793a3a3ca6b29bb8)
-
-commit 0edee8e9c9b140a280dc782b491c330c7f86edfc
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 21 14:45:59 2013 -0700
-
- rgw: get rid of req_state.bucket_name
-
- No need for this field, as we already have req_state.bucket_name_str.
- This saves us some memory allocation / freeing through every request
- processing.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit db7eb771226beaa2372ef5860ce742cb3457cd89)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
-commit 0eae05f31e4a03e923d51521ecd0078657eda9ba
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Oct 21 14:17:12 2013 -0700
-
- rgw: turn swift COPY into PUT
-
- Fixes: #6606
- The swift COPY operation is unique in a sense that it's a write
- operation that has its destination not set by the URI target, but by a
- different HTTP header. This is problematic as there are some hidden
- assumptions in the code that the specified bucket/object in the URI is
- the operation target. E.g., certain initialization functions, quota,
- etc. Instead of creating a specialized code everywhere for this case
- just turn it into a regular copy operation, that is, a PUT with
- a specified copy source.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit cbf8f9a51737e7d89fb0ec0832b50fd47c35b08d)
-
-commit 455f28a78ee22b6a535831ff70a330fa1379567c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 13 20:32:14 2013 -0700
-
- OSDMonitor: add 'osd perf' command to dump recent osd perf information
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 94c3f29a32cbf169d896015da6765febd3c724e0)
-
-commit ec086df1beccda6d5a6c12c727c84c2555b0b2cd
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 13 17:36:57 2013 -0700
-
- ObjectStore: add ObjectStore::get_cur_stats and impl in FileStore
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit ebde89d5602536b4bc651737e4280fdfb6634c32)
-
-commit 5bf7e7be1fa39ec39726635581e98a0e3a1df20f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 13 17:21:39 2013 -0700
-
- osd_types: add osd_perf_stat_t type
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 95f3353a6ab3a4dd2bf28eaca7122487942e913e)
-
-commit b37c5d208778ee52292757e96265d59d75f19654
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Dec 3 11:22:56 2013 -0800
-
- rgw: do not use UNPRIVILEGED_DAEMON option
-
- This is sort of a backport for 4f403c26dc0048ad63e20d20369fa86bfb31c50e
- in that we get the same behavior change, but only for rgw.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit a447fb7d04fbad84f9ecb57726396bb6ca29d8f6
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Dec 3 21:51:26 2013 -0800
-
- osd/OSDMonitor: accept 'osd pool set ...' value as string
-
- Newer monitors take this as a CephString. Accept that so that if we are
- mid-upgrade and get a forwarded message using the alternate schema from
- a future mon we will handle it properly.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 9875c8b1992c59cc0c40901a44573676cdff2669
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Nov 25 13:43:43 2013 -0800
-
- init, upstart: prevent daemons being started by both
-
- There can be only one init system starting a daemon. If there is a
- host entry in ceph.conf for a daemon, sysvinit would try to start it
- even if the daemon's directory did not include a sysvinit file. This
- preserves backwards compatibility with older installs using sysvinit,
- but if an upstart file is present in the daemon's directory, upstart
- will try to start them, regardless of host entries in ceph.conf.
-
- If there's an upstart file in a daemon's directory and a host entry
- for that daemon in ceph.conf, both sysvinit and upstart would attempt
- to manage it.
-
- Fix this by only starting daemons if the marker file for the other
- init system is not present. This maintains backwards compatibility
- with older installs using neither sysvinit or upstart marker files,
- and does not break any valid configurations. The only configuration
- that would break is one with both sysvinit and upstart files present
- for the same daemon.
-
- Backport: emperor, dumpling
- Reported-by: Tim Spriggs <tims@uahirise.org>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 5e34beb61b3f5a1ed4afd8ee2fe976de40f95ace)
-
-commit bd08d332f5d23b6097a7e8344a6183896b2303a9
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Nov 3 21:02:36 2013 -0800
-
- OSD: allow project_pg_history to handle a missing map
-
- If we get a peering message for an old map we don't have, we
- can throwit out: the sending OSD will learn about the newer
- maps and update itself accordingly, and we don't have the
- information to know if the message is valid. This situation
- can only happen if the sender was down for a long enough time
- to create a map gap and its PGs have not yet advanced from
- their boot-up maps to the current ones, so we can rely on it
-
- Fixes: #6712
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit cd0d612e1abdf5c87082eeeccd4ca09dd14fd737)
-
-commit 8cd33e3a8ebf7c2aa796ec9f92d6b554c39ff705
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 19 16:56:27 2013 -0700
-
- rgw: bucket meta remove don't overwrite entry point first
-
- Fixes: #6056
-
- When removing a bucket metadata entry we first unlink the bucket
- and then we remove the bucket entrypoint object. Originally
- when unlinking the bucket we first overwrote the bucket entrypoint
- entry marking it as 'unlinked'. However, this is not really needed
- as we're just about to remove it. The original version triggered
- a bug, as we needed to propagate the new header version first (which
- we didn't do, so the subsequent bucket removal failed).
-
- Reviewed-by: Greg Farnum <greg@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 0373d749cea7d9b532069ba8ebca2f005b2c9f59)
-
-commit a24f1326adcdda1d387e0f4e3c18dda5ec4aa055
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Nov 22 07:04:01 2013 -0800
-
- rgw: lower some debug message
-
- Fixes: #6084
- Backport: dumpling, emperor
-
- Reported-by: Ron Allred <rallred@itrefined.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b35fc1bc2ec8c8376ec173eb1c3e538e02c1694e)
-
-commit 9e2d0d311437c1ffdd43fc8c961c60aacfea339c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Nov 18 14:39:12 2013 -0800
-
- osd: fix bench block size
-
- The command was declared to take 'size' in dumpling, but was trying to
- read 'bsize' instead, so it always used the default of 4MiB. Change
- the bench command to read 'size', so it matches what existing clients
- are sending.
-
- Fixes: #6795
- Backport: emperor, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 40a76ef0d09f8ecbea13712410d9d34f25b91935)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 35c91cac9a2b414ba3d52ea06cf6f71a0a1d4ba3
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Sep 25 09:19:16 2013 -0700
-
- os, osd, tools: Add backportable compatibility checking for sharded objects
-
- OSD
- New CEPH_OSD_FEATURE_INCOMPAT_SHARDS
- FileStore
- NEW CEPH_FS_FEATURE_INCOMPAT_SHARDS
- Add FSSuperblock with feature CompatSet in it
- Store sharded_objects state using CompatSet
- Add set_allow_sharded_objects() and get_allow_sharded_objects() to FileStore/ObjectStore
- Add read_superblock()/write_superblock() internal filestore functions
- ceph_filestore_dump
- Add OSDsuperblock to export format
- Use CompatSet from OSD code itself in filestore-dump tool
- Always check compatibility of OSD features with on-disk features
- On import verify compatibility of on-disk features with export data
- Bump super_ver due to export format change
-
- Backport: dumpling, cuttlefish
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit c6b83180f9f769de27ca7890f5f8ec507ee743ca)
-
- Conflicts:
-
- src/os/FileStore.cc
- src/os/FileStore.h
- src/osd/OSD.cc
-
- Excluded from cherry-pick:
- Didn't add set_allow_sharded_objects() and get_allow_sharded_objects() to FileStore/ObjectStore
- Didn't add code to check for incomplete transition to sharded objects in ceph-filestore-dump
-
-commit 372f62717c56d9ab883ae2942e13d6d8d37c2925
-Author: Ray Lv <xiangyulv@gmail.com>
-Date: Tue Oct 29 19:34:51 2013 +0800
-
- rgw: Wrap hex_to_num table into class HexTable
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Signed-off-by: Ray Lv <xiangyulv@gmail.com>
- (cherry picked from commit 588ed60a8ec1d8db5e096fd8f7b762f2afcf7dd3)
-
-commit 6917b02530103b8c86ed75592da33144b0dea168
-Merge: 7ef210a f1fa811
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Nov 5 12:27:42 2013 -0800
-
- Merge pull request #805 from ceph/wip-rgw-replica-log-dumpling
-
- backport a bunch of rgw stuff to dumpling
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit f1fa8116d441924d44c99624829f3daa090c821c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Nov 1 16:12:52 2013 -0700
-
- rgw: don't turn 404 into 400 for the replicalog api
-
- 404 is not actually a problem to clients like radosgw-agent, but 400
- implies something about the request was incorrect.
-
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 306ec7142d699c26ce874b11dc02ccdb3cf296c7)
-
-commit 739e7861f6d5fde5c4a2b59170377b6147fecfa3
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Sep 3 13:27:21 2013 -0700
-
- rgw: when failing read from client, return correct error
-
- Fixes: #6214
- When getting a failed read from client when putting an object
- we returned the wrong value (always 0), which in the chunked-
- upload case ended up in assuming that the write was done
- successfully.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0499948aad64c6c66668b43963403fb0cb1a2737)
-
-commit 465087e64ab2bd85d7f5e183565e3619b3aa76fc
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Sep 30 14:15:19 2013 -0700
-
- rgw: fix leak in RGWMetadataManager::remove()
-
- Backport: dumpling
- Fixes: #6445
- handler->get() returns a newly allocated obj, need to delete it when
- done.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 8dd7ea3fadc06b5ebb330af41d686d3da155fb5d)
-
-commit a4dc2694db6a7e45109f111dcdfd077da67b6030
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Aug 26 11:16:08 2013 -0700
-
- rgw: quiet down warning message
-
- Fixes: #6123
- We don't want to know about failing to read region map info
- if it's not found, only if failed on some other error. In
- any case it's just a warning.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 055e31359ac977943f014270cc56a1b7786abee3)
-
-commit 7f57d9dda74a1feb2da85be3c77d61c6f81ec1b2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Sep 13 14:43:54 2013 -0700
-
- rgw: try to create log pool if doesn't exist
-
- When using replica log, if the log pool doesn't exist all operations are
- going to fail. Try to create it if doesn't exist.
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 4216eac0f59af60f60d4ce909b9ace87a7b64ccc)
-
-commit 4fb233cf702957e782083d760877afa48d4f6965
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Oct 11 16:56:46 2013 -0700
-
- formatter: dump_bool dumps unquoted strings
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit ad409f8a6d230e9b1199226a333bb54159c2c910)
-
-commit de7ede925acc47a5aee84b9fe82b9cf0368aa1b2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Sep 27 13:15:35 2013 -0700
-
- Formatter: add dump_bool()
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 28949d5d43beba7cef37cb2f83e3399d978061a6)
-
-commit c5991f26febd86878aeb78baab33c071660fdee6
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 08:42:48 2013 -0700
-
- rgw: escape bucket and object names in StreamReadRequests
-
- This fixes copy operations for objects that contain unsafe characters,
- like a newline, which would return a 403 otherwise, since the GET to
- the source rgw would be unable to verify the signature on a partially
- valid bucket name.
-
- Fixes: #6604
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit ec45b3b88c485140781b23d2c4f582f2cc26ea43)
-
-commit 672679d26110dd93393bc18a681ae41175e4a299
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 08:37:25 2013 -0700
-
- rgw: move url escaping to a common place
-
- This is useful outside of the s3 interface. Rename url_escape()
- url_encode() for consistency with the exsting common url_decode()
- function. This is in preparation for the next commit, which needs
- to escape url-unsafe characters in another place.
-
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit dd308cd481b368f90a64220847b91fc233d92a59)
-
-commit 91997fca6ec6c06beecd63c3e2ae521319fca7c2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 08:34:24 2013 -0700
-
- rgw: update metadata log list to match data log list
-
- Send the last marker whether the log is truncated in the same format
- as data log list, so clients don't have more needless complexity
- handling the difference. Keep bucket index logs the same, since they
- contain the marker already, and are not used in exactly the same way
- metadata and data logs are.
-
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e0e8fb1b2b4a308b2a9317e10c6fd53ad48dbfaf)
-
-commit 8916648521e2362a54eed0f5ebe078a269e4d703
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 08:26:19 2013 -0700
-
- rgw: include marker and truncated flag in data log list api
-
- Consumers of this api need to know their position in the log. It's
- readily available when fetching the log, so return it. Without the
- marker in this call, a client could not easily or efficiently figure
- out its position in the log, since it would require getting the global
- last marker in the log, and then reading all the log entries.
-
- This would be slow for large logs, and would be subject to races that
- would cause potentially very expensive duplicate work.
-
- Returning this atomically while fetching the log entries simplifies
- all of this.
-
- Fixes: #6615
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit c275912509255f8bb4c854e181318b45ab0f8564)
-
-commit a49c064b7a1b4083818b6f950d7e0aade71c6afe
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 08:18:19 2013 -0700
-
- cls_log: always return final marker from log_list
-
- There's no reason to restrict returning the marker to the case where
- less than the whole log is returned, since there's already a truncated
- flag to tell the client what happened.
-
- Giving the client the last marker makes it easy to consume when the
- log entries do not contain their own marker. If the last marker is not
- returned, the client cannot get the last marker without racing with
- updates to the log.
-
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e74776f4176470122485a79a4c07e9c12c9fc036)
-
-commit 90101aea6818c2f43bf31243d912ec9143f68882
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 10 15:50:39 2013 -0700
-
- rgw: skip read_policy checks for system_users
-
- A system user should still be able to examine suspended buckets, and
- get -ENOENT instead of -EACCESS for a deleted object.
-
- Fixes: #6616
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit ea816c1c2fd47eab647d6fab96c9ca4bfeecd5bb)
-
-commit 7ef210adbd4645bd45e5387c9b03a122a7ca82df
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 29 08:39:27 2013 -0700
-
- common/crc32c: fix #ifdef to be x86_64 specific
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 29f4eebf63bcba9ea86b9a2e4d093b782b5fbf1e
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Sep 24 08:05:38 2013 +0200
-
- rgw: fix rgw test to reflect usage change
-
- otherwise src/test/cli/radosgw-admin/help.t fails when running make
- check when run after a configure --with-radosgw
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit e50343e4423e20130035c860ba47a0edea876f7c)
-
-commit 0106569a88a92aa94fbc5efc6a0a142ad0de325d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Oct 24 17:25:16 2013 -0700
-
- rbd.py: increase parent name size limit
-
- 64 characters isn't all that long. 4096 ought to be enough for anyone.
-
- Fixes: #6072
- Backport: dumpling, cuttlefish
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3c0042cde5a12de0f554a16b227ab437c6254ddd)
-
-commit 352d8c966c323a008362130eb979ae5dfa47494f
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Sep 23 14:10:36 2013 -0700
-
- common/config: include --cluster in default usage message
-
- Clean it up a bit too.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 157754b3a0191c5ff534a84adbeed88025615898)
-
-commit 299ddd31b29e332dc5e76bc4f871e4769698665d
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Thu Oct 10 10:35:48 2013 +0800
-
- mds: fix infinite loop of MDCache::populate_mydir().
-
- make MDCache::populate_mydir() only fetch bare-bone stray dirs.
- After all stray dirs are populated, call MDCache::scan_stray_dir(),
- it fetches incomplete stray dirs.
-
- Fixes: #4405
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 007f06ec174d4ee5cfb578c8b3f1c96b2bb0c238)
-
- Conflicts:
-
- src/mds/MDCache.h
-
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 7d99940467019bda74da83f3f1ebc2da46bd6967
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Oct 15 10:20:48 2013 -0700
-
- rgw: fix authenticated users acl group check
-
- Fixes: #6553
- Backport: bobtail, cuttlefish, dumpling
- Authenticated users group acl bit was not working correctly. Check to
- test whether user is anonymous was wrong.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit bebbd6cb7b71697b34b8f27652cabdc40c97a33b)
-
-commit e5736de834027a281d29afcf6743347a8db97d26
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Oct 15 10:55:07 2013 -0700
-
- rgw: change default log level
-
- Fixes: #6554
- Backport: cuttlefish, dumpling
- Default log level was just too high, bring it down a bit.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 8d7dbf85472cfca9268d81ecf057ea078cf345b3)
-
-commit e6e9ee7145bcfc1774af738af607a653fe8dfe46
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Oct 4 13:00:26 2013 -0700
-
- rgw: swift update obj metadata also add generic attrs
-
- Fixes: #6462
- We were missing the generic attributes when we updated the object
- metadata (operation that only exists in the swift api).
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit f2645e1c6d7383a0ace3b239f4304e353249c4bb)
-
-commit cd1c3c9e00e90b19e83c1f11a48e516a7de93665
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Wed Oct 2 11:43:12 2013 +0800
-
- mds: return -EAGAIN if standby replay falls behind
-
- standby replay may fall behind and get -ENOENT when reading the
- journal. return -EAGAIN in this case, it makes the MDS respawn itself.
-
- fixes: #5458
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d2cb2bf6bac83ac6db9df6cb876317d30e7493cc)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit bd073eeac28d8cba969e5746c5e6adcb95820fdf
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Thu Sep 12 09:50:51 2013 +0800
-
- mon/MDSMonitor: don't reset incarnation when creating newfs
-
- Fixes: #6279
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit 40613b700b87b495d67793101ae05d6ba58b2a9a)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 3a3724b782c53c92c45624ad02df9f0de77f1545
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Thu Sep 12 10:36:39 2013 +0800
-
- osdc/ObjectCacher: finish contexts after dropping object reference
-
- The context to finish can be class C_Client_PutInode, which may drop
- inode's last reference. So we should first drop object's reference,
- then finish contexts.
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit b66ac77fa7aa3ff37804918c4308a348f239af09)
-
-commit 102f63993cacf3b3404256e62a3096c5836f2282
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Tue Oct 8 12:08:08 2013 -0700
-
- Go back to $PWD in fsstress.sh if compiling from source.
-
- Although fsstress was being called with a static path the directory
- it was writing to was in the current directory so doing a cd to the
- source directory that is made in /tmp and then removing it later
- caused it to be unable to write the files in a non-existent dir.
-
- This change gets the current path first and cd's back into it after
- it is done compiling fsstress.
-
- Issue #6479.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- Reviewed-by: Alfredo Deza <alfredo.deza@inktank.com>
-
-commit 62db186a19f902b0a23d14034552c83db8de7ece
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Tue Aug 27 09:53:12 2013 -0700
-
- ceph.spec.in: radosgw package doesn't require mod_fcgi
-
- Fixes #5702
-
- Signed-off-by: Gary Lowell <gary.lowell@inktank.com>
-
-commit 42fc9b49a7bbc242096946b381aafd435ebdd530
-Merge: ad85b8b 67ac3cf
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Oct 4 19:51:32 2013 +0000
-
- Merge branch 'dumpling' of jenkins:ceph/ceph into dumpling
-
-commit 67ac3cffa1066030ad840937958bd534e8b26272
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Oct 3 21:47:26 2013 -0700
-
- ceph_test_rados: do not let rollback race with snap delete
-
- Note that the OSD behaves in a weird way when you rollback to a non-
- existent snap, so the test probably isn't the only party at fault here.
-
- Fixes (test half of): #6254
- Backport: dumpling, cuttlefish
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 55d279b98553ba4542219b126fc7159b20b18b1f)
-
- Conflicts:
-
- src/test/osd/RadosModel.h
- src/test/osd/TestRados.cc
diff --git a/src/ceph/doc/changelog/v0.67.6.txt b/src/ceph/doc/changelog/v0.67.6.txt
deleted file mode 100644
index 510893a..0000000
--- a/src/ceph/doc/changelog/v0.67.6.txt
+++ /dev/null
@@ -1,1258 +0,0 @@
-commit c71f8a60cf49fb3d4efb5ea75b2366cd7f167497 (tag: refs/tags/v0.67.6)
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Feb 13 20:20:42 2014 +0000
-
- release build 67.6
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
-
-commit 1c42a6e34bb8e318e001384270cda003add946a7
-Merge: 3e473d4 c5e12f9
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Feb 13 06:55:37 2014 -0800
-
- Merge pull request #1232 from ceph/dumpling-7334
-
- backport ceph-disk improvements to dumpling
-
- http://pulpito.ceph.com/ubuntu-2014-02-12_16:52:33-ceph-deploy-dumpling-7334-testing-basic-plana/
-
-commit 3e473d4237697872498094b41fed19b414f8d3c4
-Author: David Zafman <david.zafman@inktank.com>
-Date: Fri Sep 27 16:23:09 2013 -0700
-
- common,os: Remove filestore_xattr_use_omap option
-
- Now we operate just like when this was set to true
-
- Fixes: #6143
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit dc0dfb9e01d593afdd430ca776cf4da2c2240a20)
-
-commit c5e12f94efc07f0ff174c0f19494ee2e06d88dfa
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Wed Feb 12 16:43:59 2014 -0500
-
- add support for absence of PATH
-
- Note that this commit is actually bisecting the changes from
- Loic Dachary that touch ceph-disk only (ad515bf). As that changeset
- also touches other files it causes conflicts that are not resolvable
- for backporting it to dumpling.
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
-
-commit c531d75f7e86cee619e44c247298b50c37b81539
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Sep 9 22:27:23 2013 -0700
-
- ceph-disk: make initial journal files 0 bytes
-
- The ceph-osd will resize journal files up and properly fallocate() them
- so that the blocks are preallocated and (hopefully) contiguous. We
- don't need to do it here too, and getting fallocate() to work from
- python is a pain in the butt.
-
- Fixes: #5981
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a786ad773cd33880075f1deb3691528d1afd03ec)
-
-commit 836ead3e42491597c192c63d3171021c5daecbc0
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Mon Feb 10 15:07:55 2014 -0500
-
- alert the user about error messages from partx
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 9bcc42a3e6b08521694b5c0228b2c6ed7b3d312e)
-
-commit cff3547c60dc6d164f9a95eaa2706633e32756d0
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Fri Feb 7 11:55:01 2014 -0500
-
- use partx for red hat or centos instead of partprobe
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 42900ff9da9f5adcac239a84ebf4d2e407c29699)
-
-commit 5ebd7c4520a9805f985cab1a0ba9311e19efa041
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Jan 28 17:26:58 2014 -0800
-
- ceph-disk: run the right executables from udev
-
- When run by the udev rules, PATH is not defined. Thus,
- ceph-disk-activate relies on its which() function to locate the
- correct executable. The which() function used os.defpath if none was
- set, and this worked for anything using it.
-
- ad6b4b4b08b6ef7ae8086f2be3a9ef521adaa88c added a new default value to
- PATH, so only /usr/bin was checked by callers that did not use
- which(). This resulted in the mount command not being found when
- ceph-disk-activate was run by udev, and thus osds failing to start
- after being prepared by ceph-deploy.
-
- Make ceph-disk consistently use the existing helpers (command() and
- command_check_call()) that use which(), so lack of PATH does not
- matter. Simplify _check_output() to use command(),
- another wrapper around subprocess.Popen.
-
- Fixes: #7258
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit d7b0c7faafd37e4ae8a1680edfa60c22b419cbd8)
-
-commit 4a7c4e0a81753dfb811396e7bfa1df72135ee12b
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 3 16:06:55 2014 +0100
-
- ceph-disk: implement --sysconfdir as /etc/ceph
-
- Replace hardcoded /etc/ceph with the SYSCONFDIR global variable and
- implement the --sysconfdir option to override the default value.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit a71025d33621257b6fd6632516cfed2849ff1637)
-
-commit c8b9798a69bd1655a7131c7bce8a14c2c74aba0c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 3 16:03:09 2014 +0100
-
- ceph-disk: implement --statedir as /var/lib/ceph
-
- Replace hardcoded /var/lib/ceph with the STATEDIR global variable and
- implement the --statedir option to override the default value.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit ca713f48ae7a1fece2869f1a1c97d23ab33fb441)
-
-commit 79564874be35d4414092fbb80df3214d7f282b1c
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 1 22:05:03 2014 +0100
-
- ceph-disk: add copyright notice
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 51ee3c04777aaf6b9609dde9bc318b5c66c70787)
-
-commit c4b66bbdf09a8bb85ed14fbb643f40f87345463b
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 1 22:11:30 2014 +0100
-
- ceph-disk: create the data directory if it does not exist
-
- Instead of failing if the OSD data directory does not exist, create
- it. Only do so if the data directory is not enforced to be a device via
- the use of the --data-dev flag. The directory is not recursively created.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 306b099ab093bfac466d68fe1cb87367bc01e577)
-
-commit c473c65d4b6235fe20a97bd1d4741c12f86858e8
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Dec 31 00:03:42 2013 +0100
-
- ceph-disk: run ceph-osd when --mark-init=none
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 0fcc081858fae4febbb6a613a93cfbbcedd5a320)
-
-commit 6ea59a3a0c38c9629036442aff652489eecce51a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 23:57:39 2013 +0100
-
- ceph-disk: implement --mark-init=none
-
- It is meant to be used when preparing and activating a directory that is
- not to be used with init. No file is created to identify the init
- system, no symbolic link is made to the directory in /var/lib/ceph
- and the init scripts are not called.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit e773b68f4c89ac56b425c710d7dcdc3d74a92926)
-
-commit 3aae5b764c5698c665a708a3f6f2243dfee1a28d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 1 22:07:57 2014 +0100
-
- ceph-disk: fsid is a known configuration option
-
- Use get_conf_with_default instead of get_conf because fsid is a known
- ceph configuration option. It allows overriding via CEPH_ARGS which is
- convenient for testing. Only options that are not found in config_opts.h
- are fetch via get_conf.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit b65eb377f5e93ea85644e4c0939365fd7ac36072)
-
-commit a33ad6d150206232806ee466f301e41f15c631e9
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 1 22:06:29 2014 +0100
-
- ceph-disk: use CalledProcessError.returncode
-
- CalledProcessError has no errno data member
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 97f516a1ddfb2d014e1f7e762c4155e4b9bcb90b)
-
-commit 6ae96d3ce757b05daeb7c1437778149b07248d47
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 1 22:13:15 2014 +0100
-
- ceph-disk: display the command output on OSD creation failure
-
- The string form of a CalledProcessError instance does not include the
- output datamember. Add it to the Error exception for debug purposes.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit d09af0fa50f322c9e59765f3badd497f5ca184d4)
-
-commit deefb3a05788b308631812c652e9eccaeb999d7f
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 23:07:27 2013 +0100
-
- ceph-disk: which() uses PATH first
-
- Instead of relying on a hardcoded set of if paths. Although this has the
- potential of changing the location of the binary being used by ceph-disk
- on an existing installation, it is currently only used for sgdisk. It
- could be disruptive for someone using a modified version of sgdisk but
- the odds of this happening are very low.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 2b935bbf60bafb6dd488c0eb30f156fce1b9d197)
-
-commit 06bbea187293ac52aefbcf4e98c162bb3286341d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 22:48:46 2013 +0100
-
- ceph-disk: add --prepend-to-path to control execution
-
- /usr/bin is hardcoded in front of some ceph programs which makes it
- impossible to control where they are located via the PATH.
-
- The hardcoded path cannot be removed altogether because it will most
- likely lead to unexpected and difficult to diagnose problems for
- existing installations where the PATH finds the program elsewhere.
-
- The --prepend-to-path flag is added and defaults to /usr/bin : it prepends
- to the PATH environment variable. The hardcoded path is removed
- and the PATH will be used: since /usr/bin is searched first, the
- legacy behavior will not change.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit ad6b4b4b08b6ef7ae8086f2be3a9ef521adaa88c)
-
-commit ccf182241dc04c79e2377b6ba2f060dbfe6dddae
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 17:15:29 2013 +0100
-
- ceph-disk: make exception handling terse in main_activate_journal
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 908348b8047e8577ecf9133f2683f91423694416)
-
-commit d60e952f3c00d0e551b04c0d6486b11d9761be35
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 17:13:47 2013 +0100
-
- ceph-disk: do not hide main_activate() exceptions
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 55ca7bb2da73f1be1293710a635cfea42abd7682)
-
-commit 827edb93e3971fc7549fe831894776c6bf163346
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 17:11:30 2013 +0100
-
- ceph-disk: fix activate() indent
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 324804a81c37ff89f2488e2ba106033c0e6e119e)
-
-commit 27988cf9ffedf3289099e51f1e7c3f5b8d79d667
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 17:09:35 2013 +0100
-
- ceph-disk: remove noop try:
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit de0050596b5f56863c3486c1cd5e7ffea62e3d00)
-
-commit 75bdb5430d9403bed8bd2ccd6a9c5a30d63a189e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 16:57:36 2013 +0100
-
- ceph-disk: fix Error() messages formatting
-
- Mainly using % instead of ,
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit b82ccfbfa786cd5436b48ec38276c5a48028ce1d)
-
-commit 5df1eaa55bc7ebe68473831d06cf9819fa39baa6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 30 12:26:20 2013 +0100
-
- ceph-disk: prepare --data-dir must not override files
-
- ceph-disk does nothing when given a device that is already prepared. If
- given a directory that already contains a successfully prepared OSD, it
- will however override it.
-
- Instead of overriding the files in the osd data directory, return
- immediately if the magic file exists. Make it so the magic file is
- created last to accurately reflect the success of the OSD preparation.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7dfe550ce18623cde4ae43a2416e31ef81381ab9)
-
-commit 2e8496a6e0b74ff351bc2a4f138ddc665d8c30ca
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Dec 15 15:34:17 2013 +0100
-
- ceph-disk: zap needs at least one device
-
- If given no argument, ceph-disk zap should display the usage instead of
- silently doing nothing. Silence can be confused with "I zapped all the
- disks".
-
- http://tracker.ceph.com/issues/6981 fixes #6981
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 07888ef3fd4440332c8287d0faa9f23a32cf141c)
-
-commit 0fe2ac47a82d3caa9dca2a9009b68a14b577e35c
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Fri Dec 13 12:06:25 2013 -0500
-
- use the new get_command helper in check_call
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 897dfc113fe3b86f3dda53172933bfd4f8089869)
-
-commit 8fc9f1b791248f08a311d619addc4465cac298f9
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Thu Dec 12 11:16:38 2013 -0500
-
- use the absolute path for executables if found
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit a9334a1c8c6681305e76b361377864d0dd1e3d34)
-
-commit a2de2f718c9e341c0b6ec2ebffdf03d0f9da0fbd
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Thu Dec 12 10:26:05 2013 -0500
-
- remove trailing semicolon
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 43561f791607f5fd6f03d5421e1f30a29fb4194e)
-
-commit 2cd22b5d39760ac4b5baad0b05c676b833ae9213
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Wed Dec 11 15:41:45 2013 -0500
-
- replace sgdisk subprocess calls with a helper
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit e19e38012bc4579054f63865e682c8c3a7829c7b)
-
-commit e8cc27cc8eb981c71b8cafb58964317687ca5787
-Author: Jonathan Davies <jonathan.davies@canonical.com>
-Date: Tue Dec 3 21:26:43 2013 +0000
-
- Call --mbrtogpt on journal run of sgdisk should the drive require a GPT table.
-
- Signed-off-by: Jonathan Davies <jonathan.davies@canonical.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 35011e0b01d65e4c001876882d597451f2028345)
-
-commit 3942a93fae3331b2d08f93181eb2c9cf90b50440
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 21 13:21:22 2013 +0100
-
- ceph-disk: blacklist /dev/fd0
-
- blkid -s TYPE /dev/fd0 has been verified to hang forever on a
- H8DMR-82 supermicro motherboard running
-
- 3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:28:06 UTC 2013
- x86_64
-
- It is unlikely that ceph will ever be used on floppy disks, they
- can be blacklisted.
-
- http://tracker.ceph.com/issues/6827 fixes: #6827
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 65701978715237ff5a4c68573c0696fd9d438e4f)
-
-commit ccc6b0c5e6d47eefef5cf1fa17bf69c47c9459c4
-Author: git-harry <git-harry@live.co.uk>
-Date: Thu Oct 3 10:32:50 2013 +0100
-
- Make fsid comparison case-insensitive
-
- get_fsid and find_cluster_by_uuid are modified so ceph-disk activate and
- ceph-disk activate-all will work if the fsid uses uppercase characters.
-
- Signed-off-by: Harry Harrington <git-harry@live.co.uk>
- (cherry picked from commit 22f8325dbfce7ef2e97bf015c0f8bba53e75dfe9)
-
-commit 367cf1bbf86233eb20ff2304e7d6caab77b84fcc
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Feb 11 10:14:36 2014 -0800
-
- librbd: remove limit on number of objects in the cache
-
- The number of objects is not a significant indicated of when data
- should be written out for rbd. Use the highest possible value for
- number of objects and just rely on the dirty data limits to trigger
- flushing. When the number of objects is low, and many start being
- flushed before they accumulate many requests, it hurts average request
- size and performance for many concurrent sequential writes.
-
- Fixes: #7385
- Backport: emperor, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 0559d31db29ea83bdb6cec72b830d16b44e3cd35)
-
-commit 4856fc2950442fafc208c967af5131f7874f5441
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Feb 11 11:53:00 2014 -0800
-
- ObjectCacher: use uint64_t for target and max values
-
- All the options are uint64_t, but the ObjectCacher was converting them
- to int64_t. There's never any reason for these to be negative, so
- change the type.
-
- Adjust a few conditionals so that they only convert known-positive
- signed values to uint64_t before comparing with the target and max
- values. Leave the actual stats accounting as loff_t for now, since
- bugs in accounting will have bad effects if negative values wrap
- around.
-
- Backport: emperor, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit db034acf546a72739ff6543241543f3bd651f3ae)
-
-commit a572aafe178dfa3ab4d82aa5c7f4a72a63590ccf
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Feb 11 10:35:14 2014 -0800
-
- ObjectCacher: remove max_bytes and max_ob arguments to trim()
-
- These are never passed, so replace them with the defaults.
-
- Backport: emperor, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit bf8cf2d6d21a204a099347f3dcd5b48100b8c445)
-
-commit 4889234f80dbd95e5b2012ff9bfc2d87960034e2
-Merge: 6af657b 30a604d
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 11 08:32:37 2014 -0800
-
- Merge pull request #1210 from dachary/dumpling
-
- common: admin socket fallback to json-pretty format (dumpling)
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 30a604d2d6a5de7bcbfa0136e9a766cb34f96c0a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 10 23:42:38 2014 +0100
-
- common: admin socket fallback to json-pretty format
-
- If the format argument to a command sent to the admin socket is not
- among the supported formats ( json, json-pretty, xml, xml-pretty ) the
- new_formatter function will return null and the AdminSocketHook::call
- function must fall back to a sensible default.
-
- The CephContextHook::call and HelpHook::call failed to do that and a
- malformed format argument would cause the mon to crash. A check is added
- to each of them and fallback to json-pretty if the format is not
- recognized.
-
- To further protect AdminSocketHook::call implementations from similar
- problems the format argument is checked immediately after accepting the
- command in AdminSocket::do_accept and replaced with json-pretty if it is
- not known.
-
- A test case is added for both CephContextHook::call and HelpHook::call
- to demonstrate the problem exists and is fixed by the patch.
-
- Three other instances of unsafe calls to new_formatter were found and
- a fallback to json-pretty was added. All other calls have been audited
- and appear to be safe.
-
- http://tracker.ceph.com/issues/7378 fixes #7378
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 165e76d4d03ffcc490fd3c2ba60fb37372990d0a)
-
-commit 6af657bd4cf87f6f7afe84257941e7e2366183d9
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Feb 5 17:26:02 2014 -0800
-
- qa: add script for testing rados client timeout options
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 9e62beb80b6c92a97ec36c0db5ea39e417661b35)
-
-commit 21a0b67440eaa07fa051d26321a88654ee9e8ae7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Feb 5 17:25:24 2014 -0800
-
- rados: check return values for commands that can now fail
-
- A few places were not checking the return values of commands, since
- they could not fail before timeouts were added.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 79c1874346ff55e2dc74ef860db16ce70242fd00)
-
-commit 2c42dd26b49d01922bd3df3ba26af70da0387a99
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Feb 5 17:24:16 2014 -0800
-
- librados: check and return on error so timeouts work
-
- Some functions could not previously return errors, but they had an
- int return value, which can now receive ETIMEDOUT.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 8e9459e897b1bc2f97d52ee07701fd22069efcf3)
-
-commit 28fe564cc298b96c063e6cca44304046a86942cd
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Feb 5 17:22:14 2014 -0800
-
- msg/Pipe: add option to restrict delay injection to specific msg type
-
- This makes it possible to test timeouts reliably by delaying certain
- messages effectively forever, but still being able to e.g. connect and
- authenticate to the monitors.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit d389e617c1019e44848330bf9570138ac7b0e5d4)
-
-commit 1d2ea9efb844cb902d282c3a752acc45fefeb04c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 3 18:30:00 2014 -0800
-
- MonClient: add a timeout on commands for librados
-
- Just use the conf option directly, since librados is the only caller.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 671a76d64bc50e4f15f4c2804d99887e22dcdb69)
-
-commit 30dafacd0b54bb98b01284851e0d5abf76324e95
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 3 17:59:21 2014 -0800
-
- Objecter: implement mon and osd operation timeouts
-
- This captures almost all operations from librados other than mon_commands().
-
- Get the values for the timeouts from the Objecter constructor, so only
- librados uses them.
-
- Add C_Cancel_*_Op, finish_*_op(), and *_op_cancel() for each type of
- operation, to mirror those for Op. Create a callback and schedule it
- in the existing timer thread if the timeouts are specified.
-
- Fixes: #6507
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3e1f7bbb4217d322f4e0ece16e676cd30ee42a20)
-
- Conflicts:
- src/osd/OSD.cc
- src/osd/ReplicatedPG.cc
- src/osdc/Objecter.cc
- src/osdc/Objecter.h
-
-commit 2aa0d7589283fe5879a966601fbfe690816cc4a1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 3 12:53:15 2014 -0800
-
- librados: add timeout to wait_for_osdmap()
-
- This is used by several pool operations independent of the objecter,
- including rados_ioctx_create() to look up the pool id in the first
- osdmap.
-
- Unfortunately we can't just rely on WaitInterval returning ETIMEDOUT,
- since it may also get interrupted by a signal, so we can't avoid
- keeping track of time explicitly here.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 1829d2c9fd13f2cbae4e192c9feb553047dad42c)
-
- Conflicts:
- src/librados/RadosClient.cc
-
-commit 55d254d5ea113d8be29afe18dc9940f14d93ebb4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Feb 3 12:09:34 2014 -0800
-
- conf: add options for librados timeouts
-
- These will be implemented in subsequent patches.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 0dcceff1378d85ca6d81d102d201890b8a71af6b)
-
-commit ccd9b5eb9bcfe2360e874b306d4decd8815ecf46
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Feb 9 20:53:00 2014 -0800
-
- test_striper: fix warning
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit bb44c0d5e06c2b699c81a76373a0edde1bf90445
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 8 12:21:26 2014 -0800
-
- crushtool: add cli test for off-by-one tries vs retries bug
-
- See bug #7370. This passes on dumpling and breaks prior to the #7370 fix.
-
- Backport: emperor, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ed32c4002fb5cb1dd546331651eaf7de1a017471)
-
-commit c301ec689caac5bbcd21e02226045d3454cc82fd
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Feb 3 08:54:14 2014 -0800
-
- client: use 64-bit value in sync read eof logic
-
- The file size can jump to a value that is very much larger than our current
- position (for example, it could be a disk image file that gets a sparse
- write at a large offset). Use a 64-bit value so that 'some' doesn't
- overflow.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: John Spray <john.spray@inktank.com>
- (cherry picked from commit 7ff2b541c24d1c81c3bcfbcb347694c2097993d7)
-
-commit 183deb899bc6b1b7b2a1ec639425e45786e56b01
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 4 22:39:35 2014 -0800
-
- osd: do not send peering messages during init
-
- Do not send any peering messages while we are still working our way
- through init().
-
- Fixes: #7093
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 35da8f9d80e0c6c33fb6c6e00f0bf38f1eb87d0e)
- Signed-off-by: Greg Farnum <greg@inktank.com>
-
-commit 3a1fb17401897b0717cf1d264c6e6fdf99fc703f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 28 18:46:37 2014 -0800
-
- OSDMap: fix deepish_copy_from
-
- Start with a shallow copy!
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d0f13f54146694a197535795da15b8832ef4b56f)
-
- Conflicts:
-
- src/osd/OSDMap.h
-
-commit f01bd8a94adc4ce8e7131f74282de5b434a7316a
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jan 23 13:48:28 2014 -0800
-
- rgw: fix listing of multipart upload parts
-
- Fixes: #7169
-
- There are two issues here. One is that we may return more entries than
- we should (as specified by max_parts). Second issue is that the
- NextPartNumberMarker is set incorrectly. Both of these issues mainly
- affect uploads with > 1000 parts, although can be triggered with less
- than that.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 6b657992d2397e399eacf554357ed807fda399fa
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Nov 21 06:52:48 2013 -0800
-
- rgw: initialize RGWUserAdminOpState::system_specified
-
- Fixes: #6829
- Backport: dumpling, emperor
- We didn't init this member variable, which might cause that when
- modifying user info that has this flag set the 'system' flag might
- inadvertently reset.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 561e7b0b287e65e90b80699e45a52ae44e94684f)
-
-commit 585e0e7eec1bbee60fe352166b593d53476003f8
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Sun Dec 15 12:26:19 2013 -0800
-
- rgw: Fix CORS allow-headers validation
-
- This fix is needed because Ceph presently validates CORS headers in a
- case-sensitive manner. Keeps a local cache of lowercased allowed headers
- to avoid converting the allowed headers to lowercase each time.
-
- CORS 6.2.6: If any of the header field-names is not a ASCII
- case-insensitive match for any of the values in list of headers do not
- set any additional headers and terminate this set of steps.
-
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 31b60bfd9347a386ff12b4e4f1812d664bcfff01)
-
-commit da2267a87e37afa28385e915a566de26fd784b70
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Sun Dec 15 11:40:31 2013 -0800
-
- rgw: Clarify naming of case-change functions
-
- It is not clear that the lowercase_http_attr & uppercase_http_attr
- functions replace dashes with underscores. Rename them to match the
- pattern established by the camelcase_dash_http_attr function in
- preperation for more case-change functions as needed by later fixes.
-
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 6a7edab2673423c53c6a422a10cb65fe07f9b235)
-
-commit fdea76ef6f7d7c4ee89c30d430f5495072023957
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Sun Dec 15 11:27:49 2013 -0800
-
- rgw: Look at correct header about headers for CORS
-
- The CORS standard dictates that preflight requests are made with the
- Access-Control-Request-Headers header containing the headers of the
- author request. The Access-Control-Allow-Headers header is sent in the
- response.
-
- The present code looks for Access-Control-Allow-Headers in request, so
- fix it to look at Access-Control-Request-Headers instead.
-
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 2abacd9678ae04cefac457882ba718a454948915)
-
-commit a5739e3903f8c30c8168199413818922b4a29bad
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Dec 6 11:07:09 2013 -0800
-
- rgw: fix reading bucket policy in RGWBucket::get_policy()
-
- Fixes: 6940
- Backport: dumpling, emperor
-
- We changed the way we keep the bucket policy, and we shouldn't try to
- access the bucket object directly. This had changed when we added the
- bucket instance object around dumpling.
-
- Reported-by: Gao, Wei M <wei.m.gao@intel.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 7a9a088d82d04f6105d72f6347673724ac16c9f8)
-
-commit ba792cdc8d0c006e260e6a02a33ca1491b35901c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jan 16 11:45:27 2014 -0800
-
- rgw: handle racing object puts when object doesn't exist
-
- If the object didn't exist before and now we have multiple puts coming
- in concurrently, we need to make sure that we behave correctly. Only one
- needs to win, the other one can fail silently. We do that by setting
- exclusive flag on the object creation and handling the error correctly.
- Note that we still want to return -EEXIST in some cases (when the
- exclusive flag is passed to put_obj_meta(), e.g., on bucket creation).
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 86c15480fc3e33b9a3b84d0af68d8398fc732bae)
-
-commit 1e2984ac4a4ed0508e1b5efc8b69ae4da0cac824
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jan 16 11:33:49 2014 -0800
-
- rgw: don't return -ENOENT in put_obj_meta()
-
- Fixes: #7168
-
- An object put may race with the same object's delete. In this case just
- ignore the error, same behavior as if object was created and then
- removed.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 5c24a7ea905587fd4077e3b0cfc0f5ad2b178c29)
-
-commit 5f1eea2ccf1ee4296530fc754bfd5dfc1571cd62
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Sat Jan 18 18:01:20 2014 -0800
-
- rgw: Use correct secret key for POST authn
-
- The POST authentication by signature validation looked up a user based
- on the access key, then used the first secret key for the user. If the
- access key used was not the first access key, then the expected
- signature would be wrong, and the POST would be rejected.
-
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- (cherry picked from commit 586ad1f69e6260ef298805647911b3b49f8be7cf)
-
-commit 14e933eb2e8adf3e7df2aef823d863c593067928
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jan 28 15:54:33 2014 +0000
-
- osd: OSDMonitor: ignore pgtemps from removed pool
-
- There's a window in-between receiving an MOSDPGTemp message from an OSD
- and actually handling it that may lead to the pool the pg temps refer to
- no longer existing. This may happen if the MOSDPGTemp message is queued
- pending dispatching due to an on-going proposal (maybe even the pool
- removal).
-
- This patch fixes such behavior in two steps:
-
- 1. Check if the pool exists in the osdmap upon preprocessing
- - if pool does not exist in the osdmap, then the pool must have been
- removed prior to handling the message, but after the osd sent it.
- - safe to ignore the pg update
- 2. If all pg updates in the message have been ignored, ignore the whole
- message. Otherwise, let prepare handle the rest.
-
- 3. Recheck if pool exists in the osdmap upon prepare
- - We may have ignored this pg back in preprocess, but other pgs in the
- message may have led the message to be passed on to prepare; ignore
- pg update once more.
- 4. Check if pool is pending removal and ignore pg update if so.
-
- We delegate checking the pending value to prepare_pgtemp() because in this
- case we should only ignore the update IFF the pending value is in fact
- committed. Otherwise we should retry the message. prepare_pgtemp() is
- the appropriate place to do so.
-
- Fixes: 7116
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit f513f66f48383a07c70ca18a4dba6c2449ea9860)
-
-commit 3672fc49bea5efcef2069673c88fd8e526eeb7e5
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 28 11:00:34 2014 -0800
-
- OSDMonitor: use deepish_copy_from for remove_down_pg_temp
-
- This is a backport of 368852f6c0a884b8fdc80a5cd6f9ab72e814d412.
-
- Make a deep copy of the OSDMap to avoid clobbering the in-memory copy with
- the call to apply_incremental.
-
- Fixes: #7060
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit e6fef68ee51a2e3be6537086246ce860819788eb
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 24 11:03:26 2014 -0800
-
- OSDMap: deepish_copy_from()
-
- Make a deep(ish) copy of another OSDMap. Unfortunatley we can't make the
- compiler-generated copy operator/constructors private until c++11. :(
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bd54b9841b9255406e56cdc7269bddb419453304)
-
-commit 2528186c0dd327607b1e76a51581df72aeea52f2
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 28 10:26:12 2014 -0800
-
- buffer: make 0-length splice() a no-op
-
- This was causing a problem in the Striper, but fixing it here will avoid
- corner cases all over the tree. Note that we have to bail out before
- the end-of-buffer check to avoid hitting that check when the bufferlist is
- also empty.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit ff5abfbdae07ae8a56fa83ebaa92000896f793c2)
-
-commit fe9539e118a830aa71bc5846ad2693543213fc59
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 28 10:09:17 2014 -0800
-
- osdc/Striper: test zero-length add_partial_result
-
- If we add a partial result that is 0-length, we used to hit an assert in
- buffer::list::splice(). Add a unit test to verify the fix.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 28c7388d320a47657c2e12c46907f1bf40672b08)
-
-commit 9801718e6e7a335d1aeffb7f3d958b012d8dd79c
-Author: Derek Yarnell <derek@umiacs.umd.edu>
-Date: Mon Jan 27 12:27:51 2014 -0700
-
- packaging: apply udev hack rule to RHEL
-
- In the RPM spec file there is a test to deploy the uuid hack udev rules
- for older udev operating systems. This includes CentOS and RHEL, but the
- check currently only is for CentOS, causing RHEL clients to get a bogus
- osd rules file.
-
- Adjust the conditional to apply to RHEL as well as CentOS. (The %{rhel}
- macro is defined in both platforms' redhat-rpm-config package.)
-
- Fixes http://tracker.ceph.com/issues/7245
-
- Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
- (cherry picked from commit 64a0b4fa563795bc22753940aa3a4a2946113109)
-
-commit 5817078ba9b2aa38f39e1f62d8d08e943646c0bb
-Merge: 9fa8d2d abf6441
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jan 23 07:12:37 2014 -0800
-
- Merge pull request #1129 from ceph/wip-dumpling-backport-6620
-
- mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars
-
-commit abf64417bbc63b006c53a07262a5774d0d40550e
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Thu Jan 23 11:36:16 2014 +0000
-
- mds: MDSMap: adjust buffer size for uint64 values with more than 5 chars
-
- Fixes: #6620
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 0e8182edd850f061421777988974efbaa3575b9f)
-
-commit 9fa8d2d1bd4a8cf56fdebae484bee35c3930fb62
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jan 21 11:29:56 2014 -0800
-
- mon/MDSMonitor: do not generate mdsmaps from already-laggy mds
-
- There is one path where a mds that is not sending its beacon (e.g.,
- because it is not running at all) will lead to proposal of new mdsmaps.
- Fix it.
-
- Backport: emperor, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 584c2dd6bea3fe1a3c7f306874c054ce0cf0d2b5)
-
-commit a2e34b8d322e571600d6c0a3ff363f9910196f28
-Author: John Spray <john.spray@inktank.com>
-Date: Mon Jan 20 11:08:27 2014 +0000
-
- Fix #7187: Include all summary items in JSON health output
-
- Signed-off-by: John Spray <john.spray@inktank.com>
- (cherry picked from commit fdf3b5520d150f14d90bdfc569b70c07b0579b38)
-
-commit ee9fc590a556354b54a174a4790c4142949d7409
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jan 6 18:32:42 2014 -0800
-
- rgw: convert bucket info if needed
-
- Fixes: #7110
- In dumpling, the bucket info was separated into bucket entry point and
- bucket instance objects. When setting bucket attrs we only ended up
- updating the bucket instance object. However, pre-dumpling buckets still
- keep everything at the entry-point object, so acl changes didn't affect
- anything (because we never updated the entry point). This change just
- converts the bucket info into the new format.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit a5f8cc7ec9ec8bef4fbc656066b4d3a08e5b215b)
-
-commit 69a99e6edd67aadaea77fb5ebcf46190dbfcdbc6
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 4 22:40:43 2014 -0800
-
- osd: ignore OSDMap messages while we are initializing
-
- The mon may occasionally send OSDMap messages to random OSDs, but is not
- very descriminating in that we may not have authenticated yet. Ignore any
- messages if that is the case; we will reqeust whatever we need during the
- BOOTING state.
-
- Fixes: #7093
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f68de9f352d53e431b1108774e4a23adb003fe3f)
-
-commit 1545ddbd3b6dfac897d483bd58a4335d68b9b62a
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jan 4 22:43:26 2014 -0800
-
- mon: only send messages to current OSDs
-
- When choosing a random OSD to send a message to, verify not only that
- the OSD id is up but that the session is for the same instance of that OSD
- by checking that the address matches.
-
- Fixes: #7093
- Backport: emperor, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 98ed9ac5fed6eddf68f163086df72faabd9edcde)
-
-commit 4d88dd10bfab4e5fb45632245be5f79eeba73a30
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Aug 26 13:58:47 2013 -0700
-
- osd: discriminate based on connection messenger, not peer type
-
- Replace ->get_source().is_osd() checks and instead see if it is the
- cluster_messenger so that we do not confuse ourselves when we get
- legit requests from other OSDs on our public interface.
-
- NOTE: backporting this because a mixed cluster may send OSD requests
- via the client interface, even though dumpling doesn't do this.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a6b04c5d8ba043727a2e39a62e9d4126485bcfeb)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 2354b957b7924af3e81f559d5c975262848c3bf6
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Dec 15 22:59:51 2013 +0100
-
- qa: test for error when ceph osd rm is EBUSY
-
- http://tracker.ceph.com/issues/6824 fixes #6824
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 31507c90f0161c4569a2cc634c0b5f671179440a)
-
-commit 10ad2e01f832ca9293a1bda1c82f7d318e8c3589
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Dec 15 16:27:02 2013 +0100
-
- mon: set ceph osd (down|out|in|rm) error code on failure
-
- Instead of always returning true, the error code is set if at least one
- operation fails.
-
- EINVAL if the OSD id is invalid (osd.foobar for instance).
- EBUSY if trying to remove and OSD that is up.
-
- When used with the ceph command line, it looks like this:
-
- ceph -c ceph.conf osd rm osd.0
- Error EBUSY: osd.0 is still up; must be down before removal.
- kill PID_OF_osd.0
- ceph -c ceph.conf osd down osd.0
- marked down osd.0.
- ceph -c ceph.conf osd rm osd.0 osd.1
- Error EBUSY: removed osd.0, osd.1 is still up; must be down before removal.
-
- http://tracker.ceph.com/issues/6824 fixes #6824
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 15b8616b13a327701c5d48c6cb7aeab8fcc4cafc)
-
-commit db82bfec50349783c3bb708c65cf89bceff7b2ca
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Oct 29 20:30:37 2013 +0000
-
- mon: OSDMonitor: fix some annoying whitespace
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 42c4137cbfacad5654f02c6608cc0e81b45c06be)
-
-commit 1abb16988727a21dff61edca48bfcb05c60d26f2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Dec 26 17:38:52 2013 -0800
-
- librbd: call user completion after incrementing perfcounters
-
- The perfcounters (and the ictx) are only valid while the image is
- still open. If the librbd user gets the callback for its last I/O,
- then closes the image, the ictx and its perfcounters will be
- invalid. If the AioCompletion object is has not run the rest of its
- complete() method yet, it will access these now-invalid addresses,
- possibly leading to a crash.
-
- The AioCompletion object is independent of the ictx and does not
- access it again after incrementing perfcounters, so avoid this race by
- calling the user's callback after this step. The AioCompletion object
- will be cleaned up by the rest of complete_request(), independent of
- the ImageCtx.
-
- Fixes: #5426
- Backport: dumpling, emperor
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 4cea7895da7331b84d8c6079851fdc0ff2f4afb1)
-
-commit 4dae50d8a0ffe3f3491eae62950fe46229aaa0e6
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Dec 6 16:03:20 2013 -0800
-
- objecter: don't take extra throttle budget for resent ops
-
- These ops have already taken their budget in the original op_submit().
- It will be returned via put_op_budget() when they complete.
- If there were many localized reads of missing objects from replicas,
- or cache pool redirects, this would cause the objecter to use up all
- of its op throttle budget and hang.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 8d0180b1b7b48662daef199931efc7f2a6a1c431)
-
- Conflicts:
-
- src/osdc/Objecter.cc
-
-commit 4944618fe74e1875e37a5de9a5bfe3922f906942
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Dec 5 17:44:37 2013 -0800
-
- rbd: check write return code during bench-write
-
- This is allows rbd-bench to detect http://tracker.ceph.com/issues/6938
- when combined with rapidly changing the mon osd full ratio.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3caf3effcb113f843b54e06099099909eb335453)
-
-commit 3a7a0353d7c8521a2c3c25778801d45f0ca10957
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Dec 5 17:36:33 2013 -0800
-
- objecter: resend all writes after osdmap loses the full flag
-
- Now that the osd does not respond if it gets a map with the full flag
- set first, clients need to resend all writes.
-
- Clients talking to old osds are still subject to the race condition,
- so both sides must be upgraded to avoid it.
-
- Refs: #6938
- Backport: dumpling, emperor
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e32874fc5aa6f59494766b7bbeb2b6ec3d8f190e)
-
- Conflicts:
-
- src/osdc/Objecter.h
-
-commit f4d0fc8afac1bcbea76f46744397a8462025f373
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Dec 5 17:34:38 2013 -0800
-
- osd: drop writes when full instead of returning an error
-
- There's a race between the client and osd with a newly marked full
- osdmap. If the client gets the new map first, it blocks writes and
- everything works as expected, with no errors from the osd.
-
- If the osd gets the map first, however, it will respond to any writes
- with -ENOSPC. Clients will pass this up the stack, and not retry these
- writes later. -ENOSPC isn't handled well by all clients. RBD, for
- example, may pass it on to qemu or kernel rbd which will both
- interpret it as EIO. Filesystems on top of rbd will not behave well
- when they receive EIOs like this, especially if the cluster oscillates
- between full and not full, so some writes succeed.
-
- To fix this, never return ENOSPC from the osd because of a map marked
- full, and rely on the client to retry all writes when the map is no
- longer marked full.
-
- Old clients talking to osds with this fix will hang instead of
- propagating an error, but only if they run into this race
- condition. ceph-fuse and rbd with caching enabled are not affected,
- since the ObjectCacher will retry writes that return errors.
-
- Refs: #6938
- Backport: dumpling, emperor
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 4111729dda7437c23f59e7100b3c4a9ec4101dd0)
-
-commit 2b109803b9434d2d495e65d6a045838ee3ebf169
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 6 16:55:52 2013 -0800
-
- objecter: clean pause / unpause logic
-
- op->paused holds now whether operation should be paused or not, and it's
- being updated when scanning requests. No need to do a second scan.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 5fe3dc647bf936df8e1eb2892b53f44f68f19821)
-
-commit 7b229fca346b7ab60131b229591d35f63f64a6ad
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 6 16:15:47 2013 -0800
-
- objecter: set op->paused in recalc_op_target(), resend in not paused
-
- When going through scan_requests() in handle_osd_map() we need to make
- sure that if an op should not be paused anymore then set it on the op
- itself, and return NEED_RESEND. Otherwise we're going to miss reset of
- the full flag.
- Also in handle_osd_map(), make sure that op shouldn't be paused before
- sending it. There's a lot of cleanup around that area that we should
- probably be doing, make the code much more tight.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 98ab7d64a191371fa39d840c5f8e91cbaaa1d7b7)
-
-commit a3fdfd77c953a8f9ace4991630599e60f56abc4a
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Nov 6 10:46:37 2013 +0800
-
- objecter: don't resend paused ops
-
- Paused ops are meant to block on the client side until a new map that
- unpauses them is recieved. If we send paused writes when the FULL flag
- is set, we'll get -ENOSPC from the osds, which is not what Objecter
- users expect. This may cause rbd without caching to produce an I/O
- error instead of waiting for the cluster to have capacity.
-
- Fixes: #6725
- Backport: dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit c5c399d327cfc0d232d9ec7d49ababa914d0b21a)
-
-commit 78037886ae6ae278d8fb2db52d7767b8612313fe
-Merge: a60ac91 4e47a00
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Dec 29 21:10:30 2013 -0800
-
- Merge pull request #808 from ceph/wip-6152-dumpling
-
- rgw: Fix S3 auth when using response-* query string params
-
-commit 4e47a003bb3adcee690067d4037c248a93023c20
-Author: Sylvain Munaut <s.munaut@whatever-company.com>
-Date: Thu Aug 29 16:17:30 2013 +0200
-
- rgw: Fix S3 auth when using response-* query string params
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Signed-off-by: Sylvain Munaut <s.munaut@whatever-company.com>
- (cherry picked from commit 7a7361d7e798d94796d4985e2e4b35af22463ae2)
diff --git a/src/ceph/doc/changelog/v0.67.7.txt b/src/ceph/doc/changelog/v0.67.7.txt
deleted file mode 100644
index 71442f6..0000000
--- a/src/ceph/doc/changelog/v0.67.7.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-commit d7ab4244396b57aac8b7e80812115bbd079e6b73 (tag: refs/tags/v0.67.7, refs/remotes/gh/dumpling)
-Author: Ken Dreyer <ken.dreyer@inktank.com>
-Date: Wed Feb 19 18:09:39 2014 +0000
-
- v0.67.7
-
- Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
-
-commit c1f42770f45205c8a3eae774d09e747408130c50
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jan 6 12:53:58 2014 -0800
-
- radosgw-admin: fix object policy read op
-
- Fixes: #7083
- This was broken when we fixed #6940. We use the same function to both
- read the bucket policy and the object policy. However, each needed to be
- treated differently. Restore old behavior for objects.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b1976dd00f5b29c01791272f63a18250319f2edb)
-
-commit 404500811adc74c79583bbf3122dc333e0b41b51
-Merge: 3e7ea33 fec55a2
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 15 22:20:45 2014 -0800
-
- Merge pull request #1243 from dachary/wip-ceph-disk-dumpling
-
- ceph-disk: unit tests (dumpling)
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 3e7ea33cfc80031aed8d6c61e1bdca947b36d69b
-Author: Ken Dreyer <ken.dreyer@inktank.com>
-Date: Fri Jan 3 16:38:25 2014 -0700
-
- add autotools-generated files to .gitignore
-
- When running "make check", Automake generates test-suite.log, along with
- various *.log and *.trs files in the tree. Add these files to
- .gitignore.
-
- (It looks like this feature arrived in Automake 1.13.)
-
- Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
- (cherry picked from commit bb8b7503b03fac5830fb71b9723963fdc803ca90)
-
-commit fec55a2174b49ef68c816755c1218f9cd69033b6
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Feb 15 18:34:04 2014 +0100
-
- ceph-disk: unit tests
-
- src/test/ceph-disk.sh replaces src/test/cli/ceph-disk/data-dir.t
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit 0679b11b4d2f7cb7bd9c1cd86854a064aaa83f8a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 2 22:42:17 2014 +0100
-
- ceph-disk: cannot run unit tests
-
- Because ceph-disk relies on hardcoded paths. The corresponding test will
- be added back when ceph-disk can run from sources.
-
- Fixes: #7085
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 2ba6930d62263a39f150ab43bf8cd860b9245188)
-
-commit 9dae9993e9b36e741e05804807bdb738fbe52e6f
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 14 23:52:06 2014 -0800
-
- Revert "librbd: remove limit on number of objects in the cache"
-
- This reverts commit 367cf1bbf86233eb20ff2304e7d6caab77b84fcc.
-
- Removing the limit on objects means we leak memory, since Objects without
- any buffers can exist in the cache.
-
-commit 2795339d3632df975486d51e69762f9f567fb43d
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Oct 7 05:22:20 2013 -0700
-
- os/FileStore: fix ENOENT error code for getattrs()
-
- In commit dc0dfb9e01d593afdd430ca776cf4da2c2240a20 the omap xattrs code
- moved up a block and r was no longer local to the block. Translate
- ENOENT -> 0 to compensate.
-
- Fix the same error in _rmattrs().
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 6da4b91c07878e07f23eee563cf1d2422f348c2f)
-
-commit c158de232fcfb0e39f4b7eaac6dacbaaaee84b5f
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 15 16:00:26 2013 -0700
-
- test/filestore/run_seed_to.sh: avoid obsolete --filestore-xattr-use-omap
-
- This option no longer exists.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1d4f501a015727a7ff4b2f9b20dc91f2bbd9707b)
diff --git a/src/ceph/doc/changelog/v0.67.8.txt b/src/ceph/doc/changelog/v0.67.8.txt
deleted file mode 100644
index 2f8e0c9..0000000
--- a/src/ceph/doc/changelog/v0.67.8.txt
+++ /dev/null
@@ -1,1220 +0,0 @@
-commit ffc58b4ea6a3ea10e91050aaa28d14d87dea5656 (tag: refs/tags/v0.67.8, refs/remotes/gh/dumpling)
-Author: Jenkins <jenkins@inktank.com>
-Date: Thu May 1 11:18:24 2014 +0000
-
- 0.67.8
-
-commit 4b16b70c53be83481efefcf394eca99c73bb9805
-Merge: 5a6b351 fb0944e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Apr 30 15:15:48 2014 -0700
-
- Merge pull request #1743 from ceph/wip-mon-backports.dumpling
-
- mon: OSDMonitor: HEALTH_WARN on 'mon osd down out interval == 0'
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit fb0944e22acf6f8b6cefb59cc4c41dc48087bfd7
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Apr 30 17:13:30 2014 +0100
-
- mon: OSDMonitor: HEALTH_WARN on 'mon osd down out interval == 0'
-
- A 'status' or 'health' request will return a HEALTH_WARN whenever the
- monitor handling the request has the option set to zero.
-
- Fixes: 7784
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit b2112d5087b449d3b019678cb266ff6fa897897e)
-
-commit 5a6b35160417423db7c6ff892627f084ab610dfe
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Tue Mar 4 16:15:15 2014 -0800
-
- Make symlink of librbd to qemu's folder so it can detect it.
-
- Per issue #7293.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit 65f3354903fdbdb81468a84b8049ff19c00f91ba)
-
-commit 735a90a95eea01dbcce5026758895117c2842627
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Apr 25 14:11:27 2014 -0700
-
- rgw: fix url escaping
-
- Fixes: #8202
- This fixes the radosgw side of issue #8202. Needed to cast value
- to unsigned char, otherwise it'd get padded.
-
- Backport: dumpling
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit bcf92c496aba0dfde432290fc2df5620a2767313)
-
-commit 438b57890dfce04226d769389a601d35b74e11fe
-Merge: c049967 476b929
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 25 16:00:24 2014 -0700
-
- Merge pull request #1700 from xanpeng/patch-1
-
- Fix error in mkcephfs.rst
-
- Signed-off-by: Xan Peng <xanpeng@gmail.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 476b929ecc5b7351a5be3024817b900976a90a3e
-Author: xanpeng <xanpeng@gmail.com>
-Date: Mon Apr 21 11:30:42 2014 +0800
-
- Update mkcephfs.rst
-
- There should be no blank between mount options.
-
-commit c049967af829497f8a62e0cbbd6031f85ead8a59
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 1 17:27:01 2014 -0700
-
- auth: add rwlock to AuthClientHandler to prevent races
-
- For cephx, build_authorizer reads a bunch of state (especially the
- current session_key) which can be updated by the MonClient. With no
- locks held, Pipe::connect() calls SimpleMessenger::get_authorizer()
- which ends up calling RadosClient::get_authorizer() and then
- AuthClientHandler::bulid_authorizer(). This unsafe usage can lead to
- crashes like:
-
- Program terminated with signal 11, Segmentation fault.
- 0x00007fa0d2ddb7cb in ceph::buffer::ptr::release (this=0x7f987a5e3070) at common/buffer.cc:370
- 370 common/buffer.cc: No such file or directory.
- in common/buffer.cc
- (gdb) bt
- 0x00007fa0d2ddb7cb in ceph::buffer::ptr::release (this=0x7f987a5e3070) at common/buffer.cc:370
- 0x00007fa0d2ddec00 in ~ptr (this=0x7f989c03b830) at ./include/buffer.h:171
- ceph::buffer::list::rebuild (this=0x7f989c03b830) at common/buffer.cc:817
- 0x00007fa0d2ddecb9 in ceph::buffer::list::c_str (this=0x7f989c03b830) at common/buffer.cc:1045
- 0x00007fa0d2ea4dc2 in Pipe::connect (this=0x7fa0c4307340) at msg/Pipe.cc:907
- 0x00007fa0d2ea7d73 in Pipe::writer (this=0x7fa0c4307340) at msg/Pipe.cc:1518
- 0x00007fa0d2eb44dd in Pipe::Writer::entry (this=<value optimized out>) at msg/Pipe.h:59
- 0x00007fa0e0f5f9d1 in start_thread (arg=0x7f987a5e4700) at pthread_create.c:301
- 0x00007fa0de560b6d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
-
- and
-
- Error in `qemu-system-x86_64': invalid fastbin entry (free): 0x00007ff12887ff20
- *** ======= Backtrace: =========
- /lib/x86_64-linux-gnu/libc.so.6(+0x80a46)[0x7ff3dea1fa46]
- /usr/lib/librados.so.2(+0x29eb03)[0x7ff3e3d43b03]
- /usr/lib/librados.so.2(_ZNK9CryptoKey7encryptEP11CephContextRKN4ceph6buffer4listERS4_RSs+0x71)[0x7ff3e3d42661]
- /usr/lib/librados.so.2(_Z21encode_encrypt_enc_blIN4ceph6buffer4listEEvP11CephContextRKT_RK9CryptoKeyRS2_RSs+0xfe)[0x7ff3e3d417de]
- /usr/lib/librados.so.2(_Z14encode_encryptIN4ceph6buffer4listEEiP11CephContextRKT_RK9CryptoKeyRS2_RSs+0xa2)[0x7ff3e3d41912]
- /usr/lib/librados.so.2(_ZN19CephxSessionHandler12sign_messageEP7Message+0x242)[0x7ff3e3d40de2]
- /usr/lib/librados.so.2(_ZN4Pipe6writerEv+0x92b)[0x7ff3e3e61b2b]
- /usr/lib/librados.so.2(_ZN4Pipe6Writer5entryEv+0xd)[0x7ff3e3e6c7fd]
- /lib/x86_64-linux-gnu/libpthread.so.0(+0x7f8e)[0x7ff3ded6ff8e]
- /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7ff3dea99a0d]
-
- Fix this by adding an rwlock to AuthClientHandler. A simpler fix would
- be to move RadosClient::get_authorizer() into the MonClient() under
- the MonClient lock, but this would not catch all uses of other
- Authorizer, e.g. for verify_authorizer() and it would serialize
- independent connection attempts.
-
- This mainly matters for cephx, but none and unknown can have the
- global_id reset as well.
-
- Partially-fixes: #6480
- Backport: dumpling, emperor
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 2cc76bcd12d803160e98fa73810de2cb916ef1ff)
-
-commit 2b4b00b76b245b1ac6f95e4537b1d1a4656715d5
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 1 11:37:29 2014 -0700
-
- pipe: only read AuthSessionHandler under pipe_lock
-
- session_security, the AuthSessionHandler for a Pipe, is deleted and
- recreated while the pipe_lock is held. read_message() is called
- without pipe_lock held, and examines session_security. To make this
- safe, make session_security a shared_ptr and take a reference to it
- while the pipe_lock is still held, and use that shared_ptr in
- read_message().
-
- This may have caused crashes like:
-
- *** Error in `qemu-system-x86_64': invalid fastbin entry (free): 0x00007f42a4002de0 ***
- ======= Backtrace: =========
- /lib/x86_64-linux-gnu/libc.so.6(+0x80a46)[0x7f452f1f3a46]
- /usr/lib/x86_64-linux-gnu/libnss3.so(PK11_FreeSymKey+0xa8)[0x7f452e72ff98]
- /usr/lib/librados.so.2(+0x2a18cd)[0x7f453451a8cd]
- /usr/lib/librados.so.2(_ZNK9CryptoKey7encryptEP11CephContextRKN4ceph6buffer4listERS4_RSs+0x71)[0x7f4534519421]
- /usr/lib/librados.so.2(_Z21encode_encrypt_enc_blIN4ceph6buffer4listEEvP11CephContextRKT_RK9CryptoKeyRS2_RSs+0xfe)[0x7f453451859e]
- /usr/lib/librados.so.2(_Z14encode_encryptIN4ceph6buffer4listEEiP11CephContextRKT_RK9CryptoKeyRS2_RSs+0xa2)[0x7f45345186d2]
- /usr/lib/librados.so.2(_ZN19CephxSessionHandler23check_message_signatureEP7Message+0x246)[0x7f4534516866]
- /usr/lib/librados.so.2(_ZN4Pipe12read_messageEPP7Message+0xdcc)[0x7f453462ecbc]
- /usr/lib/librados.so.2(_ZN4Pipe6readerEv+0xa5c)[0x7f453464059c]
- /usr/lib/librados.so.2(_ZN4Pipe6Reader5entryEv+0xd)[0x7f4534643ecd]
- /lib/x86_64-linux-gnu/libpthread.so.0(+0x7f8e)[0x7f452f543f8e]
- /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f452f26da0d]
-
- Partially-fixes: #6480
- Backport: dumpling, emperor
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 1d74170a4c252f35968ccfbec8e432582e92f638)
-
-commit 48895a46015c9d6d67543816f5a400c21aa206b1 (refs/remotes/gh/wip-objectcacher-flusher-dumpling)
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jan 3 12:51:15 2014 -0800
-
- osdc/ObjectCacher: back off less during flush
-
- In cce990efc8f2a58c8d0fa11c234ddf2242b1b856 we added a limit to avoid
- holding the lock for too long. However, if we back off, we currently
- wait for a full second, which is probably a bit much--we really just want
- to give other threads a chance.
-
- Backport: emperor
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e2ee52879e9de260abbf5eacbdabbd71973a6a83)
-
-commit f3b5ba6f25010291a2918bdd286f1b39570bb907
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Oct 1 09:28:29 2013 -0700
-
- osdc/ObjectCacher: limit writeback IOs generated while holding lock
-
- While analyzing a log from Mike Dawson I saw a long stall while librbd's
- objectcacher was starting lots (many hundreds) of IOs. Limit the amount of
- time we spend doing this at a time to allow IO replies to be processed so
- that the cache remains responsive.
-
- I'm not sure this warrants a tunable (which we would need to add for both
- libcephfs and librbd).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cce990efc8f2a58c8d0fa11c234ddf2242b1b856)
-
-commit 06f27fc6446d47b853208357ec4277c5dc10d9fe
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Apr 8 10:52:43 2014 -0700
-
- os/FileStore: reset journal state on umount
-
- We observed a sequence like:
-
- - replay journal
- - sets JournalingObjectStore applied_op_seq
- - umount
- - mount
- - initiate commit with prevous applied_op_seq
- - replay journal
- - commit finishes
- - on replay commit, we fail assert op > committed_seq
-
- Although strictly speaking the assert failure is harmless here, in general
- we should not let state leak through from a previous mount into this
- mount or else assertions are in general more difficult to reason about.
-
- Fixes: #8019
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4de49e8676748b6ab4716ff24fd0a465548594fc)
-
-commit b29238729f87c73dfdcf16dddcf293577678dea2
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Nov 5 14:54:20 2013 -0800
-
- rgw: deny writes to a secondary zone by non-system users
-
- Fixes: #6678
- We don't want to allow regular users to write to secondary zones,
- otherwise we'd end up with data inconsistencies.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 6961b5254f16ac3362c3a51f5490328d23640dbf)
-
- Conflicts:
- src/rgw/rgw_rados.h
-
-commit 051a17eb008d75aa6b0737873318a2e7273501ab
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Apr 5 16:58:55 2014 -0700
-
- mon: wait for quorum for MMonGetVersion
-
- We should not respond to checks for map versions when we are in the
- probing or electing states or else clients will get incorrect results when
- they ask what the latest map version is.
-
- Fixes: #7997
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 67fd4218d306c0d2c8f0a855a2e5bf18fa1d659e)
-
-commit 0716516da05eee967796fb71eb2f85c86afc40f1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Feb 19 08:59:07 2014 -0800
-
- rgw: fix swift range response
-
- Fixes: #7099
- Backport: dumpling
- The range response header was broken in swift.
-
- Reported-by: Julien Calvet <julien.calvet@neurea.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 0427f61544529ab4e0792b6afbb23379fe722de1)
-
-commit 94a1deefcfe525a7e698a1ae70a3bb561b6157de
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Nov 22 15:41:49 2013 -0800
-
- rgw: don't log system requests in usage log
-
- Fixes: 6889
- System requets should not be logged in the usage log.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 42ef8ba543c7bf13c5aa3b6b4deaaf8a0f9c58b6)
-
-commit 23fed8fc427e7077c61f86168a42f61a5f73867d
-Author: Greg Farnum <greg@inktank.com>
-Date: Fri Apr 4 16:06:05 2014 -0700
-
- OSD: _share_map_outgoing whenever sending a message to a peer
-
- This ensures that they get new maps before an op which requires them (that
- they would then request from the monitor).
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 232ac1a52a322d163d8d8dbc4a7da4b6a9acb709)
-
-commit c45e15fd5cbe57a34c743b2835ecc30ee5a43963
-Author: Xihui He <xihuihe@gmail.com>
-Date: Mon Dec 30 12:04:10 2013 +0800
-
- msgr: fix rebind() race
- stop the accepter and mark all pipes down before rebind to avoid race
-
- Fixes: #6992
-
- Signed-off-by: Xihui He xihuihe@gmail.com
- (cherry picked from commit f8e413f9c79a3a2a12801f5f64a2f612de3f06a0)
-
-commit 3d31cf012a59e1fea8080b13bdc06c9021ba0656
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Nov 26 13:20:21 2013 -0800
-
- PG: retry GetLog() each time we get a notify in Incomplete
-
- If for some reason there are no up OSDs in the history which
- happen to have usable copies of the pg, it's possible that
- there is a usable copy elsewhere on the cluster which will
- become known to the primary if it waits.
-
- Fixes: #6909
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 964c8e978f86713e37a13b4884a6c0b9b41b5bae)
-
-commit 1f80bbdf45439c7224ed52e4956973fc6d007848
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 17 15:37:44 2014 -0700
-
- os/FileJournal: return errors on make_writeable() if reopen fails
-
- This is why #7738 is resulting in a crash instead of an error.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit aed074401d2834a5b04edd1b7f6b4f36336f6293)
-
-commit 62d942294a54208cdc82aebf8b536d164cae5dc6
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Mar 17 16:21:17 2014 -0700
-
- mon/Paxos: commit only after entire quorum acks
-
- If a subset of the quorum accepts the proposal and we commit, we will start
- sharing the new state. However, the mon that didn't yet reply with the
- accept may still be sharing the old and stale value.
-
- The simplest way to prevent this is not to commit until the entire quorum
- replies. In the general case, there are no failures and this is just fine.
- In the failure case, we will call a new election and have a smaller quorum
- of (live) nodes and will recommit the same value.
-
- A more performant solution would be to have a separate message invalidate
- the old state and commit once we have all invalidations and a majority of
- accepts. This will lower latency a bit in the non-failure case, but not
- change the failure case significantly. Later!
-
- Fixes: #7736
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit fa1d957c115a440e162dba1b1002bc41fc1eac43)
-
-commit 2160c72b393893896be581e89a42c4e37b79cb23
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Mar 13 14:04:19 2014 -0700
-
- PrioritizedQueue: cap costs at max_tokens_per_subqueue
-
- Otherwise, you can get a recovery op in the queue which has a cost
- higher than the max token value. It won't get serviced until all other
- queues also do not have enough tokens and higher priority queues are
- empty.
-
- Fixes: #7706
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 2722a0a487e77ea2aa0d18caec0bdac50cb6a264)
-
-commit 1dd42e0f75fe1f5363f92bd5a4506812e54b8fb5
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Apr 3 13:59:59 2014 -0700
-
- Fix byte-order dependency in calculation of initial challenge
-
- Fixes: #7977
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4dc62669ecd679bc4d0ef2b996b2f0b45b8b4dc7)
-
-commit c66b61f9dcad217429e4876d27881d9fb2e7666f
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Dec 31 17:00:06 2013 -0800
-
- rbd: return 0 and an empty list when pool is entirely empty
-
- rbd_list will return -ENOENT when no rbd_directory object
- exists. Handle this in the cli tool and interpret it as success with
- an empty list.
-
- Add this to the release notes since it changes command line behavior.
-
- Fixes: #6693
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit ac547a5b7dc94282f079aef78e66348d99d9d5e9)
-
- Conflicts:
- PendingReleaseNotes
- src/rbd.cc
-
-commit 60b7aa96abfe09f7e9a263fa3f9b72c556dee8cb
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Nov 20 18:35:34 2013 -0800
-
- test: use older names for module setup/teardown
-
- setUp and tearDown require nosetests 0.11, but 0.10.4 is the latest on
- centos. Rename to use the older aliases, which still work with newer
- versions of nosetests as well.
-
- Fixes: #6368
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit f753d56a9edba6ce441520ac9b52b93bd8f1b5b4)
-
-commit b405bfa49ec31f0c6d8636c4bdde17ee1f81deb7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Nov 3 11:06:10 2013 -0800
-
- OSD: don't clear peering_wait_for_split in advance_map()
-
- I really don't know why I added this... Ops can be discarded from the
- waiting_for_pg queue if we aren't primary simply because there must have
- been an exchange of peering events before subops will be sent within a
- particular epoch. Thus, any events in the waiting_for_pg queue must be
- client ops which should only be seen by the primary. Peering events, on
- the other hand, should only be discarded if we are in a new interval,
- and that check might as well be performed in the peering wq.
-
- Fixes: #6681
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 9ab513334c7ff9544bac07bd420c6d5d200cf535)
-
-commit a498c940bd630cb103d17ad8532a11122439411d
-Merge: 225fc97 80e0a0a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Apr 2 12:57:30 2014 -0700
-
- Merge remote-tracking branch 'gh/wip-7888-dumpling' into dumpling
-
-commit 225fc97f228490dfc13c2e4deed8fecffdb28c5e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Nov 5 21:48:53 2013 -0800
-
- PG: fix operator<<,log_wierdness log bound warning
-
- Split may cause holes such that head != tail and yet
- log.empty().
-
- Fixes: #6722
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit c6826c1e8a301b2306530c6e5d0f4a3160c4e691)
-
-commit 26eeab43f3f703a25e7ba62c75d0382d15e38263
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Nov 5 17:47:48 2013 -0800
-
- PGLog::rewind_divergent_log: log may not contain newhead
-
- Due to split, there may be a hole at newhead.
-
- Fixes: #6722
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit f4648bc6fec89c870e0c47b38b2f13496742b10f)
-
-commit 040abd75ad45bbcc05b24c9dddbd2026dd35e659
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Mar 29 14:23:21 2014 -0700
-
- qa/workunits/fs/misc/layout_vxattrs: ceph.file.layout is not listed
-
- As of 08a3d6bd428c5e78dd4a10e6ee97540f66f9729c. A similar change was made
- in the kernel.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4f9f7f878953b29cd5f56a8e0834832d6e3a9cec)
-
-commit f5aa492a338ff711f3a45e4ebbf0d6b187b5f78e
-Merge: fef70cb 84cb345
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 28 18:01:08 2014 -0700
-
- Merge pull request #1519 from ceph/wip-6951-dumpling
-
- rgw: reset objv tracker on bucket recreation
-
-commit fef70cbb52cf1ad12db45998b38858d9bbc3360d
-Merge: 9bfbce3 f443ff3
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 28 17:02:39 2014 -0700
-
- Merge pull request #1559 from ceph/wip-7881-dumpling
-
- Wip 7881 dumpling
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 80e0a0a8fee2f6f903f612734b2cc72eae703eae (refs/remotes/gh/wip-7888-dumpling)
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 27 21:33:21 2014 -0700
-
- mon/MonClient: use keepalive2 to verify the mon session is live
-
- Verify that the mon is responding by checking the keepalive2 reply
- timestamp. We cannot rely solely on TCP timing out and returning an
- error.
-
- Fixes: #7888
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 056151a6334c054505c54e59af40f203a0721f28)
-
-commit 8723218379e80725a449b0594a4b15eb1c236b05
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 27 21:09:13 2014 -0700
-
- msgr: add KEEPALIVE2 feature
-
- This is similar to KEEPALIVE, except a timestamp is also exchanged. It is
- sent with the KEEPALIVE, and then returned with the ACK. The last
- received stamp is stored in the Connection so that it can be queried for
- liveness. Since all of the users of keepalive are already regularly
- triggering a keepalive, they can check the liveness at the same time.
-
- See #7888.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d747d79fd5ea8662a809c5636dfd2eaaa9bf8f5d)
-
- Conflicts:
-
- src/include/ceph_features.h
-
-commit a2f0974f8b3567c0385494a0b2c828ade6ca8e1c
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Mar 26 15:58:10 2014 -0700
-
- Pipe: rename keepalive->send_keepalive
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 38d4c71a456c1cc9a5044dbcae5378836a34484d)
-
-commit 9bfbce30678742515025ca235c4443bb3a69199f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 26 21:52:00 2014 -0700
-
- client: pin Inode during readahead
-
- Make sure the Inode does not go away while a readahead is in progress. In
- particular:
-
- - read_async
- - start a readahead
- - get actual read from cache, return
- - close/release
- - call ObjectCacher::release_set() and get unclean > 0, assert
-
- Fixes: #7867
- Backport: emperor, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f1c7b4ef0cd064a9cb86757f17118d17913850db)
-
-commit 232445578a2c6d0fb974e55378057fce473095f7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 28 12:34:07 2014 -0700
-
- osdc/ObjectCacher: call read completion even when no target buffer
-
- If we do no assemble a target bl, we still want to return a valid return
- code with the number of bytes read-ahead so that the C_RetryRead completion
- will see this as a finish and call the caller's provided Context.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 032d4ec53e125ad91ad27ce58da6f38dcf1da92e)
-
-commit f443ff3006d41a7b0a2d7b649e8def0ffef6df12
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Oct 30 16:54:39 2013 -0700
-
- PGLog: remove obsolete assert in merge_log
-
- This assert assumes that if olog.head != log.head, olog contains
- a log entry at log.head, which may not be true since pg splitting
- might have left the log with arbitrary holes.
-
- Related: 0c2769d3321bff6e85ec57c85a08ee0b8e751bcb
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 353813b2e1a98901b876790c7c531f8a202c661d)
-
-commit 636e53c0f4fc43e9bfc1c8e7214cab9e0b46a359
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Sep 30 15:54:27 2013 -0700
-
- PGLog: on split, leave log head alone
-
- This way last_update doesn't go backwards.
-
- Fixes: 6447
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0c2769d3321bff6e85ec57c85a08ee0b8e751bcb)
-
-commit a0a560a9f04311306a9784fa3c6ea2586d637f56
-Merge: 466cd53 41d5e9a
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 26 17:18:24 2014 -0700
-
- Merge pull request #1539 from ceph/wip-6910-dumpling
-
- PG: don't query unfound on empty pgs
-
-commit 41d5e9ab39e69c80bec1cb0627004c3fae6dc81d
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Nov 26 19:17:59 2013 -0800
-
- PG: don't query unfound on empty pgs
-
- When the replica responds, it responds with a notify
- rather than a log, which the primary then ignores since
- it is already in the peer_info map. Rather than fix that
- we'll simply not send queries to peers we already know to
- have no unfound objects.
-
- Fixes: #6910
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 838b6c8387087543ce50837277f7f6b52ae87d00)
-
-commit 466cd536ed7e541a36d88bce43683a2d9e2ca283
-Merge: 2ef0d6a c188949
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 21 14:53:23 2014 -0700
-
- Merge pull request #1313 from ceph/dumpling-osd-subscribe
-
- Dumpling backport: clean up osd subscriptions
-
-commit 2ef0d6a25bf8c0cfb38768c157c29ba52295f3ca
-Merge: 77e46d0 bdd96c6
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Mar 21 14:52:20 2014 -0700
-
- Merge pull request #1485 from ceph/wip-7212.dumpling
-
- backport 7212 fixes to dumpling
-
-commit 84cb345e4f12a9b1db5e384411492a9d88f17dd8
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Feb 19 08:11:56 2014 -0800
-
- rgw: reset objv tracker on bucket recreation
-
- Fixes: #6951
- If we cannot create a new bucket (as it already existed), we need to
- read the old bucket's info. However, this was failing as we were holding
- the objv tracker that we created for the bucket creation. We need to
- clear it, as subsequent read using it will fail.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 859ed33ed7f9a96f4783dfb3e130d5eb60c622dd)
-
-commit 77e46d0d7984f2d3ee0e15f27d2961a637c20b45
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Nov 6 14:33:03 2013 -0800
-
- ReplicatedPG: don't skip missing if sentries is empty on pgls
-
- Formerly, if sentries is empty, we skip missing. In general,
- we need to continue adding items from missing until we get
- to next (returned from collection_list_partial) to avoid
- missing any objects.
-
- Fixes: #6633
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit c7a30b881151e08b37339bb025789921e7115288)
-
-commit bdd96c620f33fb8f48f30f8d543af3290e6c934a
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 15 08:59:51 2014 -0800
-
- mon/Elector: bootstrap on timeout
-
- Currently if an election times out we call a new
- election. If we have never joined a quorum, bootstrap
- instead. This is heavier weight, but captures the case
- where, during bootstrap:
-
- - a and b have learned each others' addresses
- - everybody calls an election
- - a and b form a quorum
- - c loops trying to call an election, but is ignored
- because a and b don't see its address in the monmap
-
- See logs:
- ubuntu@teuthology:/var/lib/teuthworker/archive/sage-2014-02-14_13:50:04-ceph-deploy-wip-7212-sage-b-testing-basic-plana/83194
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a4bcb1f8129a4ece97bd3419abf1ff45d260ad8e)
- (cherry picked from commit 143ec0281aa8b640617a3fe19a430248ce3b514c)
-
-commit 68fcc63c0423a2071b7b944ea6c3448282a78a09
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 14 11:25:52 2014 -0800
-
- mon: tell MonmapMonitor first about winning an election
-
- It is important in the bootstrap case that the very first paxos round
- also codify the contents of the monmap itself in order to avoid any manner
- of confusing scenarios where subsequent elections are called and people
- try to recover and modify paxos without agreeing on who the quorum
- participants are.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ad7f5dd481a7f45dfe6b50d27ad45abc40950510)
- (cherry picked from commit e073a062d56099b5fb4311be2a418f7570e1ffd9)
-
-commit a3e57b7231cb28c2e0a896f747537ebdbe3a4e96
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Feb 14 11:13:26 2014 -0800
-
- mon: only learn peer addresses when monmap == 0
-
- It is only safe to dynamically update the address for a peer mon in our
- monmap if we are in the midst of the initial quorum formation (i.e.,
- monmap.epoch == 0). If it is a later epoch, we have formed our initial
- quorum and any and all monmap changes need to be agreed upon by the quorum
- and committed via paxos.
-
- Fixes: #7212
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7bd2104acfeff0c9aa5e648d82ed372f901f767f)
- (cherry picked from commit 1996fd89fb3165a63449b135e05841579695aabd)
-
-commit 21ed54201bd4b0f02c07f6f96a63a5720057f011
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Mon Mar 17 14:37:09 2014 +0000
-
- ceph.in: do not allow using 'tell' with interactive mode
-
- This avoids a lot of hassle when dealing with to whom tell each command
- on interactive mode, and even more so if multiple targets are specified.
-
- As so, 'tell' commands should be used while on interactive mode instead.
-
- Backport: dumpling,emperor
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit e39c213c1d230271d23b74086664c2082caecdb9)
-
-commit be0205c33ccbab3b6f105bdf4da114658a981557
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Mar 12 22:56:44 2014 +0100
-
- RGWListBucketMultiparts: init max_uploads/default_max with 0
-
- CID 717377 (#1 of 1): Uninitialized scalar field (UNINIT_CTOR)
- 2. uninit_member: Non-static class member "max_uploads" is not initialized
- in this constructor nor in any functions that it calls.
- 4. uninit_member: Non-static class member "default_max" is not initialized
- in this constructor nor in any functions that it calls.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b23a141d54ffb39958aba9da7f87544674fa0e50)
-
-commit 6c3d4fbeb9cc50eca6eba12cfe7fed64b34eec3d
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Mar 13 14:49:30 2014 -0700
-
- ceph_test_rados: wait for commit, not ack
-
- First, this is what we wanted in the first place
-
- Second, if we wait for ACK, we may look at a user_version value that is
- not stable.
-
- Fixes: #7705
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f2124c5846f1e9cb44e66eb2e957b8c7df3e19f4)
-
- Conflicts:
-
- src/test/osd/RadosModel.h
-
-commit 2daed5ff99dab238b696da5aba3816c4f5d763e8
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Mar 13 09:50:16 2014 -0700
-
- test-upgrade-firefly: skip watch-notify system test
-
- This also fails on mixed version clusters due to watch on a
- non-existent object returning ENOENT in firefly and 0 in dumpling.
-
- Reviewed-by: Sage Weil <sage.weil@inktank.com>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 90a21d8cf6df5fe14b2dc9b2c175983b6bb017ce
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 12 21:30:12 2014 -0700
-
- qa/workunit/rados/test-upgrade-firefly: skip watch-notify test
-
- A watch on a non-existent object now returns ENOENT in firefly; skip this
- test as it will fail on a hybrid or upgraded cluster.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit 32fdca6d9c2e3b923db7f21568bd315ab2c1c4ad
-Merge: 6700dd0 cd7986c
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Mar 11 21:33:40 2014 -0700
-
- Merge pull request #1411 from ceph/wip-7076-dumpling
-
- dumpling backport of watchers check for rbd_remove()
-
-commit 6700dd068e236473343d15eee6307d44156958a3
-Author: Ray Lv <xiangyulv@gmail.com>
-Date: Wed Feb 26 21:17:32 2014 +0800
-
- rgw: off-by-one in rgw_trim_whitespace()
-
- Fixes: #7543
- Backport: dumpling
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Signed-off-by: Ray Lv <raylv@yahoo-inc.com>
- (cherry picked from commit 195d53a7fc695ed954c85022fef6d2a18f68fe20)
-
-commit cd7986caf6baee5f9d6498b113b3382e66dd6f77
-Author: Ilya Dryomov <ilya.dryomov@inktank.com>
-Date: Wed Jan 29 16:12:01 2014 +0200
-
- rbd: check for watchers before trimming an image on 'rbd rm'
-
- Check for watchers before trimming image data to try to avoid getting
- into the following situation:
-
- - user does 'rbd rm' on a mapped image with an fs mounted from it
- - 'rbd rm' trims (removes) all image data, only header is left
- - 'rbd rm' tries to remove a header and fails because krbd has a
- watcher registered on the header
- - at this point image cannot be unmapped because of the mounted fs
- - fs cannot be unmounted because all its data and metadata is gone
-
- Unfortunately, this fix doesn't make it impossible to happen (the
- required atomicity isn't there), but it's a big improvement over the
- status quo.
-
- Fixes: http://tracker.ceph.com/issues/7076
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
- (cherry picked from commit 0a553cfa81b06e75585ab3c39927e307ec0f4cb6)
-
-commit a931aaa6cc104d63b20c0cbe9e3af4006c3abfaf
-Merge: b476d32 f5668b3
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Mar 9 10:56:31 2014 -0700
-
- Merge pull request #1407 from dachary/wip-7188-dumpling
-
- common: ping existing admin socket before unlink (dumpling)
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit f5668b363b0724f385bebded3cbc7f363893f985
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Feb 15 11:43:13 2014 +0100
-
- common: ping existing admin socket before unlink
-
- When a daemon initializes it tries to create an admin socket and unlinks
- any pre-existing file, regardless. If such a file is in use, it causes
- the existing daemon to loose its admin socket.
-
- The AdminSocketClient::ping is implemented to probe an existing socket,
- using the "0" message. The AdminSocket::bind_and_listen function is
- modified to call ping() on when it finds existing file. It unlinks the
- file only if the ping fails.
-
- http://tracker.ceph.com/issues/7188 fixes: #7188
-
- Backport: emperor, dumpling
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 45600789f1ca399dddc5870254e5db883fb29b38)
-
-commit b476d324c69d4e6018191a7ffea8c9d6c1dfa008
-Merge: d3e13a7 5133dd6
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 5 14:19:31 2014 -0800
-
- Merge pull request #1366 from ceph/wip-6820.dumpling
-
- mon: OSDMonitor: don't crash if formatter is invalid during osd crush dump
-
-commit d3e13a7cdab42fa33182680f45fe21b4f9dc4b20
-Merge: c218c99 9c626e0
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Mar 5 12:45:57 2014 -0800
-
- Merge pull request #1377 from ceph/wip-7584
-
- qa/workunit/rados/test-upgrade-firely.sh
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 9c626e0b18f538eb60883da01713ba629220e35e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Mar 5 12:37:10 2014 -0800
-
- qa/workunit/rados/test-upgrade-firely.sh
-
- Skip the tests that don't pass when run against firefly OSDs.
-
- Fixes: #7584
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit c218c999ecebe41e6de6fde76e85cc765cad8257
-Merge: 0eabbf1 24711cd
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Mar 4 07:28:44 2014 -0800
-
- Merge pull request #1357 from ceph/wip-dumpling-removewq
-
- OSD: ping tphandle during pg removal
-
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 5133dd60e272d3fcbaacd5662a708ee4cf0db46d
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Nov 22 02:17:16 2013 +0000
-
- mon: OSDMonitor: don't crash if formatter is invalid during osd crush dump
-
- Code would assume a formatter would always be defined. If a 'plain'
- formatter or even an invalid formatter were to be supplied, the monitor
- would crash and burn in poor style.
-
- Fixes: 6820
- Backport: emperor
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 49d2fb71422fe4edfe5795c001104fb5bc8c98c3)
-
-commit 24711cd49f85dbe827d41c4bcad2700cd6c42ad7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Oct 15 13:11:29 2013 -0700
-
- OSD: ping tphandle during pg removal
-
- Fixes: #6528
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
-
- (cherry picked from commit c658258d9e2f590054a30c0dee14a579a51bda8c)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 0eabbf145e1c44f4d128b192cc77b708f180c968
-Merge: fe8915a 9d5d931
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Feb 25 15:47:05 2014 -0800
-
- Merge pull request #1316 from ceph/dumpling-6922
-
- Dumpling: Prevent extreme PG split multipliers
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit fe8915ae7e182340d1e22154e852895742c7da51
-Merge: 87822cc 5667566
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Feb 25 15:45:45 2014 -0800
-
- Merge pull request #1315 from ceph/dumpling-hashpspool
-
- mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set'
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 87822ccc862b533132c1fe232dfe4b7b17b816ad
-Merge: 0ae3352 37fbcb9
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Feb 25 15:44:39 2014 -0800
-
- Merge pull request #1314 from ceph/dumpling-osd-pgstatsack
-
- Dumpling osd pgstatsack
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 5667566313b69dca011e897b2fa752356ad8901b
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Oct 10 17:43:48 2013 -0700
-
- mon: OSDMonitor: allow (un)setting 'hashpspool' flag via 'osd pool set'
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1c2886964a0c005545abab0cf8feae7e06ac02a8)
-
- Conflicts:
-
- src/mon/MonCommands.h
- src/mon/OSDMonitor.cc
-
- mon: ceph hashpspool false clears the flag
- instead of toggling it.
- Signed-off-by: Loic Dachary <loic@dachary.org>
- Reviewed-by: Christophe Courtaut <christophe.courtaut@gmail.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 589e2fa485b94244c79079f249428d4d545fca18
-
- Replace some of the infrastructure required by this command that
- was not present in Dumpling with single-use code.
- Signed-off-by: Greg Farnum <greg@inktank.com>
-
-commit 9d5d931c60104823b3b20dcfb09480d65ffaa5ed
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Dec 3 10:57:09 2013 -0800
-
- OSDMonitor: use a different approach to prevent extreme multipliers on PG splits
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d8ccd73968fbd0753ca08916ebf1062cdb4d5ac1)
-
- Conflicts:
-
- src/mon/OSDMonitor.cc
-
-commit c0c4448dc7df7900a564a6745903398cd39be7f1
-Author: Greg Farnum <greg@inktank.com>
-Date: Mon Dec 2 15:13:40 2013 -0800
-
- OSDMonitor: prevent extreme multipliers on PG splits
-
- Fixes: #6922
- Backport: emperor
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f57dad6461171c903e8b5255eaed300374b00e74)
-
- Conflicts:
-
- src/mon/OSDMonitor.cc
-
-commit c1889497b93ae9f0a946b11d9f5f6fcc7427e934
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Feb 22 08:08:37 2014 -0800
-
- osd: fix off-by-one is boot subscription
-
- If we have osdmap N, we want to onetime subscribe
- starting at N+1. Among other things, it means we
- hear when the NOUP flag is cleared.
-
- This appears to have broken somewhere around
- 3c76b81f2f96b790b72f2088164ed8e9d5efbba1.
-
- Fixes: #7511
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Sam Just <sam.just@inktank.com>
- (cherry picked from commit 70d23b9a0ad9af5ca35a627a7f93c7e610e17549)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 4584f60653bee0305e85418323d80332ceecd0cf
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Feb 11 12:51:19 2014 -0800
-
- OSD: use the osdmap_subscribe helper
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3c76b81f2f96b790b72f2088164ed8e9d5efbba1)
-
-commit 61b2aeee7c37e03d5f6691c08c7760c48a85a2e1
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Feb 11 13:34:39 2014 -0800
-
- OSD: create a helper for handling OSDMap subscriptions, and clean them up
-
- We've had some trouble with not clearing out subscription requests and
- overloading the monitors (though only because of other bugs). Write a
- helper for handling subscription requests that we can use to centralize
- safety logic. Clear out the subscription whenever we get a map that covers
- it; if there are more maps available than we received, we will issue another
- subscription request based on "m->newest_map" at the end of handle_osd_map().
-
- Notice that the helper will no longer request old maps which we already have,
- and that unless forced it will not dispatch multiple subscribe requests
- to a single monitor.
- Skipping old maps is safe:
- 1) we only trim old maps when the monitor tells us to,
- 2) we do not send messages to our peers until we have updated our maps
- from the monitor.
- That means only old and broken OSDs will send us messages based on maps
- in our past, and we can (and should) ignore any directives from them anyway.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6db3ae851d1c936de045390d18b1c6ae95f2a209)
-
- Conflicts:
-
- src/osd/OSD.h
-
-commit d93d67d1a315d8abe8d1cd9d7ea83417a19e2406
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Feb 11 13:31:26 2014 -0800
-
- monc: new fsub_want_increment( function to make handling subscriptions easier
-
- Provide a subscription-modifying function which will not decrement
- the start version.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 5b9c187caf6f7847aaa4a1003d200158dd32bf63)
-
-commit 37fbcb958f79bbfcba57c516b4862a14c52be398
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Feb 12 11:30:15 2014 -0800
-
- OSD: disable the PGStatsAck timeout when we are reconnecting to a monitor
-
- Previously, the timeout counter started as soon as we issued the reopen,
- but if the reconnect process itself took a while, we might time out and
- issue another reopen just as we get to the point where it's possible to
- get work done. Since the mon client has its own reconnect timeouts (that is,
- the OSD doesn't need to trigger those), we instead disable our timeouts
- while the reconnect is happening, and then turn them back on again starting
- from when we get the reconnect callback.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 64cedf6fa3ee309cc96554286bfb805e4ca89439)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 9be395e870c50d97604ef41f17667cc566fd84e1
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Feb 12 13:51:48 2014 -0800
-
- monc: backoff the timeout period when reconnecting
-
- If the monitors are systematically slowing down, we don't want to spam
- them with reconnect attempts every three seconds. Instead, every time
- we issue a reconnect, multiply our timeout period by a configurable; when
- we complete the connection, reduce that multipler by 50%. This should let
- us respond to monitor load.
- Of course, we don't want to do that for initial startup in the case of a
- couple down monitors, so don't apply the backoff until we've successfully
- connected to a monitor at least once.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 794c86fd289bd62a35ed14368fa096c46736e9a2)
-
-commit 8f4c20bdab153d1603cc99186d8d3e3970aa8976
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Feb 12 13:37:50 2014 -0800
-
- monc: set "hunting" to true when we reopen the mon session
-
- If we don't have a connecton to a monitor, we want to retry to another
- monitor regardless of whether it's the first time or not.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 60da8abe0ebf17ce818d6fcc6391401878123bb7)
-
-commit c6317558e0d3c8c62aecee0d95a839f93303f681
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Feb 11 17:53:56 2014 -0800
-
- monc: let users specify a callback when they reopen their monitor session
-
- Then the callback is triggered when a new session is established, and the
- daemon can do whatever it likes. There are no guarantees about how long it
- might take to trigger, though. In particular we call the provided callback
- while not holding our own lock in order to avoid deadlock. This could lead
- to some funny ordering from the user's perspective if they call
- reopen_session() again before getting the callback, but there's no way around
- that, so they just have to use it appropriately.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1a8c43474bf36bfcf2a94bf9b7e756a2a99f33fd)
-
-commit 0ae335298b85daba5125a3da4ad26d598c76ecab (refs/remotes/gh/multi-object-delete)
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Feb 11 16:54:05 2014 -0800
-
- rgw: multi object delete should be idempotent
-
- Fixes: #7346
- When doing a multi object delete, if an object does not exist then we
- should return a success code for that object.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 8ca3d95bf633ea9616852cec74f02285a03071d5)
-
- Conflicts:
- src/rgw/rgw_op.cc
diff --git a/src/ceph/doc/changelog/v0.67.9.txt b/src/ceph/doc/changelog/v0.67.9.txt
deleted file mode 100644
index 8ae98cd..0000000
--- a/src/ceph/doc/changelog/v0.67.9.txt
+++ /dev/null
@@ -1,233 +0,0 @@
-commit ba340a97c3dafc9155023da8d515eecc675c619a (tag: refs/tags/v0.67.9, refs/remotes/gh/dumpling)
-Author: Jenkins <jenkins@inktank.com>
-Date: Wed May 21 16:57:02 2014 +0000
-
- 0.67.9
-
-commit b638d19d126646d2a8f6da11067c5f392a62525e
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Fri May 9 09:21:23 2014 +0000
-
- msg: Fix inconsistent message sequence negotiation during connection reset
-
- Backport: firefly, emperor, dumpling
-
- Signed-off-by: Guang Yang (yguang@yahoo-inc.com)
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit bdee119076dd0eb65334840d141ccdf06091e3c9)
-
-commit 55b1112819ed2e6fd509c09c2c1a2b434d22aac6
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 20 10:46:34 2014 -0700
-
- OSD::handle_pg_query: on dne pg, send lb=hobject_t() if deleting
-
- We will set lb=hobject_t() if we resurrect the pg. In that case,
- we need to have sent that to the primary before hand. If we
- finish the removal before the pg is recreated, we'll just end
- up backfilling it, which is ok since the pg doesn't exist anyway.
-
- Fixes: #7740
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 04de781765dd5ac0e28dd1a43cfe85020c0854f8)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 3b8ab41e1ec86f2ab5c6b4bee3fb4030077e2c21
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 2 14:48:35 2014 -0700
-
- mon/MonClient: remove stray _finish_hunting() calls
-
- Callig _finish_hunting() clears out the bool hunting flag, which means we
- don't retry by connection to another mon periodically. Instead, we send
- keepalives every 10s. But, since we aren't yet in state HAVE_SESSION, we
- don't check that the keepalives are getting responses. This means that an
- ill-timed connection reset (say, after we get a MonMap, but before we
- finish authenticating) can drop the monc into a black hole that does not
- retry.
-
- Instead, we should *only* call _finish_hunting() when we complete the
- authentication handshake.
-
- Fixes: #8278
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 77a6f0aefebebf057f02bfb95c088a30ed93c53f)
-
-commit a915350491092abcd2584d0bbb5f5d8610ed89fc
-Merge: bd5d6f1 d4e67ff
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 20 10:19:00 2014 -0700
-
- Merge pull request #1826 from ceph/wip-8162-dumpling
-
- Wip 8162 dumpling
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit bd5d6f116416d1b410d57ce00cb3e2abf6de102b
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu May 15 16:50:43 2014 -0700
-
- OSD: fix an osdmap_subscribe interface misuse
-
- When calling osdmap_subscribe, you have to pass an epoch newer than the
- current map's. _maybe_boot() was not doing this correctly -- we would
- fail a check for being *in* the monitor's existing map range, and then
- pass along the map prior to the monitor's range. But if we were exactly
- one behind, that value would be our current epoch, and the request would
- get dropped. So instead, make sure we are not *in contact* with the monitor's
- existing map range.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 290ac818696414758978b78517b137c226110bb4)
-
-commit c5ae8ffc281ac538dd0966a552a6cf729728e925
-Merge: fced056 8d991fa
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 19 13:45:50 2014 -0700
-
- Merge pull request #1827 from ceph/wip-6565-dumpling
-
- Wip 6565 dumpling
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit 8d991fa2c3fdbfd9178d93e4ca33d47504a37195
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Oct 16 10:07:37 2013 -0700
-
- OSD: check for splitting when processing recover/backfill reservations
-
- Fixes: 6565
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 15ec5332ba4154930a0447e2bcf1acec02691e97)
-
-commit d4e67ff3037a3cc7ae2ecc9e1d8d086c45ae515a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 8 13:25:32 2014 -0700
-
- ReplicatedPG::recover_backfill: do not update last_backfill prematurely
-
- Previously, we would update last_backfill on the backfill peer to
-
- backfills_in_flight.empty() ? backfill_pos :
- backfills_in_flight.begin()->first
-
- which is actually the next backfill to complete. We want to update
- last_backfill to the largest completed backfill instead.
-
- We use the pending_backfill_updates mapping to identify the most
- recently completed backfill. Due to the previous patch, deletes
- will also be included in that mapping.
-
- Related sha1s from master:
- 4139e75d63b0503dbb7fea8036044eda5e8b7cf1
- 7a06a71e0f2023f66d003dfb0168f4fe51eaa058
-
- We don't really want to backport those due to the changes in:
- 9ec35d5ccf6a86c380865c7fc96017a1f502560a
-
- This patch does essentially the same thing, but using backfill_pos.
-
- Fixse: #8162
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit d620b13c51fc69b509824177af32de55c89c2259
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Oct 28 16:03:25 2013 -0700
-
- ReplicatedPG: add empty stat when we remove an object in recover_backfill
-
- Subsequent updates to that object need to have their stats added
- to the backfill info stats atomically with the last_backfill
- update.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit ecddd12b01be120fba87f5ac60539f98f2c69a28)
-
-commit fced0562f6b80035cd522cc81bdc844ccc92d9bc
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 27 13:34:00 2013 -0800
-
- rgw: don't error out on empty owner when setting acls
-
- Fixes: #6892
- Backport: dumpling, emperor
- s3cmd specifies empty owner field when trying to set acls on object
- / bucket. We errored out as it didn't match the current owner name, but
- with this change we ignore it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 14cf4caff58cc2c535101d48c53afd54d8632104)
-
-commit 0e685c68aa6a500aa7fa433cd9b8246f70c5383e
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 21 15:34:04 2014 -0700
-
- rgw: send user manifest header field
-
- Fixes: #8170
- Backport: firefly
- If user manifest header exists (swift) send it as part of the object
- header data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 5cc5686039a882ad345681133c9c5a4a2c2fd86b)
-
-commit 20383e359cdfbf146838742fa050ec4b6073271d
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Fri Apr 11 15:03:37 2014 +0800
-
- client: add asok command to kick sessions that were remote reset
-
- Fixes: #8021
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit 09a1bc5a4601d356b9cc69be8541e6515d763861)
-
-commit 4e5e41deeaf91c885773d90e6f94da60f6d4efd3
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 18 13:50:11 2014 -0700
-
- osd: throttle snap trimmming with simple delay
-
- This is not particularly smart, but it is *a* knob that lets you make
- the snap trimmer slow down. It's a flow and a simple delay, so it is
- adjustable at runtime. Default is 0 (no change in behavior).
-
- Partial solution for #6278.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4413670d784efc2392359f0f22bca7c9056188f4)
-
-commit 14650b282ecd344025714a4e743b255ae01b3ce0
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Apr 1 16:01:28 2014 -0700
-
- PG: only complete replicas should count toward min_size
-
- Backport: emperor,dumpling,cuttlefish
- Fixes: #7805
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0d5d3d1a30685e7c47173b974caa12076c43a9c4)
-
-commit 3f1d7f5e0a67ad646de465335fb7ee00eb07e220
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 2 15:10:43 2014 -0700
-
- mon/PGMonitor: set tid on no-op PGStatsAck
-
- The OSD needs to know the tid. Both generally, and specifically because
- the flush_pg_stats may be blocking on it.
-
- Fixes: #8280
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 5a6ae2a978dcaf96ef89de3aaa74fe951a64def6)
diff --git a/src/ceph/doc/changelog/v0.72.2.txt b/src/ceph/doc/changelog/v0.72.2.txt
deleted file mode 100644
index 66fd667..0000000
--- a/src/ceph/doc/changelog/v0.72.2.txt
+++ /dev/null
@@ -1,189 +0,0 @@
-commit a913ded2ff138aefb8cb84d347d72164099cfd60
-Author: Gary Lowell <gary.lowell@inktank.com>
-Date: Fri Dec 20 19:28:37 2013 +0000
-
- v0.72.2
-
-commit b570c8014325fef590d16e6157cb33026155932c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Dec 18 13:11:01 2013 -0800
-
- rgw: fix use-after-free when releasing completion handle
-
- Backport: emperor, dumpling
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c8890ab2d46fe8e12200a0d2f9eab31c461fb871)
-
-commit 451381b4dba9d50fbee2accf5d75562615001ef3
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Dec 18 13:10:21 2013 -0800
-
- rgw: don't return data within the librados cb
-
- Fixes: #7030
- The callback is running within a single Finisher thread, thus we
- shouldn't block there. Append read data to a list and flush it within
- the iterate context.
-
- Reviewed-by: Sage Weil <sage@inktank.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d6a4f6adfaa75c3140d07d6df7be03586cc16183)
-
-commit c044b218cb32d7ef2f2aa5db81ebf38ad0dc1049
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Dec 1 22:21:31 2013 -0800
-
- Partial revert "mon: osd pool set syntax relaxed, modify unit tests"
-
- This reverts commit 08327fed8213a5d24cd642e12b38a171b98924cb, except
- for the hashpspool bit. We switched back to an integer argument in
- commit 337195f04653eed8e8f153a5b074f3bd48408998.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e80ab94bf44e102fcd87d16dc11e38ca4c0eeadb)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 1983ed8013637e9b80ca4a0e8d2800d6a36b120e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Nov 19 23:21:11 2013 +0000
-
- mon: OSDMonitor: drop cmdval_get() for unused variable
-
- We don't ever use any value as a float, so just drop obtaining it. This
- makes it easier to partially revert 2fe0d0d9 in an upcoming patch.
-
- Backport: emperor
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 7191bb2b2485c7819ca7b9d9434d803d0c94db7a)
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit 1c4759cebb11ae1aa84aa3cbdb2b31e6d111f28e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Nov 22 02:10:35 2013 +0000
-
- mon: OSDMonitor: receive CephInt on 'osd pool set' instead on CephString
-
- This partially reverts 2fe0d0d9 in order to allow Emperor monitors to
- forward mon command messages to Dumpling monitors without breaking a
- cluster.
-
- The need for this patch became obvious after issue #6796 was triggered.
- Basically, in a mixed cluster of Emperor/Dumpling monitors, if a client
- happens to obtain the command descriptions from an Emperor monitor and
- then issue an 'osd pool set' this can turn out in one of two ways:
-
- 1. client msg gets forwarded to an Emperor leader and everything's a-okay;
- 2. client msg gets forwarded to a Dumpling leader and the string fails to
- be interpreted without the monitor noticing, thus leaving the monitor with
- an uninitialized variable leading to trouble.
-
- If 2 is triggered, a multitude of bad things can happen, such as thousands
- of pg splits, due to a simple 'osd set pool foo pg_num 128' turning out
- to be interpreted as 109120394 or some other random number.
-
- This patch is such that we make sure the client sends an integer instead
- of a string. We also make sure to interpret anything the client sends as
- possibly being a string, or an integer.
-
- Fixes: 6796
- Backport: emperor
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 337195f04653eed8e8f153a5b074f3bd48408998)
- Reviewed-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit c2e467b42dfaecf082a3838b10e873f9f8bd5633
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Nov 25 13:43:43 2013 -0800
-
- init, upstart: prevent daemons being started by both
-
- There can be only one init system starting a daemon. If there is a
- host entry in ceph.conf for a daemon, sysvinit would try to start it
- even if the daemon's directory did not include a sysvinit file. This
- preserves backwards compatibility with older installs using sysvinit,
- but if an upstart file is present in the daemon's directory, upstart
- will try to start them, regardless of host entries in ceph.conf.
-
- If there's an upstart file in a daemon's directory and a host entry
- for that daemon in ceph.conf, both sysvinit and upstart would attempt
- to manage it.
-
- Fix this by only starting daemons if the marker file for the other
- init system is not present. This maintains backwards compatibility
- with older installs using neither sysvinit or upstart marker files,
- and does not break any valid configurations. The only configuration
- that would break is one with both sysvinit and upstart files present
- for the same daemon.
-
- Backport: emperor, dumpling
- Reported-by: Tim Spriggs <tims@uahirise.org>
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 5e34beb61b3f5a1ed4afd8ee2fe976de40f95ace)
-
-commit 8812c4e958b154ca401c7257fd48ccaffe013639
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Nov 27 13:34:00 2013 -0800
-
- rgw: don't error out on empty owner when setting acls
-
- Fixes: #6892
- Backport: dumpling, emperor
- s3cmd specifies empty owner field when trying to set acls on object
- / bucket. We errored out as it didn't match the current owner name, but
- with this change we ignore it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 14cf4caff58cc2c535101d48c53afd54d8632104)
-
-commit 69e055f367ae37dd771c050f158d684e2a3cb246
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Nov 22 07:04:01 2013 -0800
-
- rgw: lower some debug message
-
- Fixes: #6084
- Backport: dumpling, emperor
-
- Reported-by: Ron Allred <rallred@itrefined.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b35fc1bc2ec8c8376ec173eb1c3e538e02c1694e)
-
-commit 53951fd5459d6396b6ab59b52dc33df0ebcf4414
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Nov 12 15:15:26 2013 -0800
-
- ReplicatedPG: test for missing head before find_object_context
-
- find_object_context doesn't return EAGAIN for a missing head.
- I chose not to change that behavior since it might hide bugs
- in the future. All other callers check for missing on head
- before calling into find_object_context because we potentially
- need head or snapdir to map a snapid onto a clone.
-
- Backport: emperor
- Fixes: 6758
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Reviewed-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit dd9d8b020286d5e3a69455023c3724a7b436d687)
-
-commit 83ee6843de6432278dc2891526691006c51eb1fa
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Nov 18 14:39:12 2013 -0800
-
- osd: fix bench block size
-
- The command was declared to take 'size' in dumpling, but was trying to
- read 'bsize' instead, so it always used the default of 4MiB. Change
- the bench command to read 'size', so it matches what existing clients
- are sending.
-
- Fixes: #6795
- Backport: emperor, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 40a76ef0d09f8ecbea13712410d9d34f25b91935)
diff --git a/src/ceph/doc/changelog/v0.80.1.txt b/src/ceph/doc/changelog/v0.80.1.txt
deleted file mode 100644
index 70d6fd6..0000000
--- a/src/ceph/doc/changelog/v0.80.1.txt
+++ /dev/null
@@ -1,216 +0,0 @@
-commit a38fe1169b6d2ac98b427334c12d7cf81f809b74 (tag: refs/tags/v0.80.1)
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon May 12 15:12:54 2014 +0000
-
- 0.80.1
-
-commit ab873622c6d41bc8053a1d205da2e4b55e77351d
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon May 12 15:11:33 2014 +0000
-
- 0.80.1
-
-commit 03e7d1d550132a55e87972123d5bc3c0bb0cc981
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon May 12 15:10:56 2014 +0000
-
- 0.80.1
-
-commit 7a4919c7fa10020643df09e012376e4b563ca17d
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon May 12 15:09:01 2014 +0000
-
- 0.80.1
-
-commit ce852b29dc5cf9857a6bfeef7839293cfadf1877 (refs/remotes/gh/firefly)
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 2 16:21:26 2014 -0700
-
- Revert "ReplicatedPG: block scrub on blocked object contexts"
-
- This reverts commit e66f2e36c06ca00c1147f922d3513f56b122a5c0.
- Reviewed-by: Sage Weil <sage@inktank.com>
-
- 0f3235d46c8fd6c537bd4aa8a3faec6c00f311a8 is the firefly commit
- corresponding to e66f2e36c06ca00c1147f922d3513f56b122a5c0.
-
- (cherry picked from commit 84728058dbb91b8ed062240b3373b18078f0c9ca)
-
-commit db8873b69c73b40110bf1512c114e4a0395671ab
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue May 6 16:55:27 2014 -0700
-
- rgw: fix stripe_size calculation
-
- Fixes: #8299
- Backport: firefly
- The stripe size calculation was broken, specifically affected cases
- where we had manifest that described multiple parts.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 9968b938b5d47fdf3a67db134bd2ea6bf3a28086)
-
-commit e0fb2e63074d5f71679bb68656336f68e8190f39
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue May 6 11:06:29 2014 -0700
-
- rgw: cut short object read if a chunk returns error
-
- Fixes: #8289
- Backport: firefly, dumpling
- When reading an object, if we hit an error when trying to read one of
- the rados objects then we should just stop. Otherwise we're just going
- to continue reading the rest of the object, and since it can't be sent
- back to the client (as we have a hole in the middle), we end up
- accumulating everything in memory.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 03b0d1cfb7bd30a77fedcf75eb06476b21b14e95)
-
-commit 328665db17bf87d36a3dcbf5f0d0d1a9410e2f96
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 21 15:34:04 2014 -0700
-
- rgw: send user manifest header field
-
- Fixes: #8170
- Backport: firefly
- If user manifest header exists (swift) send it as part of the object
- header data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 5cc5686039a882ad345681133c9c5a4a2c2fd86b)
-
-commit cdb0fac29693fb0250b515891804c4c7fd3045c7
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Fri Apr 11 15:03:37 2014 +0800
-
- client: add asok command to kick sessions that were remote reset
-
- Fixes: #8021
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit 09a1bc5a4601d356b9cc69be8541e6515d763861)
-
-commit 4a91196bf49936471a731f9316ef904fda982b26
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Apr 18 13:50:11 2014 -0700
-
- osd: throttle snap trimmming with simple delay
-
- This is not particularly smart, but it is *a* knob that lets you make
- the snap trimmer slow down. It's a flow and a simple delay, so it is
- adjustable at runtime. Default is 0 (no change in behavior).
-
- Partial solution for #6278.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4413670d784efc2392359f0f22bca7c9056188f4)
-
-commit 3ba2e228db1829a02f9cd31225672604fdc8adf7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 2 14:48:35 2014 -0700
-
- mon/MonClient: remove stray _finish_hunting() calls
-
- Callig _finish_hunting() clears out the bool hunting flag, which means we
- don't retry by connection to another mon periodically. Instead, we send
- keepalives every 10s. But, since we aren't yet in state HAVE_SESSION, we
- don't check that the keepalives are getting responses. This means that an
- ill-timed connection reset (say, after we get a MonMap, but before we
- finish authenticating) can drop the monc into a black hole that does not
- retry.
-
- Instead, we should *only* call _finish_hunting() when we complete the
- authentication handshake.
-
- Fixes: #8278
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 77a6f0aefebebf057f02bfb95c088a30ed93c53f)
-
-commit 383f6440ce34b0d84c0dfa06f561896dad6862f4
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 2 16:41:26 2014 -0700
-
- osd/ReplicatedPG: fix trim of in-flight hit_sets
-
- We normally need to stat the hit_set to know how many bytes to adjust the
- stats by. If the hit_set was just written, we will get ENOENT.
-
- Get the obc instead, which will either get the in-memory copy (because the
- repop is still in flight) or load it off of disk.
-
- Fixes: #8283
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 72fdd557c35cb721d4b502c5a8f68c878f11a19c)
-
-commit ef35448e63916102261ff6198f2c0ab4e4a57e9b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 6 11:01:27 2014 -0700
-
- osd/ReplicatedPG: fix whiteouts for other cache mode
-
- We were special casing WRITEBACK mode for handling whiteouts; this needs to
- also include the FORWARD and READONLY modes. To avoid having to list
- specific cache modes, though, just check != NONE.
-
- Fixes: #8296
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3e387d62ed95898db8a7d7163c2bacc363b8f617)
-
-commit e7df73dd7aaf5a0b1171f73d6695d26cd25b7b35
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 1 16:53:17 2014 -0700
-
- osd: Prevent divide by zero in agent_choose_mode()
-
- Fixes: #8175
- Backport: firefly
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f47f867952e6b2a16a296c82bb9b585b21cde6c8)
-
-commit 022d467b5d6b77c17b6fdaeec8369cae61e9e5a4
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon Apr 21 23:52:04 2014 -0700
-
- osd, common: If agent_work() finds no objs to work on delay 5 (default) secs
-
- Add config osd_agent_delay_time of 5 seconds
- Honor delay by ignoring agent_choose_mode() calls
- Add tier_delay to logger
- Treat restart after delay like we were previously idle
-
- Fixes: #8113
- Backport: firefly
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit b7d31e5f5952c631dd4172bcb825e77a13fc60bc)
-
-commit 6a55c3bc3caf46652e962fa9434900fb494d1e6c
-Author: David Zafman <david.zafman@inktank.com>
-Date: Thu May 1 18:54:30 2014 -0700
-
- osd/ReplicatedPG: agent_work() fix next if finished early due to start_max
-
- Backport: firefly
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 9cf470cac8dd4d8f769e768f2de6b9eb67a3c3af)
-
-commit 1b899148a729235ab2835d368077f18e62a36a93
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Sat May 3 12:53:06 2014 +0800
-
- Fix clone problem
-
- When clone happened, the origin header also will be updated in GenericObjectMap,
- so the new header wraper(StripObjectHeader) should be updated too.
-
- Fix #8282
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 3aee1e0ffe0583f74c02d9c9e86c7fb267f3515c)
diff --git a/src/ceph/doc/changelog/v0.80.10.txt b/src/ceph/doc/changelog/v0.80.10.txt
deleted file mode 100644
index be82bcc..0000000
--- a/src/ceph/doc/changelog/v0.80.10.txt
+++ /dev/null
@@ -1,3308 +0,0 @@
-commit ea6c958c38df1216bf95c927f143d8b13c4a9e70 (tag: refs/tags/v0.80.10)
-Author: Jenkins <jenkins@inktank.com>
-Date: Thu Jun 18 09:48:56 2015 -0700
-
- 0.80.10
-
-commit 9b7f09e280b4610b9f85ac34ec014018f0e2e1d3
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 17 09:35:28 2015 -0700
-
- qa/workunits/rados/test-upgarde-v9.0.1: fix exclude syntax
-
- It's -, then a list of all exclusions separated by :. There are just 2.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 78d894a634d727a9367f809a1f57234e5e6935be)
-
-commit 4e28fbc52db7d808aeaede884f342beafb7fc581
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jun 16 21:05:29 2015 -0700
-
- qa/workunits/rados/test-upgrade-v9.0.1: skip one more evict test
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3e8d60a80ce31860eac76a1f6489a35e1795a0c0)
-
-commit 34ba3719997fed6d0b8148f21e59b446bdf42962
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Jun 15 15:12:43 2015 -0700
-
- qa: add compatibility filtered rados api tests for upgrades
-
- Post-9.0.1, the evict op returns success when an object doesn't exist
- in the cache tier. Skip the tests that are incompatible across
- versions.
-
- Fixes: #11548
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 348a3d3c9880e7d022e71a2faafe51c8f771406e)
-
-commit d1f478200342f422ee6e563bf7aad54ba38b3ed3
-Merge: d0f9c5f 7f1abd9
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 10 15:03:48 2015 -0700
-
- Merge pull request #4924 from ceph/wip-11955-firefly
-
- 11955: ceph.spec.in: package mkcephfs on EL6
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7f1abd9053088ded6613aeca4e7c9489c44910e4
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Jun 10 15:43:41 2015 -0600
-
- ceph.spec.in: package mkcephfs on EL6
-
- Commit efbca0465c2946e113771966df08cf7cf37b1196 added mkcephfs to the
- RPM %files listing, but this /usr/sbin path is only correct for CentOS
- 7. In CentOS 6, the utility is present at /sbin/mkcephfs instead. This
- causes rpmbuild to fail to build the tip of the firefly branch on EL6.
-
- Adjust the RPM %files list so we properly package mkcephfs on both EL7
- and EL6.
-
- http://tracker.ceph.com/issues/11955 Refs: #11955
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit d0f9c5f47024f53b4eccea2e0fde9b7844746362
-Merge: efbca04 9930138
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 4 19:07:03 2015 +0200
-
- Merge pull request #4851 from ceph/wip-10873-firefly
-
- rgw: generate the "Date" HTTP header for civetweb.
-
-commit 99301384be96997203682679c0430ca0a53be5d3 (refs/remotes/gh/wip-10873-firefly)
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Feb 18 15:48:43 2015 +0100
-
- rgw: generate the "Date" HTTP header for civetweb.
-
- Fixes: #10873
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit ea384f83b601f60e135c3d3f960fdb75a919dd84)
-
-commit efbca0465c2946e113771966df08cf7cf37b1196
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 3 13:03:50 2015 -0400
-
- ceph.spec: add mkcephfs to ceph.rpm
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit e785f1a2bb4cd77b0aaaccd78060183157ad842e
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Dec 2 13:58:10 2014 -0700
-
- packaging: package ceph-disk(8)
-
- The ceph-disk man page was added in
- a450cab2b8148cb8a9b043d629feccf89e5aabac, but this was not added to the
- RPM or DEB packaging. Add it here.
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit b743a951114b00bbb6e14fb88f1928b504bc0f8b)
-
-commit 819cf6ddb986b37c5d1229c4ea330010e88bb615
-Merge: e93711a 665a857
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jun 2 19:53:03 2015 +0300
-
- Merge pull request #4780 from oritwas/wip-10295-firefly
-
- rgw: civetweb should use unique request id
-
- Reviewd-by: Yehuda Sadeh <yehuda@rehat.com>
-
-commit e93711a40d680230b03fe722a4da49a6f9a9b667
-Merge: 071c943 50e8579
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jun 2 19:02:07 2015 +0300
-
- Merge pull request #4829 from oritwas/wip-negative_content_length-firefly
-
- rgw: don't allow negative / invalid content length
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 50e85797507a3ba13193f368cff461c08e44a9b3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Aug 1 16:15:36 2014 -0700
-
- rgw: don't allow negative / invalid content length
-
- Certain frontends (e.g., civetweb) don't filter such requests.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 0e74b7a1d56733358e2f1d3df4386125a94c2966)
-
-commit 071c94385ee71b86c5ed8363d56cf299da1aa7b3
-Merge: 68211f6 c632ef1
-Author: Sage Weil <sage@redhat.com>
-Date: Wed May 27 15:36:15 2015 -0700
-
- Merge pull request #4766 from SUSE/wip-11673-firefly
-
- Debian: ceph-test and rest-bench debug packages should require their respective binary packages
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 665a85701177230365e43a351d7722cb2adbde93
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Apr 23 17:36:47 2015 +0200
-
- rgw: civetweb should use unique request id
-
- max_req_id was moved to RGWRados and changed to atomic64_t.
-
- The same request id resulted in gc giving the same idtag to all objects
- resulting in a leakage of rados objects. It only kept the last deleted object in
- it's queue, the previous objects were never freed.
-
- Fixes: 10295
- Backport: Hammer, Firefly
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit c262259)
-
- Conflicts:
- src/rgw/rgw_main.cc
- src/rgw/rgw_rados.h
-
-commit c632ef13e05654d0e5ddc79fc7e9553cad8cbed0
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Mon May 18 10:50:58 2015 -0600
-
- debian: set rest-bench-dbg ceph-test-dbg dependencies
-
- Debian's debug packages ought to depend on their respective binary
- packages. This was the case for many of our ceph packages, but it was
- not the case for ceph-test-dbg or rest-bench-dbg.
-
- Add the dependencies on the relevant binary packages, pinned to
- "= ${binary:Version}" per convention.
-
- http://tracker.ceph.com/issues/11673 Fixes: #11673
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit f898ec1e4e3472b0202280f09653a769fc62c8d3)
-
-commit 68211f695941ee128eb9a7fd0d80b615c0ded6cf
-Merge: 7d11b19 cd8f183
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 18 14:25:59 2015 +0200
-
- Merge pull request #4697 from ceph/wip-11622-firefly
-
- Wip 11622 firefly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cd8f1830eb5d7ff75b17d7f0915ee4b3b834b149 (refs/remotes/gh/wip-11622-firefly)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 13 17:05:22 2015 -0700
-
- rgw: merge manifests correctly when there's prefix override
-
- Fixes: #11622
- Backport: hammer, firefly
-
- Prefix override happens in a manifest when a rados object does not
- conform to the generic prefix set on the manifest. When merging
- manifests (specifically being used in multipart objects upload), we need
- to check if the rule that we try to merge has a prefix that is the same
- as the previous rule. Beforehand we checked if both had the same
- override_prefix setting, but that might not apply as both manifests
- might have different prefixes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 389ae6739ddc6239a4dd7c5f7f9bfc9b645b8577)
-
-commit eef3d2f1c400573db90936fd417769183950b6ee
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 12 16:40:10 2015 -0700
-
- rgw: restore buffer of multipart upload after EEXIST
-
- Fixes #11604
- Backport: hammer, firefly
-
- When we need to restart a write of part data, we need to revert to
- buffer to before the write, otherwise we're going to skip some data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 580ccaec12daae64c38a1616d0be907bdd70a888)
-
-commit 7d11b19003503a9db1572d01f7a170e35b29017d
-Merge: 114f2e9 9b33965
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 15 10:27:42 2015 -0700
-
- Merge pull request #4414 from xinxinsh/wip-11125-firefly
-
- rgw: keystone token cache does not work correctly
-
-commit 114f2e9bb5665760a5be9816785508f1c97662d5
-Merge: ac7d28a f33effc
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri May 15 17:03:04 2015 +0200
-
- Merge pull request #4415 from xinxinsh/wip-11244-firefly
-
- cancel_pull: requeue waiters
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit ac7d28a6977084da0b70a3f2d0a54c8fa55b16fa
-Merge: f273792 1f6b1bb
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri May 15 17:02:27 2015 +0200
-
- Merge pull request #4416 from xinxinsh/wip-10976-firefly
-
- fix PG::all_unfound_are_queried_or_lost for non-existent osds
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f273792c675aca95694cd36794d8a854731bf308
-Merge: 8a6632b 019b28b
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri May 15 17:02:05 2015 +0200
-
- Merge pull request #4556 from xinxinsh/wip-11429-firefly
-
- OSD::load_pgs: we need to handle the case where an upgrade from earlier versions which ignored non-existent pgs resurrects a pg with a prehistoric osdmap
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8a6632b4e5ffad305f92c89656b161a521529e45
-Merge: 156c385 a71f309
-Author: Sage Weil <sage@redhat.com>
-Date: Thu May 14 09:50:28 2015 -0700
-
- Merge pull request #4638 from SUSE/wip-11453-firefly
-
- run RGW as root
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 019b28b6397dbc3111faa6a8eb57349a48f408d8
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Apr 20 23:45:57 2015 -0700
-
- OSD: handle the case where we resurrected an old, deleted pg
-
- Prior to giant, we would skip pgs in load_pgs which were not present in
- the current osdmap. Those pgs would eventually refer to very old
- osdmaps, which we no longer have causing the assertion failure in 11429
- once the osd is finally upgraded to a version which does not skip the
- pgs. Instead, if we do not have the map for the pg epoch, complain to
- the osd log and skip the pg.
-
- Fixes: 11429
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit fbfd50de5b9b40d71d2e768418a8eca28b1afaca)
-
- Conflicts:
- src/osd/OSD.cc
- resolved by add a new comment line
-
-commit 156c385ef726e56d219c3383a4015c50aec2758a
-Merge: fcd0ea3 8cc4bc1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue May 12 13:57:36 2015 +0200
-
- Merge pull request #4379 from ceph/wip-11416
-
- rgw: use correct objv_tracker for bucket instance
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a71f3091a4ea810c02517642fb4ab9ce5516b452
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Apr 22 16:36:42 2015 -0600
-
- init-radosgw: run RGW as root
-
- The ceph-radosgw service fails to start if the httpd package is not
- installed. This is because the init.d file attempts to start the RGW
- process with the "apache" UID. If a user is running civetweb, there is
- no reason for the httpd or apache2 package to be present on the system.
-
- Switch the init scripts to use "root" as is done on Ubuntu.
-
- http://tracker.ceph.com/issues/11453 Refs: #11453
-
- Reported-by: Vickey Singh <vickey.singh22693@gmail.com>
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 47339c5ac352d305e68a58f3d744c3ce0fd3a2ac)
-
-commit fcd0ea3383582e7a1dc8091e7a48e1d4bbaa76ee
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Fri May 8 11:29:44 2015 -0700
-
- workunits: remove defunct cephfs set_layout test
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit df053b86a89edf8f390400dad8c5e654e14df327
-Merge: aef0272 62645d3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 6 13:07:11 2015 -0700
-
- Merge pull request #4571 from ceph/wip-11256-firefly
-
- Wip 11256 firefly
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit aef0272d72afaef849b5d4acbf55626033369ee8
-Author: Noah Watkins <noahwatkins@gmail.com>
-Date: Fri Mar 27 19:34:12 2015 -0700
-
- java: libcephfs_jni.so is in /usr/lib64 on rhel
-
- Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
- (cherry picked from commit aed3434dc7c5161c72c7d5655faa3bc693fc9777)
-
-commit a551a23d36e3f30ff5b0679a98ee760166ae47ae
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Mar 2 21:04:25 2015 +0800
-
- qa/workunits/fs/misc: fix filelock_interrupt.py
-
- Handle the case that kernel does not support fcntl.F_OFD_SETLK.
- Also fix the code that checks if fnctl fails with errno == EINTR.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4ececa3dc4a21b98f61a592da9e2be60a0d71625)
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 07031b151b4ac6677b1f663ac200d09088deff64
-Merge: 83f8d43 3fb97e2
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Apr 30 00:32:21 2015 +0200
-
- Merge pull request #4385 from xinxinsh/wip-11199-firefly
-
- osd: ENOENT on clone
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 83f8d434a5c245711922ea43a962160177aa5a40
-Merge: f1425e0 29bc9e5
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Apr 30 00:31:48 2015 +0200
-
- Merge pull request #4384 from xinxinsh/wip-11197-firefly
-
- pg stuck stale after create with activation delay
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f1425e093e00343a5ae4b9ff56911bf654a5c152
-Merge: e980e00 69d9339
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Apr 30 00:31:32 2015 +0200
-
- Merge pull request #4382 from xinxinsh/wip-10718-firefly
-
- osd/PGLog.h: 279: FAILED assert(log.log.size() == log_keys_debug.size())
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e980e0036909afc392f9bdf5532ce500af602c2f
-Merge: b36229b 110c354
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Apr 30 00:23:04 2015 +0200
-
- Merge pull request #4185 from ldachary/wip-11156-firefly
-
- FAILED assert(soid < scrubber.start || soid >= scrubber.end)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit b36229b5aeec669cd1494f47120ae207a393846f
-Merge: da75978 20c2175
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Apr 28 08:11:18 2015 -0700
-
- Merge pull request #4475 from ceph/wip-9538.firefly
-
- mon: OSDMonitor: fallback to json-pretty in case of invalid formatter
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 20c2175352c9d4e4d0e709d294fe6fe0695761cc
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Sep 19 15:28:36 2014 +0200
-
- mon: osd find / metadata --format plain fallback
-
- ceph --format plain osd find 1 (and metadata) are not implemented and
- must fallback to the default (json-pretty).
-
- http://tracker.ceph.com/issues/9538 Fixes: #9538
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 13780d755115387591888f94ea6c58ac0db3ecc4)
-
-commit da759784ebda11275106c3b280f1d32b64ade00a
-Merge: 1a10a7e e1d5773
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Apr 27 10:30:49 2015 -0700
-
- Merge pull request #4453 from ceph/wip-11454
-
- PG::actingset should be used when checking the number of acting OSDs for...
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1a10a7eac190249a41b5200f0cc5e3863e76c31d
-Merge: a860e2b b9da6f1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Apr 27 10:14:00 2015 +0200
-
- Merge pull request #4245 from ceph/wip-11113-firefly
-
- librbd: snap_remove should ignore -ENOENT errors
-
- Reviewed-by: Shu, Xinxin <xinxin.shu@intel.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a860e2b3c02ef4f1402b54b08a6bacd4b02cc07f
-Merge: dd15e54 364563a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Apr 27 10:12:40 2015 +0200
-
- Merge pull request #4206 from ceph/wip-5488-firefly
-
- librbd: acquire cache_lock before refreshing parent
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit dd15e54b2fae134126e9795a8a973e391c628eb7
-Merge: 51ff2b6 5404fbf
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Apr 27 10:09:23 2015 +0200
-
- Merge pull request #3963 from dachary/wip-10153-firefly
-
- Rados.shutdown() dies with Illegal instruction (core dumped)
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 51ff2b60dc576fb444bcfea8f6cd3e12043ed5b8
-Merge: 12143ff c0cfd6e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Apr 27 10:08:15 2015 +0200
-
- Merge pull request #4383 from xinxinsh/wip-11144-firefly
-
- erasure-code-profile set races with erasure-code-profile rm
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1f6b1bb51d0b40899155313165ac5e3a21dde11a
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Mar 3 08:45:58 2015 +0200
-
- osd: fix PG::all_unfound_are_queried_or_lost for non-existent osds
-
- A common mistake upon osd loss is to remove the osd from the crush map
- before marking the osd lost. This tends to make it so that the user
- can no longer mark the osd lost to satisfy all_unfound_are_queried_or_lost.
-
- The simple solution is for all_unfound_are_queried_or_lost to ignore
- the osd if it does not exist.
-
- Fixes: #10976
- Backports: firefly,giant
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 5bb51320138ff714806d24312149f6275d546608)
-
-commit e1d57730ddfc92b17562080b10bc22fceb86539a
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Mon Sep 29 08:21:10 2014 +0000
-
- PG::actingset should be used when checking the number of acting OSDs for a given PG.
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
-
- (cherry picked from commit 19be358322be48fafa17b28054619a8b5e7d403b)
-
- Conflicts:
- src/osd/PG.cc PG::get_backfill_priority() doesn't exist in firefly
- Variation in code related to no "undersized" state in firefly
-
- Fixes: #11454
-
-commit f33effccc0592fddfcd9c5c2f5c3385462aa9b84
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Mar 26 10:26:48 2015 -0700
-
- ReplicatedPG::cancel_pull: requeue waiters as well
-
- If we are in recovery_wait, we might not recover that object as part of
- recover_primary for some time. Worse, if we are waiting on a backfill
- which is blocked waiting on a copy_from on the missing object in
- question, it can become a dead lock.
-
- Fixes: 11244
- Backport: firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 0b2e272430dd7433e6763be99b8a4cb127d9be19)
-
-commit 9b3396516c00ef931bab2d4aa6288ad974ec579d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 3 11:03:35 2015 -0800
-
- rgw: update keystone cache with token info
-
- Fixes: #11125
- Backport: hammer, firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6616294aa140ceb83cc61c6ab6f9947636f5e67d)
-
-commit 8cc4bc162c8c1c240e62840d968b967f5f47b682 (refs/remotes/gh/wip-11416)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Dec 17 17:12:43 2014 -0800
-
- rgw: use correct objv_tracker for bucket instance
-
- When trying to create a bucket that already existed, use the
- objv_tracker of the newly created instance, and not of the original
- bucket.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fe158ecc25feefcea8aea4133118e4a84900a8ec)
-
-commit c0cfd6e56ca9d17241da159295bcee7cf44c9ba3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 18 14:17:00 2015 +0100
-
- osd: erasure-code-profile incremental rm before set
-
- It is possible for an incremental change to have both a rm and a set for
- a given erasure code profile. It only happens when a rm is followed by a
- set. When a set is followed by a rm, the rm will remove the pending set
- in the incremental change.
-
- The logic is the same for pool create and pool delete.
-
- We must apply the incremental erasure-code-profile removal before the
- creation otherwise rm and set in the same proposal will ignore the set.
-
- This fix is minimal. A better change would be that erasure-code-profile
- set checks if there is a pending removal and wait_for_finished_proposal
- before creating.
-
- http://tracker.ceph.com/issues/11144 Fixes: #11144
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 0d52aca0d0c302983d03b0f5213ffed187e4ed63)
-
- Conflicts:
- src/osd/OSDMap.cc
- resolved by replacing i++ with ++i
-
-commit 3fb97e25b194e92112077385b10381801e02ddb9
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Mar 24 15:14:34 2015 -0700
-
- ReplicatedPG: trim backfill intervals based on peer's last_backfill_started
-
- Otherwise, we fail to trim the peer's last_backfill_started and get bug 11199.
-
- 1) osd 4 backfills up to 31bccdb2/mira01213209-286/head (henceforth: foo)
-
- 2) Interval change happens
-
- 3) osd 0 now finds itself backfilling to 4 (lb=foo) and osd.5
- (lb=b6670ba2/mira01213209-160/snapdir//1, henceforth: bar)
-
- 4) recover_backfill causes both 4 and 5 to scan forward, so 4 has an interval
- starting at foo, 5 has an interval starting at bar.
-
- 5) Once those have come back, recover_backfill attempts to trim off the
- last_backfill_started, but 4's interval starts after that, so foo remains in
- osd 4's interval (this is the bug)
-
- 7) We serve a copyfrom on foo (sent to 4 as well).
-
- 8) We eventually get to foo in the backfilling. Normally, they would have the
- same version, but of course we don't update osd.4's interval from the log since
- it should not have received writes in that interval. Thus, we end up trying to
- recover foo on osd.4 anyway.
-
- 9) But, an interval change happens between removing foo from osd.4 and
- completing the recovery, leaving osd.4 without foo, but with lb >= foo
-
- Fixes: #11199
- Backport: firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1388d6bd949a18e8ac0aecb0eb79ffb93d316879)
-
-commit 29bc9e56a978d4e18a507e71858baa21037964c4
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Mar 24 10:48:02 2015 -0700
-
- PG: set/clear CREATING in Primary state entry/exit
-
- Previously, we did not actually set it when we got a pg creation message from
- the mon. It would actually get set on the first start_peering_interval after
- that point. If we don't get that far, but do send a stat update to the mon, we
- can end up with 11197. Instead, let's just set it and clear it upon entry into
- and exit from the Primary state.
-
- Fixes: 11197
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit ddf0292250dfb1040d3cad96fa2cf886fd65933c)
-
-commit 12143ff9b25fdd96f8d1a9cecb1329c7f354d414
-Merge: 53eff01 bf1d8e8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Apr 6 10:24:06 2015 -0700
-
- Merge pull request #4275 from jeanchlopez/wip-11160-firefly
-
- rgw: shouldn't need to disable rgw_socket_path if frontend is configured
-
-commit bf1d8e888439df75feadde76bafe7d07d0e8481a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Mar 18 20:49:13 2015 -0700
-
- rgw: don't use rgw_socket_path if frontend is configured
-
- Fixes: #11160
- Backport: hammer, firefly
-
- Previously if we wanted to use the tcp fcgi socket, we needed to clear
- rgw_socket_path.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 53eff01f1e7ecd3783bb05c47588a134d4fededc
-Merge: 899738e 80afc5e
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Apr 1 16:30:23 2015 -0700
-
- Merge pull request #4247 from ceph/wip-11303
-
- Fix do_autogen.sh so that -L is allowed
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 80afc5eca293e5e2f168f219931a2f554040cdd8
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Apr 1 19:10:33 2015 -0400
-
- Fix do_autogen.sh so that -L is allowed
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
-
-commit b9da6f1025683d240baa73a9fcccbf2780035231
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Mar 16 18:40:49 2015 -0400
-
- librbd: snap_remove should ignore -ENOENT errors
-
- If the attempt to deregister the snapshot from the parent
- image fails with -ENOENT, ignore the error as it is safe
- to assume that the child is not associated with the parent.
-
- Fixes: #11113
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit cf8094942ccdba831e03e5a79451cfa5d78a135f)
-
-commit b250b3cfae69f4e8354027fae26fd85a792da0df
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Mar 16 18:35:07 2015 -0400
-
- librbd: get_parent_info should protect against invalid parent
-
- get_parent_info should return -ENOENT if the image does not
- have an associated parent image.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 21afd0ef8e1fb81c5ace5fd403513c542e2413e3)
-
-commit 69d9339fb352342a87e1148e9b5161246b27776a
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 2 09:07:27 2015 -0800
-
- PGLog: improve PGLog::check() debugging
-
- Related: 10718
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c656bcec2441c90b084ca50a17c37625d69942a1)
-
-commit 73cbb6f34a5a556dbbd4db2e6f81391d83447efd
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Mar 17 10:07:03 2015 -0700
-
- PGLog::merge_log: in tail extend case, log.log might be empty
-
- Even if the tail != last_update, the log might be empty due to split
- moving all entries into other logs.
-
- Fixes: 10718
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f5a2aef3db29b99634250fd388a0c2d9b9a23d38)
-
-commit 62645d30b0ceee075a56bc692fd65cee85b09aa5 (refs/remotes/gh/wip-11256-firefly)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Mar 30 17:34:57 2015 -0700
-
- cls_rgw: use multimap to keep pending operations in bucket index
-
- Fixes: #11256
- Multiple concurrent requests might be sent using the same tag, need the
- entry map to be able to hold multiple entries.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 7538319dd7aa80a3318c108d345dee8044cf20a8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Mar 27 16:32:48 2015 -0700
-
- rgw: generate new tag for object when setting object attrs
-
- Fixes: #11256
- Backport: firefly, hammer
-
- Beforehand we were reusing the object's tag, which is problematic as
- this tag is used for bucket index updates, and we might be clobbering a
- racing update (like object removal).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 364563aac979fdf5ccbb6c588051d097a26bc594
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Mar 16 11:04:22 2015 -0400
-
- librbd: acquire cache_lock before refreshing parent
-
- cache_lock needs to be acquired before snap_lock to avoid
- the potential for deadlock.
-
- Fixes: #5488
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 110c35498942ea0feec395b6e7992f802dd740ce
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Mar 20 15:28:15 2015 -0700
-
- ReplicatedPG::promote_object: check scrubber and block if necessary
-
- Otherwise, we might attempt to promote into an in-progress scrub
- interval causing 11156. I would have added a return value to
- promote_object(), but could not find an existing user which
- cared to distinguish the cases, even with a null op passed.
- All existing users are in maybe_handle_cache. The ones which
- pass a null op are for promoting the object in parallel
- with a proxy -- a case where not actually performing the promote
- does not really matter.
-
- Fixes: #11156
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 65bb4df599541cd2e0f195b905f24f529e255c00)
-
-commit 899738e10e82b50dcf7dfffe5cc83937179bf323
-Merge: 15acfe7 9437cb1
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 23 20:38:43 2015 +0100
-
- Merge pull request #4126 from dzafman/wip-11176-firefly
-
- ceph-objectstore-tool: Output only unsupported features when incomatible
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 15acfe7f226ca7bc2c942d5fbcd3a40bd41e5930
-Merge: 6c95cd2 cddbff9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat Mar 21 11:38:28 2015 +0100
-
- Merge pull request #4079 from dachary/wip-11157-firefly
-
- doc,tests: force checkout of submodules
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 6c95cd24f6f4a1a933f8799754831e7a5c0a725d
-Merge: ea79a3b 43053fc
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Fri Mar 20 21:06:17 2015 -0700
-
- Merge pull request #4129 from dzafman/wip-11139-firefly
-
- ceph-objectstore-tool: Use exit status 11 for incompatible import attemp...
-
-commit 43053fcd8969c406969fef67613aa37ad1cc86bf
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 20 17:48:01 2015 -0700
-
- ceph-objectstore-tool: Use exit status 11 for incompatible import attempt
-
- This is used so upgrade testing doesn't generate false failure.
- Fixes: #11139
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 175aff8afe8215547ab57f8d8017ce8fdc0ff543)
-
-commit 9437cb1b284ec9366b51d660396c2c8a9366b31f
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 20 16:57:40 2015 -0700
-
- ceph-objectstore-tool: Output only unsupported features when incomatible
-
- Fixes: #11176
- Backport: firefly, giant
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5b23f5b5892b36fb7d06efc0d77e64a24ef6e8c9)
-
-commit ea79a3b122917ddf5dc1972bb9dc5b20f78e2f18
-Merge: c1c20d8 07fc9f6
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Mar 20 08:44:39 2015 +0100
-
- Merge pull request #3970 from ceph/firefly-11053
-
- mds: fix assertion caused by system clock backwards
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit c1c20d89d511499d678fdba0667581e88b9b5d95
-Merge: 2fbb9a6 63b39db
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Mar 20 08:42:58 2015 +0100
-
- Merge pull request #4021 from ceph/wip-7737-firefly
-
- osd: fix negative degraded objects during backfilling
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 2fbb9a63a82ac5136b033799aec303fc151b25e5
-Merge: 3160e8d 2c7eda6
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Mar 20 08:38:26 2015 +0100
-
- Merge pull request #3952 from dachary/wip-9986-firefly
-
- objecter: fix map skipping
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 3160e8d6918a04d1fec9fdccbc30bf007c7940c6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Mar 18 20:55:24 2015 -0700
-
- init-radosgw*: don't require rgw_socket_path to be defined
-
- Fixes: #11159
- Backport: hammer, firefly
-
- Scripts required rgw_socket_path to exist in order to start radosgw.
- This is not needed.
-
- Reported-by: Dan Mick <dmick@redhat.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6823bcdcd0ce72cd223e809291f46d82da76115c)
-
-commit cddbff9a3653d6257d13e0ac411cd6e4cd71feef
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Mar 19 00:32:39 2015 +0100
-
- doc,tests: force checkout of submodules
-
- When updating submodules, always checkout even if the HEAD is the
- desired commit hash (update --force) to avoid the following:
-
- * a directory gmock exists in hammer
- * a submodule gmock replaces the directory gmock in master
- * checkout master + submodule update : gmock/.git is created
- * checkout hammer : the gmock directory still contains the .git from
- master because it did not exist at the time and checkout won't
- remove untracked directories
- * checkout master + submodule update : git rev-parse HEAD is
- at the desired commit although the content of the gmock directory
- is from hammer
-
- http://tracker.ceph.com/issues/11157 Fixes: #11157
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit 63b39dbd529936e60d0fd08dffd35f82b3d1729c (refs/remotes/gh/wip-7737-firefly)
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Thu Feb 26 08:13:12 2015 +0000
-
- osd: fix negative degraded objects during backfilling
-
- When there is deleting requests during backfilling, the reported number of degraded
- objects could be negative, as the primary's num_objects is the latest (locally) but
- the number for replicas might not reflect the deletings. A simple fix is to ignore
- the negative subtracted value.
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit 14d7e36d3c978844da73d0e1c8a3a1ec863bac15)
-
- Conflicts:
- src/osd/PG.cc
-
-commit 493d285508914769cba3639b601ae6c20303af0d
-Merge: 9839726 8a25a51
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:20:36 2015 +0100
-
- Merge pull request #3966 from theanalyst/wip-10698-backport
-
- rgw: fail s3 POST auth if keystone not configured
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 9839726f009a3189013a23e8226d2f7618f1d56b
-Merge: dab85cb 651dc55
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:19:22 2015 +0100
-
- Merge pull request #3934 from dachary/wip-10665-firefly
-
- rgw: Swift API. Dump container's custom metadata.
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit dab85cb7fcc5770fe4d6f075cf583a33ea335aa3
-Merge: 0e55046 d0fd417
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:18:59 2015 +0100
-
- Merge pull request #3929 from dachary/wip-10475-firefly
-
- rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 0e550461666d6e3d32981f99c8327931a6bd6d62
-Merge: 1ca6dd9 963439f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:18:24 2015 +0100
-
- Merge pull request #3938 from dachary/wip-10770-firefly
-
- rgw: send appropriate op to cancel bucket index pending operation
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 1ca6dd9676014a81983bd397e3154bf53243c7f2
-Merge: 66327d6 34d19e1
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:17:56 2015 +0100
-
- Merge pull request #3961 from dachary/wip-10106-firefly
-
- rgw: flush xml header on get acl request
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 66327d69a9bfa875d58b063c180a11b2769a093e
-Merge: de45d9e 9074eb7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 23:16:53 2015 +0100
-
- Merge pull request #3958 from dachary/wip-10062-firefly
-
- rgw: check for timestamp for s3 keystone auth
-
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
- Reviewed-by: Valery Tschopp <valery.tschopp@switch.ch>
-
-commit de45d9e2606d8fb6ea5533521163669e748e7d01
-Merge: 308f758 8ef14fc
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 17:00:27 2015 +0100
-
- Merge pull request #3942 from dachary/wip-10844-firefly
-
- mon: MonCap: take EntityName instead when expanding profiles
-
- Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
-
-commit 308f758f49d28c012f3ba765519144e5ea5794e6
-Merge: c59a081 ca42905
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:53:48 2015 +0100
-
- Merge pull request #3936 from dachary/wip-10724-firefly
-
- backport ceph-disk man page to Firefly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c59a08135c35072fa05104e26b500553e800cdd1
-Merge: 331acae 8ec8f11
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:50:39 2015 +0100
-
- Merge pull request #3940 from dachary/wip-8753-firefly
-
- ReplicatedPG::on_change: clean up callbacks_for_degraded_object
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 331acae4d6b34bb047c914945a2d9c0d9c7b9562
-Merge: fc364a7 4e32ff2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:49:56 2015 +0100
-
- Merge pull request #3827 from dachary/wip-10259-firefly
-
- osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::o...
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit fc364a76f85eb5016ea460e5fd9c1603df374bcf
-Merge: 31d99d2 b0d0d44
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:48:02 2015 +0100
-
- Merge pull request #3962 from dachary/wip-10150-firefly
-
- ReplicatedPG::scan_range: an object can disappear between the list and t...
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 31d99d2de714eb4a8eeb4a431cbc0d40ca749f15
-Merge: 45f0870 5865411
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:45:32 2015 +0100
-
- Merge pull request #3948 from dachary/wip-9891-firefly
-
- DBObjectMap: lock header_lock on sync()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 45f087032e27c63dc459318717b05fe5f9888664
-Merge: 3050262 6207333
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:43:48 2015 +0100
-
- Merge pull request #3949 from dachary/wip-9915-firefly
-
- osd: cache tiering: fix the atime logic of the eviction
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3050262d7dcb8ac20b9f86544461bb59f4b87cf5
-Merge: c0abc4d 0f31388
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:40:12 2015 +0100
-
- Merge pull request #3944 from dachary/wip-9193-firefly
-
- messages/MWatchNotify: include an error code in the message
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit c0abc4d769afd00773a9f466ffd3feced9cdb17d
-Merge: f9acd3a f856739
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:39:41 2015 +0100
-
- Merge pull request #3943 from dachary/wip-8011-firefly
-
- ReplicatedPG: fail a non-blocking flush if the object is being scrubbed
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f9acd3ad7397ac1e745beeeaf21b55ecd95484a1
-Merge: f95d327 ca96b59
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:39:16 2015 +0100
-
- Merge pull request #3941 from dachary/wip-10817-firefly
-
- WorkQueue: make wait timeout on empty queue configurable
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f95d327cbc0750cfb77114c66082ddd5fc458b94
-Merge: 32de8ab 3782b8b
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:38:42 2015 +0100
-
- Merge pull request #3937 from dachary/wip-10762-firefly
-
- mon: ignore osd failures from before up_from
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 32de8ab146f242f7b73aca211f059bc39d38f85c
-Merge: 24a8c10 6fd3dfa
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:38:22 2015 +0100
-
- Merge pull request #3933 from dachary/wip-10617-firefly
-
- osd: do not ignore deleted pgs on startup
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 24a8c10a5a215c60b525f4170e45565390e02231
-Merge: f4e76c3 368a5a8
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:38:01 2015 +0100
-
- Merge pull request #3932 from dachary/wip-10546-firefly
-
- mon: Monitor: fix timecheck rounds period
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f4e76c3db90bf383c02cdb8cca19a37cd187095b
-Merge: fa518ff 66b13f2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:37:36 2015 +0100
-
- Merge pull request #3931 from dachary/wip-10512-firefly
-
- osd: requeue blocked op before flush it was blocked on
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit fa518ffc5961785f01f0f91980c38a7e02686901
-Merge: ac9980e a22aa8f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:37:05 2015 +0100
-
- Merge pull request #3930 from dachary/wip-10497-firefly
-
- librados: Translate operation flags from C APIs
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ac9980e074adf587b8b16af0bd08b3fc3233804d
-Merge: ccebb5f d3de8a5
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:31:40 2015 +0100
-
- Merge pull request #3955 from dachary/wip-10059-firefly
-
- PG: always clear_primary_state
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit ccebb5f90bea0fd3bac1bd7ab93e5e07700f1301
-Merge: a30379d f4bab86
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:31:16 2015 +0100
-
- Merge pull request #3954 from dachary/wip-10014-firefly
-
- ObjectStore: Don't use largest_data_off to calc data_align.
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a30379d9af89cffa4b3083ae14a94e3758c2b01c
-Merge: e575ca8 eb03e79
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:25:59 2015 +0100
-
- Merge pull request #3947 from dachary/wip-9555-firefly
-
- osd: check that source OSD is valid for MOSDRepScrub
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e575ca84419f8be5c7fae7e2ffac549956a74f82
-Merge: cd675bb c60da2f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:25:30 2015 +0100
-
- Merge pull request #3964 from dachary/wip-10157-firefly
-
- PGLog: include rollback_info_trimmed_to in (read|write)_log
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit cd675bba5fdfb85689880ca7ecbd284181984a63
-Merge: 2b8e476 1a0f770
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:24:55 2015 +0100
-
- Merge pull request #3960 from dachary/wip-6003-firefly
-
- FileJournal: fix journalq population in do_read_entry()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 2b8e4762edb7c35950f7e0d69bba2b5e1d83133a
-Merge: d434ead a746f7e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:24:03 2015 +0100
-
- Merge pull request #3950 from dachary/wip-9985-firefly
-
- Get the currently atime of the object in cache pool for eviction
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Xinze Chi <xmdxcxz@gmail.com>
-
-commit d434eadadd1df6e4df18a6914015736bc09722d1
-Merge: e79e5f8 5f1245e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 16:20:12 2015 +0100
-
- Merge pull request #3935 from dachary/wip-10723-firefly
-
- Fix memory leak in python rados bindings
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e79e5f8fbbfba6984cf21784e20d1c46cb60a397
-Merge: a9a36de 91b2aca
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 15:02:37 2015 +0100
-
- Merge pull request #3866 from ceph/wip-cot-firefly
-
- Backport ceph-objectstore-tool changes to firefly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a9a36deb89ac5719787e905469fe0b1bde5d58ca
-Merge: 83c571e 7e85722
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 15:00:56 2015 +0100
-
- Merge pull request #3996 from dzafman/wip-10676
-
- Fix ceph command manpage to match ceph -h
-
- Reviewed-by: Xinxin Shu <xinxin.shu5040@gmail.com>
-
-commit 83c571e3067b4cad3e4567522c797d09a82d87db
-Merge: baa74b8 d5c3a14
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 16 14:55:37 2015 +0100
-
- Merge pull request #3927 from dachary/wip-10351-firefly
-
- mount.ceph: avoid spurious error message
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit 7e85722fd4c89715fc2ed79697c82d65d7ebf287
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 13 16:50:13 2015 -0700
-
- doc: Minor fixes to ceph command manpage
-
- Fixes: #10676
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
-
-commit 9ac488c1eb0e30511079ba05aaf11c79615b3940
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 12 11:39:52 2015 -0700
-
- doc: Fix ceph command manpage to match ceph -h (firefly)
-
- Improve synopsis section
- Fixes: #10676
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
-
-commit 5f1245e131e33a98572408c8223deed2c7cf7b75
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Feb 9 20:50:23 2015 -0800
-
- rados.py: keep reference to python callbacks
-
- If we don't keep a reference to these, the librados aio calls will
- segfault since the python-level callbacks will have been garbage
- collected. Passing them to aio_create_completion() does not take a
- reference to them. Keep a reference in the python Completion object
- associated with the request, since they need the same lifetime.
-
- This fixes a regression from 60b019f69aa0e39d276c669698c92fc890599f50.
-
- Fixes: #10775
- Backport: dumpling, firefly, giant
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 36d37aadbbbece28d70e827511f1a473d851463d)
-
-commit cf366fc3b21ff6f98530dbadb75a430c25672d56
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Thu Dec 18 17:11:22 2014 +0530
-
- doc: Changes format style in ceph to improve readability as html.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 8b796173063ac9af8c21364521fc5ee23d901196)
-
-commit 07fc9f66a69aa31d2cf8bf7a277d3e14ad6209be
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Mar 12 11:01:46 2015 +0800
-
- mds: fix assertion caused by system clock backwards
-
- Fixes: #11053
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit 8a25a51e42cdaed2c66dc25a6c6d0245441123a3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 30 07:03:30 2015 -0800
-
- rgw: fail s3 POST auth if keystone not configured
-
- Fixes: #10698
- This fixes issue introduced in 8b3dfc9472022ea45ad24e02e0aa21dfdad798f8,
- where if user does not exist, we try keystone authentication. However,
- if keystone is not configured we justt fall through without failing.
- This would have failed later on due to bucket permissions, unless bucket
- had a public write permissions.
-
- Backports: Firefly
- Reported-by: Valery Tschopp <valery.tschopp@switch.ch>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
-commit eb03e792040bd22c1ae8b7dd73d94fbfd6208eec
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Dec 13 08:06:31 2014 -0800
-
- osd: check that source OSD is valid for MOSDRepScrub
-
- Make sure the message we got from the peer OSD is valid. Specifically,
- this avoids a race like this:
-
- - A marks down B
- - B sends MOSDRepScrub
- - A accepts connection from B as new
- - A replies to scrub
- - B crashes because msgr seq 1 < expected seq 1000+
-
- See #8880 for the most recent fix for requests.
-
- Fixes: #9555
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 847e5e102522d651aa9687a54aaafcebf3afc596)
-
- Conflicts:
- src/osd/OSD.cc: require functions first argument is now a reference
-
-commit ae18707b3caa115dc510aff38b77f8afe8555c61
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Dec 13 07:56:39 2014 -0800
-
- osd: pass Message* to most require_* helpers
-
- These do nothing but op->get_req(); pass the Message* explicitly so that
- non-OpRequest callers can use them.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 707a111d53efb09b3471dd3788b86d2bfee4e96f)
-
- Conflicts:
- src/osd/OSD.cc
- src/osd/OSD.h
- significantly changes had to be made but in a simple way and
- stays within the scope of the original commit
-
-commit c60da2f3c34e7325c748d2d6e55140a0a30013fd
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Nov 20 15:15:08 2014 -0800
-
- PGLog: include rollback_info_trimmed_to in (read|write)_log
-
- Fixes: #10157
- Backport: firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1fe8b846641486cc294fe7e1d2450132c38d2dba)
-
- Conflicts:
- src/osd/PGLog.cc
- in the context coll_t::META_COLL was replaced with META_COLL
-
-commit 1a0f770eea18af6b276a31157f201a93166eb038
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 6 09:52:29 2015 -0800
-
- FileJournal: fix journalq population in do_read_entry()
-
- Fixes: 6003
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bae1f3eaa09c4747b8bfc6fb5dc673aa6989b695)
-
- Conflicts:
- src/os/FileJournal.cc
- because reinterpret_cast was added near two hunks after firefly
-
-commit a746f7e5985198024067cb6e123569c09169b356
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 31 19:33:59 2014 -0700
-
- osd/ReplicatedPG: fix compile error
-
- From 1fef4c3d541cba360738437420ebfa2447d5802e.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4a9ad7dc2da6f4fa6a64235776a3f1d2799aef60)
-
-commit 5404fbfdd9b18cdb3fe5bed67146c769ec3acfa0
-Author: Federico Simoncelli <fsimonce@redhat.com>
-Date: Sat Nov 15 14:14:04 2014 +0000
-
- common: do not unlock rwlock on destruction
-
- According to pthread_rwlock_unlock(3p):
-
- Results are undefined if the read-write lock rwlock is not held
- by the calling thread.
-
- and:
-
- https://sourceware.org/bugzilla/show_bug.cgi?id=17561
-
- Calling pthread_rwlock_unlock on an rwlock which is not locked
- is undefined.
-
- calling pthread_rwlock_unlock on RWLock destruction could cause
- an unknown behavior for two reasons:
-
- - the lock is acquired by another thread (undefined)
- - the lock is not acquired (undefined)
-
- Moreover since glibc-2.20 calling pthread_rwlock_unlock on a
- rwlock that is not locked results in a SIGILL that kills the
- application.
-
- This patch removes the pthread_rwlock_unlock call on destruction
- and replaces it with an assertion to check that the RWLock is
- not in use.
-
- Any code that relied on the implicit release is now going to
- break the assertion, e.g.:
-
- {
- RWLock l;
- l.get(for_write);
- } // implicit release, wrong.
-
- Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
- (cherry picked from commit cf2104d4d991361c53f6e2fea93b69de10cd654b)
-
-commit a73a4cb3889a6da21c3cfa4ddfa16d1a7059d20c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Sat May 3 08:32:19 2014 -0700
-
- common/RWLock: track read/write locks via atomics for assertion checks
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 92615ea95a31d9fd22c3d11c860e0f502dc52c26)
-
-commit b0d0d44018de6289b64b6334edd4959ca4a0cc48
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Dec 11 13:05:54 2014 -0800
-
- ReplicatedPG::scan_range: an object can disappear between the list and the attr get
-
- The first item in the range is often last_backfill, upon which writes
- can be occuring. It's trimmed off on the primary side anyway.
-
- Fixes: 10150
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit dce6f288ad541fe7f0ef8374301cd712dd3bfa39)
-
-commit 34d19e1501b242fd8fc7cc95656592b5982f29a6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 30 18:42:40 2015 -0800
-
- rgw: flush xml header on get acl request
-
- Fixes: #10106
- Backport: firefly, giant
-
- dump_start() updates the formatter with the appropriate prefix, however,
- we never flushed the formatter.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit eb45f861343162e018968b8c56693a8c6f5b2cab)
-
-commit 9074eb7c46589aa1e5d10a2b9a8534f22dff2154
-Author: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-Date: Mon Nov 17 17:37:00 2014 +0530
-
- rgw: check for timestamp for s3 keystone auth
-
- This commit ensures that we check for timestamp of s3 request is within
- acceptable grace time of radosgw
- Addresses some failures in #10062
- Fixes: #10062
- Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-
- (cherry picked from commit 4b35ae067fef9f97b886afe112d662c61c564365)
-
-commit d3de8a5722a68d69023cf60c9076c2fb19058bf9
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Nov 19 08:20:16 2014 -0800
-
- PG: always clear_primary_state on new interval, but only clear pg temp if not primary
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f692bfe076b8ddb679c6d1a6ea78cc47f0876326)
-
-commit 8b07236cd799b4752cbe620b737343a02a703a17
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Nov 14 15:44:20 2014 -0800
-
- PG: always clear_primary_state when leaving Primary
-
- Otherwise, entries from the log collection process might leak into the next
- epoch, where we might end up choosing a different authoritative log. In this
- case, it resulted in us not rolling back to log entries on one of the replicas
- prior to trying to recover from an affected object due to the peer_missing not
- being cleared.
-
- Fixes: #10059
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c87bde64dfccb5d6ee2877cc74c66fc064b1bcd7)
-
-commit f4bab86fe3b218d66c14d06883c297836d9ca19d
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Oct 27 11:22:13 2014 +0800
-
- ObjectStore: Don't use largest_data_off to calc data_align.
-
- If largest_data_off % CEPH_PAGE_SIZE != 0, the get_data_aligment return
- a erro value. This make the FileJouranl::align_bl to memcopy much data.
-
- Tested-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit a1aa70f2f21339feabfe9c1b3c9c9f97fbd53c9d)
-
-commit 2c7eda690ae2f71c8e8e189b8f7330196c1f385f
-Author: Ding Dinghua <dingdinghua85@gmail.com>
-Date: Thu Oct 30 14:58:42 2014 +0800
-
- osdc/Objecter: Fix a bug of dead looping in Objecter::handle_osd_map
-
- If current map epoch is less than oldest epoch, current map epoch
- should step up to oldest epoch.
-
- Fixes: #9986
- Signed-off-by: Ding Dinghua <dingdinghua85@gmail.com>
- (cherry picked from commit e0166a23c2cf655bfb4cf873be021a14d9b9be27)
-
- Conflicts:
- src/osdc/Objecter.cc
- the debug line that follows was re-indented
-
-commit 11f8017cbdf94d4a8083412b96c251ee39286541
-Author: Ding Dinghua <dingdinghua85@gmail.com>
-Date: Thu Oct 30 14:58:05 2014 +0800
-
- osdc/Objecter: e shouldn't be zero in Objecter::handle_osd_map
-
- Signed-off-by: Ding Dinghua <dingdinghua85@gmail.com>
- (cherry picked from commit 31c584c8ba022cd44fe2872d221f3026618cefab)
-
- Conflicts:
- src/osdc/Objecter.cc
- the debug line that follows was re-indented
-
-commit 7831582026441abbd6066dd951db4b63ffb45402
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Wed Oct 29 07:11:11 2014 +0000
-
- Get the currently atime of the object in cache pool for eviction
-
- Because if there are mutiple atime in agent_state for the same object, we should use the recently one.
-
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 1fef4c3d541cba360738437420ebfa2447d5802e)
-
-commit 620733386bd0694960cecac8f32bd1538382d5bb
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Tue Oct 28 09:37:11 2014 +0800
-
- osd: cache tiering: fix the atime logic of the eviction
-
- Reported-by: Xinze Chi <xmdxcxz@gmail.com>
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit 622c5ac41707069ef8db92cb67c9185acf125d40)
-
-commit 5865411360f722ec511f2df6656d4ba975bef8eb
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 20 13:43:46 2015 -0800
-
- DBObjectMap: lock header_lock on sync()
-
- Otherwise, we can race with another thread updating state.seq
- resulting in the old, smaller value getting persisted. If there
- is a crash at that time, we will reuse a sequence number, resulting
- in an inconsistent node tree and bug #9891.
-
- Fixes: 9891
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 2b63dd25fc1c73fa42e52e9ea4ab5a45dd9422a0)
-
- Conflicts:
- src/os/DBObjectMap.cc
- because we have state.v = 1; instead of state.v = 2;
-
-commit baa74b88a4f4b6073b99b7a9774692b37405b59e
-Merge: be6559a 420ea03
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 11 09:09:23 2015 +0100
-
- Merge pull request #3828 from dachary/wip-10425-firefly
-
- librados: fix resources leakage in RadosClient::connect()
-
- Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
-commit be6559a423badde3b573b0c9055056999baae104
-Merge: f91d355 6e58732
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 11 09:06:27 2015 +0100
-
- Merge pull request #3826 from dachary/wip-10257-firefly
-
- mon: PGMonitor: several stats output error fixes
-
- Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
-
-commit f91d355306620cc543113ed21fddf84f4c170d6e
-Merge: f5525a1 1e58bb4
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 11 09:05:13 2015 +0100
-
- Merge pull request #3824 from dachary/wip-10353-firefly
-
- crush: set_choose_tries = 100 for erasure code rulesets
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f5525a1f41c9154b48f3ad0ccd899b5203c897bd
-Merge: b7e3614 27dbbb3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 11 09:04:33 2015 +0100
-
- Merge pull request #3823 from dachary/wip-10787-firefly
-
- mon/OSDMonitor: do not trust small values in osd epoch cache
-
- Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
-
-commit b7e3614ff38379aeea66ba00c64bc88ffa080963
-Merge: b5a67f0 7ed92f7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Mar 11 09:02:16 2015 +0100
-
- Merge pull request #3915 from dachary/wip-10080-firefly
-
- SimpleMessenger: allow RESETSESSION whenever we forget an endpoint
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 8ef14fcca715a33be8c611a37628c90d7fafca43
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Wed Feb 11 23:36:01 2015 +0000
-
- mon: MonCap: take EntityName instead when expanding profiles
-
- entity_name_t is tightly coupled to the messenger, while EntityName is
- tied to auth. When expanding profiles we want to tie the profile
- expansion to the entity that was authenticated. Otherwise we may incur
- in weird behavior such as having caps validation failing because a given
- client messenger inst does not match the auth entity it used.
-
- e.g., running
-
- ceph --name osd.0 config-key exists foo daemon-private/osd.X/foo
-
- has entity_name_t 'client.12345' and EntityName 'osd.0'. Using
- entity_name_t during profile expansion would not allow the client access
- to daemon-private/osd.X/foo (client.12345 != osd.X).
-
- Fixes: #10844
- Backport: firefly,giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 87544f68b88fb3dd17c519de3119a9ad9ab21dfb)
-
-commit 370f37f452aff3b48f9ae8a33b7ef26b572b41c8
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Nov 14 21:03:54 2014 +0000
-
- mon: Monitor: stash auth entity name in session
-
- Backport: giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit ca8e1efc0be9bffcfbdce5593526d257aa498062)
-
-commit 0f31388eb2bb68c09ab270f871b421a9c368af97
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 17:51:08 2014 -0700
-
- messages/MWatchNotify: include an error code in the message
-
- Document the fields, while we are here.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7c7bf5fee7be397ef141b947f532a2a0b3567b42)
-
-commit f856739824bc271405a6fa35bdefc2bdc42c2f02
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Nov 20 14:27:39 2014 -0800
-
- ReplicatedPG: fail a non-blocking flush if the object is being scrubbed
-
- Fixes: #8011
- Backport: firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 9b26de3f3653d38dcdfc5b97874089f19d2a59d7)
-
-commit ca96b59db529ffbba0c834795800b6e90a7e4fce
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 9 17:11:38 2015 -0800
-
- WorkQueue: make wait timeout on empty queue configurable
-
- Fixes: 10817
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5aa6f910843e98a05bfcabe6f29d612cf335edbf)
-
-commit 8ec8f1175a129624dffb511782664d74966d3c42
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 9 10:37:15 2015 -0800
-
- ReplicatedPG::on_change: clean up callbacks_for_degraded_object
-
- Backport: dumpling, firefly, giant
- Fixes: 8753
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit a5ecaa189d47a69466a6cd55fa4180e5c3092dc2)
-
-commit 963439f1038000c3f28c728350a2e9d351341e0b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Feb 5 09:33:26 2015 -0800
-
- rgw: send appropriate op to cancel bucket index pending operation
-
- Fixes: #10770
- Backport: firefly, giant
-
- Reported-by: baijiaruo <baijiaruo@126.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit dfee96e3aebcaeef18c721ab73f0460eba69f1c7)
-
- Conflicts:
- src/rgw/rgw_rados.cc
-
-commit 3782b8b3652c0eb3fb8f65193ecfe09e92925170
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Feb 5 03:07:50 2015 -0800
-
- mon: ignore osd failures from before up_from
-
- If the failure was generated for an instance of the OSD prior to when
- it came up, ignore it.
-
- This probably causes a fair bit of unnecessary flapping in the wild...
-
- Backport: giant, firefly
- Fixes: #10762
- Reported-by: Dan van der Ster <dan@vanderster.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 400ac237d35d0d1d53f240fea87e8483c0e2a7f5)
-
-commit ca42905a6fca8b2b404500a6f74951ae20c8a488
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Wed Nov 26 22:21:32 2014 +0530
-
- doc: Adds the updated man page for ceph-disk utility.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 016080d2c39919d73956e5e138ba5f079327aa44)
-
-commit 6602ab4581f27e066484b4c419d8206fcc20e045
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Wed Nov 26 22:19:01 2014 +0530
-
- doc: Updates the man page for ceph-disk utility with some changes.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 8a48847cd46d4807ca1dbd13d3a561a693cdc877)
-
-commit 459807021dd3bf86ce31d30a3b576e783da67e3f
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Tue Nov 25 21:23:08 2014 +0530
-
- doc: Adds man page for ceph-disk utility.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 9a118d56d4a5b0a0456e9f092f5ae9293f7bf3f3)
-
-commit 430d821b7592148ad9b2656bb3031a0484763f33
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Tue Nov 25 21:16:16 2014 +0530
-
- doc: Removes ceph-deploy usage instances from ceph-disk man page.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 242dd1c0bbb728475a94f47740790b8a196d9804)
-
-commit 21c3256c851065521e34a179dc05d48fcc0a6e0f
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Tue Nov 25 02:06:39 2014 +0530
-
- doc: Updates man page for ceph-disk utility.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 7dcc85042b0c0a26e495f7574ce144d1083d15f8)
-
-commit 1a6490e38d7f5fd3ff640a810c3b911699cd4884
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Mon Nov 24 22:05:11 2014 +0530
-
- doc: Adds man page for ceph-disk utility.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit a450cab2b8148cb8a9b043d629feccf89e5aabac)
-
-commit 3bab47054dc77b9a00d3f47fa73f458ede7d4ab4
-Author: Billy Olsen <billy.olsen@gmail.com>
-Date: Mon Feb 2 16:24:59 2015 -0700
-
- Fix memory leak in python rados bindings
-
- A circular reference was inadvertently created when using the
- CFUNCTYPE binding for callbacks for the asynchronous i/o callbacks.
- This commit refactors the usage of the callbacks such that the
- Ioctx object does not have a class reference to the callbacks.
-
- Fixes: #10723
- Backport: giant, firefly, dumpling
- Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
- Reviewed-by: Dan Mick <dmick@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 60b019f69aa0e39d276c669698c92fc890599f50)
-
-commit d0fd417e872a73033903fb36144fe7a39e90fc9a
-Author: Dmytro Iurchenko <diurchenko@mirantis.com>
-Date: Tue Feb 3 17:54:38 2015 +0200
-
- rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
-
- Fixes: #10475
- Backport: hammer, firefly
- Reported-by: Josh Durgin <jdurgin@redhat.com>
- Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- (cherry picked from commit f67bfa24fd6f69c2fcc0987eba8b6b426dd78320)
-
- Conflicts:
- src/rgw/rgw_rest.h
- trivial merge: prototype of an unrelated function changed
- s/is_object_op/!(s->object == NULL)/
-
-commit 651dc556047aa4ee9e95fe9fc7bcd11488973872
-Author: Dmytro Iurchenko <diurchenko@mirantis.com>
-Date: Mon Feb 2 11:27:00 2015 +0200
-
- rgw: Swift API. Dump container's custom metadata.
-
- Fixes: #10665
- Backport: hammer, firefly
- Reported-by: Ahmad Faheem <ahmad.faheem@ril.com>
- Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- (cherry picked from commit 2f8d31e9b1c4b09506bd1b0dad635c6e820783b2)
-
- Conflicts:
- src/rgw/rgw_rest_swift.cc
- The first hunk conflicts because X-Storage-Policy was added
- after firefly. The second hunk conflicts because the type of the
- s->object data member changed after firefly but it is irrelevant
- because the patch does not need to access s->object anymore.
-
-commit 6fd3dfa7224f0af3101fd1614506e8cb2fc7f6a0
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 23 10:47:44 2015 -0800
-
- osd: do not ignore deleted pgs on startup
-
- These need to get instantiated so that we can complete the removal process.
-
- Fixes: #10617
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 879fd0c192f5d3c6afd36c2df359806ea95827b8)
-
-commit 368a5a8a8739e98ffdb8ac1210d111092e31be9e
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 30 11:37:28 2015 +0000
-
- mon: Monitor: fix timecheck rounds period
-
- Fixes: #10546
- Backports: dumpling?,firefly,giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 2e749599ac6e1060cf553b521761a93fafbf65bb)
-
-commit 66b13f2beff702c3b0bcb0aaa8da4e12d594eddf
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Jan 11 17:28:04 2015 -0800
-
- osd: requeue blocked op before flush it was blocked on
-
- If we have request A (say, cache-flush) that blocks things, and then
- request B that gets blocked on it, and we have an interval change, then we
- need to requeue B first, then A, so that the resulting queue will keep
- A before B and preserve the order.
-
- This was observed on this firefly run:
-
- ubuntu@teuthology:/a/sage-2015-01-09_21:43:43-rados-firefly-distro-basic-multi/694675
-
- Backport: giant, firefly
- Fixes: #10512
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 11bdfb4131ecac16d4a364d651c6cf5d1d28c702)
-
-commit a22aa8f3228e0baf2ba08d9e79ee4924cd341a07
-Author: Matt Richards <mattjrichards@gmail.com>
-Date: Thu Jan 8 13:16:17 2015 -0800
-
- librados: Translate operation flags from C APIs
-
- The operation flags in the public C API are a distinct enum
- and need to be translated to Ceph OSD flags, like as happens in
- the C++ API. It seems like the C enum and the C++ enum consciously
- use the same values, so I reused the C++ translation function.
-
- Signed-off-by: Matthew Richards <mattjrichards@gmail.com>
- (cherry picked from commit 49d114f1fff90e5c0f206725a5eb82c0ba329376)
-
- Conflicts:
- src/librados/librados.cc
- comes from lttng tracepoints introduced after firefly
-
-commit d5c3a14390f6bb2af45a1a4ad842777302dd0553
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Jan 3 15:29:29 2015 +0800
-
- mount.ceph: avoid spurious error message
-
- /etc/mtab in most modern distributions is a symbol link to
- /proc/self/mounts.
-
- Fixes: #10351
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bdd0e3c4bda97fe18487a58dd173a7dff752e1a2)
-
-commit 7ed92f7dc5f0f327b77b6f3835e3f821fc810708
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Dec 2 15:17:57 2014 -0800
-
- SimpleMessenger: allow RESETSESSION whenever we forget an endpoint
-
- In the past (e229f8451d37913225c49481b2ce2896ca6788a2) we decided to disable
- reset of lossless Pipes, because lossless peers resetting caused trouble and
- they can't forget about each other. But they actually can: if mark_down()
- is called.
-
- I can't figure out how else we could forget about a remote endpoint, so I think
- it's okay if we tell them we reset in order to clean up state. That's desirable
- so that we don't get into strange situations with out-of-whack counters.
-
- Fixes: #10080
- Backport: giant, firefly, dumpling
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 8cd1fdd7a778eb84cb4d7161f73bc621cc394261)
-
-commit 91b2acaadee1b62c1fcac73147908ec4477840f3
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Oct 9 11:20:13 2014 -0700
-
- osd: Get pgid ancestor from last_map when building past intervals
-
- Fixed OSD::build_past_intervals_parallel() and PG::generate_past_intervals()
-
- Fixes: #10430
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0c5b66da7a9ba516340d06d9e806beb9d1040d0e)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit c09b6d9d64fdcdc3842c4f89acf10080125a4adc
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Dec 23 12:04:26 2014 -0800
-
- osd: Pass oldest_map when generating past intervals
-
- From load_pgs() the superblock hasn't been published yet
- so we need to retrieve the value of oldest_map depending on the context.
-
- Fixes: #10427
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 7fb721c1ceb39b38ca2e653299bcf51e109411d7)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 9235d781bf860c1ecef5af600431f1619b56fbc1
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Dec 17 16:59:09 2014 -0800
-
- osd: build_push_op() handle short reads so recipient doesn't crash
-
- Fixes: #8121
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b9a04846d18e1c6621d7f2794ec1fae02875bed2)
-
-commit 7ce0cb8e33a281d5f675273d7bcbc570a32e5497
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Feb 5 16:33:08 2015 +0800
-
- ceph_objectstore_tool: fix check_output on python2.6
-
- * backported the subprocess.check_output from python2.7
-
- Fixes: #10756
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 15350a088d84bc6fc664f0d3f5d09b35f58b2144)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py
-
-commit d5d34ddd1eac688d9422ca02c859d61be8e3e56e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jan 6 15:49:50 2015 -0800
-
- ceph_objectstore_tool: For import get object_info_t available for each object
-
- Add object_info_t to object_begin so we have at object create time
- This will be useful for importing from multiple erasure coded exports
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 05d916ed12f361da48ef73953bcc0cef465fcc2a)
-
-commit f70590b211ba28f350921b2f0c92712ed779858e
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 12 15:16:03 2014 -0800
-
- ceph_objectstore_tool: Handle import of pg which OSD has split
-
- Fail import if import data doesn't include OSDMap and can't find it locally
- See if local map can be read for import's epoch
- Jump to current epoch like a split would if local map not present
-
- Fixes: #9781
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit afda6e4f3b98cc1773fd014583dfb5e1f214a939)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit aedd324f8fbb031d5126ae158f03066c7342f4b0
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 12 15:38:33 2014 -0800
-
- ceph_objectstore_tool: On import following a split skip objects no longer in pg
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 68b27e25a3729566c3a22c0b71f70f7f3aca29a3)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit c3de607c2ce16a26af7a78a4e557f321ffbcb44d
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 5 15:12:21 2014 -0800
-
- ceph_objectstore_tool: Verify that object pool and pgid pool match
-
- Also, earlier check for invalid --pgid with import op
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit da3be80497a1b1878ee5d2015f8840d202a83aa2)
-
-commit 5ec38e54f40431a5303cafe202c5097cc400fdb6
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 19 11:47:36 2014 -0800
-
- ceph_objectstore_tool: Check for splits and fail import if there were splits
-
- Add osdmap into metadata_section
- On export put metadata_section before file data
-
- Fixes: #9780
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 19fdeea8b67091ed044ebce25799d3237b4d734a)
-
-commit aa472fa4df19d826a5af72e286365fa5ce4c71fb
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Dec 15 10:03:53 2014 -0800
-
- ceph_objectstore_tool: Add special exit code for test infrastructure
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b1f12f09c0211b608178f5ca2e292ab1765ce620)
-
-commit 22b7c2faee8cfad1b40cef019984f4a2d112b268
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 19 11:41:39 2014 -0800
-
- ceph_objectstore_tool: Check that pool exists before allowing import
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f24f646d870703b7b79563cdbc20920248be6142)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit f65db436f6eb83d7c59fdddced4d35dd9eeeb078
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 15 15:21:11 2014 -0700
-
- ceph_objectstore_tool: Check cluster_fsid before allowing an import
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 196c8112dc9a6e8780b05d6c579cd7fbd5b07589)
-
-commit 360f68ec69b36b172d15c6206698340a5c00aafa
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Oct 16 12:27:56 2014 -0700
-
- ceph_objectstore_tool: Allow the metadata_section to be anywhere in the export
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 62dd912f1192b28700a15b02507a8c9efd710cb5)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit c3fcbe636ae1a936b9180628cff939b2b5dddf7c
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 12 15:01:24 2014 -0800
-
- ceph_objectstore_tool: import-rados shouldn't import internal namespace objects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f727d2eaf50b0351feb9f12dcd65d50fb6eff7e9)
-
-commit 2d69076943b9724ce1d5c9f03f2f7594a77b92d2
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 12 14:58:54 2014 -0800
-
- ceph_objectstore_tool: Get g_ceph_context available to import-rados
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ddc4613ec71752e5dccbbfe6dc078b86f0f186a9)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit bbed3a728471292de625d922abeae8b39d290045
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Dec 9 18:09:04 2014 -0800
-
- ceph_objectstore_tool: Fix import-rados skipping of snapshots
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit fe936026ed87c9f95f3b7ad235b24c22e8de5f55)
-
-commit d962c79dc1f0f2189e25743c6d253fac412c004d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Nov 20 13:00:10 2014 -0800
-
- ceph_objectstore_tool: read_fd() doesn't handle ^D from tty stdin, don't allow
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5cb692528e3ac0ebea3f1714b3ac43f69d176888)
-
-commit 8b7f4cb232c2f1bde6f50c1f092cb622fe2c41f1
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 19 13:47:32 2014 -0800
-
- ceph-objectstore-tool: Remove --pretty-format and use new --format options
-
- Call new_formatter() with --format specified argument
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 22b71744bb0cb56434d5f6214ccea7d81f771860)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit ee183b8e56c6f8a88ac781cf1fedb6a7a93f1005
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 15 15:20:03 2014 -0700
-
- ceph_objectstore_tool: Describe super_ver values
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0aeba0f216a54390288b5e3d6147deb31877f744)
-
-commit 5f82f824c7b1bb246bdb54b11a694133a49da70a
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Jan 2 18:36:54 2015 +0100
-
- ceph_objectstore_tool.cc: reduce scope of variable
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 78542f9a901c05e627b53b5306ea604be3bc82e8)
-
-commit 2f97c51b5ee5de7c1657bc8fee6ccaa474f6f478
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Jan 2 15:48:08 2015 +0100
-
- ceph_objectstore_tool.cc: prefer ++operator for non-primitive iterators
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 252fc03ba21c7b09922598a8d40997fc639bb994)
-
-commit 2a22bfedc4fa9f461dc8cfd42c659b9c55ddafca
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 25 16:56:19 2014 -0800
-
- ceph_objectstore_tool: Prevent tool from transitioning struct_v on rm-past-intervals
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f056bdf93980a0a8e6157dbb124a79389a8f1a3c)
-
-commit 53aa04f95c43795da81a7d9f3117d7e5816aedcb
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 4 18:53:08 2014 -0800
-
- ceph_objectstore_tool: Accept json object with --pgid instead of array
-
- It isn't anticipated that anyone would use this but keeps backward compatible
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 59b423e2e8846b098326fdec440de46b8e3d2769)
-
-commit 60e9a8120b292628ee4e5ef33fe933222609b861
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 4 18:27:50 2014 -0800
-
- ceph_objectstore_tool: Improve object spec parsing error messages
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit de6384fda183801c16af1b61ed36eaed289bb4f6)
-
-commit 4f95409c0dadeed18334c00630ddc6d7c99d2819
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 4 17:48:28 2014 -0800
-
- ceph_objectstore_tool: Fix errors messages in newer code
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit eae7c02fded460f6c8aaf18aa83d2730b89e0eb1)
-
-commit 1703867735c8f8ab1c83aa526c84b278436f38d5
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 4 16:00:40 2014 -0800
-
- ceph_objectstore_tool: Remove extraneous endl on error throw messages
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 32c832f0c62259a492d1c934c56ac165496763a0)
-
-commit f2d2110a8cb1a1b1216c1083b54ea6212138dc93
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 4 14:01:39 2014 -0800
-
- ceph_objectstore_tool: Add --format and --pretty-format support
-
- --pretty-format defaults true
- Add --format so xml output can be requested
- --op list defaults to single line of json per object
- To override this more human readable output use --pretty-format=false
- Add testing of --op list special handling
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cca85a534fe488ae314400e8faad55a758609467)
-
-commit a5544c12c3e982edf66f55a8edfb7fc69300520b
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Dec 3 17:53:11 2014 -0800
-
- ceph_objectstore_tool: Strip _* (always _head) from pgid in list entry output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5eacd3c5f39766cb8be6b3251d139d16431cf6b6)
-
-commit 4a0a42f3e6b9a1b7ed4df3d4b6c417acfc00050a
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Dec 3 16:39:04 2014 -0800
-
- ceph_objectstore_tool: BUG: --op list wasn't including snapshots
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b617ee2d45886ec6b3dc0db0edbf814ea5748083)
-
-commit 06579b9f269dc9864e920368c5bea9bcb9dd8be9
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Dec 3 16:38:22 2014 -0800
-
- ceph_objectstore_tool: For terminal output of list one object per line
-
- Instead of a parsable array make it easier to cut and paste listed objects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5a66db9418aeed31fec98999c5053dab357d9c1e)
-
-commit 22c6bf410de1b0c81f131aa4d5682f5162dd1a56
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Dec 3 16:35:09 2014 -0800
-
- ceph_objectstore_tool: In error case umount objectstore
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit bc6ea9cb8a2b86c73f7f15bc46145177ccf91f4b)
-
-commit d802ab69a4a0f37ed9328ec385746f59643e1420
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 27 01:24:03 2014 +0100
-
- objectstore_tool: test --op list variants
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit ddba2676c4c48c2a556f5d4ffd817bfe134a9153)
-
-commit f30e053fe7b3e5efc679b20cf1b3e2f7f8ed7e54
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 27 00:11:45 2014 +0100
-
- objectstore_tool: parse new object description format
-
- The object format changed from
-
- {json object}
-
- to
-
- [pgid,{json object}]
-
- The parser is updated accordingly. If the --pgid is present, check that
- it equals the pgid from the object description.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit df9d5c5cfd8b0ff793647a592c7661965cef5c92)
-
-commit fce87c9d7dbb51989826d068d6b6657a2f3d129d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Nov 26 23:35:21 2014 +0100
-
- objectstore_tool: filter --op list and explore all PGs
-
- The positional object name is used to filter the output of --op list and
- only show the objects with a matching name. If both the object name and
- the pgid are omitted, all objects from all PGs are displayed.
-
- The output format is changed from
-
- {"oid":"GROUP","key":"","snapid":-2,
- "hash":2659194943,"max":0,"pool":0,"namespace":""}
-
- to
-
- [["0.7_head",{"oid":"GROUP","key":"","snapid":-2,
- "hash":2659194943,"max":0,"pool":0,
- "namespace":""}]]
-
- where the first member is the pgid where the object is found.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit c69aaceac7f370e5369d511bf17898adc338ae43)
-
-commit 2f874fd3715d216a68658e94a5c741e665c76632
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Nov 26 23:34:22 2014 +0100
-
- objectstore_tool: lookup objects by name
-
- If the object is not a parsable JSON string, assume an object name and
- look it up in all the PGs. If multiple objects have the same name, only
- apply the command to one of them. It is primarily useful in a test
- environment where the names of the tests objects are known and only a
- small number of objects exists. It replaces the following:
-
- path='--data-path dev/osd0 --journal-path dev/osd0.journal'
- for pgid in $(./ceph_objectstore_tool $path --op list-pgs) ; do
- object=$(./ceph_objectstore_tool $path --pgid $pgid --op list |
- grep '"oid":"NAME"')
- test -n "$object" && break
- done
- ./ceph_objectstore_tool $path --pgid $pgid "$object" remove
-
- with:
-
- ./ceph_objectstore_tool $path NAME remove
-
- http://tracker.ceph.com/issues/10192 Fixes: #10192
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 7c1165f96391821c00cca1ac04b3433dbec6bb6e)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit eb48aba2119959c53ea8a103b53f0c2e07c52acb
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Nov 26 17:30:30 2014 +0100
-
- objectstore_tool: refactor list-lost and fix-lost
-
- Abstract out the PG exploration loops and encapsulate the list-lost and
- fix-lost semantic in a callable object.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit d9e747b1bdb53d1fe543ef311e3db35fb78d8051)
-
-commit eab3226edc8ecc6d2d93f463e019ef4eacb9f468
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Nov 26 17:26:54 2014 +0100
-
- objectstore_tool: update usage strings
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a90233c8b79ae6c035b5169c7f8809f853631689)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit 5bbe41cb1e7faf40a9c53a9bdc01db8c35670a36
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 18 13:00:15 2014 -0800
-
- ceph_objectstore_tool: Add feature called set-allow-sharded-objects
-
- Uses --op set-allow-sharded-objects option
- This operation will be rejected if on the target OSD's osdmap there is
- at least one OSD which does not support ERASURE CODES.
- Prompt the user that they could import if sharded state allowed
- Prompt the user to use new feature if sharded state found inconsistent
-
- Fixes: #10077
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f3dab446fc8e58b3b3d9334b8c38722e73881b9e)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit 4e30d8c53c0a4952f81cc3b5680c7e92fffb1355
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 18 11:59:18 2014 -0800
-
- ceph_objectstore_tool: Add utility routine get_osdmap()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b3021b0d3362000b5938d406ed2e032a8eb38405)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit f997b126afaeadebe6b6d76954fbe2008bd2a7d8
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 12 21:14:11 2014 -0800
-
- ceph_objectstore_tool: Clear ...INCOMPAT_SHARDS from feature if exporting replicated pg
-
- Don't require importing OSD to have shards feature for replicated pg
-
- http://tracker.ceph.com/issues/10077 Fixes: #10077
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 86baf2d38170ef19de2dd5e9ce3f280237d8474d)
-
-commit 3f862da57945f821ed459f5a77f8032331c9cb20
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 18 00:10:41 2014 -0800
-
- tests: ceph_objectstore_tool.py test all variants of export/import
-
- Handle change of error message text
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9e53c3554c71121f2e2dd0234b5232da37ad5a1b)
-
-commit 2a58bdee19eb8f02a2800d728d402e76566d7f58
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Nov 17 23:23:40 2014 -0800
-
- ceph_objectstore_tool: Make --file option consistent by treating "-" as stdout/stdin
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 8c87f3284f87d1121218cb7f41edc81b74c9df29)
-
-commit 70329be7be5d80e52d5424958cecd7f4d939add6
-Author: David Zafman <dzafman@redhat.com>
-Date: Sat Nov 15 11:43:10 2014 -0800
-
- tests: ceph_objectstore_tool.py fix list-attr for erasure code
-
- Adding testing of xattr for erasure coded shards
- Fix error message when finding an unexpected xattr key
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cbecab477a70782f2f69258f035e78fb5c829810)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py
-
-commit bc921c7ecbc061ccef4847d967986c9fa902111f
-Author: David Zafman <dzafman@redhat.com>
-Date: Sat Nov 15 11:46:15 2014 -0800
-
- tests: ceph_objectstore_tool.py check for malformed JSON for erasure code objs
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 40717aa4c399e87d2c3e32038f78788eb213f87d)
-
-commit 99ffd137f17c438e3ee9dbbc0ab73cdcd3a45a5c
-Author: David Zafman <dzafman@redhat.com>
-Date: Sat Nov 15 11:44:54 2014 -0800
-
- tests: ceph_objectstore_tool.py fix off by 1 ATTR_OBJS handling
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit eaf1d1e35243566c46b478788e79e0ebf7583015)
-
-commit 951c951a0f164271c5e9b96ecbd510cf5c6663b6
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Nov 14 11:00:17 2014 +0100
-
- tests: ceph_objectstore_tool.py skip if /dev/tty fails
-
- Some environments do not have a /dev/tty. When opening /dev/tty fails,
- skip the test instead of returning an error.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 4c94f1778fdf483e9e0b62f89f7e46e78aeeebf3)
-
-commit 8dc263555d7aca2befa912c78c585a43c8e7592c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 19:15:50 2014 +0100
-
- tests: ceph_objectstore_tool.py encapsulate init-ceph stop
-
- Call init-ceph in kill_daemons and add a call to kill_daemon when main
- returns on error so that it never leaves daemons hanging.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit fc435ff3623d196dd7cc375302acd8dfc9eb59fd)
-
-commit b78d802f3e082b0762203ae37b3c3a44b7608907
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 19:14:49 2014 +0100
-
- tests: ceph_objectstore_tool.py main returns
-
- Instead of calling sys.exit() the main function returns the desired exit
- code.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 0f3d7b1315f2b5595047d8bd13949ed0d9194bfa)
-
-commit 04e480b09b59f5318e9b206e6c3e529d8bb22328
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:32:14 2014 +0100
-
- tests: ceph_objectstore_tool.py replace stop.sh with init-ceph
-
- The stop.sh will stop all ceph-* processes. Use the init-ceph script
- instead to selectively kill the daemons run by the vstart.sh cluster
- used for ceph_objectstore_tool.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit e8f34bd62bf282144b8851fb9764cf4429a49c25)
-
-commit 51855584eb970b28dfa266ee3653963fb77a2b1e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:30:29 2014 +0100
-
- tests: ceph_objectstore_tool.py use a dedicated directory
-
- Set CEPH_DIR to a directory that is specific to ceph_objectstore_tool so
- that it can run in parallel with other vstart.sh clusters.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit e303d1afde58e68c1f587962010da9e1f1278bc3)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py
-
-commit 454ec85ae449cb20c2ddecade421262d9d9de615
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:27:01 2014 +0100
-
- tests: ceph_objectstore_tool.py run faster by default
-
- By default use only a small number of objects to speed up the tests. If
- the argument "big" is given, use a large number of objects as it may
- help find some problems.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 235257c257aea98b770d9637957818c8aeb6c745)
-
-commit 427fe9177f90db091685b937839dcc4dfe4c8a01
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:21:48 2014 +0100
-
- tests: ceph_objectstore_tool.py run mon and osd on specific port
-
- By default vstart.sh runs MDS but they are not needed for the tests,
- only run mon and osd instead. Instead of using the default vstart.sh
- port which may conflict with a already running vstart.sh, set the
- CEPH_PORT=7400 which is not used by any other test run with make check.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit f04d4e7539bc8c1b6cf94db815f9dcdecc52faa2)
-
-commit 28ed34a7dc32033be61cd61178eb59471de45aac
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:16:41 2014 +0100
-
- tests: ceph_objectstore_tool.py can use a WARN cluster
-
- The tests do not need HEALTH_OK exclusively, a HEALTH_WARN cluster can
- also run them successfully.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 783378c019aaac36d542e1b12c0d64196ea21012)
-
-commit 8548d7c65e8743d4e743c77981acd702efab3fb2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Nov 13 17:12:35 2014 +0100
-
- tests: ceph_objectstore_tool.py use env python
-
- Using #/usr/bin/env python instead of a hard coded path is more flexible
- and can also be used to run from virtualenv.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 74506d2506d03d05935cbe342fef9dc1d9022a13)
-
-commit 5b4c2ee0902d94e6fa5bee67188fddcf0e0c38a2
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 12 15:22:04 2014 -0800
-
- ceph_objectstore_tool: Fixes to make import work again
-
- The is_pg() call is now true even for pgs pending removal, fix broken
- finish_remove_pgs() by removing is_pg() check.
- Need to add create_collection() to the initial transaction on import
-
- Fixes: #10090
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5ce09198bf475e5c3a2df26232fa04ba9912b103)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
-
-commit e0dab883d29bd3a54b5707f8d3ea830f8a1ce516
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Oct 6 18:26:44 2014 -0700
-
- ceph_objectstore_tool: Accept CEPH_ARGS environment arguments
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 10fe7cfe561f91717f2ac2e13aeecc06a903704e)
-
-commit 5f788eaa61054c6cb27960b5544b321078706343
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Oct 3 15:12:28 2014 -0700
-
- ceph_objectstore_tool: MemStore needs a CephContext
-
- Pass g_ceph_context to ObjectStore::create() needed by MemStore
-
- Fixes: #9661
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0b155d00c542f0d8b8b5b0324dac4b3cf7ff37b5)
-
-commit 7470c7ca02ef6313b925be3ce4b27437a0c2e1e0
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Mar 3 10:41:28 2015 -0800
-
- ceph_objectstore_tool: Rename generated binary to ceph-objectstore-tool
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 4f72ba545e204a24a55adead43c61cb1d4394381)
-
- Conflicts:
- debian/ceph-test.install
- src/.gitignore
- src/test/ceph-helpers.sh (doesn't exist in firefly)
- src/test/ceph_objectstore_tool.py
- src/tools/ceph_objectstore_tool.cc
-
-commit 4b51645fdfe8a761f7ebc0faee1a87187d498fee
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 12 13:35:43 2014 -0800
-
- vstart.sh: warn less
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a69b8450f642af91a352d0de4378d93828291933)
-
-commit 3075919c0dcee1f33a0beb299e98d8a88836c5f8
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Nov 17 23:02:50 2014 -0800
-
- ceph_objectstore_tool: When exporting to stdout, don't cout messages
-
- Fixes: #10128
- Caused by a2bd2aa7
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0d5262ac2f69ed3996af76a72894b1722a27b37d)
- (cherry picked from commit 6cb9a2499cac2645e2cc6903ab29dfd95aac26c7)
-
-commit ca9df2803f3200431f5f7ea99a713005f15b7f5a
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Sep 2 14:56:10 2014 +0200
-
- ceph_objectstore_tool.cc: prefer ++operator for non-primitive iterators
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit a5468abe4459159e8a9f7a4f21d082bb414e1cdd)
-
-commit ac396f5df3c51d09b9dbf7e6be7bed1d755d2317
-Author: Zhiqiang Wang <wonzhq@hotmail.com>
-Date: Fri Aug 29 16:39:40 2014 +0800
-
- Test: fixing a compile warning in ceph_objectstore_tool.cc
-
- For the compiler's sake:
- tools/ceph_objectstore_tool.cc:2547:15: warning: ‘r’ may be used
- uninitialized in this function [-Wmaybe-uninitialized]
-
- Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
- (cherry picked from commit c3e1466b46076f133b62f98e2c0b712bdde0e119)
-
-commit b863970110e7f8e835e77864ea59b81f0b026158
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Aug 20 01:33:45 2014 -0700
-
- ceph_objectstore_tool: Bug fixes and test improvements
-
- ceph_objectgstore_tool:
- Fix bugs in the way collection_list_partial() was being called
- which caused objects to be seen over and over again.
-
- Unit test:
- Fix get_objs() to walk pg tree for pg with sub-directories
- Create more objects to test object listing code
- Limit number of larger objects
- Limit number of objects which get attributes and omaps
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a03f719eb3a46f410550afce313e6720e0c27946)
-
-commit 4f83005bb8a615df370de7b6dfe5d926c7cfef7f
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue Aug 5 18:26:11 2014 -0700
-
- ceph_objectstore_tool, test: Implement import-rados feature and unit test code
-
- Fixes: #8276
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 23ec93a86140c4b271b45d87c62682288079cbba)
-
-commit df334617705fe862b820ef5de674ae54efad0cea
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Aug 6 19:53:43 2014 -0700
-
- test: ceph_objectstore_tool unit test improvements
-
- Add namespaces to testing
- Increase filesize so export will have multiple chunks
- Put json for each object into the db dict
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
-
-commit ecd25cf6ce1a1a34e536c7fd313225b3bdedd2e0
-Author: David Zafman <david.zafman@inktank.com>
-Date: Thu Aug 7 13:31:48 2014 -0700
-
- ceph_objectstore_tool: Add operation "rm-past-intervals" for testing purposes
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3694068b67fd625495c4511390bc5bcbfbbd28f5)
-
-commit 6b50b384efc1f0735f8635a59663b50e3155de1a
-Author: David Zafman <david.zafman@inktank.com>
-Date: Thu Aug 7 11:46:08 2014 -0700
-
- ceph_objectstore_tool: Add past_intervals to export/import code
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 9325ec15d4b89c5537cbcbda4c7594e25dc6e7df)
-
-commit 63529079b97c99cbaa863e1be865e2693e90c556
-Author: David Zafman <david.zafman@inktank.com>
-Date: Thu Aug 7 14:11:21 2014 -0700
-
- ceph_objectstore_tool: Minor improvements
-
- Make all non-error non-debug output to stdout
- Fix a message
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit a2bd2aa7babb4ad45ba21c70f9d179fda27742aa)
-
-commit 5e3f89ece7bdd09ed06ca4208cfa0a0b3104f109
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue Aug 5 12:26:42 2014 -0700
-
- ceph_objectstore_tool, test: Add list-pgs operations and unit test case
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit f01e334c697057158354f0ce5ecff6d6ba8e2704)
-
-commit edc9f71efeebe5241004c669cc58089905907634
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Jul 30 12:39:49 2014 -0700
-
- Complete replacement of ceph_filestore_tool and ceph_filestore_dump
- with unified ceph_objectstore_tool
-
- Move list-lost-objects and fix-lost-objects features from
- ceph_filestore_tool to ceph_objectstore_tool as list-lost, fix-lost
- Change --type to --op for info, log, export...operations
- Add --type for the ObjectStore type (defaults to filestore)
- Change --filestore-path to --data-path
- Update installation, Makefile.am, and .gitignore
- Fix and rename test case to match
- Add some additional invalid option checks
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 83fbc91e5c4e52cc1513f34908f99d2ac3b930df)
-
-commit a42273ecd955470105cba1cc4ac7eb782ac46833
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed Jul 30 11:22:29 2014 -0700
-
- Renames and removal towards a unified ceph_objectstore_tool
-
- Rename ceph_filestore_dump.cc and ceph_filestore_dump.py
- Remove ceph_filestore_tool.cc
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 77864193a1162393ade783480aee39a232934377)
-
-commit 9ee2c27096784efceb02b06a0df4325979385f44
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue May 20 11:19:19 2014 -0700
-
- ceph_filestore_dump: Add set-omaphdr object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit b4d95cc85af9af64d33d541cd69c5f28fd45423b)
-
-commit c7d261d40367ab01a577bf255da776a622f8984a
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue May 20 10:44:37 2014 -0700
-
- ceph_filestore_dump: Add get-omaphdr object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 30c0f3114e665acdd99e64bf0d2a7399b33e8d61)
-
-commit 271e3ca19b9e878c6c3c26a9ec461faf06e7a19d
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 20:55:47 2014 -0700
-
- ceph_filestore_dump: Add rm-omap object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 0fc6bd2777edf24a044f454beacf1647cc52f9fe)
-
-commit 20165d101a30c6beb591ca56b56bdf5505f70cf3
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 20:47:14 2014 -0700
-
- ceph_filestore_dump: Add set-omap object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 50cd57e902fe508f98f63fea30626780b07561d9)
-
-commit 7547f3d17bc89437c529aa96413b0bebb808da5e
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 20:37:01 2014 -0700
-
- ceph_filestore_dump: Add get-omap object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit b50c43ce5e52f5bbcb3684f6793d50f34ed741d1)
-
-commit f391feb1f50632adbe94c3e8cdc4b75091d6b8e1
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 18:33:24 2014 -0700
-
- ceph_filestore_dump: Add rm-attr object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 465d77733c7499fbd65bebe7141895714c625e0d)
-
-commit 7bd2dd3a1d022df6d3f886ad12a191d0cfcef1d6
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 18:17:27 2014 -0700
-
- ceph_filestore_dump: Add set-attr object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 95554e03dcb74b6d74b2f1b2891b3570abb187b8)
-
-commit 6724da821158ddee6ef6ee7b5bac9e97dcfc2292
-Author: David Zafman <david.zafman@inktank.com>
-Date: Thu May 15 15:50:48 2014 -0700
-
- ceph_filestore_dump: Add get-attr object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 55d43c0e20fc853daec134449b9954248fd7ef31)
-
-commit 55c21b898834d77234227d3fc14c8580ef698663
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 17:52:09 2014 -0700
-
- ceph_filestore_dump: Add set-bytes object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3c24d1f46a624d0a053ad234997a1f8c8b036db5)
-
-commit 2f1926d2f57082666350d8223b09f61da5f95b6f
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 17:51:29 2014 -0700
-
- ceph_filestore_dump: Add get-bytes object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 869dd92cc8ec29a3a684f88c335d359f225bba24)
-
-commit fcabb8133af3b90d5d9e976ce658ceccfc5b89c5
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 17:50:16 2014 -0700
-
- ceph_filestore_dump: Add list-omap object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 48890c7741d76cf92b5f589f49378ca57292e88b)
-
-commit 303e4cedd91ca3553e956eec495a05e3136b3c56
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 18:32:42 2014 -0700
-
- ceph_filestore_dump: Add list-attrs object command
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 00c6b0673288ca76fe144575b7af76eaa36f5857)
-
-commit aff2c995f67bdde1a592a9b24e4e96e85735d500
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 17:39:17 2014 -0700
-
- ceph_filestore_dump: Add --type list to output objects in a pg in json
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 844dabb7f311e68eba0293ae9ca4c68521745877)
-
-commit 7cda8b7a0b43d709b73d875088ecd169f47d59ab
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 17:44:31 2014 -0700
-
- ceph_filestore_dump: Add remove object command and usage for new commands
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 605caec64b036f8ab5ae451d7e9e7515d414f28e)
-
-commit a4694643ae4503746d3fac8a0feac706ddc13a16
-Author: David Zafman <david.zafman@inktank.com>
-Date: Fri Jun 6 17:05:53 2014 -0700
-
- ceph_filestore_dump: Add utility function get_fd_data()
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit d4a9dafe442f139562497d746f80ba49faa954e8)
-
-commit 62dc823fb3b969c0ad52594419e8a86a3ff1e6ef
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 19 18:16:52 2014 -0700
-
- ceph_filestore_dump: Fail import/export with a tty for stdin/stdout
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 7520e504cf2cdd3de2f236acb2cbf8a5016e6698)
-
-commit 9816f872ad59bcaa1a125b297f3991b333aad39c
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue May 20 11:56:20 2014 -0700
-
- ceph_filstore_dump: Save if stdout is a tty and add routine to clean binary strings
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3a574cc78b0e3ec6d8dd0c39ee20e7a54ad64056)
-
-commit d4aedeb833f23bf4ce6187cb82910ab2e71d48e5
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 15:30:11 2014 -0700
-
- common: Add missing ghobject_t::decode() for json
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit c05f895d15a1d0e78ff5e9ae1a83f0a5424103d0)
-
- Changes:
- Adjusted for older shard_t
-
-commit dadecb1e05e528093642ba356fa7a70a0b546727
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 15:37:17 2014 -0700
-
- ceph_filestore_dump: Add --skip-journal-replay and --skip-mount-omap
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 2e9dcb256509e7c921556202052f0cc1dcd91398)
-
-commit c6369987b1e1e55a9d0ab0bc328f61f52fc608d0
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 15:41:15 2014 -0700
-
- os: Add optional flags to generic ObjectStore creation (SKIP_JOURNAL_REPLAY
- and SKIP_MOUNT_OMAP)
-
- Only FileStore cares about these flags, so passed on during create()
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 3d9fde9d92322cd8ac3e3d8bcbf5b0a01ef0528b)
-
- Conflicts:
- src/os/FileStore.cc
-
-commit 3381aebb113d14249f6998a86ebf6b4ec6adc42d
-Author: David Zafman <david.zafman@inktank.com>
-Date: Fri May 16 18:20:11 2014 -0700
-
- ceph_filestore_dump: Improve debug output by showing actual offset
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 44b261d5d1b36528bfbcb37dbd866b615e14be99)
-
-commit 1164b2e1610028a40cddbed09f9da5649bd2023a
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 12:36:37 2014 -0700
-
- ceph_filestore_dump: Use cerr now that we aren't closing stderr
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 087c0f9d31e0f3d5bae7eac6231978105a71677e)
-
-commit f224429aa4fcba897be5e438bbb49d1025e2c482
-Author: David Zafman <david.zafman@inktank.com>
-Date: Wed May 14 12:42:21 2014 -0700
-
- common,ceph_filestore_dump: Add ability for utilities to suppress library dout output
-
- Suppress dout output with CODE_ENVIRONMENT_UTILITY_NODOUT
- ceph_filestore_dump turns on dout output if --debug specified
- When used it can still be enable with --log-to-stderr --err-to-stderr
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit f7f9b251fc377651d8da4cbfd1942c3b86f3247e)
-
-commit 3f4cabdb84e58fcec0c3f508f980881c59fba948
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue May 13 18:27:30 2014 -0700
-
- ceph_filestore_dump: Export omap in batches for large omap case
-
- New function get_omap_batch()
- Create a TYPE_OMAP section for each batch
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 501dd3c05b8983159a289b021943cb828b908f53)
-
-commit 0b757af5be338b65fd9124ac5158bfe02ad5f899
-Author: David Zafman <david.zafman@inktank.com>
-Date: Mon May 12 15:50:34 2014 -0700
-
- ceph_filestore_dump: Remove unused bufferlist databl
-
- Signed-off-by: David Zafman <david.zafman@inktank.com>
- (cherry picked from commit 398b418e2b9f8260bcfacac8bcebea5beffcceca)
-
-commit 4a742fe29b6d959912a38d132344c695f89dd34f
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed May 7 14:12:15 2014 +0200
-
- ceph_filestore_dump.cc: cleanup includes
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 8620609884243596d35b69c571d2da751e63cf2b)
-
-commit 420ea03aa3cd52bd035d31ba111c3d6d0745352d
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Jan 29 18:19:16 2015 +0100
-
- librados: rectify the guard in RadosClient::wait_for_osdmap().
-
- RadosClient::wait_for_osdmap() did not signalize lack of connection
- via -ENOTCONN error code when the Objecter instance was allocated.
- The proper way is to check the connection state explicitly.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 34473f78f101d87d2606e0e7112682a47ff24830)
-
- Conflicts:
- src/librados/RadosClient.cc
- the modified guard was not present: add the new guard instead
- of modifying it
-
-commit 1b2667211f90a1b630d2ddffe99b0fb00bb3c07c
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon Jan 19 15:07:21 2015 +0100
-
- librados: fix resources leakage in RadosClient::connect().
-
- If RadosClient::connect was called a second time (which could
- happen as a part of recovery from failure), the instances
- of Objecter and Messenger allocated by the first call were leaked.
-
- Additionally, the implementation of the method wrongly reported
- memory allocation problems -- it throwed std::bad_alloc exception
- instead of returning -ENOMEM error code.
-
- Fixes: #10425
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 624c056da093c8741242892413438a291c03c7d5)
-
- Conflicts:
- src/librados/RadosClient.cc
- resolve adding (std::nothrow) that failed because the
- prototype of the constructor is not the same
-
-commit 4e32ff2b60549742d01b18429810c89f5f707548
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Dec 5 15:29:52 2014 -0800
-
- osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::operator==
-
- Fixes: 10259
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1ac17c0a662e6079c2c57edde2b4dc947f547f57)
-
-commit 6e58732f546ec6241b198d2473902d66327cdc36
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Mon Jan 19 18:49:15 2015 +0000
-
- mon: PGMonitor: skip zeroed osd stats on get_rule_avail()
-
- Fixes: #10257
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit b311e7c36273efae39aa2602c1f8bd90d39e5975)
-
- Conflicts:
- src/mon/PGMonitor.cc
- ceph::unordered_map changed the context, simple resolution
-
-commit bcc8cfb24a96a7874a24760771755088a231a8d7
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 16 18:13:05 2015 +0000
-
- mon: PGMonitor: available size 0 if no osds on pool's ruleset
-
- get_rule_avail() may return < 0, which we were using blindly assuming it
- would always return an unsigned value. We would end up with weird
- values if the ruleset had no osds.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 8be6a6ab2aa5a000a39c73a98b11a0ab32fffa1c)
-
-commit 894c8ad26fd2da203dcbf8eb0ad5e2af0223d5a9
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 16 18:12:42 2015 +0000
-
- mon: PGMonitor: fix division by zero on stats dump
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 50547dc3c00b7556e26b9a44ec68640c5c3a2384)
-
-commit 1e58bb49b99118d064c1ca92e42cbfb2786fdaff
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 17 16:06:55 2014 +0100
-
- crush: set_choose_tries = 100 for erasure code rulesets
-
- It is common for people to try to map 9 OSDs out of a 9 OSDs total ceph
- cluster. The default tries (50) will frequently lead to bad mappings for
- this use case. Changing it to 100 makes no significant CPU performance
- difference, as tested manually by running crushtool on one million
- mappings.
-
- http://tracker.ceph.com/issues/10353 Fixes: #10353
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 2f87ac807f3cc7ac55d9677d2051645bf5396a62)
-
- Conflicts:
- src/erasure-code/lrc/ErasureCodeLrc.cc
- safely ignored because the file does not exist
-
-commit 27dbbb3c312ea68a96b011ccb12394c75c0fb0f3
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Feb 12 13:49:50 2015 -0800
-
- mon/OSDMonitor: do not trust small values in osd epoch cache
-
- If the epoch cache says the osd has epoch 100 and the osd is asking for
- epoch 200+, do not send it 100+.
-
- Fixes: #10787
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a5759e9b97107488a8508f36adf9ca1aba3fae07)
diff --git a/src/ceph/doc/changelog/v0.80.11.txt b/src/ceph/doc/changelog/v0.80.11.txt
deleted file mode 100644
index beb1ea9..0000000
--- a/src/ceph/doc/changelog/v0.80.11.txt
+++ /dev/null
@@ -1,3184 +0,0 @@
-commit 8424145d49264624a3b0a204aedb127835161070 (tag: refs/tags/v0.80.11, refs/remotes/gh/firefly)
-Author: Jenkins Build Slave User <jenkins-build@jenkins-slave-wheezy.localdomain>
-Date: Tue Nov 17 18:57:48 2015 +0000
-
- 0.80.11
-
-commit 2a14d16712fbe2ee9d7d2aef389e18fcb2809a47
-Merge: c551622 a06179a
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Mon Nov 2 14:34:28 2015 -0800
-
- Merge pull request #6451 from jcsp/wip-firefly-urls
-
- qa: http://ceph.com/qa -> http://download.ceph.com/qa
-
-commit a06179acb268b073fcf67fbbf19152c1a5a275af
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 24 18:10:46 2015 -0400
-
- qa: http://ceph.com/qa -> http://download.ceph.com/qa
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d4d65fbd6ad15320339751c604613ac63511e645)
-
-commit c551622ca21fe044bc1083614c45d888a2a34aeb
-Merge: 241edfa bff2f47
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 23 21:47:27 2015 +0200
-
- Merge pull request #5823 from SUSE/wip-11700-firefly
-
- make the all osd/filestore thread pool suicide timeouts separately configurable
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 241edfabf6a6c767afc1e283dd7387377ece36c7
-Merge: 07e90f5 f39c791
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 23 21:01:54 2015 +0200
-
- Merge pull request #5815 from SUSE/wip-12838-firefly
-
- Mutex Assert from PipeConnection::try_get_pipe
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 07e90f54318c0a6202add4de16f965c6e331d513
-Merge: eaf7dc3 d0d6727
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 22 18:19:39 2015 +0200
-
- Merge pull request #5529 from SUSE/wip-12586-firefly
-
- FileStore calls syncfs(2) even it is not supported
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit eaf7dc343eb78f09d9a4b1815f6bd6ceb4217ad7
-Merge: a960327 98769f7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 22 07:44:12 2015 -0700
-
- Merge pull request #5532 from SUSE/wip-12635-firefly
-
- swift smoke test fails on TestAccountUTF8
-
-commit a96032738ba1e1cc35f21607eba06e7e241abd97
-Merge: 15f3628 86f9e55
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 22 07:33:02 2015 -0700
-
- Merge pull request #5997 from SUSE/wip-13178-firefly
-
- rgw: content length parsing calls strtol() instead of strtoll()
-
-commit 15f362808b7100a5bade24cc78e718b04d391b54
-Merge: e010899 ebba1d5
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 22 10:45:48 2015 +0200
-
- Merge pull request #5526 from SUSE/wip-12584-firefly
-
- OSD crash creating/deleting pools
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e010899ac9cd4060c09f0f1c754f0840b5149f6b
-Merge: 24ffe4c 8c02376
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 22 10:43:29 2015 +0200
-
- Merge pull request #5287 from SUSE/wip-12389-firefly
-
- PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 24ffe4c5156843ce69cae30087fb767063fd489a
-Merge: f48450b c155df2
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 21 10:03:13 2015 +0200
-
- Merge pull request #6328 from dachary/wip-13551-firefly
-
- qemu workunit refers to apt-mirror.front.sepia.ceph.com
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c155df217287b980e176c3c98ee49753d6378740
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Fri Jun 19 00:02:20 2015 +0800
-
- qa: Use public qemu repo
-
- This would allow some external tests outside of sepia lab
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit 4731c1e35539c9506ff3fe3141553fad099d0eee)
-
-commit d9ae7d80850b9ea4a84549c3afb4603cf9585b6a
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 16 08:29:41 2015 -0700
-
- use git://git.ceph.com
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 34c467ba06345eacd2fd0e79c162dfd0b22f0486)
-
- Conflicts:
- qa/run_xfstests-obsolete.sh : does not exist in firefly
- qa/workunits/suites/fsx.sh : trivial resolution
-
-commit f48450bdc70eef7cef8f76bc30f678a6d8d52b78
-Merge: f275ad2 b894b36
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 21 01:02:08 2015 +0200
-
- Merge pull request #5822 from SUSE/wip-12837-firefly
-
- WBThrottle::clear_object: signal on cond when we reduce throttle values
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit f275ad21a48cc4f2812f3ab9e3e9b8b05469c3c7
-Merge: 143e267 81bb6dd
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:48:39 2015 +0200
-
- Merge pull request #6325 from dachary/wip-13041-firefly
-
- common/Thread:pthread_attr_destroy(thread_attr) when done with it
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 143e267a30ef7aac04fdfa530babab529cf30c1a
-Merge: 725401e 6d396a3
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:46:28 2015 +0200
-
- Merge pull request #6091 from SUSE/wip-13252-firefly
-
- mon: does not check for IO errors on every transaction
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 725401e05d0fbe41d93b200fe39d73d9dddae80c
-Merge: 8fd4dd7 c85d063
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:45:19 2015 +0200
-
- Merge pull request #6087 from SUSE/wip-13244-firefly
-
- client nonce collision due to unshared pid namespaces
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8fd4dd7480148c664d2c99956a7c987b8707c3c3
-Merge: 77a1b5f 6d82eb1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:44:32 2015 +0200
-
- Merge pull request #6010 from liewegas/wip-globalid-firefly
-
- increase globalid default for firefly
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 77a1b5f1292d8410a1c29cebb0da449b09a230d3
-Merge: a3823fe 8c14cad
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:43:33 2015 +0200
-
- Merge pull request #5991 from SUSE/wip-13043-firefly
-
- ThreadPool add/remove work queue methods not thread safe
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit a3823fe76171479e4c8f071f6e8eee3f13a02441
-Merge: e771054 48c929e
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:42:28 2015 +0200
-
- Merge pull request #5988 from SUSE/wip-13038-firefly
-
- PG::handle_advance_map: on_pool_change after handling the map change
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e771054241fcba536a478f1d014feb20a434fa3f
-Merge: e43d049 cd1396c
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:41:19 2015 +0200
-
- Merge pull request #5820 from SUSE/wip-12845-firefly
-
- osd/PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size())
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e43d0492a415be5a0feb361efbfbdda6e00a6234
-Merge: 11ed9f9 2c2ffa1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:40:28 2015 +0200
-
- Merge pull request #5814 from SUSE/wip-12840-firefly
-
- recursive lock of md_config_t (0)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 11ed9f9b263a1d3a8df7996d5644f0f6de7a9b1a
-Merge: aead425 2c0d7fe
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:39:32 2015 +0200
-
- Merge pull request #5813 from SUSE/wip-12822-firefly
-
- ceph-fuse crash in test_client_recovery
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit aead4255528e60a2ccc6f4d47a6cb482bfdccc82
-Merge: 1c65d09 d3c9469
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:37:58 2015 +0200
-
- Merge pull request #5726 from ceph/wip-12752
-
- is_new_interval() fixes
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1c65d09ef8de2732cfa6f18d22de2c7b3fac0f0f
-Merge: 1f0f4bb 411769c
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:37:01 2015 +0200
-
- Merge pull request #5698 from tchaikov/wip-12638-firefly
-
- mon: add a cache layer over MonitorDBStore
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1f0f4bb5347cb935095dd374d6dcdec44ff175e2
-Merge: 4a1e54f 278d732
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:35:56 2015 +0200
-
- Merge pull request #5619 from liewegas/wip-journal-firefly
-
- os/FileJournal: Fix journal write fail, align for direct io
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
-
-commit 4a1e54fc88e43885c57049d1ad4c5641621b6c29
-Merge: f272435 de53add
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:31:52 2015 +0200
-
- Merge pull request #5360 from ceph/wip-11786.firefly
-
- mon: MonitorDBStore: get_next_key() only if prefix matches
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f272435c1303327e7dae248179387d12e28ea6bc
-Merge: 21452ed e7d08b1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:30:04 2015 +0200
-
- Merge pull request #5236 from SUSE/wip-12312-firefly
-
- mon: adding exsting pool as tier with --force-nonempty clobbers removed_snaps
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 21452ed93b707984d5301a51040ba8c311678c9c
-Merge: 14c8528 971eb3f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 21:28:31 2015 +0200
-
- Merge pull request #5050 from SUSE/wip-12015-firefly
-
- LibRadosTwoPools[EC]PP.PromoteSnap failure
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 14c85282399aca29a31566e0f068376b10cb95e6
-Merge: b6d5768 7a8b6fb
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 13:09:38 2015 +0200
-
- Merge pull request #6207 from SUSE/wip-13417-firefly
-
- Fix -Wno-format and -Werror=format-security options clash
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit b6d57686e1f482bf510e6c6c0ae56cff575f3eca
-Merge: fca8a17 415335d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 13:08:01 2015 +0200
-
- Merge pull request #6203 from SUSE/wip-13413-firefly
-
- fedora21 has junit, not junit4
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit fca8a17bbb91ce5b3cb0c6a282cded03fe37956f
-Merge: 6240b61 20ad17d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 13:06:14 2015 +0200
-
- Merge pull request #5992 from SUSE/wip-13168-firefly
-
- upstart: configuration is too generous on restarts
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6240b61fc48e4f7b306ec18eca51f40081b5160d
-Merge: d2459d8 04b2a87
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 13:04:40 2015 +0200
-
- Merge pull request #5541 from dachary/wip-12418-firefly
-
- ceph-disk: sometimes the journal symlink is not created
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d2459d8b9c189e557f81bb7d10dd17cc53cf9af1
-Merge: 3e0e3c5 644f213
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 12:36:01 2015 +0200
-
- Merge pull request #5729 from ceph/wip-11455-firefly
-
- rgw: init some manifest fields when handling explicit objs
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3e0e3c518bf68e9d0ad7a79d804602634b9c6466
-Merge: e44a777 e7931a7
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 12:35:22 2015 +0200
-
- Merge pull request #5730 from ceph/wip-12537-firefly
-
- RGW returns requested bucket name raw in "Bucket" response header
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e44a7775fb34ccdf7ff36e5e56aba9a309521be1
-Merge: 028da25 3be204f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 20 12:34:01 2015 +0200
-
- Merge pull request #5831 from gnuoy/wip-11140-firefly
-
- /etc/init.d/radosgw restart does not work correctly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 81bb6dd7de8a191c11c16b3cdc07355ef3434435
-Author: zqkkqz <zheng.qiankun@h3c.com>
-Date: Fri Aug 7 10:49:45 2015 +0800
-
- Common/Thread: pthread_attr_destroy(thread_attr) when done with it
- When a thread attributes object is no longer required, it should be destroyed using the
- pthread_attr_destroy() function. Destroying a thread attributes object has no effect on threads that were created using that object.
-
- Fixes: #12570
- Signed-off-by: zqkqkz zheng.qiankun@h3c.com
- (cherry picked from commit 9471bb838a420ef5f439191d87e5388fecccb9e6)
-
-commit 77d6426a8323db91a60f246f385826c35f31521c
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Fri Jul 17 12:43:52 2015 +0200
-
- Thread.cc: remove malloc/free pair
-
- There's no need for mallocing pthread_attr_t in Thread::try_create(),
- it can be located on stack as it is freed in same function. This reduces
- pressure put on memory manager.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit 614ac0f4e375f3dd008c8937d3f89f6005d6e0a0)
-
-commit 7a8b6fb4c7b80c33dd3565fc4140d45fe70f0438
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Aug 15 19:34:27 2014 +0200
-
- Fix -Wno-format and -Werror=format-security options clash
-
- This causes build failure in latest fedora builds, ceph_test_librbd_fsx adds -Wno-format cflag but the default AM_CFLAGS already contain -Werror=format-security, in previous releases, this was tolerated but in the latest fedora rawhide it no longer is, ceph_test_librbd_fsx builds fine without -Wno-format on x86_64 so there is likely no need for the flag anymore
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7df67a544f6401fd31157b6e2a6ca590d87d7cbc)
-
- Conflicts:
- src/test/Makefile.am
-
-commit 415335df53bf0d6b42f745b038c1c0c9c4aaa810
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 3 16:14:23 2015 +0100
-
- ceph.spec.in: junit always except for EPEL 6
-
- The package was renamed a long time ago (around the Fedora 15
- timeframe). The "junit4" name is only relevant for EPEL 6. For EPEL 7
- and Fedora 20, the "junit" package has "Provides: junit4". And most
- recently, in the junit package that ships in Fedora 21 and 22, the
- package maintainer dropped the old Provides: line.
-
- http://tracker.ceph.com/issues/10728 Fixes: #10728
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 4f36eaee9ea71ed48018ccb2d7eac3e809c72d82)
-
-commit 98769f7ccf97d6a0c98438f1eab7a5705fb9920b
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Fri Sep 4 01:07:48 2015 +0000
-
- Fix casing of Content-Type header
-
- It turns out, despite the HTTP spec declaring that header field names
- should be case-insensitive, some clients treat them wrongly, and
- consider "Content-type" to not match "Content-Type".
-
- CyberDuck was one of those clients, now fixed upstream in
- https://trac.cyberduck.io/ticket/8999
-
- To reduce future occurances of this bug, fix the casing of the
- Content-Type header, to strictly comply with the HTTP specification (be
- strict about what you send, and generous about what you receive).
-
- Fixes: #12939
- Backport: hammer, firefly
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 1b9fbffdc24160251b96cec820d62fb2a12b6eab)
-
-commit ccf268502b0592f5ff58cd1a5920ec02a117acfb
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 13 15:02:03 2015 +0200
-
- rgw: we should not overide Swift sent content type
-
- Fixes: #12363
- backport: hammer
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 423cf136f15df3099c9266f55932542d303c2713)
-
-commit 6829ee29a484a3b7055122addcda06a233d3ce53
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Jun 25 18:28:50 2015 +0200
-
- rgw: send Content-Length in response for GET on Swift account.
-
- Fixes: #12158
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5f47b11791cd46ce2771046e4888575869cc9685)
-
- Conflicts:
- src/rgw/rgw_rest_swift.cc
- omit dump_account_metadata() call
-
-commit c9226afd7b9e54a8998bf88dfbd6753b262fdf9d
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Jun 23 11:54:09 2015 +0200
-
- rgw: enforce Content-Type in Swift responses.
-
- Swift sends Content-Type HTTP header even if the response
- doesn't contain body. We have this behaviour implemented
- until applying some changes in end_header() function.
- Unfortunately, lack of Content-Type causes early exits in
- many Tempest's tests for Swift API verification.
-
- Fixes: #12157
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 106aeba206736d4080326f9bc191876bed63370b)
-
-commit 9139fbbc1ab3ae455d2e36b3a768601ccb216801
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jun 22 13:51:49 2015 +0200
-
- rgw: force content_type for swift bucket stats request
-
- Fixes: 12095
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit da259e4da1329e1e448d75c48c6ee3d1318e19b2)
-
-commit 767f1f74c9f015d6bb3376266ec77a10a2d2c59a
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Apr 21 12:31:19 2015 +0200
-
- rgw: force content-type header for swift account responses without body
-
- This regression was introduced in commit 4cfeca03ade21861ab70ca759f94eb244c16cb39
-
- Fixes: #11438
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 009664e560ee37ef6dc170a0155d6c749e151b06)
-
-commit e3da03dd6be04e782c3e5786767bba4b4964fbec
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Apr 9 20:04:59 2015 +0200
-
- rgw: shouldn't return content-type: application/xml if content length is 0
-
- Fixed: #11091
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 5cc92bb27cfbaee4af24dc312c9b98331f899794)
-
-commit e7d08b1bca951f9a963eb0aeb4cd88abbe5723ba
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 8 10:26:48 2015 -0700
-
- test/librados/tier.cc: destroy and recreate cache pool on every test
-
- Namespaces are not sufficient with the checks for 11493 in the mon.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bef09e0cdb274cb1c87335a2af9ee532d14a4596)
-
-commit d7f53442260dcfc92e7afa8bba2dd116c15e030d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 29 12:34:25 2015 -0700
-
- mon: prevent pool with snapshot state from being used as a tier
-
- If we add a pool with snap state as a tier the snap state gets clobbered
- by OSDMap::Incremental::propogate_snaps_to_tiers(), and may prevent OSDs
- from starting. Disallow this.
-
- Include a test.
-
- Fixes: #11493
- Backport: hammer, giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bbec53edf9e585af4e20bbc9ba9057d6fdfda342)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
- properly co-exist with "# make sure we can't create an ec pool tier"
- src/mon/OSDMonitor.cc
- properly co-exist with preceding "if (tp->ec_pool())"
- (The changes to both files would have applied cleanly if
- https://github.com/ceph/ceph/pull/5389 had not been merged first.)
-
-commit 028da252d85733fcc7d8495750b9ae97043cb0dd
-Merge: ecabc67 f71a6eb
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Oct 3 09:40:33 2015 +0200
-
- Merge pull request #5993 from SUSE/wip-13169-firefly
-
- update docs to point to download.ceph.com
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 971eb3f6dddb509d15e5e4bcfd5e34d42ae2e75b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Nov 13 22:33:10 2014 -0800
-
- ceph_test_rados_api_tier: fix cleanup of whiteouts
-
- Doing a normal DELETE on a whiteout returns ENOENT. Use the IGNORE_CACHE
- flag to make sure it removes the whiteout, too.
-
- Fixes: #10052
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8dde6a61921798aa188bd69406c8fa7afeb96b45)
-
- Conflicts:
- src/test/librados/TestCase.cc
- for it of type ObjectIterator:
- - use it->first instead of it->get_oid()
- - use it->second instead of it->get_locator()
-
-commit b134a629863b4601892db03d7c4377040d556bdd
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Nov 13 22:32:20 2014 -0800
-
- osd/ReplicatedPG: allow whiteout deletion with IGNORE_CACHE flag
-
- If the client specifies IGNORE_CACHE, allow a regular DELETE to zap a
- whiteout. Expand test case to verify this works.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 34e4d24)
-
- Conflicts:
- src/test/librados/tier.cc
- replaced NObjectIterator -> ObjectIterator
- replaced cache_ioctx.nobjects_begin -> cache_ioctx.objects_begin
- replaced cache_ioctx.nobjects_end -> cache_ioctx.objects_end
- replace it->get_oid() with it->first for it of type ObjectIterator
-
-commit 6d396a322e5ad61a3ca262b1c78a670481ff740c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 10:58:01 2015 -0400
-
- mon/Elector: do a trivial write on every election cycle
-
- Currently we already do a small write when the *first* election in
- a round happens (to update the election epoch). If the backend
- happens to fail while we are already in the midst of elections,
- however, we may continue to call elections without verifying we
- are still writeable.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ef909ccbdc303cce8a39edef255325127832ff16)
-
- Conflicts:
- src/mon/Elector.cc
- no MonitorDBStore::TransactionRef in firefly
-
-commit d2bfa19077422eea37205fee9ed6fd5f2692f222
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 10:58:13 2015 -0400
-
- mon/MonitorDBStore: assert/crash if there is a write error
-
- Do this globally intead of relying on teh zillion mon callers to
- check the error code. There are no cases where we want to
- tolerate a commit failure.
-
- Fixes: #13089
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2fb7b1f0e33ada7c9a1be3de2f7708eb0760fcef)
-
-commit c85d06384e795ab2717868ce45f01ae93181a6be
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Sep 21 15:46:42 2015 -0700
-
- use simplifed messenger constructor for clients
-
- This is all mechanical except the calculation of the nonce, which is
- now always randomized for clients.
-
- Fixes: #13032
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit a3a8c85b79afef67681c32c57b591c0e0a87a349)
-
- Conflicts:
- src/ceph_fuse.cc
- src/ceph_syn.cc
- src/libcephfs.cc
- src/librados/RadosClient.cc
- src/mds/MDSUtility.cc
- src/mon/MonClient.cc
- src/test/mon/test_mon_workloadgen.cc
- - different arguments to Messenger::create() in firefly
-
-commit ef24b4ec7245959b1960a415617439bc3baac9a3
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 6 21:20:08 2014 -0700
-
- librados: use Messenger factory method
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5a860bec48348ed4c09256ccd394b33ace6b4f52)
-
-commit 3a52acde3133aab2a717fefa967b0d404e50e2d8
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 6 08:50:48 2014 -0700
-
- mon/MonClient: use generic Messenger factory
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e55cb1f68ae1a04cc5d281bea57ee79ef4a8af38)
-
-commit de8da652b6c969aa0446f0d3351f63b012063c71
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Sep 21 15:20:53 2015 -0700
-
- msg: add simplified messenger constructor
-
- Several callers create messengers using exactly the same parameters:
-
- - reading the ms type from cct that is also passed in
- - a default entity_name_t::CLIENT
- - the default features
-
- Additionally, the nonce should be randomized and not depend on
- e.g. pid, as it does in several callers now. Clients running in
- containers can easily have pid collisions, leading to hangs, so
- randomize the nonce in this simplified constructor rather than
- duplicating that logic in every caller.
-
- Daemons have meaningful entity_name_ts, and monitors currently depend
- on using 0 as a nonce, so make this simple constructer
- client-specific.
-
- Related: #13032
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e3785b0b5fbff870adbd5f121021b671912386cf)
-
- Conflicts:
- src/msg/Messenger.cc
- - different #includes in firefly
- - different Messenger::create() arguments in firefly
-
-commit ecabc6796f19c03947bb5b14da4e1b761ff8847f
-Merge: 741dd5b 2e09a2c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 17:09:18 2015 -0400
-
- Merge pull request #6038 from liewegas/wip-13088
-
- common/HeartBeat: include types
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 2e09a2c22ab885f8ec81dbc55f2c8fc0f2984543
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 17:06:52 2015 -0400
-
- common/RWLock: include assert
-
- Fixes atomic_t build issue without libatomic-ops.
-
- Fixes: #13088
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 741dd5b9433d1592ce91aea70ebec106a1354973
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 22 13:03:49 2015 -0400
-
- .gitmodules: fix ceph-object-corpus source url
-
- Fixes: #13196
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit a1997879aa26299519ed157017f8f5715c626dcc
-Merge: ee81812 01dc221
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 22 12:29:08 2015 -0400
-
- Merge pull request #6000 from SUSE/wip-12097-firefly
-
- kernel_untar_build fails on EL7
-
-commit ee8181206726712729235e4a5f8d2094a6e72f71
-Merge: bb8b422 4e7de5b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 21 13:07:49 2015 -0700
-
- Merge pull request #5234 from SUSE/wip-12244-firefly
-
- Civetweb RGW appears to report full size of object as downloaded when only partially downloaded
-
-commit bb8b422beac22bd8c2e9c1ecd83e265a3de1a3e6
-Merge: 4b08895 f602263
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 21 12:35:52 2015 -0700
-
- Merge pull request #4535 from xinxinsh/wip-11416-firefly
-
- rgw: use correct objv_tracker for bucket instance
-
-commit 6d82eb165fdc91851f702a463022b26c50f5094b (refs/remotes/me/wip-globalid-firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Jan 18 16:49:20 2015 -0800
-
- mon: handle case where mon_globalid_prealloc > max_global_id
-
- This triggers with the new larger mon_globalid_prealloc value. It didn't
- trigger on the existing cluster I tested on because it already had a very
- large max.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bbaf582e5bb54ae35327ffd234e4ccf0f07317db)
-
-commit f545a0f430bf6f1e26983fc0ff20a645697f017c
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Jan 18 10:39:25 2015 -0800
-
- mon: change mon_globalid_prealloc to 10000 (from 100)
-
- 100 ids (session 100 authentications) can be consumed quite quickly if
- the monitor is being queried by the CLI via scripts or on a large cluster,
- especially if the propose interval is long (many seconds). These live in
- a 64-bit value and are only "lost" if we have a mon election before they
- are consumed, so there's no real risk here.
-
- Backport: giant, firefly
- Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1d1215fe5f95c2bafee5b670cdae1353104636a0)
-
-commit 01dc221f280ad25aa556f246414e3c3c42762956
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Jun 16 08:13:41 2015 -0700
-
- qa: update to newer Linux tarball
-
- This should make newer gcc releases happier in their default configuration.
- kernel.org is now distributing tarballs as .xz files so we change to that
- as well when decompressing (it is supported by Ubuntu Precise so we should
- be all good).
-
- Fixes: #11758
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 1ea3f47ab806d48ca7b045c2731d344eae3900e1)
-
- Conflicts:
- qa/workunits/kernel_untar_build.sh
- trivial resolution
-
-commit 86f9e55f0c151c0b9a289b475f87b6a11329e6e1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 30 10:51:52 2015 -0800
-
- rgw: use strict_strtoll() for content length
-
- instead of strict_strtol().
-
- Backport: giant, firefly
- Fixes: #10701
-
- Reported-by: Axel Dunkel <ad@dunkel.de>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1c25dbafb45caf1b261cfcec15b868a2ba6b5fef)
-
-commit f71a6ebf1b371f9389865a0a33652841726ff77b
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Fri Sep 18 14:13:02 2015 -0400
-
- doc: correct links to download.ceph.com
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit 387d7800359154950431d0984c756f43f21dd9b4)
-
- Conflicts:
- doc/install/get-packages.rst
- preferred the new version in all cases
-
-commit 20ad17d271fb443f6c40591e205e880b5014a4f3
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 3 14:57:34 2015 -0400
-
- upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s)
-
- It may take tens of seconds to restart each time, so 5 in 30s does not stop
- the crash on startup respawn loop in many cases. In particular, we'd like
- to catch the case where the internal heartbeats fail.
-
- This should be enough for all but the most sluggish of OSDs and capture
- many cases of failure shortly after startup.
-
- Fixes: #11798
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit eaff6cb24ef052c54dfa2131811758e335f19939)
-
-commit 8c14cad0895590f19a6640c945b52213f30a9671
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 10 19:10:19 2015 -0400
-
- WorkQueue: add/remove_work_queue methods now thread safe
-
- These methods were not acquiring the ThreadPool lock when
- manipulating the work_queue collection. This was causing
- occasional crashes within librbd when opening and closing
- images.
-
- Fixes: #12662
- Backport: hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e18449b01c1ab78d1bbfc1cf111aa9bdbef7b1f)
-
-commit 48c929e689b0fa5138922fcb959be5d05296e59a
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 27 11:08:33 2015 -0700
-
- PG::handle_advance_map: on_pool_change after handling the map change
-
- Otherwise, the is_active() checks in the hitset code can erroneously
- return true firing off repops stamped with the new epoch which then get
- cleared in the map change code. The filestore callbacks then pass the
- interval check and call into a destroyed repop structure.
-
- Fixes: 12809
- Backport: hammer,firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 14e02bc90a463805f4c3e2de210892067a52514b)
-
-commit 4b0889567d7fe28ef6976f8dbb0d329b03200986
-Merge: 0a740d7 5426421
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Sep 10 11:46:41 2015 +0200
-
- Merge pull request #5200 from SUSE/wip-12289-firefly
-
- mon: scrub error (osdmap encoding mismatch?) upgrading from 0.80 to ~0.80.2
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit de53addac8234037a66cdd45cf8007deba7a0530 (refs/remotes/gh/wip-11786.firefly)
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Mon Sep 7 14:12:19 2015 +0100
-
- mon: MonitorDBStore: make get_next_key() work properly
-
- We introduced a significant bug with 2cc7aee, when we fixed issue #11786.
- Although that patch would fix the problem described in #11786, we
- managed to not increment the iterator upon returning the current key.
- This would have the iterator iterating over the same key, forever and
- ever.
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 70d31082fd3dc8c7857994104577f1a3631c678c)
-
-commit 0a740d7b2b62e55056fb96d6423203c47e0f3cf6
-Merge: aeea956 37d16a9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 15:45:37 2015 +0200
-
- Merge pull request #5388 from SUSE/wip-12490-firefly
-
- buffer: critical bufferlist::zero bug
-
- Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
-
-commit aeea9567e8b047b3a67badfcc4e43c880f0efa46
-Merge: 973b74d 6b42b06
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 06:10:09 2015 +0200
-
- Merge pull request #5408 from SUSE/wip-12492-firefly
-
- the output is wrong when runing ceph osd reweight
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 973b74d5b266f4e9e7f992a85b22f42c9fb543b1
-Merge: 79403ba 5445461
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 06:07:51 2015 +0200
-
- Merge pull request #5404 from SUSE/wip-12395-firefly
-
- register_new_pgs() should check ruleno instead of its index
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 79403ba8ce526d65521e6cd2ca2bc06f5fe261b9
-Merge: db44bb2 dc12875
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 06:05:39 2015 +0200
-
- Merge pull request #5199 from SUSE/wip-11980-firefly
-
- MDSMonitor: handle MDSBeacon messages properly
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit db44bb29b8b036642c50f5d322b5edd9d51699bb
-Merge: fc699f4 31ff7d1
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 06:04:15 2015 +0200
-
- Merge pull request #5410 from SUSE/wip-12497-firefly
-
- get pools health'info have error
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit fc699f42459ab3723f3e63b28a4aa5f481c78fc4
-Merge: 6762295 ea0d67c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Sep 9 06:01:50 2015 +0200
-
- Merge pull request #5409 from SUSE/wip-12495-firefly
-
- pgmonitor: wrong at/near target max“ reporting
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 67622955b1cfd0b97ac8d3d96b223995440af0b1
-Merge: c4fa5ef 2f35a41
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Sep 7 14:22:52 2015 +0200
-
- Merge pull request #5358 from ceph/wip-11470.firefly
-
- mon: PaxosService: call post_refresh() instead of post_paxos_update()
-
- Reviewed-by: Joao Eduardo Luis <joao@suse.de>
-
-commit 3be204f6a22be109d2aa8cfd5cee09ec3381d9b2
-Author: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
-Date: Tue Mar 17 15:44:52 2015 -0700
-
- rgw: init script waits until the radosgw stops
-
- Fixes: #11140
- Init script waits in stop action until the radowgw daemons stop.
-
- Signed-off-by: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
- (cherry picked from commit 1cca0c1e91a1e18f82f4d22855e96b2fc947f5ea)
-
-commit c4fa5ef989247404ded7adf5dad4e5316b8af04a
-Merge: beff99b c6f3780
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Sep 7 10:20:27 2015 +0200
-
- Merge pull request #5403 from SUSE/wip-12393-firefly
-
- Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit beff99bc7358ee0625079ca60adbf109986f2285
-Merge: 4a3c178 68508e2
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sun Sep 6 21:19:55 2015 +0200
-
- Merge pull request #5225 from SUSE/wip-12266-firefly
-
- ceph.spec.in: 50-rbd.rules conditional is wrong
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4a3c17834890b69e0467b65f83b1979328f3d27c
-Merge: 6571cd9 2544a6f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sun Sep 6 21:19:42 2015 +0200
-
- Merge pull request #5217 from SUSE/wip-12268-firefly
-
- ceph-common needs python-argparse on older distros, but doesn't require it
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit bff2f477c4ad86b4bd6e3ca3e637a6168c5c8053
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Sep 6 16:30:35 2015 +0200
-
- OSD: add scrub_finalize_wq suicide timeout
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 91d4c217e32b8b76fcac49f37879a3f78088694d
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:52:40 2015 -0700
-
- OSD: add scrub_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 547a7041edc833f3cc8e04d388574809e30a8af6)
-
- Conflicts:
- src/osd/OSD.cc
- firefly still has scrub_finalize_wq
-
-commit 7f6ec65b7c2ca0174142c1c48f18998d8c586b02
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 11:02:19 2015 -0700
-
- OSD: add op_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 3f2946aa9f9b4b432e8c018283503153a2b1eddc)
-
- Conflicts:
- src/osd/OSD.cc
- adapt op_wq() and peering_wq() calls in OSD::OSD
- src/osd/OSD.h
- adapt OpWQ instead of ShardedOpWQ
-
-commit 9ce8ce689009cf8ef749edd320d1c2a73ecc2f90
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:54:31 2015 -0700
-
- OSD: add remove_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f2fbfa32a16666be46359f0eab7b04ca80a753f5)
-
- Conflicts:
- src/osd/OSD.cc
- No next_removal_seq(0) in master
-
-commit 6926a64fbd4718b8a5df8e04545bc93c4981e413
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:51:28 2015 -0700
-
- OSD: add snap_trim_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit e1073a4a577211672148a4112bd633831552d66f)
-
-commit d31d1f6f5b08362779fa6af72690e898d2407b90
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:50:19 2015 -0700
-
- OSD: add recovery_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 85311b656852af75bfbbc6699f92fc6aa233c316)
-
- Conflicts:
- src/common/config_opts.h
- place OPTION(osd_command_thread_suicide_timeout, ...)
- directly after OPTION(osd_command_thread_timeout, ...)
-
-commit f85ec2a52e969f9a7927d0cfacda6a1cc6f2898c
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:49:00 2015 -0700
-
- OSD: add command_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit df4e5de819c30003cfbe50a071c49039cf534419)
-
- Conflicts:
- src/common/config_opts.h
- place OPTION(osd_command_thread_suicide_timeout, ...)
- directly after OPTION(osd_command_thread_timeout, ...)
-
-commit b894b368790de3383295372250888ba674502fb1
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jul 7 08:49:54 2015 -0700
-
- WBThrottle::clear_object: signal if we cleared an object
-
- Fixes: #12223
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8447b08d60d5cf7dce20f8b839cc2cb5a93782de)
-
-commit cd1396cd62c79b177e46cfb57ab6b3b6fdcd227b
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 9 10:46:10 2015 -0400
-
- osd/PGLog: dirty_to is inclusive
-
- There are only two callers of mark_dirty_to who do not pass max,
- and they are both in the merge_log extending tail path. In that
- case, we want to include the last version specified in the log
- writeout. Fix the tail extending code to always specify the
- last entry added, inclusive.
-
- Fixes: #12652
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f0ca14df0641daa04eee39d98d8bd0faf46e4e6d)
-
-commit f39c7917a39e445efa8d73178657fc5960772275
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Sep 4 17:38:32 2015 +0200
-
- osd: Keep a reference count on Connection while calling send_message()
-
- Fixes: #12437
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (manual backport of commit a140085)
-
- Conflicts: src/osd/OSD.cc
- master has share_map_peer; firefly has osd->_share_map_outgoing
-
-commit 6571cd9a9616637bf32f9ac97a9bd864c0bff856
-Merge: 8edc091 bd25136
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Sep 4 11:50:22 2015 -0600
-
- Merge pull request #5224 from SUSE/wip-12304-firefly
-
- ceph.spec.in running fdupes unnecessarily
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 8edc091df90be6935fcfe59c18d7060c88501556
-Merge: 6053bff 601eadb
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Sep 4 11:47:49 2015 -0600
-
- Merge pull request #5394 from SUSE/wip-12447-firefly
-
- ceph.spec.in: useless %py_requires breaks SLE11-SP3 build
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 2c2ffa1d6d1112dbf52cbbe36f4a5376e17da56a
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Aug 24 15:40:39 2015 -0700
-
- config: skip lockdep for intentionally recursive md_config_t lock
-
- lockdep can't handle recursive locks, resulting in false positive
- reports for certain set_val_or_die() calls, like via
- md_config_t::parse_argv() passed "-m".
-
- Fixes: #12614
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 415226995ebe841cc9e8639a3233150a75aecaed)
-
-commit 6053bffa8955953cf40a05f2b22684e77b6003a3
-Merge: 49d416e 5559a5f
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Sep 4 17:18:30 2015 +0200
-
- Merge pull request #5043 from SUSE/wip-12007-firefly
-
- Objecter: pg listing can deadlock when throttling is in use
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2c0d7feeb1c7592887e0408fe4fadaa9b4f659e9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Aug 13 19:41:47 2015 +0200
-
- tests: tiering agent and proxy read
-
- Verify that an object promoted to a cache tier because of a proxy read
- is evicted as expected.
-
- http://tracker.ceph.com/issues/12673 Refs: #12673
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 7924231930732bd297d3bd034c8295e96cb81088)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
- resolved by manually adding the new test to TESTS
-
-commit aa911767d9326c8aa37671883892b7d383596960
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Aug 13 13:47:24 2015 +0200
-
- osd: trigger the cache agent after a promotion
-
- When a proxy read happens, the object promotion is done in parallel. The
- agent_choose_mode function must be called to reconsider the situation
- to protect against the following scenario:
-
- * proxy read
- * agent_choose_mode finds no object exists and the agent
- goes idle
- * object promotion happens
- * the agent does not reconsider and eviction does not happen
- although it should
-
- http://tracker.ceph.com/issues/12673 Fixes: #12673
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit e1f58feb9b1d20b72f2eb2eefdea5982e0cddccd)
-
-commit 49d416e6e2e2f3e1f317978371089f9d92358642
-Merge: 7744518 f93eadd
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Sep 4 17:08:41 2015 +0200
-
- Merge pull request #4769 from SUSE/wip-11741-firefly
-
- crush: take crashes due to invalid arg
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 774451810ff055984b79e1d1875bd6a3468dfb7a
-Merge: fc27b0d f122788
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Sep 4 16:50:45 2015 +0200
-
- Merge pull request #4788 from SUSE/wip-11801-firefly
-
- Make it more difficult to delete pools in firefly
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit fc27b0dbe074dc15450d7669ea722aa3b605b3b2
-Merge: 055624b da78889
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Sep 4 16:44:57 2015 +0200
-
- Merge pull request #5235 from SUSE/wip-12310-firefly
-
- read on chunk-aligned xattr not handled
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 055624bf9a6480fffefb3c7cf5c3a4d4d73985c1
-Merge: 045c056 46e5dea
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Sep 4 16:42:28 2015 +0200
-
- Merge pull request #5389 from SUSE/wip-12391-firefly
-
- EC pools are not allowed as cache pools, disallow in the mon
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 045c0562f97e7d2c68278fbddb9ca1707bb8d5fd
-Merge: 99612e7 b8e3f6e
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 4 09:42:03 2015 -0400
-
- Merge pull request #5406 from ceph/wip-12465-firefly
-
- log: take mutex while opening fd
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 99612e7ed9573f2af36604f7d258535f6feadff3
-Merge: 7f8a397 4a709a4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Sep 3 12:34:32 2015 +0200
-
- Merge pull request #4854 from ceph/wip-11769-firefly
-
- librbd: aio calls may block
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 7f8a397e38101017ef9783d8ed08bb393a8d8825
-Merge: ea601ef f0d2429
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 07:55:15 2015 +0200
-
- Merge pull request #5233 from SUSE/wip-12074-firefly
-
- RGW logfile does not get chowned properly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 644f213c672f6fe2786e041043fdd55f8399871e (refs/remotes/gh/wip-11455-firefly)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Aug 26 14:34:30 2015 -0700
-
- rgw: init some manifest fields when handling explicit objs
-
- Fixes: #11455
- When dealing with old manifest that has explicit objs, we also
- need to set the head size and head object correctly so that
- code that relies on this info doesn't break.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d7bf8cb594e5276d1c80544f5ec954d52b159750)
-
-commit e7931a73df1ab77feb1c2ece13e3de3989ef7a0e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 30 14:47:15 2015 -0700
-
- rgw: url encode exposed bucket
-
- Fixes: #12537
- Don't send the bucket name back without url encoding it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ad5507fe0bf72ed5bdf8353e315cc9092c740144)
-
-commit 558c52955d464827630e0aa2fed970df987bb036
-Author: Wido den Hollander <wido@42on.com>
-Date: Wed Jun 3 13:13:33 2015 +0200
-
- rgw: Do not enclose the Bucket header in quotes
-
- Fixes: #11860
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 8af25faed93fe02d3dad585b8579ce8b041cc4e6)
-
-commit d3c94698e4e852bef3e65fbf439f5f209fbc0b25 (refs/remotes/gh/wip-12752)
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 21 11:32:39 2015 -0400
-
- Objecter: pg_interval_t::is_new_interval needs pgid from previous pool
-
- When increasing the pg_num of a pool, an assert would fail since the
- calculated pgid seed would be for the pool's new pg_num value instead
- of the previous pg_num value.
-
- Fixes: #10399
- Backport: infernalis, hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f20f7a23e913d09cc7fc22fb3df07f9938ddc144)
-
- Conflicts: (hobject_t sort order not backported, trivial resolution)
- src/osdc/Objecter.cc
- src/osdc/Objecter.h
-
-commit 56d267b7ae02070a7d7ed247990b84124fd62411
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue May 26 12:35:11 2015 -0700
-
- osd_types::is_new_interval: size change triggers new interval
-
- Fixes: 11771
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit ff79959c037a7145f7104b06d9e6a64492fdb95f)
-
-commit 411769c1461c11611b479bd826c72c56b3ce47c5
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 10 04:25:03 2015 -0700
-
- mon: add a cache layer over MonitorDBStore
-
- the cache of of leveldb does not perform well under some condition,
- so we need a cache in our own stack.
-
- * add an option "mon_osd_cache_size" to control the size of cache size
- of MonitorDBStore.
-
- Fixes: #12638
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5e99a578050976ca22b549812ac80d494fe7041d)
-
- Conflicts:
- src/mon/OSDMonitor.h
- minor differences in OSDMonitor ctor
-
-commit 278d732ecd3594cd76e172d78ce3ec84e58e178b (refs/remotes/me/wip-journal-firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 15 11:20:18 2015 -0800
-
- os/FileJournal: Fix journal write fail, align for direct io
-
- when config journal_zero_on_create true, osd mkfs will fail when zeroing journal.
- journal open with O_DIRECT, buf should align with blocksize.
-
- Backport: giant, firefly, dumpling
- Signed-off-by: Xie Rui <875016668@qq.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 80473f63853593e53d72f17c098152caf17f5e9e)
-
-commit d0d6727762ebda858065101635935df3d44a18ad
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 29 15:52:19 2015 +0800
-
- common/syncfs: fall back to sync(2) if syncfs(2) not available
-
- Fixes: #12512
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 08210d6a85527b0759f6dc4411f742bc13a4939f)
-
-commit 40494c6e479c2ec4dfe5f6c2d6aef3b6fa841620
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Mar 12 17:38:27 2015 +0100
-
- sync_filesystem.h: fix unreachable code
-
- Fix for:
-
- CID 1264460 (#1 of 1): Structurally dead code (UNREACHABLE)
- unreachable: This code cannot be reached: sync();
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 9921836e982818b92e20280eecb74e701523045c)
-
-commit 3dbbc86ad6d1e7131bbe49a4eff1557d7da9822f
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Jan 8 10:29:37 2015 +0800
-
- mon, os: check the result of sync_filesystem.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 27cb78bd3b2dde40c70de245769d1c0ec252533b)
-
-commit 7fa6fdc6c5e52f11456e4bea4ae32fd62248c80b
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Jan 7 15:28:37 2015 +0800
-
- common: Don't call ioctl(BTRFS_IOC_SYNC) in sync_filesystem.
-
- From the manual of syncfs, it first appeared in Linux 2.6.39. At this
- point, btrfs didn't as a stable production. So remove this.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 397b261630dccc656f6eca509f4c70173c8d8d8f)
-
-commit 9f15ed5bb5a837727cb3bef70508e056c125a518
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Jan 7 15:26:08 2015 +0800
-
- common: Directly return the result of syncfs().
-
- In commit 808c644248e4, it will try sync() if syncfs() return error.
- No evidence prove this way can work. And sync() don't return result
- so make this function always return zero which cause filestore omit the
- error.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 3f7faa4d8d3af3d2e3889c23290b016f27d36386)
-
-commit ea601efc6c693ba8041509c98756fa8c49b9c13a
-Merge: 50fa963 a128ce3
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Aug 12 09:43:19 2015 +0200
-
- Merge pull request #5390 from SUSE/wip-12503-firefly
-
- rgw/logrotate.conf calls service with wrong init script name
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 50fa9636d0c5e8946fa410891623e2c8363e2067
-Merge: abe6c03 d4ef556
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 11 11:27:16 2015 -0700
-
- Merge pull request #4765 from SUSE/wip-11721-firefly
-
- rgw: Keystone PKI token expiration is not enforced
-
-commit 04b2a878b1329202758465cf8e9b0f874cbeeef5
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Tue Nov 18 15:51:46 2014 +0100
-
- ceph-disk: don't change the journal partition uuid
-
- We observe that the new /dev/disk/by-partuuid/<journal_uuid>
- symlink is not always created by udev when reusing a journal
- partition. Fix by not changing the uuid of a journal partition
- in this case -- instead we can reuse the existing uuid (and
- journal_symlink) instead. We also now assert that the symlink
- exists before further preparing the OSD.
-
- Fixes: #10146
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- Tested-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 29eb1350b4acaeabfe1d2b19efedbce22641d8cc)
-
-commit e57e6f5da10a62f2f4d7b1a6a734a095ed494ebe
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Mon Sep 29 13:20:10 2014 +0200
-
- ceph-disk: set guid if reusing a journal partition
-
- When reusing a journal partition (e.g. /dev/sda2) we should set a
- new partition guid and link it correctly with the OSD. This way
- the journal is symlinked by its persistent name and ceph-disk list
- works correctly.
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit beff616f506b96eb52285f0d2e268e10f8edaa2c)
-
-commit ebba1d59b5e4bc11cbdfcda4e480639f7d9e1498
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Jul 30 14:20:56 2015 +0100
-
- osd/OSDMap: handle incrementals that modify+del pool
-
- Because new_pools was processed after old_pools, if something
- was modified and then deleted in the same incremental
- map, then the resulting state would be a pool in the map
- that had no entry in pool_name.
-
- Fixes: #12429
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 8d4932e721e32a33c1bada54e11d4ecccd868618)
-
-commit 31ff7d14e801ef7b7dff3b050094f1eceacf75dd
-Author: renhwztetecs <rhwlyw@163.com>
-Date: Tue Jul 21 18:55:00 2015 +0800
-
- Update OSDMonitor.cc
-
- OSDMonitor::get_pools_health(), s/objects/bytes/
-
- Fixes: #12402
- Signed-off-by: ren.huanwen@zte.com.cn
- (cherry picked from commit 7fc13c9d6b9a4962d7640240416105d8f558d600)
-
-commit ea0d67c482659dfb8c08055a77f400d0689866e0
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Mon Jul 20 10:50:20 2015 +0800
-
- mon/PGMonitor: avoid uint64_t overflow when checking pool 'target/max' status.
- Fixes: #12401
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
-
- (cherry picked from commit f84e6b8157e78fd05cd1c8ac957c92df17e6ba06)
-
-commit 6b42b06239426e5ec54dfaa82f48abca56f824ca
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Tue Jul 21 11:20:53 2015 +0100
-
- mon: OSDMonitor: fix hex output on 'osd reweight'
-
- Fixes: #12251
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 787fa80c2746fde44ac0583ff7995ec5be9a672d)
-
-commit 5445461ba08fa5b2e12a951a1432916224d3f668
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Fri Jul 3 18:27:13 2015 +0800
-
- mon/PGMonitor: bug fix pg monitor get crush rule
-
- when some rules have been deleted before, the index in array of crush->rules
- is not always equals to crush_ruleset of pool.
-
- Fixes: #12210
- Reported-by: Ning Yao <zay11022@gmail.com>
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 498793393c81c0a8e37911237969fba495a3a183)
-
-commit c6f37807d04af66fbed24e75776aed1b44241150
-Author: Ketor Meng <d.ketor@gmail.com>
-Date: Tue May 26 18:50:17 2015 +0800
-
- Mutex: fix leak of pthread_mutexattr
-
- Need pthread_mutexattr_destroy after pthread_mutexattr_init
-
- Fixes: #111762
- Signed-off-by: Ketor Meng <d.ketor@gmail.com>
- (cherry picked from commit 2b23327b3aa8d96341d501a5555195ca1bc0de8f)
-
-commit 601eadbf707597d9a1572efbdf86b22ff6813602
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 9 11:51:13 2015 +0200
-
- ceph.spec.in: drop SUSE-specific %py_requires macro
-
- %py_requires expands to
-
- BuildRequires: /usr/bin/python
- PreReq: python = 2.7
-
- The BuildRequires: is already provided, and the PreReq is wrong because
- e.g. SLE11-SP3 (a platform we are trying to support) has Python 2.6.
-
- http://tracker.ceph.com/issues/12351 Fixes: #12351
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit cbf6c7b46b42e163950bf7956e5b7565fca961c9)
-
- Conflicts:
- ceph.spec.in
- in master, the %py_requires is in the python-rados package,
- while in firefly it is in the python-ceph package
-
-commit a128ce37038ef6e44c8d7bd082ba196583974ef7
-Author: wuxingyi <wuxingyi2015@outlook.com>
-Date: Wed Mar 11 17:34:40 2015 +0800
-
- rgw/logrotate.conf: Rename service name
-
- The service name for ceph rados gateway was changed to "ceph-radosgw",
- the previous version of service name "radosgw" would cause a failed reload,
- and finally make it impossible to write any log data to the log file.
-
- Signed-off-by: wuxingyi <wuxingyi2015@outlook.com>
- (cherry picked from commit 9df3f798179481fe8ae6ae873dcb793de7d8f367)
-
-commit 46e5deabebeeb047783cfc980aa28a3df46eeeca
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 15 13:05:40 2015 -0700
-
- OSDMonitor: disallow ec pools as tiers
-
- Fixes: 11650
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 11b7801bb57cb25cd2d26d58722d49691747725b)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
- no "# make sure we can't clobber snapshot state" tests in firefly
- src/mon/OSDMonitor.cc
- no tp->removed_snaps.empty() in firefly
-
-commit 37d16a9e572580eeae86a2bae6d4ddd0299fb833
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Jul 9 13:32:03 2015 +0800
-
- UnittestBuffer: Add bufferlist zero test case
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 577acf665948e531e50d36f5780ea19351a5bf65)
-
-commit 4443acdbef1148e0261bce25f7d7a3433e09cecc
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Jul 9 13:42:42 2015 +0800
-
- buffer: Fix bufferlist::zero bug with special case
-
- Fixes: #12252
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 43f583d160ccaf879eaf0f3020e77860cf8d1df0)
-
-commit d52187019d321fe8a2dc54fe8a67a5139c310db1
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Wed May 27 22:28:49 2015 +0100
-
- mon: MonitorDBStore: get_next_key() only if prefix matches
-
- get_next_key() had a bug in which we would always return the first key
- from the iterator, regardless of whether its prefix had been specified
- to the iterator.
-
- Fixes: #11786
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 2cc7aee1abe40453093306c8fef2312b650dff5d)
-
-commit 2f35a415dcd31683151defb0ddb1a6d5696c7051
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Fri Jun 12 19:21:10 2015 +0100
-
- mon: PaxosService: call post_refresh() instead of post_paxos_update()
-
- Whenever the monitor finishes committing a proposal, we call
- Monitor::refresh_from_paxos() to nudge the services to refresh. Once
- all services have refreshed, we would then call each services
- post_paxos_update().
-
- However, due to an unfortunate, non-critical bug, some services (mainly
- the LogMonitor) could have messages pending in their
- 'waiting_for_finished_proposal' callback queue [1], and we need to nudge
- those callbacks.
-
- This patch adds a new step during the refresh phase: instead of calling
- directly the service's post_paxos_update(), we introduce a
- PaxosService::post_refresh() which will call the services
- post_paxos_update() function first and then nudge those callbacks when
- appropriate.
-
- [1] - Given the monitor will send MLog messages to itself, and given the
- service is not readable before its initial state is proposed and
- committed, some of the initial MLog's would be stuck waiting for the
- proposal to finish. However, by design, we only nudge those message's
- callbacks when an election finishes or, if the leader, when the proposal
- finishes. On peons, however, we would only nudge those callbacks if an
- election happened to be triggered, hence the need for an alternate path
- to retry any message waiting for the initial proposal to finish.
-
- Fixes: #11470
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 1551ebb63238073d2fd30201e6b656a8988e958c)
-
-commit b8e3f6e190809febf80af66415862e7c7e415214
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Jul 24 15:38:18 2015 -0700
-
- Log::reopen_log_file: take m_flush_mutex
-
- Otherwise, _flush() might continue to write to m_fd after it's closed.
- This might cause log data to go to a data object if the filestore then
- reuses the fd during that time.
-
- Fixes: #12465
- Backport: firefly, hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8778ab3a1ced7fab07662248af0c773df759653d)
-
- - modified to drop m_flush_mutex_holder, which isn't present in firefly
-
-commit abe6c03d411f5f1d277f910ae87123309fa95d4a
-Merge: 5df7273 9614e4d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:51:43 2015 +0200
-
- Merge pull request #4583 from SUSE/wip-11542-firefly
-
- rgw: Change variable length array of std::strings (not legal in C++) to std::vector<std::string>
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5df727379b63abb25421a32c95fdda9a0b62eeac
-Merge: 2a77154 8c573c8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:50:06 2015 +0200
-
- Merge pull request #4584 from SUSE/wip-8911-firefly
-
- rgw: doesn't return 'x-timestamp' in header which is used by 'View Details' of OpenStack
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 2a77154b4abcd4eebc8d1a315f7beeeabaf2213b
-Merge: 64c3a64 d78e31f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:48:31 2015 +0200
-
- Merge pull request #4642 from SUSE/wip-11323-firefly
-
- rgw: quota not respected in POST object
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 64c3a645c4dba1846532997758c5d7c3a42760b2
-Merge: f11df3c 177ef55
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:24:39 2015 +0200
-
- Merge pull request #4641 from SUSE/wip-11149-firefly
-
- rgw: delete bucket does not remove .bucket.meta file
-
- Reviewed-by: Yahuda Sadeh <yehuda@redhat.com>
-
-commit f11df3c7819a5f8dd5336be7dbe43e0f21dbb394
-Merge: 090bd12 2ee6e9a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:21:31 2015 +0200
-
- Merge pull request #5170 from SUSE/wip-12039-firefly
-
- rgw: Swift API: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used
-
- Reviewed-by: Yahuda Sadeh <yehuda@redhat.com>
-
-commit 090bd126e15acacc46bce3271d2aa0cfa889b499
-Merge: 94060b7 2d5d8da
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jul 25 13:20:15 2015 +0200
-
- Merge pull request #4762 from SUSE/wip-11754-firefly
-
- rgw: Object copy bug
-
- Reviewed-by: Yahuda Sadeh <yehuda@redhat.com>
-
-commit 94060b78a2e9b38422a951664dd4f37a6f52316f
-Merge: b9f45fe 3223bd6
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Jul 24 11:42:58 2015 -0700
-
- Merge pull request #5171 from SUSE/wip-12240-firefly
-
- librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1)
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit b9f45fe7816da1ce1fcbfd2a60fe370abe0f1848
-Merge: 57bbc8e 9845258
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Jul 24 11:26:23 2015 -0700
-
- Merge pull request #4639 from SUSE/wip-7385-firefly
-
- librbd: Objectcacher setting max object counts too low
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8c02376bd58d463f742966b67fa075a59b5f4269
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jul 24 18:50:03 2015 +0200
-
- TestPGLog: fix invalid proc_replica_log test case
-
- If 1'3 is non-divergent, no osd could correctly have created 2'3. Also,
- proc_replica_log does not add the extra entries from the auth log to the
- missing set, that happens later on in activate.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1333b676dba4ed4b5db854fe935bdadbf9f21d08)
-
- Conflicts:
- src/test/osd/TestPGLog.cc
- "sjustm: set_hash() method just does hash = and then rebuilds a cache,
- but the cache does not exist in firefly so hash = will do fine"
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4a709a450987cc90126b11a20c1c762d4fbfcea9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 2 10:33:35 2015 -0400
-
- tests: verify librbd blocking aio code path
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4cf41486e9c9e1efcb863960a8f3e0326ffca7e5)
-
-commit 4501e90d9b667310a222c3616a7b1f1fb382f997
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 1 22:56:11 2015 -0400
-
- librbd: new rbd_non_blocking_aio config option
-
- Setting this option to false reverts librbd to legacy behavior
- where AIO operations could potentially block.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 769cad12716b85d87eacc1069dd9f5c21cad3915)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
- src/librbd/librbd.cc: trivial resolution
-
-commit 68863968dd734fc45557dca100c8a0a5060cbd8b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 9 20:34:28 2015 -0400
-
- PendingReleaseNotes: document changes to librbd's aio_read methods
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 861c20bb2cc05a13a45b0e2368c591212e4eda72
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:55:36 2015 -0400
-
- tests: update librbd AIO tests to remove result code
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
- Conflicts:
- src/test/librbd/test_librbd.cc: trivial resolution
-
-commit 4e7cf6115798dd339efe41a528aac148be640b29
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 9 13:33:09 2015 -0400
-
- librbd: AioRequest::send no longer returns a result
-
- The librados calls used by AioRequest::send should always return
- zero unless there is a bug.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c77bce3311ab62892eb8c1d883263ba7ed663b20)
-
- Conflicts:
- src/librbd/AioRequest.cc: trivial resolution
- src/librbd/AioRequest.h: trivial resolution
- src/librbd/internal.cc: trivial resolution
-
-commit 0ccf47bf9f070ff7fe4e1dd3d3c3e3daa1f621c4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:37:50 2015 -0400
-
- librbd: internal AIO methods no longer return result
-
- All failures should be returned via the AioCompletion.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9ab42d613128ab08c688ddbea93df4c95068b9cd)
-
- Conflicts:
- src/librbd/AioRequest.cc: trivial resolution
- src/librbd/internal.cc: trivial resolution
- src/librbd/internal.h: trivial resolution
-
-commit e48040413849c5d3a577addff644502858ac5a66
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:48:21 2015 -0400
-
- Throttle: added pending_error method to SimpleThrottle
-
- Allow the client of SimpleThrottle to detect an async error
- so that it can exit early.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b88b88c5df91325fb713c2031a56bffe421268e0)
-
-commit 8ec341ee8f256e8ab91a931f6005e1ebd4b1db60
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 20:18:50 2015 -0400
-
- librbd: add new fail method to AioCompletion
-
- Helper method to handle passing fatal errors generated within
- librbd (not from the OSDs) back to the client.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6d1d0c867855a96bee4c13a0c0a39a0e002ccd12)
-
- Conflicts:
- src/librbd/AioCompletion.cc: trivial resolution
- src/librbd/AioCompletion.h: trivial resolution
-
-commit eed8ce258d116e837d8777f246f31c21a03ceb74
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 19:06:52 2015 -0400
-
- librbd: avoid blocking AIO API methods
-
- Enqueue all AIO API methods within the new librbd thread pool to
- reduce the possibility of any blocking operations. To maintain
- backwards compatibility with the legacy return codes of the API's
- AIO methods, it's still possible to block attempting to acquire
- the snap_lock.
-
- Fixes: #11056
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3a7b5e30efdb21aa1a0aeb68a5d02a1ac2a5faf3)
-
- Conflicts:
- src/librbd/librbd.cc: trivial resolution
-
-commit 220a23e8d99882838626d5647f9c055eefeb28c6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 17:24:08 2015 -0400
-
- librbd: add task pool / work queue for AIO requests
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit afb896d91f886b647baf38f7ec94cc3739f6d2a9)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
- src/librbd/ImageCtx.cc: trivial resolution
- src/librbd/ImageCtx.h: trivial resolution
- src/librbd/internal.cc: trivial resolution
-
-commit 3292bd26127f5beb69ac9c5fbcdea7efe002fd40
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 11 17:05:49 2015 -0400
-
- WorkQueue: added virtual destructor
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b3f5a75332c058816dc39b71e9d2b36e752159f4)
-
-commit 9bf970c1d956c94bc420d874eb83db1f16cf5d44
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 16:46:34 2015 -0400
-
- WorkQueue: add new ContextWQ work queue
-
- The queue holds a collection of Context pointers that will
- be completed by the thread pool.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 24a33e977f7b71962adeeb48f75d488a76e70fa9)
-
- Conflicts:
- src/common/WorkQueue.h: trivial resolution
-
-commit 94aa947b33083bcfe3cb61f41bfdaea7df605cbb
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 14:21:08 2014 -0800
-
- common/ceph_context: don't import std namespace
-
- This was broken by 7fed5dee4f96a83d1d6914f6fc0895bba2d15b99
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9029813b2784fe71879b1b7684855415b4c7566b)
-
-commit b91e594401ab75987a370f6dee0ee8d212189c9f
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Mon Dec 1 23:54:16 2014 +0800
-
- CephContext: Add AssociatedSingletonObject to allow CephContext's singleton
-
- If some objects associated to CephContext want to create a singleton object,
- it can inherit AssociatedSingletonObject and implement destruction to get notified.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 7fed5dee4f96a83d1d6914f6fc0895bba2d15b99)
-
-commit f122788b3592da516cdb9f6abdc3383a2e7424a2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 16 07:54:22 2015 -0800
-
- mon/OSDMonitor: require mon_allow_pool_delete = true to remove pools
-
- This is a simple safety check. Since we default to true it is currently
- opt-in.
-
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6b982e4cc00f9f201d7fbffa0282f8f3295f2309)
-
- Conflicts:
- src/test/mon/osd-pool-create.sh
-
- Changed $CEPH_MON to 127.0.0.1 -- the CEPH_MON was introduced after
- firefly to allow tests to run in parallel. Back in firefly all tests
- use the same port because 127.0.0.1 was hardcoded. We can't
- conveniently backport all that's necessary for tests to run in
- parallel, therefore we keep the 127.0.0.1 hardcoded.
-
- Conflicts:
- src/test/mon/osd-pool-create.sh
- TEST_no_pool_delete() follows a different test than in master
-
-commit 57bbc8e630e6611d1ab74b9756c96daf0e91be6b
-Merge: c0a601f 3f2fb8a
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 24 10:49:50 2015 +0200
-
- Merge pull request #5051 from SUSE/wip-12016-firefly
-
- osd: cache full mode still skips young objects
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c0a601ff5be45c0630a8659994107672558a982a
-Merge: 71174a5 ef648e5
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 22 11:36:47 2015 -0400
-
- Merge pull request #5307 from dachary/wip-release-notes-firefly
-
- backport v0.80.10 release notes to firefly
-
-commit 5559a5fe0f593c0e7af47c6d8a8359dbcbfd1f08
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Mon Sep 15 11:41:06 2014 +0000
-
- For pgls OP, get/put budget on per list session basis, instead of per OP basis, which could lead to deadlock.
-
- Signed-off-by: Guang Yang (yguang@yahoo-inc.com)
- (cherry picked from commit 0f884fdb31a26f241401ce2a9329dc0f2c4eccc7)
-
- Conflicts:
- src/librados/IoCtxImpl.cc
- In firefly, return value of objecter->pg_read() is not assigned to c->tid.
- src/osdc/Objecter.cc
- src/osdc/Objecter.h
- There is no _op_submit_with_budget() function in firefly.
- There is no Objecter::_finish_op() function in firefly.
- In firefly, _take_op_budget() is called take_op_budget().
-
-commit 71174a53c9a3a2b54b947da7e1425ff36fd44e37
-Merge: f7a085f 989e047
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 22 10:20:32 2015 +0200
-
- Merge pull request #4867 from SUSE/wip-11878-firefly
-
- mon: Clock skew causes missing summary and confuses Calamari
-
- Reviewed-by: Joao Eduardo Luis <joao@suse.de>
-
-commit 989e04799be567ee93369a87b90405833c3fe8d2
-Author: Thorsten Behrens <tbehrens@suse.com>
-Date: Fri Feb 6 01:26:40 2015 +0100
-
- Always provide summary for non-healthy cluster.
-
- This fixes a problem, wherein calamari does not provide
- popup drill-downs for warnings or errors, should the summary
- be missing.
-
- Calamari gets health info from /api/v1/cluster/$FSID/health.
- If the data here has a summary field, this summary is provided
- in a popup window:
-
- /api/v1/cluster/$FSID/health is populated (ultimately) with
- status obtained via librados python bindings from the ceph
- cluster. In the case where there's clock skew, the summary
- field supplied by the ceph cluster is empty.
-
- No summary field, no popup window with more health details.
-
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit eaf6e0cf48488fe604d0ef0db164d44948d4e8d4)
-
- Conflicts:
- src/mon/Monitor.cc
- firefly needs ss
-
-commit f7a085f04c544895bab3d79569276574a96636eb
-Merge: 2f1dd10 d296120
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Tue Jul 21 13:31:33 2015 -0700
-
- Merge pull request #5062 from SUSE/wip-11699-firefly
-
- objecter: resend linger ops on split
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ef648e592404e8677df91f218c4400caad4034b6
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 21 12:54:19 2015 -0400
-
- doc: v0.80.10 changelog
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b3a3e0e509eb9530994723ed9d68f85b8434a22d)
-
-commit df837e5cc30cf08ade26df6e42ca402fc628a9bb
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 21 10:55:18 2015 -0400
-
- doc/release-notes: v0.80.10
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2a61b611987d169d5a501d77fbd545068550c28c)
-
- Conflicts:
- doc/release-notes.rst
-
-commit 90cddd425ca8f1731fff0b8fb4b7e02a96048f92
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jul 14 16:15:44 2015 +0200
-
- doc/release-notes: update notes for v0.80.10
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 1231ae09d675f2ee9e76a04b91f771d73a2fb346)
-
- Conflicts:
- doc/release-notes.rst
-
-commit 2f1dd10b71d29a647aa2bab4a51fecc0501d6741
-Merge: 0caf6b3 1d2af55
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 13:03:07 2015 +0200
-
- Merge pull request #5129 from SUSE/wip-12202-firefly
-
- mon: ceph fails to compile with boost 1.58
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0caf6b32849bd673d83e96f0eae19bb6d7e423ae
-Merge: 3010f23 6793d50
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:51:10 2015 +0200
-
- Merge pull request #5044 from SUSE/wip-12011-firefly
-
- osd: PG stuck with remapped
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3010f23fae10d37ff78b8d7d5049ccba798bbe6b
-Merge: ad58a32 fcac7ab
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:45:22 2015 +0200
-
- Merge pull request #5039 from SUSE/wip-11961-firefly
-
- osd: Cleanup boost optionals for boost 1.56
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ad58a32292eee39905ae7bacc8fc52a52c2d08fc
-Merge: 13946e9 a62c720
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:39:34 2015 +0200
-
- Merge pull request #5037 from SUSE/wip-11875-firefly
-
- tools: ceph-post-file fails on rhel7
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 13946e9c18bbeb209458a3faac6e687ff380ac6e
-Merge: bde35c1 90a1a75
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:34:51 2015 +0200
-
- Merge pull request #4771 from SUSE/wip-11759-firefly
-
- tools: ceph-disk: support NVMe device partitions
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit bde35c11acd34c76d704b41292d167c3fc4cea53
-Merge: 9e11564 10d85e1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:22:52 2015 +0200
-
- Merge pull request #4636 from SUSE/wip-11143-firefly
-
- tools: src/ceph-disk : disk zap sgdisk invocation
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 9e11564b36a42b605f256943c7236b91a736fceb
-Merge: 8638443 424289d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:20:50 2015 +0200
-
- Merge pull request #4635 from SUSE/wip-7387-firefly
-
- common: Malformed JSON command output when non-ASCII strings are present
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8638443eac92ac80b4c57271f7350d94e445abf5
-Merge: 4c37d3d 8372f1d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:17:43 2015 +0200
-
- Merge pull request #4632 from SUSE/wip-11507-firefly
-
- osd: object creation by write cannot use an offset on an erasure coded pool
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4c37d3d99f660c835d2f73e8f08b6ef170c0c7b7
-Merge: 8f11ab7 9090967
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:12:36 2015 +0200
-
- Merge pull request #4630 from SUSE/wip-10983-firefly
-
- tools: use a new disk as journal disk,ceph-disk prepare fail
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8f11ab7ce27cab43145a2821f3996d3103cf7870
-Merge: 64a21b7 b1ff739
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:08:26 2015 +0200
-
- Merge pull request #4597 from xinxinsh/wip-11026-firefly
-
- objecter: can get stuck in redirect loop if osdmap epoch == last_force_op_resend
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 64a21b71526c51f8e787b365039de2b0cb0a285b
-Merge: 82e8359 2cb2333
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 21 12:04:39 2015 +0200
-
- Merge pull request #4582 from SUSE/wip-11543-firefly
-
- tools: ceph_argparse_flag has no regular 3rd parameter
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit bba50ce8f227af29d559b486274871bb3999fb24
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 16:28:23 2015 -0700
-
- TestPGLog: fix noop log proc_replica_log test case
-
- Need to fill in log.head, olog.head.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1e5b22053381580708af29a1536f1e106c9b479c)
-
-commit fdff8ce6c996cda7b3966d20c24b20ff545e468a
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 15:01:41 2015 -0700
-
- TestPGLog: add test for 11358
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit b61e5aef15d7448d24b713d13dce77697bc0af74)
-
- Conflicts:
- src/test/osd/TestPGLog.cc
- leave out all the other tests that have been
- added to master since firefly
-
-commit 65028b6304235ba5fa54d14805028db1a032e5a0
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 15:01:29 2015 -0700
-
- PGLog::proc_replica_log: handle split out overlapping entries
-
- See the comment, if the overlapping entries between olog.head
- and log.tail were split out, last_update should be log.tail.
-
- Fixes: 11358
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6561e0d955c4563a8505b717de41f5bd89119f63)
-
-commit 82e8359783f056cce5f7ede2dabd0cc61d278eab
-Merge: 741f0c2 b061140
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Jul 17 16:10:43 2015 -0700
-
- Merge pull request #4633 from SUSE/wip-11535-firefly
-
- Client admin socket leaks file descriptors
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit da78889d76f641dfcbb80164be32b85e880bb97f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 18 13:49:20 2015 -0700
-
- os/chain_xattr: handle read on chnk-aligned xattr
-
- If we wrote an xattr that was a multiple of a chunk, we will try to read
- the next chunk and get ENODATA. If that happens bail out of the loop and
- assume we've read the whole thing.
-
- Backport: hammer, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8614dcebf384b74b283cd352001a65fa26ba925c)
-
- Conflicts:
- src/test/objectstore/chain_xattr.cc
- added #define FILENAME
-
-commit 4e7de5b5f0e32d1183e2a0490d65e4e01490d942
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 25 14:31:03 2015 -0700
-
- rgw: error out if frontend did not send all data
-
- Fixes: #11851
- The civetweb mg_write() doesn't return error when it can't flush all data
- to the user, it just sends the total number of bytes written. Modified the
- client io to return total number of bytes and return an error if didn't
- send anything.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit daa679c3dd3770a6d5421e2cc9a36924f4550439)
-
-commit f0d2429f764aaa756fc8002309545b02dc45c199
-Author: Thorsten Behrens <tbehrens@suse.com>
-Date: Wed Dec 10 11:53:43 2014 +0100
-
- Unconditionally chown rados log file.
-
- This fixes bnc#905047 (in a somewhat ad-hoc way). Sadly the log
- file gets created from several places, so its existence does not
- mean init-radosgw had actually run.
-
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit 41611ea27a42d6221c418613d24dce34d988f2e6)
-
-commit 68508e28adffae64a52ea4c0046fbe8537e0d093
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jun 25 22:37:52 2015 +0200
-
- ceph.spec.in: use _udevrulesdir to eliminate conditionals
-
- The conditionals governing where 50-rbd.rules is installed were not doing the
- right thing on SUSE distros.
-
- Start using the %_udevrulesdir RPM macro, while taking care that it is defined
- and set to the right value. Use it to eliminate some conditionals around other
- udev rules files as well.
-
- http://tracker.ceph.com/issues/12166 Fixes: #12166
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 8aa758ee7a14e93ded1d55b4aca7a54aa47d7174)
-
- Conflicts:
- ceph.spec.in
- master spec file has diverged significantly from firefly
-
-commit bd25136d45d32b8d419fbe60e39572038e33cc59
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jul 13 18:12:01 2015 +0200
-
- ceph.spec.in: do not run fdupes, even on SLE/openSUSE
-
- In openSUSE there is a policy to use %fdupes in the spec file if RPMLINT
- complains about duplicate files wasting space in the filesystem.
-
- However, RPMLINT is not so complaining, so drop fdupes.
-
- http://tracker.ceph.com/issues/12301 Fixes: #12301
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 53072b9019caf72e0313b2804ea174237ed7da33)
-
-commit 2544a6fc59a86d3f02dcd67d3c84a72d7a1100a0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jun 16 18:27:20 2015 +0200
-
- ceph.spec.in: python-argparse only in Python 2.6
-
- argparse is a widely-used Python module for parsing command-line arguments.
- Ceph makes heavy use of Python scripts, both in the build environment and on
- cluster nodes and clients.
-
- Until Python 2.6, argparse was distributed separately from Python proper.
- As of 2.7 it is part of the Python standard library.
-
- Although the python package in a given distro may or may not Provide:
- python-argparse, this cannot be relied upon.
-
- Therefore, this commit puts appropriate conditionals around Requires:
- python-argparse and BuildRequires: python-argparse. It does so for Red
- Hat/CentOS and SUSE only, because the last Fedora version with Python 2.6
- was Fedora 13, which is EOL.
-
- argparse is required by both the ceph and ceph-common packages, but since ceph
- requires ceph-common, the argparse Requires and BuildRequires need only appear
- once, under ceph-common.
-
- http://tracker.ceph.com/issues/12034 Fixes: #12034
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 23171c952997d104cfa6b5700ec0bb658a8e0915)
-
- Conflicts:
- ceph.spec.in
-
-commit 54264210f4ebec23b08dd6712e09aea49543b52b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 12 15:24:26 2014 -0700
-
- ReplicatedPG::maybe_handle_cache: do not skip promote for write_ordered
-
- We cannot redirect a RW ordered read.
-
- Fixes: #9064
- Introduced: 0ed3adc1e0a74bf9548d1d956aece11f019afee0
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 24aeca9c439474b079d23600d8d42c0af5d9ce5c)
-
-commit 7e2526784203b0f1bce08869aa7b1fda9c5eedd9
-Author: Zhiqiang Wang <wonzhq@hotmail.com>
-Date: Mon Jul 28 14:06:06 2014 +0800
-
- osd: promotion on 2nd read for cache tiering
-
- http://tracker.ceph.com/issues/8674 Fixes: #8674
-
- Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
- (cherry picked from commit 0ed3adc1e0a74bf9548d1d956aece11f019afee0)
-
-commit 66f61cd9ae105948f653fd888812df270ff1e832
-Author: Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
-Date: Thu Jul 31 15:49:44 2014 -0700
-
- ceph_test_rados_api_tier: test promote-on-second-read behavior
-
- http://tracker.ceph.com/issues/8674 References: #8674
-
- Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1417eded65f40bdb2a49c8252fcfffa383a7b965)
-
-commit a8f3d6e1f1f186cbe2299566a575bf5a40500227
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 11 11:31:22 2014 -0700
-
- osd/osd_types: be pedantic about encoding last_force_op_resend without feature bit
-
- The addition of the value is completely backward compatible, but if the
- mon feature bits don't match it can cause monitor scrub noice (due to the
- parallel OSDMap encoding). Avoid that by only adding the new field if the
- feature (which was added 2 patches after the encoding, see
- 3152faf79f498a723ae0fe44301ccb21b15a96ab and
- 45e79a17a932192995f8328ae9f6e8a2a6348d10.
-
- Fixes: #8815
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c93da05bd3dd6b73e8cfa182c6349359b042717c)
-
- Conflicts:
- src/osd/osd_types.cc
- drop encode_compat variable which is otherwise unused in this context
-
-commit dc128758bb68a50992819f759b5684ff656406ba
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 15 22:50:36 2015 +0800
-
- mon: always reply mdsbeacon
-
- the MDS (Beacon) is always expecting the reply for the mdsbeacon messages from
- the lead mon, and it uses the delay as a metric for the laggy-ness of the
- Beacon. when it comes to the MDSMonitor on a peon, it will remove the route
- session at seeing a reply (route message) from leader, so a reply to
- mdsbeacon will stop the peon from resending the mdsbeacon request to the
- leader.
-
- if the MDSMonitor re-forwards the unreplied requests after they are
- outdated, there are chances that the requests reflecting old and even wrong
- state of the MDSs mislead the lead monitor. for example, the MDSs which sent
- the outdated messages could be dead.
-
- Fixes: #11590
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b3555e9c328633c9e1fbc27d652c004b30535e5b)
-
-commit da720d7d870a53faeacc169796083b4eba4b9406
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 23:20:21 2015 -0700
-
- mon/MDSMonitor: rename labels to a better name
-
- * s/ignore/reply/
- * s/out/ignore/
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f00ecb8b3df73ce6337985bc6d43bce5143ee537)
-
- Conflicts:
- src/mon/MDSMonitor.cc
- Do not compare known daemon health with m->get_health()
-
-commit 329da091d6e8444722b312ff94c7093f81939f13
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 12:55:06 2015 +0800
-
- mon: send no_reply() to peon to drop ignored mdsbeacon
-
- so the peon can remove the ignored mdsbeacon request from the
- routed_requets at seeing this reply, and hence no longer resend the
- request.
-
- Fixes: #11590
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 72a37b3a8e145d8522ea67fc14ce2c5510b6852b)
-
-commit 508332f53075a99295b9edb683ed343d8f59ca4f
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 12:22:26 2015 +0800
-
- mon: remove unnecessary error handling
-
- msg.get_session() should always return a non-zero pointer in
- Monitor.dispatch()
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 16e8e2cc82a90c49cd8aa3d0e3acc4694ba659a0)
-
- Conflicts:
- src/mon/Monitor.cc
- Monitor::_ms_dispatch(Message *m) is bool in firefly
-
-commit 741f0c235228b371486574ba0c3fbf55729e03bd
-Merge: 1623e6c 0a7f2b2
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jul 9 17:24:04 2015 -0700
-
- Merge pull request #4631 from SUSE/wip-11069-firefly
-
- PGLog: split divergent priors as well
-
- Reviewed-by: Samuel Just
-
-commit 3223bd604117b0b302b1e3e235ff9bced8e986bc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 26 09:59:36 2015 -0400
-
- librbd: assertion failure race condition if watch disconnected
-
- It's possible for librbd's watch of the header object to be reset by
- connection issues just prior to the image being removed. This will
- causes an assertion failure which assumes at least one watcher on the
- image.
-
- Fixes: #12176
- Backport: hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit af276de4f299960e43761904c043924cec5fef11)
-
-commit 2ee6e9a0cc6513097d6c9f9e40787a1c60c09796
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sun Mar 8 22:45:34 2015 +0100
-
- rgw: send Content-Length in response for HEAD on Swift account.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 29073d84640b61d0221b2d2ab73c271d60fd13ba)
-
-commit 1b4536aa47fd6d2440fbd30b64b5b46eaa21215a
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 13:18:19 2015 +0100
-
- rgw: send Content-Length in response for DELETE on Swift container.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit d260a93405a7a34a899f716bd9c4e731baa9ffd0)
-
-commit 177324ced968b254458a450f8e348c96cbd10931
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 13:14:26 2015 +0100
-
- rgw: send Content-Length in response for PUT on Swift container.
-
- Fixes: #11036
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 10c1f1aa1e09df5edf5d2f9f9b0273ddbcb384fa)
-
-commit 0a580c4a23b985ede28cdfc751eed2a368473e09
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Feb 27 15:23:16 2015 +0100
-
- rgw: send Content-Length in response for GET on Swift container.
-
- Fixes: #10971
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5a64fb5430b6b42174bf53a5910d9435043c1380)
-
-commit 84525806a057054dca295f860e0a31d6936d4985
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 12:42:52 2015 +0100
-
- rgw: enable end_header() to handle proposal of Content-Length.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit f98fd4dfda7a105d621f99c2b48eb9ab9b45d979)
-
-commit 1d2af55f8c69b4a382eb516d8f90a8316fd3bc02
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 8 15:21:20 2015 +0800
-
- mon: remove unused variable
-
- * as a side effect, this change silences
- http://tracker.ceph.com/issues/11576
-
- Fixes: #11576
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e7b196a4a091c0ea258866559ba06e7ed0cc4247)
-
-commit d296120c144a62794483338fd696ca8089778e84
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Oct 20 13:29:13 2014 -0700
-
- Objecter: resend linger ops on any interval change
-
- Watch/notify ops need to be resent after a pg split occurs, as well as
- a few other circumstances that the existing objecter checks did not
- catch.
-
- Refactor the check the OSD uses for this to add a version taking the
- more basic types instead of the whole OSD map, and stash the needed
- info when an op is sent.
-
- Fixes: #9806
- Backport: giant, firefly, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit cb9262abd7fd5f0a9f583bd34e4c425a049e56ce)
-
- Conflicts:
- src/osd/osd_types.cc
- src/osdc/Objecter.cc
- Minor differences.
-
-commit a44b7b4bd870cc72e50a49900cd81fde6d40845b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed May 7 11:02:16 2014 -0700
-
- osd_types: factor out is_new_interval from check_new_interval
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 2ee355113ed4374c664909a8cd7dc5dfdc4c9ed7)
-
-commit 3f2fb8a996820843d0287a9337d38d80c7cb616b
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Wed Nov 5 01:00:01 2014 +0000
-
- osd: cache pool: flush object ignoring cache min flush age when cache pool is full
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
-
- (cherry picked from commit f4ee9496ed15e7734abd659f5a353a3cde0dcb23)
-
-commit 9969ae5710bc66e1e96125f22593ea1e0ba381af
-Author: Zhiqiang Wang <wonzhq@hotmail.com>
-Date: Fri Aug 1 16:09:50 2014 +0800
-
- osd: add local_mtime to struct object_info_t
-
- This fixes a bug when the time of the OSDs and clients are not
- synchronized (especially when client is ahead of OSD), and the cache
- tier dirty ratio reaches the threshold, the agent skips the flush work
- because it thinks the object is too young.
-
- Signed-off-by: Zhiqiang Wang <wonzhq@hotmail.com>
- (cherry picked from commit 13b9dc708426c35436ba58388fc54f04f066f03a)
-
-commit 6793d504b5b622a7a6f69ffb30d6822167b557a3
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Mon Oct 13 04:18:45 2014 +0000
-
- The fix for issue 9614 was not completed, as a result, for those erasure coded PGs with one OSD down, the state was wrongly marked as active+clean+degraded. This patch makes sure the clean flag is not set for such PG.
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
-
- (cherry picked from commit 35bbb2d6002b1b435ff0b1df653cc7ab271f9258)
-
-commit fcac7ab6305dc3215fdcb46951fa9ee4cbf68ce3
-Author: William A. Kennington III <william@wkennington.com>
-Date: Sat Sep 20 22:52:31 2014 -0700
-
- osd: Cleanup boost optionals
-
- Signed-off-by: William A. Kennington III <william@wkennington.com>
- (cherry picked from commit a53ead14c113047567177630b4906136a2109b65)
-
-commit a62c720dc783b40377dcd34d4e53aa778ac1a84b
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 1 15:10:14 2015 -0700
-
- Makefile: install ceph-post-file keys with mode 600
-
- Otherwise ssh (may) prompt for a password.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 106a1c3081d02446aa3d8e13865da0c3393bae90)
-
-commit fc59ca391f639b2ef1b5c9dda202a3d7d718cf25
-Author: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
-Date: Mon Jun 1 15:05:32 2015 -0700
-
- ceph-post-file: improve check for a source install
-
- Signed-off-by: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
- (cherry picked from commit ee170eadcdcb4b54d36a7d474558484de9d917eb)
-
-commit 50bfb354d0648162f94c2659e8b915d69f27bf73
-Author: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
-Date: Mon Jun 1 15:00:39 2015 -0700
-
- ceph-post-file: behave when sftp doesn't take -i
-
- Fixes: #11836
- Signed-off-by: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
- (cherry picked from commit b84031ed5eaace1222e14d3c4076a3ab1155da96)
-
-commit 1623e6c6517ff6958b343493fce6a8e50a52a042
-Merge: ea6c958 254676b
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Jun 19 15:57:46 2015 -0700
-
- Merge pull request #4960 from ceph/wip-10911-firefly
-
- osd,mon: explicitly specify OSD features in MOSDBoot
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 254676b63b559fa0117520edb5dcbfe067a76747 (refs/remotes/jashan/wip-10911-firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 18 14:53:04 2015 -0800
-
- osd,mon: explicitly specify OSD features in MOSDBoot
-
- We are using the connection features to populate the features field in the
- OSDMap, but this is the *intersection* of mon and osd features, not the
- osd features. Fix this by explicitly specifying the features in
- MOSDBoot.
-
- Fixes: #10911
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bee91548b07c6a28314dddc50fef8b6a2677e774)
-
- Conflicts:
- src/osd/OSD.cc
- Minor difference in the MOSDBoot constructor
-
-commit b1ff7396c8e9668c0be1a4023e0ffa292067cf64
-Author: xinxin shu <xinxin.shu@intel.com>
-Date: Thu May 7 05:49:18 2015 +0800
-
- osdc: add epoch_t last_force_resend in Op/LingerOp.
-
- Using this field record the pg_poo_t::last_force_op_resend to avoid op
- endless when osd reply with redirect.
-
- Fixes: #11026
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit def4fc4a)
-
-commit 90a1a7587fcb567e2cc6e9188fdd56ec1255a881
-Author: islepnev <islepnev@gmail.com>
-Date: Fri Apr 17 22:33:01 2015 +0300
-
- ceph-disk: support NVMe device partitions
-
- Linux nvme kernel module v0.9 enumerate devices as following:
-
- /dev/nvme0 - characted revice
- /dev/nvme0n1 - whole block device
- /dev/nvme0n1p1 - first partition
- /dev/nvme0n1p2 - second partition
-
- http://tracker.ceph.com/issues/11612 Fixes: #11612
-
- Signed-off-by: Ilja Slepnev <islepnev@gmail.com>
- (cherry picked from commit 9b62cf254d02d30609793be8b1cb8a94f38891f1)
-
- Conflicts:
- src/ceph-disk
-
-commit f93eadd793f9f4fded30df5589f98ccfc0e1839f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 12 16:37:56 2015 -0700
-
- mon: prevent bucket deletion when referenced by a rule
-
- If a rule references a bucket with 'take', prevent deletion.
-
- Fixes: #11602
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3d591afef90b0601572c748f13faac029d05f5a0)
-
-commit d4ef5566e6b1b2ac73925660a1d627dbb6cc7632
-Author: Anton Aksola <anton.aksola@nebula.fi>
-Date: Fri Apr 10 13:25:21 2015 +0300
-
- rgw: always check if token is expired
-
- Fixes: #11367
-
- Currently token expiration is only checked by the token cache. With PKI
- tokens no expiration check is done after decoding the token. This causes
- PKI tokens to be valid indefinitely. UUID tokens are validated by
- keystone after cache miss so they are not affected by this bug.
-
- This commit adds explicit token expiration check to
- RGWSwift::validate_keystone_token()
-
- Signed-off-by: Anton Aksola <anton.aksola@nebula.fi>
- Reported-by: Riku Lehto <riku.lehto@nexetic.com>
- (cherry picked from commit 2df069390ea3bbcfbab5022750e89f51d197cc11)
-
-commit 2d5d8da35f627840ee57a8fa071147943b890d0c
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Fri May 15 14:22:29 2015 +0200
-
- rgw: Use attrs from source bucket on copy
-
- On copy objects, when bucket source is the same as the destination, use attrs
- from source bucket.
-
- Fixes: #11639
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 1dac80df1d4a2364154ed8b404d13609936c257b)
-
-commit d78e31f005756700e15d26d187c6cef6d5d24a7a
-Author: 9seconds <nineseconds@yandex.ru>
-Date: Wed Apr 1 09:12:06 2015 +0300
-
- rgw: quota not respected in POST object
-
- Signed-off-by: Sergey Arkhipov <nineseconds@yandex.ru>
- Backport: hammer, firefly
- Fixes: #11323
- (cherry picked from commit e76f84e179d2ba8bfc0dc5abf4e620fef14bc8a0)
-
- Conflicts:
- src/rgw/rgw_op.cc
- discard the whitespace modification hunks that were creating
- conflicts and ignore the conflict due to an unrelated cast
- modification in the context
-
-commit 177ef55d61c9b08783ae746aa521d2535324d6ba
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Apr 3 13:43:31 2015 +0200
-
- rgw: remove meta file after deleting bucket
- The meta file is deleted only if the bucket meta data is not synced
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
-
- Fixes: #11149
- Backport: hammer, firefly
- (cherry picked from commit dfdc7afb59cc8e32cf8bff55faa09076c853de06)
-
-commit 9845258f184c823d1e48da1dcb97bdde97220bb6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 22 11:27:35 2015 -0400
-
- librbd: updated cache max objects calculation
-
- The previous calculation was based upon the image's object size.
- Since the cache stores smaller bufferheads, the object size is not
- a good indicator of cache usage and was resulting in objects being
- evicted from the cache too often. Instead, base the max number of
- objects on the memory load required to store the extra metadata
- for the objects.
-
- Fixes: #7385
- Backport: firefly, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0b378942c4f1b79cb65967f2d3466728ca1c8d5b)
-
- Conflicts:
- src/librbd/ImageCtx.cc
- because firefly has cct->_conf->rbd_cache_size
- instead of cache_size
-
-commit 0a7f2b2a859aefebc995ad5c7b699eb117d6fa12
-Author: Nathan Cutler <ncutler@suse.cz>
-Date: Sun May 10 17:13:22 2015 +0200
-
- PGLog: split divergent priors as well
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bbe231a61fc06a1a668e6b831fb8224526721f93)
-
- Conflicts:
- src/osd/PGLog.h
-
- The cherry-picked commit did not compile as-is, because the hobject_t
- class in firefly lacks a get_hash() method, which was added in 6de83d4.
- To get the patch to compile, I replaced i->second.get_hash() with
- i->second.hash.
-
-commit 424289dc4ee8fb09dd00d507b5a9d1fecc786937
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 8 12:01:16 2015 +0800
-
- json_sprit: fix the FTBFS on old gcc
-
- Fixes: #11574
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 6b68b27146852f057a3373cd04b08cd6917f3eea)
-
-commit 84b00f189554fc37413c990ac4011079bb5cdb60
-Author: Tim Serong <tserong@suse.com>
-Date: Sat May 2 01:59:53 2015 +1000
-
- json_spirit: use utf8 intenally when parsing \uHHHH
-
- When the python CLI is given non-ASCII characters, it converts them to
- \uHHHH escapes in JSON. json_spirit parses these internally into 16 bit
- characters, which could only work if json_spirit were built to use
- std::wstring, which it isn't; it's using std::string, so the high byte
- ends up being zero'd, leaving the low byte which is effectively garbage.
-
- This hack^H^H^H^H change makes json_spirit convert to utf8 internally
- instead, which can be stored just fine inside a std::string.
-
- Note that this implementation still assumes \uHHHH escapes are four hex
- digits, so it'll only cope with characters in the Basic Multilingual
- Plane. Still, that's rather a lot more characters than it could cope
- with before ;)
-
- (For characters outside the BMP, Python seems to generate escapes in the
- form \uHHHHHHHH, i.e. 8 hex digits, which the current implementation
- doesn't expect to see)
-
- Fixes: #7387
-
- Signed-off-by: Tim Serong <tserong@suse.com>
- (cherry picked from commit 8add15b86e7aaef41397ab8fa9e77ee7957eb607)
-
- Conflicts:
- src/test/mon/osd-pool-create.sh
-
- Changed $CEPH_MON to 127.0.0.1 -- the CEPH_MON was introduced after
- firefly to allow tests to run in parallel. Back in firefly all tests
- use the same port because 127.0.0.1 was hardcoded. We can't
- conveniently backport all that's necessary for tests to run in
- parallel, therefore we keep the 127.0.0.1 hardcoded.
-
-commit 10d85e1126768f6c72f7d2a301ea7ca9ba59f8e0
-Author: Owen Synge <osynge@suse.com>
-Date: Tue Mar 17 15:41:33 2015 +0100
-
- Fix "disk zap" sgdisk invocation
-
- Fixes #11143
-
- If the metadata on the disk is truly invalid, sgdisk would fail to zero
- it in one go, because --mbrtogpt apparently tried to operate on the
- metadata it read before executing --zap-all.
-
- Splitting this up into two separate invocations to first zap everything
- and then clear it properly fixes this issue.
-
- Based on patch by Lars Marowsky-Bree <lmb@suse.com> in ceph-deploy.
- Created by Vincent Untz <vuntz@suse.com>
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit fdd7f8d83afa25c4e09aaedd90ab93f3b64a677b)
-
-commit b06114088a354f9dbcfc9182643733399c31f2a8
-Author: Jon Bernard <jbernard@tuxion.com>
-Date: Fri May 8 11:54:06 2015 -0400
-
- common/admin_socket: close socket descriptor in destructor
-
- Long-running processes that do not reuse a single client connection will
- see accumulating file descriptors as a result of not closing the
- listening socket. In this case, eventually the system will reach
- file-max and subsequent connections will fail.
-
- Fixes: #11535
-
- Signed-off-by: Jon Bernard <jbernard@tuxion.com>
- (cherry picked from commit 88fabb1ee6cd3c7d211ca46919055195e32245db)
-
-commit 8372f1d53b847224bf4c61894d18851e84ccd357
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Fri Mar 6 15:54:07 2015 +0800
-
- osd: refuse to write a new erasure coded object with an offset > 0
-
- Even if the offset is properly aligned.
-
- http://tracker.ceph.com/issues/11507 Fixes: #11507
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a4f1256c214ee0e7ebb91ac4ea8655f5d9642dc8)
-
-commit 909096713dcef5dc4fdbb22a9971609554688e23
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 8 15:15:35 2015 +0100
-
- ceph-disk: more robust parted output parser
-
- In some cases, depending on the implementation or the operating system,
-
- parted --machine -- /dev/sdh print
-
- may contain empty lines. The current parsing code is fragile and highly
- depends on output details. Replace it with code that basically does the
- same sanity checks (output not empty, existence of units, existence of
- the dev entry) but handles the entire output instead of checking line by
- line.
-
- http://tracker.ceph.com/issues/10983 Fixes: #10983
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit f5acf6bb6a342b05897605703d7d9cb7c09714fd)
-
-commit 8c573c8826096d90dc7dfb9fd0126b9983bc15eb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 30 14:15:47 2014 -0700
-
- rgw: swift GET / HEAD object returns X-Timestamp field
-
- Fixes: #8911
- Backport: giant, firefly, dumpling
- Swift clients expect X-Timestamp header, dump it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5b41d80b7fb9ed96c26801fc42c044191bb18d84)
-
-commit 9614e4dc5be745dab367d17f29a07377e348b2ca
-Author: Daniel J. Hofmann <daniel@trvx.org>
-Date: Mon May 5 16:06:45 2014 +0200
-
- Variable length array of std::strings (not legal in C++) changed to std::vector<std::string>
-
- Signed-off-by: Daniel J. Hofmann <daniel@trvx.org>
- (cherry picked from commit 08a4e8889783673436972a979c2fc780466893c8)
-
-commit 2cb2333ecdf2106925d74e024697f73ad947f378
-Author: Thorsten Behrens <tbehrens@suse.com>
-Date: Thu Jul 3 00:15:03 2014 +0200
-
- ceph_argparse_flag has no regular 3rd parameter.
-
- With clang warning: 'va_start' has undefined behavior with reference
- types, noticing copy-paste mistake on ceph_argparse_flag.
-
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit 0c7c7223a2beb4ffb953d89d316f87d350677063)
-
-commit f6022639758ec13b9a25b03cd831882db0b517b3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Dec 17 17:12:43 2014 -0800
-
- rgw: use correct objv_tracker for bucket instance
-
- When trying to create a bucket that already existed, use the
- objv_tracker of the newly created instance, and not of the original
- bucket.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fe158ecc25feefcea8aea4133118e4a84900a8ec)
diff --git a/src/ceph/doc/changelog/v0.80.2.txt b/src/ceph/doc/changelog/v0.80.2.txt
deleted file mode 100644
index 1b4a857..0000000
--- a/src/ceph/doc/changelog/v0.80.2.txt
+++ /dev/null
@@ -1,1187 +0,0 @@
-commit 198236d68deceb16b6b590d807786a140209bfea (tag: refs/tags/v0.80.2, refs/remotes/gh/last)
-Author: Jenkins <jenkins@inktank.com>
-Date: Wed Jul 9 19:32:26 2014 +0000
-
- 0.80.2
-
-commit 0b6bd2545925b5e8a80d41de1fda13ffe9d30e2b
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jul 9 12:04:49 2014 -0700
-
- Revert "rgw: if extra data pool name is empty, use data pool name instead"
-
- This breaks multipart uploads on firefly, though not on master.
- Revert for now so we can release 0.80.2.
-
- This reverts commit 5fd8b0d1639c67e355f0fc0d7e6d7036618d87a1.
-
-commit 9426c4faa9ca327f18f20a57ba772b08d6f069e7
-Merge: b81a277 4733178
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 8 10:06:01 2014 -0700
-
- Merge pull request #2083 from ceph/wip-8727.firefly
-
- messages: MForward: fix compat version
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 4733178c3a8f57c54196f176b20154415783dba0
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 8 16:46:27 2014 +0100
-
- messages: MForward: fix compat version
-
- A while ago we bumped the head version and reset the compat version to 0.
- Doing this so happens to make the messenger assume that the message does
- not support the compat versioning and sets the compat version to the head
- version -- thus making compat = 2 when it should have been 1.
-
- The nasty side-effect of this is that upgrading from emperor to firefly
- will have emperor-leaders being unable to decode forwarded messages from
- firefly-peons.
-
- Fixes: #8727
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit c92feebb81f90344a085f8256f0ed03cdc2f14e1)
-
-commit b81a2777aea636ffe544e737cd8e17dc892ba328
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 3 16:11:24 2014 -0700
-
- ceph.spec.in: add bash completion file for radosgw-admin
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit b70096307130bcbac176704493a63c5d039d3edc)
-
-commit 4649d7e90ffec89b452aef69cf833522bdb81f88
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 3 16:10:55 2014 -0700
-
- ceph.spec.in: rhel7-related changes:
-
- udev rules: /lib -> /usr/lib
- /sbin binaries move to /usr/sbin or %{_sbindir}
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit 235e4c7de8f8efe491edefbdde8e5da4dfc44034)
-
- Conflicts:
- ceph.spec.in
-
-commit 38a9566e70d3a2de80c7547fd4e84c8372639f80
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 3 16:08:44 2014 -0700
-
- Fix/add missing dependencies:
-
- - rbd-fuse depends on librados2/librbd1
- - ceph-devel depends on specific releases of libs and libcephfs_jni1
- - librbd1 depends on librados2
- - python-ceph does not depend on libcephfs1
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit 7cf81322391b629b241da90181800ca1f138ce78)
-
- Conflicts:
- ceph.spec.in
-
-commit 733c89dc6af89321ee58ad78b30bc6a0c4e78291
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 3 16:05:00 2014 -0700
-
- ceph.spec.in: whitespace fixes
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit ec8af52a5ede78511423a1455a496d46d580c644)
-
- Conflicts:
- ceph.spec.in
-
-commit 21b03bc96ab1a0877235f1e3e4a96899cba2b4fa
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 3 16:04:10 2014 -0700
-
- ceph.spec.in: split out ceph-common as in Debian
-
- Move files, postun scriptlet, and add dependencies on ceph-common
- where appropriate
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit e131b9d5a5e90e87d8a8346cb96cb5a26135c144)
-
-commit dbee797d1344aec47fedc8d3fdd6c9460e0ffa16
-Merge: 6d6039a 9e81fc1
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 7 09:40:51 2014 -0700
-
- Merge pull request #2057 from ceph/wip-8593-firefly
-
- mon: backport health check improvements
-
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-
-commit 6d6039a5a56743c006a0d081157cb6ee9e3b7af6
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Jul 3 16:30:49 2014 -0700
-
- mon: check changes to the whole CRUSH map and to tunables against cluster features
-
- When we change the tunables, or set a new CRUSH map, we need to make sure it's
- supported by all the monitors and OSDs currently participating in the cluster.
-
- Fixes: #8738
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 54af8104816ccc76aad251aa47a6efc1bf879e7d)
-
-commit 0a8d194f2c44a73c31ae8c52fabb430d66d4a1b1
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Jul 3 15:24:30 2014 -0700
-
- OSDMonitor: fix quorum_features comparison in check_cluster_features
-
- We need to see if there's a feature which is not in the quorum_features,
- not if there are no features in common!
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 2280c0eaa9f3f733062085a5e7f7dc23c3bbe291)
-
-commit a49c61222f8014db533d8f505ec44d10dc5478e6
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 12:57:36 2014 -0700
-
- ceph_test_rados_api_tier: disable LibRadosTierECPP::HitSetWrite
-
- Disable this test until hitget-get reliably works on EC pools (currently
- it does not, and this test usually passes only because we get the in-memory
- HitSet).
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c5b5ed672c039cc4fa04772e065a59d3b1df803a)
-
-commit 828ce4055c8580e42175159c02a9dfa76bc414ff
-Merge: b9b498e b1a4a7c
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 4 21:18:32 2014 -0700
-
- Merge pull request #2073 from ceph/wip-rgw-firefly-2
-
- rgw: more firefly backports
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit b1a4a7cb91e164d1f8af8ce9319e3b3c1949858d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jun 11 16:50:41 2014 -0700
-
- rgw: set a default data extra pool name
-
- Fixes: #8585
- Have a default name for the data extra pool, otherwise it would be empty
- which means that it'd default to the data pool name (which is a problem
- with ec backends).
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b2542f8e880e45bb6d052f13eb3ef6a7c61e4cd4)
-
-commit b9b498e6a7794205af8aa99ffe5266e478c0e711
-Merge: f285266 053c261
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 3 07:00:52 2014 -0700
-
- Merge pull request #2028 from ceph/wip-rgw-firefly
-
- rgw: a couple backports for firefly
-
- Passed the rgw suite, modulo a python bootstrap issue.
-
- sage-2014-07-01_09:50:22-rgw-wip-rgw-firefly-testing-basic-plana/337393
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 9f06e2c16e409a9a8284af9964f0cfff6e222164
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 30 12:55:45 2014 -0700
-
- rgw: fix uninit ofs in RGWObjManifect::obj_iterator
-
- Valgrind picked this up:
-
- <kind>UninitCondition</kind>
- <what>Conditional jump or move depends on uninitialised value(s)</what>
- <stack>
- <frame>
- <ip>0x5145B8</ip>
- <obj>/usr/bin/radosgw</obj>
- <fn>RGWObjManifest::obj_iterator::seek(unsigned long)</fn>
- <dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-0.82-354-g62027ec/src/rgw</dir>
- <file>rgw_rados.cc</file>
- <line>562</line>
- </frame>
- <frame>
- <ip>0x5672A4</ip>
- <obj>/usr/bin/radosgw</obj>
- <fn>list_multipart_parts(RGWRados*, req_state*, std::string const&amp;, std::string&amp;, int, int, std::map&lt;unsigned int, RGWUploadPartInfo, std::less&lt;unsigned int&gt;, std::allocator&lt;std::pair&lt;unsigned int const, RGWUploadPartInfo&gt; &gt; &gt;&amp;, int*, bool*, bool)</fn>
- <dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-0.82-354-g62027ec/src/rgw</dir>
- <file>rgw_rados.h</file>
- <line>217</line>
- </frame>
- <frame>
- <ip>0x5688EE</ip>
- <obj>/usr/bin/radosgw</obj>
- <fn>RGWListMultipart::execute()</fn>
- <dir>/srv/autobuild-ceph/gitbuilder.git/build/out~/ceph-0.82-354-g62027ec/src/rgw</dir>
- <file>rgw_op.cc</file>
- <line>2956</line>
- </frame>
- ...
-
- Fixes: #8699
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e0d3b78b6af523ae77b0cee385cd40f67f7a0ab6)
-
-commit 5fd8b0d1639c67e355f0fc0d7e6d7036618d87a1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 30 14:47:25 2014 -0700
-
- rgw: if extra data pool name is empty, use data pool name instead
-
- Fixes: #8311
- An empty pool name could be used as the extra data pool.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit b300318113b162522759d4794b1cfa3d1d9398e4)
-
-commit cbad09e1907ceac4feb069f9cf257e580f36da91
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue May 6 15:35:20 2014 -0700
-
- rgw: extend manifest to avoid old style manifest
-
- In case we hit issue #8269 we'd like to avoid creating an old style
- manifest. Since we need to have parts that use different prefix we add a
- new rule param that overrides the manifest prefix.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 545d8ad1d2dfe53b967ab1bd17dfeb1780abbb5e)
-
-commit ea68b9372319fd0bab40856db26528d36359102e
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 2 17:06:05 2014 -0700
-
- rgw: don't allow multiple writers to same multiobject part
-
- Fixes: #8269
- Backport: firefly, dumpling
-
- A client might need to retry a multipart part write. The original thread
- might race with the new one, trying to clean up after it, clobbering the
- part's data.
- The fix is to detect whether an original part already existed, and if so
- use a different part name for it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit bd8e026f88b812cc70caf6232c247844df5d99bf)
-
-commit f285266a320bf22df8b09a669d1c1fd400b05765
-Merge: d43e711 6a0dd1b
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 1 16:16:09 2014 -0700
-
- Merge pull request #2056 from ceph/wip-8010
-
- Revert "mon: OSDMonitor: Refuse to delete CephFS pools"
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 9e81fc180a3999ebec95949a2cb31fea970573fb
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 17:00:51 2014 -0700
-
- mon: ensure HealthService warning(s) include a summary
-
- The low disk space check would change our status to HEALTH_WARN and include
- a detail message, but no summary. We need both.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3ed7f2dd4345633ff34017b201082f4c261ef387)
-
-commit e96637c2e33ec092f28af0ce96bfe2e4d7748ff8
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 16:58:14 2014 -0700
-
- mon: refactor check_health()
-
- Refactor the get_health() methods to always take both a summary and detail.
- Eliminate the return value and pull that directly from the summary, as we
- already do with the PaxosServices.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 82e47db8073b622183a5e33f6e0b999a3a144804)
-
-commit 28584200df36dda5d434d4d7f58585933905de30
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 16:40:05 2014 -0700
-
- mon: fix typos, punctuation for mon disk space warning(s)
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 98883f6308ce72f69a71feab29ef00e13f319cdb)
-
- Conflicts:
-
- src/mon/DataHealthService.cc
-
-commit 4f0666085e2fd553ccc05cef8510aae820849aca
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 16:27:05 2014 -0700
-
- mon/OSDMonitor: make down osd count sensible
-
- We currently log something like
-
- 1/10 in osds are down
-
- in the health warning when there are down OSDs, but this is based on a
- comparison of the number of up vs the number of in osds, and makes no sense
- when there are up osds that are not in.
-
- Instead, count only the number OSDs that are both down and in (relative to
- the total number of OSDs in) and warn about that. This means that, if a
- disk fails, and we mark it out, and the cluster fully repairs itself, it
- will go back to a HEALTH_OK state.
-
- I think that is a good thing, and certainly preferable to the current
- nonsense. If we want to distinguish between down+out OSDs that were failed
- vs those that have been "acknowledged" by an admin to be dead, we will
- need to add some additional state (possibly reusing the AUTOOUT flag?), but
- that will require more discussion.
-
- Backport: firefly (maybe)
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 55a97787088b79356c678a909b2410b3924e7f5b)
-
-commit 6a0dd1be909b423f52e2c7f11531b278dc8838ae
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Jul 1 22:04:25 2014 +0100
-
- Revert "mon: OSDMonitor: Refuse to delete CephFS pools"
-
- This reverts commit c7d265a9b276aad5caf9b35f3ce8bc7bdd169f0f.
-
- Because this pre-dates the `fs rm` command, this change was
- preventing firefly users from ever deleting their filesystem pools.
-
- Fixes: #8010
-
- Signed-off-by: John Spray <john.spray@redhat.com>
-
-commit 053c261e5bfcb4d39770048775515eb6a667f987
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jun 4 09:24:33 2014 -0700
-
- rgw: set meta object in extra flag when initializing it
-
- As part of the fix for 8452 we moved the meta object initialization.
- Missed moving the extra flag initialization that is needed. This breaks
- setups where there's a separate extra pool (needed in ec backends).
-
- Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 703d0eb9bffdf6c553b659728a3a07f068fb15ee)
-
-commit d43e7113dd501aea1db33fdae30d56e96e9c3897
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 30 07:05:04 2014 -0700
-
- qa/workunits/suites/fsx.sh: don't use zero range
-
- Zero range is not supported by cephfs.
-
- Fixes: #8542
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2dec8a810060f65d022c06e82090b4aa5ccec0cb)
-
-commit ee0d322c0b1ebaba2f225b8bed9af2948fdcf4c3
-Merge: 3ceafcf a7119c3
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 30 17:01:03 2014 +0200
-
- Merge pull request #1991 from dachary/wip-8307-erasure-code-profile-implicit-creation
-
- erasure code profile implicit creation (firefly backport)
-
- Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>
-
-commit a7119c31e9a1b415f56426d2b4cd362357ad8b17
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 11 22:44:57 2014 +0200
-
- erasure-code: pool create must not create profiles
-
- If a non existent profile is provided as an argument to osd pool create,
- it must exit on error and not create the profile as a side effect.
-
- http://tracker.ceph.com/issues/8307 refs: #8307
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit ff2eb234e63cd281b40405cb3397da5babda943f)
-
-commit a67c1c1c51b111f40819643530e07f8026227caa
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 11 22:47:49 2014 +0200
-
- erasure-code: OSDMonitor::get_erasure_code is a const
-
- If it is not, the non const version of OSDMap::get_erasure_code_profile
- is called and a profile is created as a side effect, which is not
- intended.
-
- http://tracker.ceph.com/issues/8307 refs: #8307
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 3c638111a4943758b6089c63a42aabbf281ac257)
-
-commit 3ceafcf3576efaef58dffbe70654baf1db4f3a1d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue May 27 10:06:46 2014 +0200
-
- mon: fix set cache_target_full_ratio
-
- It was a noop because it was incorrectly using the variable n. Add a
- test to protect against regression.
-
- http://tracker.ceph.com/issues/8440 Fixes: #8440
-
- Reported-by: Geoffrey Hartz <hartz.geoffrey@gmail.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit c2225f874dcf37222d831b65b5a319d598d2fcd9)
-
-commit 5f66a2c99fdef2c8d609126740ca790ce10e67a4
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Jun 16 11:48:24 2014 -0700
-
- rgw: allocate enough space for bucket instance id
-
- Fixes: #8608
- Backport: dumpling, firefly
- Bucket instance id is a concatenation of zone name, rados instance id,
- and a running counter. We need to allocate enough space to account zone
- name length.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit d2e86a66ca55685e04ffbfaa58452af59f381277)
-
-commit 84d7971c8e50e7d35d7a5fac9353e687f168a1a1
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Fri Jun 20 11:14:25 2014 -0400
-
- log the command that is being run with subprocess
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit e189a668285f9ab73116bc19f9df1cc515473541)
-
-commit 291d448478360a1be0a9826ada58c94ecd643ad0
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 30 16:17:47 2014 -0700
-
- rgw: fetch object attrs on multipart completion
-
- Fixes: #8452
- Backport: firefly
- This fixes a regression following a code cleanup.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 70afaaabf979d4cc1a14dbc2b772224cbafcac2f)
-
-commit 2fd808fe93fe0cbd8754eb81d281c83254411039
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu May 22 18:27:58 2014 -0700
-
- rgw: check appropriate entity permission on put_metadata
-
- Fixes: #8428
- Backport: firefly
-
- Cannot use verify_object_permission() to test acls, as the operation
- here might either be on object or on bucket.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 2ceb13af34bc38b418bb88d81131d770a71159bf)
-
-commit d1afeb38b522baae1b15a7a3548002c830bb7567
-Author: Ilya Dryomov <ilya.dryomov@inktank.com>
-Date: Thu Jun 5 10:08:42 2014 +0400
-
- XfsFileStoreBackend: call ioctl(XFS_IOC_FSSETXATTR) less often
-
- No need to call ioctl(XFS_IOC_FSSETXATTR) if extsize is already set to
- the value we want or if any extents are allocated - XFS will refuse to
- change extsize in that's the case.
-
- Fixes: #8241
- Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
- (cherry picked from commit bc3b30ed09b8f3eb86b61e3a05ccacfd928faa95)
-
-commit 7b8e5c99a4a40ae788ad29e36b0d714f529b12eb
-Author: John Spray <john.spray@inktank.com>
-Date: Tue May 20 16:25:19 2014 +0100
-
- mon: Fix default replicated pool ruleset choice
-
- Specifically, in the case where the configured
- default ruleset is CEPH_DEFAULT_CRUSH_REPLICATED_RULESET,
- instead of assuming ruleset 0 exists, choose the lowest
- numbered ruleset.
-
- In the case where an explicit ruleset is passed to
- OSDMonitor::prepare_pool_crush_ruleset, verify
- that it really exists.
-
- The idea is to eliminate cases where a pool could
- exist with its crush ruleset set to something
- other than a value ruleset ID.
-
- Fixes: #8373
-
- Signed-off-by: John Spray <john.spray@inktank.com>
- (cherry picked from commit 1d9e4ac2e2bedfd40ee2d91a4a6098150af9b5df)
-
- Conflicts:
-
- src/crush/CrushWrapper.h
-
-commit 25a4a874c8e53cd644d6705478fbea4fdb232c4d
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri May 23 14:58:54 2014 -0700
-
- rgw: calc md5 and compare if user provided appropriate header
-
- Fixes: #8436
- Backport: firefly
-
- This was broken in ddc2e1a8e39a5c6b9b224c3eebd1c0e762ca5782. The fix
- resurrects and old check that was dropped.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- Reviewed-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 9c56c86bdac6bcb8e76c3f04e7d393e4eaadd721)
-
-commit ad18a45a71be34899d9400c8bdef39d0548f9aaf
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 21 15:07:12 2014 -0700
-
- rgw: calculate user manifest
-
- Fixes: #8169
- Backport: firefly
- We didn't calculate the user manifest's object etag at all. The etag
- needs to be the md5 of the contantenation of all the parts' etags.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit ddc2e1a8e39a5c6b9b224c3eebd1c0e762ca5782)
-
-commit 6aa7f7ee4e082819decc48da1f0eaffc4e616302
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 3 11:45:20 2014 -0700
-
- librados: simplify/fix rados_pool_list bounds checks
-
- We were not breaking out of the loop when we filled up the buffer unless
- we happened to do so on a pool name boundary. This means that len would
- roll over (it was unsigned). In my case, I was not able to reproduce
- anything particularly bad since (I think) the strncpy was interpreting the
- large unsigned value as signed, but in any case this fixes it, simplifies
- the arithmetic, and adds a simple test.
-
- - use a single 'rl' value for the amount of buffer space we want to
- consume
- - use this to check that there is room and also as the strncat length
- - rely on the initial memset to ensure that the trailing 0 is in place.
-
- Fixes: #8447
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3ec32a6bb11d92e36a0e6381b40ce2fd1fbb016a)
-
-commit 2ba03e08f1bce0a8af87014583d635eb5c0aa376
-Merge: 50dc246 3ad451e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jun 25 12:42:11 2014 -0700
-
- Merge pull request #1982 from accelazh/firefly-fix-issue-8256
-
- Make <poolname> in "ceph osd tier --help" clearer (fix issue 8256).
-
- Reviewed-by: Loic Dachary <loic@dachary.org>
-
-commit 50dc2462ab96c3457b08c50b4cc07676b50dbf72
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jun 3 16:14:15 2014 -0700
-
- OSD::calc_priors_during: handle CRUSH_ITEM_NONE correctly
-
- Fixes: #8507
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0bd6f6797c69af9aff851033c57c42121671c684)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit a53bcf2357c7f351ad520039774d895b8c27987f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jun 3 16:11:32 2014 -0700
-
- OSD::calc_priors_during: fix confusing for loop bracing (cosmetic)
-
- Confusing lack of braces is confusing.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit d76936b92300be5cc403fd5a36616a2424c7877d)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 178e6f0f422c9f1b8a51d0e9c364773397a4555f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jun 24 10:11:21 2014 -0700
-
- rados.cc: fix pool alignment check
-
- Only check pool alignment if io_ctx is initialized.
-
- Introduced in 304b08a23a3db57010078046955a786fe3589ef8
- Fixes: #8652
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
- (cherry picked from commit d7350a3741bf4cdb270c6361e68090fe280cf36d)
-
- Conflicts:
- src/tools/rados/rados.cc
-
-commit a9f97f8cae5b9d0245e0b0842c5c581cdacbb2da
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 17 13:33:14 2014 -0700
-
- osd: fix filestore perf stats update
-
- Update the struct we are about to send, not the (unlocked!) one we will
- send the next time around.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 4afffb4a10a0bbf7f2018ef3ed6b167c7921e46b)
-
-commit b758fd5f0ebcccdb1641a852d40ee880bad01107
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Apr 24 15:34:24 2014 -0700
-
- FileStore: set XATTR_NO_SPILL_OUT when creating new files.
-
- Fixes: #8205
- Backport: firefly
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit e3b995e1567f3ccc6d00ae27ab2aa99ca157228a)
-
-commit d6f302314fc3580dfc746c9d82bd2f7f0bc87d42
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Sat Jun 7 14:32:23 2014 +0800
-
- FileStore: make _clone() copy spill out marker
-
- Previously we were not doing so, and that resulted in unpredictable loss
- of xattrs from the client's perspective.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 239476a92849159d2a8966d90ca055c116bee91e)
-
-commit bb2ed23d8129c8db628475d744656b9b43f839c0
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 18 17:01:54 2014 +0200
-
- erasure-code: verify that rados put enforces alignment
-
- http://tracker.ceph.com/issues/8622 refs: #8622
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit b46c4056014dd6de5e3bd736f2c41f096ea708b4)
-
-commit dece65064d949b5afcc359cd408615883b5e002a
-Author: Lluis Pamies-Juarez <lluis@pamies.cat>
-Date: Wed Jun 18 10:00:09 2014 -0700
-
- enforce rados put aligment
-
- Signed-off-by: Lluis Pamies-Juarez <lluis.pamies-juarez@hgst.com>
- (cherry picked from commit 304b08a23a3db57010078046955a786fe3589ef8)
-
-commit 203318b8eb3753723277ec7a459239c81097f090
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jun 6 13:31:29 2014 -0700
-
- osd/OSDMap: do not require ERASURE_CODE feature of clients
-
- Just because an EC pool exists in the cluster does not mean tha tthe client
- has to support the feature:
-
- 1) The way client IO is initiated is no different for EC pools than for
- replicated pools.
- 2) People may add an EC pool to an existing cluster with old clients and
- locking those old clients out is very rude when they are not using the
- new pool.
- 3) The only direct client user of EC pools right now is rgw, and the new
- versions already need to support various other features like CRUSH_V2
- in order to work. These features are present in new kernels.
-
- Fixes: #8556
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3fe1699f9620280d0070cfe6f01cfeb2332e7470)
-
-commit 6340b14b9c9a9c786b5448f2ea2a5556055a02e9
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 12 16:44:53 2014 -0700
-
- osd/OSDMap: make get_features() take an entity type
-
- Make the helper that returns what features are required of the OSDMap take
- an entity type argument, as the required features may vary between
- components in the cluster.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 250677c965365edf3ecd24ef73700fc6d992ea42)
-
-commit 400fa88f6cf8b1e5b4b15d9e36b1de8c3d1c3970
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed May 21 18:12:22 2014 +0800
-
- Avoid extra check for clean object
-
- We needn't to check clean object via buffer state, skip the clean object.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit f51e33bd9c5a8e1cfc7065b30785696dc45918bc)
-
-commit 3ad451ef57e2ab3fc644c94d44c2de7a17cced45
-Author: Accela Zhao <accelazh@gmail.com>
-Date: Wed Jun 18 17:17:03 2014 +0800
-
- Make <poolname> in "ceph osd tier --help" clearer.
-
- The ceph osd tier --help info on the left always says <poolname>.
- It is unclear which one to put <tierpool> on the right.
-
- $ceph osd tier --help
- osd tier add <poolname> <poolname> {-- add the tier <tierpool> to base pool
- force-nonempty} <pool>
- osd tier add-cache <poolname> add a cache <tierpool> of size <size>
- <poolname> <int[0-]> to existing pool <pool>
- ...
-
- This patch modifies description on the right to tell which <poolname>:
-
- osd tier add <poolname> <poolname> {-- add the tier <tierpool> (the second
- force-nonempty} one) to base pool <pool> (the first
- one)
- ...
-
- Fix: http://tracker.ceph.com/issues/8256
-
- Signed-off-by: Yilong Zhao <accelazh@gmail.com>
-
-commit f290a021bc8ec31c18b91cb37323345692f2f198
-Merge: 5722419 d02d46e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 16 09:25:32 2014 -0700
-
- Merge pull request #1962 from dachary/wip-8599-ruleset-firefly
-
- mon: pool set <pool> crush_ruleset must not use rule_exists (firefly)
-
- Reviewed-by: Sage Weil <sage@inktank.com>
-
-commit d02d46e25080d5f7bb8ddd4874d9019a078b816b
-Author: John Spray <john.spray@inktank.com>
-Date: Tue May 20 16:50:18 2014 +0100
-
- mon: pool set <pool> crush_ruleset must not use rule_exists
-
- Implement CrushWrapper::ruleset_exists that iterates over the existing
- rulesets to find the one matching the ruleset argument.
-
- ceph osd pool set <pool> crush_ruleset must not use
- CrushWrapper::rule_exists, which checks for a *rule* existing, whereas
- the value being set is a *ruleset*. (cherry picked from commit
- fb504baed98d57dca8ec141bcc3fd021f99d82b0)
-
- A test via ceph osd pool set data crush_ruleset verifies the ruleset
- argument is accepted.
-
- http://tracker.ceph.com/issues/8599 fixes: #8599
-
- Backport: firefly, emperor, dumpling
- Signed-off-by: John Spray <john.spray@inktank.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit 572241942706e2f845a147f19717bf6c487f23f4
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 8 20:18:49 2014 -0700
-
- init-ceph: continue after failure doing osd data mount
-
- If we are starting many daemons and hit an error, we normally note it and
- move on. Do the same when doing the pre-mount step.
-
- Fixes: #8554
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6a7e20147cc39ed4689809ca7d674d3d408f2a17)
-
-commit e5a291ef69316519b105b57193753f0bf8ac8e62
-Author: Steve Taylor <steve@DES-U1404-STETAY.stc.local>
-Date: Tue Jun 10 12:42:55 2014 -0600
-
- Fix for bug #6700
-
- When preparing OSD disks with colocated journals, the intialization process
- fails when using dmcrypt. The kernel fails to re-read the partition table after
- the storage partition is created because the journal partition is already in use
- by dmcrypt. This fix unmaps the journal partition from dmcrypt and allows the
- partition table to be read.
-
- Signed-off-by: Stephen F Taylor <steveftaylor@gmail.com>
- (cherry picked from commit 673394702b725ff3f26d13b54d909208daa56d89)
-
-commit 34d9b2bc659c4107b30e1ebe7a55315512a0222a
-Author: John Wilkins <john.wilkins@inktank.com>
-Date: Thu Jun 5 11:29:20 2014 -0700
-
- doc: Added Disable requiretty commentary.
-
- Signed-off-by: John Wilkins <john.wilkins@inktank.com>
-
-commit 54a89bab15a945d47b3f44448910521a2ebf41c6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 16 16:56:33 2014 -0700
-
- ReplicatedPG::start_flush: fix clone deletion case
-
- dsnapc.snaps will be non-empty most of the time if there
- have been snaps before prev_snapc. What we really want to
- know is whether there are any snaps between oi.snaps.back()
- and prev_snapc.
-
- Fixes: 8334
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 29f615b7ac9e92f77cdef9927070727fee9d5e33)
-
-commit 308e2ef5c107bf04d3c5623f3c6bdffa10cf8c21
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon May 12 15:08:07 2014 -0700
-
- ReplicatedPG::start_flush: send delete even if there are no snaps
-
- Even if all snaps for the clone have been removed, we still have to
- send the delete to ensure that when the object is recreated the
- new snaps aren't included in the wrong clone.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 2ec2182745fa7c22526a7cf3dedb25bc314c9db4)
-
-commit 8d04a7ece364c0a95b087990d6365401819b3efa
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 15 20:53:27 2014 -0700
-
- HashIndex: in cleanup, interpret missing dir as completed merge
-
- If we stop between unlinking the empty subdir and removing the root
- merge marker, we get ENOENT on the get_info. That's actually fine.
-
- Backport: firefly
- Fixes: 8332
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 5ff95dbdd2dbb533d344f37fea722ca4f140e670)
-
-commit b2bf8cb21761d88557fb2d5c0935c4a3678ee01f
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Wed May 28 11:48:12 2014 -0400
-
- add backport of collections.Counter for python2.6
-
- Using Raymond Hettinger's MIT backport
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 23b75b550507438c79b3aa75e06721e5f7b134a4)
-
-commit 0b00443eec4c372f2ef245f85dc7c1f497ba3778
-Author: Ailing <ailzhang@users.noreply.github.com>
-Date: Wed May 28 12:37:48 2014 -0700
-
- rest-api: key missing for per "rx" and "rwx"
-
- commit 85a1cf31e6 and db266a3fb2 introduce new per "rx" and "rwx", but key missing for per "rx" and "rwx" in permmap
-
- Signed-off-by: Ailing Zhang <ailzhang@cisco.com>
- (cherry picked from commit 0b5a67410793ec28cac47e6e44cbbcf5684d77e7)
-
-commit a898ee56e01f971c12c0f7bebc22e59f850f27c0
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed May 21 21:41:23 2014 -0700
-
- cephfs-java: build against older jni headers
-
- Older versions of the JNI interface expected non-const parameters
- to their memory move functions. It's unpleasant, but won't actually
- change the memory in question, to do a cast_const in order to satisfy
- those older headers. (And even if it *did* modify the memory, that
- would be okay given our single user.)
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 4d4b77e5b6b923507ec4a0ad9d5c7018e4542a3c)
-
-commit 8a12a940817d957063c21ac71a6128f991801573
-Author: Ilya Dryomov <ilya.dryomov@inktank.com>
-Date: Fri May 16 19:03:13 2014 +0400
-
- OSDMonitor: set next commit in mon primary-affinity reply
-
- Commit 8c5c55c8b47e ("mon: set next commit in mon command replies")
- fixed MMonCommand replies to include the right version, but the
- primary-affinity handler was authored before that. Fix it.
-
- Backport: firefly
- Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
- (cherry picked from commit a78b14ec1769ef37bef82bfda6faabb581b4cd7d)
-
-commit 6ba57da94a6e00040677d6e43abf10a36ed9a931
-Author: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Mon May 12 14:08:44 2014 +1000
-
- prioritise use of `javac` executable (gcj provides it through alternatives).
-
- On Debian this fixes FTBFS when gcj-jdk and openjdk-7-jdk are installed at
- the same time because build system will use default `javac` executable
- provided by current JDK through `update-alternatives` instead of blindly
- calling GCJ when it is present.
-
- Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
- (cherry picked from commit 8b682d167e4535df582f1c77542e2b1ea0981228)
-
-commit 9e335a494c6eff209cff64bd663b5aa2a7bbc242
-Author: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Mon May 12 14:02:53 2014 +1000
-
- pass '-classpath' option (gcj/javah ignores CLASSPATH environment variable).
-
- This should not affect OpenJDK which understands '-classpath' as well.
-
- With gcj-jdk we still get FTBFS later:
-
- ~~~~
- java/native/libcephfs_jni.cc:2878:55: error: invalid conversion from 'const jbyte* {aka const signed char*}' to 'jbyte* {aka signed char*}' [-fpermissive]
- reinterpret_cast<const jbyte*>(rawAddress));
- ^
- In file included from java/native/libcephfs_jni.cc:27:0:
- /usr/lib/gcc/x86_64-linux-gnu/4.8/include/jni.h:1471:8: error: initializing argument 4 of 'void _Jv_JNIEnv::SetByteArrayRegion(jbyteArray, jsize, jsize, jbyte*)' [-fpermissive]
- void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
- ^
- make[5] *** [java/native/libcephfs_jni_la-libcephfs_jni.lo] Error 1
- ~~~~
-
- Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
- (cherry picked from commit 89fe0353582bde7e2fbf32f1626d430a20002dd0)
-
-commit fcd30500790eac0266ffb70d83ee17b23aeaf209
-Author: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Mon May 12 13:57:20 2014 +1000
-
- look for "jni.h" in gcj-jdk path, needed to find "jni.h" with gcj-jdk_4.9.0
-
- Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
- (cherry picked from commit 0f4120c0115e7977ae7c03458addcc2b2916db07)
-
-commit de43f6d2d813d2c7e5cf915c1b9037fe662d6afc
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 08:52:51 2014 -0700
-
- ceph-disk: partprobe before settle when preparing dev
-
- Two users have reported this fixes a problem with using --dmcrypt.
-
- Fixes: #6966
- Tested-by: Eric Eastman <eric0e@aol.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0f196265f049d432e399197a3af3f90d2e916275)
-
-commit fe1fbfb7a43d6590efce99711e47f986249f0956
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue May 13 13:15:28 2014 -0700
-
- test: fix some templates to match new output code
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 00225d739cefa1415524a3de45fb9a5a2db53018)
-
-commit 5c8afaa8861345efbcc5488e0336327a8a38d3bc
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu May 15 16:50:43 2014 -0700
-
- OSD: fix an osdmap_subscribe interface misuse
-
- When calling osdmap_subscribe, you have to pass an epoch newer than the
- current map's. _maybe_boot() was not doing this correctly -- we would
- fail a check for being *in* the monitor's existing map range, and then
- pass along the map prior to the monitor's range. But if we were exactly
- one behind, that value would be our current epoch, and the request would
- get dropped. So instead, make sure we are not *in contact* with the monitor's
- existing map range.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 290ac818696414758978b78517b137c226110bb4)
-
-commit eb98f4ab3a27aa8e00e0eb7e504ca7bec7c48a06
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 19 10:32:12 2014 -0700
-
- osd: skip out of order op checks on tiered pools
-
- When we send redirected ops, we do not assign a new tid, which means that
- a given client's ops for a pool may not have strictly ordered tids. Skip
- this check if the pool is tiered to avoid false positives.
-
- Fixes: #8380
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cf2b172c843da0599164901956b66c306a59e570)
-
-commit 29ee6faecb9e16c63acae8318a7c8f6b14367af7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 6 11:50:14 2014 -0700
-
- ReplicatedPG: block scrub on blocked object contexts
-
- Fixes: #8011
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 7411477153219d66625a74c5886530029c516036)
-
-commit 6078726e0b89d0202c3a4bc594be11fc346bed9d
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Fri May 9 09:21:23 2014 +0000
-
- msg: Fix inconsistent message sequence negotiation during connection reset
-
- Backport: firefly, emperor, dumpling
-
- Signed-off-by: Guang Yang (yguang@yahoo-inc.com)
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit bdee119076dd0eb65334840d141ccdf06091e3c9)
-
-commit 02557f8bc05ff28013e241611cb046b28f97b4c6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Apr 15 12:55:47 2014 -0700
-
- Objecter::_op_submit: only replace the tid if it's 0
-
- Otherwise, redirected ops will suddenly have a different tid
- and will become uncancelable.
-
- Fixes: #7588
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 76568aa0db4e16ac1af8fe6405edade1e61cbc81)
-
-commit 788b5fad515c48d4028f5a67d63052e373c81e66
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 10:42:42 2014 -0700
-
- mon/OSDMonitor: force op resend when pool overlay changes
-
- If a client is sending a sequence of ops (say, a, b, c, d) and partway
- through that sequence it receives an OSDMap update that changes the
- overlay, the ops will get send to different pools, and the replies will
- come back completely out of order.
-
- To fix this, force a resend of all outstanding ops any time the overlay
- changes.
-
- Fixes: #8305
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 63d92ab0969357f78fdade749785136a509bc81b)
-
-commit 268df4862d95bf506ef6f594fdfa8294671babc3
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 10:50:51 2014 -0700
-
- osd: discard client ops sent before last_force_op_resend
-
- If an op is sent before last_force_op_resend, and the client's feature is
- present, drop the op because we know they will resend.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 45e79a17a932192995f8328ae9f6e8a2a6348d10)
-
-commit 8bc4992f434ed0b180d5e4a293d8191f4846358c
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 10:52:11 2014 -0700
-
- osdc/Objecter: resend ops in the last_force_op_resend epoch
-
- If we are a client, and process a map that sets last_force_op_resend to
- the current epoch, force a resend of this op.
-
- If the OSD expects us to do this, it will discard our previous op. If the
- OSD is old, it will process the old one, this will appear as a dup, and we
- are no worse off than before.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dd700bdf7115223cb3e517b851f462d75dd76a2b)
-
-commit 83d03f0e1c65385dcf465108d544da84f8bfad97
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 10:40:10 2014 -0700
-
- osd/osd_types: add last_force_op_resend to pg_pool_t
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 3152faf79f498a723ae0fe44301ccb21b15a96ab)
-
-commit c94ac44ab41fc62add3fc93c5c7ce06950eed3f1
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 9 09:20:34 2014 -0700
-
- osd: handle race between osdmap and prepare_to_stop
-
- If we get a MOSDMarkMeDown message and set service.state == STOPPING, we
- kick the prepare_to_stop() thread. Normally, it will wake up and then
- set osd.state == STOPPING, and when we process the map message next we
- will not warn. However, if dispatch() takes the lock instead and processes
- the map, it will fail the preparing_to_stop check and issue a spurious
- warning.
-
- Fix by checking for either preparing_to_stop or stopping.
-
- Fixes: #8319
- Backport: firefly, emperor, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 6b858be0676f937a99dbd51321497f30c3a0097f)
-
-commit 22e2e7cff42970b00dc352513f1f138132f78d04
-Author: Sage Weil <sage@inktank.com>
-Date: Sat May 10 10:29:11 2014 -0700
-
- osd/ReplicatedPG: do not queue NULL dup_op
-
- We call start_flush() with a NULL op in a couple different places. Do not
- put a NULL pointer on the dup_ops list or we will crash later.
-
- Fixes: #8328
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 0d67f9b0695765824bdc4a65fbed88edf8ea232e)
diff --git a/src/ceph/doc/changelog/v0.80.3.txt b/src/ceph/doc/changelog/v0.80.3.txt
deleted file mode 100644
index d44f628..0000000
--- a/src/ceph/doc/changelog/v0.80.3.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-commit a129e85cdc3446a427fffffe4c31617d49024946 (tag: refs/tags/v0.80.3)
-Author: Jenkins <jenkins@inktank.com>
-Date: Fri Jul 11 17:14:12 2014 +0000
-
- 0.80.3
-
-commit 8589c108dd5f00471986deae72d88811ccf0627f (refs/remotes/gh/firefly)
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jul 10 10:36:16 2014 -0700
-
- rgw: fix RGWObjManifestRule decoder
-
- Only decode the new field if it is a new struct.
-
- Fixes: #8804
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit c4afaf9dabd261853a44b2e08f0911c075c1cd3a)
diff --git a/src/ceph/doc/changelog/v0.80.4.txt b/src/ceph/doc/changelog/v0.80.4.txt
deleted file mode 100644
index 4b44638..0000000
--- a/src/ceph/doc/changelog/v0.80.4.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 7c241cfaa6c8c068bc9da8578ca00b9f4fc7567f (tag: refs/tags/v0.80.4)
-Author: Jenkins <jenkins@inktank.com>
-Date: Tue Jul 15 12:13:55 2014 -0700
-
- 0.80.4
-
-commit 7557a8139425d1705b481d7f010683169fd5e49b (refs/remotes/gh/firefly)
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jul 14 13:29:37 2014 -0700
-
- XfsFileStoreBackend: default to disabling extsize on xfs
-
- This appears to be responsible for the deep scrub mismatches on some rbd
- workloads.
-
- Fixes: 8830
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 01cd3cdc726a3e838bce05b355a021778b4e5db1)
-
-commit ee7016a046c09be674808efb093b6ff80d0df18c
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 14 15:00:30 2014 -0700
-
- Revert "Revert "rgw: if extra data pool name is empty, use data pool name instead""
-
- This reverts commit 0b6bd2545925b5e8a80d41de1fda13ffe9d30e2b.
-
- We confused commit 5fd8b0d1639c67e355f0fc0d7e6d7036618d87a1 with commit
- b1a4a7cb91e164d1f8af8ce9319e3b3c1949858d in our tests. We tested without
- the latter, saw a failure, applied it and then reverted the former, and it
- passed, but didn't actually resolve the problem.
-
- This puts them both back in place and all should be well.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.80.5.txt b/src/ceph/doc/changelog/v0.80.5.txt
deleted file mode 100644
index 4c7a231..0000000
--- a/src/ceph/doc/changelog/v0.80.5.txt
+++ /dev/null
@@ -1,354 +0,0 @@
-commit 38b73c67d375a2552d8ed67843c8a65c2c0feba6 (tag: refs/tags/v0.80.5, refs/remotes/gh/last, refs/remotes/gh/firefly)
-Author: Jenkins <jenkins@inktank.com>
-Date: Tue Jul 29 05:24:39 2014 -0700
-
- 0.80.5
-
-commit b576d5a242c16bc9e38ba283a9784f838614882a
-Author: Sage Weil <sage@inktank.com>
-Date: Fri May 9 08:41:33 2014 -0700
-
- osd: cancel agent_timer events on shutdown
-
- We need to cancel all agent timer events on shutdown. This also needs to
- happen early so that any in-progress events will execute before we start
- flushing and cleaning up PGs.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c0dc245b662f1f9c640d7dd15fdf4cf26e729782)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 6213130f76b1ee89947bae578a1fccf16b845956
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 8 16:11:44 2014 -0700
-
- osd: s/applying repop/canceling repop/
-
- The 'applying' language dates back to when we would wait for acks from
- replicas before applying writes locally. We don't do any of that any more;
- now, this loop just cancels the repops with remove_repop() and some other
- cleanup.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ef40737eee4389faa7792661a0f9d15b3d0440f2)
-
-commit 2e7c91587d99c9eba85ab7bd407a5b722b25a81e
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 8 16:11:27 2014 -0700
-
- osd: clear PGBackend state on shutdown
-
- This was leaking state on shutdown whenever there were in-flight repops
- that were canceled.
-
- Fixes: #7891
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cafceae6c243369d3616af8217884e7e029896b9)
-
-commit f03110f3889ce7340c64f19358840b2425c93f68
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jul 8 16:10:58 2014 -0700
-
- osd: separate cleanup from PGBackend::on_change()
-
- The generic portion of on_change() cleaned up temporary on-disk objects
- and requires a Transaction. The rest is clearing out in-memory state and
- does not. Separate the two.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e299357e2a24474ab7a02e65ca0279336fd04b76)
-
-commit 42ad241efab751a1d4f50d5a748d91d0fe967844
-Merge: 5f4ceb2 5049fc4
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jul 23 10:09:19 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-8858-firefly' into firefly
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 5f4ceb208b55fab7fd1530dcf8fe03198b044148
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 22 00:25:37 2014 +0100
-
- mon: AuthMonitor: always encode full regardless of keyserver having keys
-
- On clusters without cephx, assuming an admin never added a key to the
- cluster, the monitors have empty key servers. A previous patch had the
- AuthMonitor not encoding an empty keyserver as a full version.
-
- As such, whenever the monitor restarts we will have to read the whole
- state from disk in the form of incrementals. This poses a problem upon
- trimming, as we do every now and then: whenever we start the monitor, it
- will start with an empty keyserver, waiting to be populated from whatever
- we have on disk. This is performed in update_from_paxos(), and the
- AuthMonitor's will rely on the keyserver version to decide which
- incrementals we care about -- basically, all versions > keyserver version.
-
- Although we started with an empty keyserver (version 0) and are expecting
- to read state from disk, in this case it means we will attempt to read
- version 1 first. If the cluster has been running for a while now, and
- even if no keys have been added, it's fair to assume that version is
- greater than 0 (or even 1), as the AuthMonitor also deals and keeps track
- of auth global ids. As such, we expect to read version 1, then version 2,
- and so on. If we trim at some point however this will not be possible,
- as version 1 will not exist -- and we will assert because of that.
-
- This is fixed by ensuring the AuthMonitor keeps track of full versions
- of the key server, even if it's of an empty key server -- it will still
- keep track of the key server's version, which is incremented each time
- we update from paxos even if it is empty.
-
- Fixes: #8851
- Backport: dumpling, firefly
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit b551ae2bcea2dd17b37f5f5ab34251cc78de0e26)
-
-commit 5c1d74848863b45aa9e98d134cbe0cd1c8199557
-Merge: 442c3fd c390ec4
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 21 13:10:28 2014 -0700
-
- Merge pull request #2122 from ceph/wip-dencoder-firefly
-
- fix linking deps, cpeh-dencoder, etc., firefly backport
-
-commit 5049fc4c9d6513bc58c3c4464f3de18949ac0aa5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jul 18 14:52:48 2014 -0700
-
- rgw: dump prefix unconditionally
-
- As part of issue #8858, and to be more in line with S3, dump the Prefix
- field when listing bucket even if bucket is empty.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d7209c11251d42227608bc54cc69232ef62ffe80)
-
-commit 7fdd6d94262d8e6c81d168f5b997b3a5f030e6fa
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 15:48:26 2014 -0700
-
- rgw: list extra objects to set truncation flag correctly
-
- Otherwise we end up returning wrong truncated value, and no data on the
- next iteration.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit dc417e477d4ad262885c6b5f5987cf06d63b159d)
-
-commit 1f8774e01a616739ab70a78c348ab986b64b8fce
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 11:45:44 2014 -0700
-
- rgw: account common prefixes for MaxKeys in bucket listing
-
- To be more in line with the S3 api. Beforehand we didn't account the
- common prefixes towards the MaxKeys (a single common prefix counts as a
- single key). Also need to adjust the marker now if it is pointing at a
- common prefix.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 82d2d612e700f94a0bb2d9fb7555abf327be379b)
-
-commit cb0a7ab8eb1d2fc8799b97c5a387b5f4f93b515c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 17 11:24:51 2014 -0700
-
- rgw: add NextMarker param for bucket listing
-
- Partially fixes #8858.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 924686f0b6593deffcd1d4e80ab06b1e7af00dcb)
-
-commit 34aa7086ba5293ee4d008016558dcdb1ada02e83
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 15:21:09 2014 -0700
-
- rgw: improve delmited listing of bucket
-
- If found a prefix, calculate a string greater than that so that next
- request we can skip to that. This is still not the most efficient way to
- do it. It'll be better to push it down to the objclass, but that'll
- require a much bigger change.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit e6cf618c257f26f97f60a4c1df1d23a14496cab0)
-
-commit d027ff1b432a265ad49ddfeafab45093bcd03e6c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 16:05:58 2014 -0700
-
- utf8: export encode_utf8() and decode_utf8()
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit 49fc68cf8c3122c878ea9503c9c74d7046bc9c6f)
-
-commit c390ec4fa919e0a17e646e595b30cfa878c3454f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 22:44:51 2014 -0700
-
- ceph-dencoder: don't link librgw.la (and rados, etc.)
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 34671108ce0b7597dba4f619732ecdb8933cda6e)
-
-commit 3d89380c90ab632eb76d3e429788fd81630e7a57
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 22:27:25 2014 -0700
-
- rgw: move a bunch of stuff into rgw_dencoder
-
- This will help out ceph-dencoder ...
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b1a641f307942cbf43036f75ef67fb30441dfe95)
-
-commit dc6c9bf2b92d28bbd2bc822c267b0555f74c87fc
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 21:58:29 2014 -0700
-
- libosd_types, libos_types, libmon_types
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1c170776cb8c0266f0f54f049ed07bbdb9c9ab5e)
-
- Conflicts:
-
- src/os/Makefile.am
- src/os/ObjectStore.cc
- src/osd/Makefile.am
-
-commit 7be91e8c5d935f7094033842bde1da2486905c70
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 20:55:39 2014 -0700
-
- Revert "ceph.spec: move ceph-dencoder to ceph from ceph-common"
-
- This reverts commit 95f5a448b52db545a2b9bbad47fdb287254f93ea.
- (cherry picked from commit 58cc894b3252a848ebc2169bcc4980a0ae6cc375)
-
-commit 04ad08a18a773e104a826b2a77ab0b2ffaac1e5f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 20:55:35 2014 -0700
-
- Revert "debian: move ceph-dencoder to ceph from ceph-common"
-
- This reverts commit b37e3bde3bd31287b11c069062280258666df7c5.
- (cherry picked from commit f181f78b7473260a717bc8ab4fc4d73a80e3b5ba)
-
-commit 442c3fd5a3b6a6c6a85d9bd7755923f14aa598e7
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Thu Jul 17 21:44:06 2014 -0700
-
- configure: do not link leveldb with everything
-
- Detect leveldb, but do not let autoconf blindly link it with everything on the
- planet.
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- Sighed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 06a8f7b99c5533f397b34f448138220384df60ac)
-
-commit c1073e430eafeb1f213f80636a3a24966b292698
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 14 17:02:05 2014 -0700
-
- ceph.spec: move ceph-dencoder to ceph from ceph-common
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 95f5a448b52db545a2b9bbad47fdb287254f93ea)
-
-commit f4e9e0ef2eab3174584f1695122b114549feff57
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 14 14:16:43 2014 -0700
-
- debian: move ceph-dencoder to ceph from ceph-common
-
- It links against the world currently (notably leveldb). Not nice for the
- client-side lib.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b37e3bde3bd31287b11c069062280258666df7c5)
-
-commit 681c399e83df4c6ebd7e0836203eb2466455f548
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 17 16:40:06 2014 -0700
-
- logrotate.conf: fix osd log rotation under upstart
-
- In commit 7411c3c6a42bef5987bdd76b1812b01686303502 we generalized this
- enumeration code by copying what was in the upstart scripts. However,
- while the mon and mds directories get a 'done' file, the OSDs get a 'ready'
- file. Bah! Trigger off of either one.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 14a9ca602fa9573b0b6b94709b384bca02d12fac)
-
-commit 794ec7fb43da4db930d28571a84c1c1cec1eb066
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Jul 16 12:23:31 2014 -0700
-
- rgw: don't try to wait for pending if list is empty
-
- Fixes: #8846
- Backport: firefly, dumpling
-
- This was broken at ea68b9372319fd0bab40856db26528d36359102e. We ended
- up calling wait_pending_front() when pending list was empty.
- This commit also moves the need_to_wait check to a different place,
- where we actually throttle (and not just drain completed IOs).
-
- Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit f9f2417d7db01ecf2425039539997901615816a9)
-
-commit e75dd2e4b7adb65c2de84e633efcd6c19a6e457b
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Jul 17 10:06:37 2014 -0400
-
- remove suse service restarts
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 0f11aaeefd7e8b49f88607937aade6113ebda52c)
-
-commit 361c1f8554ce1fedfd0020cd306c41b0ba25f53e
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Jul 16 16:12:12 2014 -0400
-
- remove ceph restarts on upgrades for RPMs
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit e3a5756f58ef5d07badf18ab08a26f47f7d232cb)
-
-commit 88f694dcd3d3342f764f3790572988b7808028ae
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Jul 16 11:07:13 2014 -0400
-
- set the default log level to WARNING
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 420f0a471a31d1e56359ea642ed831e8a38b1e90)
-
-commit 67b5193f73a2c9ec9e503ad3431473998217375d
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 15 18:11:41 2014 -0700
-
- init-ceph: wrap daemon startup with systemd-run when running under systemd
-
- We want to make sure the daemon runs in its own systemd environment. Check
- for systemd as pid 1 and, when present, use systemd-run -r <cmd> to do
- this.
-
- Probably fixes #7627
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- Tested-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 3e0d9800767018625f0e7d797c812aa44c426dab)
diff --git a/src/ceph/doc/changelog/v0.80.6.txt b/src/ceph/doc/changelog/v0.80.6.txt
deleted file mode 100644
index 2e1435e..0000000
--- a/src/ceph/doc/changelog/v0.80.6.txt
+++ /dev/null
@@ -1,3266 +0,0 @@
-commit f93610a4421cb670b08e974c6550ee715ac528ae (tag: refs/tags/v0.80.6, refs/remotes/gh/firefly)
-Author: Jenkins <jenkins@inktank.com>
-Date: Wed Oct 1 09:37:12 2014 -0700
-
- 0.80.6
-
-commit 2ecf362e15301ee07b511b2a84585ad691543569
-Merge: 1fafd6b 76341b0
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 29 13:55:02 2014 -0700
-
- Merge pull request #2603 from dachary/wip-9620-test-mon-thrash-firefly
-
- qa/workunits/cephtool/test.sh: fix thrash (ultimate)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 76341b0b7581194273ac787df2b940221825d083
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Mon Sep 29 13:47:06 2014 +0200
-
- qa/workunits/cephtool/test.sh: fix thrash (ultimate)
-
- Keep the osd trash test to ensure it is a valid command but make it a
- noop by giving it a zero argument (meaning thrash 0 OSD maps).
-
- Remove the loops that were added after the command in an attempt to wait
- for the cluster to recover and not pollute the rest of the tests. Actual
- testing of osd thrash would require a dedicated cluster because it the
- side effects are random and it is unnecessarily difficult to ensure they
- are finished.
-
- http://tracker.ceph.com/issues/9620 Fixes: #9620
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit beade63a17db2e6fc68d1f55332d602f8f7cb93a)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
-
-commit 1fafd6bf2ef03672dfa27ec7a201a274927040b7
-Merge: ebb5995 71005c1
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Sep 25 10:08:03 2014 -0700
-
- Merge pull request #2576 from ceph/wip-9593
-
- osd/ReplicatedPG: fix objecter locking in start_flush
-
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 71005c1bdf38212ea2fde12de08c45598c815d37
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 25 09:59:29 2014 -0700
-
- osd/ReplicatedPG: fix objecter locking in start_flush
-
- Broken in backport fd96eb62ece27f5c660429584c2ff2e058bc6e94.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit ebb599545d70e4289e385f88b4f0594b4f23f3b7
-Merge: 2abd7a3 2e60c2f
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 23 10:37:27 2014 -0700
-
- Merge pull request #2548 from dachary/wip-9547-python-rados-truncate-firefly
-
- python radio aio_read must not truncate on \000 (firefly)
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 2abd7a3fd018b52f45f9d6b7c9d847242aa97fe9
-Merge: 2675b0d 80f2f9c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 23 10:27:15 2014 -0700
-
- Merge branch 'wip-sam-testing-firefly' into firefly
-
-commit 80f2f9cf687e25d6f2c4cee34fef55215ac6b027
-Merge: bb9e65b e6da732
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Sep 21 10:04:30 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-9240' into wip-sam-testing-firefly
-
-commit bb9e65bd9292e2ee03a260cc98aa6715008e6682
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Aug 28 15:32:22 2014 -0700
-
- PG: wait until we've build the missing set to discover_all_missing
-
- Fixes: #9179
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 970d9830a3a6e8568337c660fb8b4c4a60a2b3bf)
-
- Conflicts:
- src/osd/PG.cc
-
-commit fa645b21b587b6a1d9adbb9cedce1af3af1e5a62
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 26 16:53:02 2014 -0700
-
- PG: mark_log_for_rewrite on resurrection
-
- Fixes: #8777
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 8346e10755027e982f26bab4642334fd91cc31aa)
-
-commit fd96eb62ece27f5c660429584c2ff2e058bc6e94
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Sep 7 20:13:41 2014 -0700
-
- ReplicatedPG:start_flush send a second delete
-
- Suppose we start with the following in the cache pool:
-
- 30:[29,21,20,15,10,4]:[22(21), 15(15,10), 4(4)]+head
-
- The object doesn't exist at 29 or 20.
-
- First, we flush 4 leaving the backing pool with:
-
- 3:[]+head
-
- Then, we begin to flush 15 with a delete with snapc 4:[4] leaving the
- backing pool with:
-
- 4:[4]:[4(4)]
-
- Then, we finish flushing 15 with snapc 9:[4] with leaving the backing
- pool with:
-
- 9:[4]:[4(4)]+head
-
- Next, snaps 10 and 15 are removed causing clone 10 to be removed leaving
- the cache with:
-
- 30:[29,21,20,4]:[22(21),4(4)]+head
-
- We next begin to flush 22 by sending a delete with snapc 4(4) since
- prev_snapc is 4 <---------- here is the bug
-
- The backing pool ignores this request since 4 < 9 (ORDERSNAP) leaving it
- with:
-
- 9:[4]:[4(4)]
-
- Then, we complete flushing 22 with snapc 19:[4] leaving the backing pool
- with:
-
- 19:[4]:[4(4)]+head
-
- Then, we begin to flush head by deleting with snapc 22:[21,20,4] leaving
- the backing pool with:
-
- 22[21,20,4]:[22(21,20), 4(4)]
-
- Finally, we flush head leaving the backing pool with:
-
- 30:[29,21,20,4]:[22(21*,20*),4(4)]+head
-
- When we go to flush clone 22, all we know is that 22 is dirty, has snaps
- [21], and 4 is clean. As part of flushing 22, we need to do two things:
- 1) Ensure that the current head is cloned as cloneid 4 with snaps [4] by
- sending a delete at snapc 4:[4].
- 2) Flush the data at snap sequence < 21 by sending a copyfrom with snapc
- 20:[20,4].
-
- Unfortunately, it is possible that 1, 1&2, or 1 and part of the flush
- process for some other now non-existent clone have already been
- performed. Because of that, between 1) and 2), we need to send
- a second delete ensuring that the object does not exist at 20.
-
- Fixes: #9054
- Backport: firefly
- Related: 66c7439ea0888777b5cfc08bcb0fbd7bfd8653c3
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 4843fd510b33a71999cdf9c2cfa2b4c318fa80fd)
-
-commit 5aa35ac262c6e0910f99086f46dd792775ab6790
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Aug 11 12:59:16 2014 -0700
-
- ReplicatedPG::start_flush: remove superfluous loop
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 66c7439ea0888777b5cfc08bcb0fbd7bfd8653c3)
-
-commit 14fb643bbda51cc31919197541973c332b0c37bc
-Merge: c468507 3578b11
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Sep 21 10:03:53 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-9339' into wip-sam-testing-firefly
-
-commit 2e60c2f1ec8c2aaf56b73a64f55becd679dd2825
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 20 12:41:30 2014 +0200
-
- test: check python rados aio_read with buffers containing null
-
- http://tracker.ceph.com/issues/9547 Refs: #9547
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 226c0c7ac6ee95ff2c1665d4e7164e2962c0346e)
-
-commit 72a46dec211d5c08d1ca9f969013d939c4361ba9
-Author: Mohammad Salehe <salehe+dev@gmail.com>
-Date: Sun May 25 10:42:11 2014 +0430
-
- pybind: Fix aio_read handling of string buffer
-
- Read data may contain \0, and buf.value interprerts them as string terminator.
-
- Signed-off-by: Mohammad Salehe <salehe+dev@gmail.com>
- (cherry picked from commit 8bda44ff37fd04a0fc9498fbbc22f0daf515d721)
-
-commit 2675b0d159ff0608bc6e607be3727ed23e7e2976
-Merge: a67f915 d535fab
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 19 11:30:17 2014 -0700
-
- Merge pull request #2535 from dachary/wip-9470-pidfile-firefly
-
- daemons: write pid file even when told not to daemonize (firefly)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d535fab6ac4a025541340ded0d3568f565acf1cd
-Author: Alexandre Oliva <oliva@gnu.org>
-Date: Wed Jul 30 23:08:43 2014 -0300
-
- daemons: write pid file even when told not to daemonize
-
- systemd wants to run daemons in foreground, but daemons wouldn't write
- out the pid file with -f. Fixed.
-
- Signed-off-by: Alexandre Oliva <oliva@gnu.org>
- (cherry picked from commit bccb0eb64891f65fd475e96b6386494044cae8c1)
-
-commit c4685075f583ff58cc05220a3044a10b8392033c (refs/remotes/gh/wip-log-crash-firefly)
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Sep 15 15:44:11 2014 -0700
-
- PGLog::claim_log_and_clear_rollback_info: fix rollback_info_trimmed_to
-
- We have been setting it to the old head value. This is usually
- harmless since the new head will virtually always be ahead of the
- old head for claim_log_and_clear_rollback_info, but can cause trouble
- in some edge cases.
-
- Fixes: #9481
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 0769310ccd4e0dceebd8ea601e8eb5c0928e0603)
-
-commit 112f6f021bd063e2647169ba42729a447e5848e1
-Merge: a67f915 92cfd37 07f54f2
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Sep 18 09:46:38 2014 -0700
-
- Merge remote-tracking branches 'origin/wip-9497' and 'origin/wip-9482' into wip-log-crash-firefly
-
-commit 07f54f28df7429a88dd9243800281ecf23f10036
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Sep 15 16:53:21 2014 -0700
-
- PG::find_best_info: let history.last_epoch_started provide a lower bound
-
- If we find a info.history.last_epoch_started above any
- info.last_epoch_started, we must be missing updates and
- min_last_update_acceptable should provisionally be max().
-
- Fixes: #9482
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 92cfd370395385ca5537b5bc72220934c9f09026
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 16 20:36:51 2014 -0700
-
- PG::choose_acting: let the pg go down if acting is smaller than min_size
-
- Even if the backfill peer would bring us up to min_size, we can't go
- active since build_prior will not consider the interval maybe_went_rw.
-
- Fixes: #9497
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit a67f9152f128d693d160e5b08f2ac8b8bc83e8e0
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Jul 24 15:29:40 2014 -0700
-
- librbd: fix crash using clone of flattened image
-
- The crash occurs due to ImageCtx->parent->parent being uninitialized,
- since the inital open_parent() -> open_image(parent) ->
- ictx_refresh(parent) occurs before ImageCtx->parent->snap_id is set,
- so refresh_parent() is not called to open an ImageCtx for the parent
- of the parent. This leaves the ImageCtx->parent->parent NULL, but the
- rest of ImageCtx->parent updated to point at the correct parent snapshot.
-
- Setting the parent->snap_id earlier has some unintended side effects
- currently, so for now just call refresh_parent() during
- open_parent(). This is the easily backportable version of the
- fix. Further patches can clean up this whole initialization process.
-
- Fixes: #8845
- Backport: firefly, dumpling
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 2545e80d274b23b6715f4d8b1f4c6b96182996fb)
-
-commit 2422f9fd634c239a1159c99aa4a49cfb5c5d097f
-Author: JuanJose 'JJ' Galvez <jgalvez@redhat.com>
-Date: Sun Sep 14 20:38:20 2014 -0700
-
- init-radosgw.sysv: Support systemd for starting the gateway
-
- When using RHEL7 the radosgw daemon needs to start under systemd.
-
- Check for systemd running on PID 1. If it is then start
- the daemon using: systemd-run -r <cmd>. pidof returns null
- as it is executed too quickly, adding one second of sleep and
- script reports startup correctly.
-
- Signed-off-by: JuanJose 'JJ' Galvez <jgalvez@redhat.com>
- (cherry picked from commit ddd52e87b25a6861d3b758a40d8b3693a751dc4d)
-
-commit 6070383bc2c433e36f7ab5dc1ec09a3e7439d523
-Merge: 668cd13 7b25512
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 12 17:31:03 2014 -0700
-
- Merge pull request #2479 from ceph/wip-9444
-
- mds: fix root and mdsdir inodes' rsubdirs
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7b25512d65c6337cbddc7d6c6f55747ba1591be5
-Author: Yan, Zheng <zheng.z.yan@intel.com>
-Date: Fri May 2 23:08:41 2014 +0800
-
- mds: fix root and mdsdir inodes' rsubdirs
-
- inode rstat accounts inode itself.
-
- Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
- (cherry picked from commit da17394941386dab88ddbfed4af2c8cb6b5eb72f)
-
-commit 668cd1359c94698bbb4f7b841e2f30264d4af937
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 9 14:03:50 2014 -0700
-
- FileStore: report l_os_j_lat as commit latency
-
- l_os_commit_lat is actually the commit cycle latency.
-
- Fixes: #9269
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit d165238b4ee7e925e06ca22890c1e9dac101a7da)
-
-commit 7686966677867d098141aa08f45364eaa97121dd
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 9 12:58:07 2014 -0700
-
- Objecter::_recalc_linger_op: resend for any acting set change
-
- Fixes: #9220
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 1349383ac416673cb6df2438729fd2182876a7d1)
-
- Conflicts:
-
- src/osdc/Objecter.cc
- src/osdc/Objecter.h
-
-commit 3abf95456783346e6686919b803c4819d5e82ab7
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 13:44:57 2014 -0700
-
- osdc/Objecter: revoke rx_buffer on op_cancel
-
- If we cancel a read, revoke the rx buffers to avoid a use-after-free and/or
- other undefined badness by using user buffers that may no longer be
- present.
-
- Fixes: #9362
- Backport: firefly, dumpling
- Reported-by: Matthias Kiefer <matthias.kiefer@1und1.de>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2305b2897acba38384358c33ca3bbfcae6f1c74e)
-
- (adjusted for op->con instead of s->con)
-
-commit bc4108443a17de47b7c582e50fb884396a287152
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 13:45:52 2014 -0700
-
- ceph_test_rados_api_io: add read timeout test
-
- Verify we don't receive data after a timeout.
-
- Based on reproducer for #9362 written by
- Matthias Kiefer <matthias.kiefer@1und1.de>.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f295c1fee4afb9447cdf46f05a44234274d23b6c)
-
-commit 19e7606545f829e5b9ea0255049d9130c51e42fd
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 13:42:43 2014 -0700
-
- ceph_test_rados_api_*: expose nspace
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 977d289055d69ab8a7baaf7ef68c013019225833)
-
-commit 881c267fa4f8257a9205ec897c631183ef5c6388
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 9 12:40:51 2014 -0700
-
- Revert "PG: mark_log_for_rewrite on resurrection"
-
- Actually, we don't want to backport this one without the fix
- for #9293.
-
- This reverts commit 7ddf0a252bb887553b29fd93e58d01cac38835e6.
-
-commit 3578b1193d497373db14d040ff7f0fc9e06e5ac2
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Sep 3 15:49:47 2014 -0700
-
- ReplicatedPG: create max hitset size
-
- Otherwise, hit_set_create could create an unbounded size hitset
- object.
-
- Fixes: #9339
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit d73eb895cdc792ddef2626643e61c1521cf53434
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Aug 27 16:21:41 2014 -0700
-
- PG::can_discard_op: do discard old subopreplies
-
- Otherwise, a sub_op_reply from a previous interval can stick around
- until we either one day go active again and get rid of it or delete the
- pg which is holding it on its waiting_for_active list. While it sticks
- around futily waiting for the pg to once more go active, it will cause
- harmless slow request warnings.
-
- Fixes: #9259
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit ae3d87348ca4e2dde809c9593b0d54ce0469f7a0)
-
-commit 7ddf0a252bb887553b29fd93e58d01cac38835e6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 26 16:53:02 2014 -0700
-
- PG: mark_log_for_rewrite on resurrection
-
- Fixes: #8777
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 8346e10755027e982f26bab4642334fd91cc31aa)
-
-commit 49a08eb46ef277225fff0d9a0920c37427175f54
-Author: Thorsten Glaser <tg@mirbsd.de>
-Date: Mon Sep 8 12:49:50 2014 -0700
-
- debian: only B-R yasm on amd64
-
- Make yasm dependency amd64 only, it isn?t used elsewhere
- but breaks x32 (which is mis-detected as amd64)
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9ab46dc5b49219aa6194861c393c938f23001c52)
-
-commit f19162adc241e627ce20140360352ac96f809a6e
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 17:43:10 2014 -0700
-
- osd: fix osd_tp shutdown
-
- We need to clear the queue, not just drain the currently executing jobs.
-
- Fixes: #9218
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c2f21c04207b9a2a65e514994a775632b36d6874)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 598cde42e7f57fd0b294f70c0a930f94fd361fb3
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 27 06:19:12 2014 -0700
-
- osd/PG: fix crash from second backfill reservation rejection
-
- If we get more than one reservation rejection we should ignore them; when
- we got the first we already sent out cancellations. More importantly, we
- should not crash.
-
- Fixes: #8863
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2b13de16c522754e30a0a55fb9d072082dac455e)
-
-commit 0a9d49e5b5867c58ca1f5c6b9a4c5106639a8d01
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 8 06:58:45 2014 -0700
-
- mon/Paxos: don't spam log with is_readable at dout level 1
-
- Backport: firefly, dumpling
- Reported-by: Aanchal Agrawal <Aanchal.Agrawal@sandisk.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 62ca27d0b119b597ebad40dde64c4d86599e466d)
-
-commit 1660503ffafd69fac3722aea9915008113906e05
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Sep 4 13:58:14 2014 -0400
-
- doc: add note on soft JS dependency for navigating docs
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 657be818375bea2d8b5998ea1e5505eedc2f294d)
-
-commit 2f075d442f58e9cfefdbc421b9b20f2034a56314
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Sep 3 21:21:45 2014 -0400
-
- doc: fix missing bracket
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 69638dfaeb0dcd96dac4b5f5c00ed08042432487)
-
-commit 4dacb593e830f42cd0394486333315f1709b502f
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Sep 3 20:47:54 2014 -0400
-
- doc: attempt to get the ayni JS into all head tags
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 35663fa55ac1579a3b0c8b67028a3a8dfea87b48)
-
-commit 275df4407b37923cb47510890a686ed370e2f39e
-Author: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Sat Aug 23 22:41:30 2014 +1000
-
- Fix FTBFS on alpha due to incorrect check on BLKGETSIZE
-
- Ceph FTBFS on Alpha with:
-
- ~~~~
- libtool: compile: g++ -DHAVE_CONFIG_H -I. -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -D_GNU_SOURCE -DCEPH_LIBDIR=\"/usr/lib/alpha-linux-gnu\" -DCEPH_PKGLIBDIR=\"/usr/lib/alpha-linux-gnu/ceph\" -DGTEST_HAS_TR1_TUPLE=0 -D_FORTIFY_SOURCE=2 -I/usr/include/nss -I/usr/include/nspr -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -rdynamic -ftemplate-depth-1024 -Wnon-virtual-dtor -Wno-invalid-offsetof -Wstrict-null-sentinel -g -O2 -Wformat -Werror=format-security -c common/blkdev.cc -fPIC -DPIC -o common/.libs/blkdev.o
- In file included from /usr/include/alpha-linux-gnu/asm/ioctls.h:4:0,
- from /usr/include/alpha-linux-gnu/bits/ioctls.h:23,
- from /usr/include/alpha-linux-gnu/sys/ioctl.h:26,
- from common/blkdev.cc:3:
- common/blkdev.cc:13:7: error: missing binary operator before token "int"
- #elif BLKGETSIZE
- ^
- ~~~~
-
- This error occurs because the value of BLKGETSIZE is tested in a
- c-preprocessor conditional compilation test whereas the test should
- be for existence.
-
- From: Michael Cree <mcree@orcon.net.nz>
- Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756892
- Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
- (cherry picked from commit 6ad8e61a428cfc9fc60ccdb9bce812e1f49822ac)
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit fbbdc31a8cd4c6457e06570ddeb9b2021563498e
-Merge: 46d9611 895bddc
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 29 17:31:29 2014 -0700
-
- Merge pull request #2356 from dachary/wip-9273-mon-preload-erasure-code-firefly
-
- erasure-code: preload the default plugins in the mon (firefly)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 46d9611aedd3194cfd55a338e5f94011e6e70668
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Aug 29 20:21:25 2014 +0100
-
- osd: OSDMap: ordered blacklist on non-classic encode function
-
- Fixes: #9211
- Backport: firefly
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 81102044f417bd99ca570d9234b1df5195e9a8c9)
-
-commit 994a9e35e96984c0806261f7eb349d95c0fb4873
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 08:16:29 2014 -0700
-
- osd/OSDMap: encode blacklist in deterministic order
-
- When we use an unordered_map the encoding order is non-deterministic,
- which is problematic for OSDMap. Construct an ordered map<> on encode
- and use that. This lets us keep the hash table for lookups in the general
- case.
-
- Fixes: #9211
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4672e50922b75d642056020b9745a3a5844424d3)
-
-commit 895bddc5d4dabd2f05c13c343eb0d7457d6f132f
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Aug 29 18:13:08 2014 +0200
-
- erasure-code: preload the default plugins in the mon
-
- The commit 164f1a1959a863848319585fa752250c7b261381 preloads the
- jerasure plugin in the OSD. They must also be preloaded in the mon for
- the same reasons.
-
- http://tracker.ceph.com/issues/9273 Fixes: #9273
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
-
-commit db8d6e6e190de964ec3d5d1bbc87da2dcb3213f5
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Aug 26 17:36:16 2014 +0100
-
- mds: fix FP error in ROUND_UP_TO
-
- Explicitly handle case where denominator is 0, instead of
- passing into ROUND_UP_TO.
-
- Regression from 9449520b121fc6ce0c64948386d4ff77f46f4f5f
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit bf3e4835dabc057982def1b5c9a6499c04ac5312)
-
-commit 8e3120fcb379a00d370e4c04d34af35e596e2de9
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 21 11:14:39 2014 -0700
-
- mon: generate cluster_fingerprint if null
-
- This triggers after an upgrade of a legacy cluster that has no fingerprint.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b245d600163f6337af15aedd1fea68f4e2a668a8)
-
-commit ebcdeb4cfe201dd0c630386226f9970650689ccf
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 20 08:59:46 2014 -0700
-
- mon: add a cluster fingerprint
-
- Generate it on cluster creations with the initial monmap. Include it in
- the report. Provide no way for this uuid to be fed in to the cluster
- (intentionally or not) so that it can be assumed to be a truly unique
- identifier for the cluster.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 675b0042eff0ad5e1453838410210b1206c39004)
-
-commit b3b029165d4ac0af3f2143fad205f4e8ab08a30f
-Merge: 21e1faa 07e1ceb
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 13:13:08 2014 -0700
-
- Merge pull request #2244 from dachary/wip-9044-use-ruleset-firefly
-
- erasure-code: OSDMonitor::crush_ruleset_create_erasure needs ruleset (firefly)
-
-commit 21e1faa75da4e9cab8e139a8e2a1c4fc0ee30867
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 12 16:41:38 2014 -0700
-
- ReplicatedPG::cancel_copy: clear cop->obc
-
- Otherwise, an objecter callback might still be hanging
- onto this reference until after the flush.
-
- Fixes: #8894
- Introduced: 589b639af7c8834a1e6293d58d77a9c440107bc3
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 5040413054e923d6d5a2b4928162dba140d980e0)
-
-commit e6da7323655f3bfa4f669fb8361fcaa96f633456
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 26 12:02:52 2014 -0700
-
- PG: recover from each osd at most once
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 8a1723f67f995253c9e6da95ab433743ef23f61c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 26 11:38:53 2014 -0700
-
- PG: make the reservation sets more descriptively named
-
- These sets won't precisely be the backfill_targets or actingbackfill
- shortly.
-
- %s/sorted_backfill_set/remote_shards_to_reserve_backfill/g
- %s/acting_osd_it/remote_recovery_reservation_it/g
- %s/sorted_actingbackfill_set/remote_shards_to_reserve_recovery/g
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 938d735697e2af0b01dd2613a9152b3caef5db57
-Merge: 2f11631 9ca451a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Aug 26 10:30:14 2014 -0700
-
- Merge pull request #2203 from ceph/wip-scrub-firefly
-
- backport scrub throttling to firefly
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit 2f11631f3144f2cc0e04d718e40e716540c8af19
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Aug 16 12:42:33 2014 -0700
-
- os/FileStore: fix mount/remount force_sync race
-
- Consider:
-
- - mount
- - sync_entry is doing some work
- - umount
- - set force_sync = true
- - set done = true
- - sync_entry exits (due to done)
- - ..but does not set force_sync = false
- - mount
- - journal replay starts
- - sync_entry sees force_sync and does a commit while op_seq == 0
- ...crash...
-
- Fixes: #9144
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit dd11042f969b94f7a461d02e1475794031c79f61)
-
- Conflicts:
- src/os/FileStore.cc
-
-commit a38cf1bd503a09843d439f65937e7d60aed163e2
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Jul 10 10:32:17 2014 +0800
-
- Add random_cache.hpp to Makefile.am
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit a3e5c6d632119febd2150944a6f2cbce33cfda3a)
-
-commit a2c1532b5610207eccd24b8253643eec6bb05294
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 06:42:12 2014 -0700
-
- os/KeyValueStore, MemStore: fix warning
-
- os/MemStore.cc: In member function 'void MemStore::_do_transaction(ObjectStore::Transaction&)':
- os/MemStore.cc:956:18: warning: unused variable 'expected_object_size' [-Wunused-variable]
- os/MemStore.cc:957:18: warning: unused variable 'expected_write_size' [-Wunused-variable]
- os/KeyValueStore.cc: In member function 'unsigned int KeyValueStore::_do_transaction(ObjectStore::Transaction&, KeyValueStore::BufferTransaction&, ThreadPool::TPHandle*)':
- os/KeyValueStore.cc:1426:18: warning: unused variable 'expected_object_size' [-Wunused-variable]
- os/KeyValueStore.cc:1427:18: warning: unused variable 'expected_write_size' [-Wunused-variable]
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 2b86bf4f4c1be2603368d5031ee7d706056e2d1e
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Apr 29 11:23:58 2014 -0700
-
- osd: automatically scrub PGs with invalid stats
-
- If a PG has recnetly split and has invalid stats, scrub it now, even if
- it has scrubbed recently. This helps the stats become valid again soon.
-
- Fixes: #8147
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 68b440d66539e820c9ce86a6942c3188be4ee1ec)
-
-commit 271ca7d9bc41e3a2ac387b05ca9f30d8a250fb62
-Merge: 54333a4 87cd3a8
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 06:38:34 2014 -0700
-
- Merge pull request #2328 from dachary/wip-9209-round-up-to-firefly
-
- common: ROUND_UP_TO accepts any rounding factor (firefly)
-
-commit 54333a49c9e99a398bf3695845b248ba76ee3930
-Merge: 4bff6f3 58d0871
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 26 06:09:17 2014 -0700
-
- Merge pull request #2326 from yuyuyu101/wip-kvstore-firefly
-
- Backport from master to Firefly(KeyValueStore)
-
-commit 87cd3a8f6e190aed06e361595afc4ec83148da98
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Mon Aug 25 17:05:04 2014 +0200
-
- common: ROUND_UP_TO accepts any rounding factor
-
- The ROUND_UP_TO function was limited to rounding factors that are powers
- of two. This saves a modulo but it is not used where it would make a
- difference. The implementation is changed so it is generic.
-
- http://tracker.ceph.com/issues/9209 Fixes: #9209
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 9449520b121fc6ce0c64948386d4ff77f46f4f5f)
-
-commit 58d08714340049a5165ad682ec5b54292525b45d
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Mar 20 14:09:49 2014 +0800
-
- Remove exclusive lock on GenericObjectMap
-
- Now most of GenericObjectMap interfaces use header as argument not the union of
- coll_t and ghobject_t. So caller should be responsible for maintain the
- exclusive header.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
-commit 98df982a6f830154ff6880f5ee00350ba3375b6b
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed Jul 23 11:26:18 2014 +0800
-
- common/RandomCache: Fix inconsistence between contents and count
-
- The add/clear method may cause count inconsistent with the real size of
- contents.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
-commit c8ec7721526ccf4bfd91a220fee0dd75bef8fb21
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Tue Aug 26 04:41:28 2014 +0000
-
- Add random cache and replace SharedLRU in KeyValueStore
-
- SharedLRU plays pool performance in KeyValueStore with large header cache size,
- so a performance optimized RandomCache could improve it.
-
- RandomCache will record the lookup frequency of key. When evictint element,
- it will randomly compare several elements's frequency and evict the least
- one.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
- Conflicts:
-
- src/common/config_opts.h
- src/os/KeyValueStore.cc
-
-commit 33ca26a103a0d99627fddc30f2916c5aeb37c691
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Tue Aug 26 04:40:16 2014 +0000
-
- Add Header cache to KeyValueStore
-
- In the performance statistic recently, the header lookup becomes the main time
- consuming for the read/write operations. Most of time it occur 50% to deal with
- header lookup, decode/encode logics.
-
- Now adding header cache using SharedLRU structure which will maintain the header
- cache and caller will get the pointer to the real header. It also avoid too much
- header copy operations overhead.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
- Conflicts:
-
- src/os/KeyValueStore.cc
- src/os/KeyValueStore.h
-
-commit e8dcb8cc603cff64bafc11ee42c5c04a9cf85d12
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed Feb 26 17:46:07 2014 +0800
-
- Fix write operation on a deleted object in the same transaction
-
- If the following op happened:
- touch obj
- delete obj
- write obj
-
- KeyValueStore will fail at "write" operation.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
-commit e0ae6f9de685b60eee5efa5ca960c7a15481e41a
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Tue Aug 26 04:35:57 2014 +0000
-
- Remove SequencerPosition from KeyValueStore
-
- Now KeyValueStore expects kv backend to ensure consistency and there is unusable
- for KeyValueStore to store a SequencerPosition.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
- Conflicts:
-
- src/os/KeyValueStore.cc
- src/os/KeyValueStore.h
-
-commit 44721f71266e3098169ed00f1ca7e86496b76b07
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed Jun 4 12:58:07 2014 +0800
-
- Fix keyvaluestore fiemap bug
-
- The result of fiemap is wrong and the offset get from
- "StripObjectMap::file_to_extents" need to multiply by sequence number
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
-
-commit 4bff6f3476e5df400db3dc1f0ad7b35a2a41830e
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 21 13:05:35 2014 -0700
-
- mon: fix occasional message leak after session reset
-
- Consider:
-
- - we get a message, put it on a wait list
- - the client session resets
- - we go back to process the message later and discard
- - _ms_dispatch returns false, but nobody drops the msg ref
-
- Since we call _ms_dispatch() a lot internally, we need to always return
- true when we are an internal caller.
-
- Fixes: #9176
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 19df386b2d36d716be2e6d02de0386fac9e7bc1f)
-
-commit ca3ac907aa73c5d77760e12da6f1509ea860e894
-Merge: fdbab46 8d7e77b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 21 10:14:18 2014 -0700
-
- Merge pull request #2298 from dachary/wip-9153-jerasure-upgrade-firefly
-
- erasure-code: preload the jerasure plugin variant (sse4,sse3,generic)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 8d7e77b9747f1b3dc3c10d1b0877a4b9c899ba86
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Aug 21 14:41:55 2014 +0200
-
- erasure-code: preload the jerasure plugin variant (sse4,sse3,generic)
-
- The preloading of the jerasure plugin ldopen the plugin that is in
- charge of selecting the variant optimized for the
- CPU (sse4,sse3,generic). The variant plugin itself is not loaded because
- it does not happen at load() but when the factory() method is called.
-
- The JerasurePlugin::preload method is modified to call the factory()
- method to load jerasure_sse4 or jerasure_sse3 or jerasure_generic as a
- side effect.
-
- Indirectly loading another plugin in the factory() method is error prone
- and should be moved to the load() method instead. This change should be
- done in a separate commit.
-
- http://tracker.ceph.com/issues/9153 Fixes: #9153
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
-
-commit fdbab46852e74d405b5c747da98564a5866ec8a7
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Tue May 20 14:32:18 2014 +0800
-
- Fix set_alloc_hint op cause KeyValueStore crash problem
-
- Now KeyValueStore doesn't support set_alloc_hit op, the implementation of
- _do_transaction need to consider decoding the arguments. Otherwise, the
- arguments will be regarded as the next op.
-
- Fix the same problem for MemStore.
-
- Fix #8381
-
- Reported-by: Xinxin Shu <xinxin.shu5040@gmail.com>
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit c08adbc98ff5f380ecd215f8bd9cf3cab214913c)
-
-commit 922e24e658f09a8a772309f18a8d54c560fad653
-Merge: ae787cf 164f1a1
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 20 10:10:08 2014 -0700
-
- Merge pull request #2286 from dachary/wip-9153-jerasure-upgrade-firefly
-
- erasure-code: preload the jerasure plugin (firefly)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 164f1a1959a863848319585fa752250c7b261381
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Aug 19 01:30:15 2014 +0200
-
- erasure-code: preload the jerasure plugin
-
- Load the jerasure plugin when ceph-osd starts to avoid the following
- scenario:
-
- * ceph-osd-v1 is running but did not load jerasure
-
- * ceph-osd-v2 is installed being installed but takes time : the files
- are installed before ceph-osd is restarted
-
- * ceph-osd-v1 is required to handle an erasure coded placement group and
- loads jerasure (the v2 version which is not API compatible)
-
- * ceph-osd-v1 calls the v2 jerasure plugin and does not reference the
- expected part of the code and crashes
-
- Although this problem shows in the context of teuthology, it is unlikely
- to happen on a real cluster because it involves upgrading immediately
- after installing and running an OSD. Once it is backported to firefly,
- it will not even happen in teuthology tests because the upgrade from
- firefly to master will use the firefly version including this fix.
-
- While it would be possible to walk the plugin directory and preload
- whatever it contains, that would not work for plugins such as jerasure
- that load other plugins depending on the CPU features, or even plugins
- such as isa which only work on specific CPU.
-
- http://tracker.ceph.com/issues/9153 Fixes: #9153
-
- Backport: firefly
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 9b802701f78288ba4f706c65b853415c69002d27)
-
- Conflicts:
- src/test/erasure-code/test-erasure-code.sh
- src/common/config_opts.h
-
-commit ae787cfa88dfd0f5add5932b297258c46af4e333
-Author: Matt Benjamin <matt@linuxbox.com>
-Date: Thu May 29 10:34:20 2014 -0400
-
- Work around an apparent binding bug (GCC 4.8).
-
- A reference to h->seq passed to std::pair ostensibly could not bind
- because the header structure is packed. At first this looked like
- a more general unaligned access problem, but the only location the
- compiler rejects is a false positive.
-
- Signed-off-by: Matt Benjamin <matt@linuxbox.com>
- (cherry picked from commit c930a1f119069a424af28a618b0abff4947c221f)
-
-commit 486deefdc1496b72cc680e432a61d71e5fa265c9
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 17 20:54:28 2014 -0700
-
- qa/workunits/rbd/qemu-iotests: touch common.env
-
- This seems to be necessary on trusty.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 055be68cf8e1b84287ab3631a02e89a9f3ae6cca)
-
-commit cc4e6258d67fb16d4a92c25078a0822a9849cd77
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 23 16:52:08 2014 +0100
-
- unittest_strtol: fix compilation warning
-
- Was fixed in master by a4923f5bc373d530d1ffdf6c58a4d88139daedd2
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 7f9fe22a1c73d5f2783c3303fb9f3a7cfcea61c5
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Tue Jun 17 13:12:58 2014 +0800
-
- Fix EINVAL err when use "ceph tell osd.* bench"
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
- (cherry picked from commit 7dc93a9651f602d9c46311524fc6b54c2f1ac595)
-
-commit 14607fc045aa169f1e8fa6872b412fba8f09d645
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Wed Jul 16 17:48:34 2014 -0700
-
- qa/workunits/cephtool/test.sh: fix get erasure_code_profile test
-
- Manual backport of 4d6899c7560e990650959b442980a7249f0ba4c1
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 068b906ee396f1ad717968f214610ea86dd8d6b4
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Jun 27 21:41:18 2014 +0100
-
- mon: OSDMonitor: add 'osd pool get-quota' command
-
- Enables us to obtain current quotas for a given pool.
-
- Fixes: #8523
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 714a9bb5a058b2553f3be3e4cfb7e7f30150e75a)
-
-commit 2ed0fa034aa8e49ab703bdb798bd6211a83e3a9d
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jun 3 10:12:41 2014 +0100
-
- mon: name instead of id in "has tiers" message
-
- Instead of "Pool foo has tiers 1 2" print
- "Pool foo has tiers bar baz".
-
- Signed-off-by: John Spray <jspray@redhat.com>
- (cherry picked from commit 97772c2f53f726bd71710d0d3e34159d2679390a)
-
-commit 7e509b1b8b5a3679094f794cd9334598aef4441e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 23 17:01:38 2014 +0100
-
- common/config.cc: allow integer values to be parsed as SI units
-
- We are allowing this for all and any integer values; that is, OPT_INT,
- OPT_LONGLONG, OPT_U32 and OPT_U64.
-
- It's on the user to use appropriate units. For instance, the user should
- not use 'E(xabyte)' when setting a signed int, and use his best judgment
- when setting options that, for instance, ought to receive seconds.
-
- Fixes: 8265
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 5500437e064cd6b4b45d63ee9396193df87f4d44)
-
-commit 4e34d83e337d0febf20c86b051721878feef49a8
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 23 16:52:08 2014 +0100
-
- test/strtol.cc: Test 'strict_strtosi()'
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 40587d4792fd55db72d33870aae8b6a806c9baaf)
-
-commit 3b06b8f4893bd18440ecb9705414831a827cef90
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 23 16:51:37 2014 +0100
-
- common/strtol.cc: strict_strtosi() converts str with SI units to uint64_t
-
- Accepts values with a suffix (B, K, M, G, T, P, E) and returns the
- appropriate byte value.
-
- E.g., 10B = 10, while 10K = 10240.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 67dc5751ba9a4e527ff12ea65000d1ba45d956f6)
-
-commit 92ab6ecf321ab68ea8fe3e8c2b310303a5726af3
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Aug 13 15:50:20 2014 -0400
-
- ceph-disk: linter cleanup
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit d74ed9d53fab95f27a9ad8e9f5dab7192993f6a3)
-
-commit 08772fd888fb0eca4570bd6b4bb25f8122691cb4
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 12:00:50 2014 -0700
-
- ceph-disk: warn about falling back to sgdisk (once)
-
- This way the user knows something funny might be up if dmcrypt is in use.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6f7798e37e098de38fbc73f86c4c6ee705abbe38)
-
-commit 50166efd205f46fa325dec9636d817387e5d4d3b
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 11:40:34 2014 -0700
-
- ceph-disk: only fall back to sgdisk for 'list' if blkid seems old
-
- If the blkid doesn't show us any ID_PART_ENTRY_* fields but we know it is
- a GPT partition, *then* fallback. Otherwise, don't bother.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b1651afb34d9d2c324db3bf5f54ac9ce001c6af9)
-
-commit a45e815cb00f1a807691cbf687990839995f7629
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 11:39:47 2014 -0700
-
- ceph-disk: add get_partition_base() helper
-
- Return the base devices/disk for a partition device.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b75e8a340c49cbc067baa19790b994a5f904bb4f)
-
-commit 8c04e475efb4471c605e3c921ec8a03b67934899
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 17:26:07 2014 -0700
-
- ceph-disk: display information about dmcrypted data and journal volumes
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c7a1ceba441fa99a82e19ed2cd3c6782a5d77636)
-
-commit b09e659226b26002b58c7697f8c600d06fe78c58
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 17:25:42 2014 -0700
-
- ceph-disk: move fs mount probe into a helper
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f80ed26d2403ba12e80da6459fc45c22584f72de)
-
-commit 6775f46e4a5862ddbf81bef11016bc036222fda9
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 17:25:10 2014 -0700
-
- ceph-disk: use partition type UUIDs, and blkid
-
- Use blkid to give us the GPT partition type. This lets us distinguish
- between dmcrypt and non-dmcrypt partitions. Fake it if blkid doesn't
- give us what we want and try with sgdisk. This isn't perfect (it can't
- tell between dmcrypt and not dmcrypt), but such is life, and we are better
- off than before.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6c77f5f2f994c881232d76ce9c69af80d10772bd)
-
-commit 1804a83400b7c3dc07650e09da5224bb999d0940
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 13:53:16 2014 -0700
-
- ceph-disk: fix log syntax error
-
- File "/usr/sbin/ceph-disk", line 303, in command_check_call
- LOG.info('Running command: %s' % ' '.join(arguments))
- TypeError: sequence item 2: expected string, NoneType found
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1088d6cd11b476cd67ed30e07edd363c4057a003)
-
-commit 8a8a9c35349d3f58d899afa1a9e219b99586bc9f
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 11 15:58:15 2014 -0700
-
- Revert "Fix for bug #6700"
-
- This reverts commit 673394702b725ff3f26d13b54d909208daa56d89.
-
- This appears to break things when the journal and data disk are *not* the same.
- And I can't seem to reproduce the original failure...
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2edf01ffa4a7425af2691b4e94bc5fd0bfab1e5b)
-
-commit 50b700fadf6ce6e0bf14b5daa2288786426d7359
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 11 15:57:52 2014 -0700
-
- ceph-disk: fix verify_no_in_use check
-
- We only need to verify that partitions aren't in use when we want to
- consume the whole device (osd data), not when we want to create an
- additional partition for ourselves (osd journal).
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d6e6ba198efc4b3afff0c70af53497a70c6b3f19)
-
-commit c9847ef059f182ad15ef027c8bdfae6c99d91867
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Thu May 22 17:04:28 2014 -0400
-
- better error reporting on incompatible device requirements
-
- Signed-off-by: Alfredo Deza <alfredo@deza.pe>
- (cherry picked from commit 1ac3a503a15ddf7f7c1a33310a468fac10a1b7b6)
-
-commit 40649902891244242d5861ccd9538aec026cae3a
-Author: Stuart Longland <stuartl@vrt.com.au>
-Date: Tue May 6 14:06:36 2014 -0700
-
- ceph-disk: fix list for encrypted or corrupt volume
-
- Continue gracefully if an fs type is not detected, either because it is
- encrypted or because it is corrupted.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 09beebe3f1fd1b179547743648049b891cb8bc56)
-
-commit 80896dcf2c3ccba0b9b0b1bd9f6e075585e3d502
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Fri Jun 13 09:37:33 2014 -0400
-
- support dmcrypt partitions when activating
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit ef8a1281512c4ee70a3764b28891da691a183804)
-
-commit 1b0da81d733a36de4a9dc80263058a6cdf05c745
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 16:41:43 2014 -0700
-
- init-ceph: don't use bashism
-
- -z STRING
- the length of STRING is zero
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 0d6d1aa7e0c5e0b5f99c9b548a1f890c511b4299)
-
-commit 9005f33d0d80d6d2b93493b38866b7f74f87d1eb
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 14:28:57 2014 -0700
-
- osd: fix feature requirement for mons
-
- These features should be set on the client_messenger, not
- cluster_messenger.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ae0b9f17760eda9a7e09a6babac50bfe8ebb4b36)
-
-commit 9e46c5ad7dadd1c342c82629577b5a1bf037fe75
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 13:54:11 2014 -0700
-
- unittest_osdmap: test EC rule and pool features
-
- TODO: tiering feature bits.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2f0e2951d773b6acce781b4b991d6d8e817ee2f9)
-
-commit dbbe0c627bcd4a60c1346bb120698b5a0c2192c2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 14:04:05 2014 -0700
-
- unittest_osdmap: create an ec pool in test osdmap
-
- This is part of 7294e8c4df6df9d0898f82bb6e0839ed98149310.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit c2aa74a22718d9a59d60201d71213aaff2492ff8
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 08:55:10 2014 -0700
-
- osd: only require crush features for rules that are actually used
-
- Often there will be a CRUSH rule present for erasure coding that uses the
- new CRUSH steps or indep mode. If these rules are not referenced by any
- pool, we do not need clients to support the mapping behavior. This is true
- because the encoding has not changed; only the expected CRUSH output.
-
- Fixes: #8963
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 16dadb86e02108e11a970252411855d84ab0a4a2)
-
-commit 12430fed85b2cfeaeb33a443e6a4c6538d0833f8
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 15 08:52:37 2014 -0700
-
- crush: add is_v[23]_rule(ruleid) methods
-
- Add methods to check if a *specific* rule uses v2 or v3 features. Refactor
- the existing checks to use these.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1d95486780a54c85a5c88936a4da4bdc3576a7b8)
-
-commit 2427ea8f153caf55b3bce77cd2fc88935563c7b3
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jun 30 13:40:07 2014 -0700
-
- PGLog: fix clear() to avoid the IndexLog::zero() asserts
-
- Introduced in:
- c5b8d8105d965da852c79add607b69d5ae79a4d4
- ac11ca40b4f4525cbe9b1778b1c5d9472ecb9efa
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
- (cherry picked from commit 959f2b25910360b930183fbf469ce984a48542dd)
-
-commit 9ca451a6bf2f29e75f72cbd3dbcff0bf8986e462
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jun 19 12:34:36 2014 -0700
-
- osd: allow io priority to be set for the disk_tp
-
- The disk_tp covers scrubbing, pg deletion, and snap trimming
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit d9073f486527ca13cdb2774745c4c63c218333ad)
-
-commit 11858d7e7a493c9493f7039b7e45dc03fc4feb90
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:02:09 2014 -0700
-
- common/WorkQueue: allow io priority to be set for wq
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit dd6badcb5eedfec6748b3e6ca4d46e3b266038f6)
-
- Conflicts:
-
- src/common/WorkQueue.cc
-
-commit b75f85a2c4dd9807947862f7b89a5f25dfa1defe
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:01:42 2014 -0700
-
- common/Thread: allow io priority to be set for a Thread
-
- Ideally, set this before starting the thread. If you set it after, we
- could potentially race with create() itself.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1b8741022c5a2ebae38905215dadee696433e931)
-
-commit 9f29788fbc19aea341b4fe997a567aa3054b9d1c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 18 11:01:09 2014 -0700
-
- common/io_priority: wrap ioprio_set() and gettid()
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit a2b49110ef65efd526c3430ad03c988ca9dde768)
-
-commit fac5bfafef1eb82f8cf23c369fb5f50502e2e6f3
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Jun 17 10:47:24 2014 -0700
-
- osd: introduce simple sleep during scrub
-
- This option is similar to osd_snap_trim_sleep: simply inject an optional
- sleep in the thread that is doing scrub work. This is a very kludgey and
- coarse knob for limiting the impact of scrub on the cluster, but can help
- until we have a more robust and elegant solution.
-
- Only sleep if we are in the NEW_CHUNK state to avoid delaying processing of
- an in-progress chunk. In this state nothing is blocked on anything.
- Conveniently, chunky_scrub() requeues itself for each new chunk.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit c4e8451cc5b4ec5ed07e09c08fb13221e31a7ac6)
-
-commit ad82f28122dc41095d5e703279a8a5c494d35913
-Author: Sage Weil <sage@inktank.com>
-Date: Sat Jun 14 10:30:50 2014 -0700
-
- osd: add sanity check/warning on a few key configs
-
- Warn when certain config values are set to bad values.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit f3ec7d0b23fdee39a34bda7595cd2a79c08daf8a)
-
-commit 289360c5dc57a4788289472f90d63781143539be
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 1 17:24:48 2014 -0700
-
- osd: prevent pgs from getting too far ahead of the min pg epoch
-
- Bound the range of PG epochs between the slowest and fastest pg
- (epoch-wise) with 'osd map max advance'. This value should be set to
- something less than 'osd map cache size' so that the maps we are
- processing will be in memory as many PGs advance forward in time in
- loose synchrony.
-
- This is part of the solution to #7576.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cf25bdf6b0090379903981fe8cee5ea75efd7ba0)
-
-commit 662af7ac83b67af8c9edc554bbd505de717f9709
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 7 17:42:06 2014 -0700
-
- osd: fix pg epoch floor tracking
-
- If you call erase() on a multiset it will delete all instances of a value;
- we only want to delete one of them. Fix this by passing an iterator.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a52a855f6c92b03dd84cd0cc1759084f070a98c2)
-
-commit 229a346d824d84c361d7963a356af5251adc9e2e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Apr 2 14:29:08 2014 -0700
-
- osd: track per-pg epochs, min
-
- Add some simple tracking so that we can quickly determine what the min
- pg osdmap epoch is.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 81e4c47722255ac3d46f701a80e104cc390e766c)
-
-commit 38c3a3c0b0d1903aea2fdc6224fc4f70bbc39329
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 13:31:10 2014 -0700
-
- mon: fix divide by zero when pg_num adjusted and no osds
-
- Fixes: #9052
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 239401db7b51541a57c59a261b89e0f05347c32d)
-
-commit 87bf00a2cb93ce2dc904a42c45cc9f43023725c3
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 12:48:29 2014 -0700
-
- ceph_test_rados_api_tier: fix cache cleanup (ec too)
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d7fb7bf5f2059f411633751e376c2270e6040fba)
-
-commit 3be0d731cbe158d837d05c907aefe16aa95977be
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 12:15:38 2014 -0700
-
- ceph_test_rados_api: fix cleanup of cache pool
-
- We can't simply try to delete everything in there because some items may
- be whiteouts. Instead, flush+evict everything, then remove overlay, and
- *then* delete what remains.
-
- Fixes: #9055
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ebbe8aab17cfa2281902f167a706639535da4010)
-
-commit 7f511ef7fd55cca8f1babaf696ca0faa0e1e411d
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 11:41:23 2014 -0700
-
- librados/TestCase: inheret cleanup_default_namespace
-
- No need to duplicate this code.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1d199fb1173dc9685dba96c22b83e4e9edf51a11)
-
-commit 4a5c93a90986de4510c50f0fba72ae7d5aed8a15
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 10:34:53 2014 -0700
-
- osd/ReplicatedPG: only do agent mode calculations for positive values
-
- After a split we can get negative values here. Only do the arithmetic if
- we have a valid (positive) value that won't through the floating point
- unit for a loop.
-
- Fixes: #9082
- Tested-by: Karan Singh <karan.singh@csc.fi>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5be56ff86d9f3ab2407a258a5285d0b8f52f041e)
-
-commit 39bcafa6f2b14e4e11e1541cf01f24525e2b6449
-Merge: 7da121d cb48cd4
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Aug 12 21:15:26 2014 -0700
-
- Merge pull request #2231 from ceph/wip-8944-firefly
-
- Wip 8944 firefly
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7da121d2aa1ea5c5c8accef92d7304912d4b2eb3
-Author: Greg Farnum <greg@inktank.com>
-Date: Mon Jul 28 18:33:56 2014 -0700
-
- OSD: add require_same_peer_inst(OpRequestRef&,OSDMap&) helper
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit e99acf9810976b1fc74b84ad289773af43be973f)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit 8595e9bed3689933c03a8f3443052a36ff1d62f5
-Author: Greg Farnum <greg@inktank.com>
-Date: Mon Jul 28 14:19:59 2014 -0700
-
- OSD: introduce require_self_aliveness(OpRequestRef&,epoch_t) function
-
- Take the self-aliveness checks out of require_same_or_newer_map() and use
- the new function for that and for require_up_osd_peer().
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit e179e9227b4a4482d8359682092fd7f426b9a919)
-
- Conflicts:
-
- src/osd/OSD.cc
-
-commit d0f2c4891bbcc1938bee15b3fc0bfb796ce4c7de
-Author: Greg Farnum <greg@inktank.com>
-Date: Mon Jul 28 14:08:30 2014 -0700
-
- OSD: use OpRequestRef& for a few require_* functions
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit eb2f1ea2c33647934af878b504383829f5a198ce)
-
-commit 8d395f1cbbc63f4cd5d166fd0a667938c83f303c
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Jul 22 16:57:00 2014 -0700
-
- OSD: introduce require_up_osd_peer() function for gating replica ops
-
- This checks both that a Message originates from an OSD, and that the OSD
- is up in the given map epoch.
- We use it in handle_replica_op so that we don't inadvertently add operations
- from down peers, who might or might not know it.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit ccd0eec50103b919b3eb6eea96f7dc6438520ed3)
-
-commit 72c2474e05b918535047181d876678a6a077aa1d
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Fri Aug 8 10:16:20 2014 -0400
-
- init-ceph: conditionally update after argparsing
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 44ed1885fb588aad7e4729373e06c5933178b5e5)
-
-commit 8d7fb538e0163f828289d7da719692bd36a66f83
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Aug 7 11:11:57 2014 -0400
-
- make ceph-disk use the new init flag for cluster
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit d0ccb1cbef86b8ccd8967af892e3582ee80edd55)
-
-commit 260a9c84630ca6956eb772d87abdc3bd4c4bb8fc
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Thu Aug 7 10:48:09 2014 -0400
-
- allow passing a --cluster flag to the init script
-
- It will fallback to looking at /etc/ceph/$cluster.conf
- otherwise.
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 23b4915fa252852cf02cc42a1b6143e2cd61b445)
-
-commit cb5ecdce68dcd4e4bc32b5c7c029cfd7ffe7c80e
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Aug 6 15:30:30 2014 -0400
-
- use cluster name when checking the host
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit bdf5f30010117c71a227855a47fe22ab55b3e0b8)
-
-commit 79452540826d0aed7b94d374cc61b5002e89e4a4
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Aug 6 15:30:09 2014 -0400
-
- use name in /var/lib/ceph paths
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 3fb25c28e8e3cc62bc541538cc11f5ed41471611)
-
-commit 92755d1060ea06f13577cd2fffda6c7984a610b2
-Author: Alfredo Deza <alfredo.deza@inktank.com>
-Date: Wed Aug 6 15:29:42 2014 -0400
-
- when starting an OSD, pass in the cluster name
-
- Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
- (cherry picked from commit 9e08e3a7794ce007c80c8fdb56e96900eb5240a3)
-
-commit 272b26f5aab71c22a1954ff92548b535a1f018d8
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Aug 1 14:04:35 2014 -0700
-
- osd_types: s/stashed/rollback_info_completed and set on create
-
- Originally, this flag indicated that the object had already been stashed and
- that therefore recording subsequent changes is unecessary. We want to set it
- on create() as well since operations like [create, writefull] should not need
- to stash the object.
-
- Fixes: #8625
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 4260767973d96978e808cb87ef6ae991104b4f8d)
-
-commit 7b5bcb943578b99f5a2aeeae0bbc67f371c30233
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jun 19 18:27:49 2014 +0100
-
- osd: use appropriate json types instead of stream when dumping info
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 363496ad878c685008ccd87f26f121d62a48c24c)
-
-commit daec3226e073b8d6047eb9111f3deb39b1001647
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jun 19 16:52:06 2014 +0100
-
- osd: have 'tid' dumped as a json unsigned int where appropriate
-
- Most of the places dumping it would dump it as a string. Others as an int.
- Just a couple would dump it as an unsigned int.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 3f0ea9512be78d10ac0bc605a38e83cfbab7ffee)
-
-commit 439bce34bc25cd7c8eba7ffc124185d810d3711f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Aug 2 13:01:05 2014 -0700
-
- rgw: need to pass need_to_wait for throttle_data()
-
- need_to_wait wasn't passed into processor->throttle_data(). This was
- broken in fix for #8937.
-
- CID 1229541: (PW.PARAM_SET_BUT_NOT_USED)
-
- Backport: firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e93818df33286a2a7f73b593dc20da412db4e0a6)
- (cherry picked from commit 8519e9ab06caf6999e1243514a93eaffb155ab2e)
-
-commit fc1a4b5fdce7b92ba1b321dec37c4c75501e3521
-Author: Sylvain Munaut <s.munaut@whatever-company.com>
-Date: Thu Jun 5 11:28:27 2014 +0200
-
- rgw: Don't send error body when it's a HEAD request
-
- The main 'operation' know not to send any body for HEAD requests.
-
- However for errors, this was not the case, the formatter would be
- flushed and would send the error 'message' in the body in all cases.
-
- For the FastCGI case it doesn't seem to be an issue, it's possible
- that the webserver (apache/lighttpd/...) cleans up the response
- into shape.
-
- But when using the new civetweb frontend this cause invalid HTTP.
-
- Backport: firefly
- Fixes #8539
-
- Reviewed-by: Yehuda Sadeh <yehuda@inktank.com>
- Signed-off-by: Sylvain Munaut <s.munaut@whatever-company.com>
- (cherry picked from commit 0a2b4c25541bbd15776d3d35986518e37166910f)
-
-commit e3bc15343720d0455e32e429e7cf865037bd90d7
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 30 13:57:34 2014 -0700
-
- osd: prevent old clients from using tiered pools
-
- If the client is old and doesn't understand tiering, don't let them use a
- tiered pool. Reply with EOPNOTSUPP.
-
- Fixes: #8714
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 0190df53056834f219e33ada2af3a79e8c4dfb77)
-
-commit f3113e9adde54fa50a64010381f5b6c113f5cda0
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 31 11:02:55 2014 -0700
-
- mon/OSDMonitor: warn when cache pools do not have hit_sets configured
-
- Give users a clue when cache pools are enabled but the hit_set is not
- configured. Note that technically this will work, but not well, so for
- now let's just steer them away.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 383536a2ef2506c5591b25c0fd61dc8c181fdab9)
-
- NOTE: removed readforward state for backport
-
-commit aaf732f7475c075f8bf8e79bc08b11a020e5fadf
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 31 09:28:12 2014 -0700
-
- osd/ReplicatedPG: improve agent_choose_mode args
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit caf554bf2f752b50670d118c99843b7c4a2967b4)
-
-commit 76a519b215e591e0948d627fb1de826ed0bf415d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 31 09:26:03 2014 -0700
-
- osd/ReplicatedPG: evict blindly if there is no hit_set
-
- If there is no hit set for a PG, blindly evict objects. This avoids an
- assert(hit_set) in agent_estimate_atime_temp().
-
- Fixes: #8982
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ea4996d3ef15c5d5a776d162b08d9fad6859c976)
-
-commit 8ff48d79697e98dca04799ee5982a5308a4efc92
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 31 09:13:11 2014 -0700
-
- osd/ReplicatedPG: check agent_mode if agent is enabled but hit_sets aren't
-
- It is probably not a good idea to try to run the tiering agent without a
- hit_set to inform its actions, but it is technically possible. For
- example, one could simply blindly evict when we reach the full point.
- However, this doesn't work because the agent mode is guarded by a hit_set
- check, even though agent_setup() is not. Fix that.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5d1c76f641310f5f65600f70ae76945b2aa472d7)
-
-commit f98a6194a9a9f5794c38814c1c33d13b7fcea538
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 07:05:34 2014 -0700
-
- common/LogClient: fix sending dup log items
-
- We need to skip even the most recently sent item in order to get to the
- ones we haven't sent yet.
-
- Fixes: #9080
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 057c6808be5bc61c3f1ac2b956c1522f18411245)
-
-commit bbb1e6a3a84b2d853f935687f01016e7c6a67951
-Author: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
-Date: Wed Aug 6 15:10:14 2014 +0530
-
- RadosClient: Fixing potential lock leaks.
-
- In lookup_pool and pool_delete, a lock is taken
- before invoking wait_for_osdmap, but is not
- released for the failure case of the call. Fixing the same.
-
- Fixes: #9022
- Signed-off-by: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
- (cherry picked from commit f1aad8bcfc53f982130dbb3243660c3c546c3523)
-
-commit e767254ce9a1610f3d640d8157fcb0d1fdf8edf2
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Aug 11 16:41:26 2014 -0700
-
- librbd: fix error path cleanup for opening an image
-
- If the image doesn't exist and caching is enabled, the ObjectCacher
- was not being shutdown, and the ImageCtx was leaked. The IoCtx could
- later be closed while the ObjectCacher was still running, resulting in
- a segfault. Simply use the usual cleanup path in open_image(), which
- works fine here.
-
- Fixes: #8912
- Backport: dumpling, firefly
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 3dfa72d5b9a1f54934dc8289592556d30430959d)
-
-commit dec028d113ab4bcc7106fea0bf413b54829f67e7
-Merge: e087862 c7fbf27
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 12 14:38:33 2014 -0700
-
- Merge remote-tracking branch 'gh/firefly-next' into firefly
-
-commit 07e1ceb55ac3cf0bea58cec27737e45391de9106
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 10 17:10:04 2014 +0200
-
- erasure-code: ErasureCodeJerasure::create_ruleset must return a ruleset
-
- CrushWrapper::add_simple_ruleset does not return a ruleset, it returns
- a ruleid that must be converted into a ruleset before being returned.
-
- http://tracker.ceph.com/issues/9044 Fixes: #9044
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 0029a35872d3fc15f9a0d60d095b2e111d6e98a6)
-
-commit 96047f1de4e0591a294e31ed6af6edfb3b2357e4
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 10 17:06:33 2014 +0200
-
- erasure-code: OSDMonitor::crush_ruleset_create_erasure needs ruleset
-
- When OSDMonitor::crush_ruleset_create_erasure checks the ruleset for
- existence, it must convert the ruleid into a ruleset before assigning it
- back to the *ruleset parameter.
-
- http://tracker.ceph.com/issues/9044 Fixes: #9044
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 04a484a4d5800c9bcf9805d3e87ed0c8dee01c9a)
-
-commit e087862d5bd894572a6c223b45f4275cadd4b480
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Mon Jul 14 14:27:17 2014 +0800
-
- Add rbdcache max dirty object option
-
- Librbd will calculate max dirty object according to rbd_cache_max_size, it
- doesn't suitable for every case. If user set image order 24, the calculating
- result is too small for reality. It will increase the overhead of trim call
- which is called each read/write op.
-
- Now we make it as option for tunning, by default this value is calculated.
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 3c7229a2fea98b30627878c86b1410c8eef2b5d7)
-
-commit 5f74fb294a0cd9b973aae45de17f38436bac6d61
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Jun 4 23:22:18 2014 +0200
-
- librbd/internal.cc: check earlier for null pointer
-
- Fix potential null ponter deref, move check for 'order != NULL'
- to the beginning of the function to prevent a) deref in ldout() call
- and b) to leave function as early as possible if check fails.
-
- [src/librbd/internal.cc:843] -> [src/librbd/internal.cc:865]: (warning)
- Possible null pointer dereference: order - otherwise it is redundant
- to check it against null.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 3ee3e66a9520a5fcafa7d8c632586642f7bdbd29)
-
-commit b2189465f36fc375b864f88a47d25c7808c08901
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Apr 24 14:47:24 2014 -0700
-
- librbd: add an interface to invalidate cached data
-
- This is useful for qemu to guarantee live migration with caching is
- safe, by invalidating the cache on the destination before starting it.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 5d340d26dd70192eb0e4f3f240e3433fb9a24154)
-
-commit f7dc58552a9ee228b7fa2a10094e962ed66fe8fd
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Thu Apr 24 14:43:35 2014 -0700
-
- librbd: check return code and error out if invalidate_cache fails
-
- This will only happen when shrinking or rolling back an image is done
- while other I/O is in flight to the same ImageCtx. This is unsafe, so
- return an error before performing the resize or rollback.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e08b8b66c77be3a3d7f79d91c20b1619571149ee)
-
-commit c7fbf272a202cd8a72d91b7a55e53fbb5cbbbadd
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Aug 9 13:23:06 2014 -0700
-
- os/FileStore: dump open fds before asserting
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4e8de1792731cf30f2744ab0659d036adc0565a3)
-
-commit 978f5749f3d08bb4c96529ca2d1b10760ee2606d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 25 13:51:45 2014 -0700
-
- ceph_test_rados_api_tier: do fewer writes in HitSetWrite
-
- We don't need to do quite so many writes. It can be slow when we are
- thrashing and aren't doing anything in parallel.
-
- Fixes: #8932
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c5f766bb16c0ab3c3554e73791ad0b74077ad35c)
-
-commit 22aa81413e7db43418e613aea037e978031f5b8a
-Merge: b65cef6 7025075
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 8 19:05:37 2014 -0700
-
- Merge remote-tracking branch 'gh/firefly-next' into firefly
-
-commit cb48cd47a26d27869884af83012d6a8a684abf25
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:50:37 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: verify ceph -c works with daemon
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit aa9ae1f270293778aa937e7f7e4bcaee3099b9b2)
-
-commit 1ac0e5436da68e441f42a1016b12481046147850
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:49:02 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: typo
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 22d20f39b7355966554319d5a1aa888967607569)
-
-commit a144950624208d8ed2901fd7421060a706ac2016
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:48:28 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: allow local ceph command
-
- (cherry picked from commit 97a8d5a9fdbd3a25cc922c242ee57da58c57d0bc)
-
-commit 76b593f6268d77e6cf5a9931f6f3524b3f574c09
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Jul 28 21:28:42 2014 -0700
-
- ceph.in: Pass global args to ceph-conf for proper lookup
-
- Fixes: #8944
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 6d89a99648630f81b85ad115fe7662dba6b08a55)
-
-commit b65cef678777c1b87d25385595bf0df96168703e
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jul 14 08:04:16 2014 -0700
-
- ceph_test_rados_api_tier: fix [EC] HitSet{Read,Write,Trim} tests
-
- The hit_set_ fields can only be set on tier pools as of
- f131dfbaedf6f451572e7aa3a83f653912122953.
-
- Fixes: #8823
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e17e9d857722ee478abda10adb32e15b11fff2ff)
-
-commit 70250755e4b2c114f1f0f463b42930dd99751d81
-Merge: 6f1a544 f8494c8
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Aug 3 12:47:23 2014 -0700
-
- Merge branch 'wip-8701-firefly' into firefly-next
-
-commit f8494c87e5276f0587c3341ddef9d7a933dfea11
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 22 06:53:41 2014 -0700
-
- ceph_test_objectstore: clean up on finish of MoveRename
-
- Otherwise, we leave collections around, and the next test fails.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d4faf747b73e70dff9cb5c98ee6aaa4ecec215fc)
-
-commit 94fee997204d439abfd642be20a7e33df5979342
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 21 13:45:21 2014 -0700
-
- os/LFNIndex: use FDCloser for fsync_dir
-
- This prevents an fd leak when maybe_inject_failure() throws an exception.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3ec9a42b470422b1fe72b6294d82d9efcaca7f53)
-
-commit b213866eac422a6ac6aeacd3ab4741a6421ce20c
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 23:16:09 2014 -0700
-
- os/LFNIndex: only consider alt xattr if nlink > 1
-
- If we are doing a lookup, the main xattr fails, we'll check if there is an
- alt xattr. If it exists, but the nlink on the inode is only 1, we will
- kill the xattr. This cleans up the mess left over by an incomplete
- lfn_unlink operation.
-
- This resolves the problem with an lfn_link to a second long name that
- hashes to the same short_name: we will ignore the old name the moment the
- old link goes away.
-
- Fixes: #8701
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6fb3260d59faab1e20ebf1e44f850f85f6b8342a)
-
-commit 4fc72d8d936ac499fbb53a1d73a3f7c05ebe596a
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 17:28:18 2014 -0700
-
- os/LFNIndex: remove alt xattr after unlink
-
- After we unlink, if the nlink on the inode is still non-zero, remove the
- alt xattr. We can *only* do this after the rename or unlink operation
- because we don't want to leave a file system link in place without the
- matching xattr; hence the fsync_dir() call.
-
- Note that this might leak an alt xattr if we happen to fail after the
- rename/unlink but before the removexattr is committed. We'll fix that
- next.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ec36f0a130d67df6cbeefcc9c2d83eb703b6b28c)
-
-commit 816ed7e951b32bb9ac57466c0affaec9781ac7f4
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 21 13:43:42 2014 -0700
-
- os/LFNIndex: FDCloser helper
-
- Add a helper to close fd's when we leave scope. This is important when
- injecting failures by throwing exceptions.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a320c260a9e088ab0a4ea3d5298c06a2d077de37)
-
-commit cbfbe637851c7ebe4a9ec1fd6e429cdf85aef608
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 17:09:07 2014 -0700
-
- os/LFNIndex: handle long object names with multiple links (i.e., rename)
-
- When we rename an object (collection_move_rename) to a different name, and
- the name is long, we run into problems because the lfn xattr can only track
- a single long name linking to the inode. For example, suppose we have
-
- foobar -> foo_123_0 (attr: foobar) where foobar hashes to 123.
-
- At first, collection_add could only link a file to another file in a
- different collection with the same name. Allowing collection_move_rename
- to rename the file, however, means that we have to convert:
-
- col1/foobar -> foo_123_0 (attr: foobar)
-
- to
-
- col1/foobaz -> foo_234_0 (attr: foobaz)
-
- This is a problem because if we link, reset xattr, unlink we end up with
-
- col1/foobar -> foo_123_0 (attr: foobaz)
-
- if we restart after we reset the attr. This will cause the initial foobar
- lookup to since the attr doesn't match, and the file won't be able to be
- looked up.
-
- Fix this by allow *two* (long) names to link to the same inode. If we
- lfn_link a second (different) name, move the previous name to the "alt"
- xattr and set the new name. (This works because link is always followed
- by unlink.) On lookup, check either xattr.
-
- Don't even bother to remove the alt xattr on unlink. This works as long
- as the old name and new name don't hash to the same shortname and end up
- in the same LFN chain. (Don't worry, we'll fix that next.)
-
- Fixes part of #8701
- Signed-off-by: Sage Weil <sage@redhat.com>
-
- (cherry picked from commit b2cdfce6461b81f4926602a8c63b54aa92684e6c)
-
-commit 5db6c12b61e00b0bc8084ead5976a912ece0fc65
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 18 15:46:58 2014 -0700
-
- ceph_test_objectstore: fix warning
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit cf98805c09a38cce78ac08317899dc4152ae55a5)
-
-commit e18777ed6eb492e8421d53090b3c9af6e75bd792
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Jul 15 14:50:33 2014 -0700
-
- store_test: add long name collection_move_rename tests
-
- Currently fails.
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 6aa48a485e03ca100f3d9ebec77cc06f99756cd7)
-
- Conflicts:
- src/test/objectstore/store_test.cc
-
-commit 4e03d5b512c8d2f7fa51dda95c6132e676529f9b
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 3 08:40:57 2014 -0700
-
- Revert "enforce rados put aligment"
-
- This reverts commit 7a58da53ebfcaaf385c21403b654d1d2f1508e1a.
-
- This was alread backported in dece65064d949b5afcc359cd408615883b5e002a.
-
- Fixes: #8996
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 6f1a54436c63a4cb63712936fccade3267d03db8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jul 29 15:25:47 2014 -0700
-
- rgw: fix crash in swift CORS preflight request
-
- Fixes: #8586
-
- This fixes error handling, in accordance with commit 6af5a537 that fixed
- the same issue for the S3 case.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 18ea2a869791b4894f93fdafde140285f2e4fb65)
-
-commit dfcd99567e925bd6565ef4676c560f6c8c89e683
-Author: devicenull <dn@devicenull.org>
-Date: Fri Jul 18 10:25:51 2014 -0400
-
- rgw: fix decoding + characters in URL
-
- Fixes: #8702
- Backport: firefly
-
- Only decode + characters to spaces if we're in a query argument. The +
- query argument. The + => ' ' translation is not correct for
- file/directory names.
-
- Resolves http://tracker.ceph.com/issues/8702
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
- Signed-off-by: Brian Rak <dn@devicenull.org>
- (cherry picked from commit 4a63396ba1611ed36cccc8c6d0f5e6e3e13d83ee)
-
-commit f9716214a35e3cddd3006f3839f9688c41f0c7ca
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jul 25 20:33:52 2014 -0700
-
- rgw: call processor->handle_data() again if needed
-
- Fixes: #8937
-
- Following the fix to #8928 we end up accumulating pending data that
- needs to be written. Beforehand it was working fine because we were
- feeding it with the exact amount of bytes we were writing.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 0553890e79b43414cc0ef97ceb694c1cb5f06bbb)
-
- Conflicts:
- src/rgw/rgw_rados.h
-
-commit 4cd1b60c043089358ea8e70a51310005d5b68383
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 24 15:30:27 2014 -0700
-
- rgw: object write should not exceed part size
-
- Fixes: #8928
-
- This can happen if the stripe size is not a multiple of the chunk size.
-
- Backport: firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 14cad5ece7d1de9d93e72acca6d4c3b4a9cfcfa2)
-
-commit f68720a6a61364f72f4e0c62aabea65eabe33f98
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jul 22 15:30:11 2014 -0700
-
- rgw: align object chunk size with pool alignment
-
- Fixes: #8442
- Backport: firefly
- Data pools might have strict write alignment requirements. Use pool
- alignment info when setting the max_chunk_size for the write.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fc83e197ab85355e385c13f2a64957cad7481298)
-
- Conflicts:
- src/rgw/rgw_rados.cc
-
-commit 67d73451c893b58634f06ed141792da1bf0fa77c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 30 11:53:16 2014 -0700
-
- cls_rgw: fix object name of objects removed on object creation
-
- Fixes: #8972
- Backport: firefly, dumpling
-
- Reported-by: Patrycja Szabłowska <szablowska.patrycja@gmail.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 0f8929a68aed9bc3e50cf15765143a9c55826cd2)
-
-commit d90148da293b4a3e2a44d4486a6b48e27d35b79b
-Merge: 223a0a9 d48a737
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sat Aug 2 11:28:14 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-8438' into firefly-next
-
- Backport of c5b8d8105d965da852c79add607b69d5ae79a4d4
-
-commit 223a0a9e7ed76fbc114c2f058d3aff93556244e9
-Merge: 84bd3cd d72eec0
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sat Aug 2 11:22:47 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-7999' into firefly-next
-
- Backport of 830940bf242a73403ec1882a489e31f7694b7f7e
-
-commit 84bd3cd79961d1ddce12048f9ae980fc197e6be4
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jul 28 17:17:23 2014 -0700
-
- unittest_crush_wrapper: fix build
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f36cffc986c973014c89aa37ca73740b2fc194ca)
-
-commit 4983aa32fe8c64c78957b921f5d31ab07be9f850
-Merge: a2681c9 b6d8fea
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Aug 1 19:26:44 2014 -0700
-
- Merge pull request #2178 from dachary/wip-erasure-code-profile-default-firefly
-
- erasure-code: create default profile if necessary (firefly)
-
-commit d89a5a37f2515cc9af1322fd18357e445b94256f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 30 12:26:44 2014 -0700
-
- mon: s/%%/%/
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d700076a42a5a5ebe769a8311fd3b52bf2e98cd2)
-
-commit da0de4ee973d9a9c8ee6f9a5c12eb37c83b4d453
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 30 14:52:06 2014 -0700
-
- atomic: fix read() on i386, clean up types
-
- Among other things, fixes #8969
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 96863128e6668257f435c6962263caae0d7d10dd)
-
-commit 1e3b927731104629cae9682b55b8d540ef8af12f
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Jun 5 10:43:16 2014 -0700
-
- include/atomic: make 32-bit atomic64_t unsigned
-
- This fixes
-
- In file included from test/perf_counters.cc:19:0:
- ./common/perf_counters.h: In member function ‘std::pair PerfCounters::perf_counter_data_any_d::read_avg() const’:
- warning: ./common/perf_counters.h:156:36: comparison between signed and unsigned integer expressions [-Wsign-compare]
- } while (avgcount2.read() != count);
- ^
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2081c992bbe3a83d711f465634d19c011d28ea3e)
-
-commit 34ac3060d408604c7082c583641b90f330f12663
-Author: Dmitry Smirnov <onlyjob@member.fsf.org>
-Date: Wed May 21 07:56:43 2014 +1000
-
- Define AO_REQUIRE_CAS (fixes FTBFS on 'hppa')
-
- to fix FTBFS due to undeclared atomic functions.
-
- As reported
-
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748571
-
- by John David Anglin <dave.anglin@bell.net>
-
- ~~~~
- ./include/atomic.h: In member function 'size_t ceph::atomic_t::inc()':
- ./include/atomic.h:42:36: error: 'AO_fetch_and_add1' was not declared in this scope
- return AO_fetch_and_add1(&val) + 1;
- ^
- ./include/atomic.h: In member function 'size_t ceph::atomic_t::dec()':
- ./include/atomic.h:45:42: error: 'AO_fetch_and_sub1_write' was not declared in this scope
- return AO_fetch_and_sub1_write(&val) - 1;
- ^
- ./include/atomic.h: In member function 'void ceph::atomic_t::add(size_t)':
- ./include/atomic.h:48:36: error: 'AO_fetch_and_add' was not declared in this scope
- AO_fetch_and_add(&val, add_me);
- ^
- ./include/atomic.h: In member function 'void ceph::atomic_t::sub(int)':
- ./include/atomic.h:52:48: error: 'AO_fetch_and_add_write' was not declared in this scope
- AO_fetch_and_add_write(&val, (AO_t)negsub);
- ^
- ./include/atomic.h: In member function 'size_t ceph::atomic_t::dec()':
- ./include/atomic.h:46:5: warning: control reaches end of non-void function [-Wreturn-type]
- }
- ^
- make[5]: *** [cls/user/cls_user_client.o] Error 1
- ~~~~
-
- Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
- (cherry picked from commit 74218f3d6ca8ca9943ff9d08b7926e38fb13b329)
-
-commit a0c12b70d93604cde59fc21b4d42cae6bd0f4f26
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Mar 31 14:49:50 2014 -0700
-
- atomic_t: add atomic64_t
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
- (cherry picked from commit bf3ba6001c7b4cf37edfe6551d3ef298ebcbf421)
-
-commit 5a8c8c01cac7f8ef8b898a88cac96af973350a3d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 30 13:40:33 2014 -0700
-
- test/cli-integration/rbd: fix trailing space
-
- Newer versions of json.tool remove the trailing ' ' after the comma. Add
- it back in with sed so that the .t works on both old and new versions, and
- so that we don't have to remove the trailing spaces from all of the test
- cases.
-
- Backport: firefly
- Fixes: #8920
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 605064dc685aa25cc7d58ec18b6449a3ce476d01)
-
- Conflicts:
- src/test/cli-integration/rbd/defaults.t
-
-commit 234b2d1933f7f403c094a3c65bf912fcee688181
-Author: John Spray <jspray@redhat.com>
-Date: Mon Jul 7 15:45:54 2014 +0100
-
- tests: don't depend on 'data' pool in rbd test
-
- Since we removed the default 'data' and 'metadata' pools,
- tests which need a pool should create it themselves.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit a7a631d1e284f151e305f770cef2042a1b9f86c0)
-
-commit 751258db76d9f5288ff42e8e961a9ffea1d226de
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Mon Jul 28 16:54:48 2014 +0800
-
- PGMonitor: fix bug in caculating pool avail space
-
- Currently for pools with different rules, "ceph df" cannot report
- right available space for them, respectively. For detail assisment
- of the bug ,pls refer to bug report #8943
-
- This patch fix this bug and make ceph df works correctlly.
-
- Fixes Bug #8943
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit 04d0526718ccfc220b4fe0c9046ac58899d9dafc)
-
-commit 7b1546cc5c361a1af7f724e3c3b7ca9436bad76f
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 28 13:59:47 2014 -0700
-
- mon: set min_size to data chunk count for erasure pools
-
- Make the min_size value meaningful for erasure pools.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e06c58c9b8f585d2fe7c97d010aa0aa61c09d609)
-
-commit e859587911edddd3a5b7fd96ee2f6a7ed77478dc
-Author: Sage Weil <sage@inktank.com>
-Date: Sun May 11 13:36:03 2014 -0700
-
- mon: include 'max avail' in df output
-
- Include an estimate of the maximum writeable space for each pool. Note
- that this value is a conservative estimate for that pool based on the
- most-full OSD. It is also potentially misleading as it is the available
- space if *all* new data were written to this pool; one cannot (generally)
- add up the available space for all pools.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 7a9652b58ea70f9a484a135bde20d872616c5947)
-
-commit a5e0ebc36ccbdf36e733e5eab926e4446a48fbd8
-Author: Sage Weil <sage@inktank.com>
-Date: Sun May 11 13:31:14 2014 -0700
-
- mon: right justify df values
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 2f63a309df4b7086725949bc0a532595cf927edf)
-
-commit 3d578479420f4b0c153dffe96605bf413070ad45
-Author: John Spray <john.spray@inktank.com>
-Date: Thu May 8 11:04:46 2014 +0100
-
- mon: Fix % escaping (\% should be %%)
-
- Clang's -Wpedantic points this out.
-
- Signed-off-by: John Spray <john.spray@inktank.com>
- (cherry picked from commit f0231ef364d531eb60351598c4a0f5fa6efad23c)
-
- Conflicts:
- src/mon/DataHealthService.cc
-
-commit 6164c3ef8d9ced38d878c191e4de3d84a8bda45e
-Author: Sage Weil <sage@inktank.com>
-Date: Wed May 28 13:49:52 2014 -0700
-
- crush: add get_rule_weight_map
-
- Calculate a weight map of OSDs for a given rule.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 297f6169feecd20e121d102e1b63a505c8b3e74a)
-
-commit 2f90bfdb854750990881f2f53492687a07b19546
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Wed Jul 9 11:20:36 2014 +0000
-
- Fix the PG listing issue which could miss objects for EC pool (where there is object shard and generation).
- Backport: firefly
- Signed-off-by: Guang Yang (yguang@yahoo-inc.com)
-
- (cherry picked from commit 228760ce3a7109f50fc0f8e3c4a5697a423cb08f)
-
-commit 61c90252c3a496e09962cfda2eb11e6bd112af8a
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 25 14:48:10 2014 -0700
-
- osd/ReplicatedPG: requeue cache full waiters if no longer writeback
-
- If the cache is full, we block some requests, and then we change the
- cache_mode to something else (say, forward), the full waiters don't get
- requeued until the cache becomes un-full. In the meantime, however, later
- requests will get processed and redirected, breaking the op ordering.
-
- Fix this by requeueing any full waiters if we see that the cache_mode is
- not writeback.
-
- Fixes: #8931
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8fb761b660c268e2264d375a4db2f659a5c3a107)
-
-commit f701688a360fd977b5e1f59518622ab6d2299a08
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 25 14:43:48 2014 -0700
-
- osd/ReplicatedPG: fix cache full -> not full requeueing when !active
-
- We only want to do this if is_active(). Otherwise, the normal
- requeueing code will do its thing, taking care to get the queue orders
- correct.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 36aaab9eee7ed41a46a4ac27376d630a29de5eb9)
-
-commit a1ddce36ebf1ce479129def364328486fbcc5c86
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:50:37 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: verify ceph -c works with daemon
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit aa9ae1f270293778aa937e7f7e4bcaee3099b9b2)
-
-commit 50a1c08e46eaedd3d81a52f64923228bc8a81c26
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:49:02 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: typo
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 22d20f39b7355966554319d5a1aa888967607569)
-
-commit 4cfb7dbc5c8fe1a28fb945fa12d9795943db1db5
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Jul 30 14:48:28 2014 -0700
-
- qa/workunits/cephtool/test_daemon.sh: allow local ceph command
-
- (cherry picked from commit 97a8d5a9fdbd3a25cc922c242ee57da58c57d0bc)
-
-commit 120b5d5ad51fa47a2bb0a144821635f5f81b5a2e
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Mon Jul 28 21:28:42 2014 -0700
-
- ceph.in: Pass global args to ceph-conf for proper lookup
-
- Fixes: #8944
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 6d89a99648630f81b85ad115fe7662dba6b08a55)
-
-commit e0c27cd7fde84944fd350f7df89e79d9a39ace98
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 16 17:55:36 2014 -0700
-
- qa/workunits/cephtool/test.sh: test osd pool get erasure_code_profile
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit ce9f12d7a2202948532fed9da4d763ed03f6b8fa)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
-
-commit cf22759cdf1c0a6d258e5c0a2d32268ce051c742
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Wed Jul 16 17:48:34 2014 -0700
-
- mon: OSDMonitor: add "osd pool get <pool> erasure_code_profile" command
-
- Enable us to obtain the erasure-code-profile for a given erasure-pool.
-
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit e8ebcb79a462de29bcbabe40ac855634753bb2be)
-
-commit b94d2f142db63bdf395d8288f8dcef1558d30eaf
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 23 18:25:53 2014 -0700
-
- osd/ReplicatedPG: observe INCOMPLETE_CLONES in is_present_clone()
-
- We cannot assume that just because cache_mode is NONE that we will have
- all clones present; check for the absense of the INCOMPLETE_CLONES flag
- here too.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 63abf11390bb9b8dd604aae2b3e90596f9ab65ac)
-
-commit 22cc1b643f83edbfc0475f6da89cf4bd4c89aae1
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 23 18:24:51 2014 -0700
-
- osd/ReplicatedPG: observed INCOMPLETE_CLONES when doing clone subsets
-
- During recovery, we can clone subsets if we know that all clones will be
- present. We skip this on caching pools because they may not be; do the
- same when INCOMPLETE_CLONES is set.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 41364711a66c89ce2e94435fe0d54eeda6092614)
-
-commit c42232e3539fc4682e8fec3e064b21acbcc996ed
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 23 18:23:56 2014 -0700
-
- osd/ReplicatedPG: do not complain about missing clones when INCOMPLETE_CLONES is set
-
- When scrubbing, do not complain about missing cloens when we are in a
- caching mode *or* when the INCOMPLETE_CLONES flag is set. Both are
- indicators that we may be missing clones and that that is okay.
-
- Fixes: #8882
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 956f28721dd98c5fb9eb410f4fe9e320b3f3eed3)
-
-commit bde3a9f0f610e6af30066dd77949a1249cd658bf
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jul 23 18:21:38 2014 -0700
-
- osd/osd_types: add pg_pool_t FLAG_COMPLETE_CLONES
-
- Set a flag on the pg_pool_t when we change cache_mode NONE. This
- is because object promotion may promote heads without all of the clones,
- and when we switch the cache_mode back those objects may remain. Do
- this on any cache_mode change (to or from NONE) to capture legacy
- pools that were set up before this flag existed.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 54bf055c5dadc55acf5731e08712d529b180ffc5)
-
-commit f19aa8ef0a2cbad7af3135defc1fe3485d377409
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Jul 11 00:40:47 2014 +0100
-
- qa/workunits: cephtool: adjust pool name where missing as it has changed
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 50e93c2138978f7f7c2fbafacc1611c8705a8eab)
-
-commit 163440a764a6fac8f2efbee6a8aee5cbc460dfe6
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Jul 11 00:41:01 2014 +0100
-
- qa/workunits: cephtool: cleanup after pool creation
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 6cd345732b15e84de17d743e06bc4d85569b79d4)
-
-commit c71c99ff21063e26ebfef431f916463f5606aae2
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 8 19:22:49 2014 +0100
-
- qa/workunits: cephtool: pool needs to be a tier to be used as such
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 704b0a33f2071eabeb8c5b000a6805ef6d498961)
-
-commit ba0a9bf013e8d056a4126b6840621e5a3a8b37fc
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jul 8 19:22:01 2014 +0100
-
- qa/workunits: cephtool: test erroneous 'tier remove'
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 49db6767152092d503ccf8ead6f7cb069e152a22)
-
-commit ffec081a551817288303cf3fa00c016bbffe114a
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jul 3 15:32:46 2014 +0100
-
- qa/workunits: cephtool: test get/set on both tier and non-tier pools
-
- Make sure gets and sets of tiering-specific variables succeed on tier
- pools and fail on non-tier pools.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 9fea033f30aec44a3273c623ec6c93eb1d7dd26b)
-
-commit 55166c3a098d8751ed6dafb3541e45a6439c5491
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jul 3 15:24:51 2014 +0100
-
- qa/workunits: cephtool: split get/set on tier pools from get/set tests
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit df5944955d96c041e65964a13b802028e9700904)
-
-commit 0425eb1dbd156d03a51e91c6f3079b8a687d62f3
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri Jun 27 22:20:51 2014 +0100
-
- qa/workunits: cephtool: test for 'osd pool {get,set}-quota'
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit b927c0de7d5c7a78bf3c133be52cbc1d769974bb)
-
-commit 68197bc28c8960db67c4246d50eb5146659593bd
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Mon Jun 30 17:51:47 2014 +0100
-
- mon: OSDMonitor: 'osd pool' - if we can set it, we must be able to get it
-
- Add support to get the values for the following variables:
- - target_max_objects
- - target_max_bytes
- - cache_target_dirty_ratio
- - cache_target_full_ratio
- - cache_min_flush_age
- - cache_min_evict_age
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit ddc04c83ff6842ca0b2f804b46099ea729b9fb6b)
-
-commit 01498ce8c897f7e3b66c8054a8b144a505a33010
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 1 08:42:58 2014 +0200
-
- qa: support running under non privileged user
-
- If the test is run against a cluster started with vstart.sh (which is
- the case for make check), the --asok-does-not-need-root disables the use
- of sudo and allows the test to run without requiring privileged user
- permissions.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 522174b066044e51a7019bd6cad81117e83c394e)
-
-commit 99259dff5bad93dce928c1ec07a16b34e3dac3dc
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 30 16:38:10 2014 -0700
-
- qa/workunits/cephtool/test.sh: sudo ceph daemon
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bcc09f93761d46202742ca85cce498a352edd494)
-
-commit 4f911d45632fd23c4124bf6b29287ece473d33b4
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 25 21:25:29 2014 +0100
-
- qa/workunits: cephtool: fix 'osd bench' test
-
- Commit 7dc93a9651f602d9c46311524fc6b54c2f1ac595 fixed an incorrect
- behavior with the OSD's 'osd bench' value hard-caps. The test wasn't
- appropriately modified unfortunately.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 48e38ac6323f4a0e06b0dedd37ecd10dc339b1e3)
-
-commit bad2f513c5bed4602005eaedff9384012103aaee
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 25 01:48:24 2014 +0100
-
- qa/workunits: cephtool: only run heap profiler test if tcmalloc enabled
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 4b0809a13eb363a15e52a6a57372a0a31a64cef8)
-
-commit 26f9860d19c38595bfced76fce864fe9ad9f3a27
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jun 24 23:16:17 2014 +0100
-
- qa/workunits: cephtool: set +e for the tcmalloc tests
-
- Avoids failing the tests when tcmalloc is not present
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 5c4616e100297ba8639919aca7a9cb59e4bda54a)
-
-commit a0720b608db208ac766df8eea53bdbba31d79492
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jun 24 22:47:31 2014 +0100
-
- qa/workunits: cephtool: delete unnecessary function calls
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 67255435151627314cc2fc38732d4fb5efddc3cc)
-
-commit 373224729e9ab2a46afb43b1388d37ff951cc42e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jun 24 22:46:44 2014 +0100
-
- qa/workunits: cephtool: disable bash debug when not running tests
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 946bd0dad4b027326b03c13405782b99ef0f91b2)
-
-commit 52d733c7202b393b3b7da48e3aa6db275946757a
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jun 24 22:39:34 2014 +0100
-
- qa/workunits: cephtool: allow running individual tests
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 5d26575ef2d31d745ec4aa69ca1501cd76e5e8db)
-
-commit 96e58d6d38969ba8b47b1924205eb34850a24ed6
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Jun 24 20:55:27 2014 +0100
-
- qa/workunits: cephtool: cleanup state after erasure-code-profile test
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit f4184086d0d647e064e34308f678ef889e13c373)
-
-commit 4cd5d179375c06a25f04ef8150e2a53aabf7427e
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 25 01:17:58 2014 +0100
-
- qa/workunits: cephtool: add/remove comments
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 780424df3a107c7da57fc28d64f9e7a4bb47f8e8)
-
-commit 5bcf690b1dbf5a2e4388661f9d280b5934db1c9c
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Thu Jun 26 00:55:46 2014 +0100
-
- qa/workunits: cephtool: split into properly indented functions
-
- The test was a big sequence of commands being run and it has been growing
- organically for a while, even though it has maintained a sense of
- locality with regard to the portions being tested.
-
- This patch intends to split the commands into functions, allowing for a
- better semantic context and easier expansion. On the other hand, this
- will also allow us to implement mechanisms to run specific portions of
- the test instead of always having to run the whole thing just to test a
- couple of lines down at the bottom (or have to creatively edit the test).
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 3d14a96f4b2b7094d05ead1dec7547d165857e31)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
-
-commit 2af751807d1b51348302734c46d506db294303fd
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 25 01:12:55 2014 +0100
-
- qa/workunits: cephtool: move test line to where it's more appropriate
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 04658b7b2b5f98ae81ffb3f77303745e6d46eb81)
-
-commit 5bf9e3c7b59d7ce5996d4d05312b4a92f34bbcb6
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jun 25 01:11:52 2014 +0100
-
- qa/workunits: cephtool: split into functions
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit db6cc133ba4bb38b3c11eb835fd3983dc2f6b00e)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
-
-commit c898c9736950437256b8c261106f2827fc160e01
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jun 20 09:38:39 2014 +0200
-
- mon: test that pools used in tiers cannot be removed
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 39a4b78177cb9896ff35ab05bcf8774bfc934f3a)
-
-commit 5b72674238db80e62cf3d5cec1d94be5c0102388
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Fri May 23 17:02:23 2014 +0100
-
- qa/workunits/cephtool: test setting options using SI units
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 38405d3554dfb0caf2b0a2c010b95a61bdb99349)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
-
-commit aacf67d13f81fcc88881091d175fee9ecb0f8954
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jul 2 20:19:19 2014 +0100
-
- mon: OSDMonitor: be scary about inconsistent pool tier ids
-
- We may not crash your cluster, but you'll know that this is not something
- that should have happened. Big letters makes it obvious. We'd make them
- red too if we bothered to look for the ANSI code.
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 8e5a8daf98052954f3880d2d3516841b5062466b)
-
-commit af59cbf5854bd0fabeb0ef394d7d5b1207bbd6d3
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jul 2 19:47:52 2014 +0100
-
- osd: pg_pool_t: clear tunables on clear_tier()
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 64bdf6c92bc44adad5a49b9dc4f674789cee80b0)
-
-commit 8f788e14d22c913479630bce9f9c502ac900328c
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Wed Jul 2 19:46:48 2014 +0100
-
- mon: OSDMonitor: limit tier-specific pool set/get on non-tier pools
-
- Fixes: 8696
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit f131dfbaedf6f451572e7aa3a83f653912122953)
-
-commit 4b768a8fe9146e6ec033d4f6780e0ef373fcfd7a
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 24 10:06:31 2014 -0700
-
- mon/OSDMonitor: improve no-op cache_mode set check
-
- If we have a pending pool value but the cache_mode hasn't changed, this is
- still a no-op (and we don't need to block).
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 67d13d76f5692fa20649ea877f254c34094c11f6)
-
-commit c3f403293c7f8d946f66a871aa015a558120ce78
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Sat May 3 03:42:19 2014 +0100
-
- mon: OSDMonitor: disallow nonsensical cache-mode transitions
-
- Fixes: 8155
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit fd970bbc95d89bf66c9551feca17ac0afbf4d1e2)
-
-commit d9aacd96acfe24b15c4e3b2441838945de1ab720
-Author: Joao Eduardo Luis <joao.luis@inktank.com>
-Date: Tue Apr 29 18:03:56 2014 +0100
-
- mon: OSDMonitor: return immediately if 'osd tier cache-mode' is a no-op
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit d01aa5bff30441eec1ffaa3e59a21187f8478475)
-
-commit 981add9cad5f2db06a4932be228eb0ff30254a9b
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 22 18:01:14 2014 -0700
-
- osd/ReplicatedPG: debug obc locks
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 356af4bf46d6387e2f1a59646548f9a77e49e5f8)
-
-commit e32e2559c8ff408fff81cce0f15d6601dcd4a2f7
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 22 13:16:11 2014 -0700
-
- osd/ReplicatedPG: greedily take write_lock for copyfrom finish, snapdir
-
- In the cases where we are taking a write lock and are careful
- enough that we know we should succeed (i.e, we assert(got)),
- use the get_write_greedy() variant that skips the checks for
- waiters (be they ops or backfill) that are normally necessary
- to avoid starvation. We don't care about staration here
- because our op is already in-progress and can't easily be
- aborted, and new ops won't start because they do make those
- checks.
-
- Fixes: #8889
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6fe27823b8459271bf0c0e807493bb7cf1e4559b)
-
-commit 68651e9137df2b1034a5b470bbb2fc1d19d8debb
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jul 22 13:11:42 2014 -0700
-
- osd: allow greedy get_write() for ObjectContext locks
-
- There are several lockers that need to take a write lock
- because there is an operation that is already in progress and
- know it is safe to do so. In particular, they need to skip
- the starvation checks (op waiters, backfill waiting).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 09626501d7a0ff964027fd7a534465b76bad23cb)
-
-commit a2681c93fb30b912f653b596e27eb8b1bc5c6b78
-Author: Sage Weil <sage@inktank.com>
-Date: Wed Jul 2 10:38:43 2014 -0700
-
- qa/workunits/rest/test.py: make osd create test idempotent
-
- Avoid possibility that we create multiple OSDs do to retries by passing in
- the optional uuid arg. (A stray osd id will make the osd tell tests a
- few lines down fail.)
-
- Fixes: #8728
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit bb3e1c92b6682ed39968dc5085b69c117f43cbb0)
-
-commit 7a58da53ebfcaaf385c21403b654d1d2f1508e1a
-Author: Lluis Pamies-Juarez <lluis@pamies.cat>
-Date: Wed Jun 18 10:00:09 2014 -0700
-
- enforce rados put aligment
-
- Signed-off-by: Lluis Pamies-Juarez <lluis.pamies-juarez@hgst.com>
- (cherry picked from commit 304b08a23a3db57010078046955a786fe3589ef8)
- (cherry picked from commit dece65064d949b5afcc359cd408615883b5e002a)
-
-commit 7ae15549a795ffd9ffcd34ea1d5c101b90eee26d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 31 15:39:40 2014 -0700
-
- use llrintl when converting double to micro
-
- This avoids rounding error (noticeable on i386).
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 80911736bd61b6b88eac0974d24f21c15c5385a4)
-
- Conflicts:
- src/mon/OSDMonitor.cc
-
-commit f5fc24368756c794d186a0990241e0dc0adfc03c
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 24 18:22:22 2014 -0700
-
- msg/SimpleMessenger: drop local_conneciton priv link on shutdwon
-
- This breaks ref cycles between the local_connection and session, and let's
- us drop the explicit set_priv() calls in OSD::shutdown().
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 63c1711a9e237c14d137131f56751970ad1567b1)
-
-commit b6d8feab85fda97bf3a68980249a71846778a157
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jun 19 00:49:13 2014 +0200
-
- erasure-code: create default profile if necessary
-
- After an upgrade to firefly, the existing Ceph clusters do not have the
- default erasure code profile. Although it may be created with
-
- ceph osd erasure-code-profile set default
-
- it was not included in the release notes and is confusing for the
- administrator.
-
- The *osd pool create* and *osd crush rule create-erasure* commands are
- modified to implicitly create the default erasure code profile if it is
- not found.
-
- In order to avoid code duplication, the default erasure code profile
- code creation that happens when a new firefly ceph cluster is created is
- encapsulated in the OSDMap::get_erasure_code_profile_default method.
-
- Conversely, handling the pending change in OSDMonitor is not
- encapsulated in a function but duplicated instead. If it was a function
- the caller would need a switch to distinguish between the case when goto
- wait is needed, or goto reply or proceed because nothing needs to be
- done. It is unclear if having a function would lead to smaller or more
- maintainable code.
-
- http://tracker.ceph.com/issues/8601 Fixes: #8601
-
- Backport: firefly
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 4e1405e7720eda71a872c991045ac8ead6f3e7d8)
-
-commit 2fff5f031b2cc00b55bd1ada4f83e4838fe59ddd
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jan 13 17:54:08 2014 +0100
-
- common: s/stringstream/ostream/ in str_map
-
- There is no need to specialize more than ostream : it only makes it
- impossible to use cerr or cout as a parameter to str_map.
-
- Reviewed-By: Christophe Courtaut <christophe.courtaut@gmail.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 6aa45b133956b974a992b372496b90c908d94f12)
-
-commit d48a737a6f8daa463ddf82106455b2efe7715a33
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jun 2 13:44:49 2014 -0700
-
- osd/: in scrub, check for and remove obsolete rollback objs
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 953c33edb640f6eb0c3f3a0d07c061c0d324242b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 30 16:53:37 2014 -0700
-
- osd/: plumb rollback_trim_to through interfaces and messages
-
- We simply trim the roll back info up to min_last_complete_ondisk
- since we cannot correctly rollback past that point anyway!
-
- ReplicatedPG
- -> PGBackend::submit_transaction
- -> Backend messages
- -> PGBackend::Listener::log_operation
- -> append_log
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit ac11ca40b4f4525cbe9b1778b1c5d9472ecb9efa
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 30 16:27:32 2014 -0700
-
- PGLog: add rollback_info_trimmed_to_riter to IndexedLog and use in PG
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 2207ed12fa544afc48d6d28f199381ccf0367292
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 30 15:40:15 2014 -0700
-
- PGLog: fix logging whitespace in trim
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit d72eec0341e02881229d0e4ffeafcae92eb33fb6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jun 27 10:51:13 2014 -0700
-
- PG: block outgoing peering messages until the last interval is durable
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit f9f89be38333d3817a0eafc52a961365e21e1f3a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed May 21 13:09:33 2014 -0700
-
- PG: add machinery to temporarily buffer outgoing recovery messages
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit f7498124325fe2269c33e45fae4c8181c8f7be14
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Jun 9 11:00:32 2014 -0700
-
- os/: add async flush_commit() method to Sequencer and implementations
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 669b60571d6db9a9f74020e6a43b12b82edee41e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri May 30 15:18:53 2014 -0700
-
- PGLog: initialize complete_to
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 8679cdbeea6350fd860a9419f54578a90482895c
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu May 29 12:10:31 2014 -0700
-
- osd_types: add pg_log_t::rollback_info_trimmed_to
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 3bbe29eb5cca7cc42266a6c5561ce68feb4072de
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue May 20 16:05:01 2014 -0700
-
- common/Finisher: add queue(list<Context*>&)
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.80.7.txt b/src/ceph/doc/changelog/v0.80.7.txt
deleted file mode 100644
index fd49a5b..0000000
--- a/src/ceph/doc/changelog/v0.80.7.txt
+++ /dev/null
@@ -1,70 +0,0 @@
-commit 6c0127fcb58008793d3c8b62d925bc91963672a3 (tag: refs/tags/v0.80.7, refs/remotes/gh/firefly)
-Author: Jenkins <jenkins@inktank.com>
-Date: Tue Oct 14 12:10:38 2014 -0700
-
- 0.80.7
-
-commit fa599aad2d79e0bbc19e4f6a2ac6771b37bf6beb
-Merge: 805a4ff b8d2fc7
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Oct 13 10:34:47 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-7588-firefly' into firefly
-
-commit 805a4ff3f32c60798d01beef80e0702a4e9d82ee
-Merge: 4a3bc78 c5fd2d0
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Oct 13 10:34:34 2014 -0700
-
- Merge remote-tracking branch 'upstream/wip-9696-firefly' into firefly
-
-commit b8d2fc72ea54eb17611d7ac90be4da6c4e4e7485
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 8 14:19:22 2014 -0700
-
- osd/ReplicatedPG: carry CopyOpRef in copy_from completion
-
- There is a race with copy_from cancellation. The internal Objecter
- completion decodes a bunch of data and copies it into pointers provided
- when the op is queued. When we cancel, we need to ensure that we can cope
- until control passes back to our provided completion.
-
- Once we *do* get into the (ReplicatedPG) callbacks, we will bail out
- because the tid in the CopyOp or FlushOp no longer matches.
-
- Fix this by carrying a ref to keep the copy-from targets alive, and
- clearing out the tids that we cancel.
-
- Note that previously, the trigger for this was that the tid changes when
- we handle a redirect, which made the op_cancel() call fail. With the
- coming Objecter changes, this will no longer be the case. However, there
- are also locking and threading changes that will make cancellation racy,
- so we will not be able to rely on it always preventing the callback.
- Either way, this will avoid the problem.
-
- Fixes: #7588
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 589b639af7c8834a1e6293d58d77a9c440107bc3)
-
-commit c5fd2d043ed4aa4fdb60fc19a284f51a86cef408 (refs/remotes/gh/wip-9696-firefly)
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Oct 9 16:21:18 2014 -0700
-
- PG::choose_acting: in mixed cluster case, acting may include backfill
-
- Fixes: 9696
- Backport: firefly, giant
- Introduced: 92cfd370395385ca5537b5bc72220934c9f09026
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 9b18d99817c8b54e30dff45047dfe1b29871d659)
-
-commit 4a3bc78c033ed68183f91824c7942dc54afb8797 (refs/remotes/gh/wip-9731-firefly)
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Oct 10 13:53:29 2014 -0700
-
- PGLog::IndexedLog::trim(): rollback_info_trimmed_to_riter may be log.rend()
-
- Fixes: #9731
- Backport: giant, firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit d458b4f0f31161f561ff98e58ed979cf20c6f588)
diff --git a/src/ceph/doc/changelog/v0.80.8.txt b/src/ceph/doc/changelog/v0.80.8.txt
deleted file mode 100644
index 849e933..0000000
--- a/src/ceph/doc/changelog/v0.80.8.txt
+++ /dev/null
@@ -1,2547 +0,0 @@
-commit 69eaad7f8308f21573c604f121956e64679a52a7 (tag: refs/tags/v0.80.8)
-Author: Jenkins <jenkins@inktank.com>
-Date: Tue Jan 13 06:28:08 2015 -0800
-
- 0.80.8
-
-commit 3c7cacf00b66a0e17272cf67fe0823ee863dfa7c
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 19 16:43:02 2014 -0700
-
- mon/OSDMonitor: fix double-free on old MOSDBoot
-
- send_latest() does an m->put().
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 97f9b6df668315fba6a5924b79024c7a986f4110)
-
-commit 852d7b5b3c019c02c042b767fc88916088e1a94d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 8 11:17:03 2015 -0800
-
- osd: requeue PG when we skip handling a peering event
-
- If we don't handle the event, we need to put the PG back into the peering
- queue or else the event won't get processed until the next event is
- queued, at which point we'll be processing events with a delay.
-
- The queue_null is not necessary (and is a waste of effort) because the
- event is still in pg->peering_queue and the PG is queued.
-
- This is a firefly-specific patch; a (very) similar one will appear in master
- in 492ccc900c3358f36b6b14a207beec071eb06707.
-
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit c26ebd38335bb361aade5aacd05ba3217e602b9c
-Merge: b67b7e7 96ba529
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 8 18:31:26 2015 -0800
-
- Merge pull request #3217 from boydc2014/firefly
-
- clear data and payload after removed from ops_in_flight
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit b67b7e7ad72a1af96f9fb26ade815e65f72b4cb0
-Merge: db92718 7faae89
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:32:17 2015 +0100
-
- Merge pull request #3127 from ktdreyer/firefly-no-epoch
-
- Revert "ceph.spec.: add epoch"
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit db927186288cd4c63a3483b42e9eb9e016c96156
-Merge: 0d4abda 820dbfd
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:31:29 2015 +0100
-
- Merge pull request #3128 from dachary/wip-10281-make-check-fedora-20
-
- tests: fixes to run make check on fedora 20
-
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0d4abdaf80f1fedff7975d595abaac0a620c8035
-Merge: 1fdcb52 11995b3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:30:59 2015 +0100
-
- Merge pull request #3169 from ceph/wip-8797-firefly
-
- Wip 8797 firefly
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1fdcb524411a02b5627be66d9fd821a473223e9d
-Merge: 4b7b1b0 465eede
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:28:49 2015 +0100
-
- Merge pull request #3179 from dachary/wip-9998-crush-underfloat-firefly
-
- crush: fix weight underfloat issue (firefly)
-
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4b7b1b03bfcb7cb056783555884f211009ea5d46
-Merge: 4897ba4 f55b097
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:28:11 2015 +0100
-
- Merge pull request #3220 from ceph/wip-mon-backports.firefly
-
- mon: backports for #9987 against firefly
-
- Reviewed-by: Joao Eduardo Luis <joao@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4897ba4a304bcac548b2121312cd7235c34dd5aa
-Merge: efe801f f20225c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jan 9 01:26:30 2015 +0100
-
- Merge pull request #3258 from ceph/wip-10372-firefly
-
- osd: fix librados pool deletion race on firefly
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit efe801ff3a0d25243da18937c07b89227edbaac4
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Thu Dec 18 20:00:28 2014 -0800
-
- If trusty, use older version of qemu
-
- Fixes #10319
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
- (cherry-picked from 46a1a4cb670d30397979cd89808a2e420cef2c11)
-
-commit 96ba529ef8ce76e07b8444c94883afb3468d6762
-Author: Lei Dong <leidong@yahoo-inc.com>
-Date: Tue Dec 30 21:02:45 2014 +0800
-
- clear data and payload inside ops_in_flight_lock
-
- http://tracker.ceph.com/issues/9916 Fixes: #9916
- Signed-off-by: Dong Lei <leidong@yahoo-inc.com>
-
-commit e0648e3d30de504b096c4ae3bbe7d9c17652bdb5
-Merge: 455f940 3624006
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 29 14:31:23 2014 -0800
-
- Merge pull request #3264 from dachary/wip-jerasure-firefly
-
- erasure-code: update links to jerasure upstream
-
-commit 455f940908f242b1e34983af61351fd3045ce8ab
-Merge: b1ab685 aa95a2d
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 29 10:55:39 2014 -0800
-
- Merge pull request #3268 from ceph/firefly-10415
-
- libcephfs/test.cc: close fd before umount
-
-commit 362400667aad0b5098fbe8dbec1b0bde059f84a6
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Dec 28 10:29:54 2014 +0100
-
- erasure-code: update links to jerasure upstream
-
- It moved from bitbucket to jerasure.org
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 8e86f901939f16cc9c8ad7a4108ac4bcf3916d2c)
-
-commit aa95a2d20dbba2f3a775f709493c987d0d001e9c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Dec 23 10:22:00 2014 +0800
-
- libcephfs/test.cc: close fd before umount
-
- Fixes: #10415
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d3fb563cee4c4cf08ff4ee01782e52a100462429)
-
-commit f20225cb99a0d2d08fccfdf88dc89d758ecba077 (refs/remotes/gh/wip-10372-firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 23 15:49:26 2014 -0800
-
- osdc/Objecter: handle reply race with pool deletion
-
- We need to handle this scenario:
-
- - send request in epoch X
- - osd replies
- - pool is deleted in epoch X+1
- - client gets map X+1, sends a map check
- - client handles reply
- -> asserts that no map checks are in flight
-
- This isn't the best solution. We could infer that a map check isn't needed
- since the pool existed earlier and doesn't now. But this is firefly and
- the fix is no more expensive than the old assert.
-
- Fixes: #10372
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 820dbfd9947455d07426981b7152861c3c216080
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 5 15:11:18 2014 -0700
-
- test/ceph-disk.sh: mkdir -p
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c2f58e6694a2457200ab3d59e037ad17b9c82028)
-
-commit 77d393024f9d867b574b8ec8e15ec48a1a291511
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Thu Sep 4 12:23:27 2014 +0200
-
- test/ceph-disk.sh: resolve symlinks before check
-
- Make sure symlinks are resolved in command_fixture()
- before compare result of which command and the current
- path.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 8ea86dfa7c4a3d7e089cf9d4e49586657875f851)
-
-commit ed6ec2936513d7dd6c45bccd8edf69a12c71dc7b
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Jun 24 19:54:17 2014 +0200
-
- test/ceph-disk.sh: fix for SUSE
-
- On SUSE 'which' returns always the full path of (shell) commands and
- not e.g. './ceph-conf' as on Debian. Add check also for full
- path returned by which.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 39530536ff923b91899f6303507c283b78040a20)
-
-commit 754363f4563e7dbda1ef23fadc8d6ef1a3fdd0af
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jun 13 14:41:39 2014 +0200
-
- tests: prevent kill race condition
-
- When trying to kill a daemon, keep its pid in a variable instead of
- retrieving it from the pidfile multiple times. It prevents the following
- race condition:
-
- * try to kill ceph-mon
- * ceph-mon is in the process of dying and removed its pidfile
- * try to kill ceph-mon fails because the pidfile is not found
- * another ceph-mon is spawned and fails to bind the port
- because the previous ceph-mon is still holding it
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit a1c13c57ba20fc329d943ea57523913e11067dc7)
-
-commit 5be6f2f60e3225bf3d214432044721fe474d55d7
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Jun 25 00:31:48 2014 +0200
-
- osd/OSD.cc: parse lsb release data via lsb_release
-
- Use lsb_release tool to be portable since parsing /etc/lsb-release
- is not the same between different distributions. The old code failed
- e.g. for SUSE products to parse LSB information.
-
- Fixes: #8654
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 0b3a3987d382ff33fdf892f189b30df22be80e59)
-
-commit b62187c52324a4489c2fc1385b1d6574a058f7e8
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Aug 26 21:59:39 2014 +0200
-
- tests: histogram prevent re-use of local variables
-
- By moving the tests to separate functions.
-
- http://tracker.ceph.com/issues/9235 Fixes: #9235
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 4b8b25ecd128c34a386ad7c4cc89f323c4d384e1)
-
-commit e2741c8f1d42cfe91b18201a6a49005d90d85d98
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Aug 26 21:59:39 2014 +0200
-
- tests: histogram prevent re-use of local variables
-
- By moving the test to a separate function.
-
- http://tracker.ceph.com/issues/9235 Fixes: #9235
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit ee02293ad2ef050672fa8c164ba17b10e8d4ceeb)
-
-commit cf102df7a3f3b38824c26b9e44a21664fcf979a7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 10 00:08:57 2014 +0100
-
- tests: avoid tab interpretation problem on fedora 20
-
- Use . instead of tab in echo to avoid variations in how escape sequences
- are interpreted by the shell.
-
- http://tracker.ceph.com/issues/10281 Fixes: #10281
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit f55b097764beb973c12866f2d7161c6bd870aa07 (refs/remotes/gh/wip-mon-backports.firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 2 08:50:59 2014 -0800
-
- mon/PGMap and PGMonitor: update last_epoch_clean cache from new osd keys
-
- We were only invalidating the cached value from apply_incremental, which
- is no longer called on modern clusters.
-
- Fix this by storing the update epoch in the key as well (it is not part
- of osd_stat_t).
-
- Backport: giant, firefly, dumpling(?)
- Fixes: #9987
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 093c5f0cabeb552b90d944da2c50de48fcf6f564)
-
-commit 1d314e7a9ab7af5b693583cf2faa5db54f6beb69
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 2 08:49:48 2014 -0800
-
- mon/PGMap: invalidate cached min_last_epoch_clean from new-style pg keys
-
- We were only invalidating the cache from the legacy apply_incremental(),
- which is no longer called on modern clusters.
-
- Fixes: #9987
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3fb731b722c50672a5a9de0c86a621f5f50f2d06)
-
-commit 465eedea9f7411b1e352dc3ccee60a3f1221541d
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 23 18:50:51 2014 -0800
-
- crush/CrushWrapper: fix create_or_move_item when name exists but item does not
-
- We were using item_exists(), which simply checks if we have a name defined
- for the item. Instead, use _search_item_exists(), which looks for an
- instance of the item somewhere in the hierarchy. This matches what
- get_item_weightf() is doing, which ensures we get a non-negative weight
- that converts properly to floating point.
-
- Backport: giant, firefly
- Fixes: #9998
- Reported-by: Pawel Sadowski <ceph@sadziu.pl>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9902383c690dca9ed5ba667800413daa8332157e)
-
-commit cee51af9c1dbde550177c95caf6c93f612442300
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Nov 21 17:47:56 2014 -0800
-
- crush/builder: prevent bucket weight underflow on item removal
-
- It is possible to set a bucket weight that is not the sum of the item
- weights if you manually modify/build the CRUSH map. Protect against any
- underflow on the bucket weight when removing items.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8c87e9502142d5b4a282b94f929ae776a49be1dc)
-
-commit 7ccd5eec11e8cd945d24bf9f6390d6c3fa4a06de
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Nov 21 17:37:03 2014 -0800
-
- crush/CrushWrapper: fix _search_item_exists
-
- Reported-by: Pawel Sadowski <ceph@sadziu.pl>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit eeadd60714d908a3a033aeb7fd542c511e63122b)
-
-commit b1ab685e00034751a161a3d5e0325c6581999c75
-Merge: dd7c8c2 ef3773a
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 12 06:19:50 2014 -0800
-
- Merge pull request #3124 from ceph/wip-10194-firefly
-
- rgw: optionally call FCGX_Free() on the fcgi connection
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 11995b329045341c17553269267cfd3688a51b0f
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Dec 10 13:19:53 2014 -0800
-
- Call Rados.shutdown() explicitly before exit
-
- This is mostly a demonstration of good behavior, as the resources will
- be reclaimed on exit anyway.
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit b038e8fbf9103cc42a4cde734b3ee601af6019ea)
-
-commit e00270b51896f168d5013b7dc92ec7f8b9e19da3
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Dec 10 13:19:16 2014 -0800
-
- rados.py: remove Rados.__del__(); it just causes problems
-
- Recent versions of Python contain a change to thread shutdown that
- causes ceph to hang on exit; see http://bugs.python.org/issue21963.
- As it turns out, this is relatively easy to avoid by not spawning
- threads on exit, as Rados.__del__() will certainly do by calling
- shutdown(); I suspect, but haven't proven, that the problem is
- that shutdown() tries to start() a threading.Thread() that never
- makes it all the way back to signal start().
-
- Also add a PendingReleaseNote and extra doc comments to clarify.
-
- Fixes: #8797
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 5ba9b8f21f8010c59dd84a0ef2acfec99e4b048f)
-
- Conflicts:
- PendingReleaseNotes
-
-commit 7faae891aefa4c21c50430fa03d9204a86d082f8
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Dec 9 14:52:19 2014 -0700
-
- Revert "ceph.spec.: add epoch"
-
- If ICE ships 0.80.8, then it will be newer than what RHCEPH ships
- (0.80.7), and users won't be able to seamlessly upgrade via Yum.
-
- We have three options:
- A) Revert the "Epoch: 1" change on the Firefly branch.
- B) Revert the "Epoch: 1" change in the ICE packages.
- C) Bump the Epoch to "2" in Red Hat's packages.
-
- This commit does Option A.
-
- Option B may or may not be feasible - it would require a "downstream"
- change in ICE, and we haven't done that sort of thing before.
-
- Due to the RHEL release schedule, Option C is not available to us at
- this point.
-
- This reverts commit b890c1e4706d7cfef7ed24c9df65b439b4f7ff1d.
-
-commit ef3773ac93413c644e056babce1971f846bbc276
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 26 15:18:07 2014 -0800
-
- rgw: optionally call FCGX_Free() on the fcgi connection
-
- Fixes: #10194
-
- A new configurable controls this behavior. This forces disconnection of
- the fcgi connection when done with the request.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit dd7c8c2bc6b2810ff7f483af940fa09dbe74e83a
-Merge: d759467 a597096
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Dec 8 15:02:52 2014 -0800
-
- Merge pull request #3109 from ceph/firefly-10263
-
- mds: store backtrace for straydir
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit d7594672b673796901961cc684c9e7de8dc2c95d
-Merge: adf9a75 73b47db
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Dec 8 13:19:44 2014 -0800
-
- Merge pull request #3009 from dachary/wip-10018-primary-erasure-code-hinfo-firefly
-
- osd: deep scrub must not abort if hinfo is missing (firefly)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a5970963a2148697fc6da64facfbf6ab6686b9cd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Nov 7 11:38:37 2014 +0800
-
- mds: store backtrace for straydir
-
- Backport: giant, firefly, emperor, dumpling
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0d89db5d3e5ae5d552d4058a88a4e186748ab1d2)
-
-commit adf9a758000182d27a6582d516356730d02e4099
-Merge: dea38a7 b4a4b75
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Dec 6 11:06:02 2014 -0800
-
- Merge pull request #3089 from dachary/wip-10063-hobject-shard-firefly
-
- common: do not omit shard when ghobject NO_GEN is set (firefly)
-
-commit dea38a7af638c833304272c324ed2bc386a40f8f
-Merge: ccc8b46 5138091
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Dec 6 10:59:44 2014 -0800
-
- Merge pull request #2480 from dachary/wip-9420-erasure-code-non-regression-firefly
-
- erasure-code: store and compare encoded contents (firefly)
-
-commit ccc8b46b2cdc55c1a861f092259ef36a1296f073
-Merge: bef363c cd3447d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 17:33:05 2014 -0800
-
- Merge pull request #3096 from dachary/wip-9785-dmcrypt-keys-permissions-firefly
-
- ceph-disk: dmcrypt file permissions (firefly)
-
-commit cd3447d04cabf6745001afeef69f25a92400cd0e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Dec 4 22:21:32 2014 +0100
-
- ceph-disk: dmcrypt file permissions
-
- The directory in which key files are stored for dmcrypt must be 700 and
- the file 600.
-
- http://tracker.ceph.com/issues/9785 Fixes: #9785
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 58682d1776ab1fd4daddd887d921ca9cc312bf50)
-
-commit bef363c1d1fc06fbb315024145a97a809a2471cd
-Merge: cb2c83b 9f3b21d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 09:04:00 2014 -0800
-
- Merge pull request #3086 from dachary/wip-10125-radosgw-init-firefly
-
- rgw: run radosgw as apache with systemd (firefly)
-
-commit b4a4b75e6d4deb6818681902f85baa9f63acdb4f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Nov 14 01:16:10 2014 +0100
-
- common: do not omit shard when ghobject NO_GEN is set
-
- Do not silence the display of shard_id when generation is NO_GEN.
- Erasure coded objects JSON representation used by ceph_objectstore_tool
- need the shard_id to find the file containing the chunk.
-
- Minimal testing is added to ceph_objectstore_tool.py
-
- http://tracker.ceph.com/issues/10063 Fixes: #10063
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit dcf09aed121f566221f539106d10283a09f15cf5)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py
-
-commit 9f3b21d1b70be591d68bfa57c3393e8f9af8e7df
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 2 18:10:48 2014 +0100
-
- rgw: run radosgw as apache with systemd
-
- Same as sysv.
-
- http://tracker.ceph.com/issues/10125 Fixes: #10125
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7b621f4abf63456272dec3449aa108c89504a7a5)
-
- Conflicts:
- src/init-radosgw.sysv
-
-commit cb2c83b2f216e503f7a52115f775bda1dbfe0c6a
-Merge: e2ec37b 02d4685
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Dec 4 11:32:18 2014 -0800
-
- Merge pull request #3078 from ceph/wip-10030-firefly
-
- librbd: don't close an already closed parent image upon failure
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e2ec37bf45fa5e7f5e787db9b67dbb2a98f2fbb7
-Merge: c4c63e8 af12194
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 3 23:01:44 2014 -0800
-
- Merge pull request #3063 from ceph/wip-10123-firefly
-
- librbd: protect list_children from invalid child pool IoCtxs
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c4c63e82cd7e4716315ca81208293a2567026c72
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 23 15:52:08 2014 -0700
-
- ReplicatedPG: don't move on to the next snap immediately
-
- If we have a bunch of trimmed snaps for which we have no
- objects, we'll spin for a long time. Instead, requeue.
-
- Fixes: #9487
- Backport: dumpling, firefly, giant
- Reviewed-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit c17ac03a50da523f250eb6394c89cc7e93cb4659)
-
-commit 1b656450ca75b12fb98dee82bace914ef5f45c44
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 23 16:21:33 2014 -0700
-
- osd: initialize purged_snap on backfill start; restart backfill if change
-
- If we backfill a PG to a new OSD, we currently neglect to initialize
- purged_snaps. As a result, the first time the snaptrimmer runs it has to
- churn through every deleted snap for all time, and to make matters worse
- does so in one go with the PG lock held. This leads to badness on any
- cluster with a significant number of removed snaps that experiences
- backfill.
-
- Resolve this by initializing purged_snaps when we finish backfill. The
- backfill itself will clear out any stray snaps and ensure the object set
- is in sync with purged_snaps. Note that purged_snaps on the primary
- that is driving backfill will not change during this period as the
- snaptrimmer is not scheduled unless the PG is clean (which it won't be
- during backfill).
-
- If we by chance to interrupt backfill, go clean with other OSDs,
- purge snaps, and then let this OSD rejoin, we will either restart
- backfill (non-contiguous log) or the log will include the result of
- the snap trim (the events that remove the trimmed snap).
-
- Fixes: #9487
- Backfill: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 255b430a87201c7d0cf8f10a3c1e62cbe8dd2d93)
-
-commit 02d4685c56e129cb179a5ddfb8e87aefc2fce0b5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Nov 6 05:01:38 2014 -0500
-
- librbd: don't close an already closed parent image upon failure
-
- If librbd is not able to open a child's parent image, it will
- incorrectly close the parent image twice, resulting in a crash.
-
- Fixes: #10030
- Backport: firefly, giant
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 61ebfebd59b61ffdc203dfeca01ee1a02315133e)
-
-commit af121942d7bdfc59fcfae0429ffb12993e7e019d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 17 21:49:26 2014 -0500
-
- librbd: protect list_children from invalid child pool IoCtxs
-
- While listing child images, don't ignore error codes returned
- from librados when creating an IoCtx. This will prevent seg
- faults from occurring when an invalid IoCtx is used.
-
- Fixes: #10123
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0d350b6817d7905908a4e432cd359ca1d36bab50)
-
-commit c982da44e0e9e0be3c3d4e8f5e0a186fb2fcebb3
-Merge: 4a148df c4e4a31
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 30 10:12:04 2014 -0800
-
- Merge pull request #3014 from dachary/wip-9665-ceph-disk-partprobe-firefly
-
- ceph disk zap must call partprobe
-
-commit c4e4a310f14ca3049ac90422aea95051fe0d4b15
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 10 10:26:31 2014 +0200
-
- ceph-disk: use update_partition in prepare_dev and main_prepare
-
- In the case of prepare_dev the partx alternative was missing and is not
- added because update_partition does it.
-
- http://tracker.ceph.com/issues/9721 Fixes: #9721
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 23e71b1ee816c0ec8bd65891998657c46e364fbe)
-
- Conflicts:
- src/ceph-disk
-
-commit e70a81464b906b9a304c29f474e6726762b63a7c
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Oct 9 18:52:17 2014 +0200
-
- ceph-disk: run partprobe after zap
-
- Not running partprobe after zapping a device can lead to the following:
-
- * ceph-disk prepare /dev/loop2
- * links are created in /dev/disk/by-partuuid
- * ceph-disk zap /dev/loop2
- * links are not removed from /dev/disk/by-partuuid
- * ceph-disk prepare /dev/loop2
- * some links are not created in /dev/disk/by-partuuid
-
- This is assuming there is a bug in the way udev events are handled by
- the operating system.
-
- http://tracker.ceph.com/issues/9665 Fixes: #9665
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit fed3b06c47a5ef22cb3514c7647544120086d1e7)
-
-commit 5a5f427bc09076ef3fb13a710dede1b47bb232e0
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 10 10:23:34 2014 +0200
-
- ceph-disk: encapsulate partprobe / partx calls
-
- Add the update_partition function to reduce code duplication.
- The action is made an argument although it always is -a because it will
- be -d when deleting a partition.
-
- Use the update_partition function in prepare_journal_dev
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 922a15ea6865ef915bbdec2597433da6792c1cb2)
-
- Conflicts:
- src/ceph-disk
-
-commit 73b47dbee8858f182fd2b4fd8eb5f3c786877bf4
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Nov 6 17:11:20 2014 +0100
-
- osd: deep scrub must not abort if hinfo is missing
-
- Instead it should set read_error.
-
- http://tracker.ceph.com/issues/10018 Fixes: #10018
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 9d84d2e8309d26e39ca849a75166d2d7f2dec9ea)
-
-commit 5138091a4073d966a65f537280f89372e801d019
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Sep 23 11:38:09 2014 +0200
-
- erasure-code: add corpus verification to make check
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
-
-commit 8d3d6bf59aec3877c0231e637270e371d9ed3b8c
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 13:36:09 2014 +0200
-
- erasure-code: workunit to check for encoding regression
-
- Clone the archive of encoded objects and decode all archived objects, up
- to and including the current ceph version.
-
- http://tracker.ceph.com/issues/9420 Refs: #9420
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
-
-commit 4f4358708ed3c261ca4027cc9c3dc3f952a99470
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 10:16:31 2014 +0200
-
- erasure-code: store and compare encoded contents
-
- Introduce ceph_erasure_code_non_regression to check and compare how an
- erasure code plugin encodes and decodes content with a given set of
- parameters. For instance:
-
- ./ceph_erasure_code_non_regression \
- --plugin jerasure \
- --parameter technique=reed_sol_van \
- --parameter k=2 \
- --parameter m=2 \
- --stripe-width 3181 \
- --create \
- --check
-
- Will create an encoded object (--create) and store it into a directory
- along with the chunks, one chunk per file. The directory name is derived
- from the parameters. The content of the object is a random pattern of 31
- bytes repeated to fill the object size specified with --stripe-width.
-
- The check function (--check) reads the object back from the file,
- encodes it and compares the result with the content of the chunks read
- from the files. It also attempts recover from one or two erasures.
-
- Chunks encoded by a given version of Ceph are expected to be encoded
- exactly in the same way by all Ceph versions going forward.
-
- http://tracker.ceph.com/issues/9420 Refs: #9420
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
-
-commit 4a148df544978383c1ed7cd8b90f590adb563f3d
-Merge: c069bce 01faf13
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Wed Nov 19 02:45:26 2014 +0100
-
- Merge pull request #2961 from ceph/wip-10114-firefly
-
- Add annotation to all assembly files to turn off stack-execute bit
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 01faf1356f648ded9acda02e7cc67c1adb9e9ee3
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Fri Nov 14 17:59:57 2014 -0800
-
- Add annotation to all assembly files to turn off stack-execute bit
-
- See discussion in http://tracker.ceph.com/issues/10114
-
- Building with these changes allows output from readelf like this:
-
- $ readelf -lW src/.libs/librados.so.2 | grep GNU_STACK
- GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000
- 0x000000 RW 0x8
-
- (note the absence of 'X' in 'RW')
-
- Fixes: #10114
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 06a245a9845c0c126fb3106b41b2fd2bc4bc4df3)
- (not-yet-present-in-firefly files in isa-l manually removed)
-
-commit c069bce4e8180da3c0ca4951365032a45df76468
-Merge: 0d8ad6a fac1654
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 13 10:36:12 2014 -0800
-
- Merge pull request #2760 from ceph/wip-9835-firefly
-
- osd: fix erasure hung op bug (9835)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit fac165475031efdebbb88898ca5c12cd307a5bc3
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Nov 5 12:12:14 2014 -0800
-
- osd: use OSDMap helper to tell if ops are misdirected
-
- calc_pg_role doesn't actually take into account primary affinity.
-
- Fixes: #9835
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 588602bf0095de5b59064123ca01345f1364bdde
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 20 13:55:33 2014 -0700
-
- osd: discard rank > 0 ops on erasure pools
-
- Erasure pools do not support read from replica, so we should drop
- any rank > 0 requests.
-
- This fixes a bug where an erasure pool maps to [1,2,3], temporarily maps
- to [-1,2,3], sends a request to osd.2, and then remaps back to [1,2,3].
- Because the 0 shard never appears on osd.2, the request sits in the
- waiting_for_pg map indefinitely and cases slow request warnings.
- This problem does not come up on replicated pools because all instances of
- the PG are created equal.
-
- Fix by only considering role == 0 for erasure pools as a correct mapping.
-
- Fixes: #9835
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 0c1c4152e6f402af7612c8c8d4719ab0f4cc6ad9
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 12 17:04:35 2014 -0800
-
- osd/OSDMap: add osd_is_valid_op_target()
-
- Helper to check whether an osd is a given op target for a pg. This
- assumes that for EC we always send ops to the primary, while for
- replicated we may target any replica.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 89c02637914ac7332e9dbdbfefc2049b2b6c127d)
-
-commit 0d8ad6ad3c376bcab981bea9a49e1924d7eddb68
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Tue Nov 11 18:16:02 2014 -0800
-
- qa: allow small allocation diffs for exported rbds
-
- The local filesytem may behave slightly differently. This isn't
- foolproof, but seems to be reliable enough on rhel7 rootfs, where
- exact comparison was failing.
-
- Fixes: #10002
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e94d3c11edb9c9cbcf108463fdff8404df79be33)
-
-commit 0804deeab293e09123d1b58825051ccc4dddbc0e
-Author: Sage Weil <sage@inktank.com>
-Date: Sun May 25 08:38:38 2014 -0700
-
- osd: fix map advance limit to handle map gaps
-
- The recent change in cf25bdf6b0090379903981fe8cee5ea75efd7ba0 would stop
- advancing after some number of epochs, but did not take into consideration
- the possibilty that there are missing maps. In that case, it is impossible
- to advance past the gap.
-
- Fix this by increasing the max epoch as we go so that we can always get
- beyond the gap.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 1e0a82fd55dede473c0af32924f4bcb5bb697a2b)
-
-commit d30d6b986433eaef920b3703cf5af3c030f8dcf4
-Merge: d241aa7 d548431
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Fri Nov 7 14:10:18 2014 -0800
-
- Merge pull request #2880 from ceph/wip-10025-firefly
-
- #10025/firefly -- tools: fix MDS journal import
-
- Reviewed-by: Greg Farnum <greg@inktank.com>
-
-commit d548431a388da1130564d710e1f006772934224b
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Nov 7 11:34:43 2014 +0000
-
- tools: fix MDS journal import
-
- Previously it only worked on fresh filesystems which
- hadn't been trimmed yet, and resulted in an invalid
- trimmed_pos when expire_pos wasn't on an object
- boundary.
-
- Fixes: #10025
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit fb29e71f9a97c12354045ad2e128156e503be696)
-
-commit d241aa7a347655242cc71b8fa3d778df6948c494
-Merge: 2c85b5d 4afb542
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:37:42 2014 -0800
-
- Merge remote-tracking branch 'origin/wip-sam-firefly-backports' into firefly
-
-commit 2c85b5d72953d01296213185382707122e06415c
-Merge: 23cbffa 1228658
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:30:20 2014 -0800
-
- Merge pull request #2737 from ceph/wip-9629-firefly
-
- osd: do not clone/preserve snapdir on cache-evict (firefly backport)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 23cbffaa2936dc2707b5b42f8c0e7ce804324ae2
-Merge: 3bba938 e296685
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:26:21 2014 -0800
-
- Merge pull request #2657 from ceph/wip-9053-9301-firefly
-
- mon: backport two paxos fixes to firefly
-
- Reviewed-by: Joao Luis <joao@redhat.com>
-
-commit 3bba9387eb123c6cf055e874db2925b998dc406c
-Merge: 3f9bf73 835f8c6
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:21:12 2014 -0800
-
- Merge pull request #2656 from ceph/wip-9502-firefly
-
- mon: backport mon disk full check to firefly
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3f9bf738daf47ff4ff56c9f76d1487a5afc5e30a
-Merge: a340e6d 3e17a08
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:18:27 2014 -0800
-
- Merge pull request #2764 from ceph/wip-9851
-
- osd: bring FileJournal in sync with giant
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a340e6d0b166019f58dca0703faf30dd3178c14f
-Merge: b7d5f99 b9450b5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Nov 6 10:12:17 2014 -0800
-
- Merge pull request #2776 from ceph/wip-9675.firefly
-
- CrushWrapper: pick a ruleset same as rule_id
-
- Reviewed-by: Samuel Just <sam.just@inktank.com>
-
-commit b7d5f99c8f4d751e83dc29305649d7a465c657b1
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 15 15:29:08 2014 -0700
-
- ceph-disk: mount xfs with inode64 by default
-
- We did this forever ago with mkcephfs, but ceph-disk didn't. Note that for
- modern XFS this option is obsolete, but for older kernels it was not the
- default.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 11496399ef318498c11e551f139d96db52d3309c)
-
-commit 1a9d000bb679a7392b9dd115373c3827c9626694
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 9 10:20:27 2014 -0700
-
- rgw: set length for keystone token validation request
-
- Fixes: #7796
- Backport: giany, firefly
- Need to set content length to this request, as the server might not
- handle a chunked request (even though we don't send anything).
-
- Tested-by: Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 3dd4ccad7fe97fc16a3ee4130549b48600bc485c)
-
-commit 49d27efde2ce5d282c9ee6ca9c8ea9db8f609392
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 19 13:15:46 2014 -0700
-
- rgw: subuser creation fixes
-
- Fixes: #8587
- There were a couple of issues, one when trying to identify whether swift
- user exists, we weren't using the correct swift id. The second problem
- is that we relied on the gen_access flag in the swift case, where it
- doesn't really need to apply.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1441ffe8103f03c6b2f625f37adbb2e1cfec66bb)
-
-commit 8db2f0969e1715f57088c311a33e7e3499933afb
-Merge: 9a15592 2a5d7f0
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 31 08:35:50 2014 -0700
-
- Merge pull request #2847 from dachary/wip-9752-past-intervals-firefly
-
- osd: past_interval display bug on acting
-
-commit 2a5d7f08303eb8b1687c5b58426443b3d40e415c
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 31 00:49:21 2014 +0100
-
- osd: past_interval display bug on acting
-
- The acting array was incorrectly including the primary and up_primary.
-
- http://tracker.ceph.com/issues/9752 Fixes: #9752
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit c5f8d6eded52da451fdd1d807bd4700221e4c41c)
-
-commit 9a15592eae6739183049f8376392c5577145871e
-Merge: 6fd8879 c20a242
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Thu Oct 30 17:01:24 2014 -0700
-
- Merge pull request #2840 from ceph/firefly-9869
-
- Backport "client: cast m->get_client_tid() to compare to 16-bit Inode::flushing_cap_tid"
-
-commit c20a2421f4a5b33407d7f31806dd4587b4e9077c
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Oct 22 17:16:31 2014 -0700
-
- client: cast m->get_client_tid() to compare to 16-bit Inode::flushing_cap_tid
-
- m->get_client_tid() is 64 bits (as it should be), but Inode::flushing_cap_tid
- is only 16 bits. 16 bits should be plenty to let the cap flush updates
- pipeline appropriately, but we need to cast in the proper direction when
- comparing these differently-sized versions. So downcast the 64-bit one
- to 16 bits.
-
- Fixes: #9869
- Backport: giant, firefly, dumpling
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit a5184cf46a6e867287e24aeb731634828467cd98)
-
-commit 4afb54274bb2087da348103d0a7641b3a018d777
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Sep 11 13:46:51 2014 -0700
-
- ReplicatedPG: cancel cb on blacklisted watcher
-
- Fixes: #8315
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 16bd45777166c29c433af3b59254a7169e512d98)
-
-commit 037aa342fa277351fc605da41489a6ceba81ab05
-Author: Samuel Just <sam.just@inktank.com>
-Date: Sun Sep 21 10:19:43 2014 -0700
-
- ReplicatedPG::on_removal: clear rollback info
-
- Fixes: #9293
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 544b8c7ffb4af01765b87239f2d7ab88479ee779)
-
-commit 8978c8dc1f153a9052b5d967ceff11d4f08d51ea
-Merge: 8401e7f 4be53d5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Oct 30 13:48:18 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-9574' into wip-sam-firefly-backports
-
-commit 8401e7ffa1768770f451143b3c110d1deae1bd40
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Sep 29 15:01:25 2014 -0700
-
- PG: release backfill reservations if a backfill peer rejects
-
- Also, the full peer will wait until the rejection from the primary
- to do a state transition.
-
- Fixes: #9626
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 624aaf2a4ea9950153a89ff921e2adce683a6f51)
-
-commit 5df09fa1b5a42992f9e41aca09e86db0d03d9fbd
-Merge: a0937ef a1aa06b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Oct 30 13:47:22 2014 -0700
-
- Merge remote-tracking branch 'origin/wip-9113' into wip-sam-firefly-backports
-
-commit a0937ef214b9221e7a5e69e7b0f0697471d56293
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Oct 12 10:05:51 2014 -0700
-
- osd/osd_types: consider CRUSH_ITEM_NONE in check_new_interval() min_size check
-
- Fixes: #9718
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d947050c82a511f91c98e1c76e48ffa9e187eee7)
-
- Conflicts:
- src/osd/osd_types.cc
-
-commit 35e8e6b2c1733cd421bf6c3916553eea3786e76e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Oct 20 14:10:58 2014 -0700
-
- PG:: reset_interval_flush and in set_last_peering_reset
-
- If we have a change in the prior set, but not in the up/acting set, we go back
- through Reset in order to reset peering state. Previously, we would reset
- last_peering_reset in the Reset constructor. This did not, however, reset the
- flush_interval, which caused the eventual flush event to be ignored and the
- peering messages to not be sent.
-
- Instead, we will always reset_interval_flush if we are actually changing the
- last_peering_reset value.
-
- Fixes: #9821
- Backport: firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit d9ff3a6b789c5b9c77aefa3751bd808f5d7b8ca7)
-
-commit 3f35db42977704a12ac4b5bcad6261aaf6b6a88d
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Oct 23 09:11:28 2014 -0700
-
- ReplicatedPG: writeout hit_set object with correct prior_version
-
- Fixes: #9875
- Backport: giant, firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
- (cherry picked from commit 1a3ad307f1a4c0a956d6fd31d13f01ffe411a09d)
-
-commit 6fd88792e77cdc7ad33ff0acf9b3189a7c525430
-Merge: 0975ec9 afe6bd8
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Oct 26 20:37:52 2014 -0700
-
- Merge pull request #2717 from dachary/wip-9747-ceph-spec-firefly
-
- rpm: 95-ceph-osd-alt.rules is not needed for centos7 / rhel7 (firefly)
-
-commit b9450b532ab7ad23ec6e2c22ed7cf55e6e1cc4c0
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Wed Aug 20 15:35:44 2014 +0800
-
- CrushWrapper: pick a ruleset same as rule_id
-
- Originally in the add_simple_ruleset funtion, the ruleset_id
- is not reused but rule_id is reused. So after some add/remove
- against rules, the newly created rule likely to have
- ruleset!=rule_id.
-
- We dont want this happen because we are trying to hold the constraint
- that ruleset == rule_id.
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit 78e84f34da83abf5a62ae97bb84ab70774b164a6)
-
- Conflicts:
- src/test/erasure-code/TestErasureCodeIsa.cc
-
- Fixes: #9675
-
-commit 3e17a0872a3864cb6aee46959afd955ef0cbafeb
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Mon Jul 21 15:08:55 2014 +0800
-
- os/FileJournal: When dump journal, using correctly seq avoid misjudging joural corrupt.
-
- In func FileJournal::dump, it always using seq=0 as last-seq and it can
- misjudge the journal corrupt.
-
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- (cherry picked from commit 5f65b4db6d1dad7c2c5a09eab42af63a82ea9e9b)
-
-commit 350da8c98bc1e90cd392992aba290c7478280d88
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Sep 26 01:15:53 2014 +0200
-
- os: io_event.res is the size written
-
- And not an error code to be converted with cpp_strerror()
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 7827e0035e3350ad2d9230f27a1629545f53af5c)
-
-commit ecff3761f3d15061a2cbf0a595ca249a4c424f4c
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Thu Aug 21 15:10:46 2014 +0800
-
- os/FileJournal: For journal-aio-mode, don't use aio when closing journal.
-
- For jouranl-aio-mode when closing journal, the write_finish_thread_entry may exit before
- write_thread_entry. This cause no one wait last aios to complete.
- On some platform, after that the journal-header on journal corrupted.
- To avoid this, when closing jouranl we don't use aio.
-
- Fixes: 9073
- Reported-by: Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
- Tested-by: Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- (cherry picked from commit e870fd09ce846e5642db268c33bbe8e2e17ffef2)
-
-commit dbc33fbab4b35e2ce1e46a881f6714262502c243
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Thu Aug 21 21:07:51 2014 +0800
-
- os/FileJournal: Only using aio then alloc the related resources.
-
- If define HAVE_LIBAIO, it alloc related resouces. But itt don't check whether
- using aio mode. Only using aio it alloc the related resources.
-
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- (cherry picked from commit a66a4931d5be9ee26c0983b3154fdbe37261a51c)
-
-commit 3312c6eeca21dcd566df9bdd8de7b3fe33356b57
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Thu Aug 21 15:49:44 2014 +0800
-
- os/FileJournal: Tune the judge logic for read_header.
-
- When reading journal-header, it should firstly check the result of
- pread and then do decoce operation.
-
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- (cherry picked from commit c8e2b89cf6bc36a0ff29887b9e76cbbeceef9f8f)
-
-commit b42107584449e1f85cbee97bfa486ebeb310e6a1
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 19 20:50:13 2014 -0700
-
- os/FileJournal: signal aio_cond even if seq is 0
-
- This can happen if we write a journal but no events.
-
- Reported-by: Somnath Roy <somnath.roy@sandisk.com>
- Reported-by: Ma, Jianpeng <jianpeng.ma@intel.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 57778e2c577c1e1bbf9525232720a2994fa36abc)
-
-commit 4a43ea171d84a9f3a13064030eb386fcfbe3bbb8
-Author: Ma Jianpeng <jianpeng.ma@intel.com>
-Date: Wed Jul 23 10:10:38 2014 -0700
-
- os/FileJournal: Update the journal header when closing journal
-
- When closing journal, it should check must_write_header and update
- journal header if must_write_header alreay set.
- It can reduce the nosense journal-replay after restarting osd.
-
- Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5bf472aefb7360a1fe17601b42e551df120badfb)
-
-commit 0975ec9cec1c466f7b15f5173541a7eab02dae18
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 21 06:53:36 2014 -0700
-
- Revert "os/FileJournal: stop aio completion thread *after* writer thread"
-
- This reverts commit 334631ae4641824b3df49245f36a8fd4b143bf3f.
-
-commit 5a10b95f7968ecac1f2af4abf9fb91347a290544
-Merge: cc69c16 d5bac46
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Oct 17 10:47:22 2014 -0700
-
- Merge pull request #2716 from ceph/wip-firefly-9419
-
- Backport fix for bug #9419
-
-commit cc69c16c2108cb231b2434a53e3eef51b597756b
-Merge: f9cdaab 334631a
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Oct 17 10:44:30 2014 -0700
-
- Merge pull request #2724 from dachary/wip-9073-journal-aio-mode-firefly
-
- os/FileJournal: stop aio completion thread *after* writer thread
-
-commit f9cdaabe078415d7927e2618030996f2f24be2f1
-Merge: 0b4b34a 412c277
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 17 08:20:53 2014 -0700
-
- Merge pull request #2742 from ceph/firefly-unknown-locktype
-
- mds: reply -EOPNOTSUPP for unknown lock type
-
-commit 412c2770c74abea73a94e10df7b83ebe11ac82ee
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Oct 14 22:02:41 2014 +0800
-
- mds: reply -EOPNOTSUPP for unknown lock type
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 675392335c53ff7879031fb9184e4f35bcc90fe2)
-
-commit 1228658871e53e350bdab3e72cdefd1caf33c291
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Sep 21 15:56:18 2014 -0700
-
- osd/ReplicatedPG: do not clone or preserve snapdir on cache_evict
-
- If we cache_evict a head in a cache pool, we need to prevent
- make_writeable() from cloning the head and finish_ctx() from
- preserving the snapdir object.
-
- Fixes: #8629
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ce8eefca13008a9cce3aedd67b11537145e1fd77)
-
-commit 88e6014463e86e48d78ac419226644209f83f2a0
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Sep 21 15:54:15 2014 -0700
-
- ceph_test_rados_api_tier: add EvictSnap2 test case
-
- Verify an evict doesn't create a snapdir object. Reproduces #8629
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 398c74eacb1ce4e573aef0d24718a5925d90272b)
-
-commit 0b4b34aac497d17a6474c35891aab2bde962524b
-Merge: 322958a 0a72235
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 16 06:09:51 2014 -0700
-
- Merge pull request #2734 from ceph/wip-firefly-undump
-
- mds: fix --undump-journal
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 0a72235b0556752fadebc3e155ad41b13a0a15e9
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Oct 16 11:17:40 2014 +0100
-
- mds: fix --undump-journal
-
- This hadn't worked for a long time. This is a fix
- for firefly only, as this code was refactored in giant.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
-
-commit 835f8c6f6121f3ebdec3a0d2d5cb1376301dc03a
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Tue Sep 23 14:02:55 2014 +0100
-
- ceph-mon: check fs stats just before preforking
-
- Otherwise statfs may fail if mkfs hasn't been run yet or if the monitor
- data directory does not exist. There are checks to account for the mon
- data dir not existing and we should wait for them to clear before we go
- ahead and check the fs stats.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 7f71c11666b25e91dd612c58b4eda9ac0d4752f8)
-
- Conflicts:
- src/ceph_mon.cc
-
-commit 1ddf435464562f70f63cdb0032da3187f34ce853
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Thu Sep 18 16:53:43 2014 +0100
-
- ceph_mon: check available storage space for mon data dir on start
-
- error out if available storage space is below 'mon data avail crit'
-
- Fixes: #9502
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 2da1a2914ac7df18ce842b0aac728fffb5bed2b6)
-
- Conflicts:
- src/ceph_mon.cc
-
-commit 112317791b744d9890a65adcc13554c85e90f3af
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Thu Sep 18 16:52:34 2014 +0100
-
- mon: DataHealthService: use get_fs_stats() instead
-
- and relieve the DataStats struct from clutter by using
- ceph_data_stats_t instead of multiple fields.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 9996d446988768658db751a7843b13cf3d194213)
-
- Conflicts:
- src/mon/DataHealthService.cc
-
-commit f0a92d72fd44542619338db7d6da98e147b6a9fc
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Thu Sep 18 16:32:20 2014 +0100
-
- common: util: add get_fs_stats() function
-
- simplifies the task of obtaining available/used disk space, as well as
- used available percentage.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 3d74230d1c0fbfa15487e2a90ac60b883476e840)
-
-commit a8fa009fbe5d5d4d9cfa134d5ecd05c92290a8eb
-Author: Joao Eduardo Luis <jeclui@gmail.com>
-Date: Thu Sep 18 16:25:44 2014 +0100
-
- include/util.h: prevent multiple inclusion of header
-
- Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
- (cherry picked from commit 76eff9503493312cb97e4a2f9236f4dbcbf931df)
-
-commit e296685e8f3f5158238216eefb76482bd6d55134
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 18 14:23:36 2014 -0700
-
- mon: re-bootstrap if we get probed by a mon that is way ahead
-
- During bootstrap we verify that our paxos commits overlap with the other
- mons we will form a quorum with. If they do not, we do a sync.
-
- However, it is possible we pass those checks, then fail to join a quorum
- before the quorum moves ahead in time such that we no longer overlap.
- Currently nothing kicks up back into a probing state to discover we need
- to sync... we will just keep trying to call or join an election instead.
-
- Fix this by jumping back to bootstrap if we get a probe that is ahead of
- us. Only do this from non probe or sync states as these will be common;
- it is only the active and electing states that matter (and probably just
- electing!).
-
- Fixes: #9301
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c421b55e8e15ef04ca8aeb47f7d090375eaa8573)
-
-commit 0e57767d5fc524939e8968b506ce2fb3f4f80656
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 18 14:11:24 2014 -0700
-
- mon/Paxos: fix off-by-one in last_ vs first_committed check
-
- peon last_committed + 1 == leader first_committed is okay. Note that the
- other check (where I clean up whitespace) gets this correct.
-
- Fixes: #9301 (partly)
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d81cd7f86695185dce31df76c33c9a02123f0e4a)
-
-commit 1f4aaf648f4aa6f6056d0e8ce629eeea05c5424d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 16:17:02 2014 -0700
-
- mon/Paxos: share state and verify contiguity early in collect phase
-
- We verify peons are contiguous and share new paxos states to catch peons
- up at the end of the round. Do this each time we (potentially) get new
- states via a collect message. This will allow peons to be pulled forward
- and remain contiguous when they otherwise would not have been able to.
- For example, if
-
- mon.0 (leader) 20..30
- mon.1 (peon) 15..25
- mon.2 (peon) 28..40
-
- If we got mon.1 first and then mon.2 second, we would store the new txns
- and then boot mon.1 out at the end because 15..25 is not contiguous with
- 28..40. However, with this change, we share 26..30 to mon.1 when we get
- the collect, and then 31..40 when we get mon.2's collect, pulling them
- both into the final quorum.
-
- It also breaks the 'catch-up' work into smaller pieces, which ought to
- smooth out latency a bit.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c54f1e4d66b22bad715ac17e9baa72ab93e48c46)
-
-commit 6c5b9a666fcd94e175a8b9771368b55246957efe
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 14 16:55:58 2014 -0700
-
- mon/Paxos: verify all new peons are still contiguous at end of round
-
- During the collect phase we verify that each peon has overlapping or
- contiguous versions as us (and can therefore be caught up with some
- series of transactions). However, we *also* assimilate any new states we
- get from those peers, and that may move our own first_committed forward
- in time. This means that an early responder might have originally been
- contiguous, but a later one moved us forward, and when the round finished
- they were not contiguous any more. This leads to a crash on the peon
- when they get our first begin message.
-
- For example:
-
- - we have 10..20
- - first peon has 5..15
- - ok!
- - second peon has 18..30
- - we apply this state
- - we are now 18..30
- - we finish the round
- - send commit to first peon (empty.. we aren't contiguous)
- - send no commit to second peon (we match)
- - we send a begin for state 31
- - first peon crashes (it's lc is still 15)
-
- Prevent this by checking at the end of the round if we are still
- contiguous. If not, bootstrap. This is similar to the check we do above,
- but reverse to make sure *we* aren't too far ahead of *them*.
-
- Fixes: #9053
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3e5ce5f0dcec9bbe9ed4a6b41758ab7802614810)
-
-commit 11d2c9dd4aeb835ca73bfb41fb15b1038547adf6
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 13 16:01:01 2014 -0700
-
- mon/Paxos: put source mon id in a temp variable
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bb046ed01ecf58b8c87eeeee2e00a476e6fba467)
-
-commit 322958a5aad82c031b54592b372aa053e8993be4
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 15 12:26:00 2014 -0700
-
- qa/workunits/rbd/import_export.sh: be case insensitive
-
- Stop tripping over this change (from dumpling).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5558afa03dbd1b20766b76e9410ef5bc3e73784f)
-
-commit 334631ae4641824b3df49245f36a8fd4b143bf3f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 29 19:40:29 2014 -0700
-
- os/FileJournal: stop aio completion thread *after* writer thread
-
- The writer thread may submit a new aio to update the header in its
- final moments before shutting down. Do not stop the aio thread until after
- that has happened or else we may not wait for those aio completions.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c776a89880fdac270e6334ad8e49fa616d05d0d4)
-
- Conflicts:
- src/os/FileJournal.cc
-
-commit 111eec9ff6325a12fcbf066ae08f27919aeae5d8
-Merge: cf4e300 6c0127f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 14 14:57:42 2014 -0700
-
- Merge remote-tracking branch 'gh/firefly' into firefly-next
-
-commit cf4e30095e8149d1df0f2c9b4c93c9df0779ec84
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Tue Aug 5 16:12:22 2014 +0800
-
- mon/OSDMonitor : Use user provided ruleset for replicated pool
-
- When creating a replicated pool, currently ceph ignore the ruleset
- name provided by user but use a global default ruleset.
-
- This patch fix this bug, so the rulset specified by
- ceph osd pool create replicated
- can be properly set.
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit bf9726a294abd32b429170284ac328a592802648)
-
-commit bfd7da10e708a6eefc6d992b2b6337b7f06fd5ed
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jun 3 13:05:19 2014 +0200
-
- documentation: update osd pool create erasure
-
- The properties are replaced with erasure code profiles. Remove the
- reference to properties and the documentation of each erasure-code
- related property.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 8ff4edda73abb920c91e1226a330e3659def1fbe)
-
-commit afe6bd89f8a1588fb67063d1a08a4be8c1ab2ce6
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Oct 11 18:20:36 2014 +0200
-
- rpm: 95-ceph-osd-alt.rules is not needed for centos7 / rhel7
-
- The || instead of && had it always installed. That was fixed in EPEL
- already.
-
- http://tracker.ceph.com/issues/9747 Fixes: #9747
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 5ff4a850a0d809b3f25988c6cceb82c35095ef84)
-
-commit d5bac46e06c5420f29a021b294e391b2c6694cbd
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Sep 24 16:02:21 2014 -0700
-
- osd: Return EOPNOTSUPP if a set-alloc-hint occurs with OSDs that don't support
-
- Add CEPH_FEATURE_OSD_SET_ALLOC_HINT feature bit
- Collect the intersection of all peer feature bits during peering
- When handling CEPH_OSD_OP_SETALLOCHINT check that all OSDs support it
- by checking for CEPH_FEATURE_OSD_SET_ALLOC_HINT feature bit.
-
- Fixes: #9419
- Backport: firefly
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9b39033f2b2bcdd2be0f6da4dff06023d0f77499)
-
- Conflicts:
-
- src/include/ceph_features.h
- src/osd/PG.cc
- src/osd/PG.h
- src/osd/ReplicatedPG.cc
-
-commit de08802dcf35aea516d013d3d6116aaa7707b923
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Sep 19 15:12:55 2014 -0700
-
- osd: Remove unused PG functions queue_notify(), queue_info(), queue_log()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 70ef4c11cbae669799c30c7592073ad7aa11dcd6)
-
-commit 5b5aba73031e901457ca27cf15600ce1ca90e258
-Merge: 345714b a1ae7f4
-Author: Gregory Farnum <greg@inktank.com>
-Date: Fri Oct 10 06:57:06 2014 -0700
-
- Merge pull request #2691 from ceph/firefly-unused-variable
-
- Firefly unused variable
-
-commit a1ae7f471c809e69d363b9145e70160533bfa48c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Oct 10 21:36:39 2014 +0800
-
- mds: Locker: remove unused variable
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit 345714b6b4d004ad03cc7952dc56c6db87664ee4
-Merge: fd20a1d 2afb6fe
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Fri Oct 10 09:37:53 2014 +0800
-
- Merge pull request #2681 from ceph/firefly-locker-null
-
- mds: Locker: fix a NULL deref in _update_cap_fields
-
-commit 2afb6febdd8482b8fec5890d79944d656faf1382
-Author: Greg Farnum <greg@inktank.com>
-Date: Thu Oct 9 15:12:19 2014 -0700
-
- mds: Locker: fix a NULL deref in _update_cap_fields
-
- The MClientCaps* is allowed to be NULL, so we can't deref it unless
- the dirty param is non-zero. So don't do the ahead-of-time lookup;
- just call it explicitly in the if block.
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit 3cd8a7fb9683577a7d6e934f18c29b7e84415be6)
-
-commit fd20a1d01bde67fb1edc6058e38435af9d5d6abc
-Merge: e1bd1b2 86926c6
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Wed Oct 8 08:44:46 2014 +0200
-
- Merge pull request #2662 from dachary/wip-9677-ioprio-class-firefly
-
- common: ceph_ioprio_string_to_class always returns -EINVAL
-
-commit 86926c6089d63014dd770b4bb61fc7aca3998542
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Oct 7 14:06:38 2014 +0200
-
- common: ceph_ioprio_string_to_class always returns -EINVAL
-
- The l string is always empty because std::transform needs a
- pre-allocated string. Replace with the in-place version. Add unit tests.
-
- http://tracker.ceph.com/issues/9677 Fixes: #9677
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 3535b7aba3df8b54fa5117b8a9c2f52b8f0f118b)
-
- Conflicts:
- src/test/Makefile.am
-
-commit 5f2eec5036a2910aca1e8ce2d94444d3ed0477df
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Oct 7 14:05:08 2014 +0200
-
- osd: log error if set_ioprio fails to parse class
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 5088e0d49332d579ba7e33c2c9baee3d5f701a3e)
-
-commit 2796d5151df4dcde324a4d09a83c9a779cece00e
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Oct 7 14:03:39 2014 +0200
-
- common: set_ioprio debug message including pid
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 33339c7754875eb7e513345ee6b26a9b2b4d2707)
-
-commit d5ed6b0587b9999b2fd41377b0426e3b09ef8ab9
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Oct 7 14:02:09 2014 +0200
-
- common: do not set ioprio if pid is not set
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit c7e4c0bfe70bf29d3b8fe4df4e4b934853e33d26)
-
-commit e1bd1b2774f4eae5444b5f7b984193cb91a2dd98
-Merge: 726c6a1 459dca1
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 7 09:58:03 2014 -0700
-
- Merge pull request #2632 from ceph/wip-9039-firefly
-
- rgw: copy object data if target bucket is in a different pool
-
-commit 726c6a147a14c00cf12eb6c6561655475282419f
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 6 15:50:51 2014 -0700
-
- debian/control: fix python-ceph -> ceph file move to allow upgrades
-
- This is a backport of 5c6c366d2abe771c581690270c2d176ebb30c571 with the
- version numbers changed, to compensate for the change in
- fe3434f41cd09433975d7d0f9dbb2fae662e4a1b (backported in
- bf1933e5c184476a354664c42fec834e9f59067c).
-
- Tested-by: Tamil Muthamizhan <tamil.muthamizhan@inktank.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 884f7c40c4a28d519847d3995c8d98e5837ceaf0
-Merge: 31d57c9 c8a8e47
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 6 07:01:50 2014 -0700
-
- Merge remote-tracking branch 'gh/wip-rpm-epoch-firefly' into firefly
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 31d57c9a28502a4a72f8aa141f7ed63ffe1e0192
-Merge: 9a3bac0 548be0b
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Mon Oct 6 09:50:33 2014 +0200
-
- Merge pull request #2643 from johnugeorge/wip-9492-crush-firefly
-
- Crush: Backporting fixes for #9492 to firefly
-
- Reviewed-by: Loic Dachary <loic-201408@dachary.org>
-
-commit 548be0b2aea18ed3196ef8f0ab5f58a66e3a9af4
-Author: Johnu George <johnugeo@cisco.com>
-Date: Mon Sep 29 10:07:44 2014 -0700
-
- Crush: Ensuring at most num-rep osds are selected
-
- Crush temporary buffers are allocated as per replica size configured
- by the user.When there are more final osds (to be selected as per
- rule) than the replicas, buffer overlaps and it causes crash.Now, it
- ensures that at most num-rep osds are selected even if more number of
- osds are allowed by indep rule. The fix for firstn rules is already
- merged as part of bug #9492. Required test files are added.
-
- Fixes: #9492
-
- Signed-off-by: Johnu George johnugeo@cisco.com
- (cherry picked from commit 234b066ba04976783d15ff2abc3e81b6cc06fb10)
-
-commit e30c570ce691a994898b4a933c57e7ae014cdc30
-Author: Johnu George <johnugeo@cisco.com>
-Date: Wed Sep 24 09:32:50 2014 -0700
-
- Crush: Ensuring at most num-rep osds are selected
-
- Crush temporary buffers are allocated as per replica size configured
- by the user.When there are more final osds (to be selected as per
- rule) than the replicas, buffer overlaps and it causes crash.Now, it
- ensures that at most num-rep osds are selected even if more number of
- osds are allowed by the rule.
-
- Fixes: #9492
-
- Signed-off-by: Johnu George <johnugeo@cisco.com>
- (cherry picked from commit 6b4d1aa99718e3b367496326c1e64551330fabc0)
-
-commit 9a3bac0c1a7a42cdf7ba846c9ad0a3ae0f15b4bb
-Merge: 0b978fb 5a5e7e7
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 3 11:58:41 2014 -0700
-
- Merge pull request #2634 from dachary/wip-9653-ceph-disk-bootstrap-osd-firefly
-
- ceph-disk: bootstrap-osd keyring ignores --statedir (firefly)
-
-commit c8a8e4763a55dec44836bc679254ee7dcc448567
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 1 12:33:38 2014 -0700
-
- ceph.spec: fix typo
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit da9ae5c92ecb4059e0ec6be5ce03af46430e76a5)
-
-commit b890c1e4706d7cfef7ed24c9df65b439b4f7ff1d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 1 06:02:02 2014 -0700
-
- ceph.spec.: add epoch
-
- This is done in fedora packaging. Do it here too so that you can move
- between upstream packages (from ceph.com) and fedora and other derivatives
- will builds.
-
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 83888362089346e473d6fd6e1d366b826d7bd739)
-
- Conflicts:
-
- ceph.spec.in
-
-commit d01db8080d97bfae34dcee3d153bf10e6f5327dd
-Author: Sage Weil <sage@inktank.com>
-Date: Tue May 20 13:41:35 2014 -0700
-
- ceph.spec.in: remove BuildRoot
-
- Deprecated
-
- Fixes: #8143
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit 401319a1527dd9cb5398916105d31e7ec065763d)
-
-commit 3c2b5c440863df548afc2bd8aa5440f15a44ac02
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Aug 12 16:31:22 2014 -0700
-
- ceph.spec.in: tests for rhel or centos need to not include _version
-
- rhel_version and centos_version are apparently the OpenSUSE Build
- names; the native macros are just "rhel" and "centos" (and contain
- a version number, should it be necessary).
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 7474f720c2418cf3d52b755f2b60c524e413570a)
-
-commit c82c29d6174022be45929fe9ba8a84993eef974a
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Aug 12 14:46:52 2014 -0700
-
- ceph.spec.in: Add a small comment on the empty %files section
-
- as suggested by Dan Mick.
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- (cherry picked from commit e37b262c7928934530c5bb09fe56f83eb61f4244)
-
-commit a4f748aa906fc65b14f65515721bc3a815c18fb8
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Aug 12 14:39:18 2014 -0700
-
- ceph.spec.in: Obsolete all older versions.
-
- Now this changeset can be used on all current ceph releases that already
- have the package split.
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- (cherry picked from commit 875a99e25f0ad2cb47149a3b5a28b4771a09125c)
-
-commit 74c7f3caec1cc7a5da89ef33de36a8b59249cfcd
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Tue Aug 12 14:09:43 2014 -0700
-
- ceph.spec.in: No version on ceph-libs Obsoletes.
-
- If we are installing with the new package structure we don't ever want the
- new package to co-exist with the old one; this includes the mistakenly-
- released v0.81 on Fedora, which should be removed in favor of this
- version.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- Reviewed-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 8f95daf66b5fdb2a8141988480f984c1249599c5)
-
-commit 561261b6efb7ea442686bb8fce387c4de2482067
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Fri Aug 8 18:01:30 2014 -0700
-
- ceph.spec.in: Obselete ceph-libcephfs (not libcephfs)
-
- I am guessing that because it was a sub-package libcephfs was mistakenly
- used instead of ceph-libcephfs.
-
- Signed-off-by: Sandon Van Ness <sandon@inktank.com>
- (cherry picked from commit 75985024bd30ca6fbe4c61aa7f7cbe5306c9a988)
-
-commit 107bfd9ee7dbf360561187b9e0946964d40b9b1c
-Author: Erik Logtenberg <erik@logtenberg.eu>
-Date: Fri Aug 1 14:20:18 2014 +0200
-
- ceph.spec.in: We need those nice recent changes for rhel7 in Fedora too.
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- (cherry picked from commit 00877ae502ac52613bcd5c5c834d72787d668dca)
-
-commit 7946c5e5de8d6cd25d20beee15f3489113e51539
-Author: Dan Mick <dan.mick@inktank.com>
-Date: Wed Aug 27 12:56:43 2014 -0700
-
- Move fedora patch file (used by ceph.spec.in) to rpm/ subdir
-
- Signed-off-by: Dan Mick <dan.mick@inktank.com>
- (cherry picked from commit 06b92cee621cbe33a6f17e8c64169db4453a5160)
-
-commit cb2ae9afa611175226efb5544f7d2aa705d55ece
-Author: Erik Logtenberg <erik@logtenberg.eu>
-Date: Fri Aug 1 00:13:50 2014 +0200
-
- ceph.spec.in, init-ceph.in: Don't autostart ceph service on Fedora.
-
- This patch is taken from the current Fedora package and makes the upstream
- ceph.spec compliant with Fedora policy. The goal is to be fully compliant
- upstream so that we can replace current Fedora package with upstream
- package to fix many bugs in Fedora.
-
- Addition from Dan Mick <dan.mick@inktank.com>:
- Do this for RHEL and Centos as well, since they surely will benefit
- from the same policy. Note: this requires changes to
- autobuild-ceph and ceph-build scripts, which currently copy
- only the dist tarball to the rpmbuild/SOURCES dir.
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- Signed-off-by: Dan Mick <dan.mick@inktank.com>:
- (cherry picked from commit 461523b06cdf93e32f1d8b354ac3799e73162d33)
-
-commit 2b11376f1ee8925ab16065ebda912b11d3d7be59
-Author: Erik Logtenberg <erik@logtenberg.eu>
-Date: Thu Jul 31 23:54:03 2014 +0200
-
- ceph.spec.in: Add obsoletes for libcephfs
-
- This fixes a bug for Fedora:
- https://bugzilla.redhat.com/show_bug.cgi?id=1116614
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- (cherry picked from commit e9da2d8f2142771f206ef67f19e7f194855275d0)
-
-commit eefc62e3b85f402a7e1ae31c272c8a432d979379
-Author: Erik Logtenberg <erik@logtenberg.eu>
-Date: Thu Jul 31 23:49:56 2014 +0200
-
- ceph.spec.in: add ceph-libs-compat
-
- Added a ceph-libs-compat package in accordance with Fedora packaging
- guidelines [1], to handle the recent package split more gracefully.
- In Fedora this is necessary because there are already other packages
- depending on ceph-libs, that need to be adjusted to depend on the new
- split packages instead. In the mean time, ceph-libs-compat prevents
- breakage.
-
- [1] http://fedoraproject.org/wiki/Upgrade_paths_%E2%80%94_renaming_or_splitting_packages
-
- Signed-off-by: Erik Logtenberg <erik@logtenberg.eu>
- (cherry picked from commit 6c264f2204cbd54d90b02101e40ac9aa5aa72d7c)
-
- Conflicts:
-
- ceph.spec.in
-
-commit 0b978fb15a1307644aba3119419bb7386f98ee04
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 14:41:19 2014 -0700
-
- mon/Paxos: add perfcounters for most paxos operations
-
- I'm focusing primarily on the ones that result in IO here.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b09b8563d35dda23faed43afef2a983e93a879c5)
-
-commit 74aa7afc719e517dbed300f802c1bc2dafe43ee0
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 10 14:00:11 2014 -0700
-
- mon/MonitorDBStore: add get_{keys,bytes}() accounting to Transaction
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit fd421b26748e872ddf8e0f068dda2106853edff1)
-
-commit 5a5e7e7bcedbccbe4ae8aab159af6d8615eb3887
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 3 14:08:57 2014 +0200
-
- ceph-disk: bootstrap-osd keyring ignores --statedir
-
- The STATEDIR variable is used to initialize the bootstrap-osd keyring
- before it gets a chance to be overriden by --statedir. Replace it with
- {statedir} so that it can be substituted after all options have been
- parsed.
-
- http://tracker.ceph.com/issues/9653 Fixes: #9653
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit fa0bd06b4657e5b84e237b76033ac3d3478b6a1f)
-
-commit 459dca1613a14cfad8d3afd7e3c783d825573a42
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 12 13:36:11 2014 -0700
-
- rgw: copy object data if target bucket is in a different pool
-
- Fixes: #9039
- Backport: firefly
-
- The new manifest does not provide a way to put the head and the tail in
- separate pools. In any case, if an object is copied between buckets in
- different pools, we may really just want the object to be copied, rather
- than reference counted.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5d3a7e595f47455896304bf358e5251915d0f16f)
-
-commit 711a7e6f81983ff2091caa0f232af914a04a041c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Sep 15 00:53:50 2014 -0400
-
- rbd: ObjectCacher reads can hang when reading sparse files
-
- The pending read list was not properly flushed when empty objects
- were read from a space file.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit cdb7675a21c9107e3596c90c2b1598def3c6899f)
-
-commit b7784dc1baa47560a733fe9dcd2acec51bc93165
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sat Sep 6 22:59:40 2014 -0400
-
- Enforce cache size on read requests
-
- In-flight cache reads were not previously counted against
- new cache read requests, which could result in very large
- cache usage. This effect is most noticeable when writing
- small chunks to a cloned image since each write requires
- a full object read from the parent.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4fc9fffc494abedac0a9b1ce44706343f18466f1)
-
-commit ac4fca065a12f3b00a47bf5ec37983696255174b
-Author: Alexandre Marangone <alexandre.marangone@inktank.com>
-Date: Fri Sep 5 10:36:24 2014 -0700
-
- rgw: add .log to default log path
-
- Fixes: #9353
- Signed-off-by: Alexandre Marangone <alexandre.marangone@inktank.com>
- (cherry picked from commit 46732420897a2619059050044f4980a4737df43e)
-
-commit f03ae7b00e5694f1670493396a1cee195fcc6b35
-Merge: 78c3ef9 ee02cfd
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Oct 2 15:28:40 2014 -0700
-
- Merge pull request #2565 from ceph/wip-rgw-firefly-backports
-
- Wip rgw firefly backports
-
-commit 78c3ef90604ca117255cefe232771a7564fed8b1
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 25 13:16:52 2014 -0700
-
- osdc/Objecter: only post_rx_buffer if no op timeout
-
- If we post an rx buffer and there is a timeout, the revocation can happen
- while the reader has consumed the buffers but before it has decoded and
- constructed the message. In particular, we calculate a crc32c over the
- data portion of the message after we've taken the buffers and dropped the
- lock.
-
- Instead of fixing this race (for example, by reverifying rx_buffers under
- the lock while calculating the crc.. bleh), just skip the rx buffer
- optimization entirely when a timeout is present.
-
- Note that this doesn't cover the op_cancel() paths, but none of those users
- provide static buffers to read into.
-
- Fixes: #9582
- Backport: firefly, dumpling
- Signed-off-by: Sage Weil <sage@redhat.com>
-
- backport of 126d0b30e990519b8f845f99ba893fdcd56de447
-
-commit a261b4952056aab7b067453930342960bbe55089
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 29 14:28:32 2014 -0700
-
- debian: move ceph_rest_api.py into ceph
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit fe3434f41cd09433975d7d0f9dbb2fae662e4a1b)
-
-commit eb0f6e347969b40c0655d3165a6c4531c6b595a3
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 29 14:24:01 2014 -0700
-
- ceph.spec.in: move ceph_rest_api.py into ceph
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8cda623e0ba34a48a70e9ea988d619b15605c4fd)
-
-commit c4188e31f7bc8f3c337e637cd99c41d5ee4b6787
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 29 13:44:03 2014 -0700
-
- ceph.spec: fix python-flask dependency
-
- This is needed by ceph-rest-api, which is in ceph.rpm; it's not related to
- python-ceph (except that ceph-rest-api happens to require that too).
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b2416240b88b2e067dfc79a2723335f1584562d0)
-
-commit bf1933e5c184476a354664c42fec834e9f59067c
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 29 13:40:18 2014 -0700
-
- debian: python-flask is needed by ceph, not python-ceph
-
- It's used by ceph-rest-api which is in the 'ceph' (server) package.
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e42424e777e4f7d8b03650482253734c1fa8709d)
-
- Conflicts:
-
- debian/control
-
-commit 94a7fbaa11c51db294dce0dc1df728f69aef5bf8
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Fri Sep 19 12:25:07 2014 +0200
-
- rgw_main.cc: add missing virtual destructor for RGWRequest
-
- CID 1160858 (#1 of 1): Non-virtual destructor (VIRTUAL_DTOR)
- nonvirtual_dtor: Class RGWLoadGenRequest has a destructor
- and a pointer to it is upcast to class RGWRequest which doesn't
- have a virtual destructor.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit b82ceda7775ff85943d9143b73789eb37b09bfa9)
-
-commit 9fee8de25ab5c155cd6a3d32a71e45630a5ded15
-Author: Greg Farnum <greg@inktank.com>
-Date: Mon Sep 29 16:10:36 2014 -0700
-
- Locker: accept ctime updates from clients without dirty write caps
-
- The ctime changes any time the inode does. That can happen even without
- the file itself having changed, so we'd better accept the update whenever
- the auth caps have dirtied, without worrying about the file caps!
-
- Fixes: #9514
- Backport: firefly
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 0ea20a668cf859881c49b33d1b6db4e636eda18a)
-
-commit 461ece5e9fb1d4994a6214a3b6bdae136773629d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 1 18:01:51 2014 -0700
-
- doc/release-notes: fix attributions for 8702 fix
-
- Oops!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 188370a94353e29fcb8981699022803e23f3fedd)
-
-commit 917529a78e5046f621df5c48fe5d50d2f7e56560
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 1 17:48:12 2014 -0700
-
- doc/release-notes: v0.80.6
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c0dc3a56974a469b61523b67cc032cc5726a3a5f)
-
- Conflicts:
-
- doc/release-notes.rst
-
-commit 060a5b1422fcdfb8e84636579a2f0c2f1ec14300
-Author: Adam Crume <adamcrume@gmail.com>
-Date: Thu Sep 18 16:57:27 2014 -0700
-
- common: Add cctid meta variable
-
- Fixes: #6228
- Signed-off-by: Adam Crume <adamcrume@gmail.com>
- (cherry picked from commit bb45621cb117131707a85154292a3b3cdd1c662a)
-
-commit a1aa06b7fb30e509193e1b1bb7355b5f21aedc82
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Oct 1 14:30:59 2014 -0700
-
- ReplicatedPG: dump snap_trimq on pg query
-
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit 34f38b68d89baf1dcbb4571d4f4d3076dc354538
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Sep 29 16:26:54 2014 -0700
-
- ReplicatedPG: do not queue the snap trimmer constantly
-
- Previously, we continuously requeued the snap trimmer while in
- TrimmingObjects. This is not a good idea now that we try to
- limit the number of snap trimming repops in flight and requeue
- the snap trimmer directly as those repops complete.
-
- Fixes: #9113
- Backport: giant, dumpling, firefly
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit b29bf00f68cf133151c98db06e9498b3e8be22ed
-Author: Samuel Just <sam.just@inktank.com>
-Date: Wed Sep 24 13:55:47 2014 -0700
-
- ReplicatedPG: clean out completed trimmed objects as we go
-
- Also, explicitely maintain a max number of concurrently trimming
- objects.
-
- Fixes: 9113
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sam.just@inktank.com>
-
-commit ee02cfd23facb3404fc377f643b213c2f498474d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 18 20:53:10 2014 -0700
-
- rgw: calculate hash after writing data
-
- Since data is written asynchronously, we should do the hash calculation
- while it's pending.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5bb94ede19a50543a02a8019ed6c9680b3852d4e)
-
-commit 216730221575d88a72b06ed3d71c9a54cffc5719
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 18 20:51:02 2014 -0700
-
- crypto: don't hash zero sized buffer
-
- libnss returns an error and we assert in that case.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7b137246b49a9f0b4d8b8d5cebfa78cc1ebd14e7)
-
-commit dab7a4f6ad054b53cedca76ee329a6395918b1ab
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Sep 12 14:07:44 2014 -0700
-
- rgw: push hash calculater deeper
-
- This might have been the culprit for #9307. Before we were calculating
- the hash after the call to processor->handle_data(), however, that
- method might have spliced the bufferlist, so we can't be sure that the
- pointer that we were holding originally is still invalid. Instead, push
- the hash calculation down. Added a new explicit complete_hash() call to
- the processor, since when we're at complete() it's too late (we need to
- have the hash at that point already).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d41c3e858c6f215792c67b8c2a42312cae07ece9)
-
- Conflicts:
- src/rgw/rgw_rados.h
-
-commit bd0a91343ce70d71acced753688a502b7e8b552e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Aug 21 16:30:10 2014 -0700
-
- rgw: separate civetweb log from rgw log
-
- The civetweb log now is independent from the rgw log.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 850242cad749e33e1e6bc008baa75c8ea7eda0c1)
-
- Conflicts:
- src/civetweb
- src/rgw/rgw_main.cc
-
-commit a777562b780e7ab312f881c38b1db26983a1ac47
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 23 13:40:39 2014 -0700
-
- civetweb: update submodule
-
- Update submodule to include multiple fixes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 1bdcc079d79d8211b44e2a46511cd2240f71744b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Aug 22 15:12:16 2014 -0700
-
- rgw: convert header field underscores into dashes
-
- Fixes: 9206
- Backport: firefly
-
- Certain web servers filter out underscores in the header field name.
- Convert them into dashes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 11acb7097ce21c6218dd48d0c21e0e04a361eb9a)
-
-commit b8fa2ed60b6cce51701df972dbb6f5e02e0d84ba
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Aug 25 10:38:42 2014 -0700
-
- rgw: fix test to identify whether object has tail
-
- Fixes: #9226
- Reported-by: Sylvain Munaut <s.munaut@whatever-company.com>
- Backport: firefly
-
- We need to identify whether an object is just composed of a head, or
- also has a tail. Test for pre-firefly objects ("explicit objs") was
- broken as it was just looking at the number of explicit objs in the
- manifest. However, this is insufficient, as we might have empty head,
- and in this case it wouldn't appear, so we need to check whether the
- sole object is actually pointing at the head.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 751b3e26532932a42ca34f9c062a0a3e29a58cff)
-
-commit 6fee71154d838868807fd9824d829c8250d9d2eb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Aug 27 17:44:18 2014 -0700
-
- rgw: don't try to authenticate a CORS preflight request
-
- Fixes: #8718
- Backport: firefly
-
- CORS preflight requests don't need to be authenticated. Treat them as
- coming from anonymous user.
-
- Reported-by: Robert Hubbard <bobby.hubbard@garmin.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 848fcf7871e07fc689bdcd18943ace36b2f4906e)
-
-commit c75a79cbac30cd14d37d89217113824d98693572
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Aug 14 13:35:12 2014 -0700
-
- rgw: fix compilation
-
- RGWRadosPutObj couldn't refer to the ceph context.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6a555434ee3edaf742ee7e5910bcba8dd0de46dd)
-
-commit b0d08aab837808f18708a4f8ced0503c0fce2fec
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 12 11:17:47 2014 -0700
-
- rgw: call throttle_data() even if renew_state() failed
-
- Otherwise we're going to leak the aio callback handle.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7998c322179dd69a1250937321c3c2bb023e0e57)
-
-commit a953b313f1e2f884be6ee2ce356780f4f70849dd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 30 21:32:48 2014 -0700
-
- rgw: disable civetweb url decoding
-
- Fixes: #8621
-
- We want to have the raw request uri, as we do the decoding ourselves.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ffac52b316e7022796d44ae58804d9c20b9c3df9)
-
-commit ba5357714a19b8af989fef1c75ef775837c6a9d6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 12 14:23:46 2014 -0700
-
- rgw: copy_obj_data() uses atomic processor
-
- Fixes: #9089
-
- copy_obj_data was not using the current object write infrastructure,
- which means that the end objects weren't striped.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 800eff24824c0083b8e2441fc34e0bdca5da36dc)
-
-commit d73dbc3a39117eddaaabb2c25d9238cd7c51711b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Aug 21 21:53:38 2014 -0700
-
- rgw: clear bufferlist if write_data() successful
-
- Fixes: #9201
- Backport: firefly
-
- We sometimes need to call RGWPutObjProcessor::handle_data() again,
- so that we send the pending data. However, we failed to clear the buffer
- that was already sent, thus it was resent. This triggers when using non
- default pool alignments.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9181114d6f6062c55ee4b351fc3495345e545c36)
-
-commit 4be53d5eebbc294878ba38050d841359b6c8e19e
-Author: Samuel Just <sam.just@inktank.com>
-Date: Tue Sep 23 12:16:55 2014 -0700
-
- PG: check full ratio again post-reservation
-
- Otherwise, we might queue 30 pgs for backfill at 0.80 fullness
- and then never check again filling the osd after pg 11.
-
- Fixes: #9574
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sam.just@inktank.com>
diff --git a/src/ceph/doc/changelog/v0.80.9.txt b/src/ceph/doc/changelog/v0.80.9.txt
deleted file mode 100644
index aa274d1..0000000
--- a/src/ceph/doc/changelog/v0.80.9.txt
+++ /dev/null
@@ -1,1148 +0,0 @@
-commit b5a67f0e1d15385bc0d60a6da6e7fc810bde6047 (tag: refs/tags/v0.80.9, refs/remotes/gh/firefly)
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon Mar 9 10:42:08 2015 -0700
-
- 0.80.9
-
-commit 37901afd1556257151c029395caa1143e84860f2
-Merge: 00e5947 3dac68a
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Mar 3 15:58:53 2015 +0100
-
- Merge pull request #3852 from dachary/wip-10965-rgw-firefly
-
- rgw: enable ipv6 in civetweb
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 00e5947a28f7810a28329d2f4901aed09a289421
-Merge: 293222a b13f483
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Mar 3 15:58:39 2015 +0100
-
- Merge pull request #3853 from dachary/wip-10907-rgw-firefly
-
- rgw: pass civetweb configurables to civetweb
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 293222a284c072a13950831205c106fec7a400df
-Merge: 6512b06 d57b38f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Mar 3 15:58:25 2015 +0100
-
- Merge pull request #3851 from dachary/wip-10978-rgw-firefly
-
- rgw: don't overwrite bucket / object owner when setting acls
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d57b38f85b683dfb365c3cb98362d486594f9eb3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Feb 27 15:32:50 2015 -0800
-
- rgw: don't overwrite bucket / object owner when setting acls
-
- Fixes: #10978
- Backport: hammer, firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit eb13f2d4b60c031f16139f7cc4237c012644dd78)
-
- Conflicts:
- src/rgw/rgw_op.cc : trivial s/.empty()/== NULL/
-
-commit b13f483e51b37a768c7f4313b6933bf648950c7d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Feb 17 15:05:40 2015 -0800
-
- rgw: pass civetweb configurables to civetweb
-
- Fixes: #10907
- Backport: firefly
-
- Pass any configurables in the rgw frontends config line to civetweb.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 986d7554426764a149621ba733c5c075b94e0431)
-
-commit 3dac68a17a909b212a36b0a3c0ae2c47d323deee
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Feb 27 08:14:27 2015 -0800
-
- civetweb: update submodule
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f28fe744285117a1715eac0d08911cdb37285103)
-
-commit 14aca3af18119a76c1cdfa6d71e6085d360e45e2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Feb 27 08:14:41 2015 -0800
-
- rgw: update makefile to enable civetweb config
-
- Fixes: #10965
- Backport: hammer, firefly
-
- Civetweb compilation now includes conf header to enable ipv6.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit caa90225bad9fe5e9c275e6189b3396b4d396e3f)
-
- Conflicts:
- src/rgw/Makefile.am
- radosgw_CFLAGS = -Icivetweb/include
- was not yet changed into
- radosgw_CFLAGS = -I$(srcdir)/civetweb/include
- in firefly
-
-commit 6512b06fc8a80e3befbe15b543f8850991f74e8a
-Merge: 7b748c6 555cc42
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat Feb 28 16:47:55 2015 +0100
-
- Merge pull request #3820 from tchaikov/firefly-pg-leak-10421
-
- osd: fix PG leak in SnapTrimWQ._clear()
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7b748c62764311572342593820ce3f28f74fe9ca
-Merge: d971c95 da95149
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat Feb 28 16:46:42 2015 +0100
-
- Merge pull request #3772 from ceph/wip-10883-firefly
-
- osd: Fix FileJournal wrap to get header out first
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d971c95c3d8b48494d05b68f40c4c9a4cc6f87a8
-Merge: 0820041 e539971
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat Feb 28 16:45:48 2015 +0100
-
- Merge pull request #3521 from dzafman/wip-10676
-
- Backport doc fixes that appear to apply to firefly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 555cc42fc826fd801f0d45187429079d4072d129
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Feb 10 16:29:45 2015 +0800
-
- osd: fix PG leak in SnapTrimWQ._clear()
-
- Fixes: #10421
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 01e154d592d6cdbf3f859cf1b4357e803536a6b4)
-
-commit 0820041e6515c82c41b81b9e6825e2dd5fcb8165
-Merge: 6565774 702dbc0
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Thu Feb 26 15:59:24 2015 -0800
-
- Merge pull request #3730 from ceph/wip-firefly-flock
-
- backport ceph-fuse file locking patches to Firefly
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit 6565774d0356efc6225ad561bb13e7cf11da7b1e
-Merge: 7ab02ee 08c2fda
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Feb 26 14:18:10 2015 -0800
-
- Merge pull request #3406 from ceph/wip-10299-firefly
-
- librbd: complete all pending aio ops prior to closing image
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 08c2fda12cf46937a09a59bb032379c3c5321292
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 15 10:53:53 2014 -0500
-
- librbd: complete all pending aio ops prior to closing image
-
- It was possible for an image to be closed while aio operations
- were still outstanding. Now all aio operations are tracked and
- completed before the image is closed.
-
- Fixes: #10299
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 7ab02ee5afb3d017b94d58c3dfc7731f7a3866d9
-Merge: 0c0a552 c23e42e
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Feb 26 14:12:29 2015 -0800
-
- Merge pull request #3404 from ceph/wip-10270-firefly
-
- librbd: gracefully handle deleted/renamed pools
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 0c0a5520b1b883bcdd5b865b217ba61e471e3ca2
-Merge: 9ef7743 836ab86
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Feb 26 13:31:37 2015 -0800
-
- Merge pull request #3410 from ceph/wip-9854-firefly
-
- osdc: Constrain max number of in-flight read requests
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit da951497b7e5ec227aa6a5e459b0d04d8b88ef13 (refs/remotes/gh/wip-10883-firefly)
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 18 16:21:12 2015 -0800
-
- osd: Fix FileJournal wrap to get header out first
-
- Correct and restore assert that was removed
-
- Cause by f46b1b473fce0322a672b16c7739e569a45054b6
- Fixes: #10883
- Backport: dumpling, firefly, giant
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 970bb4901f93575709421b5b25c3eff213de61b8)
-
-commit 702dbc0a247c149d53b52d1929f9880bc99d0522
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Oct 15 12:00:58 2014 +0800
-
- qa/workunits/fs/misc: Add a workunit for file lock interruption
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ac92c455a9aa19e4288acdf0c9a746e03a640efb)
-
-commit d2523b82c5c7b29293d70a66ba95493a1564a840
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Oct 15 12:03:46 2014 +0800
-
- mds: fix neighbor lock check
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit b0e6e85aa08ea74cd209aad04f3f0bf991761e12)
-
-commit f9b6b66b05ddadef043d81676728bf40730ea16c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Oct 13 11:34:18 2014 +0800
-
- client: use finisher to abort MDS request
-
- When a request is interrupted, libfuse first locks an internal mutex,
- then calls the interrupt callback. libfuse need to lock the same mutex
- when unregistering interrupt callback. We unregister interrupt callback
- while client_lock is locked, so we can't acquiring the client_lock in
- the interrupt callback.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 09699454e729592d426aeff5b578697e850af12e)
-
- Conflicts:
- src/client/Client.cc
- src/client/Client.h
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit ea355e9ca5203b77e6f74ca4a3e39ce23cc86f67
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Oct 9 13:16:18 2014 +0800
-
- client: use atomic variable to track reference of MetaRequeset
-
- this allow us to increase reference count of MetaRequest while not holding
- the client_lock
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit e464a7765230c504b3e3b88bcb1106f67b7c3eb9)
-
-commit ccbdf514717cb0e48d67b57197d6e538faeea415
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Oct 13 10:44:46 2014 +0800
-
- client: allow interrupting blocked file lock operation
-
- This commit introduce two new types of setfilelock request. Unlike
- setfilelock (UNLOCK) request, these two new types of setfilelock request
- do not drop locks that have alread been acquired, they only interrupt
- blocked setfilelock request.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4134c149d3759dd6a3aaa1a353b77bbfe8e9491b)
-
-commit 875e2fcb060554941d94714ad48ebbc0cbbf8077
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Oct 9 09:42:08 2014 +0800
-
- client: register callback for fuse interrupt
-
- libfuse allows program to reigster a callback for interrupt. When a file
- system operation is interrupted, the fuse kernel driver sends interupt
- request to libfuse. libfuse calls the interrupt callback when receiving
- interrupt request.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 289e8b4a7efa1ae6427115af9bbe541c9e1f0e90)
-
-commit c96aabbd54b24a0273af21a450cd6f517fe4ada0
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Oct 4 09:14:44 2014 +0800
-
- client: add helper function that updates lock state
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 6a2303a6b6d97f2a6d1422e42d3d88991857618f)
-
- Conflicts:
- src/client/Client.h
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit ebbd3ca66722cdc61b56d243baf8e63f7b8c1c1b
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Oct 2 20:21:36 2014 +0800
-
- fuse: enable fuse_multithreaded by default
-
- GETFILELOCK MDS request may block for a long time, so we need to
- use multithread event loop,
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit b17b43a8660ed0db29fbecf44798265e47712f85)
-
-commit 924e6f2b6b03456a8b18d8b158b8f325051f0519
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Oct 2 19:07:41 2014 +0800
-
- client: posix file lock support
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a1b2c8ff955b30807ac53ce6bdc97cf61a7262ca)
-
- Conflicts:
- src/client/Client.cc
- src/client/Client.h
- src/client/Inode.h
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 82994946bdcb95867a61e0acf443e30b13925a34
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Oct 2 18:02:50 2014 +0800
-
- common: link mds/flock.o to libcommon
-
- later commit will use this code to track file locks held by cephfs
- client.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit e075c27c3554380c59dce0cc17ef0944eb415025)
-
- Conflicts:
- src/mds/Makefile.am
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 9ef77430f3d46789b0ba1a2afa42729627734500
-Merge: 1205867 b668566
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Feb 13 18:34:11 2015 +0100
-
- Merge pull request #3684 from ceph/wip-crush-straw-firefly
-
- osd: backport straw bucket fixes and all other recent crush goodness to firefly
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit b668566fd8148414b8074f096b85b22c42ed3af9 (refs/remotes/gh/wip-crush-straw-firefly)
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 16 09:02:28 2015 -0800
-
- crush/builder: fix warnings
-
- crush/builder.c: In function 'crush_remove_list_bucket_item':
- crush/builder.c:977:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
- if (weight < bucket->h.weight)
- ^
- crush/builder.c: In function 'crush_remove_tree_bucket_item':
- crush/builder.c:1031:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
- if (weight < bucket->h.weight)
- ^
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 14eb1a73c71d81b7f193fce27c59cb3babf3e74a)
-
-commit 247afa4efe7d11b5ef06e094680b50ea30d7d5e3
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Wed Oct 15 17:02:58 2014 -0700
-
- crush: improve constness of CrushWrapper methods
-
- A number of CrushWrapper get methods or predicates were not const
- because they need to maintain transparently the rmaps. Make the rmaps
- mutable and update the constness of the methods to match what the caller
- would expect.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 236895eea65f8706baa5fdef96fb00ad5b82218c)
-
-commit c59279a25b6c53e0ab3988b0f00ae3cce94f33d7
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Fri Sep 5 10:56:36 2014 +0800
-
- Change CrushWrapper::crush to private
-
- Currently in CrushWrapper, the member "struct crush_map *crush" is a public member,
- so people can break the encapsulation and manipulate directly to the crush structure.
-
- This is not a good practice for encapsulation and will lead to inconsistent if code
- mix use the CrushWrapper API and crush C API.A simple example could be:
- 1.some code use crush_add_rule(C-API) to add a rule, which will not set the have_rmap flag to false in CrushWrapper
- 2.another code using CrushWrapper trying to look up the newly added rule by name will get a -ENOENT.
-
- This patch move CrushWrapper::crush to private, together with three reverse map(type_rmap, name_rmap, rule_name_rmap)
- and also change codes accessing the CrushWrapper::crush to make it compile.
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit d734600f9251b52f525faa35441e2b5dd660161b)
-
-commit 9fc2fd50aec94233528870aaa371347238a6ea75
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Jul 11 06:58:57 2014 -0700
-
- crush: include CRUSH_V3, v2/v3 rules checks in dump_tunables()
-
- Backport: firefly
- Signed-off-by: Sage Weil <sage@inktank.com>
- (cherry picked from commit cf94cf3531a349bbd1fc6ee56c3fc260110a252a)
-
-commit f6009a614a3689cc9a96f55b35e70362be4ec64b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 15:58:03 2014 -0800
-
- mon: 'osd crush reweight-all'
-
- This corresponds to the crushtool --reweight command.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 89b2feea8d53b9dc15ab5ae7f5920ad19c8bba18)
-
-commit d5d7495432dd023ed8c9ba2ac08222f06afee48f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 15:55:24 2014 -0800
-
- crush: set straw_calc_version=1 for default+optimal; do not touch for presets
-
- When using the presets for compatibility (i.e., based on version), do not
- touch the straw behavior, as it does not affect mapping or compatibility.
- However, make a point of setting it by default and for optimal.
-
- For most users, this means that they will not see any change unless they
- explicitly enable the new behavior, or switch to default or optimal
- tunables. The idea is that if they touched it, they shouldn't be
- too surprised by the subsequent data movement.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit dd7b58f3b1aa1febfc6dc227937df93ee6e284eb)
-
- (Note: differs from original in that the hammer tunable profile is not
- present)
-
-commit 5b7b7599123a9d7a837ded52946bd553b09b1ac7
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 3 22:30:00 2014 -0800
-
- crush/builder: a note about the original crush_calc_straw()
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit adf5c6de0aca24a53d3c7b4e7eeb0a5dce9db0f1)
-
-commit 3ab835b059fd74a525cc2a8ebe8b6a1453e0cc87
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 16:43:16 2014 -0800
-
- mon: add 'osd crush {get,set}-tunable <name> [value]' commands
-
- For now, just add the straw_calc_version tunable.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9000068ae45a8b89315c152b7d5509ac873f2957)
-
- Conflicts:
- src/mon/OSDMonitor.cc
-
-commit 884414c5788bac9a269f01b26cbc0c55850c34f6
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 16:33:11 2014 -0800
-
- crush: fix crush_calc_straw() scalers when there are duplicate weights
-
- The straw bucket was originally tested with uniform weights and with a
- few more complicated patterns, like a stair step (1,2,3,4,5,6,7,8,9). And
- it worked!
-
- However, it does not behave with a pattern like
- 1, 2, 2, 3, 3, 4, 4
-
- Strangely, it does behave with
- 1, 1, 2, 2, 3, 3, 4, 4
-
- and more usefully it does behave with
- 1, 2, 2.001, 3, 3.001, 4, 4.001
-
- That is, the logic that explicitly copes with weights that are duplicates
- is broken.
-
- The fix is to simply remove the special handling for duplicate weights --
- it isn't necessary and doesn't work correctly anyway.
-
- Add a test that compares the mapping result of [1, 2, 2, 3, 3, ...] with
- [1, 2, 2.001, 3, 3.001, ...] and verifies that the difference is small.
- With the fix, we get .00012, whereas the original implementation gets
- .015.
-
- Note that this changes the straw bucket scalar *precalculated* values that
- are encoded with the map, and only when the admin opts into the new behavior.
-
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 43d5c7caa7ce478477bde1bbd4f0649b5159cdcf)
-
-commit bf677093302f475a23de541471ddde6a7c7153b6
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 14:50:21 2014 -0800
-
- crush: fix distortion of straw scalers by 0-weight items
-
- The presence of a 0-weight item in a straw bucket should have no effect
- on the placement of other items. Add a test validating that and fix
- crush_calc_straw() to fix the distortion.
-
- Note that this effects the *precalculation* of the straw bucket inputs and
- does not effect the actually mapping process given a compiled or encoded
- CRUSH map, and only when straw_calc_version == 1 (i.e., the admin opted in
- to the new behavior).
-
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 85498bc8f62ca56506b33f3c5ec4fc4b111ed73d)
-
-commit e02574ef5d3b66e73424a16460366de2d36eded3
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 14:49:42 2014 -0800
-
- crush/builder: break out new version 1 of crush_calc_straw
-
- No change, yet.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7c1203635f2b5911f281ce3a441905df6e9bd103)
-
-commit c7312a47865c758e67852999803d8aa90ff809c1
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 14:45:04 2014 -0800
-
- crush: pass crush_map * to various builder methods
-
- In particular, we will need it for crush_calc_straw().
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f35a3d88cb944c292e966f679ac7a8d7a1cd3093)
-
- Conflicts:
- src/crush/CrushWrapper.cc
-
-commit 5137cc656548d942d0f21ba3ef28a5b7d4d21831
-Author: Rongze Zhu <zrzhit@gmail.com>
-Date: Fri Oct 10 19:18:00 2014 +0800
-
- crush: fix incorrect use of adjust_item_weight method
-
- adjust_item_weight method will adjust all buckets which the item
- inside. If the osd.0 in host=fake01 and host=fake02, we execute
- "ceph osd crush osd.0 10 host=fake01", it not only will adjust fake01's
- weight, but also will adjust fake02's weight.
-
- the patch add adjust_item_weightf_in_loc method and fix remove_item,
- _remove_item_under, update_item, insert_item, detach_bucket methods.
-
- Signed-off-by: Rongze Zhu <zrzhit@gmail.com>
- (cherry picked from commit 9850227d2f0ca2f692a154de2c14a0a08e751f08)
-
- Conflicts:
- src/crush/CrushWrapper.cc
-
-commit 80ec22014deb8536b9c34e8d57b286052898d05a
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Nov 13 10:59:22 2014 -0800
-
- crush/CrushWrapper: fix detach_bucket
-
- In commit 9850227d2f0ca2f692a154de2c14a0a08e751f08 we changed the call that
- changed the weight of all instances of item to one that explicitly
- changes it in the parent bucket, but parent_id may not be valid at the
- call site. Move this into the conditional block to fix.
-
- Fixes: #10095
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6f8b96a9fe4793906c74a571109a457aca7ca220)
-
-commit 5bc554ac5a7a4cd86b873bfc4f4313c91287b52c
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 14:10:49 2014 -0800
-
- crush: default to straw_calc_version 1
-
- Stick with bobtail tunables where it affects compatibility. Use v1 of
- straw_calc, though, since that does not, and we want the best for new
- clusters.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9565621d6007302fdd68ba27b6aef22e487f0985)
-
-commit cfc718a5a1fec937cf00e6c2b55f66d4390088bb
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Feb 13 08:30:35 2015 -0800
-
- crush: add straw_calc_version tunable
-
- It doesn't do anything, yet.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 50e2ceefee6a5dfbecbe54890139b1fa80a313c8)
-
- (Modified from original to not create the 'hammer' tunable profile, which
- we will not backport in its entirety.)
-
-commit 1205867d3afe6d457483f9f51aaee79cca74e040
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Feb 2 16:43:35 2015 +0100
-
- qa: use correct binary path on rpm-based systems
-
- Fixes: #10715
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 05ce2aa1bf030ea225300b48e7914577a412b38c)
-
-commit da4146a5e03503083e6bc5c12984c06f41a3b4be
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Feb 5 21:12:17 2015 -0800
-
- fsync-tester: print info about PATH and locations of lsof lookup
-
- We're seeing the lsof invocation fail (as not found) in testing and nobody can
- identify why. Since attempting to reproduce the issue has not worked, this
- patch will gather data from a genuinely in-vitro location.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit a85051483874ff5b8b0fb50426a3577040457596)
-
-commit 61b4f09848796faeacf7eb78dd6dc06513beb737
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 14:04:34 2014 -0800
-
- crush/CrushWrapper: dump chooseleaf_vary_r with other tunables
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c133a83fe7b77e2a7e7c711cb8ab943c59ff0885)
-
-commit e4939ed5535cc4678cf1d1ae80906290448e6590
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 10:12:25 2014 -0800
-
- crush/CrushTester: add new --show-mappings option
-
- This makes --show-utilization and --show-statistics usable.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3877f00877f53e9f86630c2d89e81ab9cff729ec)
-
-commit 8c48ebbf13e6bdb689b4b8ae58ac811653ad2acc
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 10:11:57 2014 -0800
-
- crushtool/CrushTester: output utilization even with 1 batch
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 294b06c6424f4cb69394976add826d9725073b50)
-
-commit e9faab9f296af9cf26b9475afd3562c3f3b9236b
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 10:08:18 2014 -0800
-
- crush: recalculate straw scalers during a reweight
-
- The crushtool --reweight function triggers a fresh calculation of bucket
- weights so that they are always the sum of the item weights. In the
- straw bucket case, the weights were updated but the corresponding straw
- scalers were not being recalculated. The result is that there was not
- effect on placement in adjusted buckets until the next time a bucket item's
- weight was adjusted.
-
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 35062937f174a45fb13d9c177eaa1fe4ed5ff4c2)
-
-commit 4c951e9dc1ca31429119de15755caf3d73f6ffce
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 08:36:41 2014 -0800
-
- osdmaptool: --test-map-pgs-dump
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7a99b489909b368bade36d8cc9722ad33d03a2e8)
-
-commit 3cb5d08feee4811624dd495f74912824203edf00
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 2 06:53:20 2014 -0800
-
- crush: add dprintk's for crush_calc_straw
-
- These are compiled out by default.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 946bebd94b109642f95710802e892c59eb4f0b76)
-
-commit ca8471d65fb2cf7d2247d823c5436faa273efda5
-Author: Rongze Zhu <zrzhit@gmail.com>
-Date: Tue Nov 11 00:13:42 2014 +0800
-
- crush: fix tree bucket functions
-
- There are incorrect nodes' weight in tree bucket when construct tree
- bucket. The tree bucket don't store item id in items array, so the tree
- bucket will not work correctly. The patch fix above bugs and add a
- simple test for tree bucket.
-
- Signed-off-by: Rongze Zhu <zrzhit@gmail.com>
- (cherry picked from commit 13425488882d360fa740613dfcfd0d098c1b7616)
-
-commit af502f25b04cd0758b753941ecf0b1b59d33ea9e
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Nov 11 11:16:58 2014 -0800
-
- crush/builder: replace printf with an empty dprintk macro
-
- This mirrors mapper.c.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e444b221733360cdea4f4bbdbbbfbf2b6ee30ff5)
-
-commit 26966c4aa9cd79cb53db052553a5fc5653f2591b
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Nov 6 17:48:01 2014 -0800
-
- qa: use sudo even more when rsyncing /usr
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 3aa7797741f9cff06053a2f31550fe6929039692)
-
-commit 6af48421c0ba6195e9a1607053c42eeb62b14ccb
-Author: Greg Farnum <greg@inktank.com>
-Date: Tue Oct 21 10:55:06 2014 -0700
-
- qa: use sudo when rsyncing /usr so we can read everything
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit fa07c04231db2d130de54647957ffab4a7a53733)
-
-commit 861a18b1f7dd5bdcbb85bc3fa15d1719bb4b2813
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jan 15 16:31:22 2015 -0800
-
- rgw: fix partial GET in swift
-
- Fixes: #10553
- backport: firefly, giant
-
- Don't set the ret code to reflect partial download, just set the
- response status when needed.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7e1553cedff90fa0fefded65cde87ad068eb5f0c)
-
-commit e539971e2d528b4de6009ea44565f037acb2be66 (refs/remotes/gh/wip-10676)
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Thu Dec 18 17:13:27 2014 +0530
-
- doc: Adds updated man page for ceph under man/
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 8de9a0f437822c770600c19a9f61977745b7e530)
-
-commit 15596ffe388147b7984457041a38cbb9f472556c
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Sat Dec 13 02:27:45 2014 +0530
-
- doc: Adds man page for ceph under man/.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit ffd6c7e49686f8f92ddb400ffdec62520708e64b)
-
-commit 893e5cd1f4fd5ea77d65f0e78cc8cff88eb19c1a
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Sat Dec 13 02:24:41 2014 +0530
-
- doc: Adds man page for ceph.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 76da87a64ca6b3cc0ceeaf63e19a9f440d6f4161)
-
-commit 8d29a4a231666830914903b95599d80da7b97def
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 15 17:04:32 2014 -0800
-
- osd: handle no-op write with snapshot case
-
- If we have a transaction that does something to the object but it !exists
- both before and after, we will continue through the write path. If the
- snapdir object already exists, and we try to create it again, we will
- leak a snapdir obc and lock and later crash on an assert when the obc
- is destroyed:
-
- 0> 2014-12-06 01:49:51.750163 7f08d6ade700 -1 osd/osd_types.h: In function 'ObjectContext::~ObjectContext()' thread 7f08d6ade700 time 2014-12-06 01:49:51.605411
- osd/osd_types.h: 2944: FAILED assert(rwstate.empty())
-
- Fix is to not recreated the snapdir if it already exists.
-
- Fixes: #10262
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 02fae9fc54c10b5a932102bac43f32199d4cb612)
-
-commit 8ba48d10c252b28cde5b4da1286421db12b57cc2
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jan 19 18:28:20 2015 -0800
-
- ceph_test_rados_api_misc: do not assert rbd feature match
-
- This test fails on upgrades when we (or the server) have new
- features. Make it less fragile.
-
- Fixes: #10576
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9147c62989871cea8b3a85b02c53017825efb55b)
-
-commit 836ab86d89ae15ed5b228ff656bc81c7cc3495aa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Oct 27 14:47:19 2014 -0400
-
- osdc: Constrain max number of in-flight read requests
-
- Constrain the number of in-flight RADOS read requests to the
- cache size. This reduces the chance of the cache memory
- ballooning during certain scenarios like copy-up which can
- invoke many concurrent read requests.
-
- Fixes: #9854
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 068d68850d09dfcaccc5a3ce85c80b2f6d808ea9)
-
-commit 2964efaf327cf798f892a6722eb4e24f2ffa0fde
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 19 12:46:00 2015 -0500
-
- Revert "Enforce cache size on read requests"
-
- This reverts commit b7784dc1baa47560a733fe9dcd2acec51bc93165.
-
-commit e4c5b153735aba3f84554a50243f779f36568373
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 19 12:45:25 2015 -0500
-
- Revert "rbd: ObjectCacher reads can hang when reading sparse files"
-
- This reverts commit 711a7e6f81983ff2091caa0f232af914a04a041c.
-
-commit c23e42e78ea3ba44706951a728e2ccb74cac7b33
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 19 10:28:56 2015 -0500
-
- librbd: gracefully handle deleted/renamed pools
-
- snap_unprotect and list_children both attempt to scan all
- pools. If a pool is deleted or renamed during the scan,
- the methods would previously return -ENOENT. Both methods
- have been modified to more gracefully handle this condition.
-
- Fixes: #10270
- Backport: giant, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 436923c68b77c900b7774fbef918c0d6e1614a36)
-
-commit 24c13d87039d4f61df0bcabdb8862e0e94fe575d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 05:24:01 2014 -0800
-
- rgw: change multipart upload id magic
-
- Fixes: #10271
- Backport: firefly, giant
-
- Some clients can't sign requests correctly with the original magic
- prefix.
-
- Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5fc7a0be67a03ed63fcc8408f8d71a31a1841076)
-
-commit 617002d3ff469ef409a83e35d4f4fd6a0b5b1278
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Dec 11 09:07:10 2014 -0800
-
- rgw: url decode http query params correctly
-
- Fixes: #10271
- Backport: firefly
-
- This got broken by the fix for #8702. Since we now only url_decode if
- we're in query, we need to specify that we're in query when decoding
- these args.
-
- Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 21e07eb6abacb085f81b65acd706b46af29ffc03)
-
-commit d7ccf71d962cec1571f53c9392f9b58350569062
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Jan 14 15:01:38 2015 -0800
-
- qa: ignore duplicates in rados ls
-
- These can happen with split or with state changes due to reordering
- results within the hash range requested. It's easy enough to filter
- them out at this stage.
-
- Backport: giant, firefly
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e7cc6117adf653a4915fb7a75fac68f8fa0239ec)
-
-commit aef69572588a0dfad58df94cb0d0980d0590d8e4
-Merge: 69eaad7 534624b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jan 15 16:40:48 2015 -0800
-
- Merge branch 'wip-firefly-rgw-backports' into firefly
-
-commit 534624b7e9decc880e88496355a6fbbe008ede5f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 21 17:59:30 2014 -0700
-
- init-radosgw.sysv: set ulimit -n before starting daemon
-
- If we do the ulimit inside the daemon command we will have already
- dropped privs and will fail.
-
- Fixes: #9587
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9803cedf54a7baff45ccd0e0f65d2bc220958a46)
-
-commit fd49cbc535d0d7fa64ebfa458386b47c8ec8616e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 17:07:30 2014 -0800
-
- rgw: use s->bucket_attrs instead of trying to read obj attrs
-
- Fixes: #10307
- Backport: firefly, giant
-
- This is needed, since we can't really read the bucket attrs by trying to
- read the bucket entry point attrs. We already have the bucket attrs
- anyway, use these.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5cf193c8686196d5235889e68cb5ea8f1fc8e556)
-
-commit 79bfffb55a0b3a302368e34417d62f74b82dc224
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 13:40:55 2014 -0800
-
- rgw: remove swift user manifest (DLO) hash calculation
-
- Fixes: #9973
- Backport: firefly, giant
-
- Previously we were iterating through the parts, creating hash of the
- parts etags (as S3 does for multipart uploads). However, swift just
- calculates the etag for the empty manifest object.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ef6d3ad964d34bc526dc4435486bd5c8cdc3b230)
-
- Conflicts:
- src/rgw/rgw_op.cc
-
-commit ac799f0834783590cbb6eb91784c8e0753cb1e03
-Author: Lei Dong <leidong@yahoo-inc.com>
-Date: Mon Oct 27 10:29:48 2014 +0800
-
- fix can not disable max_size quota
-
- Currently if we enable quota and set max_size = -1, it doesn’t
- mean max_size is unlimited as expected. Instead, it means object
- with any size is not allowed to upload because of “QuotaExceededâ€.
- The root cause is the function rgw_rounded_kb which convert max_size
- to max_size_kb returns 0 for -1 because it takes an unsigned int
- but we pass an int to it. A simple fix is check max_size before
- it’s rounded to max_size_kb.
-
- Test case:
- 1 enable and set quota:
- radosgw-admin quota enable --uid={user_id} --quota-scope=user
- radosgw-admin quota set --quota-scope=user --uid={user_id}\
- --max-objects=100 --max-size=-1
- 2 upload any object with non-zero length
- it will return 403 with “QuotaExceeded†and return 200 if you apply the fix.
-
- Fixes: #9907
- Backport: giant, firefly
- Signed-off-by: Dong Lei leidong@yahoo-inc.com
- (cherry picked from commit abd3fd3ef9ee9999b99811937af60b7a5e673e35)
-
-commit 30963fdc98f5650a68b5737729920d43459b5899
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 23 12:43:55 2014 -0700
-
- rgw: rados->set_attrs() updates bucket index
-
- Fixes: #5595
- Backport: dumpling, firefly
- We need to update the bucket index when updating object attrs, otherwise
- we're missing meta changes that need to be registered. It also
- solves issue of bucket index not knowing about object acl changes,
- although this one still requires some more work.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f833f12a200ecc2c4f74ddb443d6fa61b7ad14db)
-
-commit 31f5e332c616dbb7f7338af3ab37ac65ff66f733
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Nov 4 22:05:03 2014 -0800
-
- rgw: RGWRados::get_obj() returns wrong len if len == 0
-
- Fixes: #9877
- We only updated if len was > 0, should update it if r >= 0. This was the
- culprit for issue #9877.
- Backport: giant, firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fe7bf06366adaf787816d1e68f5e3f68e8c91134)
-
-commit 8682d1b15e097ececd927dfbd096dbb46403afca
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 13:28:02 2014 -0800
-
- rgw: send back ETag on S3 object copy
-
- Fixes: #9479
- Backport: firefly, giant
- We didn't send the etag back correctly. Original code assumed the etag
- resided in the attrs, but attrs only contained request attrs.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b1bfc3a7e0c9088f01f8ff770ae14f569fbc570d)
-
- Conflicts:
- src/rgw/rgw_rados.cc
-
-commit 2d61fc76e97e5e28cf24cc6e341d49a8fe47059c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 12:35:42 2014 -0800
-
- rgw: S3 object copy content type fix
-
- Fixes: #9478
- Backport: firefly, giant
- Content type for S3 object copy response should be set to
- application/xml.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 31963459a0a869c4d32f55baa629f36df33eaa90)
-
-commit 011a8c3bd621337e5a1746f18882be20d3854b14
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 11:20:26 2014 -0800
-
- rgw: http headers need to end with \r\n
-
- Fixes: #9254
- Backport: firefly, giant
-
- Reported-by: Benedikt Fraunhofer <fraunhofer@traced.net>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7409ab3df18fb312dd6c9f79084f889c523afdce)
-
- Conflicts:
- src/rgw/rgw_civetweb.cc
- src/rgw/rgw_fcgi.cc
-
-commit 71d119f2952716aa1f75817e1daaf5fb67ecde94
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jan 7 13:56:14 2015 -0800
-
- rgw: index swift keys appropriately
-
- Fixes: #10471
- Backport: firefly, giant
-
- We need to index the swift keys by the full uid:subuser when decoding
- the json representation, to keep it in line with how we store it when
- creating it through other mechanism.
-
- Reported-by: hemant burman <hemant.burman@gmail.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 478629bd2f3f32afbe6e93eaebb8a8fa01af356f)
-
-commit 7b89a827a063acf78a848a34c1c3298db213950f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Nov 20 10:36:05 2014 -0800
-
- rgw-admin: create subuser if needed when creating user
-
- Fixes: #10103
- Backport: firefly, giant
- This turned up after fixing #9973. Earlier we also didn't create the
- subuser in this case, but we didn't really read the subuser info when it
- was authenticating. Now we do that as required, so we end up failing the
- authentication. This only applies to cases where a subuser was created
- using 'user create', and not the 'subuser create' command.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9ba17a321db06d3d76c9295e411c76842194b25c)
-
-commit 9ee29b5355e9ffeac76707e8d4070bfff5dc99d5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 14:38:46 2014 -0800
-
- rgw: update swift subuser perm masks when authenticating
-
- Fixes: #9918
- Backport: firefly, giant
- It seems that we weren't setting the swift perm mask correctly.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5d9f36f757a7272c24d2c9adc31db1ed5e712992)
-
-commit d298fdda2aa177e1a4b43ca94a2292435a50dea4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 23 17:39:42 2014 -0700
-
- rgw: send http status reason explicitly in fastcgi
-
- There are issues in certain versions of apache 2.4, where the reason is
- not sent back. Instead, just provide the reason explicitly.
-
- Backport: firefly, giant
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a9dd4af401328e8f9071dee52470a0685ceb296b)
diff --git a/src/ceph/doc/changelog/v0.87.1.txt b/src/ceph/doc/changelog/v0.87.1.txt
deleted file mode 100644
index cf0eeca..0000000
--- a/src/ceph/doc/changelog/v0.87.1.txt
+++ /dev/null
@@ -1,2151 +0,0 @@
-commit 283c2e7cfa2457799f534744d7d549f83ea1335e (tag: refs/tags/v0.87.1, refs/remotes/gh/giant)
-Author: Jenkins <jenkins@inktank.com>
-Date: Mon Feb 23 12:02:04 2015 -0800
-
- 0.87.1
-
-commit 4178e32dd085adeead84fb168ab8a8a121256259
-Merge: ccb0914 734e9af
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 17 01:09:54 2015 +0100
-
- Merge pull request #3731 from liewegas/wip-10834-giant
-
- osd: tolerate sessionless con in fast dispatch path
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 734e9af5df4ae419ded108f5036bee068a9bc2b2
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 1 18:15:59 2014 -0800
-
- osd: tolerate sessionless con in fast dispatch path
-
- We can now get a session cleared from a Connection at any time. Change
- the assert to an if in ms_fast_dispatch to cope. It's pretty rare, but it
- can happen, especially with delay injection. In particular, a racing
- thread can call mark_down() on us.
-
- Fixes: #10209
- Backport: giant
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 01df2227125abf94571b4b0c7bccca57098ed2dc)
-
-commit ccb0914f76da23acdd7374233cd1939ab80ef3c8
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Feb 2 16:43:35 2015 +0100
-
- qa: use correct binary path on rpm-based systems
-
- Fixes: #10715
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 05ce2aa1bf030ea225300b48e7914577a412b38c)
-
-commit 78c71b9200da5e7d832ec58765478404d31ae6b5
-Merge: 222aa22 91515e7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Feb 11 00:11:57 2015 +0100
-
- Merge pull request #3407 from ceph/wip-9854-giant
-
- osdc: Constrain max number of in-flight read requests
-
-commit 222aa22ebc0ccb1b04156e0c9d05f4e4733ec290
-Merge: b9ff170 a5cb39c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 22:01:21 2015 +0100
-
- Merge pull request #3568 from dachary/wip-10471-rgw-giant
-
- rgw: use s->bucket_attrs instead of trying to read obj attrs
-
-commit b9ff1708ad85ca5aeb10b4202bcbe197251e3bd8
-Merge: 34103b6 b1e4882
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:59:40 2015 +0100
-
- Merge pull request #3263 from dachary/wip-jerasure-giant
-
- erasure-code: update links to jerasure upstream (giant)
-
-commit 34103b6355881820aa10b354c2427654bf229e8f
-Merge: 94889cf d125743
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:59:17 2015 +0100
-
- Merge pull request #3191 from ceph/giant-10277
-
- Giant 10277
-
-commit 94889cf6bef5a542e51bf8434dbe7c68f64604ce
-Merge: d7b10d8 d28c8e0
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:58:52 2015 +0100
-
- Merge pull request #3186 from ceph/wip-giant-mon-backports
-
- mon: backports for #9987 against giant
-
-commit d7b10d897e17bc3fa690c8484ad2d6f233896237
-Merge: 11f7d06 16c6d0d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:58:29 2015 +0100
-
- Merge pull request #3185 from dachary/wip-10325-cauchy-giant
-
- erasure-code: relax cauchy w restrictions (giant)
-
-commit 11f7d064e5d93bc0ed8896750344c6cf6b37aeab
-Merge: 975be75 636b98f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:58:05 2015 +0100
-
- Merge pull request #3178 from dachary/wip-9998-crush-underfloat-giant
-
- crush: fix weight underfloat issue (giant)
-
-commit 975be75f4bcea88b232ea76087b49e288d7c29f7
-Merge: 51fe79d d759e71
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:57:50 2015 +0100
-
- Merge pull request #3579 from dachary/wip-9877-rgw-giant
-
- rgw: RGWRados::get_obj() returns wrong len if len == 0
-
-commit 51fe79d9e63c7df4da547a0ba7a12aa9c6cd7ab2
-Merge: fca9ead 319f9c9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:57:18 2015 +0100
-
- Merge pull request #3168 from ceph/wip-8797-giant
-
- Wip 8797 giant
-
-commit fca9eadaf3fcef77e269d4936d4eea86ab6c3faf
-Merge: 317532b 9886620
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:56:53 2015 +0100
-
- Merge pull request #3582 from dachary/wip-10062-rgw-giant
-
- rgw: s3 keystone auth fixes
-
-commit 317532b70383762f473a910e043c889574eb6087
-Merge: 3e8f3e3 debc0c5
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:56:37 2015 +0100
-
- Merge pull request #3581 from dachary/wip-9918-rgw-giant
-
- rgw: update swift subuser perm masks when authenticating
-
-commit 3e8f3e38af76fa2cba86aedf962d3230d7979f63
-Merge: 1d77591 76f9de3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:56:17 2015 +0100
-
- Merge pull request #3580 from dachary/wip-9907-rgw-giant
-
- fix can not disable max_size quota
-
-commit 1d7759149697242192be05decf7ffafb17b24cbe
-Merge: b016863 ad04a67
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:55:56 2015 +0100
-
- Merge pull request #3083 from dachary/wip-10211-erasure-code-buffer-alignement-giant
-
- erasure-code: enforce chunk size alignment (giant)
-
-commit b016863ad243388e7571da9ffca3013c8f99237a
-Merge: bdcc9dc d21f4e3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:55:23 2015 +0100
-
- Merge pull request #3577 from dachary/wip-9587-rgw-giant
-
- init-radosgw.sysv: set ulimit -n before starting daemon
-
-commit bdcc9dcb8586c91b432c7087e33a2b52ef467b54
-Merge: df475f9 7b5f746
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:54:58 2015 +0100
-
- Merge pull request #3576 from dachary/wip-5595-9576-rgw-giant
-
- update object content-length doesn't work correctly
-
-commit df475f92a41e3bd5a022335b2c9023ad40c3b47b
-Merge: db7adf8 b2f6f7f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:54:13 2015 +0100
-
- Merge pull request #3575 from dachary/wip-9479-rgw-giant
-
- rgw: send back ETag on S3 object copy
-
-commit db7adf8d8ca225fea2d0277ced614e936df086c9
-Merge: 9b50db9 67ba4d3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:53:55 2015 +0100
-
- Merge pull request #3574 from dachary/wip-9478-rgw-giant
-
- rgw: S3 object copy content type fix
-
-commit 9b50db97a9552841ed143588e2f63bab56d0aecb
-Merge: 583fe31 84e9b6c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:53:33 2015 +0100
-
- Merge pull request #3573 from dachary/wip-9254-rgw-giant
-
- rgw: http headers need to end with \r\n
-
-commit 583fe31681c4eea8b85b413674074445e2b424a6
-Merge: 5240db5 1cb0955
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:53:15 2015 +0100
-
- Merge pull request #3572 from dachary/wip-9973-rgw-giant
-
- rgw: remove swift user manifest (DLO) hash calculation
-
-commit 5240db588e9017dd8a487b7a9ee16f171fdda1ff
-Merge: 62e1552 e230fab
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:52:54 2015 +0100
-
- Merge pull request #3571 from dachary/wip-8911-rgw-giant
-
- rgw: swift GET / HEAD object returns X-Timestamp field
-
-commit 62e15528dda20b5419e39744fa9e0c9c4cae053c
-Merge: 16cd892 c24fab3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:52:36 2015 +0100
-
- Merge pull request #3570 from dachary/wip-10701-rgw-giant
-
- rgw: use strict_strtoll() for content length
-
-commit 16cd892aab4ffb1dc15b93a4101d9bc209591c94
-Merge: 028904c 6aef29e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:52:00 2015 +0100
-
- Merge pull request #3569 from dachary/wip-10103-rgw-giant
-
- rgw-admin: create subuser if needed when creating user
-
-commit 028904cf7c36a1d5342cf29c115bc0437e9b2d74
-Merge: 520dcf8 425ee8a
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:51:06 2015 +0100
-
- Merge pull request #3567 from dachary/wip-10307-rgw-giant
-
- rgw: use s->bucket_attrs instead of trying to read obj attrs
-
-commit 520dcf8624eeafd694115b382616be83f9b344d3
-Merge: cae1de2 14cdb9b
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:50:34 2015 +0100
-
- Merge pull request #3443 from ceph/wip-10590-giant
-
- rbd: ensure aio_write buffer isn't invalidated during image import
-
-commit cae1de29922c2183eff021c6fe2b921a87b5f5b2
-Merge: b346ad3 83a0a2e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:50:14 2015 +0100
-
- Merge pull request #3557 from dachary/wip-10688-boost-157-giant
-
- support Boost 1.57.0
-
-commit b346ad37a84b7cfd0bae84528f2533a8cc4a8e3d
-Merge: aacd51c 13bb880
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:49:47 2015 +0100
-
- Merge pull request #2954 from sponce/giant
-
- Fixed trivial locking issue in the trunc method of libradosstriper - Giant branch
-
-commit aacd51c74c102d44982421b9bc384d12fc160e3c
-Merge: 1d97c7c 081f49b
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:49:20 2015 +0100
-
- Merge pull request #3405 from ceph/wip-10299-giant
-
- librbd: complete all pending aio ops prior to closing image
-
-commit 1d97c7c9a3087e7bc98774d9fe2882bdc4a84531
-Merge: 53dec0e 436923c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:48:49 2015 +0100
-
- Merge pull request #3403 from ceph/wip-10270-giant
-
- librbd: gracefully handle deleted/renamed pools
-
-commit 53dec0eeee60b315e88acb4ba05666857ae3e0eb
-Merge: df8285c 1261bf2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 10 21:48:20 2015 +0100
-
- Merge pull request #3356 from liewegas/wip-msgr-giant
-
- msgr: fast dispatch backports for giant
-
-commit df8285c5e5b14d9a4cd42fb9be8e18fe6cdf6f83
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Feb 5 21:12:17 2015 -0800
-
- fsync-tester: print info about PATH and locations of lsof lookup
-
- We're seeing the lsof invocation fail (as not found) in testing and nobody can
- identify why. Since attempting to reproduce the issue has not worked, this
- patch will gather data from a genuinely in-vitro location.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit a85051483874ff5b8b0fb50426a3577040457596)
-
-commit 91515e750bfe2453ce8ac9ec568b0e314823dd82
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Oct 27 14:47:19 2014 -0400
-
- osdc: Constrain max number of in-flight read requests
-
- Constrain the number of in-flight RADOS read requests to the
- cache size. This reduces the chance of the cache memory
- ballooning during certain scenarios like copy-up which can
- invoke many concurrent read requests.
-
- Fixes: #9854
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 98866208c64348ca885335d95a1c737071a17004
-Author: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-Date: Mon Dec 22 19:57:19 2014 +0530
-
- rgw: check keystone auth also for s3 post requests
-
- This patch adds keystone auth for s3 post requests, once a user fails in
- cephx authentication, they are checked for keystone if configured.
-
- Fixes #10062
- Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-
- (cherry picked from commit 8b3dfc9472022ea45ad24e02e0aa21dfdad798f8)
-
-commit 4e4372b8e551bb1b974f08dc69f5b27bdd22bb4b
-Author: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-Date: Mon Nov 17 17:37:00 2014 +0530
-
- rgw: check for timestamp for s3 keystone auth
-
- This commit ensures that we check for timestamp of s3 request is within
- acceptable grace time of radosgw
- Addresses some failures in #10062
- Fixes: #10062
- Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@gmail.com>
-
- (cherry picked from commit 4b35ae067fef9f97b886afe112d662c61c564365)
-
-commit debc0c593fb7401d07a34f7916380092ad7285f9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 14:38:46 2014 -0800
-
- rgw: update swift subuser perm masks when authenticating
-
- Fixes: #9918
- Backport: firefly, giant
- It seems that we weren't setting the swift perm mask correctly.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5d9f36f757a7272c24d2c9adc31db1ed5e712992)
-
-commit 76f9de330deaa4fafb86d3f6f2754f0d419306b1
-Author: Lei Dong <leidong@yahoo-inc.com>
-Date: Mon Oct 27 10:29:48 2014 +0800
-
- fix can not disable max_size quota
-
- Currently if we enable quota and set max_size = -1, it doesn’t
- mean max_size is unlimited as expected. Instead, it means object
- with any size is not allowed to upload because of “QuotaExceededâ€.
- The root cause is the function rgw_rounded_kb which convert max_size
- to max_size_kb returns 0 for -1 because it takes an unsigned int
- but we pass an int to it. A simple fix is check max_size before
- it’s rounded to max_size_kb.
-
- Test case:
- 1 enable and set quota:
- radosgw-admin quota enable --uid={user_id} --quota-scope=user
- radosgw-admin quota set --quota-scope=user --uid={user_id}\
- --max-objects=100 --max-size=-1
- 2 upload any object with non-zero length
- it will return 403 with “QuotaExceeded†and return 200 if you apply the fix.
-
- Fixes: #9907
- Backport: giant, firefly
- Signed-off-by: Dong Lei leidong@yahoo-inc.com
- (cherry picked from commit abd3fd3ef9ee9999b99811937af60b7a5e673e35)
-
-commit d759e71c8167ea29c8fda9483039a3e491083da5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Nov 4 22:05:03 2014 -0800
-
- rgw: RGWRados::get_obj() returns wrong len if len == 0
-
- Fixes: #9877
- We only updated if len was > 0, should update it if r >= 0. This was the
- culprit for issue #9877.
- Backport: giant, firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fe7bf06366adaf787816d1e68f5e3f68e8c91134)
-
-commit d21f4e326eb4821cc9bd38a1b62a0210272277d4
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 21 17:59:30 2014 -0700
-
- init-radosgw.sysv: set ulimit -n before starting daemon
-
- If we do the ulimit inside the daemon command we will have already
- dropped privs and will fail.
-
- Fixes: #9587
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9803cedf54a7baff45ccd0e0f65d2bc220958a46)
-
-commit 7b5f746d2f97c7139f9c31962c107a074bfd1863
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 23 12:42:10 2014 -0700
-
- rgw: PutObjMetadata, clear bufferlist before appending into it
-
- Fixes: #9576
- Backport: firefly, dumpling
-
- We need to completely rewrite the bufferlist, not append into it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 44cfd88dc65d30f4295743c5834768bb13f7b805)
-
-commit e24f27b7b2e2aeb84b14788e8bf2757ecdf8f0c0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 23 12:43:55 2014 -0700
-
- rgw: rados->set_attrs() updates bucket index
-
- Fixes: #5595
- Backport: dumpling, firefly
- We need to update the bucket index when updating object attrs, otherwise
- we're missing meta changes that need to be registered. It also
- solves issue of bucket index not knowing about object acl changes,
- although this one still requires some more work.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f833f12a200ecc2c4f74ddb443d6fa61b7ad14db)
-
-commit b2f6f7f6205682aeb09c0785e373ddf5d89c6d04
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 13:28:02 2014 -0800
-
- rgw: send back ETag on S3 object copy
-
- Fixes: #9479
- Backport: firefly, giant
- We didn't send the etag back correctly. Original code assumed the etag
- resided in the attrs, but attrs only contained request attrs.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b1bfc3a7e0c9088f01f8ff770ae14f569fbc570d)
-
-commit 67ba4d3444f0f64dae6286be28276ba85376ecf6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 12:35:42 2014 -0800
-
- rgw: S3 object copy content type fix
-
- Fixes: #9478
- Backport: firefly, giant
- Content type for S3 object copy response should be set to
- application/xml.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 31963459a0a869c4d32f55baa629f36df33eaa90)
-
-commit 84e9b6c32c6fdc38e2c64f3360c185332e691bf4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 11:20:26 2014 -0800
-
- rgw: http headers need to end with \r\n
-
- Fixes: #9254
- Backport: firefly, giant
-
- Reported-by: Benedikt Fraunhofer <fraunhofer@traced.net>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7409ab3df18fb312dd6c9f79084f889c523afdce)
-
-commit 1cb09555d3fdb568296797cd83eb5557552f056c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Nov 5 13:40:55 2014 -0800
-
- rgw: remove swift user manifest (DLO) hash calculation
-
- Fixes: #9973
- Backport: firefly, giant
-
- Previously we were iterating through the parts, creating hash of the
- parts etags (as S3 does for multipart uploads). However, swift just
- calculates the etag for the empty manifest object.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ef6d3ad964d34bc526dc4435486bd5c8cdc3b230)
-
-commit e230fabf29c4660594d19027af49810e57b82e35
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 30 14:15:47 2014 -0700
-
- rgw: swift GET / HEAD object returns X-Timestamp field
-
- Fixes: #8911
- Backport: giant, firefly, dumpling
- Swift clients expect X-Timestamp header, dump it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5b41d80b7fb9ed96c26801fc42c044191bb18d84)
-
-commit c24fab3065ba6d81435981b609f2b69c3d98d21d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 30 10:51:52 2015 -0800
-
- rgw: use strict_strtoll() for content length
-
- instead of strict_strtol().
-
- Backport: giant, firefly
- Fixes: #10701
-
- Reported-by: Axel Dunkel <ad@dunkel.de>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1c25dbafb45caf1b261cfcec15b868a2ba6b5fef)
-
-commit 6aef29e31e9c7c7ccf8e95d573700c08218b2b45
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Nov 20 10:36:05 2014 -0800
-
- rgw-admin: create subuser if needed when creating user
-
- Fixes: #10103
- Backport: firefly, giant
- This turned up after fixing #9973. Earlier we also didn't create the
- subuser in this case, but we didn't really read the subuser info when it
- was authenticating. Now we do that as required, so we end up failing the
- authentication. This only applies to cases where a subuser was created
- using 'user create', and not the 'subuser create' command.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9ba17a321db06d3d76c9295e411c76842194b25c)
-
-commit a5cb39cbb6aee869b92ac20975b5c80a01210b63
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 17:07:30 2014 -0800
-
- rgw: use s->bucket_attrs instead of trying to read obj attrs
-
- Fixes: #10307
- Backport: firefly, giant
-
- This is needed, since we can't really read the bucket attrs by trying to
- read the bucket entry point attrs. We already have the bucket attrs
- anyway, use these.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5cf193c8686196d5235889e68cb5ea8f1fc8e556)
-
-commit 425ee8a07bb8ce12eee124b3c374031f644aa32b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 17:07:30 2014 -0800
-
- rgw: use s->bucket_attrs instead of trying to read obj attrs
-
- Fixes: #10307
- Backport: firefly, giant
-
- This is needed, since we can't really read the bucket attrs by trying to
- read the bucket entry point attrs. We already have the bucket attrs
- anyway, use these.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5cf193c8686196d5235889e68cb5ea8f1fc8e556)
-
-commit 83a0a2e5b52b18a25009faaf09fa4f48af3c52ee
-Author: William A. Kennington III <william@wkennington.com>
-Date: Sat Sep 20 22:52:31 2014 -0700
-
- osd: Cleanup boost optionals
-
- Signed-off-by: William A. Kennington III <william@wkennington.com>
- (cherry picked from commit a53ead14c113047567177630b4906136a2109b65)
-
-commit eb30631ec3d081fd1bc2cdbd4812a334de9e1282
-Author: Petr Machata <pmachata@redhat.com>
-Date: Thu Jan 29 10:15:02 2015 -0700
-
- support Boost 1.57.0
-
- Sometime after 1.55, boost introduced a forward declaration of
- operator<< in optional.hpp. In 1.55 and earlier, when << was used
- without the _io having been included, what got dumped was an implicit
- bool conversion.
-
- http://tracker.ceph.com/issues/10688 Refs: #10688
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 85717394c33137eb703a7b88608ec9cf3287f67a)
-
- Conflicts:
- src/include/encoding.h
- trivial conflict
-
-commit 1ccd73a16e1829b5519ec5b83b2554af173ad052
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 23 17:39:42 2014 -0700
-
- rgw: send http status reason explicitly in fastcgi
-
- There are issues in certain versions of apache 2.4, where the reason is
- not sent back. Instead, just provide the reason explicitly.
-
- Backport: firefly, giant
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a9dd4af401328e8f9071dee52470a0685ceb296b)
-
-commit 3bf42af2e932a473b19cb54637e8543a666a4a28
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jan 15 16:31:22 2015 -0800
-
- rgw: fix partial GET in swift
-
- Fixes: #10553
- backport: firefly, giant
-
- Don't set the ret code to reflect partial download, just set the
- response status when needed.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7e1553cedff90fa0fefded65cde87ad068eb5f0c)
-
-commit aa038684dce1964d5d23802d23f2bd772458ea11
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 15 17:04:32 2014 -0800
-
- osd: handle no-op write with snapshot case
-
- If we have a transaction that does something to the object but it !exists
- both before and after, we will continue through the write path. If the
- snapdir object already exists, and we try to create it again, we will
- leak a snapdir obc and lock and later crash on an assert when the obc
- is destroyed:
-
- 0> 2014-12-06 01:49:51.750163 7f08d6ade700 -1 osd/osd_types.h: In function 'ObjectContext::~ObjectContext()' thread 7f08d6ade700 time 2014-12-06 01:49:51.605411
- osd/osd_types.h: 2944: FAILED assert(rwstate.empty())
-
- Fix is to not recreated the snapdir if it already exists.
-
- Fixes: #10262
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 02fae9fc54c10b5a932102bac43f32199d4cb612)
-
-commit e045ad4a39076547209ac1dc298df5ebffb76669
-Merge: a463b92 9f865fa
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Tue Jan 27 09:40:16 2015 -0800
-
- Merge pull request #3502 from ceph/wip-10382-giant
-
- [giant backport] mds: handle heartbeat_reset during shutdown
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 9f865fae095a1fe8a26acb50667f1d774d6020b6
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Jan 14 10:35:53 2015 +0000
-
- mds: handle heartbeat_reset during shutdown
-
- Because any thread might grab mds_lock and call heartbeat_reset
- immediately after a call to suicide() completes, this needs
- to be handled as a special case where we tolerate MDS::hb having
- already been destroyed.
-
- Fixes: #10382
- Signed-off-by: John Spray <john.spray@redhat.com>
-
-commit a463b92e475cd1f4cdb963e402033ebc9d37dbdc
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jan 19 18:28:20 2015 -0800
-
- ceph_test_rados_api_misc: do not assert rbd feature match
-
- This test fails on upgrades when we (or the server) have new
- features. Make it less fragile.
-
- Fixes: #10576
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9147c62989871cea8b3a85b02c53017825efb55b)
-
-commit 14cdb9bb6d27f2017a3a8e6c1f274b9f40fb7456
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 21 14:55:02 2015 -0500
-
- rbd: ensure aio_write buffer isn't invalidated during image import
-
- The buffer provided to aio_write shouldn't be invalidated until
- after aio_write has indicated that the operation has completed.
-
- Fixes: #10590
- Backport: giant
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 4d3b49e9d62bc1040356ca3ebe7f90c181734eb6)
-
-commit 081f49b47ca8d7583211f546ab5699b14f773bfc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 15 10:53:53 2014 -0500
-
- librbd: complete all pending aio ops prior to closing image
-
- It was possible for an image to be closed while aio operations
- were still outstanding. Now all aio operations are tracked and
- completed before the image is closed.
-
- Fixes: #10299
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 436923c68b77c900b7774fbef918c0d6e1614a36
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 19 10:28:56 2015 -0500
-
- librbd: gracefully handle deleted/renamed pools
-
- snap_unprotect and list_children both attempt to scan all
- pools. If a pool is deleted or renamed during the scan,
- the methods would previously return -ENOENT. Both methods
- have been modified to more gracefully handle this condition.
-
- Fixes: #10270
- Backport: giant, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4c8a5cedcb7942e1e01ab4cedfbf03e4c56cc1e4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 12 05:24:01 2014 -0800
-
- rgw: change multipart upload id magic
-
- Fixes: #10271
- Backport: firefly, giant
-
- Some clients can't sign requests correctly with the original magic
- prefix.
-
- Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5fc7a0be67a03ed63fcc8408f8d71a31a1841076)
-
-commit b10c0d5110547586b2edac53c267391d3d42f974
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Dec 11 09:07:10 2014 -0800
-
- rgw: url decode http query params correctly
-
- Fixes: #10271
- Backport: firefly
-
- This got broken by the fix for #8702. Since we now only url_decode if
- we're in query, we need to specify that we're in query when decoding
- these args.
-
- Reported-by: Georgios Dimitrakakis <giorgis@acmac.uoc.gr>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 21e07eb6abacb085f81b65acd706b46af29ffc03)
-
-commit 65bf3b08b572b9b25ad064fb784742e5d6456f06
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Jan 14 15:01:38 2015 -0800
-
- qa: ignore duplicates in rados ls
-
- These can happen with split or with state changes due to reordering
- results within the hash range requested. It's easy enough to filter
- them out at this stage.
-
- Backport: giant, firefly
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e7cc6117adf653a4915fb7a75fac68f8fa0239ec)
-
-commit 1261bf24624f871672002ab0915e23f1c95b0aa5
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 14 12:42:40 2014 -0700
-
- Revert "Objecter: disable fast dispatch of CEPH_MSG_OSD_OPREPLY messages"
-
- This reverts commit 3f23709c474292f9239f77a6cce26309fc86ce29.
-
- We have changed mark_down() behavior so that it no longer blocks on
- fast dispatch. This makes the objecter reply handler safe again.
-
- Fixes: #9598
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c9f9e72e558521cb90f90538bc27f995f82d76c2)
-
-commit 300d4c6ff7e998dba0c67f6dde746dc23d681397
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 14 12:41:48 2014 -0700
-
- msg/simple: do not stop_and_wait on mark_down
-
- We originally blocked in mark_down for fast dispatch threads
- to complete to avoid various races in the code. Most of these
- were in the OSD itself, where we were not prepared to get
- messges on connections that had no attached session. Since
- then, the OSD checks have been cleaned up to handle this.
- There were other races we were worried about too, but the
- details have been lost in the depths of time.
-
- Instead, take the other route: make mark_down never block on
- dispatch. This lets us remove the special case that
- was added in order to cope with fast dispatch calling
- mark_down on itself.
-
- Now, the only stop_and_wait() user is the shutdown sequence.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 00907e032011b9d2acd16ea588555cf379830814)
-
-commit c3335c7aa6c1e6c3f1879c0cd3cd2f13091221be
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 31 16:25:09 2014 -0700
-
- msg/Pipe: inject delay in stop_and_wait
-
- Inject a delay in stop_and_wait. This will mostly affect the connection
- race Pipe takeover code which currently calls stop_and_wait while holding
- the msgr->lock. This should make it easier for a racing fast_dispatch
- method to get stuck on a call that (indirectly) needs the msgr lock.
- See #9921.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2fe5c4c305218fdb1771857e4e0ef7c98a8d0fb6)
-
-commit 1dbe8f5a6f7bf2b7c86d24f27d569d71e0076ee9
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Oct 28 16:45:43 2014 -0700
-
- SimpleMessenger: Pipe: do not block on takeover while holding global lock
-
- We previously were able to cause deadlocks:
- 1) Existing pipe is fast_dispatching
- 2) Replacement incoming pipe is accepted
- *) blocks on stop_and_wait() of existing Pipe
- 3) External things are blocked on SimpleMessenger::lock() while
- blocking completion of the fast dispatch.
-
- To resolve this, if we detect that an existing Pipe we want to take over is
- in the process of fast dispatching, we unlock our locks and wait on it to
- finish. Then we go back to the lookup step and retry.
-
- The effect of this should be safe:
- 1) We are not making any changes to the existing Pipe in new ways
- 2) We have not registered the new Pipe anywhere
- 3) We have not sent back any replies based on Messenger state to
- the remote endpoint.
-
- Backport: giant
- Fixes: #9921
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 2d6980570af2226fdee0edfcfe5a8e7f60fae615)
-
-commit 16c023d8fa5575d4dd138aeee4d4fd9b8f32c0f6
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 8 13:34:52 2015 -0800
-
- osd: requeue PG when we skip handling a peering event
-
- If we don't handle the event, we need to put the PG back into the peering
- queue or else the event won't get processed until the next event is
- queued, at which point we'll be processing events with a delay.
-
- The queue_null is not necessary (and is a waste of effort) because the
- event is still in pg->peering_queue and the PG is queued.
-
- Note that this only triggers when we exceeed osd_map_max_advance, usually
- when there is a lot of peering and recovery activity going on. A
- workaround is to increase that value, but if you exceed osd_map_cache_size
- you expose yourself to crache thrashing by the peering work queue, which
- can cause serious problems with heavily degraded clusters and bit lots of
- people on dumpling.
-
- Backport: giant, firefly
- Fixes: #10431
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 492ccc900c3358f36b6b14a207beec071eb06707)
-
-commit 16c6d0d589d53aad7bb2cd0e104300fb920d5caf
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 16 13:31:30 2014 +0100
-
- erasure-code: relax cauchy w restrictions
-
- A restriction that the w parameter of the cauchy technique is limited to
- 8, 16 or 32 was added incorrectly while refactoring parameter parsing in
- the jerasure plugin and must be relaxed.
-
- http://tracker.ceph.com/issues/10325 Fixes: #10325
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit bb80437f247345502203ad87a7e7bbb5b5602b9a)
-
-commit 636b98faa6b1c9fd6de1b8653d1d282577b54684
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 23 18:50:51 2014 -0800
-
- crush/CrushWrapper: fix create_or_move_item when name exists but item does not
-
- We were using item_exists(), which simply checks if we have a name defined
- for the item. Instead, use _search_item_exists(), which looks for an
- instance of the item somewhere in the hierarchy. This matches what
- get_item_weightf() is doing, which ensures we get a non-negative weight
- that converts properly to floating point.
-
- Backport: giant, firefly
- Fixes: #9998
- Reported-by: Pawel Sadowski <ceph@sadziu.pl>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9902383c690dca9ed5ba667800413daa8332157e)
-
-commit ced2472664fab06d03de03d7b23325f9319163b7
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Nov 21 17:47:56 2014 -0800
-
- crush/builder: prevent bucket weight underflow on item removal
-
- It is possible to set a bucket weight that is not the sum of the item
- weights if you manually modify/build the CRUSH map. Protect against any
- underflow on the bucket weight when removing items.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8c87e9502142d5b4a282b94f929ae776a49be1dc)
-
-commit adf8798dabb679110c6815af5d73ab6ff20a1af8
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Nov 21 17:37:03 2014 -0800
-
- crush/CrushWrapper: fix _search_item_exists
-
- Reported-by: Pawel Sadowski <ceph@sadziu.pl>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit eeadd60714d908a3a033aeb7fd542c511e63122b)
-
-commit 6caa4fa42c6eaa76b3b9caf37e4ee09844f017a7
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Thu Dec 18 20:00:28 2014 -0800
-
- If trusty, use older version of qemu
-
- Fixes #10319
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
- (cherry-picked from 46a1a4cb670d30397979cd89808a2e420cef2c11)
-
-commit 44c944e96440bd338d22533779e0650b99115a16
-Merge: abdbbd6 910ec62
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 29 10:55:22 2014 -0800
-
- Merge pull request #3266 from ceph/giant-10415
-
- libcephfs/test.cc: close fd before umount
-
-commit b1e48820785a1d3153fc926ad21355b3927b44e9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Dec 28 10:29:54 2014 +0100
-
- erasure-code: update links to jerasure upstream
-
- It moved from bitbucket to jerasure.org
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 8e86f901939f16cc9c8ad7a4108ac4bcf3916d2c)
-
-commit 910ec624156d26a1830078161f47328a950a4eee
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Dec 23 10:22:00 2014 +0800
-
- libcephfs/test.cc: close fd before umount
-
- Fixes: #10415
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d3fb563cee4c4cf08ff4ee01782e52a100462429)
-
-commit abdbbd6e846727385cf0a1412393bc9759dc0244
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Tue Dec 16 22:01:26 2014 -0800
-
- Remove sepia dependency (use fqdn)
-
- Fixes: #10255
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
- (cherry picked from commit 19dafe164833705225e168a686696fb4e170aba7)
-
-commit d1257436fdf79bad5fe0719a6be71e2abb2d2462 (refs/remotes/gh/giant-10277)
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Dec 17 15:59:44 2014 +0800
-
- client: use remount to trim kernel dcache
-
- when remounting a file system, linux kernel trims all unused dentry
- in the file system.
-
- Fixes: #10277
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit 9de9901cacd2ed2c8c5f65a938fb6a996efab4cd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Dec 17 15:46:49 2014 +0800
-
- client: cleanup client callback registration
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit d28c8e0fb924fbf36e4e15e19554ad30da3ff8f2 (refs/remotes/gh/wip-giant-mon-backports)
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 2 08:50:59 2014 -0800
-
- mon/PGMap and PGMonitor: update last_epoch_clean cache from new osd keys
-
- We were only invalidating the cached value from apply_incremental, which
- is no longer called on modern clusters.
-
- Fix this by storing the update epoch in the key as well (it is not part
- of osd_stat_t).
-
- Backport: giant, firefly, dumpling(?)
- Fixes: #9987
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 093c5f0cabeb552b90d944da2c50de48fcf6f564)
-
-commit 7646f239476609c96b6baf94dfd5f727fff49502
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Nov 2 08:49:48 2014 -0800
-
- mon/PGMap: invalidate cached min_last_epoch_clean from new-style pg keys
-
- We were only invalidating the cache from the legacy apply_incremental(),
- which is no longer called on modern clusters.
-
- Fixes: #9987
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3fb731b722c50672a5a9de0c86a621f5f50f2d06)
-
-commit 6ec14b07940ff64d6a121e21a730f691a1a71546
-Merge: 758d9cf 7bbf80f
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Thu Dec 11 17:03:07 2014 -0800
-
- Merge pull request #3159 from ceph/wip-10229-giant
-
- osdc/Filer: use finisher to execute C_Probe and C_PurgeRange [giant backport]
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7bbf80ff7388f104cf318dd5ac61ca7d35274694
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Dec 4 12:18:47 2014 +0800
-
- osdc/Filer: use finisher to execute C_Probe and C_PurgeRange
-
- Currently contexts C_Probe/C_PurgeRange are executed while holding
- OSDSession::completion_lock. C_Probe and C_PurgeRange may call
- Objecter::stat() and Objecter::remove() respectively, which acquire
- Objecter::rwlock. This can cause deadlock because there is intermediate
- dependency between Objecter::rwlock and OSDSession::completion_lock:
-
- Objecter::rwlock -> OSDSession::lock -> OSDSession::completion_lock
-
- The fix is exexcute C_Probe/C_PurgeRange in finisher thread.
-
- Fixes: #10229
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d3ee89ace660161df7796affbf9a70f3d0dedce1)
-
-commit 758d9cf30bfc7736cc297ba3b047756f7eb8183e
-Merge: a8e5638 994dcbb
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Thu Dec 11 10:47:38 2014 -0800
-
- Merge pull request #3151 from ceph/wip-10288-giant
-
- mon: fix `fs ls` on peons [giant backport]
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 994dcbbef4bea532aea4143c3ac1372ca14d2aea
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Dec 11 14:00:57 2014 +0000
-
- mon: fix `fs ls` on peons
-
- This was incorrectly using pending_mdsmap instead
- of mdsmap. We didn't notice in test because of
- single-mon configurations.
-
- Fixes: #10288
- Backport: giant
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 5559e6aea9e9374ecdac0351777dfd6f5f5d1e67)
-
-commit 319f9c9352bfd1b95bd685500922e6cee2199b34 (refs/remotes/gh/wip-8797-giant)
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Dec 10 13:19:53 2014 -0800
-
- Call Rados.shutdown() explicitly before exit
-
- This is mostly a demonstration of good behavior, as the resources will
- be reclaimed on exit anyway.
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit b038e8fbf9103cc42a4cde734b3ee601af6019ea)
-
-commit ed8c9af3376aeb6f245cbab694fdbc0ce95634a8
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Dec 10 13:19:16 2014 -0800
-
- rados.py: remove Rados.__del__(); it just causes problems
-
- Recent versions of Python contain a change to thread shutdown that
- causes ceph to hang on exit; see http://bugs.python.org/issue21963.
- As it turns out, this is relatively easy to avoid by not spawning
- threads on exit, as Rados.__del__() will certainly do by calling
- shutdown(); I suspect, but haven't proven, that the problem is
- that shutdown() tries to start() a threading.Thread() that never
- makes it all the way back to signal start().
-
- Also add a PendingReleaseNote and extra doc comments to clarify.
-
- Fixes: #8797
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 5ba9b8f21f8010c59dd84a0ef2acfec99e4b048f)
-
- Conflicts:
- PendingReleaseNotes
-
-commit a8e56380f08cd5940def4cc47cadba699a8ba45d
-Merge: 247a6fa e7faed5
-Author: Samuel Just <sam.just@inktank.com>
-Date: Mon Dec 8 13:19:20 2014 -0800
-
- Merge pull request #3010 from dachary/wip-10018-primary-erasure-code-hinfo-giant
-
- osd: deep scrub must not abort if hinfo is missing (giant)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 247a6fac54854e92a7df0e651e248a262d3efa05
-Merge: 3372060 309fd5f
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Dec 8 12:36:48 2014 -0800
-
- Merge pull request #3110 from ceph/giant-10263
-
- mds: store backtrace for straydir
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 309fd5f56ef5ea76ffd525fdde6e6fbbc9ef6ef1
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Nov 7 11:38:37 2014 +0800
-
- mds: store backtrace for straydir
-
- Backport: giant, firefly, emperor, dumpling
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0d89db5d3e5ae5d552d4058a88a4e186748ab1d2)
-
-commit 3372060894a1da0adef6d36380a131902ca05c5f
-Merge: 1f00420 bff6747
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Dec 6 11:06:20 2014 -0800
-
- Merge pull request #3088 from dachary/wip-10063-hobject-shard-giant
-
- common: do not omit shard when ghobject NO_GEN is set (giant)
-
-commit 1f004209434570337a3f90d7f89741f80dcc7075
-Merge: 3b65226 1ec557c
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 17:33:12 2014 -0800
-
- Merge pull request #3095 from dachary/wip-9785-dmcrypt-keys-permissions-giant
-
- ceph-disk: dmcrypt file permissions (giant)
-
-commit 3b65226df806958f6a2f24df6099ee3a86d2a71f
-Merge: 691f011 36c7484
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 17:30:31 2014 -0800
-
- Merge pull request #3006 from dachary/wip-9420-erasure-code-non-regression-giant
-
- erasure-code: store and compare encoded contents (giant)
-
-commit 1ec557c0eab94cb898ad3f5448482bd7afc53e09
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Dec 4 22:21:32 2014 +0100
-
- ceph-disk: dmcrypt file permissions
-
- The directory in which key files are stored for dmcrypt must be 700 and
- the file 600.
-
- http://tracker.ceph.com/issues/9785 Fixes: #9785
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 58682d1776ab1fd4daddd887d921ca9cc312bf50)
-
-commit 691f0118ecd051d5f3f61fc696280e3c482de3de
-Merge: 81295c5 dabf6f5
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 5 09:03:54 2014 -0800
-
- Merge pull request #3085 from dachary/wip-10125-radosgw-init-giant
-
- rgw: run radosgw as apache with systemd (giant)
-
-commit bff67475c775914237604ed3374c8ccfe74d0ffd
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Nov 14 01:16:10 2014 +0100
-
- common: do not omit shard when ghobject NO_GEN is set
-
- Do not silence the display of shard_id when generation is NO_GEN.
- Erasure coded objects JSON representation used by ceph_objectstore_tool
- need the shard_id to find the file containing the chunk.
-
- Minimal testing is added to ceph_objectstore_tool.py
-
- http://tracker.ceph.com/issues/10063 Fixes: #10063
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit dcf09aed121f566221f539106d10283a09f15cf5)
-
-commit dabf6f5f43b53a588bd9fa0cc5aa617ae8128735
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 2 18:10:48 2014 +0100
-
- rgw: run radosgw as apache with systemd
-
- Same as sysv.
-
- http://tracker.ceph.com/issues/10125 Fixes: #10125
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7b621f4abf63456272dec3449aa108c89504a7a5)
-
- Conflicts:
- src/init-radosgw.sysv
-
-commit 81295c5ad2befced2e308c1cfb4e036cd5a825a9
-Merge: 8046359 3ff94ed
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Dec 4 11:32:01 2014 -0800
-
- Merge pull request #3077 from ceph/wip-10030-giant
-
- librbd: don't close an already closed parent image upon failure
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ad04a677cefc1f0a02fbff0c68409fda6874fdc7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 2 00:59:08 2014 +0100
-
- common: add bufferlist::rebuild_aligned_size_and_memory
-
- The function bufferlist::rebuild_aligned checks memory and size
- alignment with the same variable. It is however useful to separate
- memory alignment constraints from size alignment constraints. For
- instance rebuild_aligned could be called to allocate an erasure coded
- buffer where each 2048 bytes chunk needs to start on a memory address
- aligned on 32 bytes.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 9ade88e8dacc9b96c042bb668f4452447139a544)
-
-commit cc469b238f42ce989d0efa49154b95612e3d4111
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 2 01:07:34 2014 +0100
-
- erasure-code: enforce chunk size alignment
-
- Let say the ErasureCode::encode function is given a 4096 bytes
- bufferlist made of a 1249 bytes bufferptr followed by a 2847 bytes
- bufferptr, both properly starting on SIMD_ALIGN address. As a result the
- second 2048 had to be reallocated when bufferlist::substr_of gets the
- second 2048 buffer, the address starts at 799 bytes after the beginning
- of the 2847 buffer ptr and is not SIMD_ALIGN'ed.
-
- The ErasureCode::encode must enforce a size alignment based on the chunk
- size in addition to the memory alignment required by SIMD operations,
- using the bufferlist::rebuild_aligned_size_and_memory function instead of
- bufferlist::rebuild_aligned.
-
- http://tracker.ceph.com/issues/10211 Fixes: #10211
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 4e955f41297283798236c505c3d21bdcabb5caa0)
-
-commit 5205d4dacf7ebe2e42d2294bc30cb27f226c8d22
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 2 02:04:14 2014 +0100
-
- common: allow size alignment that is not a power of two
-
- Do not assume the alignment is a power of two in the is_n_align_sized()
- predicate. When used in the context of erasure code it is common
- for chunks to not be powers of two.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 73ad2d63d479b09037d50246106bbd4075fbce80)
-
-commit 80463596919d28f58010d16ad017b3c5ae6e558c
-Merge: 26e8cf1 3dc6298
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 3 23:02:43 2014 -0800
-
- Merge pull request #3062 from ceph/wip-10123-giant
-
- librbd: protect list_children from invalid child pool IoCtxs
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 26e8cf174b8e76b4282ce9d9c1af6ff12f5565a9
-Merge: aac7946 7cd8c3f
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed Dec 3 06:44:56 2014 -0800
-
- Merge pull request #3055 from ceph/wip-10135-giant
-
- mon: OSDMonitor: allow adding tiers to FS pools
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7cd8c3f8a5afa9481b6f6a78d5fb8c04784ef4ca (refs/remotes/gh/wip-10135-giant)
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Nov 25 16:54:42 2014 +0000
-
- mon: OSDMonitor: allow adding tiers to FS pools
-
- This was an overly-strict check. In fact it is perfectly
- fine to set an overlay on a pool that is already in use
- as a filesystem data or metadata pool.
-
- Fixes: #10135
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 17b5fc9a40440e76dd1fa64f7fc19577ae3b58ce)
-
-commit 3ff94ed73ff27af2c8ea215ab693d815e285a27f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Nov 6 05:01:38 2014 -0500
-
- librbd: don't close an already closed parent image upon failure
-
- If librbd is not able to open a child's parent image, it will
- incorrectly close the parent image twice, resulting in a crash.
-
- Fixes: #10030
- Backport: firefly, giant
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 61ebfebd59b61ffdc203dfeca01ee1a02315133e)
-
-commit aac794616580ed0bb00608c5867199b12d4e1d94
-Merge: 65f6814 c8b46d6
-Author: John Spray <jcspray@gmail.com>
-Date: Tue Dec 2 11:35:59 2014 +0000
-
- Merge pull request #2990 from ceph/wip-10151-giant
-
- mon: fix MDS health status from peons
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 3dc629822adeee961d78208b46b9bd7ef1200890
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 17 21:49:26 2014 -0500
-
- librbd: protect list_children from invalid child pool IoCtxs
-
- While listing child images, don't ignore error codes returned
- from librados when creating an IoCtx. This will prevent seg
- faults from occurring when an invalid IoCtx is used.
-
- Fixes: #10123
- Backport: giant, firefly, dumpling
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0d350b6817d7905908a4e432cd359ca1d36bab50)
-
-commit 65f6814847fe8644f5d77a9021fbf13043b76dbe
-Merge: 28e2708 9158326
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Dec 1 17:59:19 2014 -0800
-
- Merge pull request #3047 from ceph/wip-10011-giant
-
- osdc: fix Journaler write error handling [giant backport]
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 9158326eeb69312283a6e8174352f36ea30d0cbf
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Nov 6 11:46:29 2014 +0000
-
- osdc: fix Journaler write error handling
-
- Since we started wrapping the write error
- handler in a finisher, multiple calls to
- handle_write_error would hit the assert()
- on the second call before the actual
- handler had been called (at the other end
- of the finisher) from the first call.
-
- The symptom was that the MDS was intermittently
- failing to respawn on blacklist, seen in #10011.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 762eda88a18ba707bd5410f38e21e95c4a6b3a46)
-
-commit 28e27080e25f95851039a0cc4e1c1d06b2cd597d
-Merge: 37ffccb cb1d681
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Nov 25 21:18:59 2014 -0800
-
- Merge pull request #3005 from dachary/wip-9665-ceph-disk-partprobe-giant
-
- ceph disk zap must call partprobe
-
-commit e7faed5d903cf7681d77a6af53cf8137eeb2fc69
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Nov 6 17:11:20 2014 +0100
-
- osd: deep scrub must not abort if hinfo is missing
-
- Instead it should set read_error.
-
- http://tracker.ceph.com/issues/10018 Fixes: #10018
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 9d84d2e8309d26e39ca849a75166d2d7f2dec9ea)
-
-commit 36c7484c18fd072ba2f7b176403414dd32fbe92b
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Sep 25 14:46:07 2014 +0200
-
- erasure-code: erasure_code_benchmark exhaustive erasure exploration
-
- Add the --erasure-generation exhaustive flag to try all combinations of
- erasures, not just one at random.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 2d7adb23bc52e7c0753f4571fecd8eefa209ef02)
-
- Conflicts:
- src/test/erasure-code/ceph_erasure_code_benchmark.h
-
-commit 32daa9b0f4d39f8a49512b18d5c19437aca5fec6
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Mon Sep 29 11:17:13 2014 +0200
-
- erasure-code: add erasure_code_benchmark --verbose
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 3ff2816b3eecfb7277295583387549dac5429628)
-
- Conflicts:
- src/test/erasure-code/ceph_erasure_code_benchmark.cc
- src/test/erasure-code/ceph_erasure_code_benchmark.h
-
-commit da9a7f07787d7f8c20b0c3e7a53fcaf95ed7ca20
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Sep 23 14:37:57 2014 +0200
-
- erasure_code: implement ceph_erasure_code to assert the existence of a plugin
-
- This is handy when scripting in the context of teuthology and only
- conditionally run tests for the isa plugin, for instance.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit efe121d9f2028c312eef2650d32ccf0cbc828edb)
-
-commit c855f3958fb8c10bd824075c1739f40799f6d74b
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Sep 23 14:36:08 2014 +0200
-
- erasure-code: ceph_erasure_code does not need to avoid dlclose
-
- The only reason for not dlclosing plugins at exit is for callgrind but
- ceph_erasure_code has no workload that would require callgrind.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 49613cb2aab6e73e3ea50fa164735b55e80121cd)
-
-commit ba8ceb1f067e0f9f6419358435ed0008b61fa438
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Tue Sep 23 11:38:09 2014 +0200
-
- erasure-code: add corpus verification to make check
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 6fdbdff2ad1b55d4a37dcb95cfbb06c4454cdaf2)
-
-commit ca4c2702139cc7fd8f2e3fa2ee5cda4094ecad79
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 12:58:27 2014 +0200
-
- erasure-code: Makefile.am cosmetics
-
- Cluster benchmark related lines together.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 10c88c8f27080a8e25f128b7065cee5c2f68e91b)
-
-commit 208a5ee1c9975adaa8b09b1bf541aff0d8551c63
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 12:55:26 2014 +0200
-
- erasure-code: s/alignement/alignment/ typos in jerasure
-
- The jerasure-per-chunk-alignment prameter was mispelled and while
- useable that would lead to confusion.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 2c84d0b1db57d918840e669a17bbd8c5ddca9747)
-
-commit 1def82d530965bd0441e4f7f6aa032666984f17d
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 13:36:09 2014 +0200
-
- erasure-code: workunit to check for encoding regression
-
- Clone the archive of encoded objects and decode all archived objects, up
- to and including the current ceph version.
-
- http://tracker.ceph.com/issues/9420 Refs: #9420
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 7638b15f23976c3265cf766e16cf93af1a7e0091)
-
-commit 1b7fc7e49e6edf0d0f7d1d6d9f9447c42067d8b8
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Sat Sep 13 10:16:31 2014 +0200
-
- erasure-code: store and compare encoded contents
-
- Introduce ceph_erasure_code_non_regression to check and compare how an
- erasure code plugin encodes and decodes content with a given set of
- parameters. For instance:
-
- ./ceph_erasure_code_non_regression \
- --plugin jerasure \
- --parameter technique=reed_sol_van \
- --parameter k=2 \
- --parameter m=2 \
- --stripe-width 3181 \
- --create \
- --check
-
- Will create an encoded object (--create) and store it into a directory
- along with the chunks, one chunk per file. The directory name is derived
- from the parameters. The content of the object is a random pattern of 31
- bytes repeated to fill the object size specified with --stripe-width.
-
- The check function (--check) reads the object back from the file,
- encodes it and compares the result with the content of the chunks read
- from the files. It also attempts recover from one or two erasures.
-
- Chunks encoded by a given version of Ceph are expected to be encoded
- exactly in the same way by all Ceph versions going forward.
-
- http://tracker.ceph.com/issues/9420 Refs: #9420
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit f5901303dbf50e9d08f2f1e510a1936a20037909)
-
-commit cb1d68113477cf9c2028a65372d2d4a3e6a8bdc1
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Oct 9 18:52:17 2014 +0200
-
- ceph-disk: run partprobe after zap
-
- Not running partprobe after zapping a device can lead to the following:
-
- * ceph-disk prepare /dev/loop2
- * links are created in /dev/disk/by-partuuid
- * ceph-disk zap /dev/loop2
- * links are not removed from /dev/disk/by-partuuid
- * ceph-disk prepare /dev/loop2
- * some links are not created in /dev/disk/by-partuuid
-
- This is assuming there is a bug in the way udev events are handled by
- the operating system.
-
- http://tracker.ceph.com/issues/9665 Fixes: #9665
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit fed3b06c47a5ef22cb3514c7647544120086d1e7)
-
-commit d9c04b880d8bf867aa454132117119be5bd550ad
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 10 10:26:31 2014 +0200
-
- ceph-disk: use update_partition in prepare_dev and main_prepare
-
- In the case of prepare_dev the partx alternative was missing and is not
- added because update_partition does it.
-
- http://tracker.ceph.com/issues/9721 Fixes: #9721
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 23e71b1ee816c0ec8bd65891998657c46e364fbe)
-
-commit 5c9cd3c2a292ae540fd0a487defaf4d712e41e62
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 10 10:23:34 2014 +0200
-
- ceph-disk: encapsulate partprobe / partx calls
-
- Add the update_partition function to reduce code duplication.
- The action is made an argument although it always is -a because it will
- be -d when deleting a partition.
-
- Use the update_partition function in prepare_journal_dev
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 922a15ea6865ef915bbdec2597433da6792c1cb2)
-
-commit c8b46d68c71f66d4abbda1230741cc4c7284193b
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Nov 24 11:00:25 2014 +0000
-
- mon: fix MDS health status from peons
-
- The health data was there, but we were attempting
- to enumerate MDS GIDs from pending_mdsmap (empty on
- peons) instead of mdsmap (populated from paxos updates)
-
- Fixes: #10151
- Backport: giant
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 0c33930e3a90f3873b7c7b18ff70dec2894fce29)
-
- Conflicts:
- src/mon/MDSMonitor.cc
-
-commit 37ffccbd57e7e441e0eb1499e5c173aa9c375d35
-Merge: b13a56a 65c5657
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Nov 20 13:13:33 2014 -0800
-
- Merge pull request #2975 from ceph/wip-9936-giant
-
- rbd: Fix the rbd export when image size more than 2G
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit b13a56afe99c091600392a2fc15befa9438d59c9
-Merge: 828c1a2 46bd344
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Wed Nov 19 02:40:47 2014 +0100
-
- Merge pull request #2963 from ceph/wip-10114-giant
-
- Wip 10114 giant
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 828c1a2bcd81a49264f8a81ca7f1070169037820
-Merge: ccfd241 6cb9a24
-Author: David Zafman <david.zafman@inktank.com>
-Date: Tue Nov 18 15:48:16 2014 -0800
-
- Merge pull request #2958 from ceph/wip-10128-giant
-
- ceph_objectstore_tool: When exporting to stdout, don't cout messages
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 46bd3441b00c22ba78f04617fd77f0231ccc698d
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Tue Nov 18 15:21:30 2014 -0800
-
- erasure-code isa-l: remove duplicated lines (fix warning)
-
- 06a245a added a section def to assembly files; I added it twice to
- this file. There's no damage, but a compiler warning (on machines with
- yasm installed)
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 10f6ef185a9d09e396e94036ec90bfe8a0738ce9)
-
-commit 1bba3887038aade137a808d751561cc02002f4bf
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Fri Nov 14 17:59:57 2014 -0800
-
- Add annotation to all assembly files to turn off stack-execute bit
-
- See discussion in http://tracker.ceph.com/issues/10114
-
- Building with these changes allows output from readelf like this:
-
- $ readelf -lW src/.libs/librados.so.2 | grep GNU_STACK
- GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000
- 0x000000 RW 0x8
-
- (note the absence of 'X' in 'RW')
-
- Fixes: #10114
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 06a245a9845c0c126fb3106b41b2fd2bc4bc4df3)
-
-commit 6cb9a2499cac2645e2cc6903ab29dfd95aac26c7
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Nov 17 23:02:50 2014 -0800
-
- ceph_objectstore_tool: When exporting to stdout, don't cout messages
-
- Fixes: #10128
- Caused by a2bd2aa7
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0d5262ac2f69ed3996af76a72894b1722a27b37d)
-
-commit 13bb880b2a04ab354506eb183d2907b9054bf937
-Author: Sebastien Ponce <sebastien.ponce@cern.ch>
-Date: Tue Nov 18 10:30:36 2014 +0100
-
- Fixed locking issue in the trun method of libradosstriper leading to potential race conditions - Fixes: #10129
-
- Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
- (cherry picked from commit 8613984373de946e1815cc84d50bbd4437a3f7a7)
-
-commit 65c565701eb6851f4ed4d2dbc1c7136dfaad6bcb
-Author: Vicente Cheng <freeze.bilsted@gmail.com>
-Date: Wed Oct 29 12:21:11 2014 +0800
-
- rbd: Fix the rbd export when image size more than 2G
-
- When using export <image-name> <path> and the size of image is more
- than 2G, the previous version about finish() could not handle in
- seeking the offset in image and return error.
-
- This is caused by the incorrect variable type. Try to use the correct
- variable type to fixed it.
-
- I use another variable which type is uint64_t for confirming seeking
- and still use the previous r for return error.
-
- uint64_t is more better than type int for handle lseek64().
-
- Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
- (cherry picked from commit 4b87a81c86db06f6fe2bee440c65fc05cd4c23ce)
-
-commit ccfd2414c68afda55bf4cefa2441ea6d53d87cc6
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 12 17:11:10 2014 -0800
-
- osd/OSD: use OSDMap helper to determine if we are correct op target
-
- Use the new helper. This fixes our behavior for EC pools where targetting
- a different shard is not correct, while for replicated pools it may be. In
- the EC case, it leaves the op hanging indefinitely in the OpTracker because
- the pgid exists but as a different shard.
-
- Fixes: #9835
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9e05ba086a36ae9a04b347153b685c2b8adac2c3)
-
-commit 963947718a954f63f351ce4034bf97380421ab7c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 12 17:04:35 2014 -0800
-
- osd/OSDMap: add osd_is_valid_op_target()
-
- Helper to check whether an osd is a given op target for a pg. This
- assumes that for EC we always send ops to the primary, while for
- replicated we may target any replica.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 89c02637914ac7332e9dbdbfefc2049b2b6c127d)
-
-commit 0cb32c157c6c11b26607521a20c6f320c5170516
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Tue Nov 11 18:16:02 2014 -0800
-
- qa: allow small allocation diffs for exported rbds
-
- The local filesytem may behave slightly differently. This isn't
- foolproof, but seems to be reliable enough on rhel7 rootfs, where
- exact comparison was failing.
-
- Fixes: #10002
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e94d3c11edb9c9cbcf108463fdff8404df79be33)
-
-commit fe705c8fdef2371d3f5b11eb73f87a0cf6ef0f9e
-Author: Adam Crume <adamcrume@gmail.com>
-Date: Thu Sep 18 16:57:27 2014 -0700
-
- common: Add cctid meta variable
-
- Fixes: #6228
- Signed-off-by: Adam Crume <adamcrume@gmail.com>
- (cherry picked from commit bb45621cb117131707a85154292a3b3cdd1c662a)
-
-commit 5fc659a0d52094a4c595ca8b33b407ecdefc180a
-Merge: b27f5db a6c02a1
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Nov 11 08:28:19 2014 -0800
-
- Merge pull request #2804 from ceph/wip-9301-giant
-
- mon: backport paxos off-by-one bug (9301) to giant
-
-commit b27f5dba8677ca48c9819980e3c90b76f5f04267
-Merge: 97e423f fc5354d
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Nov 10 22:41:19 2014 -0800
-
- Merge pull request #2887 from ceph/wip-9977-backport
-
- tools: skip up to expire_pos in journal-tool
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 97e423f52155e2902bf265bac0b1b9ed137f8aa0
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Thu Sep 11 09:36:44 2014 +0800
-
- client: trim unused inodes before reconnecting to recovering MDS
-
- So the recovering MDS does not need to fetch these ununsed inodes during
- cache rejoin. This may reduce MDS recovery time.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 2bd7ceeff53ad0f49d5825b6e7f378683616dffb)
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 387efc5fe1fb148ec135a6d8585a3b8f8d97dbf8
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Oct 27 12:02:17 2014 +0000
-
- client: allow xattr caps in inject_release_failure
-
- Because some test environments generate spurious
- rmxattr operations, allow the client to release
- 'X' caps. Allows xattr operations to proceed
- while still preventing client releasing other caps.
-
- Fixes: #9800
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 5691c68a0a44eb2cdf0afb3f39a540f5d42a5c0c)
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit fc5354dec55248724f8f6b795e3a96882c33b490 (refs/remotes/gh/wip-9977-backport)
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Nov 3 19:19:45 2014 +0000
-
- tools: skip up to expire_pos in journal-tool
-
- Previously worked for journals starting from an
- object boundary (i.e. freshly created filesystems)
-
- Fixes: #9977
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 65c33503c83ff8d88781c5c3ae81d88d84c8b3e4)
-
- Conflicts:
- src/tools/cephfs/JournalScanner.cc
-
-commit 9680613141b3eef62f35a6728e654efa5f6ba8e8
-Merge: fd4363d a5984ba
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Fri Nov 7 16:26:54 2014 -0800
-
- Merge pull request #2876 from ceph/giant-readdir-fix
-
- Giant readdir fix
-
-commit fd4363d1bd49f73e1b3c22516686c7b7e1745b57
-Merge: f66bf31 7166ff8
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Fri Nov 7 14:10:40 2014 -0800
-
- Merge pull request #2879 from ceph/wip-10025-giant
-
- #10025/giant -- tools: fix MDS journal import
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7166ff83f6343d31d52a58363e2767434554505c
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Nov 7 11:34:43 2014 +0000
-
- tools: fix MDS journal import
-
- Previously it only worked on fresh filesystems which
- hadn't been trimmed yet, and resulted in an invalid
- trimmed_pos when expire_pos wasn't on an object
- boundary.
-
- Fixes: #10025
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit fb29e71f9a97c12354045ad2e128156e503be696)
-
-commit a5984ba34cb684dae623df22e338f350c8765ba5
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Oct 27 13:57:16 2014 -0700
-
- client: fix I_COMPLETE_ORDERED checking
-
- Current code marks a directory inode as complete and ordered when readdir
- finishes, but it does not check if the directory was modified in the middle
- of readdir. This is wrong, directory inode should not be marked as ordered
- if it was modified during readddir
-
- The fix is introduce a new counter to the inode data struct, we increase
- the counter each time the directory is modified. When readdir finishes, we
- check the counter to decide if the directory should be marked as ordered.
-
- Fixes: #9894
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a4caed8a53d011b214ab516090676641f7c4699d)
-
-commit b5ff4e99c87958211e4b7716b59084fc3417ec17
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Tue Sep 9 17:34:46 2014 +0800
-
- client: preserve ordering of readdir result in cache
-
- Preserve ordering of readdir result in a list, so that the result of cached
- readdir is consistant with uncached readdir.
-
- As a side effect, this commit also removes the code that removes stale dentries.
- This is OK because stale dentries does not have valid lease, they will be
- filter out by the shared gen check in Client::_readdir_cache_cb()
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 346c06c1647658768e927a47768a0bc74de17b53)
-
-commit 0671c1127015311d9894f15e2493805f93432910
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Tue Sep 9 14:06:06 2014 +0800
-
- client: introduce a new flag indicating if dentries in directory are sorted
-
- When creating a file, Client::insert_dentry_inode() set the dentry's offset
- based on directory's max offset. The offset does not reflect the real
- postion of the dentry in directory. Later readdir reply from real postion
- of the dentry in directory. Later readdir reply from MDS may change the
- dentry's position/offset. This inconsistency can cause missing/duplicate
- entries in readdir result if readdir is partly satisfied by dcache_readdir().
-
- The fix is introduce a new flag indicating if dentries in directory are
- sorted. We use _readdir_cache_cb() to handle readdir only when the flag is
- set, clear the flag after creating/deleting/renaming file.
-
- Fixes: #9178
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 600af25493947871c38214aa370e2544a7fea399)
-
-commit f66bf31b6743246fb1c88238cf18101238dee3a4
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Nov 6 17:48:01 2014 -0800
-
- qa: use sudo even more when rsyncing /usr
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 3aa7797741f9cff06053a2f31550fe6929039692)
-
-commit f7ec448d6579f965eec184416a97b47ae27ab47a
-Merge: f410d76 f111bc8
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Wed Nov 5 08:51:18 2014 +0100
-
- Merge pull request #2858 from ceph/wip-9909
-
- tools: rados put /dev/null should write() and not create()
-
- Reviewed-by: Loic Dachary <loic-201408@dachary.org>
-
-commit f111bc8eac8a521b13340f4a75418d839725e010
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Thu Oct 2 09:23:55 2014 +0200
-
- tools: rados put /dev/null should write() and not create()
-
- In the rados.cc special case to handle put an empty objects, use
- write_full() instead of create().
-
- A special case was introduced 6843a0b81f10125842c90bc63eccc4fd873b58f2
- to create() an object if the rados put file is empty. Prior to this fix
- an attempt to rados put an empty file was a noop. The problem with this
- fix is that it is not idempotent. rados put an empty file twice would
- fail the second time and rados put a file with one byte would succeed as
- expected.
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit 50e80407f3c2f74d77ba876d01e7313c3544ea4d)
-
-commit f410d764d2e6795389cb320b4436cff3607927bd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 9 10:20:27 2014 -0700
-
- rgw: set length for keystone token validation request
-
- Fixes: #7796
- Backport: giany, firefly
- Need to set content length to this request, as the server might not
- handle a chunked request (even though we don't send anything).
-
- Tested-by: Mark Kirkwood <mark.kirkwood@catalyst.net.nz>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 3dd4ccad7fe97fc16a3ee4130549b48600bc485c)
-
-commit dba7defc623474ad17263c9fccfec60fe7a439f0
-Merge: 6a201f8 e0b0441
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 31 08:35:42 2014 -0700
-
- Merge pull request #2846 from dachary/wip-9752-past-intervals-giant
-
- osd: past_interval display bug on acting
-
-commit e0b04414b92018277a0d3b9d82e72ea7529f4ef5
-Author: Loic Dachary <loic-201408@dachary.org>
-Date: Fri Oct 31 00:49:21 2014 +0100
-
- osd: past_interval display bug on acting
-
- The acting array was incorrectly including the primary and up_primary.
-
- http://tracker.ceph.com/issues/9752 Fixes: #9752
-
- Signed-off-by: Loic Dachary <loic-201408@dachary.org>
- (cherry picked from commit c5f8d6eded52da451fdd1d807bd4700221e4c41c)
-
-commit 6a201f89b1aa6c2197383c29919cdeb4a8353d1b
-Merge: ebe1637 905aba2
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Thu Oct 30 17:01:12 2014 -0700
-
- Merge pull request #2841 from ceph/giant-9869
-
- Backport "client: cast m->get_client_tid() to compare to 16-bit Inode::flushing_cap_tid"
-
-commit 905aba2f3d847933f98124f3ea8d1d76d644edb4
-Author: Greg Farnum <greg@inktank.com>
-Date: Wed Oct 22 17:16:31 2014 -0700
-
- client: cast m->get_client_tid() to compare to 16-bit Inode::flushing_cap_tid
-
- m->get_client_tid() is 64 bits (as it should be), but Inode::flushing_cap_tid
- is only 16 bits. 16 bits should be plenty to let the cap flush updates
- pipeline appropriately, but we need to cast in the proper direction when
- comparing these differently-sized versions. So downcast the 64-bit one
- to 16 bits.
-
- Fixes: #9869
- Backport: giant, firefly, dumpling
-
- Signed-off-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit a5184cf46a6e867287e24aeb731634828467cd98)
-
-commit ebe16373e966917ca8cb03ebeac974bdff7b7685
-Merge: c51c8f9 b704f0d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 30 10:05:22 2014 -0700
-
- Merge pull request #2838 from ceph/wip-9945-giant
-
- messages: fix COMPAT_VERSION on MClientSession
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit b704f0dd888aacb10c32cdb63cdbf9f06296fc18
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Oct 30 16:43:21 2014 +0000
-
- messages: fix COMPAT_VERSION on MClientSession
-
- This was incorrectly incremented to 2 by omission
- of an explicit COMPAT_VERSION value.
-
- Fixes: #9945
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 1eb9bcb1d36014293efc687b4331be8c4d208d8e)
-
-commit a6c02a18d6249ea62cf7a74710c8d0192b6eecaa
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 18 14:23:36 2014 -0700
-
- mon: re-bootstrap if we get probed by a mon that is way ahead
-
- During bootstrap we verify that our paxos commits overlap with the other
- mons we will form a quorum with. If they do not, we do a sync.
-
- However, it is possible we pass those checks, then fail to join a quorum
- before the quorum moves ahead in time such that we no longer overlap.
- Currently nothing kicks up back into a probing state to discover we need
- to sync... we will just keep trying to call or join an election instead.
-
- Fix this by jumping back to bootstrap if we get a probe that is ahead of
- us. Only do this from non probe or sync states as these will be common;
- it is only the active and electing states that matter (and probably just
- electing!).
-
- Fixes: #9301
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c421b55e8e15ef04ca8aeb47f7d090375eaa8573)
-
-commit 92d2a38efd458f9e8f4da228ea1e94df08dc8222
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 18 14:11:24 2014 -0700
-
- mon/Paxos: fix off-by-one in last_ vs first_committed check
-
- peon last_committed + 1 == leader first_committed is okay. Note that the
- other check (where I clean up whitespace) gets this correct.
-
- Fixes: #9301 (partly)
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d81cd7f86695185dce31df76c33c9a02123f0e4a)
diff --git a/src/ceph/doc/changelog/v0.87.2.txt b/src/ceph/doc/changelog/v0.87.2.txt
deleted file mode 100644
index 98cf117..0000000
--- a/src/ceph/doc/changelog/v0.87.2.txt
+++ /dev/null
@@ -1,1413 +0,0 @@
-commit 87a7cec9ab11c677de2ab23a7668a77d2f5b955e (tag: refs/tags/v0.87.2, refs/remotes/gh/giant)
-Author: Jenkins <jenkins@inktank.com>
-Date: Fri Apr 24 12:31:27 2015 -0700
-
- 0.87.2
-
-commit c1301e84aee0f399db85e2d37818a66147a0ce78
-Merge: 1a13e10 9e9c3c6
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Apr 7 21:08:24 2015 +0200
-
- Merge pull request #4214 from dachary/wip-10430-giant
-
- osd/osd_types.cc: 456: FAILED assert(m_seed < old_pg_num)
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 1a13e1065829c59987c2f57a13eaa03de31df4ed
-Merge: 1fb08d3 5f4e62f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Apr 7 16:39:28 2015 +0200
-
- Merge pull request #4258 from ceph/wip-10643-v2
-
- mon: MDSMonitor: additional backports for #10643
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1fb08d3066b14b178a8912ffb3c9f50d2333738c
-Merge: 90b37d9 7684ee2
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Apr 2 08:55:48 2015 -0700
-
- Merge pull request #4261 from ceph/wip-11303-giant
-
- allow -L to disable lttng. Enable it by default
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 7684ee25ac21810153a44bdc4fc00b36e39eb12f
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Thu Apr 2 10:34:02 2015 -0400
-
- allow -L to disable lttng. Enable it by default
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
-
-commit 5f4e62f382767ee69e5b0c701b1a01d9e4132237
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Oct 17 19:08:20 2014 +0100
-
- mon: MDSMonitor: wait for osdmon to be writable when requesting proposal
-
- Otherwise we may end up requesting the osdmon to propose while it is
- mid-proposal. We can't simply return EAGAIN to the user either because
- then we would have to expect the user to be able to successfully race
- with the whole cluster in finding a window in which 'mds fs new' command
- would succeed -- which is not a realistic expectation. Having the
- command to osdmon()->wait_for_writable() guarantees that the command
- will be added to a queue and that we will, eventually, tend to it.
-
- Fixes: #9794
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 2ae1cba595d9c56a0a4c534b34fe25250e7eb2d5)
-
-commit 257bd17db6470ca050403b1c8ff8daa94a4b80b5
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Oct 17 18:59:51 2014 +0100
-
- mon: MDSMonitor: have management_command() returning int instead of bool
-
- We can more easily differentiate between errors we get out of this
- function, which makes the code a bit more versatile and readable.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 0dd473cbad4f9ea403fe60badffdc6da4dd3aa3c)
-
-commit 9e9c3c652339d85863af01cac621228f04eb4f18
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Oct 9 11:20:13 2014 -0700
-
- osd: Get pgid ancestor from last_map when building past intervals
-
- Fixed OSD::build_past_intervals_parallel() and PG::generate_past_intervals()
-
- Fixes: #10430
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0c5b66da7a9ba516340d06d9e806beb9d1040d0e)
-
-commit 90b37d9bdcc044e26f978632cd68f19ece82d19a
-Merge: 2ccbc14 9f1f355
-Author: Loic Dachary <loic-redhat@dachary.org>
-Date: Thu Mar 26 07:58:14 2015 +0100
-
- Merge pull request #4175 from wonzhq/objecter-timer-2
-
- Objecter: failed assert(tick_event==NULL) at osdc/Objecter.cc
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 9f1f35546e00e8f1ecbce0697d59b64f3537facf
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Wed Mar 25 16:32:44 2015 +0800
-
- Objecter: failed assert(tick_event==NULL) at osdc/Objecter.cc
-
- When the Objecter timer erases the tick_event from its events queue and
- calls tick() to dispatch it, if the Objecter::rwlock is held by shutdown(),
- it waits there to get the rwlock. However, inside the shutdown function,
- it checks the tick_event and tries to cancel it. The cancel_event function
- returns false since tick_event is already removed from the events queue. Thus
- tick_event is not set to NULL in shutdown(). Later the tick function return
- ealier and doesn't set tick_event to NULL as well. This leads to the assertion
- failure.
-
- This is a regression introduced by an incorrect conflict resolution when
- d790833 was backported.
-
- Fixes: #11183
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
-
-commit 2ccbc14d17b54ea4fd4126cb04a7b83cd64c7f1e
-Merge: 02f9cdb de4b087
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 23 20:39:26 2015 +0100
-
- Merge pull request #4127 from dzafman/wip-11176-giant
-
- ceph-objectstore-tool: Output only unsupported features when incomatible
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 02f9cdbf889071ca6fe3811d9b9a92a0b630fa55
-Merge: 83bcc51 fc43d8c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:11:46 2015 +0100
-
- Merge pull request #4097 from dachary/wip-10497-giant
-
- librados: c api does not translate op flag
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 83bcc516743e426c7a8c6f6401721bffbbec4fc0
-Merge: ebab2bd d790833
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:11:26 2015 +0100
-
- Merge pull request #4096 from dachary/wip-9617-giant
-
- objecter shutdown races with msg dispatch
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit ebab2bd5f36205d666673600624aaa3e5e06c405
-Merge: e31c92d 970a797
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:11:03 2015 +0100
-
- Merge pull request #4095 from dachary/wip-9675-giant
-
- splitting a pool doesn't start when rule_id != ruleset_id
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit e31c92d8dd814d276357e431ed87b93d75933f77
-Merge: f0ec5e3 7653511
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:10:42 2015 +0100
-
- Merge pull request #4094 from dachary/wip-9891-giant
-
- Assertion: os/DBObjectMap.cc: 1214: FAILED assert(0)
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit f0ec5e3b3ed58af65323bcc494e589935147aa45
-Merge: dd7c15b 13b0147
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:10:25 2015 +0100
-
- Merge pull request #4093 from dachary/wip-9915-giant
-
- osd: eviction logic reversed
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit dd7c15b2b24027a7cc5fa4bff21222c5a4606e60
-Merge: 33b09e1 13b8364
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:09:28 2015 +0100
-
- Merge pull request #4092 from dachary/wip-9985-giant
-
- osd: incorrect atime calculation
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 33b09e18aa78252d94cbec8bf94ec97ed5bb1573
-Merge: 950123e 5550cdd
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:08:41 2015 +0100
-
- Merge pull request #4091 from dachary/wip-9986-giant
-
- objecter: map epoch skipping broken
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 950123e4daa85562b2f52e0e12e0bae07f444095
-Merge: abdc065 21f81b8
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:08:16 2015 +0100
-
- Merge pull request #4090 from dachary/wip-10059-giant
-
- osd/ECBackend.cc: 876: FAILED assert(0)
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit abdc065acd6cafa6439e9c1724cc87de02352bd7
-Merge: aee2825 1ccf583
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:07:52 2015 +0100
-
- Merge pull request #4089 from dachary/wip-10080-giant
-
- Pipe::connect() cause osd crash when osd reconnect to its peer
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit aee28250fee66bca08d91e56ce47ec46c2e9fc24
-Merge: 6582253 3e875ab
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:07:20 2015 +0100
-
- Merge pull request #4088 from dachary/wip-6003-giant
-
- journal Unable to read past sequence 406 ...
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 65822530ebfdea2feb9192c6eb6e3b8b9d60fe33
-Merge: 4b20f2d 96a5c67
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:06:51 2015 +0100
-
- Merge pull request #4082 from dachary/wip-10106-giant
-
- rgw acl response should start with <?xml version=1.0 ?>
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 4b20f2d2d1ee52deed33617f000fa342ebce2e49
-Merge: 7ff3a67 c7b02f5
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:06:23 2015 +0100
-
- Merge pull request #4078 from dachary/wip-11157-giant
-
- doc,tests: force checkout of submodules
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 7ff3a67c44ba3dc20a663a7dc6ba28c25714f063
-Merge: 440e706 4d4eb9f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:05:20 2015 +0100
-
- Merge pull request #4077 from dachary/wip-10150-giant
-
- osd/ReplicatedPG.cc: 10853: FAILED assert(r >= 0) (in _scan_range)
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 440e70607e7e3cd1d8ca33843c626109431caf8d
-Merge: 66f639b 499d94f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:04:51 2015 +0100
-
- Merge pull request #4076 from dachary/wip-10153-giant
-
- Rados.shutdown() dies with Illegal instruction (core dumped)
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 66f639b30ce6c74caae9397f20053761203f8e87
-Merge: 43b45df b79852f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:04:25 2015 +0100
-
- Merge pull request #4074 from dachary/wip-10220-giant
-
- mon/Paxos.cc: 1033: FAILED assert(mon->is_leader())
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 43b45dfacd598bab51fa06c5d0e2d0605d6e83d6
-Merge: d282cfd b318e2f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 23:03:35 2015 +0100
-
- Merge pull request #3548 from ceph/wip-10643
-
- mon: MDSMonitor: missing backports for giant
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d282cfd5ae3e65b74801cd27480ce8c0bd72d9a7
-Merge: 3f3b981 681c99f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:12:58 2015 +0100
-
- Merge pull request #4053 from dachary/wip-8011-giant
-
- osd/ReplicatedPG.cc: 5244: FAILED assert(soid < scrubber.start || soid >= scrubber.end)
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 3f3b98123cb46080068c1c73f4be41acbe18bd0d
-Merge: 6919eb1 4427358
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:12:40 2015 +0100
-
- Merge pull request #4052 from dachary/wip-10844-giant
-
- mon: caps validation should rely on EntityName instead of entity_name_t
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 6919eb1684e34a6395963be6cc65215a51f5ba13
-Merge: 8876585 1d4ffbe
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:12:15 2015 +0100
-
- Merge pull request #4050 from dachary/wip-10817-giant
-
- WorkQueue: make timeout when calling WaitInterval configurable
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 88765851bd56a6a526f6ab724920c8858ec4956c
-Merge: 6da3171 92c352d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:11:43 2015 +0100
-
- Merge pull request #4049 from dachary/wip-10787-giant
-
- mon: OSDMonitor::map_cache is buggy, send_incremental is not conservative
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 6da3171f21b8e1a56fe941a5028f2ccfdccee18a
-Merge: 5a6eefc 25fcaca
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:09:28 2015 +0100
-
- Merge pull request #4048 from dachary/wip-10770-giant
-
- rgw: pending bucket index operations are not cancelled correctly
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 5a6eefcb40c94da9a900d9893ecb6eaaf8fd0cea
-Merge: c67a7a5 2858327
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:09:06 2015 +0100
-
- Merge pull request #4046 from dachary/wip-10723-giant
-
- rados python binding leaks Ioctx objects
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit c67a7a52dc96f176431125921e36e4a2b8a30f1c
-Merge: 41dcd2d d5b1b7e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:08:45 2015 +0100
-
- Merge pull request #4044 from dachary/wip-10617-giant
-
- osd: pgs for deleted pools don't finish getting removed if osd restarts
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 41dcd2d9c307dd0b25d27bd6673943f3fdaaa28b
-Merge: 42e7413 c3d998e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:08:20 2015 +0100
-
- Merge pull request #4034 from dachary/wip-10475-giant
-
- rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit 42e741339913990521c4509f4e266921f8dbe007
-Merge: ffb76d1 fa8d454
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 22 22:07:53 2015 +0100
-
- Merge pull request #4033 from dachary/wip-10471-giant
-
- rgw: index swift keys appropriately
-
- Reviewed-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-
-commit de4b08704172ac31b511dde50e5c11d58d811ca2
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 20 16:57:40 2015 -0700
-
- ceph-objectstore-tool: Output only unsupported features when incomatible
-
- Fixes: #11176
- Backport: firefly, giant
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5b23f5b5892b36fb7d06efc0d77e64a24ef6e8c9)
-
-commit ffb76d16c5d9d65ac94d21b4e8fc1fdf86441977
-Merge: fea29b1 61d6006
-Author: John Spray <jcspray@gmail.com>
-Date: Thu Mar 19 22:07:58 2015 +0000
-
- Merge pull request #3971 from ceph/giant-11053
-
- mds: fix assertion caused by system clock backwards
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit c3d998e4c3c9d90b50c3f6c0af7d48785616e032
-Author: Dmytro Iurchenko <diurchenko@mirantis.com>
-Date: Tue Feb 3 17:54:38 2015 +0200
-
- rgw: Swift API. Support for X-Remove-Container-Meta-{key} header.
-
- Fixes: #10475
- Backport: hammer, firefly
- Reported-by: Josh Durgin <jdurgin@redhat.com>
- Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- (cherry picked from commit f67bfa24fd6f69c2fcc0987eba8b6b426dd78320)
-
- Conflicts:
- src/rgw/rgw_rest.h
- trivial merge: prototype of an unrelated function changed
- src/rgw/rgw_op.cc
- s/is_object_op/!(s->object == NULL)/
-
-commit fc43d8c2c54ec9e9cb6ef4d19cca695eb2fb3aab
-Author: Matt Richards <mattjrichards@gmail.com>
-Date: Thu Jan 8 13:16:17 2015 -0800
-
- librados: Translate operation flags from C APIs
-
- The operation flags in the public C API are a distinct enum
- and need to be translated to Ceph OSD flags, like as happens in
- the C++ API. It seems like the C enum and the C++ enum consciously
- use the same values, so I reused the C++ translation function.
-
- Signed-off-by: Matthew Richards <mattjrichards@gmail.com>
- (cherry picked from commit 49d114f1fff90e5c0f206725a5eb82c0ba329376)
-
-commit d790833cb84d6f6349146e4f9abdcdffb4db2ee0
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Sep 29 18:17:29 2014 -0700
-
- Objecter: check the 'initialized' atomic_t safely
-
- shutdown() resets initialized to 0, but we can still receive messages
- after this point, so fix message handlers to skip messages in this
- case instead of asserting.
-
- Also read initialized while holding Objecter::rwlock to avoid races
- where e.g. handle_osd_map() checks initialized -> 1, continues,
- shutdown() is called, sets initialized to 0, then handle_osd_map()
- goes about its business and calls op_submit(), which would fail the
- assert(initialized.read()) check. Similar races existed in other
- message handlers which change Objecter state.
-
- The Objecter is not destroyed until after its Messenger in
- the MDS, OSD, and librados, so this should be safe.
-
- Fixes: #9617
- Backport: giant
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit e506f896a9217324ab7a7865989f4454562aed5f)
-
- Conflicts:
- src/osdc/Objecter.cc
- context changed: Objecter::tick() did not have
- assert(initialized.read())
-
-commit ce436a33e0f720ea4b8cf0363bcac1126be3c28b
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Mon Sep 29 18:12:50 2014 -0700
-
- Objecter: init with a constant of the correct type
-
- Just a tiny cleanup.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
- (cherry picked from commit 1feba200aae7d9a042cda705c3de8fba2fc82331)
-
-commit 970a79753dc52d82d2abf29ffe6f88adac678eb0
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Wed Aug 20 15:35:44 2014 +0800
-
- CrushWrapper: pick a ruleset same as rule_id
-
- Originally in the add_simple_ruleset funtion, the ruleset_id
- is not reused but rule_id is reused. So after some add/remove
- against rules, the newly created rule likely to have
- ruleset!=rule_id.
-
- We dont want this happen because we are trying to hold the constraint
- that ruleset == rule_id.
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit 78e84f34da83abf5a62ae97bb84ab70774b164a6)
-
-commit 76535116823f02f0392226e5725fbfef14c277ba
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 20 13:43:46 2015 -0800
-
- DBObjectMap: lock header_lock on sync()
-
- Otherwise, we can race with another thread updating state.seq
- resulting in the old, smaller value getting persisted. If there
- is a crash at that time, we will reuse a sequence number, resulting
- in an inconsistent node tree and bug #9891.
-
- Fixes: 9891
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 2b63dd25fc1c73fa42e52e9ea4ab5a45dd9422a0)
-
- Conflicts:
- src/os/DBObjectMap.cc
- because we have state.v = 1; instead of state.v = 2;
-
-commit 13b01473c5c1a116d6cd6acbbb6cbe08ee6e9433
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Tue Oct 28 09:37:11 2014 +0800
-
- osd: cache tiering: fix the atime logic of the eviction
-
- Reported-by: Xinze Chi <xmdxcxz@gmail.com>
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit 622c5ac41707069ef8db92cb67c9185acf125d40)
-
-commit 13b8364dc869b2eefcb6646cff1e18c31126ce7d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 31 19:33:59 2014 -0700
-
- osd/ReplicatedPG: fix compile error
-
- From 1fef4c3d541cba360738437420ebfa2447d5802e.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4a9ad7dc2da6f4fa6a64235776a3f1d2799aef60)
-
-commit 55541b90db0a6d6c26c1fae6a4958fa5a320f82c
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Wed Oct 29 07:11:11 2014 +0000
-
- Get the currently atime of the object in cache pool for eviction
-
- Because if there are mutiple atime in agent_state for the same object, we should use the recently one.
-
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 1fef4c3d541cba360738437420ebfa2447d5802e)
-
-commit 5550cdd876db913b152edad17a4de16bded31627
-Author: Ding Dinghua <dingdinghua85@gmail.com>
-Date: Thu Oct 30 14:58:42 2014 +0800
-
- osdc/Objecter: Fix a bug of dead looping in Objecter::handle_osd_map
-
- If current map epoch is less than oldest epoch, current map epoch
- should step up to oldest epoch.
-
- Fixes: #9986
- Signed-off-by: Ding Dinghua <dingdinghua85@gmail.com>
- (cherry picked from commit e0166a23c2cf655bfb4cf873be021a14d9b9be27)
-
-commit 7c5056f5cf77065e0e5a920f525f0a3be6b4b299
-Author: Ding Dinghua <dingdinghua85@gmail.com>
-Date: Thu Oct 30 14:58:05 2014 +0800
-
- osdc/Objecter: e shouldn't be zero in Objecter::handle_osd_map
-
- Signed-off-by: Ding Dinghua <dingdinghua85@gmail.com>
- (cherry picked from commit 31c584c8ba022cd44fe2872d221f3026618cefab)
-
-commit 21f81b85de652aede51e88b87bdff71f2e411da3
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Nov 19 08:20:16 2014 -0800
-
- PG: always clear_primary_state on new interval, but only clear pg temp if not primary
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f692bfe076b8ddb679c6d1a6ea78cc47f0876326)
-
-commit 0c3f7637d8cf2146a4268330d8c0506ad38c354d
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Nov 14 15:44:20 2014 -0800
-
- PG: always clear_primary_state when leaving Primary
-
- Otherwise, entries from the log collection process might leak into the next
- epoch, where we might end up choosing a different authoritative log. In this
- case, it resulted in us not rolling back to log entries on one of the replicas
- prior to trying to recover from an affected object due to the peer_missing not
- being cleared.
-
- Fixes: #10059
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c87bde64dfccb5d6ee2877cc74c66fc064b1bcd7)
-
-commit 1ccf58355d0796172935938572cf68ceb31a6801
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Dec 2 15:17:57 2014 -0800
-
- SimpleMessenger: allow RESETSESSION whenever we forget an endpoint
-
- In the past (e229f8451d37913225c49481b2ce2896ca6788a2) we decided to disable
- reset of lossless Pipes, because lossless peers resetting caused trouble and
- they can't forget about each other. But they actually can: if mark_down()
- is called.
-
- I can't figure out how else we could forget about a remote endpoint, so I think
- it's okay if we tell them we reset in order to clean up state. That's desirable
- so that we don't get into strange situations with out-of-whack counters.
-
- Fixes: #10080
- Backport: giant, firefly, dumpling
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 8cd1fdd7a778eb84cb4d7161f73bc621cc394261)
-
-commit 3e875ab108de8d2aa3717f76a3fe48ede286abb7
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 6 09:52:29 2015 -0800
-
- FileJournal: fix journalq population in do_read_entry()
-
- Fixes: 6003
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bae1f3eaa09c4747b8bfc6fb5dc673aa6989b695)
-
- Conflicts:
- src/os/FileJournal.cc
- because reinterpret_cast was added near two hunks after firefly
-
-commit 96a5c67121dde0d4d4cd13793bb131414b64cc28
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 30 18:42:40 2015 -0800
-
- rgw: flush xml header on get acl request
-
- Fixes: #10106
- Backport: firefly, giant
-
- dump_start() updates the formatter with the appropriate prefix, however,
- we never flushed the formatter.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit eb45f861343162e018968b8c56693a8c6f5b2cab)
-
-commit c7b02f5a7347ea8688c5214f85bb9f612925a586
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Mar 19 00:32:39 2015 +0100
-
- doc,tests: force checkout of submodules
-
- When updating submodules, always checkout even if the HEAD is the
- desired commit hash (update --force) to avoid the following:
-
- * a directory gmock exists in hammer
- * a submodule gmock replaces the directory gmock in master
- * checkout master + submodule update : gmock/.git is created
- * checkout hammer : the gmock directory still contains the .git from
- master because it did not exist at the time and checkout won't
- remove untracked directories
- * checkout master + submodule update : git rev-parse HEAD is
- at the desired commit although the content of the gmock directory
- is from hammer
-
- http://tracker.ceph.com/issues/11157 Fixes: #11157
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4d4eb9faf1871c4469b78a7ee75d527ce5cc67ad
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Dec 11 13:05:54 2014 -0800
-
- ReplicatedPG::scan_range: an object can disappear between the list and the attr get
-
- The first item in the range is often last_backfill, upon which writes
- can be occuring. It's trimmed off on the primary side anyway.
-
- Fixes: 10150
- Backport: dumpling, firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit dce6f288ad541fe7f0ef8374301cd712dd3bfa39)
-
-commit 499d94f573e78f6545bd5a12ade6b5ba5a75bbca
-Author: Federico Simoncelli <fsimonce@redhat.com>
-Date: Sat Nov 15 14:14:04 2014 +0000
-
- common: do not unlock rwlock on destruction
-
- According to pthread_rwlock_unlock(3p):
-
- Results are undefined if the read-write lock rwlock is not held
- by the calling thread.
-
- and:
-
- https://sourceware.org/bugzilla/show_bug.cgi?id=17561
-
- Calling pthread_rwlock_unlock on an rwlock which is not locked
- is undefined.
-
- calling pthread_rwlock_unlock on RWLock destruction could cause
- an unknown behavior for two reasons:
-
- - the lock is acquired by another thread (undefined)
- - the lock is not acquired (undefined)
-
- Moreover since glibc-2.20 calling pthread_rwlock_unlock on a
- rwlock that is not locked results in a SIGILL that kills the
- application.
-
- This patch removes the pthread_rwlock_unlock call on destruction
- and replaces it with an assertion to check that the RWLock is
- not in use.
-
- Any code that relied on the implicit release is now going to
- break the assertion, e.g.:
-
- {
- RWLock l;
- l.get(for_write);
- } // implicit release, wrong.
-
- Signed-off-by: Federico Simoncelli <fsimonce@redhat.com>
- (cherry picked from commit cf2104d4d991361c53f6e2fea93b69de10cd654b)
-
-commit b79852f3ab0643bbb3f6b71a56b15e5a4b5fc1f5
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Wed Dec 10 17:46:35 2014 +0000
-
- mon: Paxos: reset accept timeout before submiting work to the store
-
- Otherwise we may trigger the timeout while waiting for the work to be
- committed to the store -- and it would only take the write to take a bit
- longer than 10 seconds (default accept timeout).
-
- We do wait for the work to be properly committed to the store before
- extending the lease though.
-
- Fixes: #10220
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 18534615f184ba56b441fd1d4242eb06debdfe13)
-
-commit e997c9fed5feb3e877dfe07ffac1327b85d09ea2
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Tue Dec 9 17:35:47 2014 +0000
-
- mon: MonitorDBStore: allow randomly injecting random delays on writes
-
- Adds two new config options:
-
- mon_inject_transaction_delay_probability : DOUBLE (0.0-1.0, default: 0.0)
- mon_inject_transaction_delay_max : DOUBLE (seconds, default: 10.0)
-
- If probability is set to a value greater than 0, just before applying
- the transaction, the store will decide whether to inject a delay,
- randomly choosing a value between 0 and the max.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit beaa04e4119765d5775a6c48fd072dd95c984e3b)
-
-commit 1d4ffbe1d233de555c1ecb0a33eebe2391b29f33
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 9 17:41:19 2015 -0800
-
- ShardedThreadPool: make wait timeout on empty queue configurable
-
- Fixes: 10818
- Backport: giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 7002f934e6664daa995ca0629c0ea3bae1c6bddf)
-
-commit 292c4339c064968c2aa05eec701fbc2a8d82dab0
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 9 17:11:38 2015 -0800
-
- WorkQueue: make wait timeout on empty queue configurable
-
- Fixes: 10817
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5aa6f910843e98a05bfcabe6f29d612cf335edbf)
-
-commit fea29b1bcbd17b3d1f642398ec70dbe258bbc98f
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Nov 20 15:15:08 2014 -0800
-
- PGLog: include rollback_info_trimmed_to in (read|write)_log
-
- Fixes: #10157
- Backport: firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1fe8b846641486cc294fe7e1d2450132c38d2dba)
-
-commit 4427358bb556d902b01df27fd097cc3eefa561da
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Wed Feb 11 23:36:01 2015 +0000
-
- mon: MonCap: take EntityName instead when expanding profiles
-
- entity_name_t is tightly coupled to the messenger, while EntityName is
- tied to auth. When expanding profiles we want to tie the profile
- expansion to the entity that was authenticated. Otherwise we may incur
- in weird behavior such as having caps validation failing because a given
- client messenger inst does not match the auth entity it used.
-
- e.g., running
-
- ceph --name osd.0 config-key exists foo daemon-private/osd.X/foo
-
- has entity_name_t 'client.12345' and EntityName 'osd.0'. Using
- entity_name_t during profile expansion would not allow the client access
- to daemon-private/osd.X/foo (client.12345 != osd.X).
-
- Fixes: #10844
- Backport: firefly,giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 87544f68b88fb3dd17c519de3119a9ad9ab21dfb)
-
-commit 8902279dd4b52516d59db712bd59e8d9372611a6
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Nov 14 21:03:54 2014 +0000
-
- mon: Monitor: stash auth entity name in session
-
- Backport: giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit ca8e1efc0be9bffcfbdce5593526d257aa498062)
-
-commit 681c99fe12cfa6318f8cf06f4e825805635bcc07
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Nov 20 14:27:39 2014 -0800
-
- ReplicatedPG: fail a non-blocking flush if the object is being scrubbed
-
- Fixes: #8011
- Backport: firefly, giant
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 9b26de3f3653d38dcdfc5b97874089f19d2a59d7)
-
-commit 1f58a0adc3b23785fac00083d721b62f6a4c44a1
-Merge: 9fee7ba fe7d4ca
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:52:01 2015 -0700
-
- Merge pull request #4042 from dachary/wip-10546-giant
-
- ceph time check start round bug in monitor.cc
-
-commit 9fee7ba9d7343bda29bc5113f8db5cdd9c09d71a
-Merge: ca635ce e7af52a
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:50:26 2015 -0700
-
- Merge pull request #4047 from dachary/wip-10762-giant
-
- mon: osd gets marked down twice
-
-commit ca635ce3eb21135b08613b97ce0c56977de44351
-Merge: 9094185 5771f57
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:49:53 2015 -0700
-
- Merge pull request #4041 from dachary/wip-10512-giant
-
- osd: cancel_flush requeues blocked events after blocking event
-
-commit 90941850ceb2c080ac72c67fed991c951b13f449
-Merge: bc1b9d2 5fca232
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:47:26 2015 -0700
-
- Merge pull request #4031 from dachary/wip-10353-giant
-
- crush: set_choose_tries = 100 for erasure code rulesets
-
-commit bc1b9d22d29a74e6853834fb0430e8803710bbbf
-Merge: bd69cfc 30a1744
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:47:08 2015 -0700
-
- Merge pull request #4029 from dachary/wip-9910-giant
-
- msg/Pipe: discard delay queue before incoming queue
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit bd69cfcbd58103843fbc42c4e55d43c2bafe54ff
-Merge: 30f7df2 4bd5237
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:44:53 2015 -0700
-
- Merge pull request #4030 from dachary/wip-10351-giant
-
- mount.ceph: avoid spurious error message
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 30f7df2b110f73477354fbfa607b4777317dddfa
-Merge: e5a50c3 8307318
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:44:00 2015 -0700
-
- Merge pull request #4028 from dachary/wip-10259-giant
-
- osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::o...
-
-commit e5a50c3ae42c8b9d16a19a13e10fc35b91149e73
-Merge: ba1d55d a5a76f8
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:42:10 2015 -0700
-
- Merge pull request #4027 from dachary/wip-10257-giant
-
- mon: PGMonitor: several stats output error fixes
-
-commit ba1d55de1e92a0143702e9e3fbbb1820db17d6c3
-Merge: 530fce4 640986f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:41:56 2015 -0700
-
- Merge pull request #3998 from dzafman/wip-10677
-
- Fix ceph command manpage to match ceph -h (giant)
-
- Reviewed-by: Xinxin Shu <xinxin.shu@intel.com>
-
-commit 530fce4d7cf51f4a4ac1e70ebe20b2795a30010e
-Merge: a2a3dad 8a5a3c7
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:40:02 2015 -0700
-
- Merge pull request #3921 from sponce/wip-11078-giant
-
- Fix libstriprados::stat, use strtoll insdead of strtol
-
-commit a2a3dad8ec00434b99d6d538615bf8ff9eada217
-Merge: 0f57188 984df3b
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:36:28 2015 -0700
-
- Merge pull request #3819 from tchaikov/giant-pg-leak-10421
-
- osd: fix PG leak in SnapTrimWQ._clear()
-
-commit 0f5718822793074ffab45124afb3bf3160e92004
-Merge: 776c82c c5c6fcd
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:35:37 2015 -0700
-
- Merge pull request #3771 from ceph/wip-10883-giant
-
- osd: Fix FileJournal wrap to get header out first
-
-commit 776c82caac36de14a5f895688f81c88a883fca3e
-Merge: 938e036 37f196e
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 17 10:35:29 2015 -0700
-
- Merge pull request #3637 from sponce/wip-10758-giant
-
- Backport of pull request 3633 to giant : Fixed write_full behavior in libradosstriper
-
-commit 92c352d047c84035478e71828e32f554d9f507fc
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Feb 12 13:49:50 2015 -0800
-
- mon/OSDMonitor: do not trust small values in osd epoch cache
-
- If the epoch cache says the osd has epoch 100 and the osd is asking for
- epoch 200+, do not send it 100+.
-
- Fixes: #10787
- Backport: giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a5759e9b97107488a8508f36adf9ca1aba3fae07)
-
-commit 25fcaca19c76765284787c61584d25efd105a0ca
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Feb 5 09:33:26 2015 -0800
-
- rgw: send appropriate op to cancel bucket index pending operation
-
- Fixes: #10770
- Backport: firefly, giant
-
- Reported-by: baijiaruo <baijiaruo@126.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit dfee96e3aebcaeef18c721ab73f0460eba69f1c7)
-
- Conflicts:
- src/rgw/rgw_rados.cc
- resolved by manual s/ADD/CANCEL/
-
-commit e7af52a147cc6e1a578d51193a2d5a425cee8a20
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Feb 5 03:07:50 2015 -0800
-
- mon: ignore osd failures from before up_from
-
- If the failure was generated for an instance of the OSD prior to when
- it came up, ignore it.
-
- This probably causes a fair bit of unnecessary flapping in the wild...
-
- Backport: giant, firefly
- Fixes: #10762
- Reported-by: Dan van der Ster <dan@vanderster.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 400ac237d35d0d1d53f240fea87e8483c0e2a7f5)
-
-commit 28583276254ba6121b93688a6c6d8fab6588c864
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Feb 9 20:50:23 2015 -0800
-
- rados.py: keep reference to python callbacks
-
- If we don't keep a reference to these, the librados aio calls will
- segfault since the python-level callbacks will have been garbage
- collected. Passing them to aio_create_completion() does not take a
- reference to them. Keep a reference in the python Completion object
- associated with the request, since they need the same lifetime.
-
- This fixes a regression from 60b019f69aa0e39d276c669698c92fc890599f50.
-
- Fixes: #10775
- Backport: dumpling, firefly, giant
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 36d37aadbbbece28d70e827511f1a473d851463d)
- (cherry picked from commit 5f1245e131e33a98572408c8223deed2c7cf7b75)
-
-commit 1b5fb51a995d5d672a46176240d5887354c12967
-Author: Billy Olsen <billy.olsen@gmail.com>
-Date: Mon Feb 2 16:24:59 2015 -0700
-
- Fix memory leak in python rados bindings
-
- A circular reference was inadvertently created when using the
- CFUNCTYPE binding for callbacks for the asynchronous i/o callbacks.
- This commit refactors the usage of the callbacks such that the
- Ioctx object does not have a class reference to the callbacks.
-
- Fixes: #10723
- Backport: giant, firefly, dumpling
- Signed-off-by: Billy Olsen <billy.olsen@gmail.com>
- Reviewed-by: Dan Mick <dmick@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 60b019f69aa0e39d276c669698c92fc890599f50)
-
-commit d5b1b7e52242e082820e0cdd76dc59e9aea7f284
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 23 10:47:44 2015 -0800
-
- osd: do not ignore deleted pgs on startup
-
- These need to get instantiated so that we can complete the removal process.
-
- Fixes: #10617
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 879fd0c192f5d3c6afd36c2df359806ea95827b8)
-
-commit fe7d4ca17dacf4419be7bdc50010115cee36517b
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 30 11:37:28 2015 +0000
-
- mon: Monitor: fix timecheck rounds period
-
- Fixes: #10546
- Backports: dumpling?,firefly,giant
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 2e749599ac6e1060cf553b521761a93fafbf65bb)
-
-commit 5771f57af731e61bf70f630cf85f5b94dcfd1edb
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Jan 11 17:28:04 2015 -0800
-
- osd: requeue blocked op before flush it was blocked on
-
- If we have request A (say, cache-flush) that blocks things, and then
- request B that gets blocked on it, and we have an interval change, then we
- need to requeue B first, then A, so that the resulting queue will keep
- A before B and preserve the order.
-
- This was observed on this firefly run:
-
- ubuntu@teuthology:/a/sage-2015-01-09_21:43:43-rados-firefly-distro-basic-multi/694675
-
- Backport: giant, firefly
- Fixes: #10512
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 11bdfb4131ecac16d4a364d651c6cf5d1d28c702)
-
-commit fa8d45423e22f7b916a345024a9f70283fc3097d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jan 7 13:56:14 2015 -0800
-
- rgw: index swift keys appropriately
-
- Fixes: #10471
- Backport: firefly, giant
-
- We need to index the swift keys by the full uid:subuser when decoding
- the json representation, to keep it in line with how we store it when
- creating it through other mechanism.
-
- Reported-by: hemant burman <hemant.burman@gmail.com>
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 478629bd2f3f32afbe6e93eaebb8a8fa01af356f)
-
-commit 5fca232080c0bde50b5c65c60c133bf81311e8d3
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 17 16:06:55 2014 +0100
-
- crush: set_choose_tries = 100 for erasure code rulesets
-
- It is common for people to try to map 9 OSDs out of a 9 OSDs total ceph
- cluster. The default tries (50) will frequently lead to bad mappings for
- this use case. Changing it to 100 makes no significant CPU performance
- difference, as tested manually by running crushtool on one million
- mappings.
-
- http://tracker.ceph.com/issues/10353 Fixes: #10353
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 2f87ac807f3cc7ac55d9677d2051645bf5396a62)
-
-commit 4bd523744cefb4a5e6b0d4440b9829b0e19dc012
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Jan 3 15:29:29 2015 +0800
-
- mount.ceph: avoid spurious error message
-
- /etc/mtab in most modern distributions is a symbol link to
- /proc/self/mounts.
-
- Fixes: #10351
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bdd0e3c4bda97fe18487a58dd173a7dff752e1a2)
-
-commit 30a17441f5030ac5c1227a9672811f88e580b4b2
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Oct 29 14:45:11 2014 -0700
-
- msg/Pipe: discard delay queue before incoming queue
-
- Shutdown the delayed delivery before the incoming queue in case the
- DelayedDelivery thread is busy queuing messages.
-
- Fixes: #9910
- Signed-off-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Greg Farnum <greg@inktank.com>
- (cherry picked from commit f7431cc3c25878057482007beb874c9d4473883e)
-
-commit 8307318cdf9487dde3231aa4a00fca6079379738
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Dec 5 15:29:52 2014 -0800
-
- osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::operator==
-
- Fixes: 10259
- Backport: giant, firefly, dumpling
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1ac17c0a662e6079c2c57edde2b4dc947f547f57)
-
-commit a5a76f81ae9242a54d6ef150fa0ac32b31e90c25
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Mon Jan 19 18:49:15 2015 +0000
-
- mon: PGMonitor: skip zeroed osd stats on get_rule_avail()
-
- Fixes: #10257
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit b311e7c36273efae39aa2602c1f8bd90d39e5975)
-
-commit 95ec68505ce4a26ea707716791cfb1e46a75ed25
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 16 18:13:05 2015 +0000
-
- mon: PGMonitor: available size 0 if no osds on pool's ruleset
-
- get_rule_avail() may return < 0, which we were using blindly assuming it
- would always return an unsigned value. We would end up with weird
- values if the ruleset had no osds.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 8be6a6ab2aa5a000a39c73a98b11a0ab32fffa1c)
-
-commit 1c480b39acc184018d976beddc55187f86dfff1a
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Jan 16 18:12:42 2015 +0000
-
- mon: PGMonitor: fix division by zero on stats dump
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 50547dc3c00b7556e26b9a44ec68640c5c3a2384)
-
-commit 640986fdef3543c7469e43853900b63d7b2f6f36
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 13 19:16:47 2015 -0700
-
- doc: Fix ceph command manpage to match ceph -h (giant)
-
- Fixes: #10677
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
-
-commit ec4c8997a67397e3ba5f335e444586f6f1a7864c
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 13 16:50:13 2015 -0700
-
- doc: Minor fixes to ceph command manpage
-
- Fixes: #10676
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 7e85722fd4c89715fc2ed79697c82d65d7ebf287)
-
-commit 15e1c6fb3a0e2e191025f96df33feaf115c1411d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 12 11:39:52 2015 -0700
-
- doc: Fix ceph command manpage to match ceph -h (firefly)
-
- Improve synopsis section
- Fixes: #10676
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9ac488c1eb0e30511079ba05aaf11c79615b3940)
-
- Conflicts:
-
- man/ceph.8 (took incoming version)
-
-commit 17d03e8e8b055ed50b1abb679a0dd1edf4ec3f30
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Thu Dec 18 17:11:22 2014 +0530
-
- doc: Changes format style in ceph to improve readability as html.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 8b796173063ac9af8c21364521fc5ee23d901196)
-
-commit 61d600687ae6887a2edea0e79d582b1353558a83
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Mar 10 19:55:57 2015 +0800
-
- mds: fix assertion caused by system clock backwards
-
- Fixes: #11053
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit f1c9c71fd6d566687db05e1d8f15b04a9f793005
-Author: Nilamdyuti Goswami <ngoswami@redhat.com>
-Date: Sat Dec 13 02:24:41 2014 +0530
-
- doc: Adds man page for ceph.
-
- Signed-off-by: Nilamdyuti Goswami <ngoswami@redhat.com>
- (cherry picked from commit 76da87a64ca6b3cc0ceeaf63e19a9f440d6f4161)
-
-commit 8a5a3c7a20517c7482dc9f5f2783a3da54bd4f23
-Author: Dongmao Zhang <deanraccoon@gmail.com>
-Date: Fri Nov 14 18:48:58 2014 +0800
-
- Fix libstriprados::stat, use strtoll insdead of strtol
-
- The return value(long int) of strict_strtol is too small for unstriped
- object.
-
- Signed-off-by: Dongmao Zhang <deanraccoon@gmail.com>
- (cherry picked from commit fe6679dca479fc24806d7e57ab0108a516cd6d55)
-
-commit 5d423a5188c62650eaa39077eb99a84085f5f3e2
-Author: Dongmao Zhang <deanraccoon@gmail.com>
-Date: Wed Dec 10 18:55:28 2014 +0800
-
- Fix libstriprados::remove, use strtoll insdead of strtol
-
- Signed-off-by: Dongmao Zhang <deanraccoon@gmail.com>
- (cherry picked from commit 78a15ee4c61fdadccb1921e861748400cc651862)
-
-commit 938e03630e075af03780da139ae879b5b0377734
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 2 13:57:00 2015 -0800
-
- Objecter::_op_submit_with_budget: add timeout before call
-
- Objecter::_send_op depends on the ontimeout field being filled in
- to avoid 10340 and 9582.
-
- Fixes: 10340
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit cfcfafcb0f33994dbda1efe478ef3ab822ff50d4)
-
-commit 984df3b865f295ecf77b041a69d1d59384d80671
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Feb 10 16:29:45 2015 +0800
-
- osd: fix PG leak in SnapTrimWQ._clear()
-
- Fixes: #10421
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 01e154d592d6cdbf3f859cf1b4357e803536a6b4)
-
-commit c5c6fcd6ad7a0317301970bc25419727ee3192fa
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 18 16:21:12 2015 -0800
-
- osd: Fix FileJournal wrap to get header out first
-
- Correct and restore assert that was removed
-
- Cause by f46b1b473fce0322a672b16c7739e569a45054b6
- Fixes: #10883
- Backport: dumpling, firefly, giant
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 970bb4901f93575709421b5b25c3eff213de61b8)
-
-commit 37f196e80906d6b855ca0a7ce7344d1f8f50ae7f
-Author: Sebastien Ponce <Sebastien.Ponce@cern.ch>
-Date: Thu Feb 5 10:46:37 2015 +0100
-
- libradosstriper: fixed write_full when ENOENT
-
- Fixes: #10758
- write_full was returning ENOENT when the file did not exists, while it should just have created it without complaining.
-
- Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
- (cherry picked from commit 6a91f2bb82035b3c8021a7dc7b23548ce3d61eb6)
-
-commit b318e2ffc3faedf6b02908429eb4ce79147d3471 (refs/remotes/gh/wip-10643)
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Oct 17 18:01:05 2014 +0100
-
- mon: MDSMonitor: don't return -EINVAL if function is bool
-
- Returning -EINVAL on a function that expects bool and the error code to
- be in a variable 'r' can only achieve one thing: if this path is ever
- touched, instead of returning an error as it was supposed to, we're
- returning 'true' with 'r = 0' and, for no apparent reason, the user will
- think everything went smoothly but with no new fs created.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 91b2a2b69b198567d42f45f75b7f7ea559f89150)
-
-commit a1a7d856f5409280b6345afbbd961bcd8ee8d046
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Oct 17 17:43:33 2014 +0100
-
- mon: MDSMonitor: check all conditions are met *before* osdmon proposal
-
- We should not allow ourselves to request the osdmon to propose before we
- know for sure that we meet the required conditions to go through with
- our own state change. Even if we still can't guarantee that our
- proposal is going to be committed, we shouldn't just change the osdmon's
- state just because we can. This way, at least, we make sure that our
- checks hold up before doing anything with side-effects.
-
- Fixes: #10643
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 1d1ae413e9f0aafa314af903bcf6b815f6558082)
-
-commit 0df7cf1e58bc4d77c69354f2a7160e3d9e6d1fc1
-Author: Joao Eduardo Luis <joao@redhat.com>
-Date: Fri Oct 17 17:37:03 2014 +0100
-
- mon: MDSMonitor: return if fs exists on 'fs new'
-
- We were just setting return code to -EINVAL, while allowing the logic to
- continue regardless. If we are to return error, then we should abort
- the operation as well and let the user know it went wrong instead of
- continuing as if nothing had happened.
-
- Signed-off-by: Joao Eduardo Luis <joao@redhat.com>
- (cherry picked from commit 07b7f101057a80d1356bd20040180e94cd20c211)
diff --git a/src/ceph/doc/changelog/v0.94.1.txt b/src/ceph/doc/changelog/v0.94.1.txt
deleted file mode 100644
index 227267d..0000000
--- a/src/ceph/doc/changelog/v0.94.1.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-commit e4bfad3a3c51054df7e537a724c8d0bf9be972ff (tag: refs/tags/v0.94.1, refs/remotes/gh/hammer)
-Author: Jenkins <jenkins@inktank.com>
-Date: Fri Apr 10 12:04:50 2015 -0700
-
- 0.94.1
-
-commit 733864738fa93979727e480e403293e079bb51e9
-Merge: b5921d5 5ca771a
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Apr 10 17:51:38 2015 +0200
-
- Merge pull request #4328 from dachary/wip-11364-hammer
-
- v4 bucket feature detection
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5ca771a7d1df8e78ee503a7063068cf744d5efcc
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 10 08:43:45 2015 -0700
-
- crush: fix has_v4_buckets()
-
- alg, not type!
-
- This bug made us incorrectly think we were using v4 features when user type
- 5 was being used. That's currently 'rack' with recent crush maps, but
- was other types for clusters that were created with older versions. This
- is clearly problematic as it will lock out non-hammer clients incorrectly,
- breaking deployments on upgrade.
-
- Fixes: #11364
- Backport: hammer
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 38b35ab9d17eb84ac178c4cd3ebcf2ec0f66d8b6)
-
-commit 33e79ab7aa0b5428e8fb82a90eea17d31d363a88
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 9 17:17:59 2015 -0700
-
- crush: fix dump of has_v4_buckets
-
- Backport: hammer
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d6e23413017fb8f5d7f18d74e993ceeedb82d8bc)
-
-commit b5921d55d16796e12d66ad2c4add7305f9ce2353
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 9 14:42:34 2015 -0700
-
- crush/mapper: fix divide-by-0 in straw2
-
- If the item weight is 0 we don't want to divide; instead draw a minimal
- value.
-
- Fixes: #11357
- Reported-by: Yann Dupont <yd@objoo.org>
- Tested-by: Yann Dupont <yd@objoo.org>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 64d1e900ec4f5831972ec80e8d0129604669f5bb)
-
-commit 93c8f436a4f84ac8088e1a1de82350dd33c68d64
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Thu Feb 26 08:13:12 2015 +0000
-
- osd: fix negative degraded objects during backfilling
-
- When there is deleting requests during backfilling, the reported number of degraded
- objects could be negative, as the primary's num_objects is the latest (locally) but
- the number for replicas might not reflect the deletings. A simple fix is to ignore
- the negative subtracted value.
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit 14d7e36d3c978844da73d0e1c8a3a1ec863bac15)
diff --git a/src/ceph/doc/changelog/v0.94.10.txt b/src/ceph/doc/changelog/v0.94.10.txt
deleted file mode 100644
index 342e6a6..0000000
--- a/src/ceph/doc/changelog/v0.94.10.txt
+++ /dev/null
@@ -1,2728 +0,0 @@
-commit b1e0532418e4631af01acbc0cedd426f1905f4af
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Tue Feb 21 15:12:34 2017 +0000
-
- 0.94.10
-
-commit 83af8cdaaa6d94404e6146b68e532a784e3cc99c
-Merge: 5855083 5485b49
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 23 17:49:54 2017 +0100
-
- Merge pull request #13041 from SUSE/wip-18448-hammer
-
- hammer: osd: filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 585508358f6412b179175a7812b76330ec5dda0d
-Merge: 4e4d3f0 eabe906
-Author: John Spray <jspray@redhat.com>
-Date: Mon Jan 23 12:26:27 2017 +0100
-
- Merge pull request #13022 from SUSE/wip-18602-hammer
-
- hammer: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa)
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 4e4d3f0fd86840609940f6b336f6aaf54a8695bc
-Merge: 9036fee cf9678c
-Author: John Spray <jspray@redhat.com>
-Date: Mon Jan 23 12:25:43 2017 +0100
-
- Merge pull request #13039 from SUSE/wip-fs-thrash-xfs
-
- tests: run fs/thrash on xfs instead of btrfs
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit eabe9064aed3693599e3b6053b57eafb835d35da
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Jan 17 17:12:46 2017 +0100
-
- qa: update remaining ceph.com to download.ceph.com
-
- Fixes: http://tracker.ceph.com/issues/18574
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 549d993d3fd8ffffa280ed4a64aca41d1c6f2da1)
-
-commit 5485b49da39b9f07a4216ff26f8ec9e04590ddf8
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 21 14:54:52 2017 +0100
-
- os/filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE
-
- Signed-off-by: xinxin shu <xinxin.shu@intel.com>
- (cherry picked from commit 7bd95b595fddb8a4e618a2c7df1ba04eccf0829d)
-
- Conflicts:
- src/os/FileStore.cc (in master, this file is in a different location)
-
-commit cf9678c998600e76e94777b2904ba3047d051bb8
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 21 14:24:25 2017 +0100
-
- tests: run fs/thrash on xfs instead of btrfs
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 9036feed9bd9f386dc013dee8326071ef0b4cbee
-Merge: 33c7ab7 fa5c625
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat Jan 21 10:00:04 2017 +0100
-
- Merge pull request #12824 from SUSE/wip-18449-hammer
-
- hammer: [teuthology] update rbd/singleton/all/formatted-output.yaml to support ceph-ci
-
-commit 33c7ab7480aa8d0ee80d6a47f91f4488515e07f8
-Merge: ef8ae1f ef513a7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jan 20 23:10:10 2017 +0100
-
- Merge pull request #12906 from SUSE/wip-15943-hammer
-
- hammer: osd/PG: fix cached_removed_snaps bug in PGPool::update after map gap
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit ef8ae1ff13b297c68ed4f1d0e01aba8d20dc5007
-Merge: c51602f 8bab745
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jan 20 23:02:05 2017 +0100
-
- Merge pull request #12805 from SUSE/wip-18432-hammer
-
- hammer: ceph-create-keys loops forever
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit c51602f0106e3681c143a2cfd94a08428e966caf
-Merge: 48687c7 83e7f17
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 17 08:39:14 2017 -0500
-
- Merge pull request #12957 from SUSE/wip-18544-hammer
-
- hammer: [teuthology] update Ubuntu image url after ceph.com refactor
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 83e7f178c9a0b70305644ca30598c1b1ff4d0474
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 16 22:12:51 2017 -0500
-
- qa/tasks/qemu: update default image url after ceph.com redesign
-
- Fixes: http://tracker.ceph.com/issues/18542
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6d17befb3bbc3d83c9d23d763ad95e1e7b2e4be0)
-
-commit ef513a78062569de081311b50fffdf59d4031ea7
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Dec 12 10:35:38 2016 -0800
-
- PG: fix cached_removed_snaps bug in PGPool::update after map gap
-
- 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a actually made 15943 worse
- by always creating an out-of-date cached_removed_snaps value after
- a map gap rather than only in the case where the the first map after
- the gap did not remove any snapshots.
-
- Introduced: 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a
- Fixes: http://tracker.ceph.com/issues/15943
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5642e7e1b3bb6ffceddacd2f4030eb13a17fcccc)
-
-commit fa5c6250125a51e61e34aa9586cc917df7458138
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 7 13:48:51 2017 +0100
-
- tests: subst repo and branch in qemu test urls
-
- References: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 2484a5546160560a4050d35400a6edce37ae48ad)
-
- Conflicts: (hammer doesn't have these files)
- qa/suites/rbd/maintenance/qemu/xfstests.yaml
- qa/suites/rbd/qemu/workloads/#qemu_xfstests.yaml#
-
-commit 572cd2660f5bf1cc7f980831d12bb3075816b96f
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 7 13:45:10 2017 +0100
-
- tests: subst branch and repo in qa/tasks/qemu.py
-
- References: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 74689df754561e11a3377998840efcea9e780755)
-
-commit 237fb80f2b2874329aed25ba655a6789e1707114
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 6 21:06:11 2017 +0100
-
- tests: subst repo name in qa/tasks/cram.py
-
- Inspired by bcbe45d948f1c4da02e27b3be5f29a8b52745e28
-
- Fixes: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 56e37e41f4dddd289dd3c1886b192cd328ed311b)
-
-commit 6045a83a438918f445504224b80809dfe715c9b0
-Author: Venky Shankar <vshankar@redhat.com>
-Date: Fri Dec 9 15:11:49 2016 +0530
-
- cram: support fetching from sha1 branch, tag, commit hash
-
- Signed-off-by: Venky Shankar <vshankar@redhat.com>
- (cherry picked from commit d2f0d745987a2e2eee4e1822146aad8da5d42708)
-
- Conflicts:
- suites/krbd/unmap/tasks/unmap.yaml (hammer doesn't have this)
- suites/rbd/singleton/all/formatted-output.yaml (moved to qa/,
- trivial resolution)
-
-commit 48687c79adf489b27af15bb44205913acc89af7a
-Merge: 61917cb ac62d79
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 8 09:26:03 2017 +0200
-
- Merge pull request #12227 from ceph/wip-orit-resharding-hammer
-
- Wip orit resharding hammer
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 8bab74537f5891f2b97f0fb6722e2e00416b723a
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Nov 2 12:28:49 2016 -0400
-
- ceph-create-keys: wait 10 minutes to get or create the bootstrap key, not forever
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit bea802bd13df883d06b7b67a83ac6540e44ab6c1)
-
-commit a7d919100e9e78b7f821da76b338bca24f374a0a
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Nov 2 12:25:32 2016 -0400
-
- ceph-create-keys: wait 10 minutes to get or create a key, not forever
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit 8f84681a4d97a7ea6bc04e759eccfc40204a2fdb)
-
- Conflicts:
- src/ceph-create-keys ( hammer does not have
- 52e978e4b3660baa9f50b1bb8247909b672142e7 )
-
-commit 7b3bc5fbc55da3cb2ce036ef3df367832d7a59e2
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Nov 2 12:19:10 2016 -0400
-
- ceph-create-keys: wait for quorum for ten minutes, not forever
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit 32cedd2c18e48d5f9a1547e5fd69c24c7eac1638)
-
-commit 61917cbcb7a4e35aa0ae8718377526ae55b5b7cf
-Merge: 7b1f8fe 7106f42
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:15:13 2017 -0800
-
- Merge pull request #11615 from mslovy/wip-17610-hammer
-
- hammer: osd: fix fiemap issue in xfs when #extents > 1364
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 7b1f8fe4c97b6c8ef81d899f0a24235946cc585a
-Merge: 5ba3c08 5f00e1d
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:14:10 2017 -0800
-
- Merge pull request #11936 from SUSE/wip-16432-hammer
-
- hammer: librados: bad flags can crash the osd
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 5ba3c0873d10b247a45bfbc1cb483cfc2189a9fd
-Merge: b44e1db 8312dc6
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:12:55 2017 -0800
-
- Merge pull request #12121 from dzafman/wip-16225-min
-
- hammer: common: SIGABRT in TrackedOp::dump() via dump_ops_in_flight()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit b44e1db11b0d7310f2563fa7acfb1464db4b04fb
-Merge: 7bfb05b 92de2fd
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:11:57 2017 -0800
-
- Merge pull request #12266 from SUSE/wip-18109-hammer
-
- hammer: msgr: simple/Pipe: error decoding addr
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 7bfb05b00157fa40c053eeefb59cd3bb211fc2b3
-Merge: 715012b fe77c9a
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:11:34 2017 -0800
-
- Merge pull request #12417 from SUSE/wip-18132-hammer
-
- hammer: osd: ReplicatedBackend::build_push_op: add a second config to limit omap entries/chunk independently of object data
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 715012bebe6e7838c702aae0283f1c3d37428762
-Merge: a20ad42 e9311dd
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:11:13 2017 -0800
-
- Merge pull request #12759 from SUSE/wip-18399-hammer
-
- hammer: tests: objecter_requests workunit fails on wip branches
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a20ad42ecab39541107e01ac4516a0a71e379846
-Merge: 3e62a1d 67e2101
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:10:54 2017 -0800
-
- Merge pull request #12762 from SUSE/wip-18405-hammer
-
- hammer: Cannot reserve CentOS 7.2 smithi machines
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3e62a1d5dbd2ee6672388121be26afd5d0374f5f
-Merge: 77fa49f aa91bc7
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:10:28 2017 -0800
-
- Merge pull request #12685 from SUSE/wip-18273-hammer
-
- hammer: tests: Workunits needlessly wget from git.ceph.com
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 77fa49f67d1c8c59d9131e6f52e595661ceda8f2
-Merge: 2c164b7 c28d5ea
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 5 09:09:59 2017 -0800
-
- Merge pull request #12687 from SUSE/wip-18281-hammer
-
- hammer: mon: osd flag health message is misleading
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 2c164b73af9de4196821d9214fb7598ac88ef509
-Merge: dfefeda 996fc25
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Jan 5 15:20:28 2017 +0100
-
- Merge pull request #12423 from SUSE/wip-18222-hammer
-
- hammer: tests: qemu/tests/qemu-iotests/077 fails in dumpling, hammer, and jewel
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit dfefeda86e3e6761bc4a59cee960d807609344e4
-Merge: b0648f8 0c5ebf4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jan 4 20:15:21 2017 +0100
-
- Merge pull request #12744 from SUSE/wip-18385-hammer
-
- hammer: tests: Cannot clone ceph/s3-tests.git (missing branch)
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit b0648f85ee67da82ac8fb7e8f4c1546aa560bfda
-Merge: c45896a e97ceb1
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jan 4 11:43:29 2017 +0100
-
- Merge pull request #12418 from SUSE/wip-18218-hammer
-
- hammer: rgw sends omap_getvals with (u64)-1 limit
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit c45896a86810f02b86b3c355855eb70a998a3c9a
-Merge: 811213e db2d112
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jan 4 11:37:29 2017 +0100
-
- Merge pull request #12619 from Werkov/wip-18317-hammer
-
- hammer: rgw: TempURL in radosgw behaves now like its Swift's counterpart.
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit db2d112f22a525bfffb62e85747769a4b30f7375
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 4 16:30:50 2016 +0100
-
- rgw: TempURL in radosgw behaves now like its Swift's counterpart.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit a1ea7180969dcbaf88dfcc1bfafb17e82639df64)
-
- Conflicts:
- src/rgw/rgw_swift.cc
- - replace C++11 constructs,
- - s->info.method is actually unconditional member of
- allowed_methods, which was opaqued by C++11 ctors
- - drop temp_url_make_content_disp() which has no use with
- hammer's req_state
-
-commit 811213ef9df188c8cf21dec5aeab08093af483d7
-Merge: 9a8aaca 47e7202
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 3 15:31:27 2017 +0100
-
- Merge pull request #12312 from YankunLi/fix_parameter_check
-
- hammer: rbd: fix parameter check
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9a8aaca56e48aae78dff27a969e2398c332f2b09
-Merge: 78e3451 c4f1b42
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 3 15:31:03 2017 +0100
-
- Merge pull request #12446 from dillaman/wip-18111
-
- hammer: librbd: diffs to clone's first snapshot should include parent diffs
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 78e34519f9e3c72aa91587593dcb23dac4ade3a3
-Merge: a9de35a 0f83bb7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 3 15:23:07 2017 +0100
-
- Merge pull request #12398 from linuxbox2/hammer
-
- hammer: rgw: do not abort when accept a CORS request with short origin
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit a9de35a27cb7d57f8094de78f550291b1b45b944
-Merge: 3ef8d8c a602e2b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 3 09:17:35 2017 -0500
-
- Merge pull request #12758 from SUSE/wip-18397-hammer
-
- hammer: tests: OSDs commit suicide in rbd suite when testing on btrfs
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 67e2101ffa2b4defe07dec30b12cc37c9f2ed488
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jan 3 14:53:27 2017 +0100
-
- qa/distros: add centos yaml; use that instead
-
- Modeled after https://github.com/ceph/ceph/pull/12632
-
- Fixes: http://tracker.ceph.com/issues/18405
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit e9311ddb60638c1dd39325e279b97c9a7d09b8a4
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:35:02 2016 -0500
-
- qa/tasks/admin_socket: subst in repo name
-
- It is either ceph.git or ceph-ci.git.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bcbe45d948f1c4da02e27b3be5f29a8b52745e28)
-
-commit a602e2bf2e1cae8d21ae215c35a611cc99b6c7c9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jan 3 11:26:26 2017 +0100
-
- rbd: only test on xfs
-
- btrfs is not recommended for production
-
- See 5864d56592ef3ffe765aa1ef0865610dbc7e8725 for precendent.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit aa91bc7df963728e6a4d4db1086214e7873fc2e7
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jan 2 22:49:13 2017 +0100
-
- tests: rbd/test_lock_fence.sh: fix rbdrw.py relative path
-
- This commit fixes a regression introduced by
- cf294777ea92f0911813a7132068584d4f73a65a
-
- Fixes: http://tracker.ceph.com/issues/18388
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 91231de16dbe4d0e493ec617165a2b38078d122b)
-
-commit 0c5ebf4adf26274802ec4cff229b2272dc4a4266
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jan 4 10:03:08 2016 +0100
-
- use ceph-master branch for s3tests
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 21160124028ab123b5c547499d911b0a1397214f)
-
- Conflicts: (trivial resolution)
- qa/suites/rgw/multifs/tasks/rgw_s3tests.yaml
- qa/suites/rgw/verify/tasks/rgw_s3tests.yaml
- qa/suites/rgw/verify/tasks/rgw_s3tests_multiregion.yaml
-
-commit 3ef8d8c6f0ef712dcff207fb6ef17887bd8719d7
-Merge: e038662 d18240f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 2 20:34:42 2017 +0100
-
- Merge pull request #12743 from SUSE/wip-18383
-
- hammer: tests: populate mnt_point in qa/tasks/ceph.py
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d18240f679840bdaeec1e3f7cdd9164b4406673c
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jan 2 14:22:43 2017 +0100
-
- qa/tasks/ceph.py: populate mnt_point in hammer
-
- In hammer, there is no "mnt_point" variable, yet 53225d5 was cherry-picked to
- hammer - see 87e0299448908775600c62130617bad503027768 and https://github.com/ceph/ceph/pull/12455
-
- This caused lots of "NameError: global name 'mnt_point' is not defined" errors
- in hammer integration testing.
-
- This is not a cherry-pick, because the mnt_point variable was introduced by
- a54ff597faa379c8fd369352fb924651be269f95 ("tasks/ceph: convert cluster creation
- to work with multiple clusters") which was not backported to hammer.
-
- Fixes: http://tracker.ceph.com/issues/18383
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit ac62d7996b95d8fdd5665e490fc09506c8fe9e68
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Mon Oct 31 13:59:55 2016 +0800
-
- rgw: fix osd crashes when execute "radosgw-admin bi list --max-entries=1" command
-
- Fixes: http://tracker.ceph.com/issues/17745
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit 51a4405a1ef59671cbd51c530a84333359d3f3dd)
-
-commit 530d1e22920bd843d34ceffccad346fd5003c075
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Nov 29 13:36:37 2016 +0100
-
- rgw: use hammer rgw_obj_key api
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
-
-commit e396b37af147770434147c5bd0377e8624254cd9
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Nov 29 13:15:05 2016 +0100
-
- Revert "rgw: rgw_obj encoding fixes"
-
- This reverts commit c1b64c8f9c23473b758300958a94a172f1d39b64.
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
-
-commit a3e9865058e12fff18ee7674fcfd8435a1a37bf4
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 13:05:22 2016 -0500
-
- qa/tasks/workunit: clear clone dir before retrying checkout
-
- If we checkout ceph-ci.git, and don't find a branch,
- we'll try again from ceph.git. But the checkout will
- already exist and the clone will fail, so we'll still
- fail to find the branch.
-
- The same can happen if a previous workunit task already
- checked out the repo.
-
- Fix by removing the repo before checkout (the first and
- second times). Note that this may break if there are
- multiple workunit tasks running in parallel on the same
- role. That is already racy, so if it's happening, we'll
- want to switch to using a truly unique clonedir for each
- instantiation.
-
- Fixes: http://tracker.ceph.com/issues/18336
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2a7013cd5a033c5be43350505d75f088e831e201)
-
-commit a70e0d58e10184b0903ba36c047a237be3c7cc19
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 16 15:06:16 2016 -0500
-
- qa/tasks/workunit: retry on ceph.git if checkout fails
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 72d73b8c8836ae35c518fa09f44805a74038f02a)
-
-commit c28d5ea7107427175ef3f6089aaa36c97c2919bc
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 7 09:50:26 2016 -0500
-
- mon/OSDMonitor: only show interesting flags in health warning
-
- Also add PAUSEREC flag into the list.
-
- Fixes: http://tracker.ceph.com/issues/18175
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 26220f0608f5ed4a7d97fb8d10d0d12a0fcf5583)
-
- Conflicts:
- src/mon/OSDMonitor.cc (hammer lacks CEPH_OSDMAP_FULL and order of flags
- is slightly different)
-
-commit d1c654ea3f3b8c194f3fdc7295cb379c6270d6b3
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 19 14:08:11 2016 -0500
-
- qa/workunits: include extension for nose tests
-
- When you have a relative path you have to include the extension.
- Weird.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5666fd61d6dbd40be1d79354227cabd562e829ea)
-
- Conflicts:
- qa/workunits/fs/test_python.sh (not in hammer)
- qa/workunits/rbd/test_librbd_python.sh (no valgrind in hammer)
-
-commit eaa51f6f907019727eb18fc4174fe4f2d04f396a
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 15:10:28 2016 -0500
-
- qa/workunits: use relative path instead of wget from git
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit cf294777ea92f0911813a7132068584d4f73a65a)
-
- Conflicts: (all trivial)
- qa/workunits/fs/test_python.sh
- qa/workunits/rados/test_python.sh
- qa/workunits/rbd/rbd_mirror.sh
- qa/workunits/rbd/rbd_mirror_stress.sh
- qa/workunits/rbd/test_librbd_python.sh
- qa/workunits/rbd/test_lock_fence.sh
-
-commit 8eb4e8b6fd6c803fa9bea781db07c54d901e34cc
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:26:14 2016 -0500
-
- qa/tasks/workunit.py: add CEPH_BASE env var
-
- Root of git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 27b8eac24922f8b4bd065e6e7f0bc8e2ba37b5d5)
-
-commit dccf904241f2a00ba0317135bd3cbe56c6dfdb80
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:25:23 2016 -0500
-
- qa/tasks/workunit: leave workunits inside git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4602884ab8f5a256d13091f7239d938990482d95)
-
-commit e038662d80ec1c59edb3d6a1c63197ca387d26b2
-Merge: 12d6781 59878b3
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:40:08 2016 -0600
-
- Merge pull request #12455 from liewegas/qa-suite-hammer
-
- hammer: merge ceph-qa-suite
-
-commit 59878b3bf775fabf0f4c168e67d6f473e69c15a1
-Merge: 12d6781 7ed0dce
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:30:00 2016 -0600
-
- merge ceph-qa-suite
-
-commit 7ed0dce3cf7ded278e59a9b36d3fd713e3c42b8d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:29:55 2016 -0600
-
- move ceph-qa-suite dirs into qa/
-
-commit 08ce5441dbad8754205717a20d6273c0a099777a
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:27:47 2016 -0500
-
- Revert "tasks/workunit.py: depth 1 clone"
-
- This reverts commit 12a707cb0f7b162e15c31915eb677bbd49b5e2cf.
-
-commit 12a707cb0f7b162e15c31915eb677bbd49b5e2cf
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:19:44 2016 -0500
-
- tasks/workunit.py: depth 1 clone
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4faf77a649cb3f8ddf497ca81937b3dbf63a18dc)
-
-commit 6bdc3bb6a00480b721b9795bd5e132b1dbf04ac0
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:18:29 2016 -0500
-
- tasks/workunit: remove kludge to use git.ceph.com
-
- This was hard-coded to ceph.git (almost) and breaks when
- you specify --ceph-repo. Remove it entirely. We'll see if
- github.com is better at handling our load than it used to
- be!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 159c455a0326eef2c017b3e3cf510f918b5ec76c)
-
-commit 87e0299448908775600c62130617bad503027768
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Dec 10 02:36:52 2016 +0800
-
- tasks/ceph: restore context of osd mount path before mkfs
-
- all newly created files and directories under the mount dir inherit the
- SELinux type of their parent directory. so we need to set it before
- mkfs.
-
- Fixes: http://tracker.ceph.com/issues/16800
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 53225d5272a1d35d4183fcfa55a139f55f77e122)
-
-commit ca933160bec3532a5b2846fc7e684f11509c8298
-Merge: bbb2615 107e9c3
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 12 16:42:55 2016 -0600
-
- Merge pull request #1278 from ceph/wip-16225-min
-
- hammer: SIGABRT in TrackedOp::dump() via dump_ops_in_flight()
-
-commit c4f1b42810339b5b45b48f74c3ff0ae661a8807a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 12 11:53:00 2016 -0500
-
- librbd: diffs to clone's first snapshot should include parent diffs
-
- If the clone has a backing object created after the snapshot that
- overwrites an extent of the parent, the parent diffs within that
- extent are not included in the result.
-
- Hammer-specific implementation due to librbd refactoring during the
- Infernalis release.
-
- Fixes: http://tracker.ceph.com/issues/18111
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 996fc2575ef988e6b20fda9ca771b2f6f141cbd3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 7 09:59:39 2016 -0500
-
- qa/workunits/rbd: removed qemu-iotest case 077
-
- The test case is not stable due to racing console output. This
- results in spurious failures.
-
- Fixes: http://tracker.ceph.com/issues/10773
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2c70df978d605a45ff81971b86f5afbefbdaabb6)
-
-commit e97ceb13242fd73b05a20b60208fee7f032e3ef3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Nov 28 14:20:03 2016 -0800
-
- rgw: omap_get_all() fixes
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 99e866feb3f8aa0ff768d6253979b6b4fc0fa452)
-
-commit 38ab892201ce9ca95010e5f33277be2b0213e96d
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 21 18:37:39 2016 -0500
-
- rgw/rgw_rados: do not omap_getvals with (u64)-1 max
-
- Fixes: http://tracker.ceph.com/issues/17985
-
- This will make the OSD fall over if the object is big
- and the OSD doesn't impose it's own fail-safe limit.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7cd123ec0dd5951628e4f8ddd4e044a0fbb82f2f)
-
-commit fe77c9a906fb0fbd85762c8c079d85ca106613ce
-Author: Wanlong Gao <wanlong.gao@easystack.cn>
-Date: Thu Jun 23 20:04:25 2016 +0800
-
- osd: limit omap data in push op
-
- We already have the config osd_recovery_max_chunk to limit the total
- size of omap entries and omap data. But we need an individual config
- to limit the number of omap entries independently. We call this config
- osd_recovery_max_omap_entries_per_chunk here with the default number
- of 64000.
-
- Signed-off-by: Wanlong Gao <wanlong.gao@easystack.cn>
- (cherry picked from commit 56064c5cb645254574dbad00e6c16b783115bb93)
-
-commit 0f83bb7dbc5f81ecef0108b746f5bca58e76ff31
-Author: LiuYang <yippeetry@gmail.com>
-Date: Thu Dec 8 14:21:43 2016 +0800
-
- rgw: do not abort when accept a CORS request with short origin
-
- Fixed: #18187
-
- when accept a CROS request, the request http origin shorter than the bucket's corsrule
- (eg. origin: http://s.com corsrule: <AllowedOrigin>*.verylongdomain.com</AllowedOrigin>).
- the rgw_cors.cc::is_string_in_set() will have a wrong index, the radosrgw server will
- abort.
-
- $ curl http://test.localhost:8000/app.data -H "Origin:http://s.com"
-
- 0> 2016-12-05 03:22:29.548138 7f6add05d700 -1 *** Caught signal (Aborted) **
- in thread 7f6add05d700 thread_name:civetweb-worker
-
- ceph version 11.0.2-2168-gd2f8fb4 (d2f8fb4a6ba75af7e6da0f5a7f1b49ec998b1631)
- 1: (()+0x50720a) [0x7f6b147c420a]
- 2: (()+0xf370) [0x7f6b09a33370]
- 3: (gsignal()+0x37) [0x7f6b081ca1d7]
- 4: (abort()+0x148) [0x7f6b081cb8c8]
- 5: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f6b08ace9d5]
- 6: (()+0x5e946) [0x7f6b08acc946]
- 7: (()+0x5e973) [0x7f6b08acc973]
- 8: (()+0x5eb93) [0x7f6b08accb93]
- 9: (std::__throw_out_of_range(char const*)+0x77) 0x7f6b08b21a17]
- 10: (()+0xbd97a) [0x7f6b08b2b97a]
- 11: (()+0x449c1e) [0x7f6b14706c1e]
- 12: (RGWCORSRule::is_origin_present(char const*)+0x48) [0x7f6b147073b8]
- 13: (RGWCORSConfiguration::host_name_rule(char const*)+0x37) [0x7f6b147074e7]
- 14: (RGWOp::generate_cors_headers(std::string&, std::string&, std::string&, std::string&, unsigned int*)+0xa3) [0x7f6b14593e63]
- 15: (dump_access_control(req_state*, RGWOp*)+0x61) [0x7f6b14653f91]
-
- Signed-off-by: LiuYang <yippeetry@gmail.com>
- (cherry picked from commit 67d4d9e64bc224e047cf333e673bb22cd6290789)
-
-commit 47e72024e091a55a5fcd31853e143c94d850b00a
-Author: YankunLi <lioveni99@gmail.com>
-Date: Mon Dec 5 14:39:20 2016 +0800
-
- rbd: fix parameter check
-
- using import-diff command, the imagename must be specified.
-
- Signed-off-by: Yankun Li <lioveni99@gmail.com>
-
-commit bbb261533455d37b4ef1e5bfc3c8f7765ab74e5a
-Merge: 8e5872b 4533623
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 2 15:09:32 2016 -0500
-
- Merge pull request #1276 from ceph/no-btrfs-on-hammer
-
- rados: remove btrfs tests; use xfs instead
-
-commit 7106f426c96978a0a41e9d1482239a4da505157e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Nov 23 14:48:11 2016 +0800
-
- FileStore::_do_fiemap: do not reference fiemap after it is freed
-
- `last` points to fiemap::fm_extends[n], and if fiemap gets freed, we can
- not reference any of its fieldis. so we could remember the check result before
- freeing it.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c3748fa7737b6c43de2dae5d957fcff01322515c)
-
- Conflicts:
- src/os/FileStore.cc
- put the parameter is_last in the right place
-
-commit 92de2fd9a8b19c3d83d2567720f4e7ad21e43a63
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Nov 29 21:50:52 2016 -0500
-
- msg/simple/Pipe: handle addr decode error
-
- Fixes: http://tracker.ceph.com/issues/18072
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2f5cfbc0de5464ab80581c416413a86c3d38dfb7)
-
-commit 12d67814912514bb34ba61ceb45a744299d65ff2
-Merge: 8406ee5 e1694d6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Nov 29 22:16:34 2016 +0100
-
- Merge pull request #11457 from tchaikov/wip-17558-hammer
-
- hammer: mon: send updated monmap to its subscribers
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 8406ee58ca5c4abbe962ba5a4025aabe220e3981
-Merge: bfda134 03af4aa
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Nov 29 22:12:46 2016 +0100
-
- Merge pull request #11628 from ceph/wip-hammer-11567
-
- hammer: rgw: Don't loop forever when reading data from 0 sized segment.
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 5f00e1d4c04698c68248844aad31f4b36eff5735
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Feb 11 11:18:41 2015 +0800
-
- osd: Add func has_flag in MOSDOp.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (manually cherry picked just one line from d9a2ca5c5ae50dc34e184d577c7b24c56b6cc6ad)
-
-commit be7184589de9208986a2054491b86782dac938e8
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 24 14:02:32 2016 -0400
-
- osd: reject PARALLELEXEC ops with EINVAL
-
- Errors are better than crashing.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 407495197dd878b62f1356f6d939e33ab50d78c6)
-
- Conflicts:
- src/osd/ReplicatedPG.cc (trivial resolution)
-
-commit 8d352358edc156f70b5eb68c37bb56cb2392fce2
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 24 14:02:14 2016 -0400
-
- ceph_test_rados_api_misc: test rados op with bad flas
-
- Pass the bad PARALLELEXEC flag to remove(), which takes a flags arg.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1aa807f4f29b4b016cc737ffa443e8f30c3b7693)
-
- Conflicts:
- src/test/librados/misc.cc (dropped ioctx.remove() test because there is no
- remove() in hammer librados)
-
-commit bfda134f6844d6e238052e4f1900f3d2e7497d5e
-Merge: 9bf08dd 0d2f431
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Nov 24 09:15:50 2016 +0100
-
- Merge pull request #10437 from odivlad/fix-doc
-
- hammer: docs: Bucket object versions
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 03af4aae8103b52b19737c951e432efc7135b7ca
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Thu Oct 13 21:12:36 2016 -0400
-
- Don't loop forever when reading data from 0 sized segment.
-
- The 0 sized segment can arise depending on how
- the client uploads the object in the first place.
- The cpu loop then happens during a swift `GET'.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 46c5f9773246522e66bb2cca49345d0b62a16c42)
-
-commit 8312dc61ceaa39dca675fda2cb7c88ec3c5ca9f7
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 14 13:28:39 2016 -0700
-
- common/TrackedOp: Move tracking_enabled check into register_inflight_op()
-
- Make tracking_enabled (and the lock private.)*
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (Partial cherry picked from commit 4e8e6172e8f6cc2adc63a429c32f5edd03982f5e)
-
- * Backport: Exclude locking since tracking_enabled can't change after launch
-
-commit c7220ccc0ec80bb6788befefe71f676c75457b70
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 10 21:24:25 2016 -0800
-
- common/TrackedOp: Handle dump racing with constructor
-
- Use is_tracked to prevent TrackedOp::dump() from trying to call
- virtual function while still in OpRequest constructor.
-
- Fixes: #8885
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ad13e05499669a79bde9a219ba1089f929e0388e)
-
- Conflicts:
- src/common/TrackedOp.cc
- src/common/TrackedOp.h
- Hammer can't use atomic<bool> so use atomic_t instead
-
-commit e8e7664247c7112f1ba03ce4cab915fe70ea5b8e
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 4 18:43:43 2016 -0800
-
- common/TrackedOp: Missed locking when examining "events"
-
- Another crash caused by a dump_ops_in_flight similar to #8885
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit be098c83143226e502a0587c9215cff941dbace1)
-
- Conflicts:
- src/common/TrackedOp.h (trivial)
-
-commit ce58688537d41e0662949f34b3595459581e74fc
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jul 11 17:58:22 2016 -0700
-
- CLEANUP: Move locking into dump_ops_in_flight()/dump_historic_ops()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 17c645f70708134f50374cadb5505b0babe2265a)
-
- Conflicts:
- src/mds/MDSRank.cc (variation of code exists in mds/MDS.cc)
- src/mon/Monitor.cc (no equivalent code here)
-
-commit 5717eb001c6202837fe2e22039e3f855ea4aa065
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 14 15:47:02 2016 -0700
-
- mds, osd: Fix missing locking for "dump_blocked_ops"
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit be5bed840f21da998be3b8374a8e33f208258e1b)
-
- Conflicts:
- src/mds/MDSRank.cc (missing dump_blocked_ops in mds)
-
-commit 6a7fbf42fdb253b7143cb9b3933990145358e06c
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 10 21:29:13 2016 -0800
-
- osd: cleanup: Specify both template types for create_request()
-
- Code consistency
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cecdc49e6d2f38d5eb9f85218484f7a02bd2e1b7)
-
-commit 3e00ee5cfb0769e9b1c0e0a7540d0b14be880fed
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Fri Jul 17 10:44:06 2015 +0800
-
- osd: add dump_blocked_ops asok command.
-
- From ceph health we can see there are blocked ops and from 'ceph health
- detai' we can see which osd has blocked ops. Later we only in log of osd
- to see the detail message of blocked ops.
- Now via asok dump blocked ops.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit cf4e8c655c4a0e6c367c88338cd6e51a3474fa2f)
-
- Conflicts:
- src/common/TrackedOp.h (trivial)
-
-commit 656d0c9f307c1b3db072282be46decd72bc88810
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Jul 8 13:12:49 2015 +0800
-
- common/TrackedOp: Should lock ops_history_lock when access shutdown.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 7fe72a2e7d116093ccff6683666e6289f5f12421)
-
-commit 9bf08ddc9422484f5cf0f05c8ccdb4b440e9b641
-Merge: 9655228 2581953
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:50:58 2016 +0100
-
- Merge pull request #9873 from odivlad/fix-init-el7-hammer
-
- hammer: build/ops: remove SYSTEMD_RUN from initscript
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 9655228d1900d56f4b439d41b2c4a532158f6c51
-Merge: e2c3e21 cb9cc4e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:49:29 2016 +0100
-
- Merge pull request #10238 from aiicore/hammer
-
- hammer: mon: fix memory leak in prepare_beacon
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit e2c3e21aa4cae160c0136d8d1652b7e4a2c000f0
-Merge: 637d348 c5639e4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:44:19 2016 +0100
-
- Merge pull request #10569 from jschmid1/wip-16918-hammer
-
- hammer: build/ops: make stop.sh more portable
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 637d348a98676cc9bf13346d96e7f83219e914c2
-Merge: 84df525 2b87a55
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:40:28 2016 +0100
-
- Merge pull request #10724 from Vicente-Cheng/wip-16584-hammer
-
- hammer: crush: reset bucket->h.items[i] when removing tree item
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 84df525e60ea66a4a1808641a12eccd95e16dd2d
-Merge: a7c8c51 8568e57
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:20:29 2016 +0100
-
- Merge pull request #10904 from tchaikov/wip-14470-hammer
-
- hammer: mon: return size_t from MonitorDBStore::Transaction::size()
-
- Reviewed-by: Joao Eduardo Luis <joao@suse.de>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit a7c8c511ed061102e1b91858ca9772743d7e094e
-Merge: c8f54c8 a3ba985
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:18:42 2016 +0100
-
- Merge pull request #10905 from SUSE/wip-11101-hammer
-
- hammer: build/ops: improve ceph.in error message
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c8f54c84c33354ca27d277a25a2193a3fbd80880
-Merge: 48b6054 6c0b2b4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:16:48 2016 +0100
-
- Merge pull request #10987 from Vicente-Cheng/wip-16592-hammer
-
- hammer: librbd: ceph 10.2.2 rbd status on image format 2 returns "(2) No such file or directory"
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 48b6054adf4a2d0c58a87bb2a9e8e8719febdc10
-Merge: a97c81c 10472f0
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:13:05 2016 +0100
-
- Merge pull request #11125 from tchaikov/wip-17179-hammer
-
- hammer: tools: add a tool to rebuild mon store from OSD
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a97c81c3f00abbb79cef0ae069a6f151a089e30e
-Merge: c4cee49 4a36933
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:10:54 2016 +0100
-
- Merge pull request #11273 from aiicore/wip-17403-hammer
-
- hammer: mon: OSDMonitor: Missing nearfull flag set
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c4cee499622c3c151dcb363193af21844a2f24f5
-Merge: 9495584 ece0ec6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 22:06:32 2016 +0100
-
- Merge pull request #11618 from asheplyakov/hammer-16546
-
- hammer: rbd: fix possible rbd data corruption
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 949558462317e16e1f517bda3ce3465fe30b931b
-Merge: 1fda4a0 5fb8fb4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:56:22 2016 +0100
-
- Merge pull request #11676 from asheplyakov/hammer-16151
-
- hammer: osd: update PGPool to detect map gaps and reset cached_removed_snaps
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 1fda4a0fcfe6a9d8f96fe0e054c5b9e8a6e2ecd8
-Merge: 11886bd 31c2594
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:54:39 2016 +0100
-
- Merge pull request #11899 from SUSE/wip-17840-hammer
-
- hammer: rgw: the value of total_time is wrong in the result of 'radosgw-admin log show' opt
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 11886bd5d20c8b2bf09dbabda1e49f14d2283260
-Merge: 21dc0ec f99a1d3
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:53:40 2016 +0100
-
- Merge pull request #11927 from SUSE/wip-17764-hammer
-
- hammer: osd: fix collection_list shadow return value
-
- Reviewed-by: Haomai Wang <haomai@xsky.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 21dc0ec953adeeabe934cd1090f959db7d11cefc
-Merge: 8f19eca 5711e79
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:50:04 2016 +0100
-
- Merge pull request #12071 from SUSE/wip-17957-hammer
-
- hammer: RWLock.h: 124: FAILED assert(r == 0) in rados-jewel-distro-basic-smithi
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8f19eca51863ca1c1dfde068479bca5606e4550d
-Merge: af6e208 76eed80
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:47:24 2016 +0100
-
- Merge pull request #11929 from SUSE/wip-17359-hammer
-
- hammer: tools: ceph-objectstore-tool crashes if --journal-path <a-directory>
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit af6e2080f1ca56f1715ccb76d2372f86bdc272e9
-Merge: 655e904 fbf51ba
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:46:08 2016 +0100
-
- Merge pull request #11930 from SUSE/wip-17346-hammer
-
- hammer: cephx: Fix multiple segfaults due to attempts to encrypt or decrypt
-
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 655e904142c295ef66c376a3aca148cf2bce60c0
-Merge: c118c0a 7ad7de6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:44:39 2016 +0100
-
- Merge pull request #11931 from SUSE/wip-17333-hammer
-
- hammer: tools: crushtool --compile generates output despite missing item
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit c118c0af9da259330f5e5c3f3babdfca647a566b
-Merge: e4ea945 ad42da4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:43:19 2016 +0100
-
- Merge pull request #11932 from SUSE/wip-17146-hammer
-
- hammer: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e4ea9452cf78e01413714b597f49d32d1d11a6dd
-Merge: 92e0a47 e302e63
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:42:24 2016 +0100
-
- Merge pull request #11933 from SUSE/wip-17142-hammer
-
- hammer: osd: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 92e0a471adffff1fa2027714116b3d0b5120b6bb
-Merge: d7fc569 64eeb8d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:40:47 2016 +0100
-
- Merge pull request #11934 from SUSE/wip-17120-hammer
-
- hammer: mon: %USED of ceph df is wrong
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit d7fc569f70b98cf2fa5a842c753f43adc801cdf7
-Merge: 8a15ac7 fc46591
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:39:12 2016 +0100
-
- Merge pull request #11935 from SUSE/wip-16870-hammer
-
- hammer: osd: crash on EIO during deep-scrubbing
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8a15ac77c39cc3cc571c62bab68d327894f2db7a
-Merge: 44588f2 4c780bd
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:33:27 2016 +0100
-
- Merge pull request #11937 from SUSE/wip-16428-hammer
-
- hammer: mon: prepare_pgtemp needs to only update up_thru if newer than the existing one
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 44588f2755429e65960eebf51b21ddb14f245bb8
-Merge: 8c90170 a56b93f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:31:15 2016 +0100
-
- Merge pull request #11938 from SUSE/wip-14323-hammer
-
- hammer: msg: OpTracker needs to release the message throttle in _unregistered
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8c90170685fa74fa338b4f22b349e62a01920220
-Merge: 49964b0 2332cf2
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 21:29:45 2016 +0100
-
- Merge pull request #11939 from SUSE/wip-13927-hammer
-
- hammer: mds: fix cephfs-java ftruncate unit test failure
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 0d2f431b2ecad03a6cda6ffbc9f9cbaac0956af9
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Mon Jul 20 15:37:09 2015 +0800
-
- rgw: doc: Mark S3 object version API as supported
-
- S3 object version is already in since Hammer.
- Ref: http://marc.info/?l=ceph-devel&m=143715290627682
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit b62c3b9537e8ab33416a7fb0dd7b801a790d42ee)
-
-commit 8ca16052138bebe9f009104e62b147750dd6584d
-Author: shawn <chen.xiaowei@h3c.com>
-Date: Thu Jul 30 10:09:12 2015 +0800
-
- doc: add bucket object version description.
- bucket object version has been supported, but do not have description in the docs,
- so add this part.
-
- Signed-off-by: shawn chen <cxwshawn@gmail.com>
- (cherry picked from commit 5c395ff85627f0f4154af27aff03dd0a9c409fb4)
-
-commit 49964b01508c5f2f9b5edd620051c18fbea7dfd7
-Merge: 6e1ae86 d91c62d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:52:43 2016 +0100
-
- Merge pull request #11946 from SUSE/wip-17883-hammer
-
- hammer: mon: OSDs marked OUT wrongly after monitor failover
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 6e1ae86e88661ce9de5aefb38390b4bfbc677a0a
-Merge: 2f9869c ab0786d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:51:51 2016 +0100
-
- Merge pull request #11948 from SUSE/wip-17671-hammer
-
- hammer: rbd: export diff should open image as read-only
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2f9869c1be5e03ca1d9daac9c541cfb226b2ae77
-Merge: 2dac884 815541f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:48:06 2016 +0100
-
- Merge pull request #11949 from SUSE/wip-17374-hammer
-
- hammer: librbd: image.stat() call in librbdpy fails sometimes
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2dac8848e94b9dcf1a217c6c70164edf669a8eee
-Merge: 1503c2b da653fc
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:41:03 2016 +0100
-
- Merge pull request #11950 from SUSE/wip-17123-hammer
-
- hammer: rgw: COPY broke multipart files uploaded under dumpling
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 1503c2ba753b8ee31e7c632d0463691a83a22b8b
-Merge: 118beb9 009c844
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:39:46 2016 +0100
-
- Merge pull request #11951 from SUSE/wip-16594-hammer
-
- hammer: rgw: swift: ranged request on a DLO provides wrong values in Content-Range HTTP header
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 118beb9a390bf481e520d6888453eecc805bb0d7
-Merge: 3b226b8 3404da8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:17:00 2016 +0100
-
- Merge pull request #11952 from SUSE/wip-16318-hammer
-
- hammer: rgw: fix inconsistent uid/email handling in radosgw-admin
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3b226b8282f1c994cf3fbb747131121ec9b0c7a0
-Merge: 9ad7369 d89b1f8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 10:14:10 2016 +0100
-
- Merge pull request #12018 from trociny/wip-17068-hammer
-
- hammer: librbd: request exclusive lock if current owner cannot execute op
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9ad73698f57598ae1302aaf175cb96082eb64961
-Merge: 3ca7317 a7b182e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 06:42:06 2016 +0100
-
- Merge pull request #11045 from SUSE/wip-17150-hammer
-
- hammer: rgw: Anonymous user is able to read bucket with authenticated read ACL
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3ca73177fc28327960f0a8c1612de0358051d515
-Merge: 708c549 d50a501
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Nov 23 06:32:09 2016 +0100
-
- Merge pull request #11809 from SUSE/wip-17631-hammer
-
- hammer: rgw: fix crash when client posts object with null condition
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 10472f0521f6aef516660a470be8c5fe453b1a76
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Nov 22 11:53:57 2016 +0800
-
- PendingReleaseNotes: document the feature to rebuild monstore
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 9473135aa65282499f67847edb52b7dfd8b374fb
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Oct 10 18:43:39 2016 +0800
-
- doc: fill keyring with caps before passing it to ceph-monstore-tool
-
- to make sure the recovered monitor store is ready for use.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit af8e21163735377071b6832d8a81b035bb835257)
-
-commit 9c00ba17627c2b3526c558564954b8bb1d8472ef
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Oct 10 16:32:27 2016 +0800
-
- tools/ceph_monstore_tool: bail out if no caps found for a key
-
- we take it as an error if no caps is granted to an entity in the
- specified keyring file when rebuilding the monitor db.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b4bd4004a836121c11b0bb97d8123df54c271f04)
-
-commit 48696e9d6d89f6b6e99fb76ffa61665c026d7a0e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Sep 30 17:58:14 2016 +0800
-
- tools/ceph_monstore_tool: update pgmap_meta also when rebuilding store.db
-
- we should rebuild pgmap_meta table from the collected osdmaps
-
- Fixes: http://tracker.ceph.com/issues/17400
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cdfa7a69f63d047205dcfccd63b5d58ab0d4695b)
- Conflicts:
- src/tools/ceph_monstore_tool.cc: remove C++11-ism
-
-commit ca67e8e88c06a9a37e5dc9e8fe5a1dd1821f8452
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sun Sep 18 11:40:56 2016 +0800
-
- tools/rebuild_mondb: kill compiling warning
-
- As follow:
-
- [ 72%] Building CXX object src/tools/CMakeFiles/ceph-objectstore-tool.dir/RadosDump.cc.o
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc: In function ‘int update_mon_db(ObjectStore&, OSDSuperblock&, const string&, const string&)’:
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc:289:22: warning: ‘crc’ may be used uninitialized in this function [-Wmaybe-uninitialized]
- if (have_crc && osdmap.get_crc() != crc) {
- ^
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc:238:14: note: ‘crc’ was declared here
- uint32_t crc;
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit f16a31476a3f9b44a7c3dabf0dfd2a0d015b11b9)
-
-commit 94390a3296483323d1b2c57856ea2e8ecca99b64
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sun Sep 18 10:43:10 2016 +0800
-
- tools/rebuild_mondb: return error if ondisk version of pg_info is incompatible
-
- In this case "r" will be >= 0 and caller will be able to catch
- this kind of error.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit ac7c1dca0a4f6e92e50d362784122e2d3200e6b5)
-
-commit eaeb52057509b1fa45592ecc147ad694f57d33f3
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sun Sep 18 10:33:56 2016 +0800
-
- tools/rebuild_mondb: avoid unnecessary result code cast
-
- In general we return negative codes for error cases, so there is
- no need perform the cast here.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 6a1c01d334fe65124043aa68a6e0cfaea43836b5)
-
-commit 828a4d7a07d178f2dcde30dfe96ca9f054bc1c0d
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Aug 31 00:59:58 2016 +0800
-
- doc: add rados/operations/disaster-recovery.rst
-
- document the process to recover from leveldb corruption.
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 79a9f299253e24d20547131b3c9c9e0667e3b869)
-
-commit 3ef5dcd2b37055994794f9cf6139dc2d8807d637
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 29 19:53:11 2016 +0800
-
- tools/ceph_monstore_tool: add "rebuild" command
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d909fa035c8fbbded786b2ca072acc10ea6b6052)
-
- Conflicts:
- ceph_monstore_tool.cc: remove C++11ish
-
-commit 6695d1792df9ca7cf5afd5a8c25a04f1eb9ff0fa
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 29 19:52:19 2016 +0800
-
- tools/ceph-objectstore-tool: add "update-mon-db" command
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 24faea7ce446bbf09cbd4a9d3434dd5444a6c295)
-
- Conflicts:
- src/tools/Makefile-server.am: add rebuild_mondb.{cc,h}, as autotools
- support is dropped in master
- ceph_objectstore_tool.cc, rebuild_mondb.cc: remove C++11ish
- adapt to hammer
-
-commit e7d9c15871efcd17b9b1064a5ee49edfe4a159e9
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Aug 31 13:11:24 2016 +0800
-
- mon/AuthMonitor: make AuthMonitor::IncType public
-
- so ceph-objectstore-tool is able to use it when rebuilding monitor
- db.
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 19ef4f16b3aba04119ac647cd6261c74a57ce829)
-
-commit 107e9c358acbc75f212f0bc6fcf83075933035b3
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Mar 15 11:29:17 2016 -0700
-
- thrasher: Add dump_ops_enable options
-
- Add dump_ops_enable which continuously dumps ops using 3 commands
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (Partial cherry picked from commit 7a528763d126eaca90e40b02aad02ab9c3c92a32)
-
- Excluded dynamic optracker testing with optrack_toggle_delay option
-
- Conflicts:
- tasks/ceph_manager.py (trivial)
- tasks/thrashosds.py (trivial)
-
-commit b7c87ae74a7f3f3c0096fe6cfe36e1077f96ea1f
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Apr 12 09:27:33 2016 -0700
-
- ceph_manager: Add timeout to admin_socket/osd_admin_socket
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 4ad3b866041a3a5391f46cd3d96297834b95956b)
-
-commit f79027a229b2cbb16eaf877b06bf35ecff647bea
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Feb 25 16:10:51 2015 +0800
-
- Thrasher: log backtrace of thrown exception
-
- * add a wrapper to log uncaught exception to self.logger, greenlet also
- prints the backtrace and exception to stderr, but teuthology.log does
- not capture stderr. so we need to catch them by ourselves to reveal
- more info to root-cause this issue.
- * log uncaught exception thrown by Thrasher.do_thrash() to self.log.
-
- See: #10630
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 64de3cd574b200d90cb3aea0d646a6236d8fec5e)
-
-commit 4533623b3df1e48b821a509013a91e8c3a7ec4a0
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 21 16:58:48 2016 -0500
-
- rados: remove btrfs tests; use xfs instead
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit fb7f49658815d5427f6454b20560991a785a8399
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Mon Mar 30 15:25:34 2015 +0800
-
- common/TrackedOp: checking in flight ops fix
-
- Return earlier if tracking is not enabled when checking in flight ops.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit 7509a6caa4964d71625c43f2ddc10e6274b6a21b)
-
-commit b58873efafabdc9791f500cff77be9a0a7002227
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Mon Mar 30 14:41:21 2015 +0800
-
- common/OpTracker: don't dump ops if tracking is not enabled
-
- If tracking is disabled, there is nothing to dump. No need to go through
- each sharded list. This is true for both in flight and historical ops.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit ec3c40952bbc4b495875e08b57d764a7487c6c09)
-
-commit 24c92fea4bc68a27a240155f48ee5fa4ee3bbfa0
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Jul 6 13:49:42 2015 +0800
-
- common/TrackedOp: check tracking_enabled for event "initiated/done".
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit d7585c020de41f25e6a598661844169f2bdbb2b4)
-
-commit 0f37a397e35f105b5ea57c7a1a0463c95a2384e1
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Jul 6 10:48:36 2015 +0800
-
- common/TrackedOp: clean up code make look good.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit edefd05edce6728774bb396ea4e6641ea53463cd)
-
-commit ece0ec60154d22bca7002cc308f3a0f4e36a053e
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Mon May 23 15:14:21 2016 -0700
-
- hammer: ObjectCacher: fix bh_read_finish offset logic
-
- If we have an incoming read split across multiple BufferHeads, we want to
- line up the BufferHead's bl with the incoming OSDOp's bl at the right offset. We
- were erroneously using this nonsense calculation (always equal to zero!) when
- a much simpler comparison of the BufferHead's logical object offset to the
- incoming OSDOp's logical offset will do the trick nicely.
-
- Fixes: http://tracker.ceph.com/issues/16002
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 9ec6e7f608608088d51e449c9d375844631dcdde)
-
-commit 33f277e601199003fc226c84f67d1bbebb36ad2c
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Fri Jun 10 17:01:09 2016 -0700
-
- hammer: test: build a correctness test for the ObjectCacher
-
- For now it's very specifically designed to reproduce
- http://tracker.ceph.com/issues/16002, but it can
- be extended to other patterns in the future.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 0fd55a9886dd8da344c23a5e9898ee5c5061e8f9)
-
- Hammer specific changes:
-
- * use utime_t instead of ceph::real_time
- * ObjectCacher::prepare_write() has no journal_tid argument
- * rewrite the code in C++98
-
-commit 439ce945dde196a4439e4468681e35eadd4fca5f
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue May 31 16:18:19 2016 -0700
-
- hammer: test: split objectcacher test into 'stress' and 'correctness'
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit cc9aab1b0a22c3f7320046b97f75dccf2b86cc6d)
-
-commit ff3635a5457ac89ea0fb02f40f0ca723fe34e87c
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Jun 23 13:41:46 2016 -0700
-
- hammer: test: add a data-storing MemWriteback for testing ObjectCacher
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit ed5801492bf2850e80a328ce5a61cb1ff2709215)
-
- Hammer specific changes:
-
- * use utime_t instead of ceph::real_time
- * ObjectCacher::prepare_write() has no journal_tid argument
- * rewrite code in C++98
-
-commit 7a2abfac759acaf668c6ace25df94619f27e829d
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Oct 28 17:06:59 2015 +0800
-
- hammer: objectcacher: introduce ObjectCacher::flush_all()
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bd86c301a54a6e23cf2ce257b8024b6b92dfbe11)
-
- Conflicts:
- src/osdc/ObjectCacher.h - whitespace only changes
-
- Semantic conflicts:
- ObjectCacher::flush_all(): dirty_or_tx_bh is a set<BufferHead *>
- in Hammer
-
-commit 9df96606edfb9ff9932297b8253a297cf75c02f6
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Jun 23 14:23:51 2016 -0700
-
- hammer: osd: provide some contents on ObjectExtent usage in testing
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit a555d9a0c7d3b6c2206520cf78445234b0834639)
-
-commit c5639e4e276a8d5f6457ce9f63b3e77a230a669c
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Dec 14 09:41:10 2015 +0000
-
- stop.sh: make more portable
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 27f2d806f905df1a51b11bd79f1af4c26471407a)
-
-commit 708c549b8d77b9a9ea4d46640287848a74898a40
-Merge: f776699 0ac7f2f
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 21 09:03:44 2016 -0600
-
- Merge pull request #12006 from SUSE/wip-17905-hammer
-
- hammer: mon: MonmapMonitor should return success when MON will be removed
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d1e1207275eeaf2409b435236c579116900eb6b7
-Author: Ning Yao <yaoning@unitedstack.com>
-Date: Thu Oct 13 16:53:18 2016 +0800
-
- FileStore:: fix fiemap issue in xfs when #extents > 1364
-
- Fixes: #17610
- Backport: jewel, hammer
- Signed-off-by: Ning Yao <yaoning@unitedstack.com>
- (cherry picked from commit 1a1c126d80b427d5230347fbc71a4edea5c0b6c8)
-
- Conflicts:
- src/os/FileStore.cc
- in hammer, there is no _do_seek_hole_data() function so remove it
- in hammer, the logic is in FileStore::fiemap not in _do_fiemap()
- so port the logic to the else branch in FileStore::fiemap
-
-commit a3ba985c38c07f85056f90d125e32ea277c65932
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jan 5 15:00:59 2016 +0800
-
- ceph.in: improve the error message
-
- Fixes: #11101
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e19e8f1553fdf8b6b642d3222d28f242fab696f0)
-
-commit 5711e794218cc83db023e1d6600ed75ef3ac3fcc
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 29 15:24:34 2016 -0400
-
- os/ObjectStore: fix _update_op for split dest_cid
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e3dc7c772f563f97bc68ebc6dc6e0d408e7c11f3)
-
-commit cb9cc4e57a2abd5c13f61599a7fe594c5f21c9c3
-Author: Igor Podoski <igor.podoski@ts.fujitsu.com>
-Date: Mon Jul 11 12:37:25 2016 +0200
-
- mon/MDSMonitor: fix memory leak in prepare_beacon
-
- prepare_beacon() case of prepare_update() should put()
- message in two more cases, because is the last step
- of dispatch()
-
- Fixes: http://tracker.ceph.com/issues/17285
- Signed-off-by: Igor Podoski <igor.podoski@ts.fujitsu.com>
-
-commit 4a36933df8b9338c0a32d582e005894442092d0f
-Author: Igor Podoski <igor.podoski@ts.fujitsu.com>
-Date: Wed Sep 14 07:36:43 2016 -0400
-
- mon: OSDMonitor: Missing nearfull flag set
-
- Output from 'ceph -s -f json-pretty' wans't showing nearfull flag set.
-
- Signed-off-by: Igor Podoski <igor.podoski@ts.fujitsu.com>
- (cherry picked from commit 754887b575795ef96cda095f7f0d8c898e20f00f)
-
-commit e1694d6e85694ee8750b2af211505b89b3d6f0c8
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Oct 13 13:19:27 2016 +0800
-
- mon: send updated monmap to its subscribers
-
- prior to this change, we sends monmap when serving the subscription
- requests, but the updates are not sent to the subscribers anymore.
- so we need to send latest monmap to subscribes and update the
- subscription status accordingly when the monmap is updated.
-
- http://tracker.ceph.com/issues/17558
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c2b348b12c47ba505f72228ae0ea9b1a1b674719)
- Conflicts:
- src/mon/Monitor.cc: resolve conflicts
- src/mon/MonmapMonitor.cc: remove C++11-ism
-
-commit ab0786d6a023e391e61119bd309985dcf6e05a4d
-Author: YankunLi <lioveni99@gmail.com>
-Date: Tue Sep 6 16:16:58 2016 +0800
-
- rbd: this command should be EXPORT_DIFF
-
- Fixes: http://tracker.ceph.com/issues/17671
-
- Signed-off-by: liyankun <lioveni99@gmail.com>
-
-commit d91c62dcf5b1c98b4cfed4eebf29ff9a9d64289b
-Author: Dong Wu <archer.wudong@gmail.com>
-Date: Thu Oct 27 11:02:36 2016 +0800
-
- mon: update mon(peon)'s down_pending_out when osd up
-
- Fixes: http://tracker.ceph.com/issues/17719
- Signed-off-by: Dong Wu <archer.wudong@gmail.com>
- (cherry picked from commit 664254a17afbad86983ea5b5b8d385662d89e65e)
-
- Conflicts:
- src/mon/OSDMonitor.cc (auto declaration for variable "found" is a C++11ism,
- replace with the full verbose C++98 type)
-
-commit d89b1f848b8c942d150076cef99491e4c5031bda
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Nov 16 12:01:00 2016 +0200
-
- librbd: request exclusive lock if current owner cannot execute op
-
- This is a direct commit to hammer due to librbd code has evolved
- significantly in the master.
-
- Fixes: http://tracker.ceph.com/issues/17068
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 2b87a551c603291d6c018ed72b0c58e8e45bc334
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jul 1 20:44:35 2016 +0800
-
- crush: reset bucket->h.items[i] when removing tree item
-
- * crush: so we don't see the reference after the removing, this keeps
- check_item_loc() happy, and move_bucket() use check_item_loc() to see if
- the removed bucket disappears after the removal.
- * test: also add unittest_crush_wrapper::CrushWrapper.insert_item
-
- Fixes: http://tracker.ceph.com/issues/16525
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit a7069c7aab6b3f605f3d8f909af96f87977e8698)
-
- Backport change: modify some codes that only works on c++ 11
-
-commit 0ac7f2f6c87e0d454466927b8528b3f3dae812a2
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Wed Nov 2 15:33:52 2016 +0000
-
- mon: MonmapMonitor: return success when monitor will be removed
-
- Fixes: http://tracker.ceph.com/issues/17725
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit c9d46cfbf2512bc3495c6901de2b8f711bef9bae)
-
- Conflicts:
- src/mon/MonmapMonitor.cc (just inserted the "err = 0" assignment
- immediately after the error message line)
-
-commit 6c0b2b4ceba188397d5877a602b0e1996d29a4eb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 4 20:40:10 2016 -0400
-
- librbd: prevent creation of v2 image ids that are too large
-
- The librbd API is capped at 24 characters for expressing the
- object prefix for data blocks (including trailing null byte).
-
- Fixes: http://tracker.ceph.com/issues/16887
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4de7c8d0a7222c83268d03b99015c6b9d25f124d)
-
-commit 5fb8fb4e450949ebc4c724c102a5b2ae6f1d06c8
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 19 16:00:35 2016 -0700
-
- PG: update PGPool to detect map gaps and reset cached_removed_snaps
-
- Fixes: http://tracker.ceph.com/issues/15943
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a)
-
- Conflicts:
- src/osd/OSD.cc: trivial, fuzz is too big so git prefers to be safe
-
-commit 3404da8f1e491df86c8a1f12606546cd5a7d952c
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 18 15:58:07 2016 -0500
-
- rgw-admin: return error on email address conflict (add user)
-
- Fixes the error return inconsistency documented in upstream
- Ceph issue #13598
-
- Revised after upstream review, permits changing email address as
- originally (but use case-insensitive comp).
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 90c143efa2156e55dc017ebe81005315cacaf2c5)
-
- Conflicts:
- src/rgw/rgw_user.cc (there is no op_state.found_by_email
- conditional in hammer)
-
-commit f5bf5c0f9e9db788fd556f9e92f805fc215138f6
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 18 15:06:19 2016 -0500
-
- rgw-admin: convert user email addresses to lower case
-
- Fixes the email address inconsistency documented in upstream
- Ceph BUG #13598
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4c438dbbc0e6eda6b9a3018d60019a1a780d6f65)
-
-commit 009c844e34bcd3e4e34eace90f90a140484e2794
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon Oct 12 18:43:27 2015 +0200
-
- rgw: fix wrong length in Content-Range HTTP header of Swift's DLO.
-
- Fixes: #13452
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit b48f3d774129e0b37531fccda513626bd8ef07e5)
-
-commit 2175b688358455472ac6320bb82ac6bef7133e59
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon Oct 12 17:32:21 2015 +0200
-
- rgw: fix wrong first byte pos in Content-Range HTTP header of Swift's DLO.
-
- Fixes: #13452
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 66f47f35bbb4966cb289811672938b90ae6d44ae)
-
-commit da653fc3594d49bdac5dc00129c8aa5fd227d6c0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 18:01:54 2016 -0700
-
- rgw: adjust manifest head object
-
- adjust the manifest head object:
- - when reading manifest, set the head object to the object
- we read the manifest from (and its size). Some manifests are
- broken and point at a different object
- - when copying multipart object, set the manifest head object to
- point at the new head object
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 419264586fc46337322f0d60b0ffcdcce3bb5c5a)
-
-commit 8f1c915fa47a889cb50cf84e2d1230df7443752c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 15:49:07 2016 -0700
-
- rgw: adjust objs when copying obj with explicit_objs set
-
- If the head object contains data, need to set it in the list of
- objs (in addition to being pointed at by head_obj).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1e012112b99004745952accc6fb11ada5e8e0045)
-
-commit 43a5d5eb2835e1750ef4fbe6d8d3d85af02c6b30
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 15:36:33 2016 -0700
-
- rgw: patch manifest to handle explicit objs copy issue
-
- Fixes: http://tracker.ceph.com/issues/16435
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b51476466e5bb03bbaa6e428bb6bb189a259b9fd)
-
-commit 815541feb989442bdf4d30faf603ef2795bc1ade
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 07:25:36 2016 -0400
-
- librbd: block name prefix might overflow fixed size C-string
-
- The issue which resulted in too large v2 image ids was fixed
- under #16887.
-
- Fixes: http://tracker.ceph.com/issues/17310
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 61734d266c6ee476c2f5fcfbbaefc7d0c7939617)
-
-commit a56b93faf2ae8db2ebe55aaf6003a48ac2bfb8b2
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jan 5 16:24:15 2016 -0800
-
- OpRequest: release the message throttle when unregistered
-
- We don't want messages in the OpTracker history hanging on to
- message throttle.
-
- Fixes: #14248
- Backport: hammer, firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 67be35cba7c384353b0b6d49284a4ead94c4152e)
-
- Conflicts:
- src/msg/Message.h (s/nullptr/0/ because C++98)
-
-commit 4c780bd7fc6e8a98334ddd049a4969d88a9de49f
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jun 7 17:15:05 2016 -0700
-
- OSDMonitor::prepare_pgtemp: only update up_thru if newer
-
- Fixes: http://tracker.ceph.com/issues/16185
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5f2bd7b6b28aad96d68444b22c04b8b24564616b)
-
- Conflicts:
- src/mon/OSDMonitor.cc (master uses C++11 "auto" for new_up_thru
- iterator, replace with explicit type)
- src/mon/OSDMonitor.h (trivial resolution)
-
-commit 7ad7de69631372ef364d19bf023e7dba3c88092c
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 20 14:10:16 2016 +0800
-
- crush/CrushCompiler: error out as long as parse fails
-
- do not output compiled crush map if anything goes wrong when parsing
- crush map.
-
- Fixes: http://tracker.ceph.com/issues/17306
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b2c0a079dc074c907e1bc429861230096534f597)
-
- Conflicts:
- src/test/cli/crushtool/compile-decompile-recompile.t (hammer needs $TESTDIR/ prefix)
-
-commit 2332cf22d23fd40ae238b98798e3290094548914
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Mar 30 17:35:59 2015 +0800
-
- mds: fix out-of-order messages
-
- When MDS is no longer laggy, it should process deferred messages
- first, then process newly received messages.
-
- Fix: #11258
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ccdeaf87df8b66e09f6b20950b57ac61bf213086)
-
-commit fc4659155406432404d6e7afb63de545e4abf1a6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Nov 12 12:37:00 2016 +0100
-
- pg: restore correct behavior of read() callers
-
- This patch is inspired by fabd6357e42e526d2704d7cb80375c12d731df8d but is not a
- cherry-pick.
-
- Fixes: http://tracker.ceph.com/issues/16870
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 64eeb8d96cf295c8a3739d5d993b51f77c35e466
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 5 14:27:43 2016 +0800
-
- mon/PGMonitor: calc the %USED of pool using used/(used+avail)
-
- we were using
- "the raw space used by this pool" / "the raw space of the whole cluster"
- as the %USED. but it's wrong:
-
- - there is chance that not all OSDs are assigned to the pool in question
- - we can not utilize all the raw space for the pool: there is overhead.
- and the size of available space for a pool is capped by the assigned
- OSD with minimal free space.
-
- so we should use
- USED / (USED + AVAIL)
- as the %USED. so once we have no AVAIL space left, %USED will be 100%.
-
- Fixes: http://tracker.ceph.com/issues/16933
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 08532ea166dfd97c548d9f1fb478e163021cdda3)
-
- Conflicts:
- src/test/mon/CMakeLists.txt (file does not exist in hammer)
-
-commit d62258c03492fca5fca99650cc7514348251cb7b
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sun Aug 7 00:58:04 2016 +0800
-
- mon/PGMonitor: mark dump_object_stat_sum() as static
-
- so we can test this method without create an instance of PGMonitor.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit af3d3e25823ca9b40ddf09835edb82795ac68f33)
-
- Conflicts:
- src/mon/PGMonitor.cc ("const" suffix of function definition was removed
- in master, but in hammer it wasn't there, so no change necessary)
- src/mon/PGMonitor.h (added static prefix to function declaration; did
- not remove "const" suffix because it wasn't there in hammer)
-
-commit e302e636b8fd8f3106a3971dfc44f2c91995e3f5
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 11 08:57:51 2016 -0700
-
- PG: use upset rather than up for _update_calc_stats
-
- Fixes: http://tracker.ceph.com/issues/16998
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 200cae8c9db99b3dede377f74413cc0b15033e1f)
-
-commit cfa2b2d3bcad8ebf0a94b89b3a27ce72445fc30a
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 11 08:57:35 2016 -0700
-
- PG: introduce and maintain upset
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 80a5c21d97116e7a66351a0e1f5d9b561f8663ac)
-
-commit ad42da47909f2ce6902c9f34e2e9e0c445bb1cc7
-Author: Tao Chang <changtao@hihuron.com>
-Date: Mon May 9 09:50:17 2016 -0400
-
- Cleanup: delete find_best_info again
-
- After called find_best_info find a auth_pg_shard, it must be not incomplete,
- so it will not enter find_best_info again.
-
- Signed-off-by: Tao Chang <changtao@hihuron.com>
- (cherry picked from commit a25cfc4d46c03d8d78e0254c728ea5c29e2246e1)
-
- Conflicts:
- src/osd/PG.cc (trivial resolution)
-
-commit fbf51ba878c7a00c045fc97bf309c39b0d9c4fcc
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Tue Jun 14 17:34:44 2016 +1000
-
- cephx: Fix multiple segfaults due to attempts to encrypt or decrypt
- an empty secret and a null CryptoKeyHandler
-
- Fixes: http://tracker.ceph.com/issues/16266
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 009e777fbd18602e5fd66f97bdad95e977e6fecc)
-
-commit 76eed80e6649fdd53a2a3ee3d7242a8e48e1168a
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 20 17:39:24 2016 +0800
-
- os/filestore/FileJournal: fail out if FileJournal is not block device or regular file
-
- otherwise JournalingFileStore will assert when deleting FileJournal
- which still has the non block/regular file opened.
-
- Fixes: http://tracker.ceph.com/issues/17307
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 7431eec6fd24cd08ca6c76a9893e3f6e8c63a916)
-
-commit f99a1d364ae8ec0f7bad220fdd6d665ecdc8029c
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Oct 9 18:31:54 2016 +0800
-
- osd/PGBackend: fix collection_list shadow return value
-
- Fixes: http://tracker.ceph.com/issues/17713
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 8a53a604f375eb568a6fc88a402a6afd83fa151a)
-
- Conflicts:
- src/osd/PGBackend.cc (master is using store->collection_list and ch;
- hammer is using store->collection_list_partial and coll)
-
-commit a7b182e00639e635092fa40c39073859720215af
-Author: root <rahul.1aggarwal@gmail.com>
-Date: Thu Sep 24 00:21:13 2015 +0530
-
- 13207: Rados Gateway: Anonymous user is able to read bucket with authenticated read ACL
-
- Signed-off-by: root <rahul.1aggarwal@gmail.com>
- (cherry picked from commit 99ba6610a8f437604cadf68cbe9969def893e870)
-
-commit 31c25941d551c61df4eabdb6c3e2226ef4b3cf02
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Tue Oct 11 19:32:43 2016 +0800
-
- rgw: fix the field 'total_time' of log entry in log show opt
-
- Fixes: http://tracker.ceph.com/issues/17598
-
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit 8f4825c5f012c77a3a91e22706dcab9c6067d77e)
-
-commit d50a5018c43d200e4cd36daa7826b2b4c17434ed
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 20 10:17:36 2016 -0700
-
- rgw: handle empty POST condition
-
- Fixes: http://tracker.ceph.com/issues/17635
-
- Before accessing json entity, need to check that iterator is valid.
- If there is no entry return appropriate error code.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 23cb642243e09ca4a8e104f62a3bb7b2cbb6ea12)
-
-commit 258195373a6aaabe9a74805268d8094bf48fae0a
-Author: Vladislav Odintsov <odivlad@gmail.com>
-Date: Mon Jul 4 15:29:22 2016 +0300
-
- init-radosgw: do not use systemd-run in sysvinit
-
- `systemd-run` logic in initscripts was introduced because of ticket
- http://tracker.ceph.com/issues/7627.
-
- If we have systemd-based operating system, we should use systemd unit files
- from systemd directory to start/stop ceph daemons.
- Otherwise, `daemon()` from `/etc/init.d/functions` on systemd distro starts service
- in `system.slice` and everything works well.
-
- `systemd-run` can not be run on non-systemd distros, so it's not needed
- on SysV systems.
-
- also, ceph-disk is now able to run the "systemctl"
- to enable and start the ceph-osd, and ceph-deploy is also now
- playing well with systemd when it comes to ceph-mon and ceph-mds
-
- Fixes: http://tracker.ceph.com/issues/16440
-
- Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
- (cherry picked from commit 1fd4f92a025e80092b8d08d9b7da2e0b73a52f0f)
-
-commit f776699fd00ff5f0deea15ec4f2efb991831b055
-Merge: 8e13e7c bfa7c14
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Oct 29 10:24:18 2016 +0200
-
- Merge pull request #11372 from ceph/wip-17386-hammer
-
- hammer: doc: add "Upgrading to Hammer" section
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit bfa7c14894ebab3ab58282782d8217438a3c4047
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Oct 27 15:44:09 2016 +0800
-
- doc: add "to Hammer" upgrade section
-
- Fixes: http://tracker.ceph.com/issues/17534
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 8e5872bf6c18b410136fd76974ae11e645c09928
-Merge: 995d3a9 2c27626
-Author: Zack Cerza <zack@cerza.org>
-Date: Wed Oct 19 11:36:07 2016 -0600
-
- Merge pull request #1215 from jcsp/wip-generate-caps-hammer
-
- tasks/ceph: move generate_caps from teuthology
-
-commit 2c27626c1e5d9989ac6942a94b6d9198ccbd28fb
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Sep 27 12:17:22 2016 +0100
-
- tasks/ceph: move generate_caps from teuthology
-
- This was only used in this task, and it is much too
- ceph-specific to belong in teuthology.
-
- Fixes: http://tracker.ceph.com/issues/17614
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 298cc8f932a2a327e07f5b73708404588a611322)
-
-commit e7253b8ecb49bf894dbc21d260a767ecd8d3eb19
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 3 16:43:44 2016 -0700
-
- rgw_admin: add bi purge command
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit 4f605ebf3f415943e8c151364dadfdce3b69cde5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Sep 28 12:54:47 2016 -0700
-
- rgw: bucket resharding, adjust logging
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 6503430d1b47630b12164f46702bbb42dd7bb453
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Sep 28 10:41:45 2016 -0700
-
- cls/rgw: bi_list() fix is_truncated returned param
-
- is_truncated was never set. Also, make sure that we don't return
- more entries than requested.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit f07e22ae7beab634068cc37a975356393c8b60bf
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 15:13:37 2016 -0700
-
- rgw_admin: require --yes-i-really-mean-it for bucket reshard
-
- in the case where num shards are less or equal to current bucket
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 55e3e7742b22fd0f015f7439e7aeabdce1845caa
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 14:35:31 2016 -0700
-
- rgw_admin: better bucket reshard logging
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit 75f69da3ecba55992453f0a901f997e8a1737884
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 14:11:41 2016 -0700
-
- rgw: limit bucket reshard num shards to max possible
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
- src/rgw/rgw_rados.h
-
-commit b6a15514e7cad6c8fd84f589fd5e4c7b505045e7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 11:55:32 2016 -0700
-
- rgw_admin: fix bi list command
-
- Changes scoping of json section, and push the --object param in so that
- an object can be specified as a filter.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit 6e91760e045b61a144d669f1caa5a55e10b13e58
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 15:49:37 2016 -0700
-
- rgw_admin: use aio operations for bucket resharding
-
- also created shards manager to make things slightly cleaner
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit a68d56febde154b3b92d3178d2e877e86b3e2dd9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 10:45:17 2016 -0700
-
- rgw: bucket reshard updates stats
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/cls/rgw/cls_rgw_types.h
- src/rgw/rgw_admin.cc
-
-commit 858bcf189afb9fd042c370bb1f53864447dcdc96
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 09:52:29 2016 -0700
-
- cls/rgw: add bucket_update_stats method
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 37cda4ec1fee1d6e413d1ffe8c5f4f6558634740
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:46:36 2016 -0700
-
- rgw_admin: reshard also links to new bucket instance
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 6c3e734cd87138b55a8a65951d76f7f91c9f0d93
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:33:57 2016 -0700
-
- rgw: rgw_link_bucket, use correct bucket structure for entry point
-
- The bucket structure might be different than the one that we were using
- before.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_bucket.cc
-
-commit 7cc1de860dce16e3956fe604b3bcb8ed1a2fe9ea
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:01:00 2016 -0700
-
- radosgw-admin: bucket reshard needs --num-shards to be specified
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit b2cc000bbdb7e02e3fa9bdc7d7d71d3e979fee2b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 05:49:37 2016 -0700
-
- cls/rgw: fix bi_list objclass command
-
- was filtering entries, even if filter was not specified, and need to
- set boundary for plain entries. Also, list_instance_entries() was not
- working correctly, and added list_olh_entries().
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 53982a2e61614398de2e37705da12aa6874360a0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:09:34 2016 -0700
-
- rgw_admin: bucket rehsrading, initial work
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit 995d3a9c49c04d6ded62aa34cfaacc650b7d13a6
-Merge: c2a8f05 e4038a0
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Sep 29 21:34:49 2016 -0700
-
- Merge pull request #1192 from ceph/wip-offline-split-hammer2
-
- ceph_manager: test offline split via ceph-objectstore-tool
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8e13e7ce98e99d3ef1b2942f06b4c9ab35c12066
-Merge: e2d4f0a 99bb9f6
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Sep 29 21:34:26 2016 -0700
-
- Merge pull request #11253 from ceph/wip-offline-split-hammer2
-
- ceph-objectstore-tool: add a way to split filestore directories offline
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e4038a0c0068569cc1c7bcaf1b590fba31291610
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Aug 5 18:16:20 2016 -0700
-
- ceph_manager: test offline split via ceph-objectstore-tool
-
- When killing an osd, split all pools with a low threshold.
- This will slow down tests, but should not impact correctness.
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit f28f881bda0ad426bfa9c0e22cc4658b2ce2ec5d)
-
-commit 99bb9f603f2123e81470a819c1cd64df13a22425
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Aug 5 11:45:00 2016 -0700
-
- ceph-objectstore-tool: add a way to split filestore directories offline
-
- Use the usual split code, and split each dir that meets the
- usual split criteria.
-
- This can be run with lower than usual split settings, to avoid costly
- online splits. To make sure the directories are not merged again, use
- a load merge threshold (e.g. filestore merge threshold = 1), and
- adjust the split multiplier accordingly.
-
- Fixes: http://tracker.ceph.com/issues/17220
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e7b0428e0e8d8f5459311dc698d94a3ac4f04684)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
- * remove c++11 auto usage
- * change HashIndex::list_subdirs() call to use set instead of vector
- * adjust to hammer signature of coll_t::is_pg()
-
-commit c1b64c8f9c23473b758300958a94a172f1d39b64
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 10 12:52:43 2015 -0700
-
- rgw: rgw_obj encoding fixes
-
- Fix a few issues:
- - conversion to and from rgw_obj_key
- - strip_namespace_from_object() in the case where object starts
- with underscore
- - encoding if object has either namespace or instance and starts
- with underscore
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit c381cc5d69ebec4370ee18e350b9d003e15b2770
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:09:15 2016 -0700
-
- rgw: utilities to support raw bucket index operations
-
- and other related changes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
- Conflicts:
- src/rgw/rgw_rados.cc
- src/rgw/rgw_rados.h
-
-commit d41cbb44c55cf2dca5ab25d5a1ec76e30db26150
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:06:17 2016 -0700
-
- rgw: use bucket_info.bucket_id instead of marker where needed
-
- We used to use these interchangeably, but they actually have diffent meaning.
- The marker is the prefix we assign to the objects in this bucket, whereas
- the bucket_id is the bucket instance's id. These used to hold the same
- value, but with bucket resharding it's not going to be true anymore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 228f52cca1866c40a3840e06bd260c1d92d59caa
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:01:39 2016 -0700
-
- cls/rgw: utilities to support raw bucket index operations
-
- New flavour of bi_put() call, and a function to extract key off
- a raw bi entry.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit e2d4f0af387869569a8c143fa2d2873e6788d2a2
-Merge: 8f66abd 0b42082
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Tue Sep 20 10:33:02 2016 -0400
-
- Merge pull request #11140 from cbodley/wip-radosgw-admin-man-hammer
-
- hammer: add orphan options to radosgw-admin --help and man page
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 0b420821fd3ed33d077ce76beef7a6f1a0e5edb7
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Sep 20 09:27:52 2016 -0400
-
- man: add orphan options to radosgw-admin.8
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
-
-commit 054e0d45c351525454517472df2c0b1dcecb5c39
-Author: tserlin <tserlin@redhat.com>
-Date: Mon Sep 19 14:40:12 2016 -0400
-
- Add two options to radosgw-admin.rst manpage
-
- Add '--job-id' and '--max-concurrent-ios' to Orphan Search Options
-
- Fixes: http://tracker.ceph.com/issues/17281
- Signed-off-by: Thomas Serlin <tserlin@redhat.com>
- (cherry picked from commit 697f30d86f49b73c981c06375ab2937570b1db01)
-
-commit 2920334210376bb34e59d6ecf08557732bcc3861
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Sep 15 12:56:39 2016 -0600
-
- radosgw-admin: add "--orphan-stale-secs" to --help
-
- The radosgw-admin --help did not include the description of the
- `--orphan-stale-secs` option of the `orphans find` command. The option
- sets the number of seconds to wait before declaring an object to be an
- orphan.
-
- Fixes: http://tracker.ceph.com/issues/17280
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 354059ae43b4f4cc797da1669715399cd96a4738)
-
-commit 34ecb3584230db8458f193ac01deff9264cd119a
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Fri Apr 1 13:46:30 2016 +0200
-
- rgw_admin: improve the orphans find help
-
- Adding a few missing commandline switches and improve the help message
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit 27e4c46f741a5f908d5c8ca1af227b3581c697f6)
-
-commit 3575fa8112ac39b1c6edf2aaee5b02aa67fa5766
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Sep 15 11:40:14 2016 -0600
-
- doc: add "--orphan-stale-secs" to radosgw-admin(8)
-
- The radosgw-admin(8) manual page did not include the description of the
- `--orphan-stale-secs` option of the `orphans find` command. The option sets
- the number of seconds to wait before declaring an object to be an
- orphan.
-
- Fixes: http://tracker.ceph.com/issues/17280
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit a676c516069cc448591018ecf4f7d1f7f7bc3bfd)
-
-commit 8f66abd02ed5f0bc697b80b3071f0c70886aab6e
-Merge: fe6d859 c7f6b47
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Wed Sep 7 13:06:33 2016 -0400
-
- Merge pull request #10839 from oritwas/hammer-default-quota
-
- Hammer default quota
-
- Reviewed-by: Daniel Gryniewicz <dang@redhat.com>
diff --git a/src/ceph/doc/changelog/v0.94.2.txt b/src/ceph/doc/changelog/v0.94.2.txt
deleted file mode 100644
index f8113af..0000000
--- a/src/ceph/doc/changelog/v0.94.2.txt
+++ /dev/null
@@ -1,1563 +0,0 @@
-commit 5fb85614ca8f354284c713a2f9c610860720bbf3 (tag: refs/tags/v0.94.2, refs/remotes/gh/hammer)
-Author: Jenkins <jenkins@inktank.com>
-Date: Tue Jun 9 12:32:34 2015 -0700
-
- 0.94.2
-
-commit d967cecf0a5d7fbf992a0195341cbd893a358264
-Merge: eb69cf7 968573b
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri May 29 09:49:43 2015 +0200
-
- Merge pull request #4795 from dachary/wip-11806-hammer
-
- ceph / ceph-dbg steal ceph-objecstore-tool from ceph-test / ceph-test-dbg
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 968573b8930a7c8485bf53e3a989ce2f7d0a2fff
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu May 28 10:35:51 2015 +0200
-
- debian: ceph-dbg steals ceph-objectstore-tool from ceph-test-dbg
-
- When ceph-objectstore-tool was moved from ceph-test to
- ceph by 61cf5da0b51e2d9578c7b4bca85184317e30f4ca, the ceph package in
- debian/control was updated accordingly, as recommended by
- https://www.debian.org/doc/debian-policy/ch-relationships.html#s-replaces
-
- The same must be done for the ceph-dbg package because
- /usr/lib/debug/usr/bin/ceph-objectstore-too is no longer in
- ceph-test-dbg.
-
- Although the change was merged may 6th, 2015
- 8f23382064c189b657564d58c3f9d17720e891ed, teuthology jobs were not
- always failing because packages were not systematically upgraded during
- the installation. The missing dependencies that were responsible for
- this upgrade problem were fixed by
- f898ec1e4e3472b0202280f09653a769fc62c8d3 on may 18th, 2015 and all
- upgrade tests relying on ceph-*-dbg packages started to fail
- systematically after this date.
-
- http://tracker.ceph.com/issues/11546 Fixes: #11546
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 6f11fbf41fab10924b1e0e41fcf27864779d4073)
-
-commit eb69cf758eb25e7ac71e36c754b9b959edb67cee
-Merge: 63832d4 344328d
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue May 26 19:52:59 2015 -0600
-
- Merge pull request #4773 from dachary/wip-11733-hammer
-
- Debian: ceph-test and rest-bench debug packages should require their respective binary packages
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 344328de584ac707b59ab857f1f3dd4165adfcf5
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Mon May 18 10:50:58 2015 -0600
-
- debian: set rest-bench-dbg ceph-test-dbg dependencies
-
- Debian's debug packages ought to depend on their respective binary
- packages. This was the case for many of our ceph packages, but it was
- not the case for ceph-test-dbg or rest-bench-dbg.
-
- Add the dependencies on the relevant binary packages, pinned to
- "= ${binary:Version}" per convention.
-
- http://tracker.ceph.com/issues/11673 Fixes: #11673
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit f898ec1e4e3472b0202280f09653a769fc62c8d3)
-
-commit 63832d4039889b6b704b88b86eaba4aadcfceb2e
-Merge: 195884e 293affe
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 18 14:26:16 2015 +0200
-
- Merge pull request #4696 from ceph/wip-11622-hammer
-
- Wip 11622 hammer
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 195884e21760f4948f7d1df8b65788514f918054
-Merge: b69fb89 95818da
-Author: Sage Weil <sage@redhat.com>
-Date: Fri May 15 13:47:04 2015 -0700
-
- Merge pull request #4649 from ceph/wip-hammer-package-perf-objectstore
-
- packaging: include ceph_perf_objectstore
-
-commit 293affe992118ed6e04f685030b2d83a794ca624 (refs/remotes/gh/wip-11622-hammer)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 13 17:05:22 2015 -0700
-
- rgw: merge manifests correctly when there's prefix override
-
- Fixes: #11622
- Backport: hammer, firefly
-
- Prefix override happens in a manifest when a rados object does not
- conform to the generic prefix set on the manifest. When merging
- manifests (specifically being used in multipart objects upload), we need
- to check if the rule that we try to merge has a prefix that is the same
- as the previous rule. Beforehand we checked if both had the same
- override_prefix setting, but that might not apply as both manifests
- might have different prefixes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 389ae6739ddc6239a4dd7c5f7f9bfc9b645b8577)
-
-commit a43d24861089a02f3b42061e482e05016a0021f6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 12 16:40:10 2015 -0700
-
- rgw: restore buffer of multipart upload after EEXIST
-
- Fixes #11604
- Backport: hammer, firefly
-
- When we need to restart a write of part data, we need to revert to
- buffer to before the write, otherwise we're going to skip some data.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 580ccaec12daae64c38a1616d0be907bdd70a888)
-
-commit 95818dac1522c218662ec12bd42c470d8394b3b9
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 13 16:08:35 2015 -0600
-
- packaging: include ceph_perf_objectstore
-
- The /usr/bin/ceph_perf_objectstore file is installed by default. Prior
- to this commit it was missing from the packaging. This caused the RPM to
- fail to build in mock.
-
- Add ceph_perf_objectstore to the "ceph-test" RPM and Debian package.
-
- If we end up developing further ceph_perf_* utilities, it would make
- sense to glob them all with a wildcard, similar to what we are doing
- with all the ceph_test_* utilities in ceph-test.
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 338b44bc74bc4597939c5c58f2a6f2cb08de7d9c)
-
-commit b69fb89122d6f989152a29124cc7ed54b5e4d43b
-Merge: 0f02512 efbfe6f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 11 10:27:02 2015 -0700
-
- Merge pull request #4568 from dachary/wip-10662-10663-hammer
-
- RGW swift API: Response header of COPY request for object does not
-
- contain x-copied-from, custom metadata, x-copied-from-last-modified, X-Copied-From-Account headers
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 0f025122fe574b99504a630e3d489c3449cbbe46
-Merge: 7df3eb5 6e2dd40
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 11 14:08:53 2015 +0200
-
- Merge pull request #4629 from ceph/hammer-uclient-checking
-
- Hammer uclient checking
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6e2dd408be95644ee5bceb556a90483f882fe51c
-Author: John Spray <john.spray@redhat.com>
-Date: Thu May 7 18:42:01 2015 +0100
-
- client: fix error handling in check_pool_perm
-
- Previously, on an error such as a pool not existing,
- the caller doing the check would error out, but
- anyone waiting on waiting_for_pool_perm would
- block indefinitely (symptom was that reads on a
- file with a bogus layout would block forever).
-
- Fix by triggering the wait list on errors and
- clear the CHECKING state so that the other callers
- also perform the check and find the error.
-
- Additionally, don't return the RADOS error code
- up to filesystem users, because it can be
- misleading. For example, nonexistent pool is
- ENOENT, but we shouldn't give ENOENT on IO
- to a file which does exist, we should give EIO.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit e08cf25cafef5752877439c18cc584b0a75eca08)
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 3c2e6ae97d6129cb8f5befb3e7bf4be16373f6a5
-Author: John Spray <john.spray@redhat.com>
-Date: Thu May 7 18:17:37 2015 +0100
-
- client: use SaferCond in check_pool_perm
-
- Just because it's easier to read.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 289ee3b80ccce6bab2966f513a37332280d04a06)
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 79b2ac215187402a99594424944db4169f2b2cdf
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 24 15:23:21 2015 +0800
-
- client: check OSD caps before read/write
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 3c4028ec21e3ef9e8801c4570420c88722651cc7)
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7df3eb5e548f7b95ec53d3b9d0e43a863d6fe682
-Merge: 6a7fa83 2f86995
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:07:07 2015 -0700
-
- Merge pull request #4567 from dachary/wip-10938-hammer
-
- RGW Swift API: response for GET/HEAD on container does not contain the X-Timestamp header
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 6a7fa83b3e72b85f92d003a5bbb03a301354a657
-Merge: 553f0db 3edb196
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:05:59 2015 -0700
-
- Merge pull request #4570 from dachary/wip-10243-hammer
-
- civetweb is hitting a limit (number of threads 1024)
-
-commit 553f0db9a1fcff2601a8791af1d2bb6975d2821d
-Merge: 3fe1f2b 3aef0f2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:05:41 2015 -0700
-
- Merge pull request #4573 from dachary/wip-11125-hammer
-
- rgw: keystone token cache does not work correctly
-
-commit 3fe1f2b8ab3d0d3943a312e90f6a3de99c36beb4
-Merge: e0ed459 4d1f3f0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:05:22 2015 -0700
-
- Merge pull request #4574 from dachary/wip-11160-hammer
-
- rgw: shouldn't need to disable rgw_socket_path if frontend is configured
-
-commit e0ed459442b1e9053e29e345cd0f30d1b4b4b994
-Merge: d6de3fa d2043a5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:04:36 2015 -0700
-
- Merge pull request #4575 from dachary/wip-10650-hammer
-
- Response header of swift API PUT /container/object returned by RGW
-
- does not contain last-modified, content-length, x-trans-id headers. But Swift returns these headers.
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit d6de3fa0b55918bc2ac2d65ee8308f04d3605dfd
-Merge: 96dc624 2cb5d60
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 11:03:37 2015 -0700
-
- Merge pull request #4576 from dachary/wip-10661-hammer
-
- RGW swift API: Response header of POST request for object does not contain content-length and x-trans-id headers
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 96dc624ee1f593f817055d3426054ef2e05cbf92
-Merge: ae61aee f4a0dab
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 10:59:15 2015 -0700
-
- Merge pull request #4579 from dachary/wip-11036-hammer
-
- RGW Swift API: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit ae61aee99bee9185af22424ec8019e0308828bf5
-Merge: 593d07f 7f2a9ed
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 10:57:47 2015 -0700
-
- Merge pull request #4580 from dachary/wip-11088-hammer
-
- RGW Swift API: wrong handling of empty metadata on Swift container
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 593d07f29df8584629936051be4458b00f8a8f1f
-Merge: 4f2b41c d164d80
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 8 10:57:12 2015 -0700
-
- Merge pull request #4581 from dachary/wip-11323-hammer
-
- rgw: quota not respected in POST object
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 4f2b41c4c803786c49cd2d2806d82e9223ab96a9
-Merge: 92e7a7f 893ffd3
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri May 8 09:15:41 2015 -0700
-
- Merge pull request #4566 from dachary/wip-11478-hammer
-
- Queued AIO reference counters not properly updated
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 92e7a7f057dd9aabb4f66965c412135d05f6812f
-Merge: 2fbf171 0944051
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri May 8 09:15:19 2015 -0700
-
- Merge pull request #4564 from dachary/wip-11369-hammer
-
- Periodic failure of TestLibRBD.DiffIterateStress
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 2fbf1712d1e190774ada0af5094134369effb3ac
-Merge: 9d97946 02a3813
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri May 8 17:32:35 2015 +0200
-
- Merge pull request #4585 from ceph/wip-11370-hammer
-
- A retransmit of proxied flatten request can result in -EINVAL
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 9d97946a8908e48849355a410415e09914ef3948
-Merge: fb10594 c548d8d
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Fri May 8 20:39:29 2015 +0800
-
- Merge pull request #4618 from dachary/wip-11398-kill-daemons-hammer
-
- tests: ceph-helpers kill_daemons fails when kill fails
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit c548d8d44baae78b868391e3c6fb7294f024b082
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed May 6 20:14:37 2015 +0200
-
- tests: ceph-helpers kill_daemons fails when kill fails
-
- Instead of silently leaving the daemons running, it returns failure so
- the caller can decide what to do with this situation. The timeout is
- also extended to minutes instead of seconds to gracefully handle the
- rare situations when a machine is extra slow for some reason.
-
- http://tracker.ceph.com/issues/11398 Fixes: #11398
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 0e26e9f72bc14417266b87ac1159607e1b109303)
-
-commit fb10594f2ab2427a2bf1d2f2b164a3a0928e3335
-Author: Yuri Weinstein <yuri.weinstein@inktank.com>
-Date: Thu May 7 17:12:35 2015 -0700
-
- Added a "ceph hello world" for a simple check for ceph-deploy qa suite
-
- Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
- (cherry picked from commit 13abae186357f4e9bb40990a7a212f93ec2e1e79)
-
- Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
-
-commit 6cfae7f074462498e82cfeeddbc2fe8d302c7aa0
-Merge: 736cdf4 8d9f4d4
-Author: Sage Weil <sage@redhat.com>
-Date: Thu May 7 13:29:57 2015 -0700
-
- Merge pull request #4502 from dachary/wip-11026-hammer
-
- objecter: can get stuck in redirect loop if osdmap epoch == last_force_op_resend
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 736cdf450caa0b22cbfc54f4497717cf63d5bda7
-Merge: 3bd8e4f 46a4e8a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 21:45:53 2015 +0200
-
- Merge pull request #4562 from dachary/wip-11376-hammer
-
- ceph-objectstore-tool should be in the ceph server package
-
-
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 46a4e8af5be54d8348a920c4a3a58e24dbf35988
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Apr 30 15:53:22 2015 -0600
-
- packaging: mv ceph-objectstore-tool to main ceph pkg
-
- This change ensures that the ceph-objectstore-tool utility is present on
- all OSDs. This makes it easier for users to run this tool to do manual
- debugging/recovery in some scenarios.
-
- http://tracker.ceph.com/issues/11376 Refs: #11376
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 61cf5da0b51e2d9578c7b4bca85184317e30f4ca)
- Conflicts:
- debian/control
- because file layout changes from ceph-test and ceph << 0.94.1-46
-
-commit 3bd8e4fa17d8acfd645b8a553bf58de48d59d648
-Merge: 76f6db2 6a04b55
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 19:05:48 2015 +0200
-
- Merge pull request #4561 from dachary/wip-11143-hammer
-
- src/ceph-disk : disk zap sgdisk invocation
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 76f6db24e09a4bfc55cbfb7075104f20653263cc
-Merge: e5a20f8 8996907
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 19:03:53 2015 +0200
-
- Merge pull request #4560 from dachary/wip-11507-hammer
-
- object creation by write cannot use an offset on an erasure coded pool
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e5a20f83ed6d8d3d09827343d757318026f6a690
-Merge: e7671a5 8a6e6e4
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 19:03:16 2015 +0200
-
- Merge pull request #4559 from dachary/wip-11429-hammer
-
- OSD::load_pgs: we need to handle the case where an upgrade from earlier versions which ignored non-existent pgs resurrects a pg with a prehistoric osdmap
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e7671a58939f6e2e37f9f6df0f039f485ad4ca16
-Merge: 126a372 113f3b1
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 18:48:56 2015 +0200
-
- Merge pull request #4563 from tchaikov/wip-hammer-11534
-
- mon: Total size of OSDs is a maginitude less than it is supposed to be.
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 126a37212550a4a59beaa80e0579098198f74db5
-Merge: 58b30d5 c87aa11
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 7 18:18:17 2015 +0200
-
- Merge pull request #4577 from dachary/wip-10666-hammer
-
- RGW swift API: Response header of GET request for container does not contain X-Container-Object-Count, X-Container-Bytes-Used and x-trans-id headers
-
- Reviewed-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit f4a0dabfe8debc7b54afa5da179d51db891f5bc0
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sun Mar 8 22:45:34 2015 +0100
-
- rgw: send Content-Length in response for HEAD on Swift account.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 29073d84640b61d0221b2d2ab73c271d60fd13ba)
-
-commit 32f4a7439d1e0ce6aab1c1e39407b14e124d03bf
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 13:18:19 2015 +0100
-
- rgw: send Content-Length in response for DELETE on Swift container.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit d260a93405a7a34a899f716bd9c4e731baa9ffd0)
-
-commit d39a66007fa7211c00a67f9cd898e55551f5ae62
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 13:14:26 2015 +0100
-
- rgw: send Content-Length in response for PUT on Swift container.
-
- Fixes: #11036
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 10c1f1aa1e09df5edf5d2f9f9b0273ddbcb384fa)
-
-commit 02a3813a6a4f9c8ce14f64fc7f378030e7ea6f93
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Apr 27 01:03:52 2015 -0400
-
- librbd: flatten should return -EROFS if image is read-only
-
- Fixes: #11475
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f141e02ab719df830648318f4c1d9ca286071ed3)
-
-commit af8939be80310e234745fe81e67244ab52c6add5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Apr 27 01:00:38 2015 -0400
-
- librbd: allow snapshots to be created when snapshot is active
-
- The librbd API previously permitted the creation of snapshots while
- the image context was associated to another snapshot. A recent code
- cleanup broke that ability, so this re-introduces it. The code change
- also allows minor cleanup with rebuild_object_map.
-
- Fixes: #11475
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 594a6610802f2cadb62200815bd8b9860809e759)
-
- Conflicts:
- src/librbd/internal.cc
-
-commit d21c0c00d2bed282677d2063a3fb6f5346641286
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 21 12:59:33 2015 -0400
-
- librbd: better handling for duplicate flatten requests
-
- A proxied flatten request could be replayed, resulting in a
- -EINVAL error code being generated on the second attempt. Filter
- out that error if it is known the parent did exist before the
- op started.
-
- Fixes: #11370
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ef7e210c3f747bc4c3c8768c7b6407cc91c5c319)
-
-commit ec0bd1dea526e04333d8059421666dcd2a59044e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Mar 18 11:51:47 2015 -0400
-
- librbd: use generic helper for issuing async requests
-
- resize, flatten, and rebuild object map now use the same
- bootstrap code for sending the request to the remote lock owner
- or executing the request locally.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 18fd6ca7f59d5545f0bb0b0e899d0739639ce104)
-
- Conflicts:
- src/librbd/internal.cc
-
-commit 8a6e6e4c107b03563b2e38aa24cc2067ce6a7350
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Apr 20 23:45:57 2015 -0700
-
- OSD: handle the case where we resurrected an old, deleted pg
-
- Prior to giant, we would skip pgs in load_pgs which were not present in
- the current osdmap. Those pgs would eventually refer to very old
- osdmaps, which we no longer have causing the assertion failure in 11429
- once the osd is finally upgraded to a version which does not skip the
- pgs. Instead, if we do not have the map for the pg epoch, complain to
- the osd log and skip the pg.
-
- Fixes: 11429
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit fbfd50de5b9b40d71d2e768418a8eca28b1afaca)
-
-commit efbfe6fced72d07309ccf1f1a219c037b7f535fa
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sat Mar 21 15:53:08 2015 +0100
-
- rgw: improve metadata handling on copy operation of Swift API.
-
- Fixes: #10645
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit a00cb31cc52e91bfacdd15e0af60be74e66c1996)
-
-commit d164d8004feddb3e2238b26e3360a905e209d117
-Author: 9seconds <nineseconds@yandex.ru>
-Date: Wed Apr 1 09:12:06 2015 +0300
-
- rgw: quota not respected in POST object
-
- Signed-off-by: Sergey Arkhipov <nineseconds@yandex.ru>
- Backport: hammer, firefly
- Fixes: #11323
- (cherry picked from commit e76f84e179d2ba8bfc0dc5abf4e620fef14bc8a0)
-
- Conflicts:
- src/rgw/rgw_op.cc
- discard the whitespace modification hunk that were creating
- conflict and ignore the conflict due to an unrelated cast
- modification in the context
-
-commit 7f2a9ed7a986145d4b34517a1a1bb44799ebf621
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Mar 10 19:36:59 2015 +0100
-
- rgw: fix handling empty metadata items on Swift container.
-
- Fixes: #11088
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 1660d8625212f7b5fb30568ed640f467297e36cb)
-
-commit 8e6efdbcb0f820b2ab3728662efbfb4bc45495af
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Feb 27 15:23:16 2015 +0100
-
- rgw: send Content-Length in response for GET on Swift container.
-
- Fixes: #10971
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5a64fb5430b6b42174bf53a5910d9435043c1380)
-
-commit 54b62904a4cc3913be23803734fa68741a3c33cc
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 6 12:42:52 2015 +0100
-
- rgw: enable end_header() to handle proposal of Content-Length.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit f98fd4dfda7a105d621f99c2b48eb9ab9b45d979)
-
-commit c87aa110bd224ae3220c5486fbd2486ebdfb8b8e
-Author: Dmytro Iurchenko <diurchenko@mirantis.com>
-Date: Mon Feb 16 18:47:59 2015 +0200
-
- rgw: Swift API. Complement the response to "show container details"
-
- OpenStack Object Storage API v1 states that X-Container-Object-Count, X-Container-Bytes-Used and user-defined metadata headers should be included in a response.
-
- Fixes: #10666
- Backport: hammer
- Reported-by: Ahmad Faheem <ahmad.faheem@ril.com>
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
- Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- (cherry picked from commit d3a3d5ae5859cd7f2eed307e8f942f9a9fd75f35)
-
-commit 2cb5d600699085fe0e996b91cf85603be3da230e
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Feb 26 19:21:03 2015 +0100
-
- rgw: enforce Content-Length in response for POST on Swift cont/obj.
-
- Fixes: #10661
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit fd0c612cf867d2e99e74820130357e63305970fb)
-
-commit d2043a5f3b8d7a3ce50c4e84aa88481c8912ae25
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 13 21:41:45 2015 +0100
-
- rgw: send Last-Modified header in response for PUT on Swift object.
-
- Fixes: #10650
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 9a22acc57684534a245f25848c23d1db21f16653)
-
-commit 4d1f3f03ef8809693c8ea2bcbc4d24fd41ae1842
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Mar 18 20:49:13 2015 -0700
-
- rgw: don't use rgw_socket_path if frontend is configured
-
- Fixes: #11160
- Backport: hammer, firefly
-
- Previously if we wanted to use the tcp fcgi socket, we needed to clear
- rgw_socket_path.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 36d6eea3caa79fcb4e08bdd340ccda2474b9e5ea)
-
-commit 3aef0f2bb6f88bb17c460a3cef0d3503550f716c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 3 11:03:35 2015 -0800
-
- rgw: update keystone cache with token info
-
- Fixes: #11125
- Backport: hammer, firefly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6616294aa140ceb83cc61c6ab6f9947636f5e67d)
-
-commit 3edb1964fe9e8574aafcb758d170007f0e43a324
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 21 11:08:45 2015 -0700
-
- civetweb: update max num of threads
-
- Fixes: #10243
- cherry-picked upstream fixed into submodule
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7a432f7bdfbbc51518fb63d7f2ecab401e8a8d4f)
-
-commit bc6eb8d5f0a66aec3fbda0b794d008a3157a8154
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Apr 7 14:09:57 2015 +0200
-
- rgw: improve code formatting ONLY.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 214c8b32b1b04885005e929a7ed2d4354b3ea20b)
-
-commit 7aa1ae60cea17e0bd140c0cf2313d82f2f64554f
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Mar 17 14:07:34 2015 +0100
-
- rgw: send X-Copied-From-Last-Modified header of Swift API.
-
- Fixes: #10663
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit e7724a1d8c0872362c19f578fe30ac2cf3dada90)
-
-commit 150b9e2b85a72dc247da4ba1ab770e6af053acb7
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Mar 17 14:06:37 2015 +0100
-
- rgw: dump object metadata in response for COPY request of Swift API.
-
- Fixes: #10663
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit c52b75edeaeef19471b9aca772bf08055bf04031)
-
-commit e749701be5368a22cad1630f8202e48f5d980409
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 13 17:59:01 2015 +0100
-
- rgw: refactor dumping metadata of Swift objects.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit ccf6eaac6f7068289c4a4ffd3f0481d497ba7c87)
-
-commit b034511fa79996415640b4aca3e8747340f2a127
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 13 18:37:39 2015 +0100
-
- rgw: add support for X-Copied-From{-Account} headers of Swift API.
-
- Fixes: #10663
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 94f1375ccb9df02cdd8f6828153ae2e3a7ad36b1)
-
-commit c9e6a0bf8c601c4fd9065c1f3a8ea445bd652a52
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Mar 11 14:08:03 2015 +0100
-
- rgw: send ETag, Last-Modified in response for copying Swift cobject.
-
- Fixes: #11087
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 385fe4b4bbbd4a9aab92abf2a813090deeaa037e)
-
-commit 7f41ff0a6577b0784c6719b9d705f32921b1c40e
-Author: Dmytro Iurchenko <diurchenko@mirantis.com>
-Date: Fri Feb 20 18:31:03 2015 +0200
-
- rgw: Swift API. Allows setting attributes with COPY object operation.
-
- http://developer.openstack.org/api-ref-objectstorage-v1.html says: "With COPY, you can add additional metadata to the object."
-
- Fixes: #10662
- Backport: hammer
- Reported-by: Ahmad Faheem <ahmad.faheem@ril.com>
- Signed-off-by: Dmytro Iurchenko <diurchenko@mirantis.com>
- (cherry picked from commit 1b722bbcd691e0a4a39ea77cd28e309fd723ec88)
-
-commit 2f869959ffe1adbcfef7d26ae2d022d23d982673
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Feb 25 16:12:58 2015 +0100
-
- rgw: improve format of X-Timestamp on Swift objects.
-
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit e54fef9542bc2b5db192308728a99df139a4b6cf)
-
-commit 48b19810a9860f6fccbf8d9b8a2fadfb37f598dd
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Feb 25 14:11:40 2015 +0100
-
- rgw: add support for X-Timestamp on Swift containers.
-
- Fixes: #10938
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit b7e9bf6b98ee48d1977d907a9e5130c0ce073c54)
-
-commit 893ffd3767678ab881c4bc44ecfe1801cb9f9704
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Apr 27 03:43:10 2015 -0400
-
- tests: AioCompletion incorrectly freed
-
- The AioCompletion should be released instead of directly
- deleted.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 387a09eeeaf0b66b3a2ddc36388da27d5804a4c7)
-
-commit 96b0db5decfad452964750cff92a63007433e519
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Apr 27 03:42:24 2015 -0400
-
- librbd: update ref count when queueing AioCompletion
-
- If the client releases the AioCompletion while librbd is waiting
- to acquire the exclusive lock, the memory associated with the
- completion will be freed too early.
-
- Fixes: #11478
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fd7723a1e62e682ac5a5279231a9fd6f5682bf94)
-
-commit 094405171bdead0ce09055d4acc6445274992a01
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Apr 10 12:37:05 2015 -0400
-
- librbd: failure to update the object map should always return success
-
- If an object map update fails, the object map will be flagged as
- invalid. However, if a subsequent update failure occurs, the error
- code will propagate back to the caller.
-
- Fixes: #11369
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 99f5a7d595c653447b351898192410c9cb773770)
-
-commit 7ee7dcfd609731d3c7f51b74c1d99fb3fa51c413
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Mar 6 15:40:48 2015 -0500
-
- tests: librados_test_stub reads should deep-copy
-
- If a client of librados_test_stub modified a bufferlist
- retrieved via a read call, the client will actually be
- changing the contents of the file. Therefore, read calls
- should deep-copy the contents of the buffer::ptrs.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 76fe8d73ff79da2d734f70680208a2c188b58671)
-
-commit 113f3b14ec8631d57bbbc2931e242ac96cf9e6fc
-Author: Zhe Zhang <zzxuanyuan@gmail.com>
-Date: Tue May 5 18:08:48 2015 -0500
-
- mon: Total size of OSDs is a maginitude less than it is supposed to be.
-
- When dumping statistics of OSDs such as running command "ceph osd df",
- the sum of OSDs' size is 2^10 times less than their real size.
-
- Fixes: #11534
- Signed-off-by: Zhe Zhang <zzxuanyuan@gmail.com>
- (cherry picked from commit 73d16f69d6f58fe8be262b0fb8db28c94605ea7d)
-
-commit 6a04b55df76faad9b1b0770fbe6038b3b8c7d645
-Author: Owen Synge <osynge@suse.com>
-Date: Tue Mar 17 15:41:33 2015 +0100
-
- Fix "disk zap" sgdisk invocation
-
- Fixes #11143
-
- If the metadata on the disk is truly invalid, sgdisk would fail to zero
- it in one go, because --mbrtogpt apparently tried to operate on the
- metadata it read before executing --zap-all.
-
- Splitting this up into two separate invocations to first zap everything
- and then clear it properly fixes this issue.
-
- Based on patch by Lars Marowsky-Bree <lmb@suse.com> in ceph-deploy.
- Created by Vincent Untz <vuntz@suse.com>
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit fdd7f8d83afa25c4e09aaedd90ab93f3b64a677b)
-
-commit 8996907e0a777320b505e74754f48a1a82308166
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Fri Mar 6 15:54:07 2015 +0800
-
- osd: refuse to write a new erasure coded object with an offset > 0
-
- Even if the offset is properly aligned.
-
- http://tracker.ceph.com/issues/11507 Fixes: #11507
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a4f1256c214ee0e7ebb91ac4ea8655f5d9642dc8)
-
-commit 58b30d5426998bf7eab4a773f1a04e5bcfbf9b93
-Merge: bc51476 3a58e30
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Wed May 6 16:01:57 2015 +0800
-
- Merge pull request #4481 from ceph/hammer-11482
-
- mds: remove caps from revoking list when caps are voluntarily released
-
-commit bc51476181429d7d95d2bba5f774d8b60c47fb1f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Apr 13 16:33:17 2015 -0700
-
- ceph_json: add decode / encoder for multimap
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 55594623e2a478c3c023336b924bfdef0017d97f)
-
-commit 7c7e651a0ae8bbcebe136da74b7dbe3a3e9edcc8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Mar 30 17:34:57 2015 -0700
-
- cls_rgw: use multimap to keep pending operations in bucket index
-
- Fixes: #11256
- Multiple concurrent requests might be sent using the same tag, need the
- entry map to be able to hold multiple entries.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4e6a66b55e73c01347fc3330faa5c1307d29e9d3)
-
-commit cb7571375377295d0aff791a03b22da6eb26109d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Mar 27 16:32:48 2015 -0700
-
- rgw: generate new tag for object when setting object attrs
-
- Fixes: #11256
- Backport: firefly, hammer
-
- Beforehand we were reusing the object's tag, which is problematic as
- this tag is used for bucket index updates, and we might be clobbering a
- racing update (like object removal).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit edc0627a1dbeb66ea2f5f177f6ceca64559ff3d8)
-
-commit 7387c43382e7f114c43db3cc26ca77d081749d8e
-Author: Noah Watkins <noahwatkins@gmail.com>
-Date: Fri Mar 27 19:34:12 2015 -0700
-
- java: libcephfs_jni.so is in /usr/lib64 on rhel
-
- Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
- (cherry picked from commit aed3434dc7c5161c72c7d5655faa3bc693fc9777)
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 5cc0f20ba00080881aff460fab2110cb7eaba279
-Merge: f7bcb2d 0e6a032
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 23:58:37 2015 +0200
-
- Merge pull request #4498 from dachary/wip-11342-hammer
-
- librbd notification race condition on snap_create
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f7bcb2dc6043501d478c9d7664bf39f34d5ad6d8
-Merge: 4d95929 2864da8
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 23:58:18 2015 +0200
-
- Merge pull request #4497 from dachary/wip-7385-hammer
-
- Objectcacher setting max object counts too low
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4d95929c3129028de2d48efdef71fba2b949edd9
-Merge: 16c2f4c c615972
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 23:57:48 2015 +0200
-
- Merge pull request #4499 from dachary/wip-11363-hammer
-
- ImageWatcher should cancel in-flight ops on watch error
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 16c2f4c9e0428bda5d784c6c82929f748ec6cb4a
-Merge: addb0ec 0cdc93f
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 23:57:17 2015 +0200
-
- Merge pull request #4496 from dachary/wip-5488-hammer
-
- librbd: deadlock in image refresh
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit addb0ec950e3a3b1150f927f028d2260c1cd0615
-Merge: c0782ed 379ef71
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 16:31:24 2015 +0200
-
- Merge pull request #4505 from dachary/wip-11322-hammer
-
- rgw - improve performance for large object (multiple chunks) GET
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit c0782ed9ab1e59f39d3a30496214971d4cc509d9
-Merge: e074695 2f34d2e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 16:24:53 2015 +0200
-
- Merge pull request #4501 from dachary/wip-11001-hammer
-
- Improve rgw HEAD request by avoiding read the body of the first chunk
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit e074695e003f891e9c52e19a1679809155364d32
-Merge: 7f9d78d c6edc16
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 16:23:28 2015 +0200
-
- Merge pull request #4500 from dachary/wip-11047-hammer
-
- rgw : make quota/gc thread configurable for starting
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 7f9d78d4f12ff3feaee519dd319426650ca0ff88
-Merge: 11b1ccd 4789686
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 11:46:13 2015 +0200
-
- Merge pull request #4504 from dachary/wip-10691-hammer
-
- ceph-dencoder links to libtcmalloc, and shouldn't
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 11b1ccdb6502406456905d05624f0600ef9df893
-Merge: 7c050ec 8709e34
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 11:44:11 2015 +0200
-
- Merge pull request #4503 from dachary/wip-10983-hammer
-
- use a new disk as journal disk,ceph-disk prepare fail
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7c050ecab2ccc29b03bab2c4ad67c22e9736bb9c
-Merge: c5e0b61 da7f683
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 4 11:43:23 2015 +0200
-
- Merge pull request #4507 from dachary/wip-11432-hammer
-
- compilation error: No high-precision counter available (armhf, powerpc..)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c5e0b615d7c98ef700ebe8048ed038f1ff036ff4
-Merge: ee61a61 856b2fa
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 30 17:10:29 2015 -0700
-
- Merge pull request #4515 from ceph/hammer-next
-
- rgw: critical fixes for hammer
-
-commit ee61a61face479d9895a5cd08ebc8aa93c8bb6ce
-Merge: abc0741 0ee022b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Apr 30 09:23:53 2015 -0700
-
- Merge pull request #4462 from liewegas/wip-11211-hammer
-
- osd/ReplicatedPG: don't check order in finish_proxy_read
-
-commit 856b2fa1fc72916349e484bf3615860392b74100
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 22 15:39:05 2015 -0700
-
- rgw-admin: a tool to fix object locator issue
-
- Objects that start with underscore need to have an object locator,
- this is due to an old behavior that we need to retain. Some objects
- might have been created without the locator. This tool creates a new
- rados object with the appropriate locator.
-
- Syntax:
-
- $ ./radosgw-admin bucket check --check-head-obj-locator \
- --bucket=<bucket> [--fix]
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit be4355ad8ed622734172fdce77ca71fb2635b36c)
-
-commit 512ae4cb3e182ce79aca7354c66d2f2a662555da
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 21 17:31:41 2015 -0700
-
- rgw: set a special object locator if object starts with underscore
-
- Fixes: #11442
- Backport: hammer
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 3d4a1d20b86a5a00556df3d6a8dba096509274b7)
-
-commit da4d2274b5d83a116e767f3063752624d1719c32
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Apr 23 15:33:03 2015 -0700
-
- rgw: use correct oid when creating gc chains
-
- Fixes: #11447
- Backport: hammer
-
- When creating gc chain, use the appropriate oid, otherwise objects will
- leak.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit cc5d34678c6d4bdcd552e6334a383c4df9797f46)
-
-commit 4e84f318de97e592e16493c67491ba0d7f8103a8
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Apr 23 17:36:47 2015 +0200
-
- rgw: civetweb should use unique request id
-
- max_req_id was moved to RGWRados and changed to atomic64_t.
-
- The same request id resulted in gc giving the same idtag to all objects
- resulting in a leakage of rados objects. It only kept the last deleted object in
- it's queue, the previous objects were never freed.
-
- Fixes: 10295
- Backport: Hammer, Firefly
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit c26225980c2fd018e70033a453d635533fcdefec)
-
-commit abc0741d57f30a39a18106bf03576e980ad89177
-Merge: 74c2dc1 3001fad
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed Apr 29 15:02:56 2015 -0700
-
- Merge pull request #4506 from dachary/wip-11381-hammer
-
- messenger: double clear of pipe in reaper
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 478968670caecd67f7995a09b60f6208729e3de3
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Apr 13 12:38:58 2015 +0200
-
- Move ceph-dencoder build to client
-
- The patch simply moves the ceph-dencoder build from server part of the
- Makefiles to client part of the Makefiles.
-
- Refs: #10691
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit ef2164725f0b55ffa4b609d407eed5f3f3048b46)
-
-commit 7eabb70b906e50901551ab96453f05fe662a8876
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Apr 13 15:07:03 2015 +0200
-
- Rework mds/Makefile.am to support a dencoder client build
-
- The patch adds all the mds sources to DENCODER_SOURCES to allow a
- dencoder client build. The patch also splits the Makefile.am file to
- better accomodate the change.
-
- Refs: #10691
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit c2b3a35fb3cbf28d46a5427f32fbaff142c85f2a)
-
- Conflicts:
- src/mds/Makefile-server.am
- src/mds/Makefile.am
- because the mds/StrayManager.h file was added after hammer
-
-commit da7f6835b15370ce0120a64f7ac3359f3ba4729b
-Author: James Page <james.page@ubuntu.com>
-Date: Fri Mar 13 19:46:04 2015 +0000
-
- Add support for PPC architecture, provide fallback
-
- Add high precision cpu cycles support for powerpc and powerpc64.
-
- Provide a fallback for other architectures and warn during
- compilation.
-
- Signed-off-by: James Page <james.page@ubuntu.com>
- (cherry picked from commit b2781fb5638afae7438b983a912ede126a8c5b85)
-
-commit 3001fad4b6d7e692f6070ef166ed4a3e4849760f
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Fri Apr 17 22:07:00 2015 +0800
-
- Fix clear_pipe after reaping progress
-
- In pipe.cc:1353 we stop this connection and we will let reader and write threads stop. If now reader and writer quit ASAP and we call queue_reap to trigger the reap progress. Now we haven't call "connection_state->clear_pipe(this)" in pipe.cc:1379, so we may assert failure here.
-
- Fixes: #11381
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 0ea0e011a6a6c6d6b40f5d97328bbad0e4568dd7)
-
-commit 379ef714f7149a748891dafd41db80c247d35975
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Fri Apr 3 12:27:04 2015 +0000
-
- rgw : Issue AIO for next chunk first before flush the (cached) data.
-
- When handling GET request for large object (with multiple chunks), currently it will first flush the
- cached data, and then issue AIO request for next chunk, this has the potential issue to make the retriving
- from OSD and sending to client serialized. This patch switch the two operations.
-
- Fixes: 11322
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit 366e8a85c0e9f00eed364eaebbfb6b672852eae9)
-
-commit b903ad28a68772fa0b7a88b4db2724f4d07565d5
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Apr 13 12:33:00 2015 +0200
-
- rgw/Makefile.am: Populate DENCODER_SOURCES properly
-
- Dencoder is built if ENABLE_CLIENT is set. However, the rgw/Makefile.am
- populated DENCODER_SOURCES only if WITH_RADOSGW was set. The patch fixes
- this and populates DENCODER_SOURES if ENABLE_CLIENT is set.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 0b264331f57b64880ce05fe3bd752e8df226d00c)
-
-commit f994483c0e3a60226c8fb6983380ef8400b0160e
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Apr 13 12:32:30 2015 +0200
-
- Dencoder should never be built with tcmalloc
-
- The patch adds disabled perfglue stubs to DENCODER sources in order to
- avoid tcmalloc-enabled ceph-dencoder builds.
-
- Refs: #10691
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit fb11c74d1dc3843f2f5b6dca9c76278c5ceeca1c)
-
-commit 8709e34f931809f7129cdac1203ec4e774e3eb4c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Mar 8 15:15:35 2015 +0100
-
- ceph-disk: more robust parted output parser
-
- In some cases, depending on the implementation or the operating system,
-
- parted --machine -- /dev/sdh print
-
- may contain empty lines. The current parsing code is fragile and highly
- depends on output details. Replace it with code that basically does the
- same sanity checks (output not empty, existence of units, existence of
- the dev entry) but handles the entire output instead of checking line by
- line.
-
- http://tracker.ceph.com/issues/10983 Fixes: #10983
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit f5acf6bb6a342b05897605703d7d9cb7c09714fd)
-
-commit 8d9f4d4eb546e26eeb3911811bdeb166d06cb1d1
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Fri Mar 6 11:26:31 2015 +0800
-
- osdc: add epoch_t last_force_resend in Op/LingerOp.
-
- Using this field record the pg_poo_t::last_force_op_resend to avoid op
- endless when osd reply with redirect.
-
- Fixes: #11026
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit def4fc4ae51174ae92ac1fb606427f4f6f00743e)
-
-commit 2f34d2e73bb4bded4779af15a337c75eb2d1497f
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Tue Mar 3 09:46:52 2015 +0000
-
- rgw: do not pre-fetch data for HEAD requests
-
- Backport: hammer
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit e32da3e7c880eaf7cb84d1c078447b28e1d8052b)
-
-commit c6edc16fee027f6cdefacba08f1edc436a7406c5
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Wed Feb 4 03:21:52 2015 +0000
-
- rgw - make starting quota/gc threads configurable
-
- Fixes: 11047
- Backport: hammer
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit a88712aeb4e7cd4208b9a707aa3bd4d03340c3ff)
-
-commit c6159724f065731c41b2d29a48d0f0a3dc82340b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Mar 20 11:56:55 2015 -0400
-
- librbd: ImageWatcher should cancel in-flight ops on watch error
-
- Upon an watch error notification from librados, pending requests
- should be canceled and in-flight IO should be flushed prior to
- unlocking the image.
-
- Fixes: #11363
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fc2e511b2aed4d40eff5101a4c9e513b34e5e58e)
-
-commit 0e6a032c9e6ddae20be82df7500a0758d2cd8e74
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 7 15:39:13 2015 -0400
-
- librbd: moved snap_create header update notification to initiator
-
- When handling a proxied snap_create operation, the client which
- invoked the snap_create should send the header update notification
- to avoid a possible race condition where snap_create completes but
- the client doesn't see the new snapshot (since it didn't yet receive
- the notification).
-
- Fixes: #11342
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6e20ed6834912ccd979d16e3f3b340c239e05288)
-
-commit 2864da86ca689472341e8a80f7ad6fcc5eb8321a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 22 11:27:35 2015 -0400
-
- librbd: updated cache max objects calculation
-
- The previous calculation was based upon the image's object size.
- Since the cache stores smaller bufferheads, the object size is not
- a good indicator of cache usage and was resulting in objects being
- evicted from the cache too often. Instead, base the max number of
- objects on the memory load required to store the extra metadata
- for the objects.
-
- Fixes: #7385
- Backport: firefly, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0b378942c4f1b79cb65967f2d3466728ca1c8d5b)
-
- Conflicts:
- src/librbd/ImageCtx.cc
- because hammer has cct->_conf->rbd_cache_size
- instead of cache_size
-
-commit 0cdc93fbdcf68a31e6aada38b0cb9d66efdc512d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Mar 16 11:04:22 2015 -0400
-
- librbd: acquire cache_lock before refreshing parent
-
- cache_lock needs to be acquired before snap_lock to avoid
- the potential for deadlock.
-
- Fixes: #5488
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 703ba377e3de4007920f2ed7d8a0780f68676fe2)
-
- Conflicts:
- src/librbd/internal.cc
- resolved by moving int r; in the scope of the block
-
-commit a1b4aeb8e8c3a8d5c8284dcee8e03f501a77928c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Mar 13 18:08:47 2015 -0400
-
- librados_test_stub: AIO operation callbacks should be via Finisher
-
- librados will execute all AIO callbacks via a single finisher to
- prevent blocking the Objecter. Reproduce this behavior to avoid
- deadlocks that only exist when using the test stub.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b38c96f2c1747a6d864e7aaa2e9858139ce9d1fd)
-
-commit 3a58e30dc6563197f0effeabbd2fbf804403ad34
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Apr 28 15:45:32 2015 +0800
-
- mds: remove caps from revoking list when caps are voluntarily released
-
- Fixes: #11482
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 86788c4ea4155f0388b7ebaf475a3d3c37d39331)
-
-commit 74c2dc1f3924fa05e2c40f4cceb2ab060493bdfb
-Merge: 8a58d83 f30fa4a
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 24 16:13:56 2015 -0700
-
- Merge pull request #4463 from ceph/wip-11453-hammer-rgw-init-as-root
-
- rgw: init-radosgw: run RGW as root
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit f30fa4a364602fb9412babf7319140eca4c64995
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Apr 22 16:36:42 2015 -0600
-
- init-radosgw: run RGW as root
-
- The ceph-radosgw service fails to start if the httpd package is not
- installed. This is because the init.d file attempts to start the RGW
- process with the "apache" UID. If a user is running civetweb, there is
- no reason for the httpd or apache2 package to be present on the system.
-
- Switch the init scripts to use "root" as is done on Ubuntu.
-
- http://tracker.ceph.com/issues/11453 Refs: #11453
-
- Reported-by: Vickey Singh <vickey.singh22693@gmail.com>
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 47339c5ac352d305e68a58f3d744c3ce0fd3a2ac)
-
-commit 0ee022b1ae832c70a80e9d2cdf32403039f3f125 (refs/remotes/me/wip-11211-hammer)
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Tue Mar 24 16:00:16 2015 +0800
-
- osd/ReplicatedPG: don't check order in finish_proxy_read
-
- Read doesn't need to be ordered. So when proxy read comes back from base
- tier, it's not necessarily at the front of the in progress list.
-
- Fixes: #11211
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit 560a5839c0d1852b5816937b845b60390777636c)
-
-commit 8a58d83b0d039d2c2be353fee9c57c4e6181b662
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Sun Mar 22 23:59:19 2015 +0800
-
- Fix ceph_test_async_driver failed
-
- This test will create 10000 sockets which will failed because of limited system fd. Actually we only need to create several hundreds sockets and it's enough to get the test's goal.
-
- Fix bug #11198(cherry picked from commit cd11daa2d21b7b059df9877cad38432678bb6161)
-
-commit 85a68f9a8237f7e74f44a1d1fbbd6cb4ac50f8e8
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Apr 3 13:43:31 2015 +0200
-
- rgw: remove meta file after deleting bucket
- The meta file is deleted only if the bucket meta data is not synced
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
-
- Fixes: #11149
- Backport: hammer, firefly
- (cherry picked from commit dfdc7afb59cc8e32cf8bff55faa09076c853de06)
-
-commit b01e68fae2f8235b7a813188b664d3ec7bd1fa09
-Merge: addc7e2 bd0ec49
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Apr 14 20:58:40 2015 +0200
-
- Merge pull request #4332 from dachary/wip-11217-hammer
-
- tests: TestFlatIndex.cc races with TestLFNIndex.cc
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit addc7e2c6a4973cbcb5f02635be01a446cb223f0
-Merge: e4bfad3 51f5763
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Apr 14 09:05:53 2015 -0700
-
- Merge pull request #4357 from dachary/wip-release-notes-hammer
-
- release-notes: backport Hammer release notes
-
-commit 51f57632f6d463e5f702bdb4e12c1914ec76d2b5
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Apr 14 11:30:43 2015 +0200
-
- release-notes: backport Hammer release notes
-
- Include the Hammer release notes in Hammer.
-
- Cherry picking the Hammer release notes cannot be done cleanly, they are
- copy/pasted instead. This will allow cherry-picking the release notes
- for the next point releases. It should be undisturbed by the release
- notes for other point releases because they modify parts of the file
- that will not generate cherry-pick conflicts.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit bd0ec494739308dc33e6b042ae3e1aafd53c634c
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Tue Mar 24 18:42:04 2015 +0800
-
- bug fix: test case for lfn index
-
- tests: TestFlatIndex.cc races with TestLFNIndex.cc
- Both use the same PATH and when run in parallel they sometime conflict.
-
- Fixes: #11217
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 791c3879d62b848616972f9c6d921aac30ac4925)
diff --git a/src/ceph/doc/changelog/v0.94.3.txt b/src/ceph/doc/changelog/v0.94.3.txt
deleted file mode 100644
index 7c0a60d..0000000
--- a/src/ceph/doc/changelog/v0.94.3.txt
+++ /dev/null
@@ -1,2660 +0,0 @@
-commit 95cefea9fd9ab740263bf8bb4796fd864d9afe2b (tag: refs/tags/v0.94.3, refs/remotes/gh/hammer)
-Author: Jenkins <jenkins@inktank.com>
-Date: Wed Aug 26 10:39:37 2015 -0700
-
- 0.94.3
-
-commit 697101e4dfd9822050ce401b5f6212bfd81fea89
-Merge: 88e7ee7 81a311a
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Tue Aug 18 12:43:57 2015 +0100
-
- Merge pull request #5589 from ceph/hammer-12709
-
- Workunits : fs/misc/chmod.sh : Include ACL characters in permission check
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 81a311a744987564b70852fdacfd915523c73b5d
-Author: Yazen Ghannam <yazen.ghannam@linaro.org>
-Date: Mon May 4 12:33:16 2015 -0400
-
- Workunits : fs/misc/chmod.sh : Include ACL characters in permission check.
-
- Signed-off-by: Yazen Ghannam <yazen.ghannam@linaro.org>
- (cherry picked from commit d3dbfffefb0ae53583350f53258dc902670da659)
-
-commit 88e7ee716fdd7bcf81845087021a677de5a50da8
-Merge: bb12f92 1a32379
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 4 13:02:17 2015 +0200
-
- Merge pull request #5160 from theanalyst/wip-11910-hammer
-
- mon: pg ls is broken
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit bb12f925cf0d78f97eefc2e271e73596050b9919
-Merge: e801d4c e19f928
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 4 12:34:18 2015 +0200
-
- Merge pull request #5384 from dachary/wip-12502-hammer
-
- rgw: need conversion tool to handle fixes following #11974
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit e801d4c943b8004ef613345505df91057913cd39
-Merge: 78a4024 154f18c
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 4 11:22:08 2015 +0200
-
- Merge pull request #5405 from ceph/wip-12465-hammer
-
- Log::reopen_log_file: take m_flush_mutex
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 78a4024c14253503b770070aa36a090c6b8f1eaf
-Merge: a451e88 7034720
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 31 15:18:52 2015 -0400
-
- Merge pull request #5121 from theanalyst/wip-11983-hammer
-
- FAILED assert(!old_value.deleted()) in upgrade:giant-x-hammer-distro-basic-multi run
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a451e882ab9a929d240747b4b09786ca4b4ce377
-Merge: 218f537 1063f52
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jul 31 15:17:00 2015 -0400
-
- Merge pull request #5269 from dachary/wip-12362-hammer
-
- stuck incomplete
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 218f537491a46a0251bef7690a7f5a86b988ee63
-Merge: 07fa83a 8abc46a
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:55:48 2015 +0200
-
- Merge pull request #5117 from theanalyst/wip-12099-hammer
-
- rgw: rados objects wronly deleted
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 07fa83aefc9bd4ea1495fa1e117a438b2c460e46
-Merge: a69d431 56c2688
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:55:29 2015 +0200
-
- Merge pull request #5118 from theanalyst/wip-12042-hammer
-
- DragonDisk fails to create directories via S3: MissingContentLength
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit a69d431ea52b5de7fc5cfe142ff3b69ff64e8048
-Merge: 5353480 c78cc00
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:55:14 2015 +0200
-
- Merge pull request #5214 from SUSE/wip-12299-hammer
-
- RGW Swift API: support for 202 Accepted response code on container creation
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 5353480f1df297ad9dd1bd3154887ed2564f0280
-Merge: fb9156f a5dbcbb
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:54:57 2015 +0200
-
- Merge pull request #5226 from SUSE/wip-12322-hammer
-
- rgw: keystone does not support chunked input
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit fb9156f412f83c0ce1fe4c5c9ccd57fd79f0c992
-Merge: 7193c16 b1618a9
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:54:41 2015 +0200
-
- Merge pull request #5227 from SUSE/wip-12323-hammer
-
- RGW Swift API: XML document generated in response for GET on account does not contain account name
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 7193c16b65fdc1694b968899d23eae0638d89f11
-Merge: ac86490 e39dce7
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:54:26 2015 +0200
-
- Merge pull request #5228 from theanalyst/wip-11872-hammer
-
- RGW does not send Date HTTP header when civetweb frontend is used
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit ac86490821336ce024940d48d82f7a5ff7a302b1
-Merge: 33dbfc6 557865c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:54:02 2015 +0200
-
- Merge pull request #5229 from theanalyst/wip-12242-hammer
-
- Fix tool for #11442 does not correctly fix objects created via multipart uploads
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 33dbfc6919840882c6cbc10dad2fc24cf0720bf9
-Merge: 99ca62f e50caab
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:53:41 2015 +0200
-
- Merge pull request #5237 from theanalyst/wip-12245-hammer
-
- rgw: empty json response when getting user quota
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 99ca62f2bf1e21a41cb7b6ecdb8a8731a18de195
-Merge: 1f5f319 2357b6c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:53:18 2015 +0200
-
- Merge pull request #5284 from SUSE/wip-12398-hammer
-
- rgw: Properly respond to the Connection header with Civetweb
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 1f5f31905bb5f499a2db4a02993dbc6efa1c4251
-Merge: 5cbb6cf 9458b84
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:53:04 2015 +0200
-
- Merge pull request #5285 from SUSE/wip-12399-hammer
-
- rgw: multipart list part response returns incorrect field
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 5cbb6cfb69aad0db470f99e39e33f4b4b1abfb95
-Merge: 1df93e1 e4b55b3
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 31 20:52:43 2015 +0200
-
- Merge pull request #5286 from SUSE/wip-12400-hammer
-
- rgw: radosgw-admin dumps user info twice
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 1df93e19a0275ed218c8f83bc674f16d1856f241
-Merge: a48cbc0 2ecb3b7
-Author: Yan, Zheng <ukernel@gmail.com>
-Date: Fri Jul 31 09:50:22 2015 +0800
-
- Merge pull request #5427 from dachary/wip-12088-hammer-part-2
-
- Fh ref count will leak if readahead does not need to do read from osd
-
-commit 2ecb3b7f4a49c574bc178a106c6bf0d8247f2a5e
-Author: Zhi Zhang <zhangz.david@outlook.com>
-Date: Wed Jul 22 10:54:53 2015 +0800
-
- Fh ref count will leak if readahead does not need to do read from osd
-
- The 3c8cdeacf46ae4031189d2ef6948aa3b6ab4ae43 backport introduced a leak.
-
- http://tracker.ceph.com/issues/12319 Fixes: #12319
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
-
-commit a48cbc0a847f19ea613b76a479acc831e9316c62
-Merge: 06c27cd 5ef0846
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jul 30 21:43:48 2015 +0200
-
- Merge pull request #5120 from theanalyst/wip-11999-hammer
-
- cephfs Dumper tries to load whole journal into memory at once
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 06c27cdd420598c497766ee5879335942a0acc09
-Merge: 19abe5e 408880b
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jul 30 21:43:21 2015 +0200
-
- Merge pull request #5119 from theanalyst/wip-12098-hammer
-
- kernel_untar_build fails on EL7
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 19abe5ee35c099c67b56ac268710fcd20bec60d3
-Merge: e3d17e4 4c199bf
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jul 30 17:00:14 2015 +0200
-
- Merge pull request #5417 from dachary/wip-11998-hammer
-
- debian/control: ceph-common (>> 0.94.2) must be >= 0.94.2-2
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 4c199bf57dc54dc5e5f45cd9b34878a8459d434e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Jul 30 09:43:20 2015 +0200
-
- debian/control: ceph-common (>> 0.94.2) must be >= 0.94.2-2
-
- The d8733be2ef8874b9a858a7ffddfb81b9b656e9a6 backport introduced a
- regression by adding an incorrect Depends / Break combo supposed to
- reflect the fact that ceph_argparse moved from ceph to ceph-common after
- v0.94.2. It assumed the package is released under the 0.94.2 version
- where in reality it is released under the 0.94.2-1xxx version (where xxx
- is trusty, jessie etc.).
-
- The Depends / Break combo is changed to use 0.94.2-2 instead.
-
- See also http://tracker.ceph.com/issues/12529 for a larger discussion.
-
- http://tracker.ceph.com/issues/11998 Fixes: #11998
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit e3d17e49731569ea92917f574d42d93258c77189
-Merge: cbba706 89aa8ff
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 29 16:22:36 2015 +0200
-
- Merge pull request #5248 from ceph/wip-11833-hammer
-
- mon: add an "osd crush tree" command
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit cbba7064c6cc4cde3e8a49c25ce671e91d31b9c7
-Merge: 8355bda 3c8cdea
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 29 10:49:08 2015 +0200
-
- Merge pull request #5222 from ceph/hammer-12088
-
- client: reference counting 'struct Fh'
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 8355bdab56bc4e5ce4d20ba3486c082f06d8dcd1
-Merge: 52d0e5d ec70533
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Jul 28 23:33:18 2015 +0200
-
- Merge pull request #5231 from theanalyst/wip-12243-hammer
-
- Civetweb RGW appears to report full size of object as downloaded when only partially downloaded
-
-commit 52d0e5da5ebad7fe42c2e469cea9773c7714c2b5
-Merge: 7fd31b1 03c07d7
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:40:23 2015 +0200
-
- Merge pull request #5243 from theanalyst/wip-12239-hammer
-
- librbd/internal.cc: 1967: FAILED assert(watchers.size() == 1)
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 7fd31b1b3c2c8e9dd3d9e5464775422215f7a4bc
-Merge: 7230de3 5c812c1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:40:03 2015 +0200
-
- Merge pull request #5241 from theanalyst/wip-12238-hammer
-
- [ FAILED ] TestLibRBD.ExclusiveLockTransition
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 7230de317736a71a5764cf224bd1309da1c7b3c6
-Merge: 6b6228f 7132277
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:30:23 2015 +0200
-
- Merge pull request #5265 from SUSE/wip-12368-hammer
-
- linking ceph to tcmalloc causes segfault on SUSE SLE11-SP3
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6b6228f8949e975cac763513898ea9704cb8baf1
-Merge: d62c3ea f99f312
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:27:40 2015 +0200
-
- Merge pull request #5280 from ceph/wip-12384-hammer
-
- librbd: add valgrind memory checks for unit tests
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d62c3ea344d9e49e9586867e872e8d5b3f019948
-Merge: 7b57ff8 b872882
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:26:25 2015 +0200
-
- Merge pull request #5279 from ceph/wip-12237-hammer
-
- A client opening an image mid-resize can result in the object map being invalidated
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7b57ff8a9ced6c2f22456ed034cc83d07f82fbb3
-Merge: 481728a f819332
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 22:10:03 2015 +0200
-
- Merge pull request #5283 from SUSE/wip-12397-hammer
-
- ceph.spec.in: 95-ceph-osd.rules, mount.ceph, and mount.fuse.ceph not installed properly on SUSE
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 481728a04dd2c85096c3bc01cc37da9642b038ca
-Merge: 54bb924 d8733be
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:54:33 2015 +0200
-
- Merge pull request #5206 from SUSE/wip-11998-hammer
-
- /usr/bin/ceph from ceph-common is broken without installing ceph
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 54bb924e68ae2b4df65576a5d788d593b9d9e722
-Merge: e099058 c5c627f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:47:29 2015 +0200
-
- Merge pull request #5055 from SUSE/wip-12044-hammer
-
- rgw/logrotate.conf calls service with wrong init script name
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e0990583298277f1c631f7c2d2260d6c3fa64c9f
-Merge: 8b93978 e149916
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:46:11 2015 +0200
-
- Merge pull request #5040 from SUSE/wip-11964-hammer
-
- systemd: Increase max files open limit for OSD daemon
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8b93978881375d063fe2df8f40406ea650dda766
-Merge: 5a7cab2 22f58ce
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:45:44 2015 +0200
-
- Merge pull request #5038 from SUSE/wip-11876-hammer
-
- ceph-post-file fails on rhel7
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5a7cab205bb1b3fdbf49a852cb978fc28eba8212
-Merge: 5218eff 38d36b1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:45:25 2015 +0200
-
- Merge pull request #5030 from SUSE/wip-12092-hammer
-
- packaging: add SuSEfirewall2 service files
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5218eff07c303fb2762ea9f38b9a9c23c24efcae
-Merge: 0b54d50 8acfb99
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:38:14 2015 +0200
-
- Merge pull request #5028 from SUSE/wip-12090-hammer
-
- rcceph script is buggy
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0b54d50ecd1445dfc1a46552adb83b9dae9210d9
-Merge: 45beb86 37d77d3
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 28 21:37:44 2015 +0200
-
- Merge pull request #5026 from SUSE/wip-12087-hammer
-
- max files open limit for OSD daemon is too low
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e19f928bd770a37f2f631c4cd796e2e30a494234
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jun 26 16:56:28 2015 -0700
-
- rgw: conversion tool to fix broken multipart objects
-
- Fixes: #12079
-
- Broken multipart objects: multipart objects that created on 0.94.2
- and that start with underscore have a bad locator on their tail objects.
- This extends the tool that was needed for older issue we've had with
- hammer multipart objects (that start with underscore). The same usage
- applies:
-
- $ radosgw-admin bucket check --check-head-obj-locator \
- --bucket=<bucket> [--fix]
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f02ca6107172cecd80a490df9f0d66204e62326c)
-
-commit 28d32f6090724d62b6168d64031454f44eb4cc88
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jun 26 13:49:55 2015 -0700
-
- rgw: only scan for objects not in namespace
-
- Fixes: #11984
- The tool should only work on the head objects, and these are not inside
- any namespace.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 8103908548bf7d6c9fa47fb181cd450670bae8d6)
-
-commit e22e2b43b4039a44f5f8fbbe59edc21fbe118bdc
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 22 16:04:35 2015 -0700
-
- rgw_admin: add --remove-bad flag to bucket check
-
- Add this flag so that the bad object will be removed (should be called
- only after user has verified that objects content is correct).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 06d67d9139a95b704b80de527381fd1bbf7981ce)
-
-commit 154f18ce3e52094fe84b058565a865ed97b079d6 (refs/remotes/gh/wip-12465-hammer)
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Jul 24 15:38:18 2015 -0700
-
- Log::reopen_log_file: take m_flush_mutex
-
- Otherwise, _flush() might continue to write to m_fd after it's closed.
- This might cause log data to go to a data object if the filestore then
- reuses the fd during that time.
-
- Fixes: #12465
- Backport: firefly, hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8778ab3a1ced7fab07662248af0c773df759653d)
-
-commit b8728823493b9dfde0333fb41725002fc50e4d9b (refs/remotes/gh/wip-12237-hammer)
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jul 5 10:47:38 2015 -0400
-
- librados_test_stub: read op should return number of bytes read
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f8a7b507983e31399831e802e99429b95386ed41)
-
-commit 7d9fce3aa3832a1b8bd7f18abd4745dbc0033582
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jul 5 10:35:28 2015 -0400
-
- tests: fixed TestObjectMap.InvalidateFlagInMemoryOnly
-
- librados and librados_test_stub return different result codes
- for a read full object operation.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2ace2b77f8ed83e753fe4a48bcc997f5d1dd465f)
-
-commit 4a77be0a65c8b4ec3dc437721f8c321737b260de
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jul 5 11:09:09 2015 -0400
-
- librbd: don't attempt to invalidate an object map in R/O mode
-
- The ImageWatcher is not initialized when in R/O mode, which
- resulted in a NULL pointer dereference.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 64d740f8fa10ba872e324ec2580a4d8c3f99a9ce)
-
-commit 0aea70f68b299441e692efdce6d5e7ff18b78c39
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 23 11:17:12 2015 -0400
-
- tests: add new unit tests for object map invalidation
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0215e9753c09460f6fc84ded9397e36a209f2e32)
-
-commit c732cb889b4a61254d06703bf032082e56b196de
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Mar 25 09:41:13 2015 -0400
-
- librbd: move object map codes to common location
-
- These codes will need to be accessible from cls_rbd and librbd.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4ac584c34d576b489ed4c4862703b8fb427b3bc2)
-
-commit 27c99ea972a7b218ea591b208d0d1dd51eef6f95
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 23 11:14:51 2015 -0400
-
- librbd: only update image flags when holding exclusive lock
-
- It was possible for a client to open an image while another client
- was shrinking an image. This would result in the former invalidating
- the object map on-disk if it openned the image between updating the
- image header and resizing the object map.
-
- Fixes: #11791
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit eb81a6a7e391327ac993fd406443b206a7f7bffc)
-
-commit ef453630200ab72373f08357ca6b5ac5c5bbb397
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 17 12:43:46 2015 -0400
-
- librbd: new ImageWatcher::is_lock_supported method
-
- The new version does not attempt to acquire the snap_lock, to avoid
- cases where a recursive lock would result.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit e4b55b398e68e870a7cf21276e63da2c4c6e3faa
-Author: guce <guce@h3c.com>
-Date: Sat Jul 11 14:08:33 2015 +0800
-
- Fixes: #12286 radosgw-admin: after subuser modify print only once user info.
-
- remove rgw_admin.cc OPT_SUBUSER_MODIFY, show_user_info code block.
-
- switch (opt_cmd) {
- ...
- case OPT_SUBUSER_MODIFY:
- show_user_info(info, formatter); //show first time (remove this)
- break;
- ...
- }
-
- // output the result of a user operation
- if (output_user_info) {
- ...
- show_user_info(info, formatter); //show second time
- }
-
- test fix:
- before: after subuser modify print twice user info.
- after changes, do the same procedure, print only once user info.
-
- Signed-off-by: guce guce@h3c.com
- (cherry picked from commit c604dd97fc179e5c2f640818c0f6e7cf99701947)
-
-commit 9458b845bf863ccf878873c4f0b089ddf84c7203
-Author: Henry Chang <henry@bigtera.com>
-Date: Wed Apr 22 18:26:45 2015 +0800
-
- rgw: fix ListParts response
-
- The response XML element name should be 'ListPartsResult'.
-
- Fixes: #11494
-
- Signed-off-by: Henry Chang <henry@bigtera.com>
- (cherry picked from commit caa9f0e461f1eed526fc43ee74699a7243aef9b8)
-
-commit 2357b6c808f4f7c5997af48149585a6051c04b8f
-Author: Wido den Hollander <wido@42on.com>
-Date: Sat Jul 11 00:01:52 2015 +0200
-
- rgw: If the client sends a Connection: close header respond accordingly.
-
- HTTP/1.1 assumes Keep-Alive by default, but if a Connection: close header is send
- the server should respond with it as well.
-
- This makes the client close the connection after the request.
-
- Fixes: #12298
- (cherry picked from commit 79197d3711edc4b04a7ea4335b6e1b65754996d5)
-
-commit f819332e2826eae14849c5e68a380d1d87039d22
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 9 21:38:46 2015 +0200
-
- ceph.spec.in: install 95-ceph-osd.rules, mount.ceph, and mount.fuse.ceph properly on SUSE
-
- http://tracker.ceph.com/issues/12261 Fixes: #12261
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 5ce38b9536efabf99a236c7a9d15c149fa4c16a6)
-
-commit d8733be2ef8874b9a858a7ffddfb81b9b656e9a6
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Apr 14 07:58:17 2015 -0600
-
- debian: move ceph_argparse into ceph-common
-
- Prior to this commit, if a user installed the "ceph-common" Debian
- package without installing "ceph", then /usr/bin/ceph would crash
- because it was missing the ceph_argparse library.
-
- Ship the ceph_argparse library in "ceph-common" instead of "ceph". (This
- was the intention of the original commit that moved argparse to "ceph",
- 2a23eac54957e596d99985bb9e187a668251a9ec)
-
- http://tracker.ceph.com/issues/11388 Refs: #11388
-
- Reported-by: Jens Rosenboom <j.rosenboom@x-ion.de>
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 110608e5bdd9e2f03020ad41f0c2d756684d4417)
-
- Conflicts:
- debian/ceph.install
- There is no ceph_daemon.py in hammer
- debian/control
- Depends/Replaces/Breaks version adapted (from 9.0.0 to 0.94.2)
- also adapted ceph-dbg Replaces/Breaks
-
-commit f99f3125ff76628e2525dca00bb7b983f941a08b (refs/remotes/gh/wip-12384-hammer)
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Fri Mar 20 16:15:42 2015 +0800
-
- test: potential memory leak in FlushAioPP
-
- Should call the release function instead of deleting it to free
- librbd::RBD::AioCompletion and librbd::AioCompletion. Otherwise there is
- a potential memory leak.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit ada7ec860cb7901c560c12a5af36dc7c23051b76)
-
-commit a4fc63af630e77586e3ba2f17df3b6be4a1e2055
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 28 15:25:49 2015 -0400
-
- pybind: fix valgrind warning on rbd_get_parent_info call
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2586e3ba1e20603a87c833513e09dae9281beb4d)
-
-commit aa3eb28f6be62991bc790de5c19cb7b6e30fa189
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 28 11:12:00 2015 -0400
-
- osdc: invalid read of freed memory
-
- The bytes not in cache stat was potentially reading the bh length
- from a deleted bufferhead.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5ccc4422d6172376bd6f1be8d3a99c0a54eab807)
-
-commit 18ede754388372cf210d7db87fa46f3536cf0e44
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 28 10:56:15 2015 -0400
-
- krbd: fix incorrect types in the krbd API
-
- The C API functions were referencing the C++ CephContext
- instead of the C rados_config_t. Additionally, the ceph
- namespace was missing on the Formatter class.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 740fd275a60630e60b3bcf41637a2ca486885d9c)
-
-commit 488578c1d557ebec7e50d53e45ed46f42984f4f8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 28 10:54:47 2015 -0400
-
- fsx: cleanup crypto library at exit
-
- Also made small tweaks so that it can be compiled under
- a C++ compiler.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c44f8e7fbc19924a9453d8c032c624ebb6c0296f)
-
-commit 97ff6cb2f8fdd4d946eeab338ec225450e3ad8f3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Apr 24 14:29:59 2015 -0400
-
- tests: add run-rbd-valgrind-unit-tests.sh
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5534faaa469b8a6a4c9687aad1a6723f3e859353)
-
-commit e690907cbb3b229f84f1e996d58636d00f823e8f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Apr 24 00:23:03 2015 -0400
-
- valgrind: update valgrind suppressions for lttng-ust
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8d87bdf597aad3d6be47aedd216a673bd9093a24)
-
-commit fe013e0a813c5697e917da642143388de60e8528
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Apr 24 00:21:15 2015 -0400
-
- librbd: TaskFinisher should finish all queued tasks
-
- The destructor wasn't waiting for all Finisher tasks
- to complete before stopping the thread.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8e20240e4155e2f0398e79f4c0095d2d6ba1d4cb)
-
-commit 43cd3ac923c9accfb81acf41f5bd12b8a05322c7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 23 23:10:23 2015 -0400
-
- tests: fix valgrind errors with librbd unit test
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ed5472a10eb515e2a177a640c3f6ed929db9ee4f)
-
-commit 5d8d6a1a776f833847edc80d2a9b31ecb440ade5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 23 23:09:45 2015 -0400
-
- tests: librbd should release global data before exit
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6ab1bb5614a5d257a82cf8ea280eef5c90cf765b)
-
-commit 13f926e4e96d0b7178a9762bbbf589961dba47b7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 23 23:08:51 2015 -0400
-
- librados_test_stub: cleanup singleton memory allocation
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 54c88255b74741d882b88f791497862635357634)
-
-commit 45beb86423c3bd74dbafd36c6822e71ad9680e17
-Merge: 5e399b0 582cf73
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 17 19:48:05 2015 +0200
-
- Merge pull request #5046 from ceph/wip-12109-hammer
-
- librbd: new QA client upgrade tests
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1063f5275d1031812d564a1bd8ada64bed561026
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 20 12:08:15 2015 -0700
-
- PG::find_best_info: ignore info.les for incomplete peer
-
- See included update to doc/dev/osd_internals/last_epoch_started.rst
-
- Fixes: 11687
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 371d9baa120dc0302e9e61d3bc0e309dfaa773a0)
-
-commit 5e399b035d7cf861cf66a8ead00b388c4857cbb6
-Merge: 706b1c7 ad5745b
-Author: Samuel Just <sam.just@inktank.com>
-Date: Thu Jul 16 14:58:49 2015 -0700
-
- Merge pull request #5159 from theanalyst/wip-11701-hammer
-
- make the all osd/filestore thread pool suicide timeouts separately configurable
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 713227791ab28c5e09073acb7b2c3c83ca0f0d6a
-Author: Thorsten Behrens <tbehrens@suse.com>
-Date: Mon Mar 16 00:13:38 2015 +0100
-
- Conditional-compile against minimal tcmalloc.
-
- Certain older systems (SLE11 in this case) do not provide the full
- tcmalloc functionality, due to e.g. incomplete libunwind
- pieces. Use --with-tcmalloc-minimal to enable the cut-down
- version.
-
- Here's how the various mem allocator switches interact now:
-
- --with-jemalloc: overrides --with-tcmalloc & --with-tcmalloc-minimal
- --with-tcmalloc-minimal: overrides --with-tcmalloc
- --with-tcmalloc: the default. use --without-tcmalloc to disable
-
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit c6f1c07113ca19547fdac10cd9b817a60142aee2)
-
-commit 706b1c7c5bcaaff96aa6950302b7aef097918d30
-Merge: daf5450 5e72479
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jul 16 11:04:52 2015 -0400
-
- Merge pull request #5252 from ceph/wip-12021-hammer
-
- OSDMonitor: allow addition of cache pool with non-empty snaps with co…
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit daf5450765684b0b2ed049320d7463b637321e5a
-Merge: d20f513 bd91fb0
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jul 16 01:15:51 2015 +0200
-
- Merge pull request #4891 from theanalyst/wip-11740-hammer
-
- crush: take crashes due to invalid arg
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ad5745bfd768b52ae6a766391232becad8587641
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:49:00 2015 -0700
-
- OSD: add command_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit df4e5de819c30003cfbe50a071c49039cf534419)
-
- Conflicts:
- src/common/config_opts.h
- Trivial merge conflict
-
-commit 059a579c02b312bbd32fa41485c361ae3847a3ba
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:54:31 2015 -0700
-
- OSD: add remove_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f2fbfa32a16666be46359f0eab7b04ca80a753f5)
-
-commit b8826bc4e3da6fcb9338ad6c01af1a88e6585a4d
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:52:40 2015 -0700
-
- OSD: add scrub_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 547a7041edc833f3cc8e04d388574809e30a8af6)
-
-commit 878dd403930a2058656a99c14b465358e134843c
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:51:28 2015 -0700
-
- OSD: add snap_trim_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit e1073a4a577211672148a4112bd633831552d66f)
-
-commit 11575832a37ea247a8febe912b3058f51a464ab6
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 10:50:19 2015 -0700
-
- OSD: add recovery_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 85311b656852af75bfbbc6699f92fc6aa233c316)
-
- Conflicts: src/common/config_opts.h
-
- There was a merge conflict due to introduction of `osd_recovery_sleep`
- which was introduced in #3829
-
-commit a82b4505848c09ad0094768c886f2015bdaa1148
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 6 11:02:19 2015 -0700
-
- OSD: add op_wq suicide timeout
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 89aa8ff9855ae868d59bd10fe3a3aab8517e90fc
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 23:52:22 2015 +0800
-
- mon: add an "osd crush tree" command
-
- * to print crush buckets/items in a tree
-
- Fixes: #11833
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5436c290f3622feb8d4b279ed6552b2510e0cee9)
-
- Conflicts:
- src/test/mon/osd-crush.sh:
- do not start mon as run() takes care of it already
-
-commit d20f513d9b185eff82bee2ca719b5453358e740b
-Merge: 8753b2b 3d74164
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 14 20:43:02 2015 +0200
-
- Merge pull request #4899 from theanalyst/wip-11911-hammer
-
- start_flush: filter out removed snaps before determining snapc's
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8753b2b14536c34a7b6dec927c7a5b8100de7f68
-Merge: 3d72652 ecac1a4
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 14 20:42:45 2015 +0200
-
- Merge pull request #4868 from SUSE/wip-11879-hammer
-
- Clock skew causes missing summary and confuses Calamari
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3d72652d7ba6b2fff3d39ea7965c3c61d5fa0a04
-Merge: 9a79e8e fdb43eb
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jul 14 16:42:12 2015 +0200
-
- Merge pull request #4883 from SUSE/wip-11638-hammer
-
- ceph.spec.in: ceph-common subpackage def needs tweaking for SUSE/openSUSE
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 03c07d76ac8361ddd302f5bc0575aee7fb5edc99
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 26 09:59:36 2015 -0400
-
- librbd: assertion failure race condition if watch disconnected
-
- It's possible for librbd's watch of the header object to be reset by
- connection issues just prior to the image being removed. This will
- causes an assertion failure which assumes at least one watcher on the
- image.
-
- Fixes: #12176
- Backport: hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit af276de4f299960e43761904c043924cec5fef11)
-
-commit 5c812c1552d954f2c91c000332ddc74c9e91825a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 25 16:51:31 2015 -0400
-
- librbd: prevent object map updates from being interrupted
-
- Object map updates were being canceled in-flight when the exclusive lock
- is released. This resulted in an ERESTART error code bubbling up to
- AioRequest.
-
- Fixes: 12165
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 590cdc90edaf4f4ff06c97eb2f43b92ab9b60084)
-
- Conflicts:
- src/librbd/ObjectMap.h
- conflict due to a variable `m_snap_id' which was introduced in PR #4140
- which is dropped as we are not backporting that feature
-
-commit e50caab2251bb68fea1adbd17acc43aa98ab1206
-Author: wuxingyi <wuxingyi@letv.com>
-Date: Tue Jun 23 01:46:48 2015 +0000
-
- rgw: fix empty json response when getting user quota
-
- Fixes: #12117
- Signed-off-by: wuxingyi <wuxingyi@letv.com>
- (cherry picked from commit 64fceed2202c94edf28b8315fe14c9affa8c0116)
-
-commit ec705336551436517c16bffdc6bf5467899ae4bb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 25 14:31:03 2015 -0700
-
- rgw: error out if frontend did not send all data
-
- Fixes: #11851
- The civetweb mg_write() doesn't return error when it can't flush all data
- to the user, it just sends the total number of bytes written. Modified the
- client io to return total number of bytes and return an error if didn't
- send anything.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit daa679c3dd3770a6d5421e2cc9a36924f4550439)
-
-commit 557865c85bb907fe69248c4f1acb88320a7c1bb5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jun 17 15:11:28 2015 -0700
-
- rgw: fix reset_loc()
-
- Fixes: #11974
-
- Only need to set locator for underscore if namespace is empty
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d3bd27f4855df6bb207b656527138026af1a36a2)
-
-commit b1618a97fef644dc3dced502d600de6a5d55d085
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon Apr 20 14:55:00 2015 +0200
-
- rgw: fix lack of account name in XML listing of Swift account.
-
- Fixes: #11431
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 837388bbc39a1bf9019302c3a4d3a3fe22caeeb4)
-
-commit e39dce7935dd513b77ce34bc79d70a2c23437cbb
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Feb 18 15:48:43 2015 +0100
-
- rgw: generate the "Date" HTTP header for civetweb.
-
- Fixes: #10873
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit ea384f83b601f60e135c3d3f960fdb75a919dd84)
-
-commit a5dbcbbdddce6cdeccb1e6f5641601d673cd1896
-Author: Hervé Rousseau <hroussea@cern.ch>
-Date: Mon Apr 27 17:54:30 2015 +0200
-
- Swift: Set Content-Length when requesting/checking Keystone tokens
-
- Running Keystone with WSGIChunkedRequest=On is not supported.
-
- We have to make sure that we set the Content-Length header when getting
- an admin token and checking revoked tokens, otherwise Keystone returns
- a HTTP 411 error.
-
- Same applies when checking revoked tickets.
-
- Fixes: #11473
- Backport: Hammer, Firefly
- Signed-off-by: Hervé Rousseau <hroussea@cern.ch>
- (cherry picked from commit 24f477417fdac9d68902fa211c8edf92a2e8729f)
-
-commit 3c8cdeacf46ae4031189d2ef6948aa3b6ab4ae43
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jul 8 10:11:43 2015 +0800
-
- client: reference counting 'struct Fh'
-
- The async readahead finisher needs to reference 'struct Fh'. But
- it's possible user closes FD and free the corresponding 'struct Fh'
- before async readahead finishes.
-
- Fixes: #12088
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 34b939a81d38173b882c429b28dedce778504ba8)
-
-commit c78cc00afb6deb8022db60dbe8649335f61bd345
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Mar 19 14:52:18 2015 +0100
-
- rgw: rectify 202 Accepted in response for PUT on existing bucket.
-
- Fixes: #11148
- Backport: hammer
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 3998fe7e02a6c25a3302c80a9c9907357fd3a23e)
-
-commit 9a79e8e7da5f34f1adaf6137e01bcd42766ae677
-Merge: 5527720 7f1c0cc
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Sun Jul 12 02:19:57 2015 +0800
-
- Merge pull request #5208 from tchaikov/wip-11975-hammer
-
- tests: TEST_crush_reject_empty must not run a mon
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7f1c0cc9cd3deab925440b56d82c3e61a8ba5ab1
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Jul 11 23:04:33 2015 +0800
-
- crush/CrushTester: return EINVAL if crushtool returns non-zero
-
- this backports a tiny part of ec02441, otherwise
- CrushTester will return 1, and "ceph" cli will take it
- as EPERM, which is miss leading, and fails
- osd-crush.sh:TEST_crush_reject_empty.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 2aaeea145b24b972a0b98549c3527ccf98f4c96f
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Jul 10 16:23:47 2015 +0200
-
- tests: TEST_crush_reject_empty must not run a mon
-
- * Back in Hammer, the osd-crush.sh individual tests did not run the
- monitor, it was taken care of by the run() function. An attempt to run
- another mon fails with:
-
- error: IO lock testdir/osd-crush/a/store.db/LOCK: Resource temporarily
- unavailable
-
- This problem was introduced by cc1cc033930e8690a57674e842a003f6bbc7a242
- from https://github.com/ceph/ceph/pull/4936
- * replace test/mon/mon-test-helpers.sh with test/ceph-helpers.sh as
- we need run_osd() in this newly added test
- * update the run-dir of commands: ceph-helpers.sh use the different
- convention for the run-dir of daemons.
-
- http://tracker.ceph.com/issues/11975 Refs: #11975
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
-
-commit 80afb81124a0d2ef25a23a12c86617ab1da3a4bd
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Apr 21 16:11:33 2015 +0200
-
- ceph-helpers: implement test_expect_failure
-
- To display the output in case the command did not fail with the expected
- output.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 5871781b10ff0b26c731b70d1898c474006cbee3)
-
-commit 6b5e9a1df7dfb3a971e40aec35119ec019515b69
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Jun 10 23:16:01 2015 +0200
-
- tests: display the output of failed make check runs
-
- After a make check fails, it shows a summary but not the output of the
- failed tests although they contain information to diagnose the problem.
-
- Set the VERBOSE=true automake variable which is documented to collect
- and display the failed script output at the end of a run (the content of
- the test-suite.log file (valid from automake-1.11 up).
-
- http://www.gnu.org/software/automake/manual/automake.html#index-VERBOSE
-
- Also remove the run-make-check.sh that did the same in a way that is not
- compatible with automake-1.11.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 3a55cb029bb7db9542d2b14f2deda90feb0ae0f6)
-
-commit 552772025cb8d5f51ffb3a069d1bd93bc73f1123
-Merge: f4d77c2 1440122
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 10:17:24 2015 +0200
-
- Merge pull request #4889 from theanalyst/wip-11484-hammer
-
- OPT_INT option interprets 3221225472 as -1073741824, and crashes in Throttle::Throttle()
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit f4d77c22aa51edb45211e080f3fdf28a7a0cfdd4
-Merge: 5088105 a62c3aa
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 10:16:25 2015 +0200
-
- Merge pull request #4776 from tchaikov/wip-11279-hammer
-
- ceph: cli interactive mode does not understand quotes
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 5088105300c013b1b804c938a30ac63ba710556d
-Merge: e3b1f7b 0b6d442
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 10:14:42 2015 +0200
-
- Merge pull request #4657 from ceph/wip-hammer-11535-admin-socket
-
- common/admin_socket: close socket descriptor in destructor
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e3b1f7be9e8474fbec98076790ff683bccd44ce9
-Merge: dd29a86 558d639
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Fri Jul 10 16:07:48 2015 +0800
-
- Merge pull request #4687 from SUSE/wip-7387-hammer
-
- utf8 and old gcc breakage on RHEL6.5
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit dd29a869db5503fc9e2c6d1d44ee4311d95af20c
-Merge: 7f1fb57 0e5e7e1
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Fri Jul 10 16:00:00 2015 +0800
-
- Merge pull request #5122 from theanalyst/wip-11982-hammer
-
- ceph fails to compile with boost 1.58
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 7f1fb574608800c3e6aa12df6c7888acbf397a52
-Merge: adc7016 5141301
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Fri Jul 10 15:59:35 2015 +0800
-
- Merge pull request #4936 from ceph/wip-11975-hammer
-
- mon crashes when "ceph osd tree 85 --format json"
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit adc70161d14fc2b51e6c6f38580f76ff0067717a
-Merge: 2d68db8 82988d6
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 09:48:44 2015 +0200
-
- Merge pull request #4892 from theanalyst/wip-11760-hammer
-
- ceph-disk: get_partition_type fails on /dev/cciss...
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2d68db8371263645642cf28473deea4456ca7021
-Merge: 1cffe8c ba1a016
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 09:43:57 2015 +0200
-
- Merge pull request #4877 from SUSE/wip-11902-hammer
-
- admin/build-doc: script fails silently under certain circumstances
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 51413011417b76f5ad2830d9f93fbfe78c77e467
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 18:11:59 2015 +0800
-
- mon: add "--check" to CrushTester::test_with_crushtool()
-
- so we don't need to call CrushTester::check_name_maps() in OSDMonitor.cc
- anymore.
-
- Fixes: #11680
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c6e634875316cf17368d497e6dc4f6f4b5dd65d2)
-
-commit 5ec27cf589b4535f07e28a86bd304f7a46427ac4
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 17:51:50 2015 +0800
-
- crushtool: rename "--check-names" to "--check"
-
- * because "--check" also checks for the max_id
-
- Note: edited since we do not have the fix introduced in 46103b2 in
- hammer.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 9381d53acdce85fcbff828926b911e050ba36e51)
-
-commit 2a8fe8862a15342cc5716c146487d0b42af0fbf6
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 16:58:23 2015 +0800
-
- mon: check the new crush map against osdmap.max_osd
-
- Fixes: #11680
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 22e6bd6e01d5df3f3e897562597e22ca1737f8c8)
-
-commit c0b0f52ddbd4e22998a36addfb32f27614183e19
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 15:35:10 2015 +0800
-
- crushtool: enable check against max_id
-
- add an argument "max_id" for "--check-names" to check if any item
- has an id greater or equal to given "max_id" in crush map.
-
- Note: edited since we do not have the fix introduced in 46103b2 in
- hammer.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d0658dd3cdf072b2a7c2a1986f8785a697c591ee)
-
-commit f041bbebf98a2aff2ad542e8d0c12c46af427573
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 15:34:33 2015 +0800
-
- crush/CrushTester: check if any item id is too large
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e640d89240017956b8c7411babb86be0f1e2b172)
-
-commit cc1cc033930e8690a57674e842a003f6bbc7a242
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 25 20:14:32 2015 +0800
-
- mon: validate new crush for unknown names
-
- * the "osd tree dump" command enumerates all buckets/osds found in either the
- crush map or the osd map. but the newly set crushmap is not validated for
- the dangling references, so we need to check to see if any item in new crush
- map is referencing unknown type/name when a new crush map is sent to
- monitor, reject it if any.
-
- Fixes: #11680
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit a955f36a509e5412b1f72632a1a956d99e768e35)
-
-commit ff29a7f9dd21505c681881e609183aed9ac3250e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 12:08:36 2015 +0800
-
- crushtool: add the "--check-names" option
-
- * so one is able to verify that the "ceph osd tree" won't chock on the
- new crush map because of dangling name/type references
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d6b46d4c7b722945ce24ac2930381a109b1e3dda)
-
-commit 960ea49699f421ceb89c9e0c9430378a35f09a9a
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 26 12:08:09 2015 +0800
-
- crush/CrushTester: add check_name_maps() method
-
- * check for dangling bucket name or type names referenced by the
- buckets/items in the crush map.
- * also check for the references from Item(0, 0, 0) which does not
- necessarily exist in the crush map under testing. the rationale
- behind this is: the "ceph osd tree" will also print stray OSDs
- whose id is greater or equal to 0. so it would be useful to
- check if the crush map offers the type name indexed by "0"
- (the name of OSDs is always "OSD.{id}", so we don't need to
- look up the name of an OSD item in the crushmap).
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b75384d73958faf81d45847a7dfa56f4fa347e6f)
-
-commit 1cffe8c46a39142ee0da4e2279eda7276df262e1
-Merge: 6ffb1c4 ef6641c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jul 10 09:39:15 2015 +0200
-
- Merge pull request #4667 from SUSE/wip-11611-hammer
-
- ceph.spec: update OpenSUSE BuildRequires
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5e72479b0882ac13597d7a613698e583dcb2b932
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jul 7 11:43:01 2015 -0700
-
- OSDMonitor: allow addition of cache pool with non-empty snaps with config
-
- We need to be able to allow the version of ceph_test_* from earlier
- versions of ceph to continue to work. This patch also adjusts the
- work unit to use a single rados snap to test the condition without
- --force-nonempty to ensure that we don't need to be careful about
- the config value when running that script.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 6ffb1c4ae43bcde9f5fde40dd97959399135ed86
-Merge: c7ebf96 524f4a5
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed Jul 8 16:52:12 2015 +0100
-
- Merge pull request #5123 from theanalyst/wip-11979-hammer
-
- MDSMonitor: handle MDSBeacon messages properly
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit ecac1a458bc7331ed8d667f20ba31995d74892d3
-Author: Thorsten Behrens <tbehrens@suse.com>
-Date: Fri Feb 6 01:26:40 2015 +0100
-
- Always provide summary for non-healthy cluster
-
- This fixes a problem, wherein calamari does not provide
- popup drill-downs for warnings or errors, should the summary
- be missing.
-
- Calamari gets health info from /api/v1/cluster/$FSID/health.
- If the data here has a summary field, this summary is provided
- in a popup window:
-
- /api/v1/cluster/$FSID/health is populated (ultimately) with
- status obtained via librados python bindings from the ceph
- cluster. In the case where there's clock skew, the summary
- field supplied by the ceph cluster is empty.
-
- No summary field, no popup window with more health details.
-
- Signed-off-by: Thorsten Behrens <tbehrens@suse.com>
- (cherry picked from commit eaf6e0cf48488fe604d0ef0db164d44948d4e8d4)
-
-commit c7ebf96a9a4a6143b112c8606d5ee346fb800cec
-Merge: b163728 1a321e4
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 8 15:36:38 2015 +0200
-
- Merge pull request #4862 from SUSE/wip-11874-hammer
-
- Bucket header is enclosed by quotes
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit b1637289ec4ff99d923457577893b4c4a8d2e9fe
-Merge: e33af22 54f4e7d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 8 15:35:53 2015 +0200
-
- Merge pull request #4885 from theanalyst/wip-11755-hammer
-
- Object copy bug
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit e33af22dec32467f229ca2dc1dc9668702a44ce8
-Merge: 5696b0f 9dfef60
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 8 15:34:45 2015 +0200
-
- Merge pull request #4884 from theanalyst/wip-11722-hammer
-
- Keystone PKI token expiration is not enforced
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 5696b0ff2a981ae8afe72df796ba7d7da47bb7d1
-Merge: 72ecd52 ed5442b
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 8 15:30:48 2015 +0200
-
- Merge pull request #4875 from ceph/wip-11770-hammer
-
- librbd: aio calls may block
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1a32379dd6cb56ed69b8f448d3612506c8131fbe
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 11 19:30:30 2015 +0800
-
- mon/PGMap: add more constness
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e1f1c56ce88ef3ad05e881d650fac637931ce3fe)
-
-commit 84ebc3d320bdf871ccf85e555951cea421b56021
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 11 19:29:13 2015 +0800
-
- mon/PGMap: sort pg states by the states in "pg ls" spec
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 990dfb6cd45438bc8293ac37882daa413860a2f8)
-
-commit e310461aecc667cf26806bc5a3bbabb05696bdfc
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 11 17:02:41 2015 +0800
-
- mon: s/recovery/recoverying/ in "pg ls*" commands' spec
-
- * also translate "repair" if specified as "states"
- * update test_mon_pg in cephtool-test-mon.sh
-
- Fixes: #11569
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 89f89ca3477eddcae11a05fbd58a8f3658eb1fc1)
-
-commit 524f4a52d115ecda8cd7793d0f8bea148eff92af
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 15 22:50:36 2015 +0800
-
- mon: always reply mdsbeacon
-
- the MDS (Beacon) is always expecting the reply for the mdsbeacon messages from
- the lead mon, and it uses the delay as a metric for the laggy-ness of the
- Beacon. when it comes to the MDSMonitor on a peon, it will remove the route
- session at seeing a reply (route message) from leader, so a reply to
- mdsbeacon will stop the peon from resending the mdsbeacon request to the
- leader.
-
- if the MDSMonitor re-forwards the unreplied requests after they are
- outdated, there are chances that the requests reflecting old and even wrong
- state of the MDSs mislead the lead monitor. for example, the MDSs which sent
- the outdated messages could be dead.
-
- Fixes: #11590
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b3555e9c328633c9e1fbc27d652c004b30535e5b)
-
-commit 413e407dea446bebb9c36abb3025ada450dd4fe9
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 23:20:21 2015 -0700
-
- mon/MDSMonitor: rename labels to a better name
-
- * s/ignore/reply/
- * s/out/ignore/
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f00ecb8b3df73ce6337985bc6d43bce5143ee537)
-
-commit a03968ad584a3ff8e351cc5dce053e535fcdc454
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 12:55:06 2015 +0800
-
- mon: send no_reply() to peon to drop ignored mdsbeacon
-
- so the peon can remove the ignored mdsbeacon request from the
- routed_requets at seeing this reply, and hence no longer resend the
- request.
-
- Fixes: #11590
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 72a37b3a8e145d8522ea67fc14ce2c5510b6852b)
-
-commit 39f34596b0ec6f769f507e2b372204f8551f7ee0
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 2 12:22:26 2015 +0800
-
- mon: remove unnecessary error handling
-
- msg.get_session() should always return a non-zero pointer in
- Monitor.dispatch()
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 16e8e2cc82a90c49cd8aa3d0e3acc4694ba659a0)
-
-commit 0e5e7e1d259579571c1fc05660f6af8e295e733b
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 8 15:21:20 2015 +0800
-
- mon: remove unused variable
-
- * as a side effect, this change silences
- http://tracker.ceph.com/issues/11576
-
- Fixes: #11576
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e7b196a4a091c0ea258866559ba06e7ed0cc4247)
-
-commit 70347209260688f1a067354c744569499adb6920
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Apr 1 16:37:51 2015 -0700
-
- ReplicatedPG::finish_promote: handle results->snaps is empty case
-
- If results->snaps winds up empty after filtering removed snaps,
- we need to treat the object as if we had gotten an ENOENT.
-
- PartialFix: #11296
- Backport: firefly, hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6150757dbe0fa11cceb14460865b859a7c8164c7)
-
-commit 3e44dc16ed3fbda053996e44826aa3d90042a234
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Apr 1 16:25:22 2015 -0700
-
- ReplicatedPG::finish_promote: fix snap promote head snaps
-
- If the snaps vector is: 10=[9,5,2]:[4]+head, the backing pool's snaps
- vector is 3=[2]:[]+head, and we request clone 4 from the backing pool,
- the backing pool will send us head with an empty results->snaps vector.
- Actually, clone 4 should be trimmed, but the cache pool does not know
- that. Thus, we should construct an empty snaps vector for that clone.
-
- PartialFix: #11296
- Backport: firefly, hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit a45a698372def1623323470c6a1c4eb70e0bb79f)
-
-commit 5ef08466abf1b3934fcad0a0ca46f3a4380d6dbd
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Jun 3 10:04:26 2015 +0100
-
- tools: chunk reads in Dumper
-
- Previously tried to read entire journal
- into memory in one go, which was problematic
- for large journals.
-
- Fixes: #11746
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit e3ddcb894ad09326698999d42de0ce3feb69f28e)
-
-commit 408880bed296e5cbf05864fa6744a5b00a245272
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Jun 16 08:13:41 2015 -0700
-
- qa: update to newer Linux tarball
-
- This should make newer gcc releases happier in their default configuration.
- kernel.org is now distributing tarballs as .xz files so we change to that
- as well when decompressing (it is supported by Ubuntu Precise so we should
- be all good).
-
- Fixes: #11758
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 1ea3f47ab806d48ca7b045c2731d344eae3900e1)
-
-commit 56c2688b87d7d78831f8e147fc67cc0651ab644c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Apr 24 14:45:40 2015 -0700
-
- rgw: simplify content length handling
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e97fd5052cab83c5f699531a8c960b93437a8f9f)
-
-commit d9bbef3e470c6406bb65dc40e7e9c08c5d599f73
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Fri Apr 24 10:49:16 2015 -0700
-
- rgw: make compatability deconfliction optional.
-
- Per request from Yehuda, the deconfliction for having both
- HTTP_CONTENT_LENGTH and CONTENT_LENGTH set is now optional, and
- controlled by new configuration boolean, which defaults to false.
- rgw content length compat
-
- X-URL: https://github.com/ceph/ceph/pull/4436#issuecomment-95994887
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- (cherry picked from commit 79d17af1a1ec0659884f768945a7bac6282b5e0b)
-
-commit 0260abd5d265bd63ea9c89f4082c31ba1c5ae8fa
-Author: Robin H. Johnson <robbat2@gentoo.org>
-Date: Wed Apr 22 12:53:06 2015 -0700
-
- rgw: improve content-length env var handling
-
- The FastCGI specification, section 6.3 on Authorizers, describes a case
- where HTTP_CONTENT_LENGTH will be set in the environment and
- CONTENT_LENGTH will NOT be set.
-
- Further documention in the code.
-
- Fixes: #11419
- Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
- (cherry picked from commit 3e38eab44bfb082fdd2b6f29b8b0357f8f5c11bb)
-
-commit 8abc46a157e4c1431a92a1e52ab694dccff5d514
-Author: wuxingyi <wuxingyi@letv.com>
-Date: Wed Jun 10 06:57:57 2015 +0000
-
- rgw: fix data corruption when race condition
-
- We should delete the object in the multipart namespace lastly to prevent a previous upload
- wrongly deleting objects belong to the following upload.
-
- Fixes: #11749
- Signed-off-by: wuxingyi <wuxingyi@letv.com>
- (cherry picked from commit ac1e729a75b5d995028bbc223bcf5ecce0d112cc)
-
-commit 72ecd522941156c8a7e5303531944b0735dcbeb8
-Merge: 59f37a9 d723e11
-Author: Abhishek L <abhishekl.2006@gmail.com>
-Date: Wed Jul 1 18:09:46 2015 +0530
-
- Merge pull request #4886 from theanalyst/wip-11737-hammer
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 59f37a9bafc095181b3f41ec5d93ac58e2cda604
-Merge: 53a2143 89d0266
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Sat Jun 27 17:11:11 2015 +0800
-
- Merge pull request #5095 from ceph/wip-fix-doc-hammer
-
- doc: fix doc build
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 89d0266a60729d5d9747867e8c30abf71a891231
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Jun 27 14:44:55 2015 +0800
-
- doc: add the corresponding @endcond command for @cond
-
- * they are used to applease asphyxiate, as it
- is not able to handle "enum" sections
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 2aa77b33a97e5a3ca134c9c555aa6e7a69ef50f7
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Jun 27 14:43:01 2015 +0800
-
- doc: remove orphan: directive in ceph-create-keys.rst
-
- * it is used to silence the sphinx warning, but conf.py
- does not like it.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit ad66e40e8bd598da7c9738cb44abb543008c90a3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Jun 27 14:41:59 2015 +0800
-
- doc: let doxygen ignore src/tracing
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 53a2143eb7e549de1185b01ed0bde841ffa5235a
-Merge: 6f7cd04 bfb1442
-Author: Samuel Just <sam.just@inktank.com>
-Date: Fri Jun 26 14:19:40 2015 -0700
-
- Merge pull request #4902 from theanalyst/wip-11908-hammer
-
- Fixes for rados ops with snaps
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 6f7cd0460d5729c15966119e0177ddc56a361d8e
-Merge: 78d894a 356bd2c
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jun 25 20:03:42 2015 -0400
-
- Merge pull request #5069 from dachary/wip-11806-hammer
-
- ceph / ceph-dbg steal ceph-objecstore-tool from ceph-test / ceph-test-dbg
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 356bd2c68ca730e766d06c46a0364784f5d72275
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Jun 24 14:58:47 2015 -0400
-
- debian: ceph-dbg steals ceph-objectstore-tool from ceph-test-dbg (take 2)
-
- 968573b8930a7c8485bf53e3a989ce2f7d0a2fff incorrectly backported
- 6f11fbf41fab10924b1e0e41fcf27864779d4073. It should instead reflect that
- ceph-dbg in 0.94.2 and above will break ceph-test-dbg in all versions
- prior to 0.94.2.
-
- In other words, 0.94-XXXX being lower than 0.94.1, upgrading from
- 0.94.1 to 0.94.2 will not notice that ceph-dbg breaks ceph-test-dbg.
-
- $ dpkg --compare-versions 0.94-XXXX lt 0.94.1 && echo yes || echo no
- yes
- $ dpkg --compare-versions 0.94.2 lt 0.94.1-xxx && echo yes || echo no
- no
-
- http://tracker.ceph.com/issues/11806 Fixes: #11806
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit c5c627fdd3de669ee94ab7ecd6939c29a4a68011
-Author: wuxingyi <wuxingyi2015@outlook.com>
-Date: Wed Mar 11 17:34:40 2015 +0800
-
- rgw/logrotate.conf: Rename service name
-
- The service name for ceph rados gateway was changed to "ceph-radosgw",
- the previous version of service name "radosgw" would cause a failed reload,
- and finally make it impossible to write any log data to the log file.
-
- Signed-off-by: wuxingyi <wuxingyi2015@outlook.com>
- (cherry picked from commit 9df3f798179481fe8ae6ae873dcb793de7d8f367)
-
-commit 582cf731e05baabd2cd79567af89d7f005c24925 (refs/remotes/gh/wip-12109-hammer)
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 5 13:08:21 2015 -0400
-
- tests: add librbd watch/notify version compatibility test
-
- Fixes: #11405
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 41e4cbe032e32762e3a9e8bc3eff8ece19f91a54)
-
-commit 43b9aef11c1281d8b83b659a523dba365d79add4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 5 11:22:55 2015 -0400
-
- qa/workunits/rbd: add notify_master/slave bootstrap scripts
-
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 124b1d3d2d0dbd685bbd717856d29b316e62e660)
-
-commit f995fb50d3d7734161fa498db9e204eaded651b6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 5 10:34:48 2015 -0400
-
- qa/workunits/rbd: add new test_librbd_api workunit
-
- This only tests the public librbd API for use during upgrade tests.
-
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9039955f42d01044cfcf20c56ca2181e51c317ee)
-
-commit a09da2a2c6c12c6bf2f8e17f2096b3ab24587007
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 5 10:27:38 2015 -0400
-
- tests: create librbd API-only integration test suite
-
- The QA client-upgrade test suite requires a librbd test
- that is dynamically linked to librbd. Since the current
- ceph_test_librbd includes tests against the non-public API,
- it is statically linked against librbd and thus cannot be
- used to test a client upgrade scenario.
-
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6fe94c8cbb924c31c1007e2d0c76f28ce9dbca57)
-
-commit e149916cd40a58ce5db5f63a2b4efd82a8c4e1ba
-Author: Owen Synge <osynge@suse.com>
-Date: Tue Apr 21 11:31:24 2015 +0200
-
- Increase max files open limit for OSD daemon.
-
- Under heavy load the number of file descriptors opened
- by the OSD can go beyond the 64K file limit. This patch
- increases the default to 128K.
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit ebda4ba1c67172852587e47a8e6fb538809a1b1c)
-
-commit 22f58ce2665f1ea6b38f6016dc585202a4595322
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 1 15:10:14 2015 -0700
-
- Makefile: install ceph-post-file keys with mode 600
-
- Otherwise ssh (may) prompt for a password.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 106a1c3081d02446aa3d8e13865da0c3393bae90)
-
-commit 3e65a10bd2351744da199a4b076659191b4378a2
-Author: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
-Date: Mon Jun 1 15:05:32 2015 -0700
-
- ceph-post-file: improve check for a source install
-
- Signed-off-by: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
- (cherry picked from commit ee170eadcdcb4b54d36a7d474558484de9d917eb)
-
-commit c1f6743940250b04ae6dbea30d8805571add39b6
-Author: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
-Date: Mon Jun 1 15:00:39 2015 -0700
-
- ceph-post-file: behave when sftp doesn't take -i
-
- Fixes: #11836
- Signed-off-by: Joseph McDonald <joseph.mcdonald@alcatel-lucent.com>
- (cherry picked from commit b84031ed5eaace1222e14d3c4076a3ab1155da96)
-
-commit 38d36b1174160ad104704aaa7ff5290d1ec3e782
-Author: Tim Serong <tserong@suse.com>
-Date: Thu Apr 30 10:55:38 2015 +1000
-
- packaging: move SuSEfirewall2 templates out of src
-
- Better to have static config like this that needs to be installed in
- /etc in a separate subdirectory of the project.
-
- Signed-off-by: Tim Serong <tserong@suse.com>
- (cherry picked from commit 70292658d5febb6c5f94af4df9c3e93551772d12)
-
-commit 24bc9f2c58ca78c8023935b8b69f8b01adbc11af
-Author: Tim Serong <tserong@suse.com>
-Date: Wed Apr 29 13:12:38 2015 +1000
-
- packaging: add SuSEfirewall2 service files
-
- This adds SuSEfirewall2 service files for Ceph MON, OSD and MDS, for use
- on SLES and openSUSE. The MON template opens port 6789 and the OSD/MDS
- template opens the range 6800-7300 as per
- http://docs.ceph.com/docs/master/rados/configuration/network-config-ref/
-
- Signed-off-by: Tim Serong <tserong@suse.com>
- (cherry picked from commit 77685f5b787c56bcb1c4d9f1e058e25312fa62fe)
-
-commit 8acfb994f22efa07beeecccda300cbd50d683566
-Author: Owen Synge <osynge@suse.com>
-Date: Thu May 7 12:02:41 2015 +0200
-
- Bug fix to ceph systemV compatability script.
-
- Was failing with more than one OSD / MON deamon on a single node.
- Fixes suse bugzilla #927862
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit dfda3ff8741fcdbac3150456ca7614cf75ef1776)
-
-commit bd3fd929e6f95e6d9840317aa3ac02f52711c94b
-Author: Owen Synge <osynge@suse.com>
-Date: Thu Jun 18 14:16:03 2015 +0200
-
- Fixes to rcceph script
-
- - only start OSDs if mon daemons are also present
- - adds support for mask and unmask
- - removes support for cluster with non default cluster name,
- as this was very limited and inconsistent
- - Reapplied from a patch as could not cherry-pick
- 66cb46c411d874be009c225450eea5021cf1219b from Mon Jan 12
- as this produced issues with src/gmock
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit bfa0c4a626fdbb2bf978ccfab783ac428156144b)
-
-commit 37d77d3680d2c8adda35eddf9625a331a45ece11
-Author: Owen Synge <osynge@suse.com>
-Date: Tue Apr 21 11:31:24 2015 +0200
-
- Increase max files open limit for OSD daemon.
-
- Under heavy load the number of file descriptors opened
- by the OSD can go beyond the 64K file limit. This patch
- increases the default to 128K.
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit ebda4ba1c67172852587e47a8e6fb538809a1b1c)
-
-commit 78d894a634d727a9367f809a1f57234e5e6935be
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 17 09:35:28 2015 -0700
-
- qa/workunits/rados/test-upgarde-v9.0.1: fix exclude syntax
-
- It's -, then a list of all exclusions separated by :. There are just 2.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 3e8d60a80ce31860eac76a1f6489a35e1795a0c0
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jun 16 21:05:29 2015 -0700
-
- qa/workunits/rados/test-upgrade-v9.0.1: skip one more evict test
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 348a3d3c9880e7d022e71a2faafe51c8f771406e
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Jun 15 15:12:43 2015 -0700
-
- qa: add compatibility filtered rados api tests for upgrades
-
- Post-9.0.1, the evict op returns success when an object doesn't exist
- in the cache tier. Skip the tests that are incompatible across
- versions.
-
- Fixes: #11548
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-commit d2b80966b8f74de818a671c90b4c821a4b0782db
-Merge: 70bba62 f68bf94
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 15 12:38:57 2015 -0700
-
- Merge pull request #4961 from ceph/wip-11493-hammer
-
- backport 11493 fixes, and test, prevetning ec cache pools
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f68bf94e370fb11a3047ec2762a972a0b7a7c0bb
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 15 13:05:40 2015 -0700
-
- OSDMonitor: disallow ec pools as tiers
-
- Fixes: 11650
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 11b7801bb57cb25cd2d26d58722d49691747725b)
-
-commit 13c8d58da1303cc68d99da19f79d625f91f99d43
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 29 12:34:25 2015 -0700
-
- mon: prevent pool with snapshot state from being used as a tier
-
- If we add a pool with snap state as a tier the snap state gets clobbered
- by OSDMap::Incremental::propogate_snaps_to_tiers(), and may prevent OSDs
- from starting. Disallow this.
-
- Include a test.
-
- Fixes: #11493
- Backport: hammer, giant, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bbec53edf9e585af4e20bbc9ba9057d6fdfda342)
-
-commit 58e62662f6ef04ac76470090d1d958467e34194a
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 8 10:26:48 2015 -0700
-
- test/librados/tier.cc: destroy and recreate cache pool on every test
-
- Namespaces are not sufficient with the checks for 11493 in the mon.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bef09e0cdb274cb1c87335a2af9ee532d14a4596)
-
-commit 70bba6226a64090dcf41cd90b23fdf5aed8cd0ca (refs/remotes/jashan/hammer)
-Merge: 3b6977b 5a60a03
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 15 17:26:07 2015 +0200
-
- Merge pull request #4846 from SUSE/wip-11862-hammer
-
- missing man pages for ceph-create-keys, ceph-disk-*
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 3b6977b706dbc99cac25bec1b71a628c398c6ff1
-Merge: 5fb8561 3db1026
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jun 11 13:54:35 2015 -0700
-
- Merge pull request #4934 from dachary/wip-releases-hammer
-
- doc/release-notes: v0.94.2
-
-commit 3db1026f3706e6f5a5c25013cb6646a0298057d8
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 10 12:48:41 2015 -0700
-
- doc/release-notes: v0.94.2
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 306345b29c259ab04a58ed5d40f801645485b29d)
-
- Conflicts:
- doc/release-notes.rst
-
-commit ed5442b1057dcc4fb1f9404c805dabe2bbde2252 (refs/remotes/jashan/wip-11770-hammer, refs/remotes/gh/wip-11770-hammer)
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 2 10:33:35 2015 -0400
-
- tests: verify librbd blocking aio code path
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4cf41486e9c9e1efcb863960a8f3e0326ffca7e5)
-
- Conflicts:
- src/test/librbd/test_librbd.cc: trival resolution
-
-commit 20e104869f3d17ce672438144700a4d984d487b4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 1 22:56:11 2015 -0400
-
- librbd: new rbd_non_blocking_aio config option
-
- Setting this option to false reverts librbd to legacy behavior
- where AIO operations could potentially block.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 769cad12716b85d87eacc1069dd9f5c21cad3915)
-
-commit b4571b3e238efc39767f753e0ec1622c8bd6d6e6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 9 20:34:28 2015 -0400
-
- PendingReleaseNotes: document changes to librbd's aio_read methods
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9ea1edd0ca9e385f823ad04b05bc887d77aa5136
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 9 13:33:09 2015 -0400
-
- librbd: AioRequest::send no longer returns a result
-
- The librados calls used by AioRequest::send should always return
- zero unless there is a bug.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c77bce3311ab62892eb8c1d883263ba7ed663b20)
-
- Conflicts:
- src/librbd/AioRequest.cc: trivial resolution
- src/librbd/AsyncFlattenRequest.cc: trivial resolution
-
-commit 272df2aed79a95dd9c45db4e0953e9b321f7b0f5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:55:36 2015 -0400
-
- tests: update librbd AIO tests to remove result code
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 948b15eb52fd5d9ce842fa12ee0cecda17353b01)
-
- Conflicts:
- src/test/librbd/test_internal.cc: trivial resolution
- src/test/librbd/test_librbd.cc: trivial resolution
-
-commit dd2e4c13ff6d88edb25f90af62af16ba825c15c9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:37:50 2015 -0400
-
- librbd: internal AIO methods no longer return result
-
- All failures should be returned via the AioCompletion.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9ab42d613128ab08c688ddbea93df4c95068b9cd)
-
- Conflicts:
- src/librbd/AioRequest.cc: trivial resolution
- src/librbd/internal.cc: trivial resolution
-
-commit dbd4e293d7124c89a22148e8fa5f425a995c900c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 21:48:21 2015 -0400
-
- Throttle: added pending_error method to SimpleThrottle
-
- Allow the client of SimpleThrottle to detect an async error
- so that it can exit early.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b88b88c5df91325fb713c2031a56bffe421268e0)
-
-commit 7df6091a30b1b94d764240262195e971175554b3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 20:18:50 2015 -0400
-
- librbd: add new fail method to AioCompletion
-
- Helper method to handle passing fatal errors generated within
- librbd (not from the OSDs) back to the client.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6d1d0c867855a96bee4c13a0c0a39a0e002ccd12)
-
-commit cf6e1f50ea7b5c2fd6298be77c06ed4765d66611
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 19:06:52 2015 -0400
-
- librbd: avoid blocking AIO API methods
-
- Enqueue all AIO API methods within the new librbd thread pool to
- reduce the possibility of any blocking operations. To maintain
- backwards compatibility with the legacy return codes of the API's
- AIO methods, it's still possible to block attempting to acquire
- the snap_lock.
-
- Fixes: #11056
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3a7b5e30efdb21aa1a0aeb68a5d02a1ac2a5faf3)
-
-commit e61974aed09a3f81e1f65a4bbaed43e3f22b27b4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 17:24:08 2015 -0400
-
- librbd: add task pool / work queue for requests
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit afb896d91f886b647baf38f7ec94cc3739f6d2a9)
-
- Conflicts:
- src/librbd/ImageCtx.cc: trivial resolution
- src/librbd/ImageCtx.h: trivial resolution
-
-commit bfb144268b803340efad29cd6c627b170ea32402
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 20 16:10:02 2015 -0700
-
- ReplicatedPG::release_op_ctx_locks: requeue in scrub queue if blocked
-
- Otherwise we can reorder an op around another op which got blocked by a
- scrub which started after the first blocked on an obc.
-
- Fixes: #11691
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit be873eb8da7b29ecefaa5a99b88de7ddcca711ee)
-
-commit c7b6a6370a69149ea94f9e35d536aa90f06e7659
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue May 19 10:56:11 2015 -0700
-
- ReplicatedPG::finish_ctx: take excl lock if operation is rw
-
- Fixes: #11677
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5c2b795724423ed484ab451de855ddcfc085342b)
-
-commit 1550a569dab120ce28396fe365565e8e4acd9801
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 21 12:13:43 2015 -0700
-
- RadosModel: randomly prefix delete with assert_exists
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 4fe7d2abdff2fce359e5e992206644cc03825ee0)
-
-commit 4cdc5f7d6b3ec488c79c09cb44a43d4d9398b74c
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 21 11:36:42 2015 -0700
-
- RadosModel: assert exists on subsequent writes
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 121aa3bc612b86281535ac3bcfe98bc99bc99ace)
-
-commit 25c730bda74b94f2c894c508ab09988dbd528c4e
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue May 19 10:23:01 2015 -0700
-
- test/librados/snapshots.cc: add test for 11677
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c2d17b927f8a222164b3bf2922a4ff337696f566)
-
-commit 3d74164d3d6caaa5099abd9a1d1920482d3e05c2
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 27 11:14:15 2015 -0700
-
- ReplicatedPG::trim_object: write filtered snapset while we're at it
-
- If we trimmed an object, we might as well remove the obsolete snaps
- as well.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 90eb7768f99ea249952df195a844a3a7c9a59b78)
-
-commit a1161540bc0094a951021d4ca651b95ec045213e
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 27 11:00:54 2015 -0700
-
- ReplicatedPG: start_flush: use filtered snapset
-
- Otherwise, we might send our deletes based on deleted snaps. This is
- problematic since we may have trimmed the clones to which those snaps
- belong, causing us to send them at an earlier snap than we used before.
-
- The specific situation was
-
- 78:[78, 70, 63, 5a, 58, 57]:[64(63), 58(58, 57)]
-
- with 58 already clean. To flush 64, we send:
-
- delete@58
- delete@59
- copyfrom@62
-
- Then, snap 63 is trimmed leaving us with a snapset of:
-
- 78:[78, 70, 63, 5a, 58, 57]:[58(58, 57)]
-
- since trim_object doesn't filter the head object snapset snaps. This
- isn't really a bug since in general all snapset users must be aware
- that there may be trimmed snaps in snapset::snaps. However, here
- it becomes a problem when we go to flush head:
-
- delete@58 -- ignored due to snapc
- delete@59 -- ignored due to snapc
- copyfrom@78 -- not ignored
-
- The base pool head is at snap seq 62, so it clones that value into
- clone 78(78, 70) instead of forgetting it. What should have happened
- is that we should have based our flushes on filtered snapset:
-
- 78:[78, 70, 58, 57]:[58(58, 57)]
-
- Causing us to instead send:
-
- delete@58 -- ignored due to snapc
- delete@69 -- not ignored, causes no clone to be made
- copyfrom@78 -- not ignored, updates head such that a subsequent clone
- will leave 70 out of the clone snaps vector.
-
- Fixes: 11787
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6051e255ac062985ada1989edb7f23cd750915e2)
-
-commit 82988d611bad6226138b94590275faadbca3554a
-Author: islepnev <islepnev@gmail.com>
-Date: Fri Apr 17 22:33:01 2015 +0300
-
- ceph-disk: support NVMe device partitions
-
- Linux nvme kernel module v0.9 enumerate devices as following:
-
- /dev/nvme0 - characted revice
- /dev/nvme0n1 - whole block device
- /dev/nvme0n1p1 - first partition
- /dev/nvme0n1p2 - second partition
-
- http://tracker.ceph.com/issues/11612 Fixes: #11612
-
- Signed-off-by: Ilja Slepnev <islepnev@gmail.com>
- (cherry picked from commit 9b62cf254d02d30609793be8b1cb8a94f38891f1)
-
-commit bd91fb027ab91d487b1d61d25516c13590735d89
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 12 16:37:56 2015 -0700
-
- mon: prevent bucket deletion when referenced by a rule
-
- If a rule references a bucket with 'take', prevent deletion.
-
- Fixes: #11602
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3d591afef90b0601572c748f13faac029d05f5a0)
-
-commit 56565ee1cdb06a7705d1c3f26f5592b10399324a
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 12 14:03:49 2015 -0700
-
- crush: fix crash from invalid 'take' argument
-
- Verify that the 'take' argument is a valid device or bucket. Otherwise,
- ignore it (do not add the value to the working vector).
-
- Backport: hammer, firefly
- Fixes: #11602
- Reported-by: shiva rkreddy <shiva.rkreddy@gmail.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9324d0a1af61e1c234cc48e2175b4e6320fff8f4)
-
-commit 1440122d61d5b0a3f8360f4e2101db1018109799
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Apr 29 03:28:18 2015 -0700
-
- common/config: detect overflow of float values
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 1ff409ef8d022a1a84d034bd3db976c4d769e993)
-
-commit 9b947fa320b77e0055a581005353c2561a12a198
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Apr 29 15:41:08 2015 +0800
-
- common/config: detect overflow of int values
-
- * #include "strtol.h" in strtol.cc, to ensure the function defintions
- are consistent.
- * add a test accordingly
- * fix the testcase of converting 1024E.
- * do not accept integers overflow after adding SI suffix
- * do not accept integers underflow (i.e. negative values)
-
- Fixes: #11484
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d62f80dc7b25d312ff05b65b7be854aae15b66a8)
-
-commit d723e1156e70a492d633e43b86e7c373e5750065
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue May 12 14:52:30 2015 +0800
-
- mds: clear CDir::STATE_REJOINUNDEF after fetching dirfrag
-
- Fixes: #11541
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ab1e5394dc778f6799472bd79a4d9ba7197107c2)
-
-commit 54f4e7d4a534448293c74612f8140cf34b9cf9f8
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Fri May 15 14:22:29 2015 +0200
-
- rgw: Use attrs from source bucket on copy
-
- On copy objects, when bucket source is the same as the destination, use attrs
- from source bucket.
-
- Fixes: #11639
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 1dac80df1d4a2364154ed8b404d13609936c257b)
-
-commit 9dfef6004d208af3730634796aad199391707826
-Author: Anton Aksola <anton.aksola@nebula.fi>
-Date: Fri Apr 10 13:25:21 2015 +0300
-
- rgw: always check if token is expired
-
- Fixes: #11367
-
- Currently token expiration is only checked by the token cache. With PKI
- tokens no expiration check is done after decoding the token. This causes
- PKI tokens to be valid indefinitely. UUID tokens are validated by
- keystone after cache miss so they are not affected by this bug.
-
- This commit adds explicit token expiration check to
- RGWSwift::validate_keystone_token()
-
- Signed-off-by: Anton Aksola <anton.aksola@nebula.fi>
- Reported-by: Riku Lehto <riku.lehto@nexetic.com>
- (cherry picked from commit 2df069390ea3bbcfbab5022750e89f51d197cc11)
-
-commit fdb43ebe2b1211acdb454836a64dbd589feeef45
-Author: Nathan Cutler <ncutler@suse.cz>
-Date: Fri May 15 21:43:34 2015 +0200
-
- ceph.spec.in: tweak ceph-common for SUSE/openSUSE
-
- ceph-common needs python-argparse in SUSE/openSUSE and
- needs redhat-lsb-core only in RHEL/CentOS/Fedora.
-
- http://tracker.ceph.com/issues/11638 Fixes: #11638
-
- Signed-off-by: Nathan Cutler <ncutler@suse.cz>
- (cherry picked from commit 363d957d8fdd15a1674befbd8e485fd89b76d716)
-
-commit ba1a0167cc809081eda7e6cc9ecfb971e439d696
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Jun 3 10:09:09 2015 +0100
-
- admin/build-doc: fix dependency checks
-
- http://tracker.ceph.com/issues/11857 Fixes: #11857
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 539c1ba7211f579bad4f59ae824f1e68e620ecbd)
-
- Conflicts:
- admin/build-doc
- Insert lines at appropriate spot
-
-commit 5a60a034bf3015eaf468e5e3f9d8feb08b8fdd95
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jun 3 10:41:27 2015 +0200
-
- man/ceph-create-keys.8: add missing file
-
- This is the generated manpage, taken from a local build of master
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit bcda61fcbe07ee36cd5172d80018f287591660ec)
-
-commit 19305b897ac147602049752a2dfbe1fd39ba562c
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Apr 21 14:59:32 2015 +0800
-
- doc: add ceph-create-keys.8
-
- Fixes: #10725
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 27cee2f1f46a9f47cda9dfeb56ff1259e982960c)
-
- Conflicts:
- doc/man/8/ceph-create-keys.rst
- Includes fixes from https://github.com/ceph/ceph/pull/4855
-
-commit ffd0933dcc790d7cedc1048b664bf4e8c40464a3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 11 17:05:49 2015 -0400
-
- WorkQueue: added virtual destructor
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b3f5a75332c058816dc39b71e9d2b36e752159f4)
-
-commit a28adfbdd8abc86e7766c303bc610c0c252910f7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 16:46:34 2015 -0400
-
- WorkQueue: add new ContextWQ work queue
-
- The queue holds a collection of Context pointers that will
- be completed by the thread pool.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 24a33e977f7b71962adeeb48f75d488a76e70fa9)
-
-commit 1a321e477effa23bffbb6cb057aa955586197345
-Author: Wido den Hollander <wido@42on.com>
-Date: Wed Jun 3 13:13:33 2015 +0200
-
- rgw: Do not enclose the Bucket header in quotes
-
- Fixes: #11860
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 8af25faed93fe02d3dad585b8579ce8b041cc4e6)
-
-commit a62c3aa1df9e0f79ac75d94083d10b902dbba382
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Apr 24 14:04:30 2015 +0800
-
- ceph.in: handle unknown Exception correctly
-
- * in case parse_cmdargs() throws
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 7789eefc01deb9ca7fe90f5521aece3e36c3c350)
-
-commit cc7f7441c1d0457e840bfdc3413f9bc6d5f5134a
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Apr 24 01:27:44 2015 +0800
-
- ceph.in: improve the interactive mode
-
- * if ceph is not reading from a tty, expect EOF instead of "quit"
- as the end of input.
- * do not panic at seeing the EOF
- * update the test case test_mon_injectargs_SI(). since we disables
- "ceph injectargs <args,...>" in a458bd83, in which the arguments
- of "injectargs" are supposed to be consumed by "tell" instead.
- so "ceph injectargs ..." is taken as an incomplete command, and
- this command will bring ceph cli into the interactive mode,
- redirecting its stdin to /dev/null helps ceph cli quit the loop,
- but in a way of throwing EOFError exception. this change handles
- the EOF, so the "ceph injectargs ..." does not throws anymore.
- but the side effect is that the test fails since it expects a
- non-zero return code. so replace it with an equivalent "tell"
- command which also fails but due to the non-SI postfix.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit da9d2b4077ab1dceeed979ab71f0d9ed59b14266)
-
-commit eb26388cb985456e8f6e07a52a20fa912cf4efaa
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Apr 24 00:50:37 2015 +0800
-
- ceph.in: parse quote correctly in interactive mode
-
- Fixes: #11279
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit bc7d8c99d2e16a141a8b575281ba12c67628dac3)
-
-commit 558d6391ecdfd5d716558341ce5d84ce1f7ec9c3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 8 12:01:16 2015 +0800
-
- json_sprit: fix the FTBFS on old gcc
-
- Fixes: #11574
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 6b68b27146852f057a3373cd04b08cd6917f3eea)
-
-commit 678b3e6082729698ce3575ba70313dd8399b1aed
-Author: Tim Serong <tserong@suse.com>
-Date: Sat May 2 01:59:53 2015 +1000
-
- json_spirit: use utf8 intenally when parsing \uHHHH
-
- When the python CLI is given non-ASCII characters, it converts them to
- \uHHHH escapes in JSON. json_spirit parses these internally into 16 bit
- characters, which could only work if json_spirit were built to use
- std::wstring, which it isn't; it's using std::string, so the high byte
- ends up being zero'd, leaving the low byte which is effectively garbage.
-
- This hack^H^H^H^H change makes json_spirit convert to utf8 internally
- instead, which can be stored just fine inside a std::string.
-
- Note that this implementation still assumes \uHHHH escapes are four hex
- digits, so it'll only cope with characters in the Basic Multilingual
- Plane. Still, that's rather a lot more characters than it could cope
- with before ;)
-
- (For characters outside the BMP, Python seems to generate escapes in the
- form \uHHHHHHHH, i.e. 8 hex digits, which the current implementation
- doesn't expect to see)
-
- Fixes: #7387
-
- Signed-off-by: Tim Serong <tserong@suse.com>
- (cherry picked from commit 8add15b86e7aaef41397ab8fa9e77ee7957eb607)
-
-commit ef6641c0aa47c7f559aa56d7c35a5815afc2ba49
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Mar 23 21:26:23 2015 +0100
-
- ceph.spec: update OpenSUSE BuildRequires
-
- OpenSUSE 13.2 needs libsnappy-devel but not bzip2-devel.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit bdac3dc3fb189688af52f60b0b34339dd8fea251)
-
-commit 0b6d4427ac7234fd509a9541adf45e303e40cb16 (refs/remotes/jashan/wip-hammer-11535-admin-socket, refs/remotes/gh/wip-hammer-11535-admin-socket)
-Author: Jon Bernard <jbernard@tuxion.com>
-Date: Fri May 8 11:54:06 2015 -0400
-
- common/admin_socket: close socket descriptor in destructor
-
- Long-running processes that do not reuse a single client connection will
- see accumulating file descriptors as a result of not closing the
- listening socket. In this case, eventually the system will reach
- file-max and subsequent connections will fail.
-
- Fixes: #11535
-
- Signed-off-by: Jon Bernard <jbernard@tuxion.com>
- (cherry picked from commit 88fabb1ee6cd3c7d211ca46919055195e32245db)
diff --git a/src/ceph/doc/changelog/v0.94.4.txt b/src/ceph/doc/changelog/v0.94.4.txt
deleted file mode 100644
index a99f871..0000000
--- a/src/ceph/doc/changelog/v0.94.4.txt
+++ /dev/null
@@ -1,3576 +0,0 @@
-commit 95292699291242794510b39ffde3f4df67898d3a (tag: refs/tags/v0.94.4, refs/remotes/gh/hammer)
-Author: Jenkins <jenkins@ceph.com>
-Date: Mon Oct 19 07:43:50 2015 -0700
-
- 0.94.4
-
-commit 5764e233e56be08a59ffe6292f6fba9a76288aee
-Merge: 7f485ed b203979
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 15 16:35:10 2015 -0400
-
- Merge pull request #6287 from jcsp/wip-test-fixes
-
- git path backports for hammer
-
-commit b2039797638057dd74a8a47c99091c2c892b042e
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 16 08:29:41 2015 -0700
-
- use git://git.ceph.com
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 34c467ba06345eacd2fd0e79c162dfd0b22f0486)
-
-commit 0f4ef19047c58aacfb359bdd9d104f059aa2f5b4
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 24 18:10:46 2015 -0400
-
- qa: http://ceph.com/qa -> http://download.ceph.com/qa
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d4d65fbd6ad15320339751c604613ac63511e645)
-
-commit 7f485ed5aa620fe982561663bf64356b7e2c38f2
-Merge: 3dc1de2 294f016
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 13 00:28:52 2015 +0200
-
- Merge pull request #6161 from dachary/wip-13227-hammer
-
- With root as default user, unable to have multiple RGW instances running
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 294f016ff84c7efef36ca94daef39fe2686df690
-Author: Sage Weil <sage@redhat.com>
-Date: Thu May 7 15:40:05 2015 -0700
-
- init-radosgw.sysv: remove
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9d8c115b0ab05cfc1db6670d1d367737e61fe0ea)
-
-commit 3dc1de22552065bd930cc3e42a486e29639927ba
-Merge: aa74de9 7de65e7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:16:17 2015 -0700
-
- Merge pull request #6166 from dachary/wip-13046-hammer
-
- RGW : setting max number of buckets for user via ceph.conf option
-
-commit aa74de9d34801552d7d3e0aced07b6bc5bd129b9
-Merge: d3e49eb 77cb503
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:15:21 2015 -0700
-
- Merge pull request #6039 from ceph/wip-13015-hammer
-
- rgw: don't preserve acls when copying object
-
-commit d3e49ebce00d749c36fe8dc46a5c432b1b907126
-Merge: 417e948 424fc1c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:14:47 2015 -0700
-
- Merge pull request #6042 from dreamhost/wip-hammer-crossftp
-
- rgw: remove trailing :port from host for purposes of subdomain matching
-
-commit 417e948898d260a1ad6354244f9967ccbd75d768
-Merge: b5badcb 9ab9c44
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:14:09 2015 -0700
-
- Merge pull request #6160 from dachary/wip-13228-hammer
-
- rgw: segments are read during HEAD on Swift DLO
-
-commit b5badcb47e565cd17145adca49abf07e167963e0
-Merge: e3f8df9 6119b15
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:13:25 2015 -0700
-
- Merge pull request #6162 from dachary/wip-13226-hammer
-
- Keystone Fernet tokens break auth
-
-commit e3f8df9e12b434714b67036838f37b75ed1f9a25
-Merge: 8078233 ad83304
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:12:26 2015 -0700
-
- Merge pull request #6163 from dachary/wip-13054-hammer
-
- rgw: region data still exist in region-map after region-map update
-
-commit 8078233ca1dda8eef3c59d6a92760365634cf41a
-Merge: dd64c78 4b0686f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:12:07 2015 -0700
-
- Merge pull request #6164 from dachary/wip-13053-hammer
-
- rgw: GWWatcher::handle_error -> common/Mutex.cc: 95: FAILED assert(r == 0)
-
-commit dd64c7813bbdd2a6a4ffde6767c5d060ee1b9290
-Merge: 135c112 e80bd0a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:11:16 2015 -0700
-
- Merge pull request #5718 from dachary/wip-12859-hammer
-
- testGetContentType and testHead failed
-
-commit 135c112789d4925a735229394c0ec9e2b728d3ca
-Merge: fd17f3c 3b2affc
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:10:55 2015 -0700
-
- Merge pull request #5860 from lebauce/wip-12960-hammer
-
- rgw: add delimiter to prefix only when path is specified
-
-commit fd17f3ccbf98832098bd1cd35fe2a5d567b51f4c
-Merge: 036c718 297c04d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 08:08:59 2015 -0700
-
- Merge pull request #6165 from dachary/wip-13052-hammer
-
- rgw: init_rados failed leads to repeated delete
-
-commit 036c7186f9304e4e48ecf50a4299cf74d55875fe
-Merge: 629b631 698d75c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 9 09:17:19 2015 +0200
-
- Merge pull request #6201 from dachary/wip-13410-hammer
-
- TEST_crush_rule_create_erasure consistently fails on i386 builder
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 629b631488f044150422371ac77dfc005f3de1bc
-Merge: 70e612a 0a5b856
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 8 12:18:49 2015 -0400
-
- Merge pull request #5885 from Abhishekvrshny/wip-13034-hammer
-
- osd: copy-from doesn't preserve truncate_{seq,size}
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 698d75c11fa116d6546b09d14484d094fae8f6d7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Jul 22 10:42:32 2015 +0200
-
- tests: robust test for the pool create crushmap test
-
- The test that goes with f1e86be589803596e86acc964ac5c5c03b4038d8 to
- verify that a bugous crush ruleset will prevent the creation of a pool
- trying to use it was fragile. I depends on the implementation of the
- erasure code lrc plugin and turns out to not work on i386.
-
- The test is modified to use a fake crushtool that always returns false
- and validate that it prevents the creation of a pool, which demonstrate
- it is used for crushmap validation prior to the pool creation.
-
- http://tracker.ceph.com/issues/12419 Fixes: #12419
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit e47903727b5d53f795014bf29b417d357f2bd65a)
-
-commit 70e612a395f7f5daf2fa289d8ae522824ef7a38f
-Merge: 0650862 2a28114
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 8 00:09:24 2015 +0200
-
- Merge pull request #6192 from dachary/wip-13401-hammer
-
- mon: fix crush testing for new pools
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 2a28114053fbf4ceee09558790ad3cf755270d5f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Aug 21 16:40:34 2015 -0400
-
- crush/CrushTester: test fewer inputs when running crushtool
-
- If there are a lot of crush rules (say, 100) then the test can
- take a long time. 100 values per rule should be enough to catch
- most issues.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 0f82f461b33d93d868e185912a2c7e4074d06900)
-
- Conflicts:
- src/crush/CrushTester.cc
- in hammer the crushtool validation is via a shell
- and not via an internal subprocess utility
-
-commit abc5b5f139b05da0be0fbaa99282be16386980db
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun Sep 20 23:42:45 2015 +0200
-
- tests: update to match crushmap validation message
-
- http://tracker.ceph.com/issues/13182 Fixes: #13182
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 21a1e75d8a7bad89a48cd9d36902c5d609be5015)
-
- Conflicts:
- qa/workunits/cephtool/test.sh
- the test structure in hammer is different, adapt
- the relevant test.
-
-commit 25bd2778f8b7f5eb5245efebca56a7348dd064eb
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 18 09:42:47 2015 -0400
-
- mon/OSDMonitor: fix crush injection error message
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1b3090d50e5bd5ca3e6e396b23d2d9826896c718)
-
- Conflicts:
- src/mon/OSDMonitor.cc
- hammer has a separate error message for EINTR
- which is in the context of the fix for error message
-
-commit 6635530aa94b1f21c3052e64d4dfe3952f98fe83
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 18 09:41:25 2015 -0400
-
- mon/OSDMonitor: only test crush ruleset for the newly created pool
-
- Otherwise, we test *all* crush rules.. which might be a lot, and
- which is a big waste of time and effort.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 524b0bdcc45c2f4b95f2239c988e93250f337f3d)
-
- Conflicts:
- src/mon/OSDMonitor.cc : trivial resolution
-
-commit cc1fedda02fbf3c95d7a00f0b395db5439e96f90
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 18 09:40:13 2015 -0400
-
- crush/CrushTester: allow testing by ruleset
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit aa238e5ed50f44a94caf84567267e4f6be8732a2)
-
- Conflicts:
- src/crush/CrushTester.cc
- in hammer the crushtool validation is via a shell
- and not via an internal subprocess utility
- src/tools/crushtool.cc
- ceph_argparse_withint is preferred to ceph_argparse_witharg
-
-commit 065086246290cfa02f67c37c95a2ccdb05872f21
-Merge: 79385a8 3a50b90
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 6 11:11:14 2015 -0400
-
- Merge pull request #5887 from Abhishekvrshny/wip-13044-hammer
-
- LibCephFS.GetPoolId failure
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 79385a85beea9bccd82c99b6bda653f0224c4fcd
-Merge: 5b25fc9 3228161
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Oct 4 15:33:49 2015 +0200
-
- Merge pull request #6172 from dachary/wip-13354-hammer
-
- qa/workunits/cephtool/test.sh: don't assume crash_replay_interval=45
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 322816116ea14a8fd79616b1c55545ae7c62e7f6
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 28 13:13:40 2015 -0400
-
- qa/workunits/cephtool/test.sh: don't assume crash_replay_interval=45
-
- e.g., it's 5 in teuthology's ceph.conf.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 80b7237e5e74d12b9d8b1f96ea535c96bdff9c6f)
-
-commit ad833044dee4208625213bc83c7847ce9d1a73aa
-Author: dwj192 <duanweijun@h3c.com>
-Date: Wed Sep 9 09:48:16 2015 +0800
-
- rgw:add --reset-regions for regionmap update
-
- Fixes: #12964
-
- Signed-off-by: Weijun Duan <duanweijun@h3c.com>
- (cherry picked from commit 95685c19d6f1eab50b903e61273b5351bedc2980)
-
- Conflicts:
- src/rgw/rgw_admin.cc: usage is on cerr in hammer, not cout
- src/test/cli/radosgw-admin/help.t: remove extra empty line
-
-commit 5b25fc9c8431423c6239da2eafcf7e8863d2262f
-Merge: e72bdc3 9026c4a
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Oct 3 09:39:12 2015 +0200
-
- Merge pull request #6156 from dachary/wip-13170-hammer
-
- doc: update docs to point to download.ceph.com
-
- Reviewed-by: Abhishek Varshney <abhishek.varshney@flipkart.com>
-
-commit 7de65e7ede52f3e417c354f180cfd80f1407c6cb
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu Sep 3 12:02:05 2015 +0530
-
- rgw : setting max number of buckets for users via ceph.conf option
-
- This patch adds a new option "rgw_user_max_buckets" for setting
- max number of buckets for users via ceph.conf.
-
- Fixes #12714
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit f65267c96cbd4cd25036b6bf399692e77bbb9436)
-
- Conflicts:
- src/rgw/rgw_admin.cc: usage is on cerr in hammer, not cout
-
-commit 297c04d856c4864d21b2241ad01560afa61dde40
-Author: Xiaowei Chen <cxwshawn@gmail.com>
-Date: Tue Sep 8 06:58:57 2015 -0400
-
- rgw: init_rados failed leads to repeated delete
-
- Fixes: #12978
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit ab4232baa7bcc86e90746e13312ac9bda1772872)
-
-commit 4b0686f18f323b95adb1fc5cffe7c1e55e8f1c63
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Aug 26 15:08:18 2015 -0700
-
- rgw: delete finisher only after finalizing watches
-
- Fixes: #12208
-
- The watch error path might try to schedule a finisher work, delete finisher
- only after watch destruction.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 97aed59fb9e865d30d31d2b7f4e93fc9727c96fa)
-
-commit 6119b152412ddfa2a614c1862aad52a123a4fe8e
-Author: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
-Date: Mon Aug 24 23:11:35 2015 +0530
-
- rgw: be more flexible with iso8601 timestamps
-
- make parsing 8601 more flexible by not restricting the length of seconds
- to 5, this allows timestamp to be specified both as ms or us. Newer
- keystone backends such as fernet token backend default to microseconds
- when publishing iso8601 timestamps, so this allows these timestamps to
- be allowed when specifying the token expiry time.
-
- Fixes: #12761
- Reported-by: Ian Unruh <ianunruh@gmail.com>
- Signed-off-by: Abhishek Lekshmanan <abhishek.lekshmanan@ril.com>
- (cherry picked from commit 136242b5612b8bbf260910b1678389361e86d22a)
-
-commit 607904e8d5616bd7df20e1e387a14d55e4ca43b6
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 22 14:12:02 2015 -0400
-
- init-radosgw: specify pid file to start-stop-daemon
-
- This fixes restart when multiple instances are running.
-
- Fixes: #12407
- Tested-by: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e17c8e1a7a06db0e2680dedc7e954021610320d1)
-
-commit f51ab26d8721bde6852e5c169869d7ae16bd0574
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu Jul 23 18:10:06 2015 +0530
-
- rgw: fix radosgw start-up script.
-
- radosgw init script is unable to start radosgw daemon.
- as it is relies on requiretty being disabled.
- once init script start this daemon with sudo it fails
- to start the daemon.
-
- changing 'sudo' to 'su', it will fix this issue and
- will also help running radosgw daemon with our new
- "ceph" UID project.
-
- Fixes: #10927
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit c83542296aeb8f5dd96f5d9e09327e7a89370742)
-
-commit 544a98fa9dd47d02778f622de5f7ebe1acccc12f
-Author: Sage Weil <sage@redhat.com>
-Date: Thu May 7 15:39:22 2015 -0700
-
- init-radosgw: unify init-radosgw[.sysv]
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1c45f512a91ee49e9253ba6fd3857af9bd2ae57a)
-
-commit 2a733e9e720bcdb8ea342a96be679d6f9efa3b2b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu May 7 15:29:11 2015 -0700
-
- init-radosgw: look in /var/lib/ceph/radosgw
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a4bb992426b39188e750fce9198052ca0d510117)
-
-commit d00c52b874ddc74aa5f4c2e07b70b881ce963114
-Author: Nathan Cutler <ncutler@suse.cz>
-Date: Sun May 10 18:17:53 2015 +0200
-
- doc: rgw: fix typo in comments
-
- Signed-off-by: Nathan Cutler <ncutler@suse.cz>
- (cherry picked from commit 05cf0db22dc3a9cb2bf4b86b8f240683c23f41ac)
-
-commit eb001d3a7275cc040bea716b8bdb0cf8b97efbc9
-Author: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
-Date: Tue Mar 17 15:44:52 2015 -0700
-
- rgw: init script waits until the radosgw stops
-
- Fixes: #11140
- Init script waits in stop action until the radowgw daemons stop.
-
- Signed-off-by: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
- (cherry picked from commit 1cca0c1e91a1e18f82f4d22855e96b2fc947f5ea)
-
-commit 9ab9c44583c96f1679db3dbcef322a706548a7dd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 17 09:10:39 2015 -0700
-
- rgw: don't read actual data on user manifest HEAD
-
- Fixes: #12780
- We unconditionally read all the data, which is not needed
- when doing HEAD operation on user manifest objects.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 4a8b08d1dd2511e28e999f1625103fb919fb5465)
-
-commit 9026c4a7c7699a9a013d4fe207e6681403f934a6
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Fri Sep 18 14:20:12 2015 -0400
-
- doc: remove mention of ceph-extra as a requirement
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit a6f07e9fa3bd5e50a2d8cfa387b44a39d383fa65)
-
-commit 45ed24da879fe12b921cf03e4a921ccc0582b8d2
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Fri Sep 18 14:13:21 2015 -0400
-
- doc: remove ceph-extras
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit c0ef84fd22aac58b6ec8e58eb4f8dffed306d39e)
-
-commit faccdce79e003318c751dd9203773af7ed31d052
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Fri Sep 18 14:13:02 2015 -0400
-
- doc: correct links to download.ceph.com
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit 387d7800359154950431d0984c756f43f21dd9b4)
-
-commit e9f4aecf3f406b42b74f840edb398be9243da85a
-Author: ritz303 <ritz_303@yahoo.com>
-Date: Tue Aug 25 10:02:49 2015 -0500
-
- doc: Added "Hammer" in the list of major releases.
-
- Fixes: #12771
-
- Signed-off-by: ritz303 <ritz_303@yahoo.com>
- (cherry picked from commit 582f0f64455079290ad3b4ae7338b716e170911f)
-
-commit 424fc1ccb244f5084f94904cb20cbf88a1bd4638
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Sep 25 10:44:40 2015 -0700
-
- rgw: set default value for env->get() call
-
- Fixes: #13239
-
- This fixes a regression introduced at commit abe4ec293d08b0314bf5c081ace2456073f3a22c.
- The host var is a string, env->get() returns a char pointer, shouldn't
- pass in NULL.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 0d5730efc0054334897315dc23ba04f30548e36e)
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit e72bdc3bf1541e445f74def70b5aa185f1757468
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 21 11:41:03 2015 -0400
-
- osd/ReplicatedPG: tolerate promotion completion with stopped agent
-
- We may start a promotion, then get a pool update that disables the
- agent, and then complete it. We should not segfault in this case.
-
- Fixes: #13190
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit fd9ce66e8b76787f69c5e337332d57aa72c8b8d5)
-
-commit a3afb3f59435050efa711436134b4abe63a8f5cf
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jun 9 14:15:10 2015 -0400
-
- rgw: remove trailing :port from host for purposes of subdomain matching
-
- Some clients (ahem, CrossFTP) include the :port in the HTTP_HOST header.
- Strip it out.
-
- Switch req_info field to a std::string and avoid copying it in preprocess.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit abe4ec293d08b0314bf5c081ace2456073f3a22c)
-
-commit fe0fc4f18f6f275b34e8bbfa868a7310ecc3842f
-Merge: e26f8bc 8ba6b2f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 24 14:01:26 2015 -0700
-
- Merge pull request #5715 from dachary/wip-12592-hammer
-
- RGW returns requested bucket name raw in Bucket response header
-
-commit e26f8bc2dbc82b6ff31d2bd2d5c890aa12da9f4a
-Merge: 19e549e 6acf36f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 24 14:00:55 2015 -0700
-
- Merge pull request #5719 from dachary/wip-12855-hammer
-
- segmentation fault when rgw_gc_max_objs > HASH_PRIME
-
-commit 19e549e9c2fbacdbf747344c1dafcc6b66902339
-Merge: 2b11a4c a13c7fd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 24 14:00:09 2015 -0700
-
- Merge pull request #5720 from dachary/wip-12854-hammer
-
- the arguments 'domain' should not be assigned when return false
-
-commit 77cb503ba057f033825aa40d57dee42e838c67ac (refs/remotes/gh/wip-13015-hammer)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Sep 9 15:41:02 2015 -0700
-
- rgw: preserve all attrs if intra-zone copy
-
- Fixes: #13015
- Intra zone copy requires that all objects' attributes are preserved.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit b9f2ed303eedfa0b747884f8e66fbe97cfeeb0d5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Aug 13 10:59:32 2015 -0700
-
- rgw: don't preserve acls when copying object
-
- Fixes: #12370
-
- When copying an object we need to use the acls we calculated earlier,
- and not the source acls.
- This was broken at e41d97c8e38bb60d7e09e9801c0179efe7af1734.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fb020247449d3daf033885bab5b3a10c0e5df4a5)
-
-commit 2b11a4c07a9416a2f75c8ce62a923994977d799c
-Merge: 0022c03 b3822f1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Sep 15 10:23:49 2015 +0200
-
- Merge pull request #5930 from liewegas/wip-11798-hammer
-
- upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0022c035476eff471a777b23a619d024f632a1bf
-Merge: 23fb811 0d6a8c6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 14 23:57:13 2015 +0200
-
- Merge pull request #5908 from liewegas/wip-simple-connect-hammer
-
- Pipe: Drop connect_seq increase line
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit b3822f113e07547194b844f647bcb7d45513b25f (refs/remotes/me/wip-11798-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jun 3 14:57:34 2015 -0400
-
- upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s)
-
- It may take tens of seconds to restart each time, so 5 in 30s does not stop
- the crash on startup respawn loop in many cases. In particular, we'd like
- to catch the case where the internal heartbeats fail.
-
- This should be enough for all but the most sluggish of OSDs and capture
- many cases of failure shortly after startup.
-
- Fixes: #11798
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit eaff6cb24ef052c54dfa2131811758e335f19939)
-
-commit 0d6a8c631f55367ac4f6f792a10ba62cd97e9fed (refs/remotes/me/wip-simple-connect-hammer)
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Wed Feb 25 23:38:54 2015 +0800
-
- Pipe: Drop connect_seq increase line
-
- Revert commit 0fc47e267b6f8dcd4511d887d5ad37d460374c25.
-
- When accepting and "connect.connect_seq == existing->connect_seq",
- existing->state maybe STATE_OPEN, STATE_STANDBY or STANDY_CONNECTING.
- This commit only fix partial problem and want to assert
- "(existing->state == STATE_CONNECTING)".
-
- So later we added codes to catch
- "(existing->state == STATE_OPEN || existing->state == STATE_STANDBY)"
- before asserting.
-
- Backport: dumpling, firefly, giant
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 67225cb3ee1f6d274a02293724942bdb25cec8ca)
-
-commit 23fb811303971152f1c348e2a02de4e2bc6ed53d
-Merge: c1849ec 6c4ccc8
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Sep 13 14:10:23 2015 +0200
-
- Merge pull request #5767 from dachary/wip-12597-hammer
-
- Crash during shutdown after writeback blocked by IO errors
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit c1849ecfb2ae55b99b6db75ee49af19886c246b2
-Merge: f35c53d f028389
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Sep 13 07:42:36 2015 -0400
-
- Merge pull request #5687 from liewegas/wip-hammer-feature-hammer
-
- include/ceph_features: define HAMMER_0_94_4 feature
-
-commit f35c53df7c155d7ff4a316a0817b11bc018c57ca
-Merge: 6e22620 4be8a28
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Sep 12 09:23:13 2015 -0400
-
- Merge pull request #5892 from ceph/wip-13060-hammer
-
- osd: allow peek_map_epoch to return an error
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 4be8a28d5b5ba868d100300ab64ebb82b188222b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 11 11:00:38 2015 -0400
-
- osd/PG: peek_map_epoch: skip legacy PGs if infos object is missing
-
- - pg is removed
- - osd is stopped before pg is fully removed
- - on restart, we ignore/skip the pg because its epoch is too old
- - we upgrade to hammer and convert other pgs, skipping this one, and then
- remove the legacy infos object
- - hammer starts, tries to parse the legacy pg, and fails because the infos
- object is gone, crashing.
-
- The fix is to continue ignoring the zombie pg.
-
- Fixes: #16030
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit f237ed97228839a1b412ad213945f0343df05bf5
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 11 17:41:01 2015 -0400
-
- osd: allow peek_map_epoch to return an error
-
- Allow PG::peek_map_epoch to return an error indicating the PG
- should be skipped.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f15d9585edc5a12ac2d076951076247253b897c2)
-
- [fixed *pepoch default of 0]
- [fixed other return paths in peek_map_epoch]
-
-commit 3a50b904a2ffd613b695ead1b26c93278044d7df
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Aug 5 15:19:13 2015 +0800
-
- crypto: fix unbalanced ceph::crypto::init/ceph::crypto:shutdown
-
- we may create a CephContext without calling common_init_finish(), then
- delete the CephContext. In this case, ceph::crypto:init() is not called,
- so CephContext::~CephContext() should not call ceph::crypto::shutdown().
-
- Fixes: #12598
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 98a85ec6464d8ec3fc7f0c647ac97c8cf002ebe2)
-
-commit 0a5b8569ecc6efa42b3d4fa7a58c155b3c2dbbe8
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jul 30 16:59:32 2015 -0700
-
- ReplicatedPG,Objecter: copy_get should include truncate_seq and size
-
- Otherwise, we break CephFS over cache tiers.
-
- Fixes: #12551
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6f9ee7961eee9ee3a61a07cbe0d8d289ee98fa9a)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
-
-commit 6e22620165872a88ab4b75ed2fb93f61beb65d12
-Merge: 508733f 00e73ad
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Sep 9 19:44:09 2015 -0400
-
- Merge pull request #5769 from dachary/wip-12850-hammer
-
- Crash during TestInternal.MultipleResize
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 508733fd48f2c704b79ad36841346965f4d0429b
-Merge: 69a320e dc693fc
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Sep 9 19:44:01 2015 -0400
-
- Merge pull request #5768 from dachary/wip-12849-hammer
-
- [ FAILED ] TestLibRBD.BlockingAIO
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 82ea02ab8d886c16c511c4bd7d03d826158f954b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jun 17 11:35:18 2015 -0700
-
- rgw: fix assignment of copy obj attributes
-
- Fixes: #11563
- Clarify the confusing usage of set_copy_attrs() by switching the source and
- destinatiion params (attrs, src_attrs). Switch to use attrs instead of
- src_attrs afterwards. In one of the cases we originally used the wrong
- variable.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e41d97c8e38bb60d7e09e9801c0179efe7af1734)
-
-commit 3b2affce1a229cead3e0ffacfdfde69258a267cb
-Author: Sylvain Baubeau <sbaubeau@redhat.com>
-Date: Fri Sep 4 22:51:44 2015 +0200
-
- rgw: add delimiter to prefix only when path is specified
-
- http://tracker.ceph.com/issues/12960
- Fixes: #12960
-
- Signed-off-by: Sylvain Baubeau <sbaubeau@redhat.com>
- (cherry picked from commit 27cf257248ea55f8f4bc7851c3956611828bcae2)
-
-commit 69a320e185f20da0824d0a62d3de77578c431a7a
-Merge: 8039375 0bc909e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 9 16:58:56 2015 +0200
-
- Merge pull request #5697 from tchaikov/wip-12638-hammer
-
- mon: add a cache layer over MonitorDBStore
-
- Reviewed-by: Joao Eduardo Luis <joao@suse.de>
-
-commit 8039375327b5074a700193aae2d8b1922ca85398
-Merge: 19ff928 256620e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 9 14:52:54 2015 +0200
-
- Merge pull request #5381 from dachary/wip-12499-hammer
-
- ceph-fuse 0.94.2-1trusty segfaults / aborts
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 19ff92806fd1e0fb866737f58e379aa8078b8017
-Merge: 7614bf7 059bf98
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Sep 8 14:58:16 2015 -0700
-
- Merge pull request #5757 from dachary/wip-12836-hammer
-
- WBThrottle::clear_object: signal on cond when we reduce throttle values
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 7614bf7d117fdd476931cdd8825265321cef3c4c
-Merge: 2100631 bf72785
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:06:30 2015 +0200
-
- Merge pull request #5759 from dachary/wip-12841-hammer
-
- recursive lock of md_config_t (0)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 210063120708a7d6502c2b8d3e8c61731e37de5b
-Merge: a2e1fe2 836f763
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:05:41 2015 +0200
-
- Merge pull request #5761 from dachary/wip-12843-hammer
-
- long standing slow requests: connection->session->waiting_for_map->connection ref cycle
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a2e1fe26f602d0165999dfb72b97985f9bfe38ce
-Merge: 8ccb771 2348a5b
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:04:51 2015 +0200
-
- Merge pull request #5762 from dachary/wip-12844-hammer
-
- osd suicide timeout during peering - search for missing objects
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 8ccb7711d68dd3b95d2522c6e46f5021362c9088
-Merge: e9db807 77624af
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:04:03 2015 +0200
-
- Merge pull request #5763 from dachary/wip-12846-hammer
-
- osd/PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size())
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e9db8075034dc4ac0ffe5d8dd9dd2153509237fa
-Merge: 5ef999e aa00373
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:03:10 2015 +0200
-
- Merge pull request #5764 from dachary/wip-12847-hammer
-
- common: do not insert emtpy ptr when rebuild emtpy bufferlist
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5ef999e4a1dc04d7b7e58b1a61f85511099fd6d4
-Merge: c243f7a cd11b88
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:02:14 2015 +0200
-
- Merge pull request #5373 from dachary/wip-12489-hammer
-
- pg_interval_t::check_new_interval - for ec pool, should not rely on min_size to determine if the PG was active at the interval
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c243f7a33b0fff261bb92595a3cc7abf12b7e56d
-Merge: e61fdc6 7bddf5d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 10:00:32 2015 +0200
-
- Merge pull request #5383 from dachary/wip-12504-hammer
-
- rest-bench common/WorkQueue.cc: 54: FAILED assert(_threads.empty())
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit e61fdc67031b0358800335b638c96d22ecb85bd6
-Merge: 62f543b 9f69660
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 09:54:07 2015 +0200
-
- Merge pull request #5765 from dachary/wip-12883-hammer
-
- cache agent is idle although one object is left in the cache
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 62f543bbb092554746d3b89aab4b1ea75a5cdbf1
-Merge: f25315c e471c5d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 09:53:14 2015 +0200
-
- Merge pull request #5754 from dachary/wip-12588-hammer
-
- Change radosgw pools default crush ruleset
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit f25315c1e7e6e4700c2f39ba849dbcb25b0f1f89
-Merge: 021abe7 43a72e4
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Sep 7 09:51:50 2015 +0200
-
- Merge pull request #5377 from dachary/wip-12396-hammer
-
- register_new_pgs() should check ruleno instead of its index
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 021abe742ccec876497468ac556b9dfaf6c9503d
-Merge: 4125196 c94fd92
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Sep 6 21:07:38 2015 -0400
-
- Merge pull request #5758 from dachary/wip-12839-hammer
-
- Mutex Assert from PipeConnection::try_get_pipe
-
-commit 9f69660133f9534722589801a6fc827b74bead44
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Aug 13 19:41:47 2015 +0200
-
- tests: tiering agent and proxy read
-
- Verify that an object promoted to a cache tier because of a proxy read
- is evicted as expected.
-
- http://tracker.ceph.com/issues/12673 Refs: #12673
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 7924231930732bd297d3bd034c8295e96cb81088)
-
-commit 5656eec0000e95ea790c796a9f572c7261163cfa
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Aug 13 13:47:24 2015 +0200
-
- osd: trigger the cache agent after a promotion
-
- When a proxy read happens, the object promotion is done in parallel. The
- agent_choose_mode function must be called to reconsider the situation
- to protect against the following scenario:
-
- * proxy read
- * agent_choose_mode finds no object exists and the agent
- goes idle
- * object promotion happens
- * the agent does not reconsider and eviction does not happen
- although it should
-
- http://tracker.ceph.com/issues/12673 Fixes: #12673
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit e1f58feb9b1d20b72f2eb2eefdea5982e0cddccd)
-
-commit 4125196d31de8933656561b2f860e16a546ec4b9
-Merge: 47af509 f47ba4b
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Sep 6 23:17:22 2015 +0200
-
- Merge pull request #5276 from dachary/wip-11824-hammer
-
- implicit erasure code crush ruleset is not validated
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 47af509003e551238702858ccd845b930e5ef1ed
-Merge: 2fd8ec8 1e05578
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Sep 6 17:24:43 2015 +0200
-
- Merge pull request #5382 from dachary/wip-12500-hammer
-
- segfault launching ceph-fuse with bad --name
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 2fd8ec8385a90daaa1bdb9de189ec73c7ba49c6c
-Merge: e6bdae9 fa19474
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Sep 6 17:23:19 2015 +0200
-
- Merge pull request #5367 from dachary/wip-12311-hammer
-
- read on chunk-aligned xattr not handled
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit dc693fcaf2c596087b434f9e90fbc553394b9a14
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 29 12:46:24 2015 -0400
-
- lockdep: allow lockdep to be dynamically enabled/disabled
-
- librbd test cases attempt to enable lockdep coverage via the librados
- API. Use a configuration observer to register/unregister lockdep
- support.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit af0cade0293be22e74a3293765676c7b227b06c4)
-
-commit 805732b143fd28603238969ba784adb57eff1a12
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 28 14:23:14 2015 -0400
-
- tests: librbd API test cannot use private md_config_t struct
-
- Remove all depencencies on md_config_t and instead use librados API
- methods to get/set configuration values.
-
- Fixes: #12479
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2c51aadb447d3447b5dace19c5cb6268e94247c8)
-
-commit 7ac01731bcb0f1d46cf98ecf623c7e8e6cb1a38e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 9 15:06:27 2015 -0400
-
- tests: ensure old-format RBD tests still work
-
- Override the RBD default image format back to version 1
- to ensure tests properly cover the old format.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3b95edb5bd373bd05f83516eccfd30a6b5cf4693)
-
-commit b68d7574d12944589b246281474bcad01f5347be
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 30 09:00:57 2015 -0400
-
- librados_test_stub: implement conf get/set API methods
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4d03c664f2a9362009c7e3077ed65e2989f0f21b)
-
-commit f0fa637e4a91a93a326ba303bc22101fadcc787d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 28 13:14:29 2015 -0400
-
- crypto: use NSS_InitContext/NSS_ShutdownContex to avoid memory leak
-
- Switched to context-aware NSS init/shutdown functions to avoid conflicts
- with parent application. Use a reference counter to properly shutdown the
- NSS crypto library when the last CephContext is destroyed. This avoids
- memory leaks with the NSS library from users of librados.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9fa0112dd9286178da1d76020158503b2062d252)
-
-commit 3f542aa2410139bece0f4192079e4e34260da782
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Mar 21 07:13:51 2015 +0800
-
- auth: use crypto_init_mutex to protect NSS_Shutdown()
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit cf058174fe6be26129eb52f4fb24d0f7146ef7af)
-
-commit e487e8e3d84c7845ce7824ace3e375c6c389ba20
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Mar 21 01:02:42 2015 +0800
-
- auth: reinitialize NSS modules after fork()
-
- Fixes: #11128
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4c24d0cc074462ae258b5cf901cd884bb4f50a53)
-
-commit 00e73adb03ef4453599268779fe354e4e8513e54
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 11 09:26:33 2015 -0400
-
- librbd: prevent race condition between resize requests
-
- It was possible that the same resize request could be sent twice
- if a completed resize op started a newly created resize op while
- it was also being concurrently started by another thread.
-
- Fixes: #12664
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6ec431bac1cf9446f3af90209d193dfcf003f2c5)
-
-commit 6c4ccc854fa8a8403b03785b06cb35a7174f4f42
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Mar 9 14:23:23 2015 +0800
-
- librbd: Add a paramter:purge_on_error in ImageCtx::invalidate_cache().
-
- If bh_write met error, it will try again. For closing image, if met this
- issue, it will trigger a assert:
- >>2015-02-03 15:22:49.198292 7ff62d537800 -1 osdc/ObjectCacher.cc: In
- function 'ObjectCacher::~ObjectCacher()' thread 7ff62d537800 time
- >>2015-02-03 15:22:49.195927osdc/ObjectCacher.cc: 551: FAILED
- >>assert(i->empty())
-
- Now add purge_on_error, when shutdown_cache it set true.
- In ImageCtx::invalidate_cache, if met error and purge_on_error is true,
- purge the dirty bh.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 35def5c81f7fc83d55d18320e4860c6a63d4c7f5)
-
- Conflicts:
- src/librbd/ImageCtx.cc : trivial resolution
-
-commit 05734916ab119c6d3879c2ce2bc9f9581907861a
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Feb 5 11:28:50 2015 +0800
-
- librbd: Remvoe unused func ImageCtx::read_from_cache.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 101440a41253680770f94bc380af7072c7adaebf)
-
-commit 28838f20a722b72a6e926e53f104342d3b9f4791
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Feb 5 11:03:10 2015 +0800
-
- osdc: clean up code in ObjectCacher::Object::map_write
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 9f80c2909ace09cd51c24b49c98a093e0e864dca)
-
-commit 5c4f152efa8e8f57c59ea7decc05ae1a34f2a9ee
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Feb 5 10:13:06 2015 +0800
-
- osdc: Don't pass mutex into ObjectCacher::_wait_for_write.
-
- Because the mutex is the same as ObjectCacher::lock.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit d7cf7aeea5cba1ffa8e51ff1ad2424b1ec161a12)
-
-commit 86e7698a19745c26b9d3e7a12a16c87ea9a5d565
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Mar 2 11:23:44 2015 +0800
-
- osdc: After write try merge bh.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 1a48a8a2b222e41236341cb1241f0885a1b0b9d8)
-
-commit c96541ad19fb142ed31ff3006f1dc25e0c1de86c
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Mar 2 11:36:24 2015 +0800
-
- osdc: Make last missing bh to wake up the reader.
-
- Avoid wakeup early and wait again.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit d582bda090b3339d03e25b0e6d0971ad0267f476)
-
-commit 4135b9a2d199583685a1bae3713347dcc1b872e6
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Fri Feb 6 09:53:36 2015 +0800
-
- osdc: For trust_enoent is true, there is only one extent.
-
- Now the judgement only in conditon which will return -ENOENT.
- But o->exists don't depend on the extent size. It only depend on
- trust_enoent. So move this judgement at the first of _readx().
- Make this bug ASAP occur.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 2449fddc13b5ce8bbf1bb4ecaa5d6937f54e54d1)
-
-commit 81376b6a1a5db9f8b45c58ea318ec924e932d990
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Feb 3 14:46:39 2015 +0800
-
- osdc: In _readx() only no error can tidy read result.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 540346d4a901d8041c9fd74641c98cdfd2e1ab32)
-
-commit e6bdae903cdd2f702829adc31fa9a31c239a3b87
-Merge: 317770d cdde626
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Sep 4 15:38:43 2015 -0600
-
- Merge pull request #5223 from SUSE/wip-12305-hammer
-
- ceph.spec.in: running fdupes unnecessarily
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit e80bd0a2a39afdabcb134100e0cc8fa74cbd14c2
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Jun 25 18:28:50 2015 +0200
-
- rgw: send Content-Length in response for GET on Swift account.
-
- Fixes: #12158
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5f47b11791cd46ce2771046e4888575869cc9685)
- Conflicts:
- src/rgw/rgw_rest_swift.cc
-
-commit 2e542456dee6c30b3200e9830d4ccae4b0325388
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jun 22 13:51:49 2015 +0200
-
- rgw: force content_type for swift bucket stats request
-
- Fixes: 12095
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit da259e4da1329e1e448d75c48c6ee3d1318e19b2)
-
-commit 5d57b63c32e43000ff95c2d8ce34347ed0579a8a
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 13 15:02:03 2015 +0200
-
- rgw: we should not overide Swift sent content type
-
- Fixes: #12363
- backport: hammer
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 423cf136f15df3099c9266f55932542d303c2713)
-
-commit b8aafbc6f9f80f029606a577d73f8685a80225b8
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Jun 23 11:54:09 2015 +0200
-
- rgw: enforce Content-Type in Swift responses.
-
- Swift sends Content-Type HTTP header even if the response
- doesn't contain body. We have this behaviour implemented
- until applying some changes in end_header() function.
- Unfortunately, lack of Content-Type causes early exits in
- many Tempest's tests for Swift API verification.
-
- Fixes: #12157
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 106aeba206736d4080326f9bc191876bed63370b)
-
-commit 143cfc331efcc7bed8b1cf90d7e3188d0ac7604b
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Apr 21 12:31:19 2015 +0200
-
- rgw: force content-type header for swift account responses without body
-
- This regression was introduced in commit 4cfeca03ade21861ab70ca759f94eb244c16cb39
-
- Fixes: #11438
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 009664e560ee37ef6dc170a0155d6c749e151b06)
-
-commit b5420d6f1a6a1da34c7bba339e6763c4b369d349
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Apr 9 20:04:59 2015 +0200
-
- rgw: shouldn't return content-type: application/xml if content length is 0
-
- Fixed: #11091
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 5cc92bb27cfbaee4af24dc312c9b98331f899794)
-
-commit 317770dd39510221cbc0fc7ee50960992137eaaf
-Merge: 6b02be7 6b36514
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Sep 3 12:20:38 2015 +0200
-
- Merge pull request #5716 from dachary/wip-12851-hammer
-
- Ensure that swift keys don't include backslashes
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 6b02be7395ad8f41f70458e7bd11630ddd498cc5
-Merge: fa74ea1 f1c7c62
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Sep 3 12:11:24 2015 +0200
-
- Merge pull request #5717 from dachary/wip-12591-hammer
-
- rgw: create a tool for orphaned objects cleanup
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit fa74ea10ac25fe93f359ccf0fd036d567e9610fe
-Merge: 011e4c5 a478385
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 23:35:58 2015 +0200
-
- Merge pull request #5755 from dachary/wip-12589-hammer
-
- ceph-disk zap should ensure block device
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 011e4c58ffb41aa5ae3240a40cbeba8266b89001
-Merge: e7c2269 b80859e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 23:22:59 2015 +0200
-
- Merge pull request #5732 from ceph/wip-11455-hammer
-
- rgw: init some manifest fields when handling explicit objs
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e7c2269dbebd5337ae5aad127d6ddaa4260a8f53
-Merge: 92b641f da00bed
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 23:19:02 2015 +0200
-
- Merge pull request #5721 from dachary/wip-12853-hammer
-
- RGW Swift API: X-Trans-Id header is wrongly formatted
-
- Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
-commit 92b641f301df33a38ccfcf018c5f7657db8548ae
-Merge: 845d2ae 3ab5d82
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 23:08:24 2015 +0200
-
- Merge pull request #5498 from ceph/wip-12432-hammer
-
- rgw: HTTP return code is not being logged by CivetWeb
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 836f7636f76b2778812e4fa055206a887fd27dad
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jul 21 11:31:12 2015 -0700
-
- OSD: break connection->session->waiting message->connection cycle
-
- Fixes: #12338
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 7f15e22be291df139c85909b96b2366f6dbadf37)
-
-commit 77624aff03a8df7805ac0c1c6a7a2085f41fb6a3
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 9 10:46:10 2015 -0400
-
- osd/PGLog: dirty_to is inclusive
-
- There are only two callers of mark_dirty_to who do not pass max,
- and they are both in the merge_log extending tail path. In that
- case, we want to include the last version specified in the log
- writeout. Fix the tail extending code to always specify the
- last entry added, inclusive.
-
- Fixes: #12652
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f0ca14df0641daa04eee39d98d8bd0faf46e4e6d)
-
-commit aa003736d2aeea937ce0d8663b159cf06b2dda3e
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Mon Aug 24 23:02:10 2015 +0800
-
- common: fix code format
-
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 15e5ebe14787bbbc6b906d72ccd2d418d762cfad)
-
-commit aab35da90d7d50750fda6355d5a124a45d66f1c5
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Mon Aug 24 22:59:40 2015 +0800
-
- test: add test case for insert empty ptr when buffer rebuild
-
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 2d2f0eb338906742d516a2f8e6d5d05505be8f47)
-
-commit 2b0b7ae6443eeca271813415a91ab749c886fdf0
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Mon Aug 24 23:01:27 2015 +0800
-
- common: fix insert empty ptr when bufferlist rebuild
-
- Fixes: #12775
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit fb1b6ddd7bfe40d4a38d5ec59b1c3f59f2a83f23)
-
- Conflicts:
- src/common/buffer.cc : because invalidate_crc did not exist
- in hammer
-
-commit 845d2aed9e9a9893678226b8661fbd8ff87c090f
-Merge: a6517d2 3396a96
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 12:00:11 2015 +0200
-
- Merge pull request #5527 from SUSE/wip-12585-hammer
-
- OSD crash creating/deleting pools
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 2348a5b5c96d065fbc2188bd9e8e7ff20c75ecaa
-Author: Guang G Yang <yguang@renownedground.corp.gq1.yahoo.com>
-Date: Wed Jul 29 21:47:17 2015 +0000
-
- osd: copy the RecoveryCtx::handle when creating a new RecoveryCtx instance from another one
-
- Fixes: 12523
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit 6ab9efe799b947f2ef6113df8cc542c73760107d)
-
-commit bf72785e1e11b18df9a03ebfa7c284fe4f43eaa0
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Aug 24 15:40:39 2015 -0700
-
- config: skip lockdep for intentionally recursive md_config_t lock
-
- lockdep can't handle recursive locks, resulting in false positive
- reports for certain set_val_or_die() calls, like via
- md_config_t::parse_argv() passed "-m".
-
- Fixes: #12614
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 415226995ebe841cc9e8639a3233150a75aecaed)
-
-commit c94fd926239a31dea1389a760f55f332a9b6814a
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jul 23 16:36:19 2015 -0700
-
- osd: Keep a reference count on Connection while calling send_message()
-
- Fixes: #12437
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a140085f467889f2743294a3c150f13b62fcdf51)
-
-commit 059bf98d40fa7e1eddb7aef2ecfdfb6bc96c14fb
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jul 7 08:49:54 2015 -0700
-
- WBThrottle::clear_object: signal if we cleared an object
-
- Fixes: #12223
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8447b08d60d5cf7dce20f8b839cc2cb5a93782de)
-
-commit a478385334323071b5cfa4d546eef5b0ef43dce7
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sun May 31 19:42:45 2015 +0200
-
- ceph-disk: always check zap is applied on a full device
-
- zap only makes sense on a full device and this is verified for
-
- ceph-disk prepare --zap-disk
-
- but not for
-
- ceph-disk zap
-
- Unify the two and add a test to check that it fails as expected when
- trying to zap a directory.
-
- http://tracker.ceph.com/issues/11272 Fixes: #11272
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 8e1bcf21f090fc98ac9b495d76614e3012f5872a)
-
- Conflicts:
- src/test/ceph-disk.sh : trivial resolution
-
-commit e471c5dc16847ba35d3c3c8c74da1bf7c4c946e0
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Wed Jul 8 10:35:49 2015 +0800
-
- librados: Make librados pool_create respect default_crush_ruleset
-
- Make pool_create in librados use the osd_pool_default_crush_replicated_ruleset
-
- Fixes: #11640
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit da96a89033590277460aef1c80f385bd93d625e1)
-
-commit a6517d286b59eac283d7bfd04b620f5b859657b6
-Merge: a89c173 35fa47a
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Sep 2 02:19:26 2015 +0200
-
- Merge pull request #5551 from ceph/wip-corpus-hammer
-
- ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 35fa47a117a3e8d185f7ebe02eea5671f8229427 (refs/remotes/me/wip-corpus-hammer, refs/remotes/gh/wip-corpus-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 1 17:44:06 2015 -0400
-
- ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit b80859e2b2efc2402dc62aa319e40319863586f7 (refs/remotes/gh/wip-11455-hammer)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Aug 26 14:34:30 2015 -0700
-
- rgw: init some manifest fields when handling explicit objs
-
- Fixes: #11455
- When dealing with old manifest that has explicit objs, we also
- need to set the head size and head object correctly so that
- code that relies on this info doesn't break.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d7bf8cb594e5276d1c80544f5ec954d52b159750)
-
-commit f47ba4b1a1029a55f8bc4ab393a7fa3712cd4e00
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Jul 16 18:02:02 2015 +0200
-
- mon: test the crush ruleset when creating a pool
-
- We want to fix the following scenario:
-
- * an erasure code plugin (or another part of the code) creates a
- ruleset
- * the ruleset crashes during mapping (for whatever reason)
- * ceph osd pool create uses the bugous ruleset
- * the monitors try to do mapping a crash
-
- Having a bugous ruleset in the crush map is very difficult prevent. The
- catastrophic event of using it with a newly created pool can however be
- prevented by calling the CrushTester just before creating the pool and
- after all implicit or explicit crush ruleset creation happened.
-
- http://tracker.ceph.com/issues/11814 Fixes: #11814
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit f1e86be589803596e86acc964ac5c5c03b4038d8)
-
- Conflicts:
- src/test/mon/osd-crush.sh
- removed the run_mon because in hammer it is shared
- between all tests
- src/mon/OSDMonitor.cc
- prepare_new_pool changed stringstream to *ostream
-
-commit b58cbbab4f74e352c3d4a61190cea2731057b3c9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat May 30 12:40:26 2015 +0200
-
- erasure-code: set max_size to chunk_count() instead of 20 for shec
-
- See 8b64fe93b088a3a33d357869c47e6bf928c3f0e4 for a detailed explanation.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a44499f7e6609d9a32254dc6f4303122de74db31)
-
-commit 6f0af185ad7cf9640557efb7f61a7ea521871b5b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Feb 26 21:22:31 2015 +0200
-
- vstart.sh: set PATH to include pwd
-
- ceph-mon needs crushtool to be in PATH. Don't set if it is run
- from ceph_vstart_wrapper, which already sets it as it needs.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e08bccf377292d72463796ae1dff5d8be40d88e9)
-
-commit a89c1731e0e327acdb876d39df574e27379aaa1e
-Merge: c3a2bf3 0fde3a2
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Aug 31 09:41:33 2015 +0100
-
- Merge pull request #5365 from dachary/wip-12491-hammer
-
- buffer: critical bufferlist::zero bug
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit c3a2bf3f6b1d1bf416fa04df1629630abe2fe563
-Merge: 0a44eb1 4457d3e
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 19:58:25 2015 +0200
-
- Merge pull request #5369 from dachary/wip-12498-hammer
-
- get pools health'info have error
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 0a44eb12fc7d2ef902f1999e37abae0f11511d66
-Merge: dfcdba7 9916d37
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 19:52:52 2015 +0200
-
- Merge pull request #5370 from dachary/wip-12496-hammer
-
- pgmonitor: wrong at/near target max“ reporting
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit dfcdba75f310eaa2cfc5ae97ba3093afe1198737
-Merge: 69a9a4c b8176d0
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 19:44:56 2015 +0200
-
- Merge pull request #5378 from dachary/wip-12394-hammer
-
- Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 69a9a4cbf28c87fcd68f6c6c0c09f7a6d95ab003
-Merge: d3b160e 42bff0b
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 19:44:26 2015 +0200
-
- Merge pull request #5372 from dachary/wip-12493-hammer
-
- the output is wrong when runing ceph osd reweight
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit da00bedbc2f5d2facb9472078fd6cdd7260492ac
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Thu Aug 6 15:52:58 2015 +0200
-
- rgw: rework X-Trans-Id header to be conform with Swift API.
-
- Fixes: #12108
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit d1735a4e8ea2056d333a5001a7a410fc03fe1b9e)
-
-commit 9937c818f1073bceffcf5811c7cc543b9043e646
-Author: Abhishek Dixit <dixitabhi@gmail.com>
-Date: Mon Jun 8 22:59:54 2015 +0530
-
- Transaction Id added in response
-
- Signed-off-by: Abhishek Dixit dixitabhi@gmail.com
-
- (cherry picked from commit b711e3124f8f73c17ebd19b38807a1b77f201e44)
-
- Conflicts:
- src/rgw/rgw_rest.cc
- the prototype of the end_header( function
- in the context of the diff changed
-
-commit f1c7c629f2a7baf87a3d25d68b7a40fb3b2f6c49
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jun 29 15:35:04 2015 -0700
-
- rgw: api adjustment following a rebase
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7cf1f376e7dbc98a44f4a8e78bfa11f84291a941)
-
-commit 85911df5226dccfd2f1806a204a23eae3966eee7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jun 29 15:34:44 2015 -0700
-
- rgw: orphans, fix check on number of shards
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 47edec359be2a4d230a4a54c0c670d0aa711fa1e)
-
-commit c1cf7dfb672032012889840fb4462b1a076f34c0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jun 29 15:34:11 2015 -0700
-
- rgw: orphans, change default number of shards
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5528f21d0861d42378a8eb10759a1e55ddd66c09)
-
-commit bb1d4cc3a3e9af3bf8cd8fd80085fbbbaeb8b89f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 5 14:43:05 2015 -0700
-
- rgw: change error output related to orphans
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit cac57caf639236adc9a641a85352eb729b58725a)
-
-commit 2e0f6fe98787e1f3ea7d107a814caadce7ee5f23
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 4 17:02:29 2015 -0700
-
- rgw: orphan, fix truncated detection
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d8ce04db8542dae0027423f3c50355e5de74dc9a)
-
-commit 1bfebefba2e09448d28853b34415d3f65e323c76
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 4 16:32:57 2015 -0700
-
- radosgw-admin: simplify orphan command
-
- No need for --init-search
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4980cbd04ff650d79a033bc5298e6c1abe985133)
-
-commit f244b159ac8793c11a5707ea0b104b3180efb58f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 4 15:24:00 2015 -0700
-
- radosgw-admin: stat orphan objects before reporting leakage
-
- We don't want to report new objects as leaked, because they might just
- be written, and waiting to be linked to a new object. The number of
- seconds prior to the job initialization can be cofigured through
- --orphan-stale-secs (by default it's 24h).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 66b0090023859d97da2bbaca698b6a50c225abd0)
-
-commit f80e2b2bc8879d1cc40338816196f51378aaa785
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 4 14:39:20 2015 -0700
-
- radosgw-admin: orphans finish command
-
- A command to remove orphans data
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 55d6f5ecf18f532c7f056f8b60c101843594b00c)
-
-commit 88d32c641a06823df93f0e3fae640a880778e1e4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat May 2 17:28:30 2015 -0700
-
- rgw: cannot re-init an orphan scan job
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f8993102731518153bb18eb74c3e6e4943a5dbac)
-
-commit 80a40342b6a0d9e7a47ca4b672901315246385df
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat May 2 16:38:08 2015 -0700
-
- rgw: stat_async() sets the object locator appropriately
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d7d117121858155acc8548908e9459a48c676dd1)
-
-commit 0082036348e0463e42520504466961eb2bd77602
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat May 2 16:34:09 2015 -0700
-
- rgw: list_objects() sets namespace appropriately
-
- list_objects() now uses parse_raw_oid(), so that it can set the correct
- namespace. It only affects users of the function that want to get all
- objects in bucket, regardless to the namespace associated with it. This
- makes it so that the orphan code actually works now with namespaced
- objects, and with special named objects (namely, start with underscore).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 20bd490bebf9be3553d4e25322c9544b0b090086)
-
-commit 1c3707291e83771ca1d5cd24ce445f723006b744
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 1 17:23:44 2015 -0700
-
- rgw: modify orphan search fingerprints
-
- Now works with multipart uploads.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fa61ea2ccc94f04afb39868ac34abc264806d8d4)
-
-commit ef81367a1eaeb7778dc60a668b9fe2f6a77e06ff
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 1 15:17:10 2015 -0700
-
- rgw: compare oids and dump leaked objects
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1bc63d98ff8a3aa180065153690b4f8a73658b79)
-
-commit f4d0544e63f68fa94b21fda71c0b78edd05038a1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Apr 30 16:17:54 2015 -0700
-
- rgw: keep accurate state for linked objects orphan scan
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f19b2f087cfb5a89edf3b19487c0df3a214e350f)
-
-commit 748ea57cfeca7b295afca5b8126d454eb85550c7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 29 17:12:34 2015 -0700
-
- rgw: iterate over linked objects, store them
-
- only keep part of the oid name if it is in a namespace.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 75902fdb12ce0413d3beb455df47134f3d7386e7)
-
-commit 6c6aa5ddf38102012e61f79f5234b9647d42b461
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 29 17:12:00 2015 -0700
-
- rgw: add rgw_obj::parse_raw_oid()
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7c1aa8373a090d5c1b2aa121582547723120a079)
-
-commit 62d562d76e0456cc3c735c6708531c7deb2874da
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 29 14:50:15 2015 -0700
-
- rgw: iterate asynchronously over linked objects
-
- Read objects manifest. So that we could keep the relevant info later.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 05a953d965a0a6a0e9feddaa62f7429e154e828e)
-
-commit 00ecf2d0a895407bc8ec0e55e1b1b0f47a1aa96f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 29 14:15:33 2015 -0700
-
- rgw: async object stat functionality
-
- An async functionality that stats object.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 13adf3cf4f5fd8a0feb7cc1d7a4ee4ded9f573db)
-
-commit 7d1cc48ba32e8bc732c43ecb539312c6bfcc0f80
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 28 16:45:49 2015 -0700
-
- rgw-admin: build index of bucket indexes
-
- for the orphan search tool
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 16a2dbd838b69fb445c06122a68fc65ec3a7b3de)
-
-commit c1b0e7a985cc9e742dcef4c8c427c57a2f58fa43
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Apr 25 09:37:53 2015 -0700
-
- rgw: initial work of orphan detection tool implementation
-
- So far doesn't do much, iterate through all objects in a specific pool
- data, store it in a sharded index.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 767fc29aa62a0a4e4dd8a78785576e8f1b44ee5b)
-
-commit b16129c3393d6e301b4af5203ffa1c6d8dfdda38
-Author: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
-Date: Wed Apr 29 13:35:29 2015 +0530
-
- Avoid an extra read on the atomic variable
-
- Signed-off-by: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
- (cherry picked from commit 7476e944af049aefdb8871cce62883b86f6b6f8d)
-
-commit 1f6916d5a9b0ebe5181b801c4c381a699883bb09
-Author: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
-Date: Wed Apr 8 18:53:14 2015 +0530
-
- RGW: Make RADOS handles in RGW to be a configurable option
-
- Having a configurable number of RADOS handles is resulting
- in significant performance boost for all types of workloads.
- Each RGW worker thread would now get to pick a RADOS handle
- for its lifetime, from the available bunch.
-
- Signed-off-by: Pavan Rallabhandi <pavan.rallabhandi@sandisk.com>
- (cherry picked from commit b3c3a24fe9c0fbb2bdbbccb08b40efc1dca207cc)
-
-commit d3b160ecbe181c2b969a14825cf314a056630188
-Merge: 7357659 695f782
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 15:50:03 2015 +0200
-
- Merge pull request #5374 from dachary/wip-12487-hammer
-
- ceph osd crush reweight-subtree does not reweight parent node
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7357659b59d9bf3522bf664f1a3da7475a7c8a49
-Merge: 8f559d5 8a2ad05
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 15:49:41 2015 +0200
-
- Merge pull request #5380 from dachary/wip-12390-hammer
-
- PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a13c7fd7c39e83072f2975477e1cdcfe079fb041
-Author: Ruifeng Yang <149233652@qq.com>
-Date: Sat Aug 1 17:39:17 2015 +0800
-
- rgw:the arguments 'domain' should not be assigned when return false
-
- Hostnames: [B.A]
- Inputs: [X.BB.A]
- Return: [false]
- Output: [B.A] it is wrong.
-
- Fixes: #12629
- Signed-off-by: Ruifeng Yang <149233652@qq.com>
- (cherry picked from commit 9420d24c21b4e06d62f356637599c6ec8e7e3e4d)
-
-commit 6acf36f8851b8a369949f0fad9d0156af7dde20f
-Author: Ruifeng Yang <149233652@qq.com>
-Date: Sun Aug 2 16:16:05 2015 +0800
-
- rgw:segmentation fault when rgw_gc_max_objs > HASH_PRIME
-
- obj_names[] is index out of bounds when rgw_gc_max_objs > HASH_PRIME
-
- Fixes: #12630
- Signed-off-by: Ruifeng Yang <149233652@qq.com>
- (cherry picked from commit e3147b8ddcaafafde9ce2029f7af5062e22076d3)
-
-commit 6b365144862cbd387d8b931939a3dc2cfe17bbbd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jul 20 20:27:33 2015 -0700
-
- rgw: avoid using slashes for generated secret keys
-
- Just use plain alphanumeric characterset.
-
- Fixes: #7647
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 3f04a6126fdbfb93304f798da3775c0eec9b7d44)
-
-commit 8f559d58b42b91f070bfa590d9c33e9a156e0066
-Merge: d94e764 931ffe3
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Aug 30 08:36:37 2015 -0400
-
- Merge pull request #5366 from dachary/wip-12303-hammer
-
- arm: all programs that link to librados2 hang forever on startup
-
-commit 8ba6b2f628a0f80964afbf4a83b61c4eee9c78ce
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 30 14:47:15 2015 -0700
-
- rgw: url encode exposed bucket
-
- Fixes: #12537
- Don't send the bucket name back without url encoding it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ad5507fe0bf72ed5bdf8353e315cc9092c740144)
-
-commit d94e7642d0b0213a4b650a5acffa050d042087eb
-Merge: 11a80d8 6417e8e
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:41:01 2015 +0200
-
- Merge pull request #5202 from SUSE/wip-12293-hammer
-
- ceph.spec.in: rpm: cephfs_java not fully conditionalized
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 11a80d8bec6ff704e794a2995d653cd5d5c1c979
-Merge: a792ae6 3728477
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:40:48 2015 +0200
-
- Merge pull request #5203 from SUSE/wip-11997-hammer
-
- ceph.spec.in: rpm: not possible to turn off Java
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a792ae65e2e03e1ca8804380cdbbfa1aec7a2123
-Merge: f7e76d2 8f78001
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:40:30 2015 +0200
-
- Merge pull request #5204 from SUSE/wip-11629-hammer
-
- ceph.spec.in: SUSE/openSUSE builds need libbz2-devel
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f7e76d2c9e681b3c5775f74c582830f546359703
-Merge: d1feb04 4eb58ad
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:40:09 2015 +0200
-
- Merge pull request #5207 from SUSE/wip-12267-hammer
-
- ceph.spec.in: 50-rbd.rules conditional is wrong
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d1feb0415b3b3dc9c5b003d8528079ccccd0729f
-Merge: 2dca2ec 8b576bd
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:39:57 2015 +0200
-
- Merge pull request #5216 from SUSE/wip-12269-hammer
-
- ceph.spec.in: ceph-common needs python-argparse on older distros, but doesn't require it
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2dca2ece0478972e89ed6611a15892ad9e449cc8
-Merge: 64fafc9 0818e9f
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:39:31 2015 +0200
-
- Merge pull request #5264 from SUSE/wip-12361-hammer
-
- ceph.spec.in: snappy-devel for all supported distros
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 64fafc95785024421cbb7ccae41ed4276eeb8fe9
-Merge: 4675971 add0f1e
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:39:14 2015 +0200
-
- Merge pull request #5368 from dachary/wip-12331-hammer
-
- ceph: cli throws exception on unrecognized errno
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4675971ce3331f1285398d1556a594f671e489c0
-Merge: 53cdcf2 e004941
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:39:00 2015 +0200
-
- Merge pull request #5371 from dachary/wip-12494-hammer
-
- ceph tell: broken error message / misleading hinting
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 53cdcf20482823cdb8682dde89706d6f21d8d0d2
-Merge: 362874c eccf369
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:38:43 2015 +0200
-
- Merge pull request #5385 from dachary/wip-12501-hammer
-
- error in ext_mime_map_init() when /etc/mime.types is missing
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 362874ca39e32c3bc5ee13b13f905fd7693d9449
-Merge: 2044f3c 8804b3f
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:38:29 2015 +0200
-
- Merge pull request #5411 from SUSE/wip-12446-hammer
-
- ceph.spec.in: radosgw requires apache for SUSE only -- makes no sense
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2044f3cd7b220cc642245e7ca93c21a17cc8c536
-Merge: 260e24b a785193
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:38:13 2015 +0200
-
- Merge pull request #5412 from SUSE/wip-12448-hammer
-
- ceph.spec.in: useless %py_requires breaks SLE11-SP3 build
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 260e24bba0e83dfa61d25ac0489f656244211db4
-Merge: dc944fb b575ecc
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:30:18 2015 +0200
-
- Merge pull request #5318 from ceph/wip-12236-hammer
-
- Possible crash while concurrently writing and shrinking an image
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit dc944fbbedcee56dfbd9d4f5ac3c38d15a6621ea
-Merge: a8c1b4e 92272dd
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:30:01 2015 +0200
-
- Merge pull request #5319 from ceph/wip-12235-hammer
-
- librbd: deadlock during cooperative exclusive lock transition
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a8c1b4e7436832ed3040d5a90df713ef6029cb69
-Merge: a39aeee e971820
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 13:29:26 2015 +0200
-
- Merge pull request #5296 from ceph/wip-12345-hammer
-
- librbd: correct issues discovered via lockdep / helgrind
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a39aeeedf07518d65c9944476b98a0788585f5c1
-Merge: 6a949e1 153744d
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 12:14:22 2015 +0200
-
- Merge pull request #5559 from ceph/wip-12682-hammer
-
- object_map_update fails with -EINVAL return code
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6a949e10198a1787f2008b6c537b7060d191d236
-Merge: 1e423af 4faa8e0
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 12:11:10 2015 +0200
-
- Merge pull request #5468 from ceph/wip-12577-hammer
-
- osd: fix repair when recorded digest is wrong
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1e423afd3c7e534e302dbea0798a47f82acec141
-Merge: 574932b 0ca93db
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 12:06:59 2015 +0200
-
- Merge pull request #5376 from dachary/wip-12433-hammer
-
- Show osd as NONE in ceph osd map <pool> <object> output
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 574932b2f438787f1a330a271644d9787eecbb63
-Merge: ed162d4 d08db7a
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 30 11:54:55 2015 +0200
-
- Merge pull request #5359 from ceph/wip-11470.hammer
-
- mon: PaxosService: call post_refresh() instead of post_paxos_update()
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ed162d498051ac237be33ac6a6764ae0c61d57a6
-Merge: 41a245a bee8666
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Aug 28 14:43:31 2015 -0400
-
- Merge pull request #5691 from jdurgin/wip-10399-hammer
-
- is_new_interval() fixes
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 0bc909e54b0edd8a32a3e7db16877f1d875c3186
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 10 04:25:03 2015 -0700
-
- mon: add a cache layer over MonitorDBStore
-
- the cache of of leveldb does not perform well under some condition,
- so we need a cache in our own stack.
-
- * add an option "mon_osd_cache_size" to control the size of cache size
- of MonitorDBStore.
-
- Fixes: #12638
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5e99a578050976ca22b549812ac80d494fe7041d)
-
- Conflicts:
- src/mon/OSDMonitor.h
- minor differences in OSDMonitor ctor
-
-commit bee86660377cfaa74f7ed668dd02492f25553ff9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 21 11:32:39 2015 -0400
-
- Objecter: pg_interval_t::is_new_interval needs pgid from previous pool
-
- When increasing the pg_num of a pool, an assert would fail since the
- calculated pgid seed would be for the pool's new pg_num value instead
- of the previous pg_num value.
-
- Fixes: #10399
- Backport: infernalis, hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f20f7a23e913d09cc7fc22fb3df07f9938ddc144)
-
- Conflicts: (hobject_t sort order not backported, trivial resolution)
- src/osdc/Objecter.cc
- src/osdc/Objecter.h
-
-commit b5418b9a7138b45b5fe4f24cfb679c2abb30ab71
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue May 26 12:35:11 2015 -0700
-
- osd_types::is_new_interval: size change triggers new interval
-
- Fixes: 11771
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit ff79959c037a7145f7104b06d9e6a64492fdb95f)
-
-commit f0283890d22e8d5c2210d565077ad3af1921f098 (refs/remotes/gh/liewegas-wip-hammer-feature-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 27 14:09:50 2015 -0400
-
- include/ceph_features: define HAMMER_0_94_4 feature
-
- This is to constrain upgrades past hammer to version that include
- the appropriate compatibility fixes (e.g., hobject_t encoding).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2868b49c0e39fdc7ae72af81962370c4f95a859e)
-
- # Conflicts:
- # src/include/ceph_features.h
-
-commit 41a245aff77dde8a2ab212f9c91a73a23a77c40d
-Merge: 95cefea 65b380f
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Aug 27 13:07:29 2015 -0400
-
- Merge remote-tracking branch 'gh/wip-12536-hammer' into hammer
-
- This includes wip-osd-compat-hammer.
-
-commit 65b380f7f28a36bb51a6771a2fd9b657ea2848ba (refs/remotes/gh/wip-12536-hammer)
-Merge: 00d802d 9b91adc
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Aug 19 09:52:02 2015 -0400
-
- Merge remote-tracking branch 'gh/wip-osd-compat-hammer' into wip-12536-hammer
-
-commit 153744d7c596705c4f92bee5e827846b46c80141
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 10 09:39:50 2015 -0400
-
- tests: increase test coverage for partial encodes/decodes
-
- Multiple combinations of offsets/lengths are now tested when
- performing partial encodes/decodes of the bit vector.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e145f714ac9b2d599b45a058c6b93595e38f424)
-
-commit fca78765366f3ac365cfa98224aca5fb79b2a7fe
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 10 09:34:42 2015 -0400
-
- common: bit_vector extent calculation incorrect for last page
-
- It's highly probable that the last page in the bit vector will not
- be a full page size. As a result, the computed extents will extend
- beyond the data portion of the bit vector, resulting in a end_of_buffer
- exception.
-
- Fixes: #12611
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c6d98992691683524d3d96def83a90a6f5fe7f93)
-
-commit 3396a969741f74e5b1f55d8d7af258493ca26478
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Jul 30 14:20:56 2015 +0100
-
- osd/OSDMap: handle incrementals that modify+del pool
-
- Because new_pools was processed after old_pools, if something
- was modified and then deleted in the same incremental
- map, then the resulting state would be a pool in the map
- that had no entry in pool_name.
-
- Fixes: #12429
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 8d4932e721e32a33c1bada54e11d4ecccd868618)
-
-commit 3ab5d82a1c09142267c27156b69a3117d30c5b7d (refs/remotes/gh/wip-12432-hammer)
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 22 10:01:00 2015 -0700
-
- rgw: set http status in civetweb
-
- Need to set the http status in civetweb so that we report it correctly.
- Fixes: #12432
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b8e28ab9f914bf48c9ba4f0def9a0deb9dbb93bc)
-
-commit 10a03839853246c535e639b6dc6cea45b8673642
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jul 31 11:03:29 2015 -0700
-
- civetweb: update submodule to support setting of http status
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 00d802d97ba5e1a8bde2414f8710494f15807fcd
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Dec 23 11:03:17 2014 -0800
-
- hobject_t: fix get_boundary to work with new sorting regime
-
- The hash is no longer the most significant field; set everything that is
- more significant, too.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 45281efad1ae6b2b5ddd5549c56dbdd46671e5c5)
-
-commit 9b91adc560c8dffc1f5f7470d28c25f448b2b619 (refs/remotes/gh/wip-osd-compat-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 4 13:21:50 2015 -0400
-
- mon: disallow post-hammer OSDs if there are up pre-hammer OSDs
-
- Force *all* OSDs to upgrade to hammer before allowing post-hammer
- OSDs to join. This prevents any pre-hammer OSDs from running at
- the same time as a post-hammer OSD.
-
- This commit, as well as the definition of the sentinal post-hammer
- feature, should get backported to hammer stable series.
-
- Backport: hammer
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e38d60e94503c7e8511a60a8dceceb3cd39c2bd8)
-
- # Conflicts:
- # src/mon/OSDMonitor.cc
-
-commit 8a559c1e80bb7c70e13c46f1900896c9b8fcd9a9
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 4 13:16:11 2015 -0400
-
- include/ceph_features: define MON_METADATA feature
-
- This was added in master in 40307748b9b8f84c98354a7141da645a3c556ba9. We
- define it but notably do not support it!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 4faa8e04069417a6e2a6c4ea5c10b54d76aa00c4 (refs/remotes/gh/wip-12577-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 27 10:17:12 2015 -0700
-
- osd: include newlines in scrub errors
-
- We may log more than one of these in a scrubmap; make sure they are
- not concatenated.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2b3dd1bb7ab360e8f467a47b7ce3a0e4d3a979b2)
-
-commit 455eb2a89197e9609c5bb510112d661d388b4c85
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 27 10:04:00 2015 -0700
-
- osd: fix condition for loggin scrub errors
-
- We may have an error to log even though the authoritative map is empty:
- when we have a digest that doesn't match all replicas.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d23766be902080ffb29528acb5a00d70beb97a9f)
-
-commit 67e7946ce8e28f00db9588bed670ef5141268f41
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 27 10:03:22 2015 -0700
-
- osd: fix fallback logic; move into be_select_auth_object
-
- The fallback behavior was printing a promising message but then doing
- a 'continue' and not actually scrubbing the object. Instead, fall back to
- a less-bad auth inside be_select_auth_object.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b597db59fedc9a96dbe4b37f03b819dcf8fdb1bb)
-
-commit 0f57c7017a98f7e416a160375b8b80355b8e0fc3
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 27 09:34:44 2015 -0700
-
- osd: log a scrub error when we can't pick an auth object
-
- If we really can't find a suitable auth, log an error.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a476d8f3903ca78b5cf36d63059f13cb5268efe5)
-
-commit d4f4c5c4334add6acfc66407c2383d01094d384d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 27 10:20:23 2015 -0700
-
- osd: repair record digest if all replicas match but do not match
-
- If the recorded digest does not match the replicas, and all replicas
- match, then (on repair) fix the recorded digest.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit f581fecd8a16b9250fa96beec5aa26074f401028)
-
-commit acfed6b5eae764d381c88ed7d3f4942c61191127
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 26 13:52:20 2015 -0700
-
- osd: move recorded vs on disk digest warning into be_compare_scrubmaps
-
- This is a better place for it. While we are here, change the wording to
- clearly call out the 'recorded' digest (from object_info_t) vs the 'on
- disk' digest (what we observed during scrub).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit cf349ff35e9111ca52db1b0aad3753d0680b486d)
-
-commit 674029bc6c519e82011d1429ab5eddff9720c2dc
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 26 13:46:22 2015 -0700
-
- osd: be slightly paranoid about value of okseed
-
- The scrubber.seed value is set based on the peer feature; check for that
- too explicitly, and assert the scrubber.seed value matches.
-
- No change in behavior here.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e34d31b7a9a71132a17b95cf5ad60255ece60243)
-
-commit f2002b7fa2af2db52037da4c1cf66d405a4941e7
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 26 13:44:25 2015 -0700
-
- osd: be precise about "known" vs "best guess"
-
- We cannot assume that the auth info has the "known" digest; all replicas
- may have a matching digest that does not match the oi, or we may choose
- a different auth info for some other reason. Verify that the digest
- matches the oi before calling it "known".
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 546d1c7b8224d96d0cc93dc3c96f52787cd69413)
-
-commit 4e5d146ad36ef0380eb72e45dca651494658aeeb
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 26 13:24:11 2015 -0700
-
- osd: record digest if object is clean (vs entire scrub chunk)
-
- If an individual object is clean, record it in the missing_digest map.
- If not, leave it out. This lets us drop the old condition that only
- recorded any digests if the entire scrub chunk was clean.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c39e0e5f126028f552d410ab6924cac6e1f714fb)
-
-commit 1357ed1bd0e250b942bcba0346c97c24bb79a5d1
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 3 13:05:45 2015 -0400
-
- hobject_t: decode future hobject_t::get_min() properly
-
- The post-hammer wip-temp branch changed hobject_t::get_min() so that pool
- is INT64_MIN instead of -1 and neglected to deal with the encoding compat
- with older versions. Compensate on hammer by mapping INT64_MIN to -1
- locally. See commit ff99af38df830e215359bfb8837bf310a2023a4d.
-
- Note that this means upgrades from hammer to post-hammer *must* include
- this fix prior to the upgrade. This will need to be well-documented in the
- release notes.
-
- Master gets a similar fix so that they map our min value to the new
- INT64_MIN one on decode.
-
- Fixes: #12536 (for hammer)
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 6d01d6b700300841f49f288a89d514f26a4f94b1
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Jul 29 11:49:57 2015 -0700
-
- OSDMonitor::preprocess_get_osdmap: send the last map as well
-
- Fixes: #12410
- Backport: hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1320e29dfaee9995409a6d99b9ccaa748dc67b90)
-
-commit a7851933033473d11e69fa1f237c0ad8bbbd4a13
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 9 11:51:13 2015 +0200
-
- ceph.spec.in: drop SUSE-specific %py_requires macro
-
- %py_requires expands to
-
- BuildRequires: /usr/bin/python
- PreReq: python = 2.7
-
- The BuildRequires: is already provided, and the PreReq is wrong because
- e.g. SLE11-SP3 (a platform we are trying to support) has Python 2.6.
-
- http://tracker.ceph.com/issues/12351 Fixes: #12351
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit cbf6c7b46b42e163950bf7956e5b7565fca961c9)
-
-commit 8804b3f1ab5180c8a85b25b9b46b986fe7022868
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 16 15:16:22 2015 +0200
-
- ceph.spec.in: remove SUSE-specific apache2-mod_fcgid dependency
-
- This package is no longer required for RGW to work in SUSE.
-
- http://tracker.ceph.com/issues/12358 Fixes: #12358
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit f3f8d3660d0ece3139e5f3dc7881ccceadcf648d)
-
- Conflicts:
- ceph.spec.in
- In master, the "%if %else %endif" has been changed
- into two "%if %endif"s
-
-commit b575ecca9743ab08439bfe0b5283e483e2a799ce
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 23 14:20:16 2015 -0400
-
- tests: verify that image shrink properly handles flush op
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8dfcc72071d63c7867a5a59abe871cf5db673a0a)
-
-commit d4eb7bd63a5e46b790bad7001d2873c5c238cc90
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 23 14:18:20 2015 -0400
-
- librbd: invalidate cache outside cache callback context
-
- When shrinking an image, it's possible that the op flush callback
- will be from within the cache callback context. This would result
- in a deadlock when attempting to re-lock the cache lock in order to
- invalidate the cache.
-
- Fixes: #11743
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 726d699b7790c7e371279281ab32cd3aeb8ece7b)
-
-commit 92272dd676ebb67a3095ce3933cac24809b054da
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 15 11:18:29 2015 -0400
-
- librbd: don't cancel request lock early
-
- It's possible that a stale notice is received and will
- be discarded after the request lock has been canceled.
- This will stale the client.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d9dd5c5890029107df40ed438f23fb9865d7de29)
-
-commit 58ae92f1a716e1ffac6408793e19d47f99d63520
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 14 16:13:38 2015 -0400
-
- tests: new test for transitioning exclusive lock
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f97ce46ea4c9c7cdc6e37e3759871d5b41b25769)
-
-commit 7b21ccba7c2885027b1d345baaad08a978fbc72f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 13:31:50 2015 -0400
-
- tests: verify that librbd will periodically resend lock request
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d2a1c226ab3f7e202f62896f0c80c4cf3607cdaf)
-
-commit c95b37f48c129ef6780f67b326e97957f3771472
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 15 10:49:36 2015 -0400
-
- common: Mutex shouldn't register w/ lockdep if disabled
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 879b8a73e2452332b26b8f3428ff5e3e0af8ddad)
-
-commit 117205af89398457e197793505381622705488b2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 15 10:47:04 2015 -0400
-
- librbd: improve debugging output for ImageWatcher
-
- Include the instance pointer so that different images
- can be differentiated in the logs.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b951a7398e3e749cb64a3f6a604212a5627e82a0)
-
-commit 08ae01231754d3010c1ede762579cf75c1c7460d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 15 10:45:04 2015 -0400
-
- librados_test_stub: watcher id should be the instance id (gid)
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e1e561cc29043eb64dff8afb3a2c1ed77788e93)
-
-commit 704c0e09479d435ecbb84693a786c60694732b19
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 12:51:49 2015 -0400
-
- librbd: retry lock requests periodically until acquired
-
- If the exclusive lock owner acks the lock release request but crashes
- before it actually releases the lock, the requestor will wait forever.
- Therefore, after a certain timeout, retry the request again until it
- succeeds.
-
- Fixes: #11537
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 37c74e6e5274208d1b6efaf315afec03ea7eaa82)
-
-commit dbaaed9cf99121d0c97c22a695a7a6e872a11f48
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 12:35:36 2015 -0400
-
- librbd: don't hold owner_lock for write during flush
-
- The various IO callback codepaths will attempt to take
- the lock, which will result in deadlock since the flush
- cannot complete.
-
- Backport: hammer
- Fixes: #11537
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
- (cherry picked from commit 2b6d0633d5c89de3a557cdd72621dfc19f0540de)
-
-commit e9718201c6ed785c61077797a74ffda7e0438fb9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 22 15:30:02 2015 -0400
-
- lockdep: do not automatically collect all backtraces
-
- It is expensive to collect backtraces every time a lock is
- checked in order to provide cycle backtraces. The backtraces
- can be forced on for specific locks or globally via the new
- config option "lockdep_force_backtrace".
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7354d25f56c5e004f288febdee2b6961c069163b)
-
-commit 27f7042e923366c31748c4cc9992c1a8cb37b457
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 9 13:20:54 2015 -0400
-
- librbd: flush operations need to acquire owner lock
-
- Cache writeback operations will expect the owner lock to be held.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit adfa2e0070ccca7b6556d3bfc5fac7ce4d43a4d0)
-
-commit 5b39983025f510c3119ebb375870e7669be7ddd0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 21 00:13:31 2015 -0400
-
- librbd: avoid infinite loop if copyup fails
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 43e0e3cd63f0067217ed0811d73f6c546f3027be)
-
-commit 88b583b249a74a71bc87409015f7a8d85200e1bf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 12 10:19:48 2015 -0400
-
- librbd: flush pending ops while not holding lock
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3d5cef38c37e5dda6b23751ad560851f1304d86d)
-
-commit a88b180571cb481a31cb94c249a3b486220232fa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 12 10:07:21 2015 -0400
-
- tests: fix possible deadlock in librbd ImageWatcher tests
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 742a85d667b26b3490d96270b5c500b08f2a5283)
-
-commit 321eb8d1c3f7d553addb780928e201acf5091132
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 11 13:59:49 2015 -0400
-
- tests: enable lockdep for librbd unit tests
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 45cb9cb5980e90235b8244d0d61ece40bde4784a)
-
-commit bfe5b90921a3faaad0533388cb150cea20f47ae9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 14:17:37 2015 -0400
-
- librbd: owner_lock should be held during flush request
-
- Flush might result in the cache writing out dirty objects, which
- would require that the owner_lock be held.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c9142fe35372cf69b7a56f334622a775a6b7c43f)
-
-commit 1e84fb05f48c146cc9d2d090be8c2d355326938b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 14:06:16 2015 -0400
-
- osdc: ObjectCacher flusher might needs additional locks
-
- librbd requires the ObjectCacher flusher thread to acquire
- an additional lock in order to maintain lock ordering
- constraints.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a38f9e5104a6e08e130dc4f15ad19a06d9e63719)
-
-commit 506a45a906024d4bb5d3d4d6cc6cbb9eec39c5f2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 16:11:03 2015 -0400
-
- librbd: fix recursive locking issues
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1b57cc1da7a51e6f8ffea689b94ef843732c20a4)
-
-commit acf5125fe27fb3b9de8b97c4e44fa1f5c61147fd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 16:04:28 2015 -0400
-
- librbd: simplify state machine handling of exclusive lock
-
- It is expected that all IO is flushed and all async ops are cancelled
- prior to releasing the exclusive lock. Therefore, replace handling of
- lost exclusive locks in state machines with an assertion.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d6b733dbdd0aeb5d1e136dcbf30c58c80952651e)
-
-commit 9454f04e62ece39fdcdbb4eb5a83945f76bcc0a5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 15:32:38 2015 -0400
-
- librbd: ObjectMap::aio_update can acquire snap_lock out-of-order
-
- Detected during an fsx run where a refresh and CoR were occurring
- concurrently. The refresh held the snap_lock and was waiting on
- the object_map_lock, while the CoR held object_map_lock and was
- waiting for snap_lock.
-
- Fixes: #11577
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8cbd92b1fe835b1eb3a898976f9507f51cc115b2)
-
-commit 3e0358e17e7ddb488109bce04bb08cd16fd5bb2f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 16 14:15:10 2015 -0400
-
- librbd: move copyup class method call to CopyupRequest
-
- Move AbstractWrite's invocation of copyup to the CopyupRequest
- class. The AioRequest write path will now always create a
- CopyupRequest, which will now append the actual write ops to the
- copyup.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7be3df67809925164237cc185f9f29e145f45768)
-
-commit 2ee64a80794297d4fc5aeafbb185818f7f6a77b8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Mar 31 12:28:11 2015 -0400
-
- librbd: simplify AioRequest constructor parameters
-
- Moved all parent overlap computation to within AioRequest so that
- callers don't need to independently compute the overlap. Also
- removed the need to pass the snap_id for write operations since
- it can only be CEPH_NOSNAP.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 46515971edab8888284b1a8307ffca88a9c75f5c)
-
-commit 3e71a7554da05aee06d5a2227808c321a3e3f0f1
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Sat Mar 14 01:16:31 2015 +0100
-
- librbd/AioRequest.h: fix UNINIT_CTOR
-
- Fix for:
-
- CID 1274319: Uninitialized scalar field (UNINIT_CTOR)
- uninit_member: Non-static class member m_object_state is not
- initialized in this constructor nor in any functions that it calls.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 48f18ea0e1c4c6de1921ea2359448deb761461e7)
-
-commit cb57fe581df7c14d174e6eaff382d6a28ab658d6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 17 15:04:10 2015 -0400
-
- librbd: add object state accessor to ObjectMap
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9249ab7dacd43e7a546656b99013a595381fd5fd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 15:41:59 2015 -0400
-
- librbd: AsyncObjectThrottle should always hold owner_lock
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c352bcdc0f63eea55677fe3c3b5f0c61347c0db3)
-
-commit 26902b94f97edb189ae620c86a8dda8166df471a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 15:34:43 2015 -0400
-
- librbd: execute flush completion outside of cache_lock
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5f157f20980de7e9a05fb933fb57efdc759da78b)
-
-commit 571220d6f4642dd3cd78988882645fdf647c150e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 15:17:54 2015 -0400
-
- librbd: add AsyncRequest task enqueue helper method
-
- In order to support the invariant that all state machine
- callbacks occur without holding locks, transitions that
- don't always involve a librados call should queue their
- callback.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 218bc2d0f8d90c9c64408cb22e26680e88138844)
-
-commit 8e280f4cfef0d2fdc706d43bbee0c377d288a457
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 7 15:32:27 2015 -0400
-
- librbd: disable lockdep on AioCompletion
-
- It is only used by clients and it causes a large slowdown
- in performance due to the rate at which the lock is constructed/
- destructed for each IO request.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 66e74641baeed9aadb7e474d6e6b142b7725722d)
-
-commit b38da48059792e9182fe2877786d9159007683d3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:42:19 2015 -0400
-
- librbd: AioCompletion shouldn't hold its lock during callback
-
- The callback routine most likely will attempt to retrieve the result
- code, which will result in a recursive lock attempt.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3ad19ae349ebb27ff6027e40883735240fa97a3c)
-
-commit 6fdd3f1ce69fa2e00c6f1bedd5f72352953e1e44
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:51:03 2015 -0400
-
- librbd: give locks unique names to prevent false lockdep failures
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c474ee42b87975c04eeb2b40b976deb5a5e2d518)
-
-commit 70041499f99cad551b3aab16f086f725b33b25e2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:40:16 2015 -0400
-
- librbd: complete cache read in a new thread context
-
- The ObjectCacher complete the read callback while still holding
- the cache lock. This introduces lock ordering issues which are
- resolved by queuing the completion to execute in a clean (unlocked)
- context.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0024677dc8adfd610418ca47599dd95d3a5a6612)
-
-commit 65ef695eba0f5b5d87347ffb3407bb5d6d75b402
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Mar 19 15:35:59 2015 -0400
-
- librbd: require callers to ObjectMap::aio_update to acquire lock
-
- This is needed to allow an atomic compare and update operation
- from the rebuild object map utility.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2db758cb4cb6d88cbaf9842b1e5d0872a185d8df)
-
-commit 58b8fafb87b18f2a4d8c38f77ecf81ff58452409
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:38:29 2015 -0400
-
- log: fix helgrind warnings regarding possible data race
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c1e14451775049bbd95bcb19a0b62ab5e2c0a7bb)
-
-commit a5203d32544d40cb51eb60fc906cc3ceaacbfe96
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:37:56 2015 -0400
-
- librados_test_stub: fix helgrind warnings
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b65ae4bc26f2dcaaa9518d5cce0e8b83ea310de8)
-
-commit b73e87eb307137786e0f0d89362ef0e92e2670b8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:36:26 2015 -0400
-
- librados_test_stub: add support for flushing watches
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6e400b9049ede5870e40e4dd2cb41874550eac25)
-
-commit 2fa35b1c5ca8e33959fff8c84eaa4feca0f67df3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:29:12 2015 -0400
-
- common: lockdep now support unregistering once destructed
-
- librbd use of an image hierarchy resulted in lock names being
- re-used and incorrectly analyzed. librbd now uses unique lock
- names per instance, but to prevent an unbounded growth of
- tracked locks, we now remove lock tracking once a lock is
- destructed.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7c7df2ce9f837628535d21df61ae4f13d809c4fa)
-
-commit 7b85c7bfe599644eb29e6b1e03733da4774c2eac
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 30 13:26:41 2015 -0400
-
- common: add valgrind.h convenience wrapper
-
- Conditionally support helgrind annotations if valgrind support is
- enabled during the build.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 650ad32d74a24d248dd8e19bff1bbd31f0bb224b)
-
-commit 6d3db5ffbef71c8927a9ffc68c5955dca0f5612c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 17:24:08 2015 -0400
-
- librbd: add work queue for op completions
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 21f990efe6c6d710376d5b1a49fc8cd53aa020e6)
-
-commit 64425e861400fde4703fb06529777c55650b6676
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 8 16:46:34 2015 -0400
-
- WorkQueue: ContextWQ can now accept a return code
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e5ffae578e83c1e4fca3f328c937e7c9be8cc03c)
-
-commit eccf36980511de7ed122a38d426170496ffdea64
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Jun 23 13:41:53 2015 -0600
-
- packaging: RGW depends on /etc/mime.types
-
- If the mimecap RPM or mime-support DEB is not installed, then the
- /etc/mime.types file is not present on the system. RGW attempts to read
- this file during startup, and if the file is not present, RGW logs an
- error:
-
- ext_mime_map_init(): failed to open file=/etc/mime.types ret=-2
-
- Make the radosgw package depend on the mailcap/mime-support packages so
- that /etc/mime.types is always available on RGW systems.
-
- http://tracker.ceph.com/issues/11864 Fixes: #11864
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit c74a2f86a1f9b15aae0e723b410bedfc1d01a79b)
-
-commit 7bddf5d4dad09b1f6d3b4e80e4bdd895191560b0
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Thu Jul 16 09:42:55 2015 +0800
-
- rest_bench: bucketname is not mandatory as we have a default name
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
-
- (cherry picked from commit bc56a87ea3b69b4856a2b9f9fb2a63dbfb1211c3)
-
-commit 6e7358b3958b7ee11ef612302b300d07f3982d54
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Thu Jul 16 09:17:59 2015 +0800
-
- rest_bench: drain the work queue to fix a crash
- Fixes: #3896
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
-
- (cherry picked from commit f3d34d8ff921dbd2ff21f6b72af7c73bb9c6940e)
-
-commit 1e055782f5ade94c19c2614be0d61d797490701e
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Jul 21 16:09:32 2015 +0100
-
- auth: check return value of keyring->get_secret
-
- get_secret can fail to populate the passed CryptoKey, for
- example if the entity name is not found in the keyring. In
- this case, attempts to use the CryptoKey will lead to
- segfaults.
-
- Fixes: #12417
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 64e5041008744362fdbb16e16bc3e049a2d426aa)
-
-commit 256620e37fd94ee4b3af338ea6955be55529d0d6
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Jul 16 04:45:05 2015 -0700
-
- Client: check dir is still complete after dropping locks in _readdir_cache_cb
-
- We drop the lock when invoking the callback, which means the directory
- we're looking at might get dentries trimmed out of memory. Make sure that
- hasn't happened after we get the lock back. If it *has* happened, fall back
- to requesting the directory contents from the MDS. Update the dirp location
- pointers after each entry to facilitate this.
- Because this requires we update the dirp->at_cache_name value on every loop,
- we rework the updating scheme a bit: to dereference the dn->name before
- unlocking, so we know it's filled in; and since we update it on every loop
- we don't need to refer to the previous dentry explicitly like we did before.
-
- This should also handle racing file deletes: we get back a trace on
- the removed dentry and that will clear the COMPLETE|ORDERED flags.
-
- Fixes #12297
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 62dd63761701a7e0f7ce39f4071dcabc19bb1cf4)
-
-commit 8a2ad0540994efe530a1775ebd949aeaf6609e57
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 16:29:45 2015 -0700
-
- TestPGLog: fix invalid proc_replica_log test caes
-
- If 1'3 is non-divergent, no osd could correctly have created 2'3. Also,
- proc_replica_log does not add the extra entries from the auth log to the
- missing set, that happens later on in activate.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1333b676dba4ed4b5db854fe935bdadbf9f21d08)
-
-commit df71e6be7ccbe18d99200b2a5844a9f19ac70141
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 16:28:23 2015 -0700
-
- TestPGLog: fix noop log proc_replica_log test case
-
- Need to fill in log.head, olog.head.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1e5b22053381580708af29a1536f1e106c9b479c)
-
-commit 549ff9a938c5126d4dcb15535845d5354cb44bb2
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 15:01:41 2015 -0700
-
- TestPGLog: add test for 11358
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit b61e5aef15d7448d24b713d13dce77697bc0af74)
-
-commit c224fc70e14bd76494bc437595c8b0b0d275694e
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 9 15:01:29 2015 -0700
-
- PGLog::proc_replica_log: handle split out overlapping entries
-
- See the comment, if the overlapping entries between olog.head
- and log.tail were split out, last_update should be log.tail.
-
- Fixes: 11358
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6561e0d955c4563a8505b717de41f5bd89119f63)
-
-commit b8176d0f21ce80d2e5a92057ab85f7618504cd9f
-Author: Ketor Meng <d.ketor@gmail.com>
-Date: Tue May 26 18:50:17 2015 +0800
-
- Mutex: fix leak of pthread_mutexattr
-
- Need pthread_mutexattr_destroy after pthread_mutexattr_init
-
- Fixes: #111762
- Signed-off-by: Ketor Meng <d.ketor@gmail.com>
- (cherry picked from commit 2b23327b3aa8d96341d501a5555195ca1bc0de8f)
-
-commit 43a72e47c4adae674e02bb262645d88ac528e2be
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Fri Jul 3 18:27:13 2015 +0800
-
- mon/PGMonitor: bug fix pg monitor get crush rule
-
- when some rules have been deleted before, the index in array of crush->rules
- is not always equals to crush_ruleset of pool.
-
- Fixes: #12210
- Reported-by: Ning Yao <zay11022@gmail.com>
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 498793393c81c0a8e37911237969fba495a3a183)
-
-commit 0ca93db7d79f11e51af75e322941419b860bb2f8
-Author: Shylesh Kumar <shmohan@redhat.com>
-Date: Wed Jul 22 18:47:20 2015 +0530
-
- mon: ceph osd map shows NONE when an osd is missing
-
- Signed-off-by: Shylesh Kumar <shmohan@redhat.com>
- (cherry picked from commit 4d030302ea3709eb021710e873f1ebe62f951cec)
-
-commit 695f782e59baffbe8429f9daa47a4f1476a02976
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Jun 7 20:05:58 2015 -0400
-
- crush/CrushWrapper: fix adjust_subtree_weight debug
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 26be86f649a1e9846280204fe1e3f8344eb975ce)
-
-commit 0bd4c81ce41a22b22ca76e539de87260b140bbc4
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 5 12:15:45 2015 -0700
-
- crush/CrushWrapper: return changed from adjust_subtree_weight
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 551ab2d69dd50a078d62340740d357d85ab8dcbb)
-
-commit 05fc59bee9138d04227255a2f31bd82efe94b1e9
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 5 12:15:22 2015 -0700
-
- crush/CrushWrapper: adjust subtree base in adjust_subtree_weight
-
- We were correctly adjusting all the children, but the subtree root was
- not being updated.
-
- Fixes: #11855
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1da96ab8442522bda4fc39e05597f17b8ebddf89)
-
-commit d2f31adc49a7c6b8276dbf8773575e91ba5e18fa
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 5 12:12:41 2015 -0700
-
- unittest_crush_wrapper: test adjust_subtree_weight
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b461dc2e970f139dcb25d93b32be6b4bb9f1c8eb)
-
-commit 0ccdf342e7cf0072d3c38c6e1a6cf3a87f154a28
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 5 12:17:26 2015 -0700
-
- unittest_crush_wrapper: attach buckets to root in adjust_item_weight test
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a8351eb3de2b4069ffec9c4f561eb1519ea11aa2)
-
-commit 1e737532cfe1daf43bea3d9bd4e55faed560f0f2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 5 12:12:32 2015 -0700
-
- unittest_crush_wrapper: parse env
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 14c60b288b33e4cec9c9819d4668a5ff9855ccc1)
-
-commit cd11b887c6c586085a7014ba44123b115370a462
-Author: Guang G Yang <yguang@renownedground.corp.gq1.yahoo.com>
-Date: Thu Jul 2 05:29:47 2015 +0000
-
- osd: pg_interval_t::check_new_interval should not rely on pool.min_size to determine if the PG was active
-
- If the pool's min_size is set improperly, during peering, pg_interval_t::check_new_interval
- might wrongly determine the PG's state and cause the PG to stuck at down+peering forever
-
- Fixes: #12162
- Signed-off-by: Guang Yang yguang@yahoo-inc.com
- (cherry picked from commit 684927442d81ea08f95878a8af69d08d3a14d973)
-
- Conflicts:
- src/osd/PG.cc
- because PG::start_peering_interval has an assert
- that is not found in hammer in the context
- src/test/osd/types.cc
- because include/stringify.h is not included by
- types.cc in hammer
-
-commit c5f0e2222cc55a92ebc46d12b618fadb3d2fb577
-Author: Guang G Yang <yguang@renownedground.corp.gq1.yahoo.com>
-Date: Wed Jul 1 20:26:54 2015 +0000
-
- osd: Move IsRecoverablePredicate/IsReadablePredicate to osd_types.h
-
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit 466b083166231ec7e4c069fef8c9e07d38accab9)
-
-commit 42bff0b9e2f80e32001082a608d63719332677e3
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Tue Jul 21 11:20:53 2015 +0100
-
- mon: OSDMonitor: fix hex output on 'osd reweight'
-
- Fixes: #12251
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 787fa80c2746fde44ac0583ff7995ec5be9a672d)
-
-commit e00494118ee42322784988fe56623cbc7aac4cc9
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 15 19:03:33 2015 +0800
-
- ceph.in: print more detailed warning for 'ceph <type> tell'
-
- put the full signature of "tell <target> <command> [options...]"
- instead of "tell {0}.<id>", which could be misleading somehow.
-
- Fixes: 11101
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit aa1a5222eebd0256d4ecffb0eefeb0f78ecf0a1f)
-
-commit f18900f2eb724acd898e8b32fe75c0850d7cf94c
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 15 18:01:52 2015 +0800
-
- ceph.in: print more detailed error message for 'tell' command
-
- * we do not allow user specify a certain daemon when starting an
- interactive session. the existing error message could lead to
- some confusion. so put more details in it.
-
- Fixes: #11101
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 972dc9145235ff0f60663369ebcab8c16628b89f)
-
-commit 9916d37ead705d467b1d730adb15bb6974b3bf1b
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Mon Jul 20 10:50:20 2015 +0800
-
- mon/PGMonitor: avoid uint64_t overflow when checking pool 'target/max' status.
- Fixes: #12401
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
-
- (cherry picked from commit f84e6b8157e78fd05cd1c8ac957c92df17e6ba06)
-
-commit 4457d3eb70712ec3b7d8e98af973e099c8c7d258
-Author: renhwztetecs <rhwlyw@163.com>
-Date: Tue Jul 21 18:55:00 2015 +0800
-
- Update OSDMonitor.cc
-
- OSDMonitor::get_pools_health(), s/objects/bytes/
-
- Fixes: #12402
- Signed-off-by: ren.huanwen@zte.com.cn
- (cherry picked from commit 7fc13c9d6b9a4962d7640240416105d8f558d600)
-
-commit add0f1e5e229c9ad66e8ef77ad59e0e390e20db6
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Apr 16 18:29:00 2015 +0800
-
- ceph.in: do not throw on unknown errno
-
- some of the errnos are not listed in errno.errorcode. if we happen
- to run into them, print 'Unknown' instead.
-
- Fixes: #11354
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 53514ad97f6f75746613f09d464f69a7c31bed55)
-
-commit fa194744fdaed13949bffb6f2b8a0fc420006e0b
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 18 13:49:20 2015 -0700
-
- os/chain_xattr: handle read on chnk-aligned xattr
-
- If we wrote an xattr that was a multiple of a chunk, we will try to read
- the next chunk and get ENODATA. If that happens bail out of the loop and
- assume we've read the whole thing.
-
- Backport: hammer, firefly
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8614dcebf384b74b283cd352001a65fa26ba925c)
-
-commit 931ffe3b3a43157798717e64de8f46fadbcd9e9b
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed Jun 3 12:24:48 2015 +0200
-
- common/Cycles.cc: skip initialization if rdtsc is not implemented
-
- The Cycles initialization gets stuck in infinite loop if rdtsc is not
- implemented. This patch fixes the issue by quitting the initialization
- if rtdsc fails.
-
- The patch was cherry-picked from ubuntu patch by James Page, see
-
- https://bugzilla.redhat.com/show_bug.cgi?id=1222286
-
- for more details on the patch.
-
- Signed-off-by: James Page <james.page@ubuntu.com>
- (cherry picked from commit 35c5fd0091fc4d63b21207fb94e46b343519fd56)
-
-commit 0fde3a2465e156ebf9a5cdc6adc45d66d6d647fc
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Jul 9 13:42:42 2015 +0800
-
- buffer: Fix bufferlist::zero bug with special case
-
- Fixes: #12252
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 43f583d160ccaf879eaf0f3020e77860cf8d1df0)
-
-commit dabc61110a5773262614fc77d3653674aac421f7
-Author: Haomai Wang <haomaiwang@gmail.com>
-Date: Thu Jul 9 13:32:03 2015 +0800
-
- UnittestBuffer: Add bufferlist zero test case
-
- Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
- (cherry picked from commit 577acf665948e531e50d36f5780ea19351a5bf65)
-
-commit d08db7a0677412dbe590c850976fb4fe2f503a79 (refs/remotes/gh/wip-11470.hammer)
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Fri Jun 12 19:21:10 2015 +0100
-
- mon: PaxosService: call post_refresh() instead of post_paxos_update()
-
- Whenever the monitor finishes committing a proposal, we call
- Monitor::refresh_from_paxos() to nudge the services to refresh. Once
- all services have refreshed, we would then call each services
- post_paxos_update().
-
- However, due to an unfortunate, non-critical bug, some services (mainly
- the LogMonitor) could have messages pending in their
- 'waiting_for_finished_proposal' callback queue [1], and we need to nudge
- those callbacks.
-
- This patch adds a new step during the refresh phase: instead of calling
- directly the service's post_paxos_update(), we introduce a
- PaxosService::post_refresh() which will call the services
- post_paxos_update() function first and then nudge those callbacks when
- appropriate.
-
- [1] - Given the monitor will send MLog messages to itself, and given the
- service is not readable before its initial state is proposed and
- committed, some of the initial MLog's would be stuck waiting for the
- proposal to finish. However, by design, we only nudge those message's
- callbacks when an election finishes or, if the leader, when the proposal
- finishes. On peons, however, we would only nudge those callbacks if an
- election happened to be triggered, hence the need for an alternate path
- to retry any message waiting for the initial proposal to finish.
-
- Fixes: #11470
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 1551ebb63238073d2fd30201e6b656a8988e958c)
-
-commit 0818e9f78b11801aa619b9ec04eeffb2795c3f62
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 9 13:28:22 2015 +0200
-
- ceph.spec.in: snappy-devel for all supported distros
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit e4634ddcc1c0a2abe51679425d15e6f693811e17)
-
- Conflicts:
- ceph.spec.in
- minor difference
-
-commit 8b576bd529d7c1604f0a4cdf97ece64fc5d69447
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jun 16 18:27:20 2015 +0200
-
- ceph.spec.in: python-argparse only in Python 2.6
-
- argparse is a widely-used Python module for parsing command-line arguments.
- Ceph makes heavy use of Python scripts, both in the build environment and on
- cluster nodes and clients.
-
- Until Python 2.6, argparse was distributed separately from Python proper.
- As of 2.7 it is part of the Python standard library.
-
- Although the python package in a given distro may or may not Provide:
- python-argparse, this cannot be relied upon.
-
- Therefore, this commit puts appropriate conditionals around Requires:
- python-argparse and BuildRequires: python-argparse. It does so for Red
- Hat/CentOS and SUSE only, because the last Fedora version with Python 2.6
- was Fedora 13, which is EOL.
-
- argparse is required by both the ceph and ceph-common packages, but since ceph
- requires ceph-common, the argparse Requires and BuildRequires need only appear
- once, under ceph-common.
-
- http://tracker.ceph.com/issues/12034 Fixes: #12034
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 23171c952997d104cfa6b5700ec0bb658a8e0915)
-
-commit cdde626f6371e1da501306ed16bc450ee1ec0b91
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jul 13 18:12:01 2015 +0200
-
- ceph.spec.in: do not run fdupes, even on SLE/openSUSE
-
- In openSUSE there is a policy to use %fdupes in the spec file if RPMLINT
- complains about duplicate files wasting space in the filesystem.
-
- However, RPMLINT is not so complaining, so drop fdupes.
-
- http://tracker.ceph.com/issues/12301 Fixes: #12301
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 53072b9019caf72e0313b2804ea174237ed7da33)
-
-commit 6417e8eff942dbbf6cd231ffb73136b7bdcd837f
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jun 12 17:50:58 2015 +0200
-
- rpm: add missing Java conditionals
-
- http://tracker.ceph.com/issues/11991 Fixes: #11991
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 04e91bbd929801de7f1d6a05086d47a781c2e361)
-
-commit 37284773a754ef4b91d2b5436d46a5fd2be4f67e
-Author: Owen Synge <osynge@suse.com>
-Date: Fri May 29 13:28:24 2015 +0200
-
- Add rpm conditionals : cephfs_java
-
- Extracted conditionals from SUSE rpm spec file to forward port.
- Original work done by Thorsten Behrens <tbehrens@suse.com>
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit c65538f489897821877421043300d9c008224f02)
-
-commit 8f78001c2e09d483dcbcd33c24e2ef8043119773
-Author: Nathan Cutler <ncutler@suse.cz>
-Date: Thu May 14 20:07:37 2015 +0200
-
- ceph.spec.in: SUSE/openSUSE builds need libbz2-devel
-
- http://tracker.ceph.com/issues/11629 Fixes: #11629
-
- Signed-off-by: Nathan Cutler <ncutler@suse.cz>
- (cherry picked from commit 584ed2e28b0a31821f29a99cf6078cfd76ee31fc)
-
-commit 4eb58ad2027148561d94bb43346b464b55d041a6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jun 25 22:37:52 2015 +0200
-
- ceph.spec.in: use _udevrulesdir to eliminate conditionals
-
- The conditionals governing where 50-rbd.rules is installed were not doing the
- right thing on SUSE distros.
-
- Start using the %_udevrulesdir RPM macro, while taking care that it is defined
- and set to the right value. Use it to eliminate some conditionals around other
- udev rules files as well.
-
- http://tracker.ceph.com/issues/12166 Fixes: #12166
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 8aa758ee7a14e93ded1d55b4aca7a54aa47d7174)
-
- Conflicts:
- ceph.spec.in
- hammer does not yet have _with_systemd or ceph_daemon.py
diff --git a/src/ceph/doc/changelog/v0.94.5.txt b/src/ceph/doc/changelog/v0.94.5.txt
deleted file mode 100644
index 56c9e50..0000000
--- a/src/ceph/doc/changelog/v0.94.5.txt
+++ /dev/null
@@ -1,86 +0,0 @@
-commit 9764da52395923e0b32908d83a9f7304401fee43 (tag: refs/tags/v0.94.5, refs/remotes/gh/hammer)
-Author: Jenkins <jenkins@ceph.com>
-Date: Mon Oct 26 07:05:32 2015 -0700
-
- 0.94.5
-
-commit 1107f29224e24211860b719b82f9b85a022c25e3
-Merge: d86eab5 d3abcbe
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 23 20:41:33 2015 +0200
-
- Merge pull request #6348 from dillaman/wip-13567-hammer
-
- librbd: potential assertion failure during cache read
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d86eab5b860186066c888208d92a42a748569d78
-Merge: 4ebfa1b 250dc07
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 23 15:20:32 2015 +0200
-
- Merge pull request #6362 from liewegas/wip-shut-up-osd-hammer
-
- osd/ReplicatedPG: remove stray debug line
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 250dc0722b9156fe1b8be81e09fb4ead699065f3 (refs/remotes/me/wip-shut-up-osd-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Sep 12 08:33:44 2015 -0400
-
- osd/ReplicatedPG: remove stray debug line
-
- This snuck in
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ff9600a6cef613d40e875597b6392778df1bb04c)
-
-commit d3abcbea1fdb04f0994f19584b93f6f1b1ff37ca
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Oct 21 13:12:48 2015 -0400
-
- librbd: potential assertion failure during cache read
-
- It's possible for a cache read from a clone to trigger a writeback if a
- previous read op determined the object doesn't exist in the clone,
- followed by a cached write to the non-existent clone object, followed
- by another read request to the same object. This causes the cache to
- flush the pending writeback ops while not holding the owner lock.
-
- Fixes: #13559
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4692c330bd992a06b97b5b8975ab71952b22477a)
-
-commit 991d0f0575411e2f2b53df35e36ff6170bcc9d8b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Oct 21 13:09:54 2015 -0400
-
- tests: reproduce crash during read-induced CoW
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 382219b6bba09156f8cf3d420c6348738e7ed4c6)
-
-commit 4ebfa1bcc7e3b57c3c12000633654d36a005d512
-Merge: 9529269 51f3d6a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 22 12:14:42 2015 -0400
-
- Merge pull request #6330 from dachary/wip-13550-hammer
-
- qemu workunit refers to apt-mirror.front.sepia.ceph.com
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 51f3d6a489760dbcb931676396eea92159ca2ad9
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Fri Jun 19 00:02:20 2015 +0800
-
- qa: Use public qemu repo
-
- This would allow some external tests outside of sepia lab
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit 4731c1e35539c9506ff3fe3141553fad099d0eee)
diff --git a/src/ceph/doc/changelog/v0.94.6.txt b/src/ceph/doc/changelog/v0.94.6.txt
deleted file mode 100644
index 7fc155b..0000000
--- a/src/ceph/doc/changelog/v0.94.6.txt
+++ /dev/null
@@ -1,4027 +0,0 @@
-commit e832001feaf8c176593e0325c8298e3f16dfb403 (tag: refs/tags/v0.94.6, refs/remotes/gh/hammer)
-Author: Jenkins Build Slave User <jenkins-build@jenkins-slave-wheezy.localdomain>
-Date: Mon Feb 22 21:10:17 2016 +0000
-
- 0.94.6
-
-commit 7abb6ae8f3cba67009bd022aaeee0a87cdfc6477
-Merge: ceb6fcc a8fc6a9
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 14:19:57 2016 +0700
-
- Merge pull request #7501 from SUSE/wip-14624-hammer
-
- hammer: fsx failed to compile
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ceb6fcc5f2828995bfe59bfc4e206010a4fe3230
-Merge: 2f4e1d1 f2ca42b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Feb 5 21:10:46 2016 -0500
-
- Merge pull request #7524 from ktdreyer/wip-14637-hammer-man-radosgw-admin-orphans
-
- hammer: doc: regenerate man pages, add orphans commands to radosgw-admin(8)
-
-commit 2f4e1d1ff8e91fc2ee9c23d5a17c3174d15a7103
-Merge: 2ca3c3e 9ab5fd9
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Feb 5 10:30:22 2016 +0100
-
- Merge pull request #7526 from ceph/wip-14516-hammer
-
- hammer: rgw-admin: document orphans commands in usage
-
-commit 2ca3c3e5683ef97902d0969e49980d69c81b4034
-Merge: 02353f6 5c8d1d7
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Feb 5 12:47:33 2016 +0700
-
- Merge pull request #7441 from odivlad/backport-pr-14569
-
- [backport] hammer: rgw: Make RGW_MAX_PUT_SIZE configurable
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 02353f6baa460949d7dd2738346d8d748401bc5b
-Merge: f3bab8c 0e1378e
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Feb 5 12:46:54 2016 +0700
-
- Merge pull request #7442 from odivlad/backport-pr-14570
-
- [backport] rgw: fix wrong etag calculation during POST on S3 bucket.
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 9ab5fd9d67da43e986489e4f580a597dd8cb551e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Feb 1 16:33:55 2016 -0800
-
- rgw-admin: document orphans commands in usage
-
- Fixes: #14516
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 105a76bf542e05b739d5a03ca8ae55432350f107)
-
- Conflicts:
- src/rgw/rgw_admin.cc (trivial resolution)
-
-commit 0e1378effdd1d0d70d3de05c79b208e9f8b8e328
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon Sep 21 20:32:29 2015 +0200
-
- [backport] rgw: fix wrong etag calculation during POST on S3 bucket.
-
- Closes: #14570
- (cherry picked from commit 742906a)
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
- Tested-by: Vladislav Odintsov <odivlad@gmail.com>
-
-commit 5c8d1d74069f70b85bc4286e6d1136bce1dc593f
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Thu Jul 9 16:56:07 2015 +0800
-
- [backport] rgw: Make RGW_MAX_PUT_SIZE configurable
-
- The 5GB limit of a single operation uploading was part of S3 spec.
- However some private setups may have some special requirements
- on this limit. It's more convinent to have a configurable value.
-
- Closes: http://tracker.ceph.com/issues/14569
- (cherry picked from commit df97f28)
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
- Tested-by: Vladislav Odintsov <odivlad@gmail.com>
-
-commit f2ca42b1218182f4bfa27718c9606705d8b9941f
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Feb 3 19:51:58 2016 -0700
-
- doc: add orphans commands to radosgw-admin(8)
-
- The --help text was added in 105a76bf542e05b739d5a03ca8ae55432350f107.
- Add the corresponding entries to the man page.
-
- Fixes: #14637
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
-
- (cherry picked from commit ec162f068b40f594c321df5caa9fe2541551b89e)
- Cherry-pick to hammer includes nroff source change (in master the
- nroff sources are no longer present in Git.)
-
-commit e42ed6d6414ad55d671dd0f406b1dababd643af8
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Feb 4 11:04:39 2016 -0700
-
- man: rebuild manpages
-
- following the procedure in admin/manpage-howto.txt.
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit a8fc6a9ffb2f8021657ad412fd0aaaaf7f98bd53
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Wed Jan 13 13:17:53 2016 -0800
-
- fsx: checkout old version until it compiles properly on miras
-
- I sent a patch to xfstests upstream at
- http://article.gmane.org/gmane.comp.file-systems.fstests/1665, but
- until that's fixed we need a version that works in our test lab.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 7d52372ae74878ebd001036ff0a7aad525eb15b6)
-
-commit f3bab8c7bc6bba3c79329d7106684596634e17a6
-Merge: 31d86b1 1b02859
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 3 12:41:56 2016 +0700
-
- Merge pull request #7454 from dachary/wip-14584-hammer
-
- hammer: fsstress.sh fails
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 31d86b1580d59581d130e7a5e84905a5b4d67666
-Merge: 2c8e579 2817ffc
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 3 11:38:57 2016 +0700
-
- Merge pull request #6918 from asheplyakov/hammer-bug-12449
-
- osd: check for full before changing the cached obc (hammer)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1b02859480677abbd8708650764ed6815917e0cd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Aug 18 15:22:55 2015 +0800
-
- qa/fsstress.sh: fix 'cp not writing through dangling symlink'
-
- On some test machines, /usr/lib/ltp/testcases/bin/fsstress is
- dangling symlink. 'cp -f' is impotent in this case.
-
- Fixes: #12710
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 479f2a760baf6af4714d3391a366a6b3acf1bcaf)
-
-commit 2c8e57934284dae0ae92d1aa0839a87092ec7c51
-Merge: 1cab151 700be56
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:42:29 2016 -0500
-
- Merge pull request #7236 from athanatos/wip-14376
-
- config_opts: increase suicide timeout to 300 to match recovery
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1cab151a6cdc8a1b9b2f11518b77ea149c19d067
-Merge: a134c44 5105d50
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:42:12 2016 -0500
-
- Merge pull request #6450 from dachary/wip-13672-hammer
-
- tests: testprofile must be removed before it is re-created
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a134c44d626ead3308464474d67604363bac6f5d
-Merge: 520792d 3f1292e
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:41:39 2016 -0500
-
- Merge pull request #6680 from SUSE/wip-13859-hammer
-
- hammer: ceph.spec.in License line does not reflect COPYING
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
-commit 520792d51e949c451767d116e267d86fee812ada
-Merge: 4d0fafb c2c6d02
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:41:18 2016 -0500
-
- Merge pull request #6791 from branch-predictor/bp-5812-backport
-
- Race condition in rados bench
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
-commit 4d0fafb289fc35f44e6e74bb974c402ba147d4d4
-Merge: 211a093 6379ff1
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:40:38 2016 -0500
-
- Merge pull request #6973 from dreamhost/wip-configure-hammer
-
- configure.ac: no use to add "+" before ac_ext=c
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 211a093d4107c1806ad7e4876bc5c550a5b5b7d4
-Merge: 0c13656 53742bd
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:40:13 2016 -0500
-
- Merge pull request #7206 from dzafman/wip-14292
-
- osd/PG.cc: 3837: FAILED assert(0 == "Running incompatible OSD")
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 0c136561600e295ec48dcf29a77aa2cd293a7236
-Merge: 1ea14ba ae56de0
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:39:42 2016 -0500
-
- Merge pull request #7207 from rldleblanc/recency_fix_for_hammer
-
- hammer: osd/ReplicatedPG: Recency fix for Hammer
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1ea14bae10930ed3e66b7b0140e359009a44275e
-Merge: 1740d8c 8d9e08c
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:39:11 2016 -0500
-
- Merge pull request #7347 from tchaikov/wip-hammer-10093
-
- tools: ceph-monstore-tool must do out_store.close()
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1740d8ce8eb7e7debce1684a19736783489628c3
-Merge: 7848cdc c7252a3
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:38:35 2016 -0500
-
- Merge pull request #7411 from dachary/wip-14467-hammer
-
- hammer: disable filestore_xfs_extsize by default
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7848cdc4c8c3598cd291d26a2dd4d76abc4bcda9
-Merge: 57abeab 70f1ba3
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:38:13 2016 -0500
-
- Merge pull request #7412 from dachary/wip-14470-hammer
-
- tools: tool for artificially inflate the leveldb of the mon store for testing purposes
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 57abeab1f2610d89f0ab2a028c8e093afde5e403
-Merge: 4d7d7c3 9109304
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Jan 30 21:37:46 2016 -0500
-
- Merge pull request #7446 from liewegas/wip-14537-hammer
-
- mon: compact full epochs also
-
- http://pulpito.ceph.com/sage-2016-01-30_09:58:32-rados-wip-sage-testing-hammer---basic-mira/
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 4d7d7c33ff58ffeb27b47d379bf7dd4af90785b0
-Merge: 8360486 8c28f2f
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:45:31 2016 -0800
-
- Merge pull request #7182 from dachary/wip-14143-hammer
-
- hammer: Verify self-managed snapshot functionality on image create
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8360486764c3ab4e10a34f5bdf7555e4c3385977
-Merge: 501e01a b2961ce
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:45:20 2016 -0800
-
- Merge pull request #7183 from dachary/wip-14283-hammer
-
- hammer: rbd: fix bench-write
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 501e01acc55f846cd3ad85e8294a9598c1c90907
-Merge: 97d4f6a 24c0b27
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:45:05 2016 -0800
-
- Merge pull request #7416 from dachary/wip-14466-hammer
-
- hammer: rbd-replay does not check for EOF and goes to endless loop
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 97d4f6a7bed5a0d47f18b3a223a916aef355eaf9
-Merge: 51cc015 46d626d
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:44:50 2016 -0800
-
- Merge pull request #7417 from dachary/wip-14553-hammer
-
- hammer: rbd: TaskFinisher::cancel should remove event from SafeTimer
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 51cc015c7e20d2ea9b9517238481fb80687be17c
-Merge: 23c24fc 73e03de
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:44:32 2016 -0800
-
- Merge pull request #7407 from dillaman/wip-14543-hammer
-
- librbd: ImageWatcher shouldn't block the notification thread
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 23c24fc50d07a07db12239ac372bfce5a9fe2255
-Merge: 9513391 26e832e
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Sat Jan 30 11:44:12 2016 -0800
-
- Merge pull request #6980 from dillaman/wip-14063-hammer
-
- librbd: fix merge-diff for >2GB diff-files
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 91093041a86fda40de08a366b5118e5e3ae275f0 (refs/remotes/me/wip-14537-hammer)
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Jan 28 02:09:53 2016 -0800
-
- mon: compact full epochs also
-
- by compacting the ${prefix}.${start}..${prefix}..${end} does not
- necessary compact the range of ${prefix}."full_"${start}..
- ${prefix}."full_"${end}. so when more and more epochs get trimmed
- with out a full range compaction, the size of monitor store could
- be very large.
-
- Fixes: #14537
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 93d633a25ad8c36c972bb766c38187e2612041e1)
-
-commit 2817ffcf4e57f92551b86388681fc0fe70c386ec
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Wed Dec 16 15:31:52 2015 +0300
-
- Check for full before changing the cached obc
-
- ReplicatedPG::prepare_transaction(): check if the pool is full before
- updating the cached ObjectContext to avoid the discrepancy between
- the cached and the actual object size (and other metadata).
- While at it improve the check itself: consider cluster full flag,
- not just the pool full flag, also consider object count changes too,
- not just bytes.
-
- Based on commit a1eb380c3d5254f9f1fe34b4629e51d77fe010c1
-
- Fixes: #13335
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit 951339103d35bc8ee2de880f77aada40d15b592a (refs/remotes/gh/wip-test-14716-4)
-Merge: e43aca5 5e5b512
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 29 23:31:47 2016 +0700
-
- Merge pull request #6353 from theanalyst/wip-13513-hammer
-
- rgw: value of Swift API's X-Object-Manifest header is not url_decoded during segment look up
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit e43aca51d630274a57237b0f91a56df79ce8874a
-Merge: 7e20e6e 4420929
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 29 23:31:16 2016 +0700
-
- Merge pull request #6620 from SUSE/wip-13820-hammer
-
- hammer: rgw: Setting ACL on Object removes ETag
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 7e20e6e9d6626c5ac8b1f479011ab77a9e87da23
-Merge: f1d5570 cbb5c1f
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 29 23:30:57 2016 +0700
-
- Merge pull request #7186 from dachary/wip-13888-hammer
-
- hammer: rgw: orphans finish segfaults
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit ae56de09fe1385958b5b600d1f0c91383989926f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 25 14:40:26 2015 -0500
-
- osd: recency should look at newest (not oldest) hitsets
-
- Reported-by: xinxin shu <xinxin.shu@intel.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 528eae92d010ea34ae8cf0e8b2290aaa5e058d24)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
- code section was moved to ReplicatedPG::maybe_promote
- in master.
- Signed-off-by: Robert LeBlanc <robert.leblanc@endurance.com>
-
-commit 5cefcb975771f0c2efb7dfc77ce14a93a4ee7f1b
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 25 14:39:08 2015 -0500
-
- osd/ReplicatedPG: fix promotion recency logic
-
- Recency is defined as how many of the last N hitsets an object
- must appear in in order to be promoted. The previous logic did
- nothing of the sort... it checked for the object in any one of
- the last N hitsets, which led to way to many promotions and killed
- any chance of the cache performing properly.
-
- While we are here, we can simplify the code to drop the max_in_*
- fields (no longer necessary).
-
- Note that we may still want a notion of 'temperature' that does
- tolerate the object missing in one of the recent hitsets.. but
- that would be different than recency, and should probably be
- modeled after the eviction temperature model.
-
- Backport: infernalis, hammer
- Reported-by: Nick Fisk <nick@fisk.me.uk>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 180c8743addc5ae2f1db9c58cd2996ca6e7ac18b)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
- code section was moved to ReplicatedPG::maybe_promote
- in master.
- Signed-off-by: Robert LeBlanc <robert.leblanc@endurance.com>
-
-commit f1d5570beab0769b925b917e402d441ff053794c
-Merge: c4bb343 50c82f2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 29 08:52:51 2016 -0500
-
- Merge pull request #5789 from SUSE/wip-12928-hammer
-
- rpm: libcephfs_jni1 has no %post and %postun
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c4bb34320df8bfa734512a400fe8664c131363ff
-Merge: 86ba6ca a5e4f70
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 29 08:50:56 2016 -0500
-
- Merge pull request #7434 from tchaikov/wip-14441-hammer
-
- man: document listwatchers cmd in "rados" manpage
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a5e4f70af422b05ece53f245bc15491bb1dd540d
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Dec 23 11:23:38 2015 +0800
-
- man: document listwatchers cmd in "rados" manpage
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c2e391301efc43f0b431e89737246b2c43bf10a9)
-
- man/rados.8: also added the rendered man.8 man page, as we don't
- put the generated man pages in master anymore. but
- they are still in the hammer's source repo.
-
-commit 46d626d92d7af218816d831cfcc1265b3ea31b72
-Author: Douglas Fuller <dfuller@redhat.com>
-Date: Fri Jan 22 11:18:40 2016 -0800
-
- rbd: remove canceled tasks from timer thread
-
- When canceling scheduled tasks using the timer thread, TaskFinisher::cancel
- does not call SafeTimer::cancel_event, so events fire anyway. Add this call.
-
- Fixes: #14476
- Signed-off-by: Douglas Fuller <dfuller@redhat.com>
- (cherry picked from commit 2aa0f318c862dbe3027d74d345671506605778eb)
-
-commit 24c0b27c6f6a26c2b7bab5bcbc421a18592d026f
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jan 21 13:45:42 2016 +0200
-
- rbd-replay: handle EOF gracefully
-
- Fixes: #14452
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit c59b84c3e2c9bbda68219e4d2288a889dd9ca6cb)
-
- Conflicts:
- src/rbd_replay/BufferReader.cc: trivial resolution
- caused by s/CEPH_PAGE_SIZE/CEPH_BUFFER_APPEND_SIZE/
- in the context of one hunk.
-
-commit 70f1ba33fe1a81d2631d54429749433a6cbfca44
-Author: Cilang Zhao <zhao.cilang@h3c.com>
-Date: Tue Jan 5 14:34:05 2016 +0800
-
- tools: monstore: add 'show-versions' command.
-
- Using this tool, the first/last committed version of maps will be shown.
-
- Signed-off-by: Cilang Zhao <zhao.cilang@h3c.com>
- (cherry picked from commit 21e6ba0c18428caff45733e6b43d197be38af8bb)
-
-commit 926017187910c9e6a3fb8babf9b498cf07941819
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Sep 16 18:28:52 2015 +0800
-
- tools: ceph_monstore_tool: add inflate-pgmap command
-
- this command repeatly add the latest pgmap to the monstore in order
- to inflate it. the command helps with the testing of some monstore
- related performance issue of monitor
-
- Fixes: #14217
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b0f6af814a58dd374ca95e84a4e381f8ef1368de)
-
-commit a1d5728c928eb7e6b8c655741a0db3398ced7d56
-Author: Bo Cai <cai.bo@h3c.com>
-Date: Tue Oct 20 15:23:49 2015 +0800
-
- tools:support printing the crushmap in readable fashion.
-
- Signed-off-by: Bo Cai <cai.bo@h3c.com>
- (cherry picked from commit b7faf678ed0241abc7eb86b9baaa6db669a22d53)
-
-commit bd9484750f546974047dacd9176a8072be846596
-Author: Bo Cai <cai.bo@h3c.com>
-Date: Mon Sep 14 19:50:47 2015 +0800
-
- tools:print the map infomation in human readable format.
-
- Signed-off-by: Bo Cai <cai.bo@h3c.com>
- (cherry picked from commit 5ed8cdc19150382c946a373ec940d76f98e6ecb7)
-
-commit fba65832aad8a46d94a9256a56997e9df9e62297
-Author: Bo Cai <cai.bo@h3c.com>
-Date: Mon Sep 14 19:19:05 2015 +0800
-
- tools:remove the local file when get map failed.
-
- Signed-off-by: Bo Cai <cai.bo@h3c.com>
- (cherry picked from commit 0b03b32d8ba76fe9f6f1158e68eb440e3670393a)
-
-commit 1bb899a290b77188b44a53ef7c7a40910c9248b2
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Mon Jul 13 12:35:13 2015 +0100
-
- tools: ceph_monstore_tool: describe behavior of rewrite command
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit a881f9385feb0f5a61fa22357984d6f291c08177)
-
-commit 9035c69481f4aa4786414ac41cbc36fb4a3ca51d
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jun 19 22:57:57 2015 +0800
-
- tools/ceph-monstore-tools: add rewrite command
-
- "rewrite" command will
- - add a new osdmap version to update current osdmap held by OSDMonitor
- - add a new paxos version, as a proposal it will
- * rewrite all osdmap epochs from specified epoch to the last_committed
- one with the specified crush map.
- * add the new osdmap which is added just now
- so the leader monitor can trigger a recovery process to apply the transaction
- to all monitors in quorum, and hence bring them back to normal after being
- injected with a faulty crushmap.
-
- Fixes: #11815
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 306373427836ca0c2418dbe6caab26d74d94d12e)
-
-commit 90aaed744243dfc7c620f91e19fc0bfa233f711f
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Tue Apr 21 14:04:40 2015 +0800
-
- tools: ceph-monstore-tool must do out_store.close()
-
- this change fixes the "store-copy" command.
- Like the bug reported in http://tracker.ceph.com/issues/10093.
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
- (cherry picked from commit d85e0f8c50fce62be012506f7ffcb1cdeb0c819c)
-
-commit c7252a3d54bae88f91c2b4e63fc9c27cfbb2423e
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Mon Jan 18 08:24:46 2016 -0700
-
- osd: disable filestore_xfs_extsize by default
-
- This option involves a tradeoff: When disabled, fragmentation is worse,
- but large sequential writes are faster. When enabled, large sequential
- writes are slower, but fragmentation is reduced.
-
- Fixes: #14397
- (cherry picked from commit aed85775bf53c273786ce4999320134822722af5)
-
-commit 86ba6caf992d2544cdd174e3b3f26a6099c91fc5
-Merge: b6b8ee4 0325f8a
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 29 10:36:05 2016 +0700
-
- Merge pull request #7316 from ceph/wip-deb-lttng-hammer
-
- deb: strip tracepoint libraries from Wheezy/Precise builds
-
- All other "modern" Debian-based OSes have a functional LTTng-UST. Since only hammer needs to build on these older distros, this fix only affects the deb building process for those two releases(since autoconf detects that LTTng is broken).
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit b6b8ee41fc77679e82304e79da6dbd0c35f5c067
-Merge: d54840b f96c812
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 29 10:21:43 2016 +0700
-
- Merge pull request #7187 from dachary/wip-13831-hammer
-
- hammer: init script reload doesn't work on EL7
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 73e03def9271fb5d1739b195e428c3ebfcebd59b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 14:38:20 2016 -0500
-
- librbd: ImageWatcher shouldn't block the notification thread
-
- Blocking the notification thread will also result in librados async
- callbacks becoming blocked (since they use the same thread).
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7e2019a72733dff43e55c9b22df12939d584f87d)
-
- Conflicts:
- src/librbd/ImageWatcher.[cc|h]: fewer RPC messages
-
-commit 5617166f78c1995436b4e0794dab2d8254331815
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 14:35:54 2016 -0500
-
- librados_test_stub: watch/notify now behaves similar to librados
-
- Notifications are executed via the same librados AIO callback
- thread, so it's now possible to catch deadlock.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 43722571838a2d78ca8583b5a1ea381cd988de0b)
-
-commit 8fc82b23304ef327933723373cd4d1090d04bfbc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 12:40:18 2016 -0500
-
- tests: simulate writeback flush during snap create
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e9570fcf4be9cd5c06937769d074fa52ffb32e4b)
-
-commit d54840bf4a70fc65285bbfdff0c7bf8f579643b1
-Merge: 4051bc2 9f30fe1
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jan 26 10:12:29 2016 -0500
-
- Merge pull request #7365 from liewegas/wip-tcmalloc-hammer
-
- osd: pass tcmalloc env through to ceph-osd
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 9f30fe18e839f5846c90e3b5995171a0132d7f3a
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jan 26 08:43:15 2016 -0500
-
- upstart/ceph-osd.conf: pass TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES through
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a95a3d34cccb9f9f0782a96ca05e5fe9c2b01772)
-
-commit a58873e213d7423d89c95db4e1710dc9631e3313
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jan 20 18:36:08 2016 -0500
-
- init-ceph: pass TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES through
-
- ..when set in the sysconfig/default file.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 03e01ae263ef207046933890821ae75d5e60d9b8)
-
- [source default/sysconfig file too]
-
-commit 8d9e08c44150a4f3ad06ec1abc130b9aeaf479d9
-Author: huangjun <hjwsm1989@gmail.com>
-Date: Tue Apr 21 14:04:40 2015 +0800
-
- tools: ceph-monstore-tool must do out_store.close()
-
- this change fixes the "store-copy" command.
- Like the bug reported in http://tracker.ceph.com/issues/10093.
-
- Signed-off-by: huangjun <hjwsm1989@gmail.com>
- (cherry picked from commit d85e0f8c50fce62be012506f7ffcb1cdeb0c819c)
-
-commit 0325f8af5cbee3d74e9f363f61c2e2ababf501d9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 21 15:36:37 2016 -0500
-
- deb: strip tracepoint libraries from Wheezy/Precise builds
-
- These releases do not (by default) have a sane LTTng-UST environment,
- which results in autoconf disabling support for tracing.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4051bc2a5e4313ac0f6236d7a34ed5fb4a1d9ea2
-Merge: 4e67418 e4d3e9b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 18 20:46:07 2016 -0500
-
- Merge pull request #7252 from ceph/wip-13483-hammer
-
- qa: remove legacy OS support from rbd/qemu-iotests
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit e4d3e9b29aa6a5f9efff8b787949a5bbf48ad7de (refs/remotes/gh/wip-13483-hammer)
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 18 15:57:43 2016 -0500
-
- qa: disable rbd/qemu-iotests test case 055 on RHEL/CentOS
-
- Fixes: #14385
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f7acd44c26310242b69ee50322bd6b43fdc774b9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 15 12:44:06 2015 -0400
-
- qa: remove legacy OS support from rbd/qemu-iotests
-
- RHEL7 derivatives were failing test 002 since they were using
- legacy test cases for now unsupported OSes.
-
- Fixes: #13483
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
-
-commit 8c28f2f28d960d823ffd632671edaf029c30fb0f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 14 17:41:49 2015 -0500
-
- librbd: optionally validate RBD pool configuration (snapshot support)
-
- Fixes: #13633
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1fea4dadc60e13518e9ee55d136fbc4e9d3a621e)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
-
-commit 700be56c530879a72a628c62265d18f0a5d8fb3b
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 14 08:35:23 2016 -0800
-
- config_opts: increase suicide timeout to 300 to match recovery
-
- Fixes: 14376
- Backport: hammer, firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 4e67418958e5caf5e4f81c4ed566e8c7269930fa
-Merge: 28e99a9 1ab2b48
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:21:50 2016 -0500
-
- Merge pull request #7179 from dachary/wip-14287-hammer
-
- hammer: ReplicatedPG: wrong result code checking logic during sparse_read
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 28e99a90b38ce8c0285c1aec9c5524365385be00
-Merge: 17a2965 86f5cf6
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:20:53 2016 -0500
-
- Merge pull request #7178 from dachary/wip-14285-hammer
-
- hammer: osd/OSD.cc: 2469: FAILED assert(pg_stat_queue.empty()) on shutdown
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 17a2965825494765249c244aef59ebd821711d42
-Merge: a1459ea b0856ee
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:20:34 2016 -0500
-
- Merge pull request #7177 from dachary/wip-14043-hammer
-
- hammer: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a1459eacd7cc0d064493d01f963b8c1231cd3518
-Merge: c9a13a1 9cee89b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:20:10 2016 -0500
-
- Merge pull request #7180 from dachary/wip-14288-hammer
-
- hammer: ceph osd pool stats broken in hammer
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c9a13a12e88c9a18bfb3cc99d4a7c103b4330426
-Merge: 174a1a9 4d0b9a1
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:19:18 2016 -0500
-
- Merge pull request #6994 from badone/wip-13993-hammer
-
- log: Log.cc: Assign LOG_DEBUG priority to syslog calls
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 174a1a974725ce4025be4dfdf3b13df766dfac76
-Merge: cb167e9 6cf261c
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:18:55 2016 -0500
-
- Merge pull request #6839 from SUSE/wip-13789-hammer
-
- Objecter: potential null pointer access when do pool_snap_list.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit cb167e998bbbdf1b9c273f6bc4f118796d396d37
-Merge: 1c4ba85 66ff0aa
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:18:23 2016 -0500
-
- Merge pull request #6835 from SUSE/wip-13892-hammer
-
- hammer: auth/cephx: large amounts of log are produced by osd
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1c4ba855b34290069c7ce0fa990fe72b7a1b381e
-Merge: 72b6b68 61da13b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:17:53 2016 -0500
-
- Merge pull request #6834 from SUSE/wip-13930-hammer
-
- hammer: Ceph Pools' MAX AVAIL is 0 if some OSDs' weight is 0
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 72b6b68f43ffc953ca7f3056574bd68428a5abe8
-Merge: d064f9f 53e81aa
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:17:25 2016 -0500
-
- Merge pull request #6832 from SUSE/wip-13936-hammer
-
- hammer: Ceph daemon failed to start, because the service name was already used.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d064f9f6b3bc93fa5887304a9b9ab92d503ebd15
-Merge: 0ca6285 ac05617
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 14 09:16:54 2016 -0500
-
- Merge pull request #6755 from SUSE/wip-13870-hammer
-
- hammer: OSD: race condition detected during send_failures
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 0ca62855f22136c7042a5988366d46e59629f206
-Merge: e9f545b a81bcf7
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 14 08:22:35 2016 +0100
-
- Merge pull request #6415 from dillaman/wip-13541-hammer
-
- LTTng-UST tracing should be dynamically enabled
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e9f545b4a44c91faf91a8ae3824b1b0d46909244
-Merge: 8521916 b2f1e76
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 14 08:15:02 2016 +0100
-
- Merge pull request #7176 from dachary/wip-13440-hammer
-
- ceph-disk prepare fails if device is a symlink
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 85219163f9b78faa3c1fe96cad7129c6813550c0
-Merge: ebfb3fb 5264bc6
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 14 08:14:31 2016 +0100
-
- Merge pull request #7150 from jecluis/wip-14236
-
- mon: OSDMonitor: do not assume a session exists in send_incremental()
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit ebfb3fbe8a1920474941d4a95540cc4a53a747d4
-Merge: e1b9208 447ab1d
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Jan 13 17:15:32 2016 -0800
-
- Merge pull request #7226 from dillaman/wip-13810-hammer
-
- tests: notification slave needs to wait for master
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 447ab1d70a63fceed39518d5714c138c54f6525e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 13 12:44:01 2016 -0500
-
- tests: notification slave needs to wait for master
-
- If the slave instance starts before the master, race
- conditions are possible.
-
- Fixes: #13810
- Backport: infernalis, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3992d6fe67bbf82322cedc1582406caaf6d4de60)
-
-commit 53742bdbc587747c93413f9db38f3eeb71487872
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 15 17:55:41 2015 -0700
-
- ceph_osd: Add required feature bits related to this branch to osd_required mask
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0b2bab460c013ea5cece10ea028d26da3485eaf5)
-
-commit 3066231865e2fe56344de9db26024ac65e03053d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jun 4 18:47:42 2015 -0700
-
- osd: CEPH_FEATURE_CHUNKY_SCRUB feature now required
-
- Feature present since at least the Dumpling release.
- A later commit will add it to the osd_required mask
-
- Fixes: #11661
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 7a10a7e196efd0f59fa7adb87d0a120655b227d8)
-
-commit e1b92081c9e4b21eb30cc873c239083a08fce12f
-Merge: 9708e59 3d3595f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jan 12 14:28:26 2016 +0100
-
- Merge pull request #6530 from SUSE/wip-13760-hammer
-
- unknown argument --quiet in udevadm settle
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6379ff16dbc7fdecccaa8874d978d1ab58ce44cf
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 5 15:07:33 2015 +0800
-
- configure.ac: no use to add "+" before ac_ext=c
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 899dd23766c5ae6fef39bf24ef0692127d17deb3)
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit f96c8125d423f24e52df0f8420b0b2748e34ca90
-Author: Herve Rousseau <hroussea@cern.ch>
-Date: Fri Nov 6 09:52:28 2015 +0100
-
- rgw: fix reload on non Debian systems.
-
- When using reload in non-debian systems, /bin/sh's kill is used to send the HUP signal to the radosgw process.
- This kill version doesn't understand -SIGHUP as a valid signal, using -HUP does work.
-
- Fix: #13709
- Backport: hammer
- Signed-off-by: Hervé Rousseau <hroussea@cern.ch>
- (cherry picked from commit 1b000abac3a02d1e788bf25eead4b6873133f5d2)
-
-commit cbb5c1fc2386205277ad22474c1f696a07fcb972
-Author: Igor Fedotov <ifedotov@mirantis.com>
-Date: Thu Nov 19 13:38:40 2015 +0300
-
- Fixing NULL pointer dereference
-
- Signed-off-by: Igor Fedotov <ifedotov@mirantis.com>
- (cherry picked from commit 93d3dfe0441be50a6990d458ee0ee3289af39b20)
-
-commit b2961cef3d8e84d2302815e33eb7dc9033d2bb78
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Aug 18 16:05:29 2015 -0400
-
- rbd: fix bench-write
-
- Make each IO get a unique offset!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 333f3a01a9916c781f266078391c580efb81a0fc)
-
-commit 9cee89bbdd1d89d2fe72c8d73fc0c18db515198a
-Author: BJ Lougee <almightybeeij@gmail.com>
-Date: Mon Apr 13 11:24:38 2015 -0500
-
- Check that delta_sum.stats.sum.num_object_copies and delta_sum.stats.sum.num_object are greater than zero
-
- This fixes division by zero.
-
- Signed-off-by BJ Lougee <almightybeeij@gmail.com>
-
- (cherry picked from commit 27ed729c1088133400aa072eeca9e125942f2d94)
-
-commit 1ab2b481596ad5296e168bf8027e59d41190176e
-Author: xiexingguo <258156334@qq.com>
-Date: Tue Dec 22 17:05:06 2015 +0800
-
- ReplicatedPG: fix sparse-read result code checking logic
-
- Move ahead the result code checking logic before we continue to verify the trailing hole, otherwise
- the real result of non-hole reading may be overwritten and thus confuse caller.
-
- Fixes: #14151
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit b3aa29e324cf0a96a1f2f5dcf1ba998219457bcd)
-
- Conflicts:
- src/osd/ReplicatedPG.cc: trivial resolution
-
-commit 86f5cf6caa36760802775df19cdabe55bcafa33e
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 1 09:32:04 2016 -0500
-
- osd: clear pg_stat_queue after stopping pgs
-
- Fixes: #14212
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c25ff9927febe77cda31b534971b62f75c196ca2)
-
-commit b0856ee67c0e7cf6ab6095d3f657c18014859526
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 3 14:52:24 2015 -0800
-
- osd: Test osd_find_best_info_ignore_history_les config in another assert
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 02a9a41f151a3d968bf8066749658659dc6e3ac4)
-
-commit b2f1e76d8e95b6e2f88fa1c122ea8cd24532cd10
-Author: Joe Julian <jjulian@io.com>
-Date: Fri Oct 9 12:57:06 2015 -0700
-
- Compare parted output with the dereferenced path
-
- Compare parted output with the dereferenced path of the device as parted
- prints that instead of the symlink we called it with.
-
- http://tracker.ceph.com/issues/13438 Fixes: #13438
-
- Signed-off-by: Joe Julian <jjulian@io.com>
- (cherry picked from commit b3c7cb098195111b9c642e5a9b726b63717f2e0d)
-
-commit 9708e59a1fc2ae52cfae848ce585751bc9fbe572
-Merge: 9739d4d b62cac6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jan 11 09:01:12 2016 +0100
-
- Merge pull request #6512 from SUSE/wip-13734-hammer
-
- rgw: swift API returns more than real object count and bytes used when retrieving account metadata
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 5264bc677f0f612165987bf51fe7d7b4af32fa77
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Thu Jan 7 19:20:47 2016 +0000
-
- mon: OSDMonitor: do not assume a session exists in send_incremental()
-
- We may not have an open session for a given osd. If we blindly assume we
- do, we may end up trying to send incrementals we do not have to the osd.
-
- And then we will crash.
-
- This fixes a regression introduced by
-
- 171fee1b82d2675e364da7f96dfb9dd286d9b6e6
-
- which is meant as a backport of
-
- de43a02e06650a552f048dc8acd17f255126fed9
-
- but so happens to intruduce a line that wasn't on the original patch. We
- imagine it was meant to make the 's->osd_epoch' assignment work without
- checking the session, as per the original patch, but the backporter must
- have forgotten to also backport the assertion on the not-null session.
- The unfortunate introduction of the check for a not-null session
- triggered this regression.
-
- The regression itself is due to enforcing that a session exists for the
- osd we are sending the incrementals to. However, if we come via the
- OSDMonitor::process_failures() path, that may very well not be the case,
- as we are handling potentially-old MOSDFailure messages that may no
- longer have an associated session. By enforcing the not-null session, we
- don't check whether we have the requested versions (i.e., if
- our_earliest_version <= requested_version), and thus we end up on the
- path that assumes that we DO HAVE all the necessary versions -- when we
- may not, thus finally asserting because we are reading blank
- incremental versions.
-
- Fixes: #14236
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
-
-commit 4d0b9a1bbbabe7b27279a7b6e0a45f5b0d920c66
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon Dec 7 11:31:28 2015 +1000
-
- log: Log.cc: Assign LOG_DEBUG priority to syslog calls
-
- Fixes: #13993
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 8e93f3f45db681f82633ca695a7dc4e7bd030584)
-
-commit 26e832e76de90e0a751868b044ea745a97a5af82
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Dec 18 15:22:13 2015 -0500
-
- librbd: fix merge-diff for >2GB diff-files
-
- Fixes: #14063
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9739d4de49f8167866eda556b2f1581c068ec8a7
-Merge: d064636 a9d3f07
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 17 10:16:29 2015 -0500
-
- Merge pull request #6544 from liewegas/wip-smaller-object-info
-
- osd: make encoded object_info_t smaller to fit inside the XFS inode
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a9d3f078cb6cdaf7f8778ba1a07d333548a9d1a2
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 14 13:13:33 2015 -0500
-
- osd/osd_types: skip encoding newer object_info_t fields if they are unused
-
- This reduces the size of the encoded object_info_t in most cases,
- enough to get us under the 255 byte limit for a single inline
- xattr in XFS.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 1548a3fda7dd63e28792140e7e8ad1ac9b706e49
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 14 13:00:27 2015 -0500
-
- osd/ReplicatedPG: do not set local_mtime on non-tiered pool
-
- If a pool isn't tiered, don't bother with setting local_mtime. The only
- users are the tiering agent (which isn't needed if there is not tiering)
- and scrub for deciding if an object should get its digest recorded (we can
- use mtime instead).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 98bdb09bb8d632b2df0b252b3d9676fd9511a1c8
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 14 12:59:29 2015 -0500
-
- osd/PGBackend: use mtime for digest decision if local_mtime is empty
-
- If we don't have a local_mtime value, use mtime instead, for the purposes
- of deciding if we should record a digest after scrub.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit fe1c28dea4e5607a0c72eab1f046074616cd55a7
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 14 11:35:46 2015 -0500
-
- osd/ReplicatedPG: do not set omap digest if there is no omap
-
- We want to avoid encoding it if we can. And if the FLAG_OMAP is not set
- we don't need to *also* store an empty crc.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 6cf261cd2e80adbaf2898cb354c8159a57749e9d
-Author: xiexingguo <258156334@qq.com>
-Date: Mon Nov 2 21:46:11 2015 +0800
-
- Objecter: remove redundant result-check of _calc_target in _map_session.
-
- Result-code check is currently redundant since _calc_target never returns a negative value.
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit 5a6117e667024f51e65847f73f7589467b6cb762)
-
-commit 5d0b5c1389d8c0baddb40cc5ff8f1d9cc6a4d315
-Author: xiexingguo <258156334@qq.com>
-Date: Thu Oct 29 17:32:50 2015 +0800
-
- Objecter: potential null pointer access when do pool_snap_list.
-
- Objecter: potential null pointer access when do pool_snap_list. Shall check pool existence first.
- Fixes: #13639
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 865541605b6c32f03e188ec33d079b44be42fa4a)
-
-commit 66ff0aa0130973aa2bea3a1a4ec8f4e3e6c19da8
-Author: qiankunzheng <zheng.qiankun@h3c.com>
-Date: Thu Nov 5 07:29:49 2015 -0500
-
- auth/cephx: large amounts of log are produced by osd
- if the auth of osd is deleted when the osd is running, the osd will produce large amounts of log.
-
- Fixes:#13610
- Signed-off-by: Qiankun Zheng <zheng.qiankun@h3c.com>
- (cherry picked from commit 102f0b19326836e3b0754b4d32da89eb2bc0b03c)
-
-commit 61da13bbe271964c56116fb2bed51045290f951a
-Author: Chengyuan Li <chengyli@ebay.com>
-Date: Thu Nov 19 22:29:39 2015 -0700
-
- mon/PGMonitor: MAX AVAIL is 0 if some OSDs' weight is 0
-
- In get_rule_avail(), even p->second is 0, it's possible to be used
- as divisor and quotient is infinity, then is converted to an integer
- which is negative value.
- So we should check p->second value before calculation.
-
- It fixes BUG #13840.
-
- Signed-off-by: Chengyuan Li <chengyli@ebay.com>
- (cherry picked from commit 18713e60edd1fe16ab571f7c83e6de026db483ca)
-
-commit 53e81aab442855b34ee6e922f181bae3bf33e292
-Author: wangchaunhong <root@A22832429.(none)>
-Date: Tue Oct 20 18:40:23 2015 +0800
-
- init-ceph: fix systemd-run cant't start ceph daemon sometimes
-
- Fixes: #13474
- Signed-off-by: Chuanhong Wang <wang.chuanhong@zte.com.cn>
- (cherry picked from commit 2f36909e1e08bac993e77d1781a777b386335669)
-
- Conflicts:
- src/init-ceph.in
- different content of cmd variable
-
-commit c2c6d02591519dfd15ddcb397ac440322a964deb
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Mon Jul 6 09:56:11 2015 +0200
-
- tools: fix race condition in seq/rand bench
-
- Under certain conditions (like bench seq/rand -b 1024 -t 128) it is
- possible that aio_read reads data into destination buffers before or
- during memcmp execution, resulting in "[..] is not correct!" errors
- even if actual objects are perfectly fine.
- Also, moved latencty calculation around, so it is no longer affeted
- by memcmp.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-
- Conflicts:
- src/common/obj_bencher.cc
-
-commit a619b621b0a7c670eeaf163d9e2b742d13c9f517
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Wed May 20 12:41:22 2015 +0200
-
- tools: add --no-verify option to rados bench
-
- When doing seq and rand read benchmarks using rados bench, a quite large
- portion of cpu time is consumed by doing object verification. This patch
- adds an option to disable this verification when it's not needed, in turn
- giving better cluster utilization. rados -p storage bench 600 rand scores
- without --no-verification:
-
- Total time run: 600.228901
- Total reads made: 144982
- Read size: 4194304
- Bandwidth (MB/sec): 966
- Average IOPS: 241
- Stddev IOPS: 38
- Max IOPS: 909522486
- Min IOPS: 0
- Average Latency: 0.0662
- Max latency: 1.51
- Min latency: 0.004
-
- real 10m1.173s
- user 5m41.162s
- sys 11m42.961s
-
- Same command, but with --no-verify:
-
- Total time run: 600.161379
- Total reads made: 174142
- Read size: 4194304
- Bandwidth (MB/sec): 1.16e+03
- Average IOPS: 290
- Stddev IOPS: 20
- Max IOPS: 909522486
- Min IOPS: 0
- Average Latency: 0.0551
- Max latency: 1.12
- Min latency: 0.00343
-
- real 10m1.172s
- user 4m13.792s
- sys 13m38.556s
-
- Note the decreased latencies, increased bandwidth and more reads performed.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit ca6abca63de813c83a6960f83624be8e1a86a1f8)
-
- Conflicts:
- src/common/obj_bencher.cc
- src/common/obj_bencher.h
-
-commit d06463604cb8daeda288e824e8812352c0d6a7d9
-Merge: ec35347 609f256
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 2 20:48:00 2015 +0100
-
- Merge pull request #6527 from theanalyst/wip-12856-hammer
-
- rgw: missing handling of encoding-type=url when listing keys in bucket
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit ec35347d8fd7a0eb175710e6111a9196746e278c
-Merge: 487dc34 1b06f03
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 2 20:47:43 2015 +0100
-
- Merge pull request #6491 from SUSE/wip-13716-hammer
-
- rgw:swift use Civetweb ssl can not get right url
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 487dc3436a8fabd1b1a31563071c907bdf18f525
-Merge: 18d3ba3 99b4d1d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 2 20:47:27 2015 +0100
-
- Merge pull request #6351 from theanalyst/wip-13538-hammer
-
- rgw: orphan tool should be careful about removing head objects
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 18d3ba30323a44c1cc45bf4e870b8d9aeb5c3b0b
-Merge: 36e4db3 6d89f4b
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 2 20:47:09 2015 +0100
-
- Merge pull request #6349 from theanalyst/wip-13540-hammer
-
- rgw: get bucket location returns region name, not region api name
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 36e4db36f5ec9418672bbfe0dce6ae757f697efe
-Merge: 8c4145e db1cbe7
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 2 20:46:49 2015 +0100
-
- Merge pull request #5910 from kmroz/wip-hammer-backport-content-type
-
- rgw: backport content-type casing
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit ac05617b246d3c2a329b1b99b0371e3f6b8541e9
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 17 21:42:53 2015 -0400
-
- osd: fix send_failures() locking
-
- It is unsafe to check failure_queue.empty() without the lock.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b3ca828ae8ebc9068073494c46faf3e8e1443ada)
-
-commit 8c4145ecc4a68accdb2120889fd933e8f6630dba
-Merge: 4804eec 112c686
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Nov 25 08:47:10 2015 -0800
-
- Merge pull request #6587 from theanalyst/wip-13758-hammer
-
- common: pure virtual method called
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 4804eec095959c3747b13d29224b2cfa5b7d198d
-Merge: 9b97e4f e693755
-Author: Daniel Gryniewicz <dang@fprintf.net>
-Date: Wed Nov 25 10:49:15 2015 -0500
-
- Merge pull request #6352 from theanalyst/wip-13536-hammer
-
- rgw: bucket listing hangs on versioned buckets
-
-commit 9b97e4f6a41bb3fe7bae92b71ae266361022cf5c
-Merge: 5a9e0a7 0378445
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 25 16:48:09 2015 +0100
-
- Merge pull request #6589 from theanalyst/wip-13693-hammer
-
- osd: bug with cache/tiering and snapshot reads
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 5a9e0a722c654b83fc483e083ddb3035281f5397
-Merge: 3047f2b a322317
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 25 16:22:10 2015 +0100
-
- Merge pull request #6585 from theanalyst/wip-13753-hammer
-
- rbd: avoid re-writing old-format image header on resize
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 3047f2bc50d5d26e70e832bd427f15073bf7733c
-Merge: 407bd02 9c33dcc
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 23 19:57:03 2015 +0100
-
- Merge pull request #6586 from theanalyst/wip-13755-hammer
-
- rbd: QEMU hangs after creating snapshot and stopping VM
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 407bd0281582ebb3b50ce51bdb48244e22463c8f
-Merge: c3c400f bddbda1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 23 17:32:21 2015 +0100
-
- Merge pull request #6588 from theanalyst/wip-13770-hammer
-
- Objecter: pool op callback may hang forever.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c3c400f68d9c2593acd9485d1214d14af4e930d0
-Merge: d116959 a52f7cb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 23 15:13:24 2015 +0100
-
- Merge pull request #6430 from SUSE/wip-13654-hammer
-
- crush: crash if we see CRUSH_ITEM_NONE in early rule step
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 3f1292e117ab1cdcaef3b24ee33854f7be142795
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Sep 3 20:30:50 2015 +0200
-
- ceph.spec.in: fix License line
-
- This is closer to my reading of
- https://github.com/ceph/ceph/blob/master/COPYING than the previous version.
-
- http://tracker.ceph.com/issues/12935 Fixes: #12935
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit ef7418421b3748c712019c8aedd02b8005c1e1ea)
-
-commit d116959442f67c8f36898ca989b490ca84a609c6
-Merge: 12be099 74203b8
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 23 09:28:09 2015 +0100
-
- Merge pull request #6420 from SUSE/wip-13637-hammer
-
- FileStore: potential memory leak if getattrs fails.
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 12be099a7b0f2692c167af96928e939b2227160c
-Merge: 39c70d4 2052187
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Nov 21 09:10:27 2015 +0100
-
- Merge pull request #6528 from theanalyst/wip-13695-hammer
-
- init-rbdmap uses distro-specific functions
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 39c70d4364a1be39f7c393847417f44279b4364c
-Merge: 65aeba0 9643ee6
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Nov 21 09:07:13 2015 +0100
-
- Merge pull request #6499 from SUSE/wip-13692-hammer
-
- osd: do not cache unused memory in attrs
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 65aeba0b2f165d893d06df7e9bbe25f989edafe9
-Merge: 24d6698 394fbfc
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Nov 21 08:59:25 2015 +0100
-
- Merge pull request #6143 from dachary/wip-13340-hammer
-
- small probability sigabrt when setting rados_osd_op_timeout
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 24d66981d351848c44ae9e0395dad392f852be2b
-Merge: 5d204db 171fee1
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Nov 21 08:58:11 2015 +0100
-
- Merge pull request #5773 from tchaikov/wip-12835-hammer
-
- mon: map_cache can become inaccurate if osd does not receive the osdmaps
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a81bcf723c1099f2bea5daf8b01b7d9853de323a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 15 00:15:54 2015 -0400
-
- ceph_context: remove unsafe cast for singletons
-
- It was previously assumed that a CephContext singleton would
- inherit from CephContext::AssociatedSingletonObject, but it was
- not enforced. This could result in unknown behavior when the
- singleton is destroyed due to the implied virtual destructor.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fb62c78637d7092f48871d943282f45029bd6d29)
-
-commit d50d7b2fa3751e8520694ee75eefe5ae56e57267
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 22:53:28 2015 -0400
-
- osd: conditionally initialize the tracepoint provider
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0009f343a5daf28358a669836d95660c0d9068d8)
-
-commit bf34b3657339dc40c7939fcdddaf2b7ae78c82ad
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 22:37:05 2015 -0400
-
- librados: conditionally initialize the tracepoint provider
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6368c281b53d6175a564725b85516de4b6ae54de)
-
-commit afc4f176f8371f0e61ce3463602f8a355b9283b9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 22:10:10 2015 -0400
-
- librbd: conditionally initialize the tracepoint provider
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1a6eea95bd1ccef53f01cf53e493e652faa203ee)
-
- Conflicts:
- src/librbd/librbd.cc: trivial resolution
-
-commit c82f93915875875b21ed779e7aaf297b8fbcdca1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 19:17:08 2015 -0400
-
- common: new tracing config options
-
- Config options to enable LTTng-UST tracepoint providers for
- the OSD, OSD objectstore, librados, and librbd.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2ccef89badb1f7a63721a0bf48d05eb4c2d0a97a)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
-
-commit 2168c151066e0cea86284ffdf947a353f3b323d5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 18:49:32 2015 -0400
-
- tracing: merge tracepoint provider makefiles into main makefile
-
- This results in the tracepoint provider shared libraries being
- placed in the library path for unittests.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e11d8d68da27a1c224aa55fc40a72ac6aaa0441c)
-
- Conflicts:
- configure.ac: trivial resolution
- src/Makefile.am: trivial resolution
-
-commit d02beff1cf7650fe6e57cdafe64dcbee2631ed52
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 30 15:13:24 2015 -0400
-
- tracing: dynamic tracepoint provider helper
-
- The TracepointProvider class is a configuration observer. When
- tracing is enabled, it will dynamically load the associated
- tracepoint provider.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b3d02cc21b4cc40a194f84a9bbbf82cf9e7956d1)
-
- Conflicts:
- src/common/Makefile.am: trivial resolution
-
-commit e53d66e42b1c3aea47832f7e8983284ec45d9efa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 29 14:33:48 2015 -0400
-
- packaging: add new tracepoint probe shared libraries
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a7ed8e161b27c7852bf0f3a23a977ebd39137943)
-
-commit bb7c0f501918b75dee97052faeafb1d6db61bd0a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 29 14:30:43 2015 -0400
-
- ceph.spec.in: add new tracepoint probe shared libraries
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f4feee2f9dcd7b94476701b66d1f0bdf6fb6e0c2)
-
- Conflicts:
- ceph.spec.in: trivial resolution
-
-commit e1da27134e4c9b4a2881aca664818598e5b2125b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 29 14:13:46 2015 -0400
-
- lttng: move tracepoint probes to dynamic libraries
-
- LTTng-UST initializes itself at program load, which means it is
- currently always enabled. This can lead to issues with SElinux
- and AppArmor which might restrict access to the necessary device
- files.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4a5305e41677885d45b2b74299113a3d00189c66)
-
- Conflicts:
- src/test/Makefile-client.am: trivial resolution
- src/tracing/Makefile.am: trivial resolution
-
-commit 5d204db85b2ed84411cfabea9eb73aa04c6ce05a
-Merge: 1dbd4c6 8378aaf
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 19 19:45:25 2015 +0100
-
- Merge pull request #6580 from dachary/wip-13786-hammer
-
- rbd-replay-* moved from ceph-test-dbg to ceph-common-dbg as well
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1dbd4c66307e615670c7569f107418876f8b977f
-Merge: 24a5dc0 634d7f6
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 19 19:45:03 2015 +0100
-
- Merge pull request #6286 from dillaman/wip-13460-hammer
-
- rbd-replay-prep and rbd-replay improvements
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 24a5dc0a6b4f73c92c82e1933a1924db3f8e1090
-Merge: d27da2e 6a40e4f
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 19 19:41:20 2015 +0100
-
- Merge pull request #5790 from SUSE/wip-12932-hammer
-
- Miscellaneous spec file fixes
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d27da2ee8fa3e074fdd91d414df2d59978db9497
-Merge: 7d21127 8358fb8
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Thu Nov 19 19:13:11 2015 +0800
-
- Merge pull request #6644 from dachary/wip-13812-upgrade
-
- revert: osd: use GMT time for hitsets
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 8358fb8946d8809d695092baa4a6abf5d5b5e265
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 18 18:08:58 2015 +0100
-
- revert: osd: use GMT time for hitsets
-
- "Merge pull request #5825 from tchaikov/wip-12848-hammer"
-
- This reverts commit 39544718dc2f09bcfdc632ac72fd2a3cda87687e, reversing
- changes made to 4ad97162026e1eb6e6e948ddf3eb39f711431e45.
-
- http://tracker.ceph.com/issues/13812 Fixes: #13812
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit 4420929eacb67d17635fed53f15471a28942f31d
-Author: brian <bjfelton@gmail.com>
-Date: Wed Sep 23 09:49:36 2015 -0500
-
- rgw: fix modification to index attrs when setting acls
-
- Fixes: #12955
-
- - add ACL change after initial population
- - populate bufferlist with object attributes
-
- Signed-off-by: Brian Felton <bjfelton@gmail.com>
- (cherry picked from commit 7496741ebbd75b74d5ffeca5341cccb2318176e6)
-
-commit 7d21127f433afa2d9172954e7b8ff47c40d2d62b
-Merge: 6930601 1448915
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 17 10:24:45 2015 +0100
-
- Merge pull request #6402 from SUSE/wip-13621-hammer
-
- CephFS restriction on removing cache tiers is overly strict
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 693060102594a2c505bed1e7e274731b554e9179
-Merge: c2daf09 3f33ce6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 22:06:51 2015 +0100
-
- Merge pull request #6354 from theanalyst/wip-13387-hammer
-
- librbd: reads larger than cache size hang
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit c2daf09fc6b8802240e13367a0a2f3349a7cca56
-Merge: 1ca72fb af734e6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 19:48:07 2015 +0100
-
- Merge pull request #6289 from dillaman/wip-13461-hammer
-
- librbd: invalidate object map on error even w/o holding lock
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1ca72fbe6be0d664a3cbbd4356a8547c3b749a03
-Merge: ca573fe 3e65730
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 18:06:25 2015 +0100
-
- Merge pull request #6153 from dachary/wip-13205-hammer
-
- ReplicatedBackend: populate recovery_info.size for clone (bug symptom is size mismatch on replicated backend on a clone in scrub)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit ca573fe7ac5a699b77cacb8fedfa50fffc77dd52
-Merge: fdb3446 7161a2c
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 18:06:12 2015 +0100
-
- Merge pull request #6158 from dachary/wip-13336-hammer
-
- osd: we do not ignore notify from down osds
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit fdb3446194743135b78a65c30a8285d001e563b6
-Merge: f017566 0ad9521
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 18:06:01 2015 +0100
-
- Merge pull request #6335 from Abhishekvrshny/wip-13488-hammer
-
- object_info_t::decode() has wrong version
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f017566823af70323b7d4cbe1f7b3b761378d07e
-Merge: a79acd4 9f3aebe
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 16 18:05:39 2015 +0100
-
- Merge pull request #6401 from SUSE/wip-13620-hammer
-
- osd: pg stuck in replay
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 8378aaf3f9d5463fb61a19d601201dd63a884419
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Nov 13 19:10:28 2015 +0100
-
- build/ops: rbd-replay moved from ceph-test-dbg to ceph-common-dbg
-
- http://tracker.ceph.com/issues/13785 Fixes: #13785
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit a0204dc47acc0c50223e449fd23a2fc97bfd111a)
-
- Conflicts:
- debian/control: << 0.94.5-2 is appropriate for hammer
-
-commit 03784457ab77617ddafc048b01044858b1e65bd3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 29 22:26:48 2015 +0800
-
- osd: fix the snapshot reads of evicted tiering pool
-
- reset ssc->exsits in finish_ctx() if the ctx->cache_evict is true, and
- the head is removed.
-
- Fixes: #12748
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b61f3e43f1c9d43daa0dedd7cbd0fe5787cbdfbb)
-
-commit bddbda121c8d52ba8e50abd0341f14e332c6af5a
-Author: xiexingguo <258156334@qq.com>
-Date: Thu Oct 29 20:04:11 2015 +0800
-
- Objecter: pool_op callback may hang forever.
-
- pool_op callback may hang forever due to osdmap update during reply handling.
- Fixes: #13642
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit 00c6fa9e31975a935ed2bb33a099e2b4f02ad7f2)
-
-commit 112c686ffc98e3739c9944635f4044e2b34f210a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 7 12:11:13 2015 -0400
-
- WorkQueue: new PointerWQ base class for ContextWQ
-
- The existing work queues do not properly function if added to a running
- thread pool. librbd uses a singleton thread pool which requires
- dynamically adding/removing work queues as images are opened and closed.
-
- Fixes: #13636
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e78b18b09d75626ca2599bac3b9f9c9889507a5)
-
- Conflicts:
- src/common/WorkQueue.h
- Trivial merge conflict at class `ContextWQ` initialization
-
-commit 9c33dccaad9a4cdd46e9ecfa1e3ba6c03d95885a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 9 11:22:24 2015 -0500
-
- librbd: fixed deadlock while attempting to flush AIO requests
-
- In-flight AIO requests might force a flush if a snapshot was created
- out-of-band. The flush completion was previously invoked asynchronously,
- potentially via the same thread worker handling the AIO request. This
- resulted in the flush operation deadlocking since it can't complete.
-
- Fixes: #13726
- Backport: infernalis, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit bfeb90e5fe24347648c72345881fd3d932243c98)
-
-commit b3b7877f9b4b3f43acab09d0dd6ee971b6aa1c29
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 9 10:48:10 2015 -0500
-
- tests: new test case to catch deadlock on RBD image refresh
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a9729d9553e7fb925509cad8d388cf52a9fede9c)
-
-commit a3223173f85c42147ff4ced730beffe85146a4ed
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 2 16:50:19 2015 -0500
-
- librbd: resize should only update image size within header
-
- Previously, the whole RBD image format 1 header struct was
- re-written to disk on a resize operation.
-
- Fixes: #13674
- Backport: infernalis, hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d5be20b6d4646284571568ab28cbf45b0729390b)
-
-commit 6a40e4f19d7b4cd45a25161303c7363e96fe799e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Sep 29 10:39:16 2015 +0200
-
- ceph.spec.in: lttng in SLES12 only
-
- Over in the SUSE sector, we are trying to enable the SLE_12 and openSUSE_13.2
- build targets. The lttng/babeltrace stuff is currently available only in
- SLE_12.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit bf9ca1eb107c4462d8768faf3ff4db7972384ffd)
-
- Conflicts:
- ceph.spec.in
- trivial resolution
-
-commit e508a44485366557ac8a280de35584f3b5edf720
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 15 12:54:20 2015 +0200
-
- ceph.spec.in: fix lttng/babeltrace conditionals
-
- lttng and babeltrace are build dependencies for rbd-replay-prep. Make
- sure the right package names are used. Enable for SLE12, as well as
- for openSUSE 13.1 and higher.
-
- Move the BuildRequires out of the ceph-test subpackage and into the
- distro-conditional dependencies section.
-
- Make ordering of BuildRequires a little more alphabetical.
-
- http://tracker.ceph.com/issues/12360 Fixes: #12360
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit e267128ce22d8b8cd83f6d6d82f24f496600e678)
-
- Conflicts:
- ceph.spec.in
- Dropped Requires: xmlstarlet in ceph-test that had inadvertently
- been grabbed from d2cc2b1
-
-commit 19c9546b79f506d0b4ee005a138a77f120c629e8
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Sep 8 10:41:02 2015 -0600
-
- packaging: move rbd-replay* to ceph-common
-
- The rbd-replay* utilities are useful for Ceph users with RBD clients.
- Currently the rbd-replay* utilities ship in the "ceph-test" package, and
- we intend this ceph-test package for Ceph developers and contributors,
- not normal users.
-
- Move the rbd-replay* utilities to "ceph-common".
-
- http://tracker.ceph.com/issues/12994 Fixes: #12994
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 96486fd6f284ca3ab67f4f94631896d41c529e85)
-
- Conflicts:
- ceph.spec.in
- 50a33dea has not been backported to hammer
- debian/ceph-test.install
- 50a33dea has not been backported to hammer
- debian/control
- different ceph-test Replaces: and Breaks: version
-
-commit a79acd41187e6b049432bdc314f192e3fbb560a3
-Merge: 3d61493 31b7864
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 11 11:59:36 2015 +0100
-
- Merge pull request #6213 from SUSE/wip-13425-hammer
-
- wrong conditional for boolean function KeyServer::get_auth()
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 3d61493337d481dec5139ccb6172710a118b2009
-Merge: 147f437 7ffd072
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 11 06:59:55 2015 +0100
-
- Merge pull request #6336 from Abhishekvrshny/wip-13535-hammer
-
- LibRadosWatchNotify.WatchNotify2Timeout
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 147f437279e72c0766a126653e3db53abb73a4ac
-Merge: 1970e61 9085c82
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 11 06:59:42 2015 +0100
-
- Merge pull request #6391 from SUSE/wip-13590-hammer
-
- mon: should not set isvalid = true when cephx_verify_authorizer return false
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1970e618209a242fc0bd3c707dfdfb1a886d6a2c
-Merge: fb83704 ade0f1a
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 11 06:58:55 2015 +0100
-
- Merge pull request #6398 from SUSE/wip-13588-hammer
-
- OSD::build_past_intervals_parallel() shall reset primary and up_primary when begin a new past_interval.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 3d3595f86083a0f9847585eae4cffb8a82c816d4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 27 10:13:27 2015 -0400
-
- krbd: remove deprecated --quiet param from udevadm
-
- This parameter has been removed since systemd 213, so this
- effects Fedora 21+, Debian Jessie, and potentially future
- releases of RHEL 7.
-
- Fixes: #13560
- Backport: hammer, infernalis
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4300f2a9fe29627eea580564ff2d576de3647467)
-
-commit 4d81cd19087e049bf3c2fe0d10de9215852ab51d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 27 10:12:34 2015 -0400
-
- run_cmd: close parent process console file descriptors
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f46f7dc94139c0bafe10361622416d7dc343d31f)
-
-commit fb83704d5db81aad95c61a61be52d07ce2d4d2b5
-Merge: 3954471 0742177
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 20:24:35 2015 +0100
-
- Merge pull request #6199 from liewegas/wip-randomize-scrub-hammer
-
- osd: randomize scrub times
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 39544718dc2f09bcfdc632ac72fd2a3cda87687e
-Merge: 4ad9716 6a4734a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 20:23:23 2015 +0100
-
- Merge pull request #5825 from tchaikov/wip-12848-hammer
-
- ReplicatedPG::hit_set_trim osd/ReplicatedPG.cc: 11006: FAILED assert(obc)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2052187929e059a25f6a3baf67329f7ce0bf6d8a
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Oct 23 15:31:27 2015 +0200
-
- init-rbdmap: Rewrite to use logger + clean-up
-
- This patch rewrites the init-rbdmap init script so that it uses logger
- instead of the log_* functions. The patch also fixes various smaller
- bugs like:
- * MAP_RV was undefined if mapping already existed
- * UMNT_RV and UMAP_RV were almost always empty (if they succeeded) ->
- removed them
- * use of continue instead RET_OP in various places (RET_OP was not being
- checked after the switch to logger messages)
- * removed use of DESC (used only twice and only one occurrence actually
- made sense)
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit c567341e98fffbe39177f951511a7698f88abf5f)
-
-commit f972f38445bc7a6efe122a5f9fc2ba7658625e26
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Oct 23 16:39:16 2015 +0200
-
- ceph.spec.in: We no longer need redhat-lsb-core
-
- Drop the redhat-lsb-core dependency as it is no longer necessary on
- fedora/rhel.
-
- The other two init scripts do not use redhat-lsb-core either. The
- init-ceph.in conditionally requires /lib/lsb/init-functions and does not
- use any of the functions defined in that file (at least not directly).
- The init-radosgw file includes /etc/rc.d/init.d/functions on non-debian
- platforms instead of /lib/lsb/init-functions file so it does not require
- redhat-lsb-core either.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 15600572265bed397fbd80bdd2b7d83a0e9bd918)
-
- Conflicts:
- ceph.spec.in
- Merge conflict because there were other commits that introduced systemd
- & SUSE specific bits in the master which havent yet reached
- hammer. Since this commit only removed redhat-lsb-core from *el distros
- removing the specific lines
-
-commit 609f256a00f6ee18564ee055dd79f8293217940c
-Author: Jeff Weber <jweber@cofront.net>
-Date: Wed Aug 5 19:06:46 2015 -0400
-
- rgw: implement s3 encoding-type for get bucket
-
- This change introduces handling for the encoding-type request
- parameter on the get bucket operation. An object key may contain
- characters which are not supported in XML. Passing the value "url" for
- the encoding-type parameter will cause the key to be urlencoded in the
- response.
-
- Fixes: #12735
- Signed-off-by: Jeff Weber <jweber@cofront.net>
- (cherry picked from commit 180ca7b56ba91a3995c76dac698aa4ee31d9a2ce)
-
-commit 394fbfcc40d77ad6c8b3301c5ff2630c052107cd
-Author: Ruifeng Yang <yangruifeng.09209@h3c.com>
-Date: Fri Sep 25 10:18:11 2015 +0800
-
- Objecter: maybe access wild pointer(op) in _op_submit_with_budget.
-
- look at "after giving up session lock it can be freed at any time by response handler" in _op_submit,
- so the _op_submit_with_budget::op maybe is wild after call _op_submit.
-
- Fixes: #13208
- Signed-off-by: Ruifeng Yang <yangruifeng.09209@h3c.com>
- (cherry picked from commit 0635b1358354b19ae44105576f730381f3b5b963)
-
-commit 84068f8cea0452333f00f8b65230c00caa2e52ff
-Author: Ruifeng Yang <yangruifeng.09209@h3c.com>
-Date: Fri Sep 25 12:42:28 2015 +0800
-
- Objecter: repeated free op->ontimeout.
-
- repeated free op->ontimeout in SafeTimer::timer_thread::callback->complete
-
- Fixes: #13208
- Signed-off-by: Ruifeng Yang <yangruifeng.09209@h3c.com>
- (cherry picked from commit f1d8a8f577cee6d66f4dcffac667675f18145ebb)
-
-commit 3e657304dc41facd40b8cab7531180083d14d22a
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Aug 28 12:46:57 2015 -0700
-
- ReplicatedBackend::prepare_pull: set recover_info.size for clones
-
- Fixes: #12828
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1d3e46bedb9a8c0d2200e39f62f4e2c3337619f3)
-
-commit 4ad97162026e1eb6e6e948ddf3eb39f711431e45
-Merge: 92b2153 f1271ea
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:34:01 2015 +0100
-
- Merge pull request #6157 from dachary/wip-13040-hammer
-
- common/Thread:pthread_attr_destroy(thread_attr) when done with it
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 92b21532f64792da023188d9aa620d900c0245ca
-Merge: 1f02886 a17f2a9
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:33:41 2015 +0100
-
- Merge pull request #6155 from dachary/wip-13171-hammer
-
- objecter: cancellation bugs
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1f02886d7edc10ff93074afc3d2bf4cf77c709d5
-Merge: 77df385 7d4b303
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:33:19 2015 +0100
-
- Merge pull request #6152 from dachary/wip-13233-hammer
-
- mon: include min_last_epoch_clean as part of PGMap::print_summary and PGMap::dump
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 77df385e23452f401f3c0c269e220446d288fb8e
-Merge: 469398f d8ca88d
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:33:01 2015 +0100
-
- Merge pull request #6146 from dachary/wip-13337-hammer
-
- segfault in agent_work
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 469398f14b62af01068e65bcc5cc7c585a04e878
-Merge: d87d136 397042a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:32:53 2015 +0100
-
- Merge pull request #6145 from dachary/wip-13338-hammer
-
- filestore: fix peek_queue for OpSequencer
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d87d1364fb8e345a1f85b65c2d4c7c80596ba5f9
-Merge: 717eff9 d4e4d85
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:32:42 2015 +0100
-
- Merge pull request #6144 from dachary/wip-13339-hammer
-
- mon: check for store writeablility before participating in election
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 717eff9a61818fde71ec5220998e9b5c14bbb3a9
-Merge: e133ddc e8cce08
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:30:54 2015 +0100
-
- Merge pull request #5891 from Abhishekvrshny/wip-13035-hammer
-
- requeue_scrub when kick_object_context_blocked
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e133ddc622d3532b0182c208f0ebb9956daab44f
-Merge: c72306a 8ee93d5
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:30:38 2015 +0100
-
- Merge pull request #5890 from Abhishekvrshny/wip-13037-hammer
-
- hit set clear repops fired in same epoch as map change -- segfault since they fall into the new interval even though the repops are cleared
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c72306a1dd3b193948d5df3371471797d4131cfe
-Merge: 5e8c9d9 2bd5d0b
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Nov 10 10:21:07 2015 +0100
-
- Merge pull request #6322 from sponce/WIP-13210-hammer
-
- tests : BACKPORT #13210 Fixed broken Makefiles after integration of ttng into rados
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit b62cac6c345df53bbda1c42a5336cffc8f0f9652
-Author: Sangdi Xu <xu.sangdi@h3c.com>
-Date: Wed Sep 23 19:31:32 2015 +0800
-
- rgw: fix swift API returning incorrect account metadata
-
- Fixes: #13140
-
- Fix the bug that swift account stat command returns doubled object count and bytes used
-
- Signed-off-by: Sangdi Xu <xu.sangdi@h3c.com>
- (cherry picked from commit 66d19c78ba75b79190c81c95f94e7ef3084fda9e)
-
-commit 9643ee65a6e968e479ca33a102f5f575924a7ff0
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Sun Aug 2 18:36:40 2015 +0800
-
- bug fix: osd: do not cache unused buffer in attrs
-
- attrs only reference the origin bufferlist (decode from MOSDPGPush or
- ECSubReadReply message) whose size is much greater than attrs in recovery.
- If obc cache it (get_obc maybe cache the attr), this causes the whole origin
- bufferlist would not be free until obc is evicted from obc cache. So rebuild
- the bufferlist before cache it.
-
- Fixes: #12565
- Signed-off-by: Ning Yao <zay11022@gmail.com>
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit c5895d3fad9da0ab7f05f134c49e22795d5c61f3)
-
-commit 5e8c9d967e0ade393e36893965ca8ddfaa317b48
-Merge: db0366d dba8b5b
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 9 08:38:31 2015 +0100
-
- Merge pull request #5810 from Abhishekvrshny/wip-12948-hammer
-
- Heavy memory shuffling in rados bench
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 1b06f03b541983461469f8f53ef2a271b08d2f78
-Author: Weijun Duan <duanweijun@h3c.com>
-Date: Thu Oct 29 21:46:02 2015 -0400
-
- rgw:swift use Civetweb ssl can not get right url
-
- Fixes: #13628
-
- Signed-off-by: Weijun Duan <duanweijun@h3c.com>
- (cherry picked from commit e0fd540bf441e2f8276cbd96c601a0539892efe2)
-
-commit db0366dd979cc0d401b1974c233e38dfe5b1b5d1
-Merge: 22dce75 a65c398
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 5 13:12:11 2015 +0100
-
- Merge pull request #5530 from SUSE/wip-12587-hammer
-
- FileStore calls syncfs(2) even it is not supported
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 22dce75181b254548226fc09decafac14dcf84a6
-Merge: ed153c1 d8ac510
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 19:38:53 2015 +0100
-
- Merge pull request #5889 from Abhishekvrshny/wip-13042-hammer
-
- ThreadPool add/remove work queue methods not thread safe
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ed153c13226138eec71e472d1e3c8481db9b9009
-Merge: ca8802f 8610de8
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 19:14:28 2015 +0100
-
- Merge pull request #6151 from dachary/wip-13245-hammer
-
- client nonce collision due to unshared pid namespaces
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ca8802fb0cb8603267ecfc7320fee7a679617b8b
-Merge: 19450b9 6e29e90
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:36:39 2015 +0100
-
- Merge pull request #6159 from dachary/wip-13341-hammer
-
- ceph upstart script rbdmap.conf incorrectly processes parameters
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 19450b90e4c20556580d276bab7dafb23db1758f
-Merge: 18882c8 6849288
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:34:07 2015 +0100
-
- Merge pull request #6154 from dachary/wip-13195-hammer
-
- should recalc the min_last_epoch_clean when decode PGMap
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 18882c81a71c4b517cb0eaa5a884637ea5cbe7a6
-Merge: de4f37b 3c1f7cb
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:28:03 2015 +0100
-
- Merge pull request #6132 from SUSE/wip-13307-hammer
-
- dumpling incrementals do not work properly on hammer and newer
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit de4f37bb0abc932c813983792e170de1bb40241b
-Merge: 1c632a7 24268cf
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:23:14 2015 +0100
-
- Merge pull request #6097 from dillaman/wip-13045-hammer
-
- librbd: diff_iterate needs to handle holes in parent images
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1c632a7ea7057522fb9df61994b5b3cf65416689
-Merge: bedb334 71a42f7
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:22:25 2015 +0100
-
- Merge pull request #6060 from XinzeChi/wip-hammer-outdata-set
-
- bug fix: osd: avoid multi set osd_op.outdata in tier pool
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit bedb3344f6c802ea04a171dabd4fb596284af34a
-Merge: 0d3d819 cecd68d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:20:50 2015 +0100
-
- Merge pull request #5897 from tchaikov/wip-12940-hammer
-
- IO error on kvm/rbd with an erasure coded pool tier
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0d3d81951db61a97f6cb26d9f75e80a3400a2a37
-Merge: 381cfcc 7475a8f
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:11:00 2015 +0100
-
- Merge pull request #5787 from SUSE/wip-12923-hammer
-
- logrotate reload error on Ubuntu 14.04
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 381cfccf38bade28a001f3f24392c61896b3c711
-Merge: cad1cfb 86f88df
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:10:26 2015 +0100
-
- Merge pull request #5766 from dachary/wip-12590-hammer
-
- ceph mds add_data_pool check for EC pool is wrong
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit cad1cfb088b095e8333c4a7d79ccefc2b2c4d782
-Merge: 9764da5 e8d6d5a
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 4 11:06:18 2015 +0100
-
- Merge pull request #5361 from ceph/wip-11786.hammer
-
- mon: MonitorDBStore: get_next_key() only if prefix matches
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5105d50d1c20d465229189bbb24cdfb5d16cf7bc
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Nov 3 00:21:51 2015 +0100
-
- tests: test/librados/test.cc must create profile
-
- Now that the create_one_ec_pool function removes the testprofile each
- time it is called, it must create the testprofile erasure code profile
- again for the test to use.
-
- http://tracker.ceph.com/issues/13664 Refs: #13664
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a60342942b5a42ee04d59af77a6b904ce62eefc4)
-
-commit 302375068a59b86c50bda73ecefd99831ab52ea4
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Nov 2 20:24:51 2015 +0100
-
- tests: destroy testprofile before creating one
-
- The testprofile erasure code profile is destroyed before creating a new
- one so that it does not fail when another testprofile erasure code
- profile already exists with different parameters.
-
- This must be done when creating erasure coded pools with the C++
- interface, in the same way it's done with the C interface.
-
- http://tracker.ceph.com/issues/13664 Fixes: #13664
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 47abab9a6f182aa0abe5047c04402850379bcd6d)
-
-commit 3a7423dbe0a6af831d4c47acc98e6ced5ed5fe0c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Nov 2 20:23:52 2015 +0100
-
- tests: add destroy_ec_profile{,_pp} helpers
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit ab46d79bc09fc711fa35302f49eecac81a98519b)
-
-commit a52f7cb372339dffbeed7dae8ce2680586760754
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 13 09:55:01 2015 -0400
-
- crush/mapper: ensure take bucket value is valid
-
- Ensure that the take argument is a valid bucket ID before indexing the
- buckets array.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 93ec538e8a667699876b72459b8ad78966d89c61)
-
-commit 81d8aa14f3f2b7bf4bdd0b4e53e3a653a600ef38
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 27 20:55:26 2015 -0400
-
- crush/mapper: ensure bucket id is valid before indexing buckets array
-
- We were indexing the buckets array without verifying the index was within
- the [0,max_buckets) range. This could happen because a multistep rule
- does not have enough buckets and has CRUSH_ITEM_NONE
- for an intermediate result, which would feed in CRUSH_ITEM_NONE and
- make us crash.
-
- Fixes: #13477
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 976a24a326da8931e689ee22fce35feab5b67b76)
-
-commit 74203b806e8c268aa3edac8cfc7c4b393f7b1f27
-Author: xiexingguo <258156334@qq.com>
-Date: Mon Oct 26 18:38:01 2015 +0800
-
- FileStore: potential memory leak if _fgetattrs fails
-
- Memory leak happens if _fgetattrs encounters some error and simply returns.
- Fixes: #13597
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit ace7dd096b58a88e25ce16f011aed09269f2a2b4)
-
-commit db1cbe700e41ee7a2db5ef10173c429283bc5a2a
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Fri Sep 4 01:07:48 2015 +0000
-
- Fix casing of Content-Type header
-
- It turns out, despite the HTTP spec declaring that header field names
- should be case-insensitive, some clients treat them wrongly, and
- consider "Content-type" to not match "Content-Type".
-
- CyberDuck was one of those clients, now fixed upstream in
- https://trac.cyberduck.io/ticket/8999
-
- To reduce future occurances of this bug, fix the casing of the
- Content-Type header, to strictly comply with the HTTP specification (be
- strict about what you send, and generous about what you receive).
-
- Fixes: #12939
- Backport: infernalis, hammer, firefly
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 1b9fbffdc24160251b96cec820d62fb2a12b6eab)
-
-commit 1448915e49bb6c8abc192053e6f2e8a380c4e92a
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Jun 1 13:55:22 2015 +0100
-
- qa: update cephtool test for CephFS tier cases
-
- 1. Creating a filesystem using a
- readonly tier on an EC pool (should be forbidden)
- 2. Removing a tier from a replicated base pool (should
- be permitted)
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit f9b11b0abe7c2b0dcdfc5802336be8a0426ccb3a)
-
-commit 14c36f0ccf103dea39b63e0e1b03082b99c42cb1
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Jun 1 13:54:25 2015 +0100
-
- mon: forbid readonly cache tiers for CephFS
-
- For EC pools, we need a tier that is not just forwarding
- writes, in order to provide the ops required
- by CephFS.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 11e5faf3c1d4fa28a8b41e3a92f0f684a844e5f5)
-
-commit 31e59fbca0ba636fc57c208e612d7488a48a6287
-Author: John Spray <john.spray@redhat.com>
-Date: Thu May 7 14:23:37 2015 +0100
-
- mon: refine check_remove_tier checks
-
- Fixes: #11504
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit a50c8f1f2ad8845c7f77110868f9376f2d1ff883)
-
-commit 9f3aebee16e256888b149fa770df845787b06b6e
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 22 13:57:37 2015 -0400
-
- osd: fix requeue of replay requests during activating
-
- If the replay period expires while we are still in the activating
- state, we can simply insert our list of requests at the front of
- the waiting_for_active list.
-
- Fixes: #13116
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d18cf51d9419819cdda3782b188b010969288911)
-
-commit ade0f1a4285348c20fbae8e2a366fc332a7b7fbe
-Author: xiexingguo <258156334@qq.com>
-Date: Tue Oct 13 14:04:20 2015 +0800
-
- OSD:shall reset primary and up_primary fields when beginning a new past_interval.
-
- Shall reset primary and up_primary fields when we start over a new past_interval in OSD::build_past_intervals_parallel().
- Fixes: #13471
- Signed-off-by: xie.xingguo@zte.com.cn
- (cherry picked from commit 65064ca05bc7f8b6ef424806d1fd14b87add62a4)
-
-commit 9085c820491f25a04ec02accc5098c1ab9b57311
-Author: yangruifeng <yangruifeng.09209@h3c.com>
-Date: Mon Oct 19 08:08:12 2015 -0400
-
- mon: should not set isvalid = true when cephx_verify_authorizer return false
-
- Fixes: #13525
- Signed-off-by: Ruifeng Yang <yangruifeng.09209@h3c.com>
- (cherry picked from commit c7f75b8f7c0a773148ec16141941efd00ee76626)
-
-commit 4875d05a3e265e80463a2a33a2c922affb0dad66
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Mon Mar 16 10:02:35 2015 -0600
-
- ceph.spec.in: rm EOL Fedoras; add OBS RHEL5 instead
-
- Fedora 12 has been EOL for a long time. Remove the reference in the
- RPM .spec file.
-
- Since RHEL 5 support for Ceph is a work in progress, we won't remove
- this entire python_sitelib / python_sitearch conditional for now, since
- those are still needed on RHEL 5.
-
- Add the rhel_version macro to make the conditional compatible with
- SUSE's OBS.
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 353a3258968f76deaea4542d2165e9ab32b88de8)
-
-commit dfba6acce75eea02251e98e2d57e6fbb344241fa
-Author: Travis Rhoden <trhoden@redhat.com>
-Date: Thu May 7 20:13:53 2015 -0400
-
- packaging: Add rgw placeholder dirs in proper packages
-
- Automatically create /var/lib/ceph/radosgw with the
- ceph-radosgw package, and /var/lib/ceph/bootstrap-rgw
- via the ceph package.
-
- Signed-off-by: Travis Rhoden <trhoden@redhat.com>
- (cherry picked from commit bf93128f664ac74383806530a1f974edde8df5b6)
-
- Conflicts:
- ceph.spec.in
- hammer uses %ghost
-
-commit 2387c8e0caef00e7181241e16549457d58a12192
-Author: Nathan Cutler <ncutler@suse.cz>
-Date: Fri May 15 21:39:39 2015 +0200
-
- ceph.spec.in: consolidate centos/rhel macros
-
- 0%{?rhel} || 0%{?centos} can be simplified to just 0%{?rhel}, since
- CentOS defines that macro for compatibility with RHEL.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.cz>
- (cherry picked from commit 46404dd381e240634d224e77adc69f0ba4807045)
-
- Conflicts:
- ceph.spec.in
- https://github.com/ceph/ceph/pull/4068 has not been backported
-
-commit 7c58d312db2aa42088f419dbfa7e841d897fdad6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jun 25 16:55:10 2015 +0200
-
- packaging: make logrotate a hard dependency across all distros
-
- Given ceph's reputation for voluminous logs, it makes sense for
- logrotate to be a hard dependency for all distros.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 0734cd1ec3ca3bd012686dc1bdda675909224a49)
-
-commit 61acc4e20ca58e11b9aba1efcdca78d1d7ddd2f7
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jul 9 12:05:24 2015 +0200
-
- ceph.spec.in: add missing -%{release}
-
- We have it everywhere else and I can't think of any reason why
- it should be omitted here.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit d952d59ae95d5f66aa4b98fd7aa4f4ecb36a4848)
-
-commit 20590d367226ea01c9d4d95de15cfd1aa354d02b
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jun 26 20:21:59 2015 +0200
-
- ceph.spec.in: remove duplicate BuildRequires: sharutils
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit c418bd9615e6f23f3c14ae9e71003c66d31d4b78)
-
-commit 6b306eba829b1ec9822b24243ee7c021aab3d738
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jun 15 12:58:00 2015 +0200
-
- ceph.spec.in: fix python-flask dependency for SUSE
-
- In SLE and openSUSE, the package is called python-Flask with an upper-case F.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 39c28b9faf0fb069d91ac069a4d8df7bf03fb490)
-
- Conflicts:
- ceph.spec.in
- add missing SUSE-specific build deps
-
-commit 7a2cbcb0a4efa365b6d92ec58d7acf4a66e9d2b1
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jun 25 18:55:39 2015 +0200
-
- ceph.spec.in: clarify two important comments
-
- First, the terms "common" and "specific" are vague. Second,
- "common" can easily be confused with the ceph-common subpackage.
-
- Fix this by rephrasing to "distro-unconditional dependencies" and
- "distro-conditional dependencies", respectively.
-
- Third, move the "distro-unconditional dependencies" header so it
- is above the part where these dependencies are actually defined.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit dd212fd1d367f70c61f65a97599959668b44aa53)
-
-commit dfe27c6ba05d49bb73854754b9d5c02cf1c7b1ef
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Jun 24 16:37:58 2015 -0600
-
- ceph.spec.in: rm reference to EOL Fedoras (< 20)
-
- Fedora 19 is EOL, so there's no need to refer to Fedoras less than 20.
- "%{fedora}" effectively implies "Fedora 20 and above".
-
- Reported-by: Ira Cooper <ira@samba.org>
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit f3e4a91c458ca7b11706fe4608cb739499f5d3cc)
-
- Conflicts:
- ceph.spec.in
- added xmlstarlet dependency to ceph-test package
-
-commit 371b64ef4aa786db3fd29bc84ff98e63000a859b
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Wed Jun 24 16:39:30 2015 -0600
-
- ceph.spec.in: package rbd-replay-prep on all Fedoras
-
- This reverts the change in commit
- 85517d611b7bf4cb6cbffcd2c65303be0d038264. Since we BuildRequire:
- libbabeltrace-devel, autoconf will see that babeltrace is available
- during the build, and make will build/install the rbd-replay-prep
- utility.
-
- This change also simplifies Fedora selection logic, because Fedora 19 is
- EOL, so "%{fedora}" implies "Fedora 20 and above".
-
- Reported-by: Ira Cooper <ira@samba.org>
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 2db9480fa2646de776f0076d82747e202e574ddd)
-
-commit 82425b33f712047442d9d29c5a4349818b44b40a
-Author: Boris Ranto <branto@redhat.com>
-Date: Tue Jun 16 23:07:04 2015 +0200
-
- ceph.spec.in: rbd-replay-prep is not being built on f21+
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 85517d611b7bf4cb6cbffcd2c65303be0d038264)
-
-commit 53e2f702681dc08ddd0414b116e51de6488f42ca
-Author: Owen Synge <osynge@suse.com>
-Date: Mon Jun 8 17:48:55 2015 +0200
-
- ceph.spec.in:BuildRequires sharutils
-
- The uudecode binary is used to build Java-related components, and
- uudecode is provided by the sharutils package on all supported
- RPM platforms. When building with "--without=cephfs_java",
- sharutils is not needed.
-
- Thanks to Nathan Cutler <ncutler@suse.cz> for going into the
- details with me.
-
- On OBS without this patch we get the error message:
-
- [ 170s] -----------------------------------------------------------------
- [ 170s] ----- building ceph.spec (user abuild)
- [ 170s] -----------------------------------------------------------------
- [ 170s] -----------------------------------------------------------------
- [ 170s] + exec rpmbuild -ba --define '_srcdefattr (-,root,root)' --nosignature --define 'disturl obs://build.opensuse.org/home:osynge:ceph:wip:wip_obs_fedora/Fedora_20/c0bbbc1e62228ca956ac3d367edc4fba-master' /home/abuild/rpmbuild/SOURCES/ceph.spec
- [ 170s] error: Failed build dependencies:
- [ 170s] sharutils is needed by ceph-1:2+git.1435043747.c1bd02c-1.1.x86_64
-
- With this patch we can build fedora 22 and fedora 20 rpms fine.
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit 43c1784640538b813f0575c50f721ac911a30b3e)
-
- Conflicts:
- ceph.spec.in
- _with_systemd -> trivial resolution
-
-commit a84376c68499845de01f9e3b194b16a698125b6a
-Author: Owen Synge <osynge@suse.com>
-Date: Wed Jun 10 12:11:50 2015 +0200
-
- ceph.spec.in: fix:Add missing directories breaking build
-
- SUSE builds on OBS are failing with the missing dir entries:
-
- /usr/share/ceph
- /usr/lib/ceph
-
- On suse these correspond to:
-
- %dir %{_datarootdir}/ceph/
- %dir %{_libexecdir}/ceph/
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit f1ff3e4dcb5dd7eddd2c346a05cfa78d860a5ce6)
-
-commit 171fee1b82d2675e364da7f96dfb9dd286d9b6e6
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jul 21 00:33:19 2015 +0800
-
- mon: track osd_epoch of all MonSessions
-
- previously, we only track the osd_epoch for OSD peers. but other
- MonClients who receives osdmaps can also benefit from osd_epoch.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit de43a02e06650a552f048dc8acd17f255126fed9)
-
- Conflicts:
- src/mon/OSDMonitor.cc:
- do not assume that the MonSession is always available when
- OSDMonitor::send_incremental() is called. as when the
- connection to the mon client is dropped, the Monitor is
- aware of this, but not the OSDMonitor.
-
-commit cc7da674965c3f758469e18788dc0e106e54d5bc
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jul 21 00:24:52 2015 +0800
-
- mon: track osd_epoch in MonSession
-
- * remove osd_epoch<osd, epoch> from OSDMonitor
- * add osd_epoch to MonSession to track the latest osdmap epoch
- OSDMonitor sends to a mon client
- * do not remove osd_epoch entries if an OSD is down, or
- max_osd > osd_id
-
- Fixes: #10930
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c05753eacc26e90b2e3b56e641a71bffd5b39bd0)
-
-commit 3f33ce6132d5ce8b3454f30fbe14471ece39951d
-Author: Lu Shi <shi.lu@h3c.com>
-Date: Thu Sep 24 16:02:41 2015 +0800
-
- librbd:reads larger than cache size hang.
-
- Fixes:#13164
-
- Signed-off-by: Lu Shi <shi.lu@h3c.com>
- (cherry picked from commit 9c8200bb5d1ac9359803a182df03298b565b8479)
-
-commit 5e5b512189b809bef503c34b0a19e30ed81cfbfa
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Aug 19 20:32:39 2015 +0200
-
- rgw: url_decode values from X-Object-Manifest during GET on Swift DLO.
-
- Fixes: #12728
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 69cf089596a0e5d4da2826b5c276306316a00690)
-
-commit e693755a55e4da681a1947b1e1eb3bb537436cc0
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 22 14:53:42 2015 -0700
-
- cls_rgw: fix bucket listing when dealing with invisible entries
-
- Fixes: #12913
-
- The bucket listing logic was broken when dealing with invisible entries.
- Need to read keys until we can fetch all the requested entries, or
- determine that there are no more entries. Anything else requires
- a change to the protocol.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ef9730515e001d77637a77eb89950f70fd5e7f5a)
-
-commit 99b4d1df3f6867e5ff0dd74691203737f6de6974
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 22 15:49:27 2015 -0700
-
- rgw: orphan tool shouldn't clean up head objects
-
- Fixes: #12958
-
- Head objects are mutable, so removing them can race with object removal
- and a later recreation, so we might end up cleaning them up when we don't
- need to.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 030f697d196df9963ecf4f05f727da4798c583dc)
-
-commit 6d89f4ba85063debe96734e9fdfcba247e770206
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 12 11:55:40 2015 -0700
-
- rgw: location constraints should return api name
-
- Fixes: #13458
- The S3 location constraints request should return the api name,
- not the region name.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 03078bab6ee8c617025902dbe52ec19e64653c33)
-
-commit 2bd5d0b835b546c80b5af503d2b9538835c768fd
-Author: Sebastien Ponce <sebastien.ponce@cern.ch>
-Date: Tue Oct 20 09:22:16 2015 +0200
-
- radosstriper : Fixed broken Makefiles after integration of lttng
-
- Fixes: #13210, backport of #6322 into hammer
-
- Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
-
-commit 7ffd072a8cc7e114d4d674d30333fea4db04dcdd
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 1 14:50:34 2015 -0400
-
- osdc/Objecter: distinguish between multiple notify completions
-
- We may send a notify to the cluster multiple times due to OSDMap
- changes. In some cases, earlier notify attempts may complete with
- an error, while later attempts succeed. We need to only pay
- attention to the most-recently send notify's completion.
-
- Do this by making note of the notify_id in the initial ACK (only
- present when talking to newer OSDs). When we get a notify
- completion, match it against our expected notify_id (if we have
- one) or else discard it.
-
- This is important because in some cases an early notify completion
- may be an error while a later one succeeds.
-
- Note that if we are talking to an old cluster we will simply not record a
- notify_id and our behavior will be the same as before (we will trust any
- notify completion we get).
-
- Fixes: #13114
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e86d033854c76f344c678e92016c4e5c5e0385e2)
-
- Conflicts:
- src/osdc/Objecter.cc
- In Objecter::handle_watch_notify, a conflict was there due to a modified comment by commit 47277c51db7bb2725ea117e4e8834869ae93e006, which was not backported
-
-commit 647c91098e8517912c73e3f7d27954e6f340472c
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 1 14:50:00 2015 -0400
-
- osd: reply to notify request with our unique notify_id
-
- The OSD assigns a unique ID to each notify it queues for
- processing. Include this in the reply to the notifier so that
- they can match it up with the eventual completions they receive.
-
- This is necessary to distinguish between multiple completions
- they may receive if there is PG peering and the notify is resent.
- In particular, an earlier notify may return an error when a later
- attempt succeeds.
-
- This is forwards and backwards compatible: new clients will make use of
- this reply payload but older clients ignore it.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 049ea702b9bf4a8a62ae2770d9ba55c0730b3eef)
-
-commit 0ad9521944e0de5c135a066b0cda07f8976bdae1
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Oct 12 13:24:31 2015 -0700
-
- osd: Correct the object_info_t::decode() version
-
- Caused by: 13b9dc70
-
- Fixes: #13462
- Backport: Hammer, Firefly
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2b7ddde685213f3908f2dd9545b35f1d97f35a79)
-
-commit af734e63f28ac5af414b6507c945ffd9e736d5cf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 6 12:31:59 2015 -0400
-
- librbd: invalidate object map on error even w/o holding lock
-
- If there is a deep bug that prevents the object map from owning
- the lock before objects are updated, flag the object map as invalid
- regardless.
-
- Fixes: #13372
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e675400df7f8ba796d60e9bac4234857f0cb1392)
-
- Conflicts:
- src/librbd/ObjectMap.h/cc: hammer branch doesn't support rebuild
-
-commit 634d7f62486847846e3862091b8cb587d095cb52
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 8 13:28:04 2015 -0400
-
- tests: removed obsolete rbd_replay test cases
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e0d8cb1283e4bdbfc770684b173e477c22558524)
-
-commit 5c63d3c614189381cc169c64a3138c7abcb368c6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 8 13:26:42 2015 -0400
-
- ceph-dencoder: new rbd_replay trace file types
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c2a83d0b518497dc8bcbbdea77b88febe52a3034)
-
-commit a145a1cd8e245505abae66f0497be0df0078cecb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 8 13:21:29 2015 -0400
-
- rbd-replay: added version control to trace output file
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3ecdae8388d69123b937a40ce614a0b795a757f1)
-
-commit a30ed76c34ecca6278112908871126e1730a22bc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Oct 7 15:39:18 2015 -0400
-
- rbd-replay-prep: added --verbose command line option
-
- This new command-line will dump all the processed events as they
- are extracted from the trace file.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 646e50a771c3089121ec2f4369d1a8188001a3eb)
-
-commit adf31c88d3ed95d0c29c649e2642ee3ae758743b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Oct 7 15:22:25 2015 -0400
-
- rbd-replay-prep: stream events to the prep file
-
- Avoid building the entire prep event history in memory before
- attempting to write the prepped trace file.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 98f513a113f4e8aff17c83991d2e6f0f3738a9c9)
-
-commit 8c9e67ad0b21629565a09f6b9b92723b98594f84
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Oct 7 14:56:22 2015 -0400
-
- rbd-replay-prep: simplify IO dependency calculation
-
- Only track read-after-write and write-after-write IO dependencies
- via the associated write completions. All IO events after a write
- completion are considered to be dependent and can be pruned down
- to at most the number of concurrent IOs. This reduces the prep
- time from a simple 'rbd bench-write' from over 4 hrs down to seconds.
-
- Fixes: #13378, #13384
- Backport: hammer
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 65fb1b86cbab65023f6207798c9e189bce55dcf6)
-
-commit e7406fcba86646a4c3fbac66ee54b52ce3d5a33d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 6 13:16:51 2015 -0400
-
- rbd-replay: improve error messages
-
- Fixes: #13221
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4f436e10802d7b3c3949b592fec238c189a02c50)
-
-commit 9f81d28107bd82b7118d1521ade982ab179c5a7a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 6 12:48:50 2015 -0400
-
- rbd-replay-prep: support new read/write APIs
-
- Added support for read2, write2, aio_read2, and aio_write2 APIs.
-
- Fixes: 13325
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b5b4a9dd6bfe10844327a457849a0dbf7ef597ea)
-
-commit a856bee2aa7e22f2bedf54b684c4d55452766b01
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Oct 5 17:30:54 2015 -0400
-
- rbd-replay-prep: avoid using assert statements on user inputs
-
- Fixes: #13220
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a1e99f06a78d7cf2ecc0c8e9fbc3331e4e4f18f7)
-
-commit 6a4734a7afecb359b8bc9c114332cd7321097c38
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Sep 21 11:16:49 2015 -0700
-
- ReplicatedPG::hit_set_setup: fix hit_set_remove_all call
-
- We only want to do it if the pool config changed AND we are
- primary && active.
-
- fd38902dd4693b9b72f7532833e78f5df2c9efa5 partially fixed a related
- bug. This should be backported along with it.
-
- Fixes: 13192
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 36e4a80c39f7daab2a35efc04650ae8b7b11c4e0)
-
-commit ab3877dd566f3951e76abaa6b7deeb5835a512b1
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Sep 22 11:13:44 2015 -0700
-
- osd/: assert in HitSet constructor if type is TYPE_NONE as well
-
- Otherwise impl is unpopulated and we risk segfaults in several
- methods. It also seems like it would always indicate a bug.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8e5a801b43babf751b619ed9606d7be7e5b12837)
-
-commit 4fe07b7f69321535a985958fc761a54cb71136f6
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Thu Jul 23 09:26:44 2015 +0800
-
- osd: only remove all the hit set objects on primary osd
-
- Only the primary PG is allowed to remove all the hit set objects. And
- the PG should be in the active or peered states.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit fd38902dd4693b9b72f7532833e78f5df2c9efa5)
-
-commit 313a09b58b6aa6fe8999f4d5da07a04f00c64cd7
-Author: Zhiqiang Wang <zhiqiang.wang@intel.com>
-Date: Thu Jun 18 09:05:28 2015 +0800
-
- osd: implement hit_set_remove_all
-
- When hit set is not configured on startup or on a change, remove all
- previous hitsets.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
- (cherry picked from commit be28319bf3dc54b4b6f400d83405a29facfe3bd4)
- Conflicts:
- src/osd/ReplicatedPG.cc
- pass the new argument of `p->using_gmt` to get_hit_set_archive_object()
-
-commit b632254252f56d3b2c0c32803593ba765b45b222
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 8 16:52:32 2015 +0800
-
- mon: disable gmt_hitset if not supported
-
- the gmt_hitset is enabled by default in the ctor of pg_pool_t, this
- is intentional. because we want to remove this setting and make
- gmt_hitset=true as a default in future. but this forces us to
- disable it explicitly when preparing a new pool if any OSD does
- not support gmt hitset.
-
- Fixes: #12968
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e48cec3dc93b3988dcd8924933deb1b3a43e1d0f)
-
- Conflicts:
- src/mon/OSDMonitor.cc
- remove unrelated hunk
-
-commit 27fc9a3b2bd34bec8d5bb3954b873ce6344771f4
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 28 00:32:38 2015 +0800
-
- osd: do not let OSD_HITSET_GMT reuse the feature bit
-
- * to ease the backport to hammer
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5a4f6a866bb675195ad83c38fd23238d078c78ed)
-
- Conflicts:
- src/include/ceph_features.h
- minor changes to resolve conflicts
-
-commit 7fcc61d26028eb417a0c224e8c9cd3cc95bc13d9
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Aug 27 11:24:25 2015 -0700
-
- osd: Decode use_gmt_hitset with a unique version
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2bc5a48f4c5d3667213be3a7b5a0e0f5ef9daf4f)
-
- Conflicts:
- src/osd/osd_types.cc
- minor changes to resolve conflicts
-
-commit 26c7e968523ac09f608c4ed7c50681fbb741ca1f
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Aug 18 16:53:50 2015 +0800
-
- mon: print use_gmt_hitset in "ceph osd pool get"
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cc2bcf760f2d2f20fc4a2fa78ba52475a23e55bf)
-
- Conflicts:
- src/mon/OSDMonitor.cc
- use the old way to dump pool info
-
-commit e8e00dab1b064e77a997504f385b5d60ee8aca25
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Aug 18 00:04:23 2015 +0800
-
- mon: add "ceph osd pool set $pool use_gmt_hitset true" cmd
-
- allow "ceph osd pool set $pool use_gmt_hitset <true|1>" as long as
- the cluster supports gmt hitset.
-
- Fixes: #9732
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 03a1a3cf023a9aeb2fa26820e49e5efe3f3b3789)
-
-commit 040e390d29fc68dcefe48c59cccacf6258c6f690
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jun 5 21:06:48 2015 +0800
-
- osd: use GMT time for the object name of hitsets
-
- * bump the encoding version of pg_hit_set_info_t to 2, so we can
- tell if the corresponding hit_set is named using localtime or
- GMT
- * bump the encoding version of pg_pool_t to 20, so we can know
- if a pool is using GMT to name the hit_set archive or not. and
- we can tell if current cluster allows OSDs not support GMT
- mode or not.
- * add an option named `osd_pool_use_gmt_hitset`. if enabled,
- the cluster will try to use GMT mode when creating a new pool
- if all the the up OSDs support GMT mode. if any of the
- pools in the cluster is using GMT mode, then only OSDs
- supporting GMT mode are allowed to join the cluster.
-
- Fixes: #9732
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 42f8c5daad16aa849a0b99871d50161673c0c370)
-
- Conflicts:
- src/include/ceph_features.h
- src/osd/ReplicatedPG.cc
- src/osd/osd_types.cc
- src/osd/osd_types.h
- fill pg_pool_t with default settings in master branch.
-
-commit 31b7864b4161221f6027c6cbe1e42ed598d42b6a
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Sep 27 21:55:00 2015 +0200
-
- CephxServiceHandler.cc: fix get_auth conditional
-
- The KeyServer class has a public method get_auth() that returns a boolean
- value. This value is being checked here - fix the conditional so it triggers
- when get_auth() returns false.
-
- http://tracker.ceph.com/issues/9756 References: #9756
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 7250db62cb7ac1e9c0b1f5956d60b9d874496702)
-
-commit 0742177c767613d41bda0d260eebdd0087e3b392 (refs/remotes/me/wip-randomize-scrub-hammer)
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat May 16 00:07:27 2015 +0800
-
- osd: use another name for randomize scrub option
-
- s/osd_scrub_interval_limit/osd_scrub_interval_randomize_ratio/
-
- Fixes: #10973
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit fad33861a87f2feb944ad5454775c95d09364b56
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Mar 9 16:42:34 2015 +0800
-
- osd: randomize scrub times to avoid scrub wave
-
- - to avoid the scrub wave when the osd_scrub_max_interval reaches in a
- high-load OSD, the scrub time is randomized.
- - extract scrub_load_below_threshold() out of scrub_should_schedule()
- - schedule an automatic scrub job at a time which is uniformly distributed
- over [now+osd_scrub_min_interval,
- now+osd_scrub_min_interval*(1+osd_scrub_time_limit]. before
- this change this sort of scrubs will be performed once the hard interval
- is end or system load is below the threshold, but with this change, the
- jobs will be performed as long as the load is low or the interval of
- the scheduled scrubs is longer than conf.osd_scrub_max_interval. all
- automatic jobs should be performed in the configured time period, otherwise
- they are postponed.
- - the requested scrub job will be scheduled right away, before this change
- it is queued with the timestamp of `now` and postponed after
- osd_scrub_min_interval.
-
- Fixes: #10973
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5e44040e8528bff06cc0a5a3f3293ab146e0e4e1)
-
- Conflicts:
- src/osd/OSD.cc
-
-commit 9c130336a1a1dcf2338d202914aeacbc194af0b0
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Mar 9 16:47:30 2015 +0800
-
- osd: use __func__ in log messages
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 0f7f35670f03f3f58329c00d323963710e7e495d)
-
-commit 4a3dedff8693953944af3eeb40994f38befebf48
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Apr 15 12:04:05 2015 +0800
-
- osd: simplify OSD::scrub_load_below_threshold() a little bit
-
- avoid unnecessary comparison
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 2ab0e606dfd2847e1918be9f21f572d91befbf7b)
-
-commit 24268cf4309267a0a1e32e28379cf7eafac00bca
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 1 14:21:35 2015 -0400
-
- librbd: invoking RBD::open twice will leak memory
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a5e88fcf11ebb16d4a1405b21cf6f895b37f185e)
-
-commit 8610de81c8eeae763354a4133e160ccb3faa8dad
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Sep 21 15:46:42 2015 -0700
-
- use simplifed messenger constructor for clients
-
- This is all mechanical except the calculation of the nonce, which is
- now always randomized for clients.
-
- Fixes: #13032
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit a3a8c85b79afef67681c32c57b591c0e0a87a349)
-
-commit 9d059c3f1b3aa0b1830b6f84694c850d36e8a77a
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Sep 21 15:20:53 2015 -0700
-
- msg: add simplified messenger constructor
-
- Several callers create messengers using exactly the same parameters:
-
- - reading the ms type from cct that is also passed in
- - a default entity_name_t::CLIENT
- - the default features
-
- Additionally, the nonce should be randomized and not depend on
- e.g. pid, as it does in several callers now. Clients running in
- containers can easily have pid collisions, leading to hangs, so
- randomize the nonce in this simplified constructor rather than
- duplicating that logic in every caller.
-
- Daemons have meaningful entity_name_ts, and monitors currently depend
- on using 0 as a nonce, so make this simple constructer
- client-specific.
-
- Related: #13032
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e3785b0b5fbff870adbd5f121021b671912386cf)
-
- Conflicts:
- src/msg/Messenger.cc: Messenger::create only has 5 arguments in
- hammer. Since the last one is zero, it does not change the
- semantic.
-
-commit 6e29e904ce8e7b3481fd3b318b070d326cd4a71a
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 30 08:29:05 2015 -0400
-
- init-rbdmap: fix CMDPARAMS
-
- Fixes: #13214
- Reported-by: Wyllys Ingersoll <wyllys.ingersoll@keepertech.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 02113ac449cd7631f1c9a3840c94bbf253c052bd)
-
-commit 7161a2c927a6ded0d6ffe7d7621b7abd7f18acc3
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Sep 21 12:00:49 2015 -0700
-
- PG: ignore info from down osd
-
- Fixes: #12990
- Backport: firefly, hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 930d8eb1fb0daacd692d2e80b5ff473448bd4e8d)
-
-commit 9753551f9f4ea9a1638dd469ef536d895ca9bc3b
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Sep 21 12:01:03 2015 -0700
-
- OSDMap.h: add has_been_up_since
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 4b00350870e3a43aee5fff7982b3785fe1876634)
-
-commit f1271eae0decf4d1fd9cfd83e5e54d3be6abfb17
-Author: zqkkqz <zheng.qiankun@h3c.com>
-Date: Fri Aug 7 10:49:45 2015 +0800
-
- Common/Thread: pthread_attr_destroy(thread_attr) when done with it
- When a thread attributes object is no longer required, it should be destroyed using the
- pthread_attr_destroy() function. Destroying a thread attributes object has no effect on threads that were created using that object.
-
- Fixes: #12570
- Signed-off-by: zqkqkz zheng.qiankun@h3c.com
- (cherry picked from commit 9471bb838a420ef5f439191d87e5388fecccb9e6)
-
-commit 9581f9f4446ed5838bb3de6e1d7cf5faca85df90
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Fri Jul 17 12:43:52 2015 +0200
-
- Thread.cc: remove malloc/free pair
-
- There's no need for mallocing pthread_attr_t in Thread::try_create(),
- it can be located on stack as it is freed in same function. This reduces
- pressure put on memory manager.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit 614ac0f4e375f3dd008c8937d3f89f6005d6e0a0)
-
-commit a17f2a9a6600803a8b7f6dd306f7bafb6acc1af5
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Sep 1 21:35:19 2015 +0800
-
- osdc/Objecter: optimize Objecter::tick.
-
- Set bool value is better than insert same value into set<>.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit ee204044d9e69ea44b533c05cec154974039264c)
-
-commit f80d237decac775d82f1e276a1ea600a9f352ffe
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Sep 1 19:32:32 2015 +0800
-
- osdc/Objecter: remove the unuseful code.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 80f10e3e59dadda2dca4eb62c68af972b701b316)
-
-commit 8f76f4c467dc69cd2af75d9cbb134c26f2d04a84
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Sep 1 15:39:29 2015 +0800
-
- osdc/Objecter: Don't forget call _op_cancel_map_check when cancel linger op.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 7cc963b1c6ab37bf33638dc6eca7848d93f7908f)
-
-commit ba36caba5226a44c41fdd2b19074916b38af5fdf
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Sep 1 15:12:02 2015 +0800
-
- osdc/Objecter: In _cancel_linger_op, it should make num_unacked/num_committed decrease.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 36b62710ddef0ffaee25837a92ca1ac9b353ff05)
-
-commit 6ff7b02dc23b42a99c7136d1a55ead05c12e2b97
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Aug 20 17:00:23 2015 +0800
-
- osdc/Objeter: When cancel op, decrease num_unacked/num_uncommitted.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 064e8585a04edb3d87b38db6bed03e965cfcb359)
-
-commit d815e0aacb4a516f4bbbb59a2b2073b38759d9e8
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu Aug 20 15:38:58 2015 +0800
-
- osdc/Objecter: For func op_cancel_writes it can directly call op_cancel.
-
- Becasue we get write-lock of rwlock, so it is safe to call op_cancel
- rather than _op_canchel(homeless_session for this case don't met).
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit e4ce619fe17a7a9dfc18e6af0b84928aa2d88c00)
-
- Conflicts:
- src/osdc/Objecter.cc: the last if (found) was incorrectly
- implemented as if (to_cancel.size()) after hammer. The
- conflict is because the patch tries to revert an incorrect
- if (to_cancel.size()) which is not in hammer.
-
-commit 53316f3694c2a219541dcbdb0269ce97e2d2e9d7
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Aug 19 14:54:21 2015 +0800
-
- Objecter: Take RLocker when call is_active.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 89f0112e001a2561f9a5cd705898d43c8909501f)
-
-commit 684928883f5eaaec99a8cc8c43e81fae69f9fbfa
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Sep 16 15:08:17 2015 +0800
-
- mon/PGMap: calc min_last_epoch_clean when decode
-
- Fixes: #13112
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d0ac68bf1785b330f3202d924c2203ace9393fe6)
-
-commit 7d4b303b2d9649e2722a9b8f0be5c505776124df
-Author: Guang Yang <yguang@yahoo-inc.com>
-Date: Wed Sep 23 15:58:02 2015 +0000
-
- osd: print min_last_epoch_clean along with pg dump
-
- Fixes: 13198
- Signed-off-by: Guang Yang <yguang@yahoo-inc.com>
- (cherry picked from commit f5359f2314ce3e76ed446c01889dd23550c3ac36)
-
-commit d8ca88dd4b47b4956211d206b0d42112e5842d3f
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Sep 22 11:44:18 2015 -0700
-
- OSDService::agent_entry: don't use PG::operator<< without pg lock
-
- Fixes: #13199
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit d422f2820d5beee15117e166546a6386120e0349)
-
- Conflicts:
- src/osd/OSD.cc: trivial resolution
-
-commit 397042a0cb2f4c628dd722192fee284359d2cbb3
-Author: Xinze Chi <xinze@xksy.com>
-Date: Wed Sep 23 19:26:00 2015 +0800
-
- filestore: fix peek_queue for OpSequencer
-
- Fixes: #13209
- Signed-off-by: Xinze Chi <xinze@xsky.com>
- (cherry picked from commit 5f7b3f5cde779f1300a35a04df2cdb1299f55472)
-
-commit d4e4d85c005ff68cb0461e9d7f0cbe5e6cf2f073
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 10:58:01 2015 -0400
-
- mon/Elector: do a trivial write on every election cycle
-
- Currently we already do a small write when the *first* election in
- a round happens (to update the election epoch). If the backend
- happens to fail while we are already in the midst of elections,
- however, we may continue to call elections without verifying we
- are still writeable.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ef909ccbdc303cce8a39edef255325127832ff16)
-
-commit 20a4c0c4831a9dcd49d8ad34b99369effbda9ab8
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 23 10:58:13 2015 -0400
-
- mon/MonitorDBStore: assert/crash if there is a write error
-
- Do this globally intead of relying on teh zillion mon callers to
- check the error code. There are no cases where we want to
- tolerate a commit failure.
-
- Fixes: #13089
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2fb7b1f0e33ada7c9a1be3de2f7708eb0760fcef)
-
-commit 3c1f7cbc45c4744eea3c821f0343596756e05ab1
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Sep 24 18:35:39 2015 -0700
-
- OSDMap: fill in known encode_features where possible
-
- Otherwise, if we get an incremental from hammer (struct_v = 6) we will
- encode the full map as if it were before CEPH_FEATURE_PGID64, which
- was actually pre-argonaut. Similarly, if struct_v >= 7, we know it
- was encoded with CEPH_FEATURE_OSDMAP_ENC.
-
- Fixes: #13234
- Backport: hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 04679c5451e353c966f6ed00b33fa97be8072a79)
-
-commit 93c523c65c1f0b6f9a76b1d71acf9e8df57c0fc9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 8 15:47:37 2015 -0400
-
- librbd: diff_iterate needs to handle holes in parent images
-
- If a clone's parent image snapshot includes a discarded extent,
- this was previously causing an assert failure. Instead, ignore
- any discard holes in the parent image.
-
- Fixes: #12885
- Backport: hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3ccc3bb4bd35e57209852d460633e371b4d004e2)
-
- Conflicts:
- src/librbd/DiffIterate.cc : file doesn't exist in hammer, logic is in internal.cc
-
-commit 359b68447393980bb7cdd4acc23582e8046b186c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Sep 28 10:25:07 2015 -0400
-
- tests: new test case for librbd diff_iterate over discard extents
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d5650c9cf85188efa73b279c8f4e4723fa475308)
-
- Conflicts:
- src/test/librbd/test_librbd.cc : diff_iterate2 doesn't exist in hammer
-
-commit 71a42f7c3aa55de688ef16ea7e392573fa5a7e62
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Mon Jun 8 16:54:08 2015 +0800
-
- bug fix: osd: avoid multi set osd_op.outdata in tier pool
-
- There are two read op on the same object for ec pool. First op read
- miss happend, calling do_proxy_read and promote_object, The second op only
- do_proxy_read. but before first op process_copy_chunk finish, the second op
- finish_proxy_read. first op receive reply from base pool
- first and then second received. so the second op set the field "outdata"
- in m->ops first. And then first op requeue_ops in process_copy_chunk,
- At last in do_osd_ops, it append outdata field.
-
- Fixes: 12540
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 855ae1fd6e4557adba1cbd8ab532488b867cee2a)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
-
-commit e8cce089102abd8ec1b8e916c6f2c4a5b339cbd3
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Wed Jul 29 16:28:33 2015 +0800
-
- bug fix: osd: requeue_scrub when kick_object_context_blocked
-
- when read miss in writeback cache pool, osd do_proxy_read first
- and maybe promote it. but in this case, the op is not added to
- waiting_for_blocked_object. pg scrub maybe block by this object
- (_range_available_for_scrub). so after promote it, we should
- requeue_scrub.
-
- Fixes: 12515
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit f77949fedce3449befd74efeb5270579f5085b16)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
- in ReplicatedPG::kick_object_context_blocked, removed hobject_t::BitwiseComparator from map p
-
-commit 8ee93d5f661b303cafcb0134a0e9a1fce7b8e6b2
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 27 11:08:33 2015 -0700
-
- PG::handle_advance_map: on_pool_change after handling the map change
-
- Otherwise, the is_active() checks in the hitset code can erroneously
- return true firing off repops stamped with the new epoch which then get
- cleared in the map change code. The filestore callbacks then pass the
- interval check and call into a destroyed repop structure.
-
- Fixes: 12809
- Backport: hammer,firefly
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 14e02bc90a463805f4c3e2de210892067a52514b)
-
-commit cecd68d06d4d114b0b735155da5c2bac736714c3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 28 11:36:49 2015 +0800
-
- ceph_test_rados_api_aio: add a test for aio_sparse_read
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 076bad955d374cbb37b77e2b0429f3c85f32abc0)
-
-commit 8849f9933fe0fc315da0981f9cd88ea108f686ed
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Aug 27 22:57:16 2015 +0800
-
- ceph_test_rados_api_io: add tests for sparse_read
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 4d4920610ebfcb516630ed15678979c9e9292f5a)
-
- Conflicts:
- src/test/librados/test.cc
- minor changes and remove C++11 stuff
-
-commit 64b22dcba316bf9ac5598c249e4fba47c157f588
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Aug 26 15:41:13 2015 +0800
-
- ceph_test_rados: also send sparse_read in ReadOp
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5ae2e7a185b5f95753a09a89d7110fc38848a083)
-
- Conflicts:
- src/test/osd/RadosModel.h
- remove the piped-read test
-
-commit 6ca593026f81580ecbd02ad6140347f31086a87d
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 28 14:27:53 2015 +0800
-
- osd: should use ec_pool() when checking for an ecpool
-
- we were using pool.info.require_rollback() in do_osd_ops() when
- handling OP_SPARSE_READ to tell if a pool is an ecpool. should
- use pool.info.ec_pool() instead.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit a5bfde69a9d14de67da1e3354173ec70ba089b37)
-
-commit 318049911445a3cc257db2b3beb3ab53e6f1d64e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Aug 27 22:57:49 2015 +0800
-
- osd: translate sparse_read to read for ecpool
-
- Fixes: #12012
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 700d42ef1c82f5602249b96690ae881c1d259d54)
-
-commit d8ac5103e433f6649e28392b365d2e02b4ba1ffe
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 10 19:10:19 2015 -0400
-
- WorkQueue: add/remove_work_queue methods now thread safe
-
- These methods were not acquiring the ThreadPool lock when
- manipulating the work_queue collection. This was causing
- occasional crashes within librbd when opening and closing
- images.
-
- Fixes: #12662
- Backport: hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e18449b01c1ab78d1bbfc1cf111aa9bdbef7b1f)
-
-commit e8d6d5a5f43b75f6aaec4c977221ad97d11e314c (refs/remotes/gh/wip-11786.hammer)
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Mon Sep 7 14:12:19 2015 +0100
-
- mon: MonitorDBStore: make get_next_key() work properly
-
- We introduced a significant bug with 2cc7aee, when we fixed issue #11786.
- Although that patch would fix the problem described in #11786, we
- managed to not increment the iterator upon returning the current key.
- This would have the iterator iterating over the same key, forever and
- ever.
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 70d31082fd3dc8c7857994104577f1a3631c678c)
-
-commit dba8b5b113f585586fcbbc0acf05543262486328
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Tue May 19 13:44:21 2015 +0200
-
- tools: Don't delete, recreate and re-fill buffers in rados bench.
-
- Fixes the high CPU usage and corrects rados bench scores on fast SSDs
- and ramdisks/memstore.
- For bench run on SSD, on Intel(R) Xeon(R) CPU E5-2640 v2 @ 2.00GHz
- before this patch, times are:
- write: real 5m0.169s, user 2m33.565s, sys 4m39.791s
- seq: real 4m28.642s, user 1m35.250s, sys 6m42.948s
- rand: real 5m0.258s, user 1m19.656s, sys 6m47.145s
-
- After this patch:
- write: real 5m1.162s, user 0m27.788s, sys 3m11.707s
- seq: real 5m1.149s, user 2m23.278s, sys 4m14.427s
- rand: real 5m1.021s, user 2m30.514s, sys 4m20.347s
-
- Bench run: rados -p ssd bench 300 write|seq|read --no-cleanup
-
- Note the increase in user time cpu on seq/read tests,
- along with decreased sys cpu time; this is because there's
- additional memcmp() that compares read objects with expected
- contents. With less time spent memory juggling, more time is
- spent performing more reads per second, increasing memcmp call
- count and increasing amount of user cpu time used.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit b894fc7acf7dee7f7ec8c5c280e7a6be41133328)
-
- Conflicts:
- src/common/obj_bencher.cc
- return -5 was replaced with return r
-
-commit fa72ecb509fa4ddd5f227b1e279eae390284a72c
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Fri May 15 15:44:18 2015 +0200
-
- bufferlist: implement bufferlist::invalidate_crc()
-
- This function iterates over all bufferlist internal buffers and calls
- their invalidate_crc() method. Required for rados bench to work
- correctly, because it modifies buffers outside buffer api, invalidating
- internal CRC cache in the process - this method clears that cache, so
- another call for buffer::get_crc() to return correct checksum.
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit 55a6f9efbee041d041742810ca4fa8874b6191a7)
-
-commit 50c82f2095add5ad75200a62081fd2f5fea8d8d9
-Author: Owen Synge <osynge@suse.com>
-Date: Mon Jun 1 15:57:03 2015 +0200
-
- ceph.spec.in summary-ended-with-dot
-
- RPM spec files summary should not end with a dot.
- This was inconsistent across the ceph rpm packages
- and creates errors with rpm lint.
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit 042e8ff4dc71795d957bbfac12fade2bc0fc4674)
-
-commit 94699e724b45a9a6de84a943c5b834d2f20f85ef
-Author: Owen Synge <osynge@suse.com>
-Date: Mon Jun 1 14:58:31 2015 +0200
-
- ceph.spec.in libcephfs_jni1 has no %post and %postun
-
- /usr/lib64/libcephfs_jni.so.1.0.0 requires /sbin/ldconfig to be
- run after installing and after removing.
-
- Signed-off-by: Owen Synge <osynge@suse.com>
- (cherry picked from commit 0742d82b5561634a5f4ed73fc6cbe4d4f26b0d42)
-
-commit 7475a8fe3f31a46a949f051ded383cd6f396a0fa
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Apr 21 16:08:09 2015 -0700
-
- logrotate.conf: prefer service over invoke-rc.d
-
- On trusty 14.04, service works but invoke-rc.d does not (but is present).
-
- Fixes: #11330
- Reported-by: Wim Heirman <wim@heirman.net>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6063a21f9edbbf80e44d45ff52a9f4ba1a1cb2c9)
-
-commit 86f88dfce3c0e785d0ff48ec8892e53e6a53b080
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Jul 23 10:15:56 2015 +0100
-
- mon: fix checks on mds add_data_pool
-
- Use same _check_pool helper as during fs creation.
-
- Fixes: #12426
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 329741ec238d6af4b69bc838ba667be232741b3d)
-
-commit a65c39852775b17323fa4efee54bde12ce22a512
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 29 15:52:19 2015 +0800
-
- common/syncfs: fall back to sync(2) if syncfs(2) not available
-
- Fixes: #12512
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 08210d6a85527b0759f6dc4411f742bc13a4939f)
-
- Conflicts:
- src/common/sync_filesystem.h
- - subtle difference in #if/#else/#endif structure
-
-commit e6eaa914d685f2a8f1f8cf3b01112a1b720e1358
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Wed May 27 22:28:49 2015 +0100
-
- mon: MonitorDBStore: get_next_key() only if prefix matches
-
- get_next_key() had a bug in which we would always return the first key
- from the iterator, regardless of whether its prefix had been specified
- to the iterator.
-
- Fixes: #11786
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 2cc7aee1abe40453093306c8fef2312b650dff5d)
diff --git a/src/ceph/doc/changelog/v0.94.7.txt b/src/ceph/doc/changelog/v0.94.7.txt
deleted file mode 100644
index b639752..0000000
--- a/src/ceph/doc/changelog/v0.94.7.txt
+++ /dev/null
@@ -1,3179 +0,0 @@
-commit d56bdf93ced6b80b07397d57e3fa68fe68304432 (tag: refs/tags/v0.94.7)
-Author: Jenkins Build Slave User <jenkins-build@trusty-small--296081f3-e7b1-46b1-96c2-d6b655cf71d3.localdomain>
-Date: Tue May 10 14:47:39 2016 +0000
-
- 0.94.7
-
-commit 6e6c85a0d71df7cd6207febc3e22d30617648abc
-Merge: 934ad41 76c33de
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 9 13:55:24 2016 -0400
-
- Merge pull request #8979 from athanatos/wip-15655-hammer
-
- OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 934ad41dbf3f7004c93aa8f7660353329b7f3fad
-Merge: e219e85 3c03eee
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed May 4 11:37:33 2016 +0200
-
- Merge pull request #8583 from Vicente-Cheng/wip-15089-hammer
-
- hammer: Bucket owner isn't changed after unlink/link
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 76c33decdeba83d4d977a9556e76e68fa964465f (refs/remotes/athanatos/wip-15655-hammer)
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 28 13:47:48 2016 -0700
-
- OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1
-
- Fixes: http://tracker.ceph.com/issues/15655
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c121bc51a5a877a49094cfbd3bd16af1f3ae5090)
-
-commit 3c03eee07e02b6b4d31f6a58a03253eff2d41324
-Author: Aran85 <zhangzengran@h3c.com>
-Date: Mon Sep 28 08:23:22 2015 +0800
-
- rgw:bucket link now set the bucket.instance acl
-
- Fixes: #11076
-
- Signed-off-by: Zengran Zhang <zhangzengran@h3c.com>
- (cherry picked from commit 4d59b1d36f8924290c3ecb5b7608747191470188)
-
- Conflicts:
-
- src/rgw/rgw_bucket.cc
- 1. Do not use the rgw_user structure and remove the tenant parameter that describes as below
- 2. user_id is not used so just remove the line
- 3. instead of system_obj_set_attr you can use the method set_attr
-
- Backport Change:
- We do not use the rgw_user structure and remove the `tenant` parameter
- because this feature is not introduced on hammer version.
- The rgw multi-tenant feature is introduced on pr#6784 (https://github.com/ceph/ceph/pull/6784)
- This feature is supported from v10.0.2 and later version.
-
-commit e219e85be00088eecde7b1f29d7699493a79bc4d
-Merge: eea2a77 f794ada
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 6 10:43:16 2016 -0400
-
- Merge pull request #7922 from badone/wip-14961-hammer
-
- hammer: PK11_DestroyContext() is called twice if PK11_DigestFinal() fails
-
-commit eea2a77ef0b242c295f2480349d8608273dfb184
-Merge: 815760d 38b9c0b
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 6 10:42:44 2016 -0400
-
- Merge pull request #7992 from SUSE/wip-13807-hammer
-
- hammer: segfault in Objecter::handle_watch_notify
-
-commit 815760dde45574f931e316f47c5990129375e9f2
-Merge: ba5c75a 01672b4
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 6 10:41:41 2016 -0400
-
- Merge pull request #8051 from xiaoxichen/wip-15024-hammer
-
- hammer: clock skew report is incorrect by ceph health detail command
-
-commit ba5c75a33ba10bbe7796715f2d8500ec1fe209fd
-Merge: dc09055 ac3569c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Apr 6 10:40:51 2016 -0400
-
- Merge pull request #8398 from asheplyakov/hammer-wip-15336
-
- hammer: monclient: avoid key renew storm on clock skew
-
-commit dc090558a3306feb2c50994950756e5599a92eaf
-Merge: 0f28a5b 744e9f8
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:24:55 2016 +0200
-
- Merge pull request #8272 from Yan-waller/yj-wip-fixbl
-
- hammer: tests: bufferlist: do not expect !is_page_aligned() after unaligned rebuild
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 0f28a5b033b47479ae6f1958d2f079bd6c57f1b4
-Merge: 374c3c1 f8d2abd
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:20:15 2016 +0200
-
- Merge pull request #7883 from tchaikov/wip-12848-hammer
-
- hammer: osd: use GMT time for the object name of hitsets
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 374c3c1d8cde50a4503cbd41ee2204aa6761557d
-Merge: add1674 0830275
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:18:11 2016 +0200
-
- Merge pull request #7917 from ceph/wip-10794-hammer
-
- hammer: ceph-objectstore-tool, osd: Fix import handling
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit add1674c759f946c7c456e96e52b7ca1a45829ec
-Merge: d08bae2 be4a9fe
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:13:32 2016 +0200
-
- Merge pull request #8026 from liewegas/wip-reweight-hammer
-
- hammer: mon: implement reweight-by-utilization feature
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d08bae217e50dfa19dce3bb58349149c4210361e
-Merge: f68697c d4cf190
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:12:55 2016 +0200
-
- Merge pull request #8049 from xiaoxichen/wip-15022-hammer
-
- hammer: keyring permisions for mon deamon
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f68697c71ad4b6f49dae12a50fad73cacbcaf6e1
-Merge: e5beeef 57fd7f8
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:09:42 2016 +0200
-
- Merge pull request #8052 from xiaoxichen/wip-15051-hammer
-
- hammer: test/librados/tier.cc doesn't completely clean up EC pools
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e5beeef1b142a86140791470785c69f865e5df5a
-Merge: 77fbf58 77a4ed0
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 16:03:07 2016 +0200
-
- Merge pull request #8440 from dachary/wip-15382-hammer
-
- hammer: rpm package building fails if the build machine has lttng and babeltrace development packages installed locally
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 77fbf581cb2259146938a737c299d6cf762303d1
-Merge: 92a96e1 97f474f
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 15:05:11 2016 +0200
-
- Merge pull request #8401 from Vicente-Cheng/wip-15129-hammer
-
- hammer: Protect against excessively large object map sizes
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 92a96e1b16d9cadf182d200dfef0de6c2b388202
-Merge: 7cfc739 281d63d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Apr 6 13:44:09 2016 +0200
-
- Merge pull request #8011 from dillaman/wip-15033-hammer
-
- hammer: librbd: possible QEMU deadlock after creating image snapshots
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 77a4ed0a8986b2529edd8059dd3efa38f778c6f2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Apr 5 11:53:54 2016 +0200
-
- ceph.spec.in: disable lttng and babeltrace explicitly
-
- before this change, we do not pacakge tracepoint probe shared libraries
- on rhel7. but "configure" script enables them if lttng is detected. and
- rpm complains at seeing installed but not pacakged files. as EPEL-7 now
- includes lttng-ust-devel and libbabeltrace-devel, we'd better
- BuildRequire them, and build with them unless disabled otherwise. so in
- this change
- * make "lttng" an rpm build option enabled by default
- * BuildRequire lttng-ust-devel and libbabeltrace-devel if the "lttng"
- "lttng" option is enabled
- * --without-lttng --without-babeltrace if the "lttng" option is disabled
-
- Fixes: #14844
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f1a44907a2f83cb8080cd8ab5980a30306a33fbd)
-
- Conflicts:
- ceph.spec.in: trivial resolution, the context changed
- (other packages, files etc.) but the semantic did not
-
-commit 97f474fb6b26ae7b7e2fdd21de4f4bd98cdd56ab
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Mar 14 13:57:28 2016 -0400
-
- cls_rbd: protect against excessively large object maps
-
- Fixes: #15121
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4aff4ea3290dc7fb62c639bfc74fcfdde5fe9542)
-
- Conflicts:
- src/cls/rbd/cls_rbd.cc
- `RBD_METADATA_KEY_PREFIX` is not introduced on hammer, so remove
- it
-
-commit ac3569cd8bbb4b2b9a0edf298ce0b83bc18f1fea
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Mon Mar 21 18:20:18 2016 +0300
-
- hammer: monclient: avoid key renew storm on clock skew
-
- Refreshing rotating keys too often is a symptom of a clock skew, try to
- detect it and don't cause extra problems:
-
- * MonClient::_check_auth_rotating:
- - detect and report premature keys expiration due to a time skew
- - rate limit refreshing the keys to avoid excessive RAM and CPU usage
- (both by OSD in question and monitors which have to process a lot
- of auth messages)
- * MonClient::wait_auth_rotating: wait for valid (not expired) keys
- * OSD::init(): bail out after 10 attempts to obtain the rotating keys
-
- Fixes: #15336
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
- (cherry picked from commit 918c12c2ab5d014d0623b1accf959b041aac5128)
-
- Conflicts:
- src/osd/OSD.cc
- no loadavg checks in Hammer, hence the conflict. Move the
- counter and max_attempts initialization to a suitable place.
-
-commit 7cfc739a513da84d76b959efc51dd21c1cc552d6
-Merge: 0418943 7eae05e
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Mar 31 13:50:23 2016 +0200
-
- Merge pull request #8187 from liewegas/wip-15171
-
- hammer: osd/ReplicatedPG: do not proxy read *and* process op locally
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: David Zafman <dzafman@redhat.com>
- Reviewed-by: David Disseldorp <ddiss@suse.de>
-
-commit f8d2abd2e41c5dd04977f85cc1d6e65853c9a1b2
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Mar 3 12:03:44 2016 +0800
-
- osd/osd_types: encode pg_pool_t the old way
-
- as a workaround of #12410
-
- Fixes: #12968
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit 720a090eb67b3955b0cadb7633c5a28a934171a4
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 8 16:52:32 2015 +0800
-
- mon: disable gmt_hitset if not supported
-
- the gmt_hitset is enabled by default in the ctor of pg_pool_t, this
- is intentional. because we want to remove this setting and make
- gmt_hitset=true as a default in future. but this forces us to
- disable it explicitly when preparing a new pool if any OSD does
- not support gmt hitset.
-
- Fixes: #12968
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e48cec3dc93b3988dcd8924933deb1b3a43e1d0f)
-
- Conflicts:
- src/mon/OSDMonitor.cc
- remove unrelated hunk
-
-commit 7aec079f8a1bbe75625c438a17bb87e45398568e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 28 00:32:38 2015 +0800
-
- osd: do not let OSD_HITSET_GMT reuse the feature bit
-
- * to ease the backport to hammer
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5a4f6a866bb675195ad83c38fd23238d078c78ed)
-
- Conflicts:
- src/include/ceph_features.h
- minor changes to resolve conflicts
-
-commit 370434136ef076c350db3db4fca6489f88f70453
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Aug 27 11:24:25 2015 -0700
-
- osd: Decode use_gmt_hitset with a unique version
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2bc5a48f4c5d3667213be3a7b5a0e0f5ef9daf4f)
-
- Conflicts:
- src/osd/osd_types.cc
- minor changes to resolve conflicts
-
-commit 64bca2a43b34b265621bad2ec1fb980217223847
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Aug 18 16:53:50 2015 +0800
-
- mon: print use_gmt_hitset in "ceph osd pool get"
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cc2bcf760f2d2f20fc4a2fa78ba52475a23e55bf)
-
- Conflicts:
- src/mon/OSDMonitor.cc
- use the old way to dump pool info
-
-commit 87df212cfca33efbbee6376f528cb7d4895d1dc0
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Aug 18 00:04:23 2015 +0800
-
- mon: add "ceph osd pool set $pool use_gmt_hitset true" cmd
-
- allow "ceph osd pool set $pool use_gmt_hitset <true|1>" as long as
- the cluster supports gmt hitset.
-
- Fixes: #9732
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 03a1a3cf023a9aeb2fa26820e49e5efe3f3b3789)
-
-commit 039240418060c9a49298dacc0478772334526dce
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jun 5 21:06:48 2015 +0800
-
- osd: use GMT time for the object name of hitsets
-
- * bump the encoding version of pg_hit_set_info_t to 2, so we can
- tell if the corresponding hit_set is named using localtime or
- GMT
- * bump the encoding version of pg_pool_t to 20, so we can know
- if a pool is using GMT to name the hit_set archive or not. and
- we can tell if current cluster allows OSDs not support GMT
- mode or not.
- * add an option named `osd_pool_use_gmt_hitset`. if enabled,
- the cluster will try to use GMT mode when creating a new pool
- if all the the up OSDs support GMT mode. if any of the
- pools in the cluster is using GMT mode, then only OSDs
- supporting GMT mode are allowed to join the cluster.
-
- Fixes: #9732
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 42f8c5daad16aa849a0b99871d50161673c0c370)
-
- Conflicts:
- src/include/ceph_features.h
- src/osd/ReplicatedPG.cc
- src/osd/osd_types.cc
- src/osd/osd_types.h
- fill pg_pool_t with default settings in master branch.
-
-commit 744e9f837a94f95c5e877f074fd1479f8da64e3c
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Sep 4 01:23:31 2015 +0800
-
- test/bufferlist: do not expect !is_page_aligned() after unaligned rebuild
-
- if the size of a bufferlist is page aligned we allocate page aligned
- memory chunk for it when rebuild() is called. otherwise we just call
- the plain new() to allocate new memory chunk for holding the continuous
- buffer. but we should not expect that `new` allocator always returns
- unaligned memory chunks. instead, it *could* return page aligned
- memory chunk as long as the allocator feels appropriate. so, the
- `EXPECT_FALSE(bl.is_page_aligned())` after the `rebuild()` call is
- removed.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 8ed724222651812c2ee8cc3804dc1f54c973897d)
-
-commit 0830275b39afc408573c2c468fa3b0e7b1d5cc4e
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 6 14:35:35 2015 -0400
-
- osd/PG: fix generate_past_intervals
-
- We may be only calculating older past intervals and have a valid
- history.same_interval_since value, in which case the local
- same_interval_since value will end at the newest old interval we had to
- generate.
-
- This was introduced by 70316541bbb115d9a35954bfba373cf1dc084b7e.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 98cbf0380e9ee848725fc87d61c31a734305a84f)
-
-commit 0418943c6ef8c9649a58003444daeb4b6224fbab
-Merge: 35eae5f 2072a53
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 18 10:13:40 2016 -0400
-
- Merge pull request #8123 from liewegas/wip-15136-hammer
-
- qa/workunits: remove 'mds setmap' from workunits
-
-commit 7eae05e14231cb3476d14bf74b15bf9646849d09 (refs/remotes/me/wip-15171)
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 17 13:28:40 2016 -0400
-
- osd/ReplicatedPG: do not proxy read *and* process op locally
-
- If we proxy the read, we cannot return false, even if we fail to also
- trigger a promotion.
-
- Fixes: #15171
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit be4a9feae4c5f33685cceb386717a5733553df10 (refs/remotes/me/wip-reweight-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Mar 14 08:07:19 2016 -0400
-
- osd/OSDMap: fix typo in summarize_mapping_stats
-
- From ea9abe53d0e777b7dc3b22af71639f77c4de08c8
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit cc7e2329046ef7c528f321092a464f6db6e7edb9)
-
-commit 2072a53dc920b79ed76265d6097e50d3d2994b1d
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Mar 15 09:44:13 2016 -0400
-
- qa/workunits: remove 'mds setmap' from workunits
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6a80e2df8b31802a39ef6f89136ed357dce50c20)
-
-commit 01672b4afd6f886d6bb8527427663e062ab9d100
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Thu Jan 7 11:20:36 2016 +0000
-
- mon: Monitor: get rid of weighted clock skew reports
-
- By weighting the reports we were making it really hard to get rid of a
- clock skew warning once the cause had been fixed.
-
- Instead, as soon as we get a clean bill of health, let's run a new round
- and soon as possible and ascertain whether that was a transient fix or
- for realsies. That should be better than the alternative of waiting for
- an hour or something (for a large enough skew) for the warning to go
- away - and with it, the admin's sanity ("WHAT AM I DOING WRONG???").
-
- Fixes: #14175
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
-
- (cherry pick from commit 17d8ff429c7dca8fc1ada6e7cc8a7c4924a22e28)
-
-commit f90b8bc1a2b3ffa5ba52c0992c1c5ff52e5ea104
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Thu Jan 7 11:05:44 2016 +0000
-
- mon: Monitor: adaptative clock skew detection interval
-
- When in the presence of a clock skew, adjust the checking interval
- according to how many rounds have gone by since the last clean check.
-
- If a skew is detected, instead of waiting an additional 300 seconds we
- will perform the check more frequently, gradually backing off the
- frequency if the skew is still in place (up to a maximum of
- 'mon_timecheck_interval', default: 300s). This will help with transient
- skews.
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
-
- (cherry pick from commit 45e16d0d7407cf4e886dde9321bb91c1a087776d)
-
- Conflicts:
- src/common/config_opts.h
- Merge the change line.
- src/mon/Monitor.h
- handle_timecheck_leader(MonOpRequestRef op) was replaced with handle_timecheck_leader(MTimeCheck *m)
- also for handle_timecheck_peon and handle_timecheck.
-
-commit 57fd7f858c220af362b330d12db0e87de82b4346 (refs/remotes/gh/hammer-pr-8052)
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Nov 25 19:20:51 2015 -0800
-
- test/librados/test.cc: clean up EC pools' crush rules too
-
- SetUp was adding an erasure-coded pool, which automatically adds
- a new crush rule named after the pool, but only removing the
- pool. Remove the crush rule as well.
-
- http://tracker.ceph.com/issues/13878 Fixes: #13878
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 04b4795f81c15bfcb62ba5807745470ce0e5e949)
-
-commit d4cf19049349678065195659bb287b899f92a686
-Author: Owen Synge <osynge@suse.com>
-Date: Wed Mar 2 12:15:48 2016 +0100
-
- keyring permissions for mon daemon
-
- The command:
-
- sudo ceph-mon --cluster ceph --mkfs -i $NODE_NAME --keyring $PATH_MON_KEYRING
-
- Writes a new keyring with permissions set to "0644".
-
- Fixes: #14950
- Signed-off-by: Owen Synge osynge@suse.com
- (cherry picked from commit c2f91a8ce46974a72b960b7cb25af3d089fbb80d)
-
-commit 35eae5fbddd2b271a10db9a69d4c4e34029bca06
-Merge: c59b994 647723e
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 11 10:05:42 2016 +0700
-
- Merge pull request #7911 from dzafman/wip-meta-list-hammer
-
- hammer: tools, test: Add ceph-objectstore-tool to operate on the meta collection
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c59b9944a61174c7e29a26f4abfd7839020578af
-Merge: dd66eb9 d875620
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 11 10:03:43 2016 +0700
-
- Merge pull request #7903 from branch-predictor/bp-hammer-force-bench-smoke
-
- hammer: tools/rados: add bench smoke tests
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit dd66eb91d0129163ecfc8105f043fd0f6926dad5
-Merge: de43aba 5726463
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 11 10:02:18 2016 +0700
-
- Merge pull request #7876 from SUSE/wip-14946-hammer
-
- hammer: redhat-lsb-core dependency was dropped, but is still needed
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit de43aba0015927cec5ebd8f98ad26a801b1353ff
-Merge: 48dfac6 6a6754f
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 11 10:00:48 2016 +0700
-
- Merge pull request #7817 from asheplyakov/hammer-bug-14873
-
- hammer: tools: fix race condition in seq/rand bench (part 2)
-
- Reviewed-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 48dfac64ba37e5d0ec262798fbec011c1016a4f0
-Merge: 7083829 3a5b102
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 11 10:00:18 2016 +0700
-
- Merge pull request #7896 from asheplyakov/hammer-bug-14873-p1
-
- hammer: tools: fix race condition in seq/rand bench (part 1)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-
-commit 1b922e5431339d12e661de9fd4b16e8cf2c08ad5
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 10 08:50:57 2016 -0500
-
- test/pybind/test_ceph_argparse: fix reweight-by-utilization tests
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d0f87131962b26cef9e31fa11651771856c41164)
-
-commit 06a2a7596b876a5c2addb184a48222bcb6e23b9a
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Mar 10 21:41:15 2016 +0800
-
- man/8/ceph.rst: remove invalid option for reweight-by-*
-
- --yes-i-really-mean-it is not valid option for reweight-by-*
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 797f1d41d98738411079a7a16d8b1d5352359d33)
-
-commit 241f76262273bafd72e91fee3d46c412f7418767
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 9 13:25:55 2016 -0500
-
- mon: remove range=100 from reweight-by-* commands
-
- Specifying the range makes it skip instead of error when you give
- it a bad value.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 661891aa28ca0600a62e25f6d10ce7fa94e32cce)
-
-commit 55ad2c7724e114728bb327a97726a6c9b660bb1d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 3 13:46:12 2016 -0500
-
- mon: make max_osds an optional arg
-
- We keep the config option with the default (4), but let you
- specify the max # of osds to reweight as a third optional arg.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 651f05b6e6bec41b54c0a8f8ca6641ce3aa5dff3)
-
-commit f13cdeaf6657577c21a5bb2985d46971aa084c3f
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 3 13:38:57 2016 -0500
-
- mon: make reweight max_change default configurable
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8a9429d85bc99874dc9871b43b2d0c7ad1086803)
-
-commit f4b4ef76295d40753c6acffa3d92128f7ebe8733
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 3 13:38:19 2016 -0500
-
- mon/OSDMonitor: fix indentation
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 47b650c1497b8eaf37cfcb7e3b9fda12d8cf2d7a)
-
-commit 76eb3c8fbdb614a4cdde937a1dec680b4be82470
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 2 17:34:48 2016 -0500
-
- qa/workunits/cephtool/test.sh: test reweight-by-x commands
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 28b33a5b57e3f898808bd8ccc5e314667f84912a)
-
-commit 9a9d147aa14a637bbf8edddf85f6c36a29874694
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 10 08:28:59 2016 -0500
-
- osd/MonCommand: add/fix up 'osd [test-]reweight-by-{pg,utilization}'
-
- - show before/after pg placement stats
- - add test- variants that don't do anything
- - only allow --no-increasing on the -utilization versions (where
- it won't conflict with the optional pool list and confuse the
- arg parsing)
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1de7e47833f2d14c6915d7d071fe0005408c8da0)
-
- - use non-C++11 sort
-
- # Conflicts:
- # src/mon/OSDMonitor.cc
- # src/mon/OSDMonitor.h
-
-commit 6ec676df083ec3078f5efd8058d6fb6a491c9b04
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 2 14:00:15 2016 -0500
-
- mon: add 'osd utilization' command
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5b757eff868dbce2393beadd9fe2522372288cc0)
-
-commit 94134d9148edfcc41d2d239db69d0b299fbf427f
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 10 08:30:45 2016 -0500
-
- osd/OSDMap: add summarize_mapping_stats
-
- Calculate some basic stats about the PG distribution.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ea9abe53d0e777b7dc3b22af71639f77c4de08c8)
-
- - remove c++11 auto and range-based for loops
-
-commit 932f75d1f2105f296681b5fb02757087947e01f8
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 3 13:49:03 2016 -0500
-
- mon: make reweight-by-* max_change an argument
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a70eaabcfc1cc1dfb9b6ba2d7f71b3d76496eb55)
-
-commit d8372cea0c51db89cc48e5592236d53f7b01b6b3
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Feb 26 22:29:46 2016 +0100
-
- osd: add mon_reweight_max_osds to limit reweight-by-* commands
-
- Add configurable mon_reweight_max_osds which limits the number
- of OSDs modified each time reweight-by-* is called (by default
- to 4 OSDs).
-
- Also change the order in which we look at OSDs to go from most
- to least utilized.
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 3aa0ccefddc1790df5b808bfccd5da4857951220)
-
-commit 6a422b2626d48098c5a2c13de677814429263cba
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Feb 26 22:28:46 2016 +0100
-
- osd: add mon_reweight_max_change option which limits reweight-by-*
-
- Add a configurable mon_reweight_max_change which limits be default
- the reweight-by-* commands to only change an OSDs weight by 0.05.
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 6f0a1fb69da84ee18bdb9b151772cef8f32413c5)
-
-commit d3635b796ae28e1bc6598daf4109bf371a1f4ed8
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Feb 26 21:58:00 2016 +0100
-
- test: add simple test for new reweight-by-* options
-
- Test validity of --no-increasing and --yes-i-really-mean-it.
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 1a6ad5053e7fc4f8942855a17ce4540e340e9d4f)
-
-commit e993851b7abf80fd793aa5b7188f1af7dbe03041
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Feb 26 21:52:41 2016 +0100
-
- osd: add sure and no-increasing options to reweight-by-*
-
- Add a --no-increasing option to reweight-by-* which can be used to only decrease
- OSD weights without increasing any. This is useful for example if you need to
- urgently lower the weight of nearly full OSDs.
-
- Also add a --yes-i-really-mean-it confirmation to reweight-by-*.
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit ddf5c2b62316bb69839f220fe2527d1467863421)
-
-commit 281d63df792c4cdf25cca5428969c65d2ae379e8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Mar 9 18:00:04 2016 -0500
-
- librbd: complete cache reads on cache's dedicate thread
-
- If a snapshot is created out-of-band, the next IO will result in the
- cache being flushed. If pending writeback data performs a copy-on-write,
- the read from the parent will be blocked.
-
- Fixes: #15032
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f9e5ae80e3b0799b5a7e1d3f93b2d85a4baff20f)
-
-commit 621e3aef85e4b720232ca9ee89a4620d58362047
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Mar 9 17:31:06 2016 -0500
-
- test: reproducer for writeback CoW deadlock
-
- Refs: #14988
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 16b6efdd24b25ba1f6bc658681afa3d0878eb397)
- (cherry picked from commit 7ffbe4099c9367e7405e2196803a0d8b12253a06)
-
-commit 38b9c0b2fbbb056c29cd0485a9831edce020eaa6
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 16 11:32:34 2015 -0500
-
- osdc/Objecter: call notify completion only once
-
- If we race with a reconnect we could get a second notify message
- before the notify linger op is torn down. Ensure we only ever
- call the notify completion once to prevent a segfault.
-
- Fixes: #13805
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 987f68a8df292668ad241f4769d82792644454dd)
-
-commit 7083829c227403a77fcf35a2376dc02e4c9693c8 (refs/remotes/markhpc/hammer)
-Merge: 651e49e c4ba93a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Mar 8 10:00:15 2016 +0700
-
- Merge pull request #6604 from ukernel/hammer-13268
-
- hammer: client: added permission check based on getgrouplist
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 651e49ea2037834fbbf48e642a78075140e06782
-Merge: 522e3e8 b2393dc
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Mar 8 09:58:30 2016 +0700
-
- Merge pull request #6551 from ceph/hammer-client-inoderef
-
- hammer: client inoderef
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit f794adadd126bd77ae138794119725a046642712
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Fri Mar 4 13:06:47 2016 +1000
-
- tests: Add TEST_no_segfault_for_bad_keyring to test/mon/misc.sh
-
- 94da46b6e31cac206cb32fc5bd3159209ee25e8c adds
- TEST_no_segfault_for_bad_keyring which requires changes to run
- in hammer since test/mon/misc.sh is not written to run multiple tests in
- succession in the hammer version.
-
- Refs: #14960
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit 522e3e8d761a337796ed92868e00062b87e0f0a5
-Merge: d314849 e014ea8
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Mar 4 10:25:00 2016 +0700
-
- Merge pull request #7797 from SUSE/wip-14861-hammer
-
- hammer: ceph init script unconditionally sources /lib/lsb/init-functions
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 94da46b6e31cac206cb32fc5bd3159209ee25e8c
-Author: Dunrong Huang <riegamaths@gmail.com>
-Date: Tue Dec 8 00:22:02 2015 +0800
-
- tests: make sure no segfault occurs when using some bad keyring
-
- Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
- (cherry picked from commit 2eb0bf32244fc174d56cc42e2298c67d8b5299ac)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit a371c0f1d69fea131b56100492d3045c15ae072c
-Author: Dunrong Huang <riegamaths@gmail.com>
-Date: Wed Nov 25 19:03:03 2015 +0800
-
- auth: fix a crash issue due to CryptoHandler::create() failed
-
- In this case(e.g. user passes wrong key), attempts to call the CryptoKey.ckh will lead to a segfault.
-
- This patch fixes crash issue like following:
-
- Program received signal SIGSEGV, Segmentation fault.
- [Switching to Thread 0x7fffed10e700 (LWP 25051)]
- 0x00007ffff59896c6 in CryptoKey::encrypt (this=0x7fffed10d4f0, cct=0x555555829c30, in=..., out=..., error=0x7fffed10d440) at auth/cephx/../Crypto.h:110
- 110 return ckh->encrypt(in, out, error);
- (gdb) bt
- at auth/cephx/../Crypto.h:110
- at auth/cephx/CephxProtocol.h:464
-
- Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
- (cherry picked from commit a7f520caabf997b3753f1200f19f21830531b3f5)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit af5da4f24d7c2ea5a1322450180099278dd0da7c
-Author: Dunrong Huang <riegamaths@gmail.com>
-Date: Wed Nov 25 18:24:30 2015 +0800
-
- auth: fix double PK11_DestroyContext() if PK11_DigestFinal() failed
-
- Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
- (cherry picked from commit e9e05333ac7c64758bf14d80f6179e001c0fdbfd)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit c3f031a32df5d434721a2b00f2c8961759b1a916 (refs/remotes/markhpc/wip-10794-hammer)
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed May 20 14:09:02 2015 -0700
-
- ceph-objectstore-tool, osd: Fix import handling
-
- Use same_interval_since set to zero to communicate that an import has happened
- and the correct value needs to be computed.
-
- Fixes: #10794
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 70316541bbb115d9a35954bfba373cf1dc084b7e)
-
- Conflicts:
- src/osd/PG.cc (trivial)
-
-commit 647723ecd283273657bdb8b35dbb904e55c37add
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jun 4 10:37:42 2015 -0700
-
- tools, test: Add ceph-objectstore-tool to operate on the meta collection
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 31fa89f24997c3e9b4f8795ea28938ab65493d10)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc
- is_pg() still needs snap argument
-
-commit d8756208a3213e099574e57e9b654feab84b0497
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Thu Mar 3 11:30:53 2016 +0100
-
- common/obj_bencher.cc: make verify error fatal
-
- When run without "--no-verify", all verification errors are noted,
- but they are not forwarded/reported anywhere else but to cerr, which
- will cause automated testing to ignore them. Make seq_read_bench and
- rand_read_bench return -EIO on any verification error which will,
- in turn, return it back to caller.
-
- Fixes: #14974
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit 658bba85c488a38e25bc598637258c263f711631)
-
-commit 04fe9517cd049e97b845cef848f19a8b8dc3976c
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Thu Mar 3 14:40:44 2016 +0100
-
- test/test_rados_tool.sh: force rados bench rand and seq
-
- This forces rados bench rand and seq to execute, so if there's
- a regression in any of above, it won't go unnoticed.
-
- Fixes: #14974
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-
-commit d314849ab9b59ae55c6a86b878d123eb1c13d88a
-Merge: 20b2a74 31a2fc4
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 3 08:35:37 2016 -0500
-
- Merge pull request #7672 from dachary/wip-14783-hammer
-
- hammer: test_bit_vector.cc uses magic numbers against #defines that vary
-
-commit 6a6754f8dc834dbb13144cebdeeea2ff29e09127
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Fri Feb 26 15:01:11 2016 +0300
-
- hammer: tools: fix race condition in seq/rand bench (part 2)
-
- Commit c2c6d02591519dfd15ddcb397ac440322a964deb which is intended to
- cherry-pick 9bcf5f065c4ed4b10d8f98961d1f99493bcdc9b8 incorrectly resolved
- a conflict by adding code where it should have been removed. The incorrect
- conflict resolution can been displayed with
-
- commit=c2c6d02591519dfd15ddcb397ac440322a964deb
- picked_from=9bcf5f065c4ed4b10d8f98961d1f99493bcdc9b8
- diff -u --ignore-matching-lines '^[^+-]' <(git show $picked_from) <(git show $commit)
-
- --- /dev/fd/63 2016-03-03 14:09:51.354329129 +0700
- +++ /dev/fd/62 2016-03-03 14:09:51.358329122 +0700
- @@ -76,20 +79,18 @@
- ++data.in_flight;
- - if (!no_verify) {
- - snprintf(data.object_contents, data.object_size, "I'm the %16dth object!", current_index);
- -- lock.Unlock();
- + lock.Unlock();
- - if (memcmp(data.object_contents, cur_contents->c_str(), data.object_size) != 0) {
- - cerr << name[slot] << " is not correct!" << std::endl;
- - ++errors;
- - }
- -- } else {
- -- lock.Unlock();
- -- }
- --
- -+ lock.Unlock();
- - name[slot] = newName;
- - }
- -
- -@@ -789,11 +791,14 @@ int ObjBencher::rand_read_bench(int seconds_to_run, int num_objects, int concurr
- ++ if (memcmp(data.object_contents, cur_contents->c_str(), data.object_size) != 0) {
- ++ cerr << name[slot] << " is not correct!" << std::endl;
- ++ ++errors;
- + } else {
- + lock.Unlock();
- + }
- +@@ -776,11 +785,14 @@ int ObjBencher::rand_read_bench(int seconds_to_run, int num_objects, int concurr
- }
- lc.cond.Wait(lock);
- }
-
- http://tracker.ceph.com/issues/14873 Fixes: #14873
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit 3a5b1029f8f30bca569b12195329224208855096
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Thu Mar 3 15:30:23 2016 +0300
-
- hammer: tools: fix race condition in seq/rand bench (part 1)
-
- src/common/obj_bencher.cc:601: the lock should be taken before calling completion_ret,
- not after. Also note that if r < 0 the lock will be unlocked twice in a row.
- As a result rados bench seq fails with assertion in Mutex::Unlock().
-
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
- (cherry picked from commit 0c8faf7c9982c564002771c3a41362a833ace9bb)
-
- Conflicts:
- src/common/obj_bencher.cc
- src/common/obj_bencher.h
- Pick only the lock related part to unbreak seq bench. The failure due
- to the missing (or wrong sized) objects can be easily worked around, and
- the changes required to fix this problem are way too intrusive for hammer.
-
- http://tracker.ceph.com/issues/14873 Related: #14873
-
-commit c4ba93a6529ab549d42b601432ec88d8243909bf
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Sep 29 15:24:41 2015 +0800
-
- client: use fuse_req_getgroups() to get group list
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0eb6d0ba1b65ac0aaffc72a82f07857cc65a6b88)
-
-commit a84ed87082076e1990fb79703aa5ac8eea5d34ea
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Sep 29 15:11:24 2015 +0800
-
- client: use thread local data to track fuse request
-
- When handling an operation, libcephfs code may want to access fuse
- request for extra information. by tracking fuse request in thread
- local data, we can avoid adding extra parameter to Client::ll_foo
- functions.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a9f91d7d70893cdc5f832a26a5be298941d00315)
-
-commit e7f299ace762c7d02cad1f7253dba87404d944f5
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Aug 18 12:34:01 2015 +0200
-
- client/Client.cc: remove only once used variable
-
- Fix for:
- [src/client/Client.cc:4555]: (style) The scope of the variable
- 'initial_group_count' can be reduced.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a29dd45dd89f59ff15018f541601ac5ede162174)
-
-commit 16e3e2f0a0dc465ed9079df051215f4758f0ee4d
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Wed Aug 12 18:38:38 2015 +0200
-
- client/Client.cc: fix realloc memory leak
-
- Fix handling of realloc. If realloc() fails it returns NULL, assigning
- the return value of realloc() directly to the pointer without checking
- for the result will lead to a memory leak.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4f98dab99c35663de89a06e2dfdbd874f56aed41)
-
-commit b13ddc0690742b11802e59f34b539987d632ac58
-Author: blinke <Burkhard.Linke@computational.bio.uni-giessen.de>
-Date: Mon Aug 10 17:43:10 2015 +0200
-
- client: added permission check based on getgrouplist
-
- Fixes: #13268
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit f04c8da5432174874ca97d11a5b2fef56f95d73d)
-
-commit 562c0a962b291b90112ccea7d8c6f7c92a14851f
-Author: blinke <Burkhard.Linke@computational.bio.uni-giessen.de>
-Date: Mon Aug 10 15:31:44 2015 +0200
-
- configure.ac: added autoconf check for getgrouplist
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 16b59c6cd68d532a47e8c0e7b1f088b41433f048)
-
-commit e014ea88861f4f27b4a5db14c32133a3b864411e
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Jul 23 15:07:45 2015 +0800
-
- init-ceph: check if /lib/lsb/init-functions exists
-
- On OSX/FreeBSD, /lib/lsb/init-functions does not exist
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bb1fa7f3993dfcd1243b2a9a0bb432c269df215f)
-
-commit 20b2a7413e8f7538ff0683313e7b19c41aaf69ad
-Merge: c1bc048 c63baeb
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Mar 3 12:05:58 2016 +0700
-
- Merge pull request #7671 from tchaikov/wip-14583-hammer
-
- hammer: global/pidfile: do not start two daemons with a single pid-file
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c1bc048dd708a729137e1d28e0ccfedfe5d90933
-Merge: 546a7b9 28d42dc
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Mar 3 11:51:33 2016 +0700
-
- Merge pull request #7702 from ceph/wip-14077-hammer
-
- hammer: scrub bogus results when missing a clone
-
- Reviewed-by: Martin Palma <martin@palma.bz>
- Reviewed-by: Wei-Chung Cheng <freeze.vicente.cheng@gmail.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5726463368ddcc688e6308d22992568ba4c0da32
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Feb 26 18:30:49 2016 +0100
-
- packaging: lsb_release build and runtime dependency
-
- The lsb_release executable is being run in multiple places, not least in
- src/common/util.cc, which calls it via shell in the collect_sys_info() code
- path.
-
- This patch addresses this issue on SUSE- and Debian-derivatives, as well
- as reinstating the dependency for RHEL/Fedora after it was dropped in
- 15600572265bed397fbd80bdd2b7d83a0e9bd918.
-
- http://tracker.ceph.com/issues/14906 Fixes: #14906
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b87f4efb5689a8db77e06baf4f469afcd9df3677)
-
- Conflicts:
- ceph.spec.in
- The jewel specfile has diverged considerably from hammer:
- systemd, package split, etc. This is more of a hand backport
- than a cherry-pick.
-
-commit c63baebbb9bb5e6564955e920d0f658e5a3092af
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Feb 1 19:32:13 2016 +0700
-
- global: do not start two daemons with a single pid-file (part 2)
-
- Fixes the following bugs:
-
- * the fd is open(O_WRONLY) and cannot be read from, safe_read
- always fails and never removes the pid file.
-
- * pidfile_open(g_conf) is close(STDOUT_FILENO) and there is a risk that
- pidfile_open gets STDOUT_FILENO only to have it closed and redirected
- to /dev/null.
-
- * Before writing the file, ftruncate it so that overriding a file
- containing the pid 1234 with the pid 89 does not end up being
- a file with 8934.
-
- * Before reading the file, lseek back to offset 0 otherwise it
- will read nothing.
-
- * tests_pidfile was missing an argument when failing
- TEST_without_pidfile and killed all process with ceph in their name,
- leading to chaos and no useful error message.
-
- * lstat(fd) cannot possibly return a result different from the one
- obtained right after the file was open, stat(path) must be used
- instead.
-
- In addition to fixing the bugs above, refactor the pidfile.cc
- implementation to:
-
- * be systematic about error reporting (using cerr for when removing
- the pidfile because derr is not available at this point and derr
- when creating the pidfile).
-
- * replace pidfile_open / pidfile_write with just pidfile_write since
- there never is a case when they are not used together.
-
- More test cases are added to test_pidfile to verify the bugs above are
- fixed.
-
- http://tracker.ceph.com/issues/13422 Fixes: #13422
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 9828d49d6f3ccfc78d496153d263ea39b1722d4b)
-
- Conflicts:
- src/global/global_init.cc
- - the `flag` argument of `global_init_prefork()` is not used, so
- it was removed in master. but the cleanup commit was not
- cherry-picked to hammer, thus the conflict. we can just keep it
- around in hammer to minimize the code churn, although it may
- stand in the way of future backports.)
- - s/nullptr/NULL/ as hammer does not support c++11.
-
-commit 28d42dc8e0a0dd71d03c1b69fb7464b753bd4cc0
-Merge: 9144c38 9282c1d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:25:48 2016 -0800
-
- Merge backport pull request #6545 into wip-14077-hammer
-
- A commit skipped because remove_coll() still needed in Hammer
-
-commit 9144c3837f284ac2c922d2438b0e0f0cc7304d7a
-Merge: fd74fbf 3226615
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:25:35 2016 -0800
-
- Merge backport pull request #5783 into wip-14077-hammer
-
-commit fd74fbf04a965ca93dc9602f99e3cb7a3577340a
-Merge: 4309fa8 0fe3dfe
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:25:17 2016 -0800
-
- Merge backport pull request #5031 into wip-14077-hammer
-
-commit 4309fa87e13a20368ca34f7699436b628c9d7876
-Merge: de5e11e 1bc8882
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:24:58 2016 -0800
-
- Merge backport pull request #5842 into wip-14077-hammer
-
-commit de5e11ec69e7388a1a9c28614759b2e2d8b70ad8
-Merge: 7698e6c 6ff4217
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:24:31 2016 -0800
-
- Merge backport pull request #5127 into wip-14077-hammer
-
-commit 7698e6c54aae1d06664d8e8324595400e6087f24
-Merge: c8057c6 de80bbf
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:23:14 2016 -0800
-
- Merge backport 6 commits from pull request #5197 into wip-14077-hammer
-
- Excludes the ceph-objectstore-tool meta-list op
-
-commit c8057c693bf0ae7bb01ef238f4ef9f23454a2e33
-Merge: ecbf6d2 df0e11e
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:22:26 2016 -0800
-
- Merge backport branch 'wip-temp' into wip-14077-hammer
-
-commit ecbf6d2882073363ca1ddc5209e1e9537f51fa77
-Merge: 3415312 6c8884b
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:21:20 2016 -0800
-
- Merge backport pull request #4932 into wip-14077-hammer
-
-commit 34153127963b5baec0c2b84f7aa19b29fc81d4fa
-Merge: e022b5b 87a7f99
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:20:41 2016 -0800
-
- Merge backport pull request #4915 into wip-14077-hammer
-
-commit e022b5b55facb359f6fd27884e2408fda70db30a
-Merge: 4ed44e1 9ca2f35
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:20:00 2016 -0800
-
- Merge backport 1 commit from pull request #4863 into wip-14077-hammer
-
-commit 4ed44e1e33df986468585d00a6dc401025263217
-Merge: 3f0fc84 78a59f8
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:18:38 2016 -0800
-
- Merge backport 8 commits from pull request #4784 into wip-14077-hammer
-
- Only excludes actual fix for #10794
-
-commit 3f0fc84c4180473a87db01cb40d0488bcaa2c202
-Merge: db68c6c eab0f24
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:15:05 2016 -0800
-
- Merge backport 41 commits from pull request #4473 into wip-14077-hammer
-
-commit db68c6cb683870e68bf6143c6902b8ac89ecdc3a
-Merge: c3d938d 18c49b6
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:13:37 2016 -0800
-
- Merge backport branch 'wip-journal-header' of git://github.com/XinzeChi/ceph into wip-14077-hammer
-
- Includes a change to the code in the original merge commit itself
-
-commit c3d938d81020072c2d2eecf58f4639e773181b1a
-Merge: 7abb6ae a1fc101
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 25 14:13:02 2016 -0800
-
- Merge backport 1 commit of pull request #3686 into wip-14077-hammer
-
-commit 9282c1d01c4f2d99fb3832a3cf495f99fdc6487e
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Nov 5 19:06:17 2015 -0800
-
- ceph-objectstore-tool: Add dry-run checking to ops missing it
-
- Update test to check most operations
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e89f0e1c5e8a378809bec7c705ea2c23235d4b28)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit efc2183bafacfcd29fbb1b42231d4c147199e528
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 11 15:26:52 2015 -0800
-
- test: Remove redundant test output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e6f1bdcd310bd6417f0f695fba3430fd0edba43d)
-
-commit 322661547ec437a9cdb893fcd280a48cd60ec990
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 28 21:34:44 2015 -0700
-
- test: osd-scrub-snaps.sh uses ceph-helpers.sh and added to make check
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d712737be1aadb38ecc3882200999d79d748cdb8)
-
- ceph-helpers.sh in different location in Hammer
-
-commit 995a0042a1b8ed04b77e6bc4757a10552450dc7f
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 10 18:20:46 2015 -0800
-
- test: Verify replicated PG beyond just data after vstart
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9a29c5983cd392e4b479b6b685fb0c3797c10cd2)
-
-commit 6afb5d3be26931c670f22c892c925e2556c8e562
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Oct 26 11:36:43 2015 -0700
-
- osd: Use boost::optional instead of snap 0 for "all_clones"
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 310bf784b7cd8d75f2ab7ee431bc764f5b312aa2)
-
-commit 750f81732bc803128a8a25c07e10e9f709dc2a1a
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Nov 10 17:57:59 2015 -0800
-
- test: Fix verify() used after import to also check xattr and omap
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 92d00f22805599c519806c6ff6164847b5c33931)
-
-commit b8c9507f632510d7da8545d7afc49b618435ef3c
-Author: David Zafman <dzafman@redhat.com>
-Date: Sun Oct 25 18:57:18 2015 -0700
-
- osd, test: When head missing a snapset, clones not an error
-
- Fix log message for this case and make into "info"
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f508ddc6e9b40fe5c1c54e5faa569f2bc7b78c4b)
-
-commit 59fee8a65c1a39d7e3806852aabbf68d7ca37feb
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Nov 9 20:02:21 2015 -0800
-
- test: Add test cases for xattr and omap ceph-objectstore-tool operations
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cbaed6a8c737f77e68a0eb7f1fca32ec4155f045)
-
-commit 0988b1238d43630ff0b05d321952021ede73c2ae
-Author: David Zafman <dzafman@redhat.com>
-Date: Sat Oct 24 16:23:13 2015 -0700
-
- osd, test: Keep missing count and log number of missing clones
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2e0bb0ae9498fd9a0c49f1b81bf0c86f7a7cac42)
-
- Conflicts:
- src/osd/ReplicatedPG.h (trivial)
-
-commit 37be95996494f72d4fa3ecc62b54ee9478903c6e
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Nov 11 08:28:01 2015 -0800
-
- rados: Minor output changes for consistency across operations
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 016ed34ce85fa111f54857a8ca1002ae32b52b8e)
-
-commit 6c51e4831f34a67308e3f8190d9aad2c3d029bf7
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 20 11:14:42 2015 -0700
-
- test: Eliminate check for bogus "obj13/head snaps empty" error
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 8227b4b75c24b632e637decbe4b818606e8589ee)
-
-commit e92505bec093cb3070e4962bc86b82a257c64171
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 14 20:34:28 2015 -0700
-
- ceph-objectstore-tool: Add new remove-clone-metadata object op
-
- Fixes: #12740
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c6d283f0f16347a13418d8a0ed136913e1161893)
-
- No Sequencer in transactions in Hammer
-
-commit 8f88b442a26603cc321fccc7047cb8639b2a0f65
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 14 20:42:48 2015 -0700
-
- osd: Fix trim_object() to not crash on corrupt snapset
-
- Add test case to check for trim_object() osd crash
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit eb0ca424815e94c78a2d09dbf787d102172f4ddf)
-
- Conflicts:
- src/osd/ReplicatedPG.cc (trivial)
-
-commit 78b13f5d591d9d9676939abc4febeb7d2eebb1a3
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 14 13:12:17 2015 -0700
-
- ceph-objectstore-tool: Improve object spec error handling
-
- Add test cases
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit caf2d5970b0a3e3ce4ef941d1955b7821a0fc916)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
-
-commit 7b800b7c3efb5403d03fc0c4386821b433b85268
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 7 17:25:44 2015 -0700
-
- ceph-objectstore-tool: Add undocumented clear-snapset command for testing
-
- Add test cases using new feature to corrupt SnapSet
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b6302acdd344997aabdb426104de9f24e9990437)
-
- No Sequencer in transactions in Hammer
-
-commit 7f398bd2a3264d1ac5bf40a5470c43454dbad571
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 14 21:59:50 2015 -0700
-
- ceph-objectstore-tool: Add set-size command for objects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 138a33b8946e6fea1e09527b8bc45b7aa4bee1d6)
-
- No Sequencer in transactions in Hammer
-
-commit 53dc87f82642de769a7ea11554552e6db06a3e65
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 14 22:04:05 2015 -0700
-
- ceph-objectstore-tool: Enhanced dump command replaces dump-info
-
- Show object stat information from objectstore
- Show SnapSet if present
- Add --head for search by object name
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1688debf7892d36c773c12d7d0b1b9b4cddc5f98)
-
-commit a46fc6613e1f1f6709184d68f23bccab0fd03bd6
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Oct 2 13:39:29 2015 -0700
-
- test: Add some clones to ceph-objectstore-tool test
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b4ba3e66548a5dee58553df071b916c85d701caf)
-
-commit fd518e704e0e5c01f3b7efa8905ddde1e64cc842
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Oct 1 19:28:54 2015 -0700
-
- ceph-objectstore-tool: For corrupt objectstores, don't abort listing on errors
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d276d3286504ea702ae561b91dff4121c99feb9a)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit ad7825a4beba879f6a38ef3eda0648f11f8783bd
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 13 13:02:40 2015 -0700
-
- ceph-objectstore-tool: Improve some error messages
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b0c884ba8b51eedf9def093c61f0f06398101ecc)
-
-commit 26cbf14ef1e44936f48fdb2be40b59ae2117666f
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Sep 3 14:22:20 2015 -0700
-
- ceph-objectstore-tool: White space fixes
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0564f398269d920d90f6d6ecb008ebcd6609d611)
-
-commit 0f785646d2f52522706835a2f1c8e0101db9a622
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 13 15:33:26 2015 -0700
-
- tools/rados: Improve xattr import handling so future internal xattrs ignored
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9222f56403cf52ec161a38fc437a3f04c24d1625)
-
- Conflicts:
- src/tools/rados/RadosImport.cc (Code in ceph_objectstore_tool.cc in Hammer)
-
-commit c8e27725249cf587e65af323e3ae0ba43c740c10
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Sep 29 19:57:43 2015 -0700
-
- test: Test scrubbing of snapshot problems
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e5ad33ec07ee9fffe862d84955a566261d101713)
-
-commit 113d5c75a5bd33b1b5fe399d83d94a671eb40658
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Sep 28 10:59:42 2015 -0700
-
- osd: Don't crash if OI_ATTR attribute is missing or corrupt
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e0b39650028205e9d9e314b75c444cc8cf055a31)
-
-commit 3af8f9e8044fb1e126f208903c41cde065db304e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 13 18:02:32 2015 -0700
-
- osd: Additional _scrub() check for snapset inconsistency
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9e48e1801ea1a10ce495b3947da06676c2f5f72f)
-
-commit 7103e74e335652f2a28b1dad0a2f2028398a600d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Sep 3 19:43:35 2015 -0700
-
- osd: Better SnapSet scrub checking (find issues instead of asserting)
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 3b381caaad20c683a330e8b7a4e1c017abcb60df)
-
-commit 18af852a2c71b733ec5c6bd397b2e712b676c693
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Aug 26 13:58:09 2015 -0700
-
- osd: Make the _scrub routine produce good output and detect errors properly
-
- Catch decode errors so osd doesn't crash on corrupt OI_ATTR or SS_ATTR
- Use boost::optional<> to make current state clearer
- Create next_clone as needed using head/curclone
- Add equivalent logic after getting to end of scrubmap.objects
-
- Fixes: #12738
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a23036c6fd7de5d1dbc2bd30c967c0be51d94ca5)
-
- Conflicts:
- src/osd/ReplicatedPG.cc (no num_objects_pinned in hammer)
- src/osd/ReplicatedPG.h (no get_temp_recovery_object() in hammer)
-
-commit 3a1b58838dba6bd482aa5786dc44962c4a977c17
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Sep 30 17:17:15 2015 -0700
-
- osd: Fix log message name of ceph-objectstore-tool
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 545e4b2c582625f8b93502266ca59ee40e0d0e5f)
-
-commit 0fe3dfe8768b27743189add73cde9a44095f2a62
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Jun 16 11:57:08 2015 +0300
-
- ceph-objectstore-tool: add mark-complete operation
-
- It is supposed to be used as a last resort to fix a cluster that has
- PGs in 'incomplete' state, using the following procedure:
-
- 1) stop the osd that is primary for the incomplete PG;
- 2) run:
- ceph-objectstore-tool --data-path ... --journal-path ... --pgid $PGID --op mark-complete
- 3) start the osd.
-
- Fixes: #10098
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 6907778d767ba08bb80c495785056ed122b023fe)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit 1bc88827fc40f124f570dd8b7865c687f1b1f5a8
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Sep 8 12:33:44 2015 -0700
-
- test: Fix failure test to find message anywhere in stderr
-
- Consolidate test_failure() and test_failure_tty()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 95bd3c2c54312417b132ddb91c89fdbe63b01fd0)
-
-commit 6ff421738c93ff37521ccf67caf3d09d284e339c
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jul 17 14:46:16 2015 +0800
-
- test: add test for {get,set}-inc-osdmap commands.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 818de1a2c89272d98610328a958fea06d1cc41cc)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
-
-commit de80bbf4d7c1b78017cf447a7f511ceefac39e50
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jun 23 16:51:27 2015 -0700
-
- test: Add debug argument to the ceph-objectstore-tool test
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a3b14ede9e829ec85c49980ecbff11f584ca70ae)
-
-commit 0643797cb7a37b5601a7dd8da9a81f8194b8f25d
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Sep 8 13:41:31 2015 -0700
-
- rados: Fix usage for "notify" command
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b968fb3bcefb0cdafb1e84d7c679b61a201a940f)
-
-commit 5ba8649423fd5a2d5c212273c901f9ddd5f44632
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 8 15:51:55 2015 +0800
-
- test: add test for {get,set}-osdmap commands
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 0257c150fe552300c0d9f5a22a27aaa49fb6cc64)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
-
-commit 3276258b1a9123caec8d635aa1a2de3ef02201e6
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jun 25 17:15:39 2015 -0700
-
- tools, test: Some ceph-objectstore-tool error handling fixes
-
- Improve various error messages generated with invalid syntax
- Add test cases for most of these error messages
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 127a5f191d3d2442edd3a3fa820006bca3a08c93)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
-
-commit cfabcc1066a06644b619fa027e27d338411120c9
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jul 14 10:33:47 2015 +0800
-
- tools/ceph-objectstore-tool: add get-inc-osdmap command
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 7801bb20d23ce83fc4093c23331bcb75e43c878f)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit c7d0fda01efc29d81723d4edfba2bfbbe6765760
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 22 20:11:10 2015 -0700
-
- tools: Check for valid --op earlier so we can get a better error message
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d8460714fab61d0a3092b3e7b290c0c19ad58beb)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
- src/tools/ceph_objectstore_tool.cc (meta-list op not in Hammer)
-
-commit be24c50bb74aa6cd7bb08519cdaf267d4107eef3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Jul 11 16:27:47 2015 +0800
-
- tools/ceph-objectstore-tool: add set-inc-osdmap command
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 95344d07c3a1a9a6b1246e5eca3f7daeb062dd06)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit 06dcf74374f57224536522ef46dba8a53a0d755d
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Jun 10 17:04:57 2015 -0700
-
- tools: Fix newlines in output of --op list
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 6aec38b51f0c14684912b5ee28fb5b1375cb8f8a)
-
-commit e44c042c3dffc4ca396dbdfac24fa65914c0b73b
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jul 3 23:09:54 2015 +0800
-
- tools/ceph-objectstore-tool: add "get-osdmap" command
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f0c130d6b1bc2a8a0cce6d78a6e69995fe00a427)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit 3f9e46779addaa07d04d501113eb95cea95b802b
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 22 18:38:01 2015 -0700
-
- tools: Fix dump-super which doesn't require pgid
-
- A valid pgid had to be specified in order for superblock to be displayed,
- but it was otherwise ignored.
- Fix message that didn't include dump-super
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit fd1772e0ac4cb801d6f3b056645eeb4d3d6ef001)
-
-commit c60eee1dcd64d4452e96ed937f94a3ec41faf9fe
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Jul 2 19:14:55 2015 +0800
-
- tools/ceph-objectstore-tool: add "set-osdmap" command
-
- Fixes: #12193
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 3e30c1746fb8d90b04e4776849069db0b7737c87)
-
- Conflicts:
- src/tools/ceph_objectstore_tool.cc (trivial)
-
-commit cfe7d47d38fd103601c09eceb98b9c7365869fba
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 22 19:16:22 2015 -0700
-
- tools: Check and specify commands that require the pgid specification
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5534bc864813d96a0d20791d79151c4f6695a013)
-
-commit df0e11e7783e239ae7be992b342df980d399ab95
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 11 16:25:49 2014 -0800
-
- hobject_t: modify operator<<
-
- Put the most significant fields to the left so that it matches the sort
- order. Also use unambiguous separator when the nspace is present
- (like we do with the key).
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ecdc8f697acf1627b35a83663c219a3bb0ada453)
-
-commit 6c8884b11b8211642662bfd7d612872621ffd8ff
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jun 11 12:57:10 2015 -0700
-
- test, tools: Improve ceph-objectstore-tool import error handling and add tests
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ddc4d52782a04d99a4293c9fc278894dfe328515)
-
-commit 87a7f991d1f2f1a05fff18accc7e31ff393083f1
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jun 9 18:14:09 2015 -0700
-
- tools: For ec pools list objects in all shards if the pgid doesn't specify
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1aa9655f10b0fcc42cb5114681b8b24a2ccb68f4)
-
-commit 9ca2f35d02169e6f82e3d45e00fe880c02cbd8ce
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Apr 20 17:28:15 2015 +0100
-
- tools: clean up errors in ceph-objectstore-tool
-
- We use negative error codes everywhere else, should
- use them here too. Also add a couple of strategically
- placed prints.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 8e5594da29e782b6efd046ed03f313599dafa1c5)
-
- Conflicts:
- src/tools/RadosDump.cc (Excluded, not in Hammer)
-
-commit 78a59f8b0c43adbd9a7a1db68dafcbf7bd2ad74d
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 1 17:22:18 2015 -0700
-
- test/ceph-objectstore-tool: Don't need stderr noise
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d7858c66454093dd6f2fab60e33e5b2472bcd80a)
-
-commit eab0f2403ea025f4e659dc055323b227023448ab
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Apr 9 16:26:07 2015 -0700
-
- osd: Show number of divergent_priors in log message
-
- Report dirty_divergent_priors as true or false
- Use dout(5) so tests can verify divergent_priors created
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 67da8feb0ff8659f1ff812be5a866ef5e97facf2)
-
-commit d58793d10d682fba2ceafa4d6a1668c4917be77f
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jul 6 18:14:06 2015 -0700
-
- osd, tools: Always filter temp objects since not being exported
-
- Can't use object_locator_to_pg() directly with a temp object
- because the pool is negative.
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 557c6530a515cffacbaec439cabff8a079edbf5b)
-
-commit efc402ea9846d3995bf3d4c98188842cb69870cf
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 1 17:15:21 2015 -0700
-
- test/ceph-objectstore-tool: Show command that should have failed
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 23551deea66673c35d7183d18b63b5a8438ebf00)
-
-commit 88ac5198f542cdea87d0f600a2201132c47f158d
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue May 12 15:28:07 2015 -0700
-
- test: Add config changes to all tests to avoid order dependency
-
- ReplayCorrupt was crashing because journal_ignore_corruption wasn't set true
- Improve ReplayCorrupt by checking setting of bool corrupt and use ASSERT_FALSE()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9016269a1c248da69a0e85df4ca3ba95011710c5)
-
-commit 3d99ecd6131f41ebe60c352266dca9193d61bbc9
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jun 22 11:15:58 2015 -0700
-
- tools: Don't export temporary objects until we have persistent-temp objects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 4fcf5dd370e8cfac75fadbf709a785053eb26ad9)
-
- Remove "assert(!i->hobj.is_meta());" since is_meta() is not in Hammer
-
-commit 13360d3a55818fc5b63a2bb9889a67f3fc98d286
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 22 17:41:40 2015 -0700
-
- test/ceph_objectstore_tool: Improve dump-journal testing
-
- Fix false failure when journal has no entries
- Test dump-journal on all osds in 2 places
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ce76f88777ec026521cce465095d6376efd460a8)
-
-commit 444ce0ac718e903b39c25cf58d0a503ead491790
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 22 11:52:00 2015 -0700
-
- ceph-objectstore-tool: Allow --pgid specified on import (for post split)
-
- Revamp split import testing to use --pgid option post split
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 90202a70f8c32120625c99ef5131778b3c9f6303)
-
-commit aed1c49e7d3631d797776be1020f6df0f77ea1f3
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 22 10:53:48 2015 -0700
-
- ceph-objectstore-tool: Invalidate pg stats when objects were skipped during pg import
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 51e27984ec131fd21bbc26411ae1540b9047eb37)
-
-commit af3f8ae1d9e210499fd0165e473f9b5d87666f75
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon May 18 20:22:03 2015 -0700
-
- ceph-objectstore-tool: Add dump-super to show OSDSuperblock in format specified
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 99d7663f870abfa82711dbf0451334f7d6c883d8)
-
-commit 4dcf15bc71c815cfdb0f6bc6f90c9b603d18b37f
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon May 18 20:25:23 2015 -0700
-
- mds, include: Fix dump() numeric char array to include additional alpha chars
-
- Caused by: c87f55b5a8b3e003726e1be22b9cb6894ef2f37d
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f1520061bba1e052a9be3ae11161122c1f6c3425)
-
-commit feecacfb34dfd831291fc736ea39dbcf69e7d765
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon May 18 20:08:14 2015 -0700
-
- ceph-objectstore-tool: Add dump-journal as not requiring --pgid in usage
-
- Additional comment describes --pgid requirement checking
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit bd2f62445be7153a9600bcf4399e8fc56f1efd3f)
-
-commit 5e8fbb1858f7a8dd65d1b9f873aaca05f3ddb1eb
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 16:37:46 2015 -0800
-
- test: ceph_test_filejournal: Conform to test infrastructure requirements
-
- Only call RUN_ALL_TESTS() once
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e30efe6c15780a6239b9970297df1f2c1918c9b1)
-
-commit c161cbf81a29e523bb4ffb897f6d02112eb49b09
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 16:13:50 2015 -0800
-
- test: ceph_test_filejournal need to force aio because testing with a file
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d540dde1faee47d01ee358ae384fa301fa59f00f)
-
-commit 06d3f512149dc9aa38d959ac31891b81634d0ea4
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 16:04:36 2015 -0800
-
- test: ceph_test_filejournal fix missing argument to FileJournal constructor
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c94fe8db36e7d54227edde94a99bc1aa236b8ec8)
-
-commit 2078f639d91fbaa9b89832811315c7c41da25a4b
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 19 19:48:11 2015 -0800
-
- test: ceph_test_filejournal Add check of journalq in WriteTrim test
-
- Commit all journal entries and check for empty journalq
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 8da4d9f6330c57d6b437ea44f54f147075e24195)
-
-commit ab893d769d2728368f94b035edde750a3fa5e617
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jan 29 17:14:39 2015 -0800
-
- test: Fix ceph-objectstore-tool test missing fd.close()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ece630d5a741ba8c82f55f964f1887cb7fcaa493)
-
-commit b5f2ccd5bd77c7a473f38fdab183fd52577b7331
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jan 29 17:13:41 2015 -0800
-
- test: Fix ceph-objectstore-tool test error message
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 11c13eb7c182870727fbcb25a83f3348ac0bad13)
-
-commit 848822db38e000a7e7bfe49ae0fe03996bb7e8c1
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Apr 1 10:32:32 2015 -0700
-
- test: ceph-objectstore-tool: Remove duplicate debug messages, keep cmd/log/call together
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 94b3d7632f2548c19beca5a2e024c95f601b61f3)
-
-commit 771dcd945281a091b165c0b1a90c1f6058dbf923
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 27 19:47:01 2015 -0700
-
- test: ceph-objectstore-tool import after split testing
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d80ce6668c1aa3c9898ab49e847c4dadafe256f0)
-
-commit 4f387b1e1c8dbfe9ed2a70fc02ff5ccf93ffb905
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Mar 31 08:16:03 2015 -0700
-
- test: Use CEPH_DIR where appropriate
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1e18e8a88f88809081684b09f36691cd724720b5)
-
-commit b337d677daf5b6098a2dbcf2d8966703cf8db449
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 30 17:35:07 2015 -0700
-
- test: Limit how long ceph-objectstore-tool test will wait for health
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 868cf457a3990ba9989aef55823630e3189acf4a)
-
-commit 09cb8a41ed6a9642978e399b426b21704c704f46
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 30 17:33:46 2015 -0700
-
- test: Add optional arg to vstart() to provide additional args to vstart
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit dff17a800c9cc1cf0cc23d70479c031aa8e9cbfc)
-
-commit b4ac42be79bb11cb27282d97aec9e6ca8f658e5c
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 19:35:27 2015 -0800
-
- test: Test ceph-objectstore-tool --op dump-journal output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 9b08bcf95caf77fb7f9bd293559534ed8ff3eded)
-
- Conflicts:
- src/test/ceph_objectstore_tool.py (trivial)
-
-commit 729abf5a83a656ac2a95ad147909bf7c8fa18999
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Mar 17 14:56:06 2015 -0700
-
- test: Pep8 fixes for ceph-objectstore-tool test
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b0141108c0596b535d25792a9102787b1cd3eca3)
-
-commit 33813b66fa4402fe0d66d95d6f9b790b11c9f1f1
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 18:37:44 2015 -0800
-
- test: Fix ceph-objectstore-tool test, overwrite OTHERFILE so second check is meaningful
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1b9f85befa1efff3b05b2af0e62d568eea37d790)
-
-commit f7ab316be9ce3592e0bc1c3a1012b0a83dfea2b4
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Mar 5 19:16:45 2015 -0800
-
- osd: FileJournal: Add _fdump() that takes Formatter instead of ostream
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 130eba48495d0e6acd8a472cbf0c47ebbc7a038c)
-
-commit 99d3e17fe8c03eb30b18dee185623a9c16553d9e
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 18 12:34:35 2015 -0800
-
- osd: Add simple_dump() to FileJournal for unit testing
-
- Allow a dump when entries aren't ObjectStore::Transaction's
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 8d5464c0f81aa9bb3be233a03bce64b505a265f4)
-
-commit 80fc57f79a9bd23e119be73fe01063e85c60ca83
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 18 12:29:38 2015 -0800
-
- osd: FileJournal clean-up
-
- Move aio / directio adjustments to constructor
- Indicate functions which only operate before journal is active
- Make functions const when possible
- Move push_back() of journalq to read_entry()
- Change dump() to use do_read_entry() to minimize side effects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 12fdf4ced0b2c17770c21204c8eccca8e4d0d2c9)
-
- Conflicts:
- src/os/FileJournal.cc (trivial)
-
-commit b8f4ea17274f9094efa169a28440701319c14516
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 5 18:48:22 2015 -0800
-
- osd: Dump header in FileJournal::dump()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 3c97b32131e83c934b3d340eeb75284e898380c4)
-
-commit 21c3c18c7b25ddea664179797527ea9854c3f450
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 5 18:40:25 2015 -0800
-
- osd: FileJournal::read_entry() can't use a zero seq to check for corruption
-
- Seen when using dump() on a journal which has all entries committed
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a7cda53d20eb6d35203fce6ec9f7ea1df432bf53)
-
-commit 288902fecd78b1926aa4a1d53587828fda63845d
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Feb 5 18:36:01 2015 -0800
-
- osd: Fix flushing in FileJournal::dump()
-
- Use ostream arg since caller is specifying
- Move flush after last section close
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f2d83520f67fdc1b5a89b4ea742493a3df392989)
-
-commit a935ce501692f51be004f8cb20da29f18e649d44
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Apr 30 10:20:24 2015 -0700
-
- osd: Add admin socket feature set_recovery_delay
-
- Set the value of osd_recovery_delay_start to specified seconds
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 73b17319379d904ffdf9479ca476da8e8e34e935)
-
- Conflicts:
- src/osd/OSD.cc (trivial)
-
-commit 4ae3f88cc4493413c4aab54e21759507b0d572b0
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Apr 27 15:37:14 2015 -0700
-
- ceph-objectstore-tool: For import/export --debug dump the log
-
- Move log dumping code to common function dump_log()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 545c78c65f33fcac60b5aa7ee2b574ceb0211fd5)
-
-commit cc5fa68c184f66d3ca6ff736eb308cba0a0d10b0
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Jan 30 16:56:10 2015 -0800
-
- ceph-objectstore-tool: If object re-appears after removal, just skip it
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c6e41663e7434b4dcbb1abbe62ac008388da268a)
-
-commit d8ae1a9b842b6871225f0cc2d8a8dbdcf01238e4
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Jan 30 16:11:13 2015 -0800
-
- ceph-objectstore-tool: Add --no-overwrite flag for import-rados
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 35cdcabbdad7dc7249029630c64022c822c67ddc)
-
-commit 2dbf843560de2b9b74d9b0d0baf2a303e6c4e86b
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 2 16:23:18 2015 -0800
-
- ceph-objectstore-tool: Remove list-lost because now we have --dry-run flag
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 3e7fe7e85716f80e055ffbc5305f406b3e020608)
-
-commit 35991747c4cf5c4f9c150aae128f63c7b8c8a5cd
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Jan 23 07:34:11 2015 -0800
-
- ceph-objectstore-tool: Add --dry-run option
-
- Fixes: #10290
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2795161f470ab87cf4a82f455773c9b1b82946ef)
-
-commit 05d3b73ac6ef841af5037336996d1ed6bfdac4b5
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jan 22 10:07:09 2015 -0800
-
- ceph-objectstore-tool: Add dump-info command to show object info
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 244092d034781d2e980f9de7c6f9eea227967c5a)
-
-commit 2d764c54d4b028455be8b592712c6424f5f9f19e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jan 27 14:32:42 2015 -0800
-
- ceph-objectstore-tool: Use empty string for <object> to specify pgmeta object
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c00290b836adba12212e8a57f13b0c9193ac0ef8)
-
-commit 3a533d767bafc466e653bdd89d064b5f2b9aa257
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Apr 20 17:28:15 2015 +0100
-
- ceph-objectstore-tool: Add a couple of strategically placed prints
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit fdb1a4b676765c5d3ca5d436f34230dd6996d7a7)
-
-commit 7947f4f72f4bb6441ea5c353757d9ea3f464cff4
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Apr 20 16:10:18 2015 -0700
-
- ceph-objectstore-tool: Clean up error handling
-
- Use negative errors throughout and positive error to specify exit status
- cpp_strerror() handles negative errors
- Clean up main() code to use local "ret"
- Let end of main() decide how to treat the final value of "ret"
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a50679a1a3313e4090bf24f6e4dda28e7d67d731)
-
- Adjust back cherry-pick f237ed97228839a1b412ad213945f0343df05bf5
- Switched to use ret as in the original change from master
-
-commit 83de86e4e9dedc05fd65201715dadbd46074b7e0
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Apr 15 15:40:41 2015 -0700
-
- ceph-objectstore-tool: Create section around log/missing/divergent_priors of --op log
-
- Remove extra new lines in the output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 548147b412eebe57861768e5fd66360c2582d2c6)
-
-commit ddfaa70ade3b6d7ff061083fcd610b588fbd4dd7
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Apr 14 13:49:26 2015 -0700
-
- ceph-objectstore-tool: Add divergent_priors handling
-
- Add to --op log output
- Add to metadata_section for export
- Add filtering of divergent_priors in case of splits
-
- Fixes: #11237
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 6ad7e9b362f437fe028fe59639489efe87b3525f)
-
-commit add937c437a4bd86c932ef49525aff039d9bee90
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Mar 18 10:05:24 2015 -0700
-
- ceph-objectstore-tool: Add --force option which is used for import only
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2f4090daaea715b896e49f678933abb8a13b5c98)
-
-commit f33274894a83072a483b0646a91b5182a72c7c90
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 13 00:41:39 2015 -0700
-
- ceph-objectstore-tool: Fix pgid scan to skip snapdirs
-
- Long standing bug where it wasn't skipping snapdirs if !debug
- For debug output use stderr like all other cases
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 24f06598966319a62fa58a5831d9741fac1d471b)
-
-commit 3e68825e60a2e69a20198439347aadf8742d4ea6
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 9 12:24:19 2015 -0800
-
- ceph-objectstore-tool: Add dump-journal op
-
- Have dump-journal op directly dump a filestore journal without
- mounting or try to dump after mounting.
-
- Fixes: #11135
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 381605e34a44edb9acfcfb5a56bd598b020e022f)
-
-commit aaff4d7bcbc3e48aa6c0342d66a9c30c93744064
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 9 12:46:20 2015 -0800
-
- ceph-objectstore-tool: On any exit release CephContext so logging can flush
-
- Add myexit() which will put() the g_ceph_context if present before exit
- Must umount() once the objectstore has been mounted
-
- Fixes: #10809
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 409328bace0ffb3a457c0d384377bbbf37a2962d)
-
-commit 7445cf5a04d396dbc36e21aecd44bc4aadaff397
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 9 17:28:04 2015 -0800
-
- ceph-objectstore-tool: Check for keyvaluestore experimental feature
-
- Don't list keyvaluestore as a valid type if feature not enabled
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit fb2f9d500e52aa0834666550a684fe991701c9dd)
-
-commit 9da6c01b5e59e59a80d00e3d17cf5da05dd84f72
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 9 17:14:50 2015 -0800
-
- ceph-objectstore-tool: Eliminate obscure "Invalid params" error
-
- Will fail later with "No such file or directory" for an empty data-path
- because we've already checked for vm.count("data-path")
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cfca6835bd53d535bde2793551211845b0facebd)
-
-commit c5ac7ce09bc5b96722738a1884c6046aba6518f2
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 9 15:37:57 2015 -0800
-
- ceph-objectstore-tool: Check pgid validity earlier like we did before
-
- This code was not doing the umount() even though it was moved after mount()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 565b413df9c562a4071b9372d6362a9105c3538e)
-
-commit 18c49b6474a563b5f7f7cef671050d46ac4c3c4f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri May 1 09:22:01 2015 -0700
-
- Backport the merge commit of branch 'wip-journal-header' of git://github.com/XinzeChi/ceph
-
- (cherry picked from commit 8d596bfa24c9c3e2aadbb87494284cb5fd824e55)
-
- Conflicts:
- src/os/FileJournal.cc (trivial)
- src/os/FileJournal.h (trivial)
-
- Renamed write_header() to write_header_sync() in a merge
- Signed-off-by: David Zafman <dzafman@redhat.com>
-
-commit 546a7b988dac56770730ddc9395ee0d52a666fa3
-Merge: 6b7660c 3352b14
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 22:39:06 2016 +0700
-
- Merge pull request #7656 from dzafman/wip-14769-hammer
-
- ceph.in: Notify user that 'tell' can't be used in interactive mode
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 6b7660c91d1837b585b365068da835127752ebfc
-Merge: e34c209 14b5fea
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 22:37:58 2016 +0700
-
- Merge pull request #7648 from tchaikov/wip-13783-hammer
-
- mon/LogMonitor: use the configured facility if log to syslog
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cf433bac5b7bc6bdbb6fac56c420288544c79ef5
-Author: shun-s <songshun134@126.com>
-Date: Wed Dec 2 10:36:35 2015 +0800
-
- global/pidfile: do not start two daemons with a single pid-file
-
- add functions named pidfile_open and pidfile_verify to avoid starting two daemons by a single pid-file
-
- Fixes: #13422
- Signed-off-by: shun song <song.shun3@zte.com.cn>
- (cherry picked from commit f2c0ef40fd674fecc6e3e97cd6155b976e6759b4)
-
-commit e34c2094ef44e6e52896820f4dd90a1c5d5bbfe8
-Merge: ec33aec b43c5b2
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 19:39:49 2016 +0700
-
- Merge pull request #7801 from dachary/wip-14863-hammer
-
- hammer: unittest_crypto: benchmark 100,000 CryptoKey::encrypt() calls
-
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
-
-commit b43c5b205f26198c79e21af3a6935a76f560a7fc
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jan 26 15:57:33 2015 -0800
-
- unittest_crypto: benchmark 100,000 CryptoKey::encrypt() calls
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit fb4b6c52d8e31e8dedfa8aecc16c389f0e7d86cf)
-
- Conflicts:
- src/test/crypto.cc : complements the incorrect cherry-pick
- df3f971eafda9c54881c13dcf47f996f18e17028 see
- http://tracker.ceph.com/issues/14863 for more information
-
-commit ec33aec31fcac3b09bf06256b95c841a8c20d56f
-Merge: 4b46182 17d1b0d
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 11:09:54 2016 +0700
-
- Merge pull request #7185 from dachary/wip-14325-hammer
-
- hammer: rgw: radosgw-admin bucket check --fix not work
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 4b461829c24cd35656e86f507a78b0fff860c0b5
-Merge: 722ca62 5c92d1d
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 11:09:28 2016 +0700
-
- Merge pull request #7188 from dachary/wip-13799-hammer
-
- hammer: rgw: default quota params
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 722ca62e12ac977961d895dceaeb55f31d7b00ca
-Merge: 3c1e2d4 ad4df3b
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 25 11:04:02 2016 +0700
-
- Merge pull request #7414 from dachary/wip-14493-hammer
-
- hammer: make rgw_fronends more forgiving of whitespace
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 3c1e2d4216353c848f76b52d9c187e83574267a7
-Merge: b73a93d 3d84420
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 24 10:15:27 2016 -0800
-
- Merge pull request #7415 from dachary/wip-14554-hammer
-
- hammer: Unable to bring up OSD's after dealing with FULL cluster (OSD assert with /include/interval_set.h: 386: FAILED assert(_size >= 0))
-
-commit b73a93d8cd8bc8757a7a8960b2a9d448c7041515
-Merge: b3eac8e 5a450e6
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 24 10:15:03 2016 -0800
-
- Merge pull request #7576 from dachary/wip-14579-hammer
-
- hammer: mon sync does not copy config-key
-
-commit b3eac8e3dbb74ebcfdd22d10d6a6f2916d2bf127
-Merge: bf6dcc7 9e0a165
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 24 10:14:37 2016 -0800
-
- Merge pull request #7577 from dachary/wip-14689-hammer
-
- hammer: consume_maps clearing of waiting_for_pg needs to check the spg_t shard for acting set membership
-
-commit bf6dcc7c6da5d06b21e4a4fad3f7a65e8ca84f50
-Merge: 293e8c7 d5ba063
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 24 10:03:55 2016 -0800
-
- Merge pull request #7590 from SUSE/wip-14720-hammer
-
- hammer: OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from
-
-commit 293e8c7b038a22e2135e7bf288a8ff4b8ce32a14
-Merge: 5b724fc 10d29da
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 24 10:03:18 2016 -0800
-
- Merge pull request #7645 from dachary/wip-14760-hammer
-
- hammer: OSD coredumps with leveldb compact on mount = true
-
-commit 5b724fcce0e260a04bd6889c3d4c6d9bf44971cf
-Merge: bb84692 1c8c708
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:56:13 2016 +0700
-
- Merge pull request #7485 from dillaman/wip-14611-hammer
-
- librbd: flattening an rbd image with active IO can lead to hang
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit bb84692e96569823e23fdd02356446577959f438
-Merge: ee014d8 df3f971
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:55:18 2016 +0700
-
- Merge pull request #7488 from ceph/wip-auth-hammer
-
- hammer: auth: use libnss more safely
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ee014d8084c05ec3c876a9e46dcb6e558918a0e4
-Merge: 576225d 88ffcc2
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:48:05 2016 +0700
-
- Merge pull request #7475 from dachary/wip-14602-hammer
-
- hammer: ceph-disk: use blkid instead of sgdisk -i
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 576225d6d5a64f0f43971ccca4d74b5dc44c5c63
-Merge: a6f7a2f eb048a3
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:47:07 2016 +0700
-
- Merge pull request #7456 from dachary/wip-14587-hammer
-
- hammer: qa/workunits/post-file.sh: sudo
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a6f7a2f1347393c1cf7564a2ba8d1ba6aff2122c
-Merge: 74cfe5c f04e007
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:38:47 2016 +0700
-
- Merge pull request #6946 from dachary/wip-14087-shard-size
-
- osd: log inconsistent shard sizes
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 74cfe5c5f49cb566224a3ff0ef8ab515eadc78ac
-Merge: e832001 f209819
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 24 12:37:55 2016 +0700
-
- Merge pull request #7110 from david-z/wip-hammer-fix-logrotate-ceph-fuse
-
- [ceph-fuse] fix ceph-fuse writing to stale log file after log rotation
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit a1fc101084c5aefeb64da344158783a186a28a93
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Feb 8 07:47:23 2015 -0800
-
- crushtool: send --tree to stdout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit dca345280e4f6124a8b5aea73e6219488111c356)
-
- Conflicts:
- src/tools/crushtool.cc (trivial)
-
-commit 4fb688d15c40a9b9d5a54700b3c7695a97ffd03b
-Author: Xinze Chi <xmdxcxz@gmail.com>
-Date: Tue Mar 3 11:24:50 2015 +0000
-
- osd: write journal header by force when journal write close
-
- osd update the journal header when ceph call FileStore::sync_entry(
- ApplyManager::commit_finish -> FileJournal::committed_thru).
- But, it doesnot write the journal head until the next transaction
- (calling do_write or do_aio_write).
-
- So write jouranl header when journal write close, so that
- committed_up_to in journal header is new enough. ceph may
- not replay some transaction which has been writen to filestore.
-
- Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
- (cherry picked from commit 8f80ae3fbaba7b0e64b6e4df6c2dddd10ac50e5a)
-
-commit 31a2fc475a2de8a656048c85595049ec4548ec6a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Feb 11 10:33:40 2016 -0500
-
- common/bit_vector: use hard-coded value for block size
-
- The CEPH_PAGE_SIZE is not actually a constant. On aarch64 platforms
- the page size is 64K instead of the assumed 4K. The CRC block
- computations require a true constant.
-
- Fixes: #14747
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ba2e6ce46fb5f781ffaf6483db8ebd99238419c6)
-
-commit 3352b144e0b1500651d8a194c3ebe2aae2f078d0
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 20 18:10:39 2015 -0700
-
- ceph.in: Notify user that 'tell' can't be used in interactive mode
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a341d977d42a3010267b64e15cebae3085507297)
-
- Conflicts:
- src/ceph.in (trivial resolution)
-
-commit 14b5feab80f07b4ed2b8f6d77ea1fa920e98be05
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Jul 6 12:17:21 2015 +0800
-
- mon/LogMonitor: use the configured facility if log to syslog
-
- Fixes: #13748
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 4d2ca37d3b8f067d0cf0f7cfea24964ac181115d)
-
-commit 10d29dab3176ec945dc7272323df0028ef7f0274
-Author: Xiaoxi Chen <xiaoxi.chen@intel.com>
-Date: Thu Apr 16 13:42:42 2015 +0800
-
- os/LevelDBStore:fix bug when compact_on_mount
-
- Initialize the performance counter(l_rocksdb_compact)
- before use it in compact().
-
- Signed-off-by: Xiaoxi Chen <xiaoxi.chen@intel.com>
- (cherry picked from commit 932d59d084090297c89cfa3ff7df0a952f807bab)
-
-commit d5ba063cdf3a8b92862ef6657001725d6192fe86
-Author: Xinze Chi <xinze@xsky.com>
-Date: Sun Feb 7 18:50:29 2016 +0800
-
- OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from
-
- Base on current logic, OSDMonitor may call create_pending and
- encode_pending twice for the some epoch.
-
- In encode_pending:
-
- tmp.deepish_copy_from(osdmap);
- tmp.apply_incremental(pending_inc);
-
- This Op would change the tmp osd_primary_affinity, but the osd_primary_affinity
- is declared as ceph::shared_ptr, so this would change the osdmap too. When this
- round encode_pending is proposed fail. We may call encode_pending again, but the
- osdmap is changed last round, so the pending_inc would be wrong.
-
- Fixes: #14686
- Signed-off-by: Xinze Chi <xinze@xsky.com>
- (cherry picked from commit 990b437f4e616a87f4f7438e51945d531170ca83)
-
-commit 9e0a1656200c2f91386215924304b495dd705dae
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 7 08:09:46 2016 -0800
-
- OSD::consume_map: correctly remove pg shards which are no longer acting
-
- A particular shard may be non-active even if the osd is in the acting
- set.
-
- Fixes: 14278
- Backport: hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit bd2fdf8c56c1aeed6cea3eb59046dbb6af470111)
-
-commit 5a450e6734b4ff9e5e483c74b67df385b9a3d640
-Author: shawn <cxwshawn@gmail.com>
-Date: Tue Jan 26 05:56:12 2016 -0500
-
- mon: add mon_config_key prefix when sync full
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit b77cd31b161e78467bbb6476776c0f1d43e615cf)
-
-commit eb048a393e7b54dcf5f2245e34a1aa0de281424d
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Sep 5 09:28:17 2015 -0400
-
- qa/workunits/post-file.sh: sudo
-
- Only root can read the key in /usr/share/...
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 82b0243ec318457e376288a6b32487fbea059705)
-
-commit e9039f4fd3dfe9a3083fcfe64d8012568e8db96f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Apr 28 17:40:20 2015 -0700
-
- qa/workunits/post-file: pick a dir that's readable by world
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 04b00029e16971abf1937facbbff8da00d6a3452)
-
-commit 902abe7373c150000d3fc4d66d9c989ed208d0bf
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 9 09:58:39 2015 -0700
-
- qa/workunits/post-file.sh: use /etc/default
-
- base-files doesn't existing on rhel. /etc/default is everywhere and it's
- small.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 52235e32561ef3e91f07c59c8fd89c4df244f461)
-
-commit 1c8c708e43e4c97af17932027ae6b5d26c124c43
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 23 12:06:50 2015 -0500
-
- librbd: ensure librados callbacks are flushed prior to destroying image
-
- Fixes: #14092
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 98157ab3274bd960e4487e34f5a83e9c921a6ac8)
-
-commit f892566fc9b78ab38702b75422321a6d0a5bbb7b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 30 22:31:55 2015 -0400
-
- librbd: simplify IO flush handling
-
- Add a new convenience method to ImageCtx for handling flush
- requests and cleanup flush handling with dealing with the cache.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e8d8096babaf15fe8af717297d512f580aff6c18)
-
-commit e5dfd3dd7a53bf79f1bfc17b8a4a720aba08d7c3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 14 13:28:13 2015 -0400
-
- WorkQueue: PointerWQ drain no longer waits for other queues
-
- If another (independent) queue was processing, drain could
- block waiting. Instead, allow drain to exit quickly if
- no items are being processed and the queue is empty for
- the current WQ.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b118d7df1e34387b6e5649a5b205cf061598d0d4)
-
-commit edf60b452de3c6eb22c75be2547f51812e6eaf1e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Feb 2 10:54:53 2016 -0500
-
- test: new librbd flatten test case
-
- AIO operations after a flatten operation were previously
- hanging during the close of the parent image.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b59158d9f0c3dbe4b47be1dfd27aaa5ad92e6063)
-
-commit 88ffcc2cbd73602819ad653695de7e8718f6707d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Dec 18 17:03:21 2015 +0100
-
- ceph-disk: use blkid instead of sgdisk -i
-
- sgdisk -i 1 /dev/vdb opens /dev/vdb in write mode which indirectly
- triggers a BLKRRPART ioctl from udev (starting version 214 and up) when
- the device is closed (see below for the udev release note). The
- implementation of this ioctl by the kernel (even old kernels) removes
- all partitions and adds them again (similar to what partprobe does
- explicitly).
-
- The side effects of partitions disappearing while ceph-disk is running
- are devastating.
-
- sgdisk is replaced by blkid which only opens the device in read mode and
- will not trigger this unexpected behavior.
-
- The problem does not show on Ubuntu 14.04 because it is running udev <
- 214 but shows on CentOS 7 which is running udev > 214.
-
- git clone git://anonscm.debian.org/pkg-systemd/systemd.git
- systemd/NEWS:
- CHANGES WITH 214:
-
- * As an experimental feature, udev now tries to lock the
- disk device node (flock(LOCK_SH|LOCK_NB)) while it
- executes events for the disk or any of its partitions.
- Applications like partitioning programs can lock the
- disk device node (flock(LOCK_EX)) and claim temporary
- device ownership that way; udev will entirely skip all event
- handling for this disk and its partitions. If the disk
- was opened for writing, the close will trigger a partition
- table rescan in udev's "watch" facility, and if needed
- synthesize "change" events for the disk and all its partitions.
- This is now unconditionally enabled, and if it turns out to
- cause major problems, we might turn it on only for specific
- devices, or might need to disable it entirely. Device Mapper
- devices are excluded from this logic.
-
- http://tracker.ceph.com/issues/14094 Fixes: #14094
-
- Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 9dce05a8cdfc564c5162885bbb67a04ad7b95c5a)
-
- Conflicts:
- src/ceph-disk: keep get_partition_type as it is because
- some hammer users may rely on the fact that it is able
- to fallback to sgdisk if blkid is old. Chances are an
- old blkid also means an old udev that does not have the
- problem this fix is adressing. The get_partition_uuid
- is modified to try blkid first, with the same rationale.
-
-commit f209819fb676eadf099cc764e3ed3b20fd17b688
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Mon Feb 1 11:03:30 2016 +0800
-
- [ceph-fuse] fix ceph-fuse writing to stale log file after log rotation
-
- This fix should be applied to hammer branch. It can't be directly applied to master branch, because logrotate.conf is changed on matser since ceph-osd, ceph-mon, etc, is controlled by systemd with user/group as 'ceph' by default, while ceph-fuse might be started as root privilege by external users.
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
-
-commit 3d84420847642e1cb4212f943ecf3ed479112d96
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Thu Jan 21 09:42:09 2016 +0300
-
- PG::activate(): handle unexpected cached_removed_snaps more gracefully
-
- PGPool::update(): ditto
-
- Fixes: #14428
- Backport: infernalis, hammer, firefly
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
- (cherry picked from commit aba6746b850e9397ff25570f08d0af8847a7162c)
-
-commit ad4df3be0f4adba5e8e14829be724fa3a92263c8
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Dec 15 11:28:44 2015 -0500
-
- rgw: warn on suspicious civetweb frontend parameters
-
- Warns about incorrect spacing near 'port' (e.g., 'port = 80').
-
- Fixes issue #12038.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 93497e576a946ed7e59f4a4299e447b65aa1774b)
-
-commit 5c92d1d2f11d59651eaa9c4ba6476b9f71990f1c
-Author: Daniel Gryniewicz <dang@redhat.com>
-Date: Fri Sep 25 11:02:20 2015 -0400
-
- rgw: Add default quota config
-
- Add a default quota config that is applied when no specific quota is
- enabled. There are both per-bucket and per-user defaults. Defaults are
- enabled if either max count or max size is enabled.
-
- This fixes issues 12912 and 12997.
-
- Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- (cherry picked from commit 3047b5690eebb7fcd2d7a26acd20105e016a44c4)
-
-commit 17d1b0d859112dc9fb5b7a6e2140124790c5f260
-Author: Weijun Duan <duanweijun@h3c.com>
-Date: Sun Jan 3 20:12:04 2016 -0500
-
- rgw: radosgw-admin bucket check --fix not work
-
- Fixed:#14215
-
- Signed-off-by: Weijun Duan <duanweijun@h3c.com>
- (cherry picked from commit a17f4e27d608ef29cf499fe76246929ec7962783)
-
-commit df3f971eafda9c54881c13dcf47f996f18e17028 (refs/remotes/markhpc/wip-auth-hammer, refs/remotes/gh/wip-auth-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 23 14:58:19 2015 -0800
-
- auth: return error code from encrypt/decrypt; make error string optional
-
- This is simpler for a lot of callers.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 40203f711dd59c7f61f5f8eb56a97842c3206494)
-
- Conflicts:
- src/test/crypto.cc (trivial)
-
-commit 224bb3928de048b13a96ee0377b6d279ce84ac0a
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Jan 27 09:17:28 2015 -0800
-
- auth: optimize crypto++ key context
-
- The cbc appears to be stateful, but the key is not.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 7762f1886cab7f7b941851b0be4ec904723cb0e3)
-
-commit f11718de7873fe1fad1649358f208a4910837a7e
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Feb 1 15:07:35 2015 -0800
-
- auth/Crypto: optimize libnss key
-
- Allocate the key and slot once per key instead of once per encrypt/
- decrypt operation. This improves things by a factor of almost 4x
- for my microbenchmark.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 973cd1c00a7811e95ff0406a90386f6ead5491c4)
-
-commit d1b6096c79164f8a5830dee6b5f186c405cf73ab
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Feb 1 15:05:54 2015 -0800
-
- auth: refactor crypto key context
-
- Cache all of the crypto key context in a new CryptoKeyHandler struct that
- is attached to CryptoKey.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 16b3515af3df439fba7d545587285b50e9814165)
-
-commit 3249f48a07391c98634aebd87f18fc2edbe95ca2
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 22 15:49:25 2015 -0800
-
- auth/cephx: optimize signature check
-
- The encode_encrypt() helper will generate a bufferlist with a simple
- structure. Profiles seem to indicate this is taking a large amount of time
- in the message receive path.
-
- Avoid the encode overhead since we have a tiny buffer with a fixed and
- known structure.
-
- Reported-by: Andreas Bluemle <andreas.bluemle@itxperts.de>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8d16d4ce14a82356007c14fb7535170933eb7812)
-
-commit 51eaf98e25287705c9c25d2d3a5df248ba066f2d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jan 22 15:40:23 2015 -0800
-
- auth/cephx: move signature calc into helper
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4e14a5fedbfacd164639f6a59a4d152404f3f9d1)
-
- Conflicts:
- src/auth/cephx/CephxSessionHandler.cc (trivial, const changes)
-
-commit c240da9e0693dc627162a0c70569dda519ec25e8
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jan 26 15:56:39 2015 -0800
-
- auth/Crypto: avoid memcpy on libnss crypto operation
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e972a6951142cbea3fe7c2e08933c808693d60c4)
-
-commit 86cc0f0c5e10262bb494ecee415789fd6815b1ff
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jan 26 15:49:10 2015 -0800
-
- auth: make CryptoHandler implementations totally private
-
- There is no need to expose these implementations outside Crypto.cc.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit ad5a1549f401af3eae38f5c4de24e7b952e40f7f)
-
-commit f04e0075eabfb1b9d19c75761c321098546c4044
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 15 18:28:29 2015 +0100
-
- osd: log inconsistent shard sizes
-
- When an OSD asserts because it cannot recover from an unexpected erasure
- coded shard size, the object needs to be manually fixed (i.e. the shard
- must be removed so it can be reconstructed). Unfortunately the assert
- does not display the name of the object and it is not displayed unless
- the OSD logs are >= 10, which is uncommon on an actual cluster because
- it creates log files that are too big.
-
- The problem has been fixed in infernalis as part of
- https://github.com/ceph/ceph/pull/5173 and backporting it is non
- trivial.
-
- The error condition is modified to make it easy for the system
- administrator to identify which object is causing the crash and what
- steps must be taken to fix the issue.
-
- http://tracker.ceph.com/issues/14009 Refs: #14009
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit b2393dcea4ca02fe093481d6a2815b0c857fddc9 (refs/remotes/markhpc/hammer-client-inoderef)
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Nov 20 15:42:05 2015 +0800
-
- client: add InodeRef.h to make dist
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit fa79bd978f646001365b14009efe9fa5c562f681
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:54:31 2015 +0800
-
- client: use smart pointer to track 'cwd' and 'root_parents'
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 8c45ae1239c934b6727071398a1cfccb6277069e)
-
-commit fcafc65e042c0ed913b5b564812180cd29eefb43
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:52:10 2015 +0800
-
- client: convert Inode::snapdir_parent to smart pointer
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 89648e7ed56a1299a096b16080e4a52724893bdd)
-
-commit 78cca4e3b21308cc0a3f4838828a465482f619c7
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:39:31 2015 +0800
-
- client: use smart pointer to track temporary inode reference
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 217837b89f6adabcf686377a9b3d33d5008b1097)
-
-commit bad6f335ccd8d277f31a27f04d10683c73d0037a
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:24:41 2015 +0800
-
- client: convert CapSnap::in to smart pointer
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
-
-commit 4bb48ee4ae49355e3a4bcd7424545c04ce284f89
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:50:10 2015 +0800
-
- client: convert Fh::inode to smart pointer
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit dac11e6b4b1e8766ee5165366cf021d9ee91d3ae)
-
-commit 5bebb3acf1fa85ab301aa8ca4e99542c9d34d173
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 15:00:50 2015 +0800
-
- client: use smart pointers in MetaRequest
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit fd02f0f245ccdc1d33c6d24f57267c8fb102618b)
-
-commit e18f1aec94ec021a687317bab00c59d3d223c2bc
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 24 11:21:23 2015 +0800
-
- client: convert Dentry::inode to smart pointer
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 07f580977319110cbdd60c78fff892c85711ef3e)
-
-commit a7f6d2ffb84dee5bec4e373c1db723805e39a1bb
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat May 23 20:01:46 2015 +0800
-
- client: hold reference for returned inode
-
- CLient::make_request() returns pointer of target inode, but it does not
- increase reference count of the returned inode. The inode may get freed
- when CLient::make_request() releases MetaRequest.
-
- he fix is hold a reference for the returned inode. Since there are many
- of places use CLient::make_request() directly or indirectly, it's easy
- to leak reference. This patch uses intrusive_ptr to track the reference.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ad9c22a4ca56d7ad3c1666795bd8c9785eaccf70)
diff --git a/src/ceph/doc/changelog/v0.94.8.txt b/src/ceph/doc/changelog/v0.94.8.txt
deleted file mode 100644
index 6191ef9..0000000
--- a/src/ceph/doc/changelog/v0.94.8.txt
+++ /dev/null
@@ -1,2059 +0,0 @@
-commit 838cd35201e4fe1339e16d987cc33e873524af90 (tag: refs/tags/v0.94.8, refs/remotes/gh/hammer)
-Author: Jenkins Build Slave User <jenkins-build@trusty-huge--349f4788-0128-42d9-aca5-78c0aad008e6.localdomain>
-Date: Fri Aug 26 00:02:49 2016 +0000
-
- 0.94.8
-
-commit eb27865f268eaa4abc4e4b46354f1ea1556d1a5c
-Merge: 08277b7 5248929
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 15:26:49 2016 +0200
-
- Merge pull request #10750 from ceph/wip-14799-hammer
-
- hammer: rocksdb do not link against tcmalloc if it's disabled
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5248929c296d6130ee99fe94fbe69151d241efb8
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Aug 16 23:45:18 2016 -0700
-
- rocksdb: disable tcmalloc if disabled
-
- the rocksdb/configure.ac does not support --with-tcmalloc before,
- and the updated rocksdb commit has the change for '--with-tcmalloc'
- option, so let's pick it up.
-
- Fixes: http://tracker.ceph.com/issues/14799
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit fdfcd9b66cda1c637fbaad1c15d2ea04e426210d
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Sep 12 14:12:20 2015 -0400
-
- ceph.spec: respect CEPH_EXTRA_CONFIGURE_ARGS
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 51abff11688f0201b8f4076ac515e4515929d4cb)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit 08277b7bc7c0e533c3fd56a0040dc0ddc74637d6
-Merge: bcab369 d5274a3
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sat Aug 13 19:19:37 2016 +0200
-
- Merge pull request #10718 from oritwas/wip-14328-hammer
-
- hammer: rgw: the swift key remains after removing a subuser
-
-commit bcab36992580e5666afbf8e7bada4e850dfc84c6
-Merge: da2960f 699b7c8
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sat Aug 13 18:22:19 2016 +0200
-
- Merge pull request #10509 from yehudasa/wip-15557-hammer
-
- rgw: Have a flavor of bucket deletion to bypass GC and to trigger
-
-commit d5274a3aeb7cc40f5ac04ac1ffcd6e3fc3019be3
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Jan 20 17:24:38 2016 +0100
-
- rgw: fix subuser rm command failure
-
- Fixes: 14375
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit bbc06e70b49b2917ee63985727cb92724fb99209)
-
-commit f9637743efc7ba3164e3bb9ee7a768801e1599da
-Author: Sangdi Xu <xu.sangdi@h3c.com>
-Date: Wed Dec 16 09:09:16 2015 +0800
-
- rgw: add a method to purge all associate keys when removing a subuser
-
- Fixes: #12890
-
- When removing a subuser, make sure all of its keys, including the swift key and possible s3 keys, are also deleted.
-
- Signed-off-by: Sangdi Xu <xu.sangdi@h3c.com>
- (cherry picked from commit e7b7e1afc7a81c3f97976f7442fbdc5118b532b5)
-
-commit da2960f974b9a64a683ac8b77faf08fda3a5d0ba
-Merge: 0f67539 3a30ffc
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Aug 12 12:23:41 2016 +0200
-
- Merge pull request #10291 from badone/wip-13829-hammer
-
- hammer: config set with negative value results in "error setting 'filestore_merge_threshold' to '-40': (22) Invalid argument"
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 0f67539cf5efc46a92d7ea3ac031e0ce1c573a7a
-Merge: 1e01986 0d4b601
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 12 09:46:30 2016 +0200
-
- Merge pull request #10699 from ktdreyer/wip-15867-nroff
-
- jewel: doc: fix by-parttypeuuid in ceph-disk(8) nroff
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0d4b6013f0f130c93e2e488d1cd83527ad91274f
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Aug 11 17:11:41 2016 -0600
-
- doc: fix by-parttypeuuid in ceph-disk(8) nroff
-
- Commit 221efb0b893adbfd7a19df171cf967fee87afcc7 altered the rST source
- for the ceph-disk man page. In Hammer, we also have to modify the nroff
- sources, because static copies of the generated man pages are stored in
- Git.
-
- Fixes: http://tracker.ceph.com/issues/15867
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 1e01986e9550700a11adfc1b175eca042c9cb188
-Merge: de28029 187d308
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Aug 11 22:58:33 2016 +0200
-
- Merge pull request #9741 from SUSE/wip-16343-hammer
-
- hammer: boost uuid makes valgrind complain
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit de28029c25e4ff527c6021488381022538331473
-Merge: cb0488c 64211fa
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 11 15:58:51 2016 +0200
-
- Merge pull request #10554 from Vicente-Cheng/wip-16815-hammer
-
- hammer: radosgw-admin region-map set is not reporting the bucket quota correctly
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit cb0488c181a122de13d63686b2a64e1aa00791ca
-Merge: 0bc2d66 a3003f6
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 11 15:56:39 2016 +0200
-
- Merge pull request #10555 from Vicente-Cheng/wip-16317-hammer
-
- hammer: rgw: bucket listing following object delete is partial
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 0bc2d66db5feba6cd887d7c297839b231012b880
-Merge: 5866fef 81aef60
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 11 15:55:01 2016 +0200
-
- Merge pull request #10530 from yehudasa/wip-16412-hammer
-
- rgw: remove bucket index objects when deleting the bucket
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 5866fefb32cc443549891754a97eb8a6b8dd2af0
-Merge: da4f735 300c111
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 11 11:14:53 2016 +0200
-
- Merge pull request #8755 from kmroz/wip-hammer-convert-plain-object-to-versioned
-
- hammer: rgw: convert plain object to versioned (with null version) when removing
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit da4f735d7937aa623dfef41f921ad9381b1a07d7
-Merge: 4a12a88 d3eae0a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Aug 4 21:41:15 2016 +0200
-
- Merge pull request #9271 from XinzeChi/wip-fix-digest-hammer
-
- osd: fix omap digest compare when scrub
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: David Zafman <dzafman@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4a12a88d7098c1f67365a82f3cf9a174dd5ada32
-Merge: 6f107f1 ec02d8b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Aug 4 21:38:57 2016 +0200
-
- Merge pull request #8805 from SUSE/wip-15482-hammer
-
- hammer: is_split crash in handle_pg_create
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 6f107f1a7a42c070ef2da7f2b0b07d8bd2826429
-Merge: 3b9e73f 3cb72dd
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Aug 4 21:37:24 2016 +0200
-
- Merge pull request #8593 from renhwsky/wip-15478-hammer
-
- hammer: Pool quota alarm is not in effect
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 3b9e73f319b28c0403871c7d842304aca74f4c6a
-Merge: d34ac2a b9a4ad9
-Author: John Spray <jspray@redhat.com>
-Date: Wed Aug 3 13:31:41 2016 +0100
-
- Merge pull request #7542 from SUSE/wip-14668-hammer
-
- hammer: Wrong ceph get mdsmap assertion
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit d34ac2a4d76eda4a371cc16dbc6bfdc0223c81d8
-Merge: 8f51f14 3ecdedd
-Author: John Spray <jspray@redhat.com>
-Date: Wed Aug 3 13:31:30 2016 +0100
-
- Merge pull request #8042 from ukernel/hammer-15050
-
- hammer: mds: fix stray purging in 'stripe_count > 1' case
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 8f51f146c98e281f065debdfdc4399624e0cce97
-Merge: 4773e9c 049bc8a
-Author: John Spray <jspray@redhat.com>
-Date: Wed Aug 3 13:31:22 2016 +0100
-
- Merge pull request #8804 from SUSE/wip-15512-hammer
-
- hammer: Double decreased the count to trim caps which will cause failing to respond to cache pressure
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 4773e9c40849c2796aa16b7cacddbfe99536919c
-Merge: 85a25e4 f6076dd
-Author: John Spray <jspray@redhat.com>
-Date: Wed Aug 3 13:31:09 2016 +0100
-
- Merge pull request #9404 from SUSE/wip-16082-hammer
-
- hammer: mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 85a25e43d4451b999ad517f089593d45895a7c59
-Merge: 3c4d14f 2633ec3
-Author: John Spray <jspray@redhat.com>
-Date: Wed Aug 3 13:30:58 2016 +0100
-
- Merge pull request #10198 from SUSE/wip-16626-hammer
-
- hammer: Failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit a3003f6f4f02e37cf96b6e243203d86ad2e39549
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Feb 25 16:02:15 2016 +0100
-
- rgw: reset return code in when iterating over the bucket the objects
-
- Fixes: #14826
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit e23fdcbbce47aaf041b9f8a0812c8a729aa5014b)
-
-commit 64211fa78f872648aad2b2cec2b4b3cb8f2b9953
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Oct 13 17:04:57 2015 -0700
-
- rgw: fix compilation
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9dfbae6d65bf6f8ab7cdf8597d556505b81cedd9)
-
-commit 3e45c6bb431f7763a12a48daac30fbe7aa3047cd
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Oct 12 11:14:19 2015 +0200
-
- rgw: add bucket_quota to RGWRegionMap::encode_json
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit e18b72f7e97a65af681e368d3706a465603df89d)
-
-commit 699b7c8d5f51d895f5ff0578de5bf610436ee33b
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Wed Apr 20 14:15:55 2016 +0530
-
- rgw: Have a flavor of bucket deletion to bypass GC and to trigger
- object deletions async.
-
- Fixes: http://tracker.ceph.com/issues/15557
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- (cherry picked from commit b7a69fca248afeef1de1278890076693b16cf6d3)
-
- Conflicts:
- src/rgw/rgw_admin.cc
- src/rgw/rgw_bucket.cc
- src/rgw/rgw_bucket.h
- src/test/cli/radosgw-admin/help.t
-
-commit 81aef600671f0fe523206cea16000e79bc6bb75c
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jul 4 15:01:51 2016 +0200
-
- rgw: remove bucket index objects when deleting the bucket
-
- Fixes: http://tracker.ceph.com/issues/16412
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 3ae276390641ad5fc4fef0c03971db95948880b4)
-
-commit 3c4d14fe73a97c52345369e732e445c78fb656c8
-Merge: 79753ed 8a39e5e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 23:51:47 2016 +0200
-
- Merge pull request #10182 from gaurav36/wip-configure-xfs-issue-hammer
-
- hammer: configure: Add -D_LARGEFILE64_SOURCE to Linux build.
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 79753edf9c4763ae15d82502b53c6f3c9cd24349
-Merge: 75271a2 7dbace5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:40:46 2016 +0200
-
- Merge pull request #7961 from dzafman/wip-15002
-
- hammer: objects unfound after repair (fixed by repeering the pg)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 75271a2529b1504d249b528fe3fafd4c5e90a9bc
-Merge: 76fa3b1 43d1b92
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:38:15 2016 +0200
-
- Merge pull request #9125 from dzafman/wip-15635
-
- hammer: [MON] Fixed calculation of %USED
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 76fa3b1097b3711ef75bd36aa2a4074e7a8fa9e6
-Merge: cf5f111 ca0beef
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:36:05 2016 +0200
-
- Merge pull request #8464 from dzafman/wip-13039-15315
-
- hammer: "FAILED assert(pg->info.history.same_interval_since == p.same_interval_since)" in upgrade:hammer-x-jewel-distro-basic-openstack
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit cf5f1117afe9e03c683fd40e5af964eaf5975e2b
-Merge: 76ce775 488a787
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:32:47 2016 +0200
-
- Merge pull request #8573 from Vicente-Cheng/wip-15293-hammer
-
- hammer: ECBackend: send write and read sub ops on behalf of client ops at normal priority
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 76ce775761f755bd3085ba22cf088c3a46b78d3a
-Merge: 8629d37 e20df80
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:31:16 2016 +0200
-
- Merge pull request #8665 from Vicente-Cheng/wip-15525-hammer
-
- hammer: ReplicatedPG.cc: 430: FAILED assert(!actingbackfill.empty()): old watch timeout tries to queue repop on replica
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 8629d378b05d4f0374436373a0c972360bae7273
-Merge: 79fc401 7b3f1da
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:29:58 2016 +0200
-
- Merge pull request #8806 from SUSE/wip-15320-hammer
-
- hammer: LibRadosMiscConnectFailure.ConnectFailure (not so intermittent) failure in upgrade/hammer-x
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 79fc401844c935283f43fbea83e113e298a830ba
-Merge: f4d56b0 cbd5aaf
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:28:32 2016 +0200
-
- Merge pull request #9001 from Vicente-Cheng/wip-15730-hammer
-
- hammer: osd: acting_primary not updated on split
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit f4d56b03b1decf83bebbf6996909ee89783068f0
-Merge: f71c9e6 410ff15
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:26:55 2016 +0200
-
- Merge pull request #9400 from Vicente-Cheng/wip-15796-hammer
-
- hammer: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit f71c9e658d6f5af3cfa48a0dfb9a063f4965e7ce
-Merge: fdb730e 23498a9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:24:42 2016 +0200
-
- Merge pull request #9416 from chardan/wip-15770-hammer
-
- hammer: mon/OSDMonistor: improve reweight_by_utilization() logic
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit fdb730e169d8885ccd72e140c31797179c0a2c75
-Merge: f9e8dc8 2c18015
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:21:25 2016 +0200
-
- Merge pull request #10189 from dreamhost/wip-16618-hammer
-
- rgw: fix multi-delete query param parsing.
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit f9e8dc824a5aa89e24ef12fc8fcfdbdd4f926aef
-Merge: f3cbf5f 24cc4f9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:17:57 2016 +0200
-
- Merge pull request #8379 from Vicente-Cheng/wip-15283-hammer
-
- hammer: RGW shouldn't send Content-Type nor Content-Length for 304 responses
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit f3cbf5f891029975f4f5a915366fce28fcabd196
-Merge: ba8de3a f28477c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:14:39 2016 +0200
-
- Merge pull request #8313 from SUSE/wip-15257-hammer
-
- hammer: rgw: radosgw server abort when user passed bad parameters to set quota
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit ba8de3ab31567c8179b72fb1dc8dbf7ccd1f5f38
-Merge: 9562198 ed4ca7c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:13:09 2016 +0200
-
- Merge pull request #8528 from wido/hammer-issue-15348
-
- rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 95621986d893029bc0a4a686c7da5cd6e0fa6f2b
-Merge: 28107d3 1ac920b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:10:57 2016 +0200
-
- Merge pull request #9671 from ceph/hammer-rgw-copy-if-newer
-
- hammer: rgw: backport rgwx-copy-if-newer for radosgw-agent
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 28107d3ebfded3cd9046e5a23ab83d4e0252cce2
-Merge: 5e1a57a 850881c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:09:14 2016 +0200
-
- Merge pull request #9961 from SUSE/wip-16190-hammer
-
- hammer: subuser rm fails with status 125
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 5e1a57a6f9c2afbdfc6d3e73d438551202c68229
-Merge: 91889db ce313cd
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jul 29 09:07:10 2016 +0200
-
- Merge pull request #9402 from SUSE/wip-15966-hammer
-
- hammer: No Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 23498a9620f792cd099dba028c5bdf96b1a625be
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Tue May 31 15:40:05 2016 -0700
-
- mon/OSDMonitor: avoid potential expensive grace calculation
-
- The grace calculation during check_failure() is now very complicated
- and time-consuming. Therefore we shall skip this when it is possible.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 3557903d5d57642179b2ae137bedc389974b1956)
-
- Conflicts:
- src/mon/OSDMonitor.cc
-
- Resolved by choosing the move-to-top implementation. Removed unused vars.
-
-commit 1b6f6f27b77803727a523b4337cbad411e8321ed
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Tue Apr 26 11:13:32 2016 +0800
-
- mon/OSDMonitor: improve reweight_by_utilization() logic
-
- By calling reweight_by_utilization() method, we are aiming at an evener result
- of utilization among all osds. To achieve this, we shall decrease weights of
- osds which are currently overloaded, and try to increase weights of osds which
- are currently underloaded when it is possible.
- However, we can't do this all at a time in order to avoid a massive pg migrations
- between osds. Thus we introduce a max_osds limit to smooth the progress.
-
- The problem here is that we have sorted the utilization of all osds in a descending
- manner and we always try to decrease the weights of the most overloaded osds
- since they are most likely to encounter a nearfull/full transition soon, but
- we won't increase the weights from the most underloaded(least utilized by contrast)
- at the same time, which I think is not quite reasonable.
-
- Actually, the best thing would probably be to iterate over teh low and high osds
- in parallel, and do the ones that are furthest from the average first.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit e7a32534ebc9e27f955ff2d7a8d1db511383301e)
-
- Conflicts:
- src/mon/OSDMonitor.cc
-
- Resolved by picking the lambda implemenation.
- NOTE: Because hammer does not support C++11, the lambda functionality from the
- current master has been moved into the "Sorter" function object.
-
-commit 91889db73ab097502615b208c6e9f3b40411e682
-Merge: f3c4f7b b78a1be
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jul 27 08:28:38 2016 +0200
-
- Merge pull request #10038 from tchaikov/wip-16297-hammer
-
- mon: Monitor: validate prefix on handle_command()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit f3c4f7b61ab519c532a2218a11c5472daaaf5fa9
-Merge: 2fe8edb b31ac2d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jul 26 19:08:23 2016 +0200
-
- Merge pull request #9090 from tchaikov/wip-13990-hammer
-
- hammer: osd: remove all stale osdmaps in handle_osd_map()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 2fe8edb87e7384f206414db8a49e909e51f48de3
-Merge: 67b7f11 0498969
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 21:44:14 2016 +0200
-
- Merge pull request #10227 from SUSE/wip-15081-hammer
-
- hammer: When logging to a file fails, ceph logs excessively to stderr
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 67b7f11c63313a5dcdf34b904137ef7a4673f4ec
-Merge: bd59c96 474abb8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 21:43:49 2016 +0200
-
- Merge pull request #9893 from Vicente-Cheng/wip-16430-hammer
-
- hammer: OSDMonitor: drop pg temps from not the current primary
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit bd59c9695fadedef89b77166f60f5a8cf85825ff
-Merge: 3794e3a 055427c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 21:42:54 2016 +0200
-
- Merge pull request #9238 from SUSE/wip-15962-hammer
-
- hammer: ceph-osd valgrind invalid reads/writes
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3794e3ad44d1e429f110abe71fb2d2319567bcd1
-Merge: 89233e3 d96086a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 21:42:06 2016 +0200
-
- Merge pull request #8849 from SUSE/wip-14326-hammer
-
- hammer: osd/PGLog.h: 88: FAILED assert(rollback_info_trimmed_to == head)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 89233e32ffcdd7f795873771859caba1ce3ad23f
-Merge: 253143b fb1b40f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 21:40:57 2016 +0200
-
- Merge pull request #8845 from SUSE/wip-15647-hammer
-
- hammer: osd: rados cppool omap to ec pool crashes osd
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 253143b559001eadb73ed9945abe2d0b8d946b65
-Merge: 81133dd 365f21b
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jul 25 15:05:54 2016 +0200
-
- Merge pull request #8470 from dachary/wip-15403-api-test-timeout-hammer
-
- hammer: tests: be more generous with test timeout
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 81133dd6e2724ee78cc69bda8e89ca35b20b6b23
-Merge: d71845c 3bb248b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 15:05:31 2016 +0200
-
- Merge pull request #9977 from shun-s/hammer
-
- replcatedBackend: delete one of the repeated op->mark_started in ReplicatedBackend::sub_op_modify_impl
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit d71845cec169c660c180a4c0313e0cdbc25329dc
-Merge: 387d5c1 5057c34
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jul 25 12:51:45 2016 +0200
-
- Merge pull request #8960 from badone/wip-hammer-rados-bench-units
-
- hammer: Add units to rados bench output and clean up formatting
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 474abb8275cd7507d7c7eae0d0e5647612fc177e
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 2 10:43:17 2016 -0700
-
- OSDMonitor: drop pg temp from sources other than the current primary
-
- Fixes: http://tracker.ceph.com/issues/16127
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1a07123c38e3fecb3fb2e43bbbae962d8411d287)
-
- change:
- use NULL to replace the nullptr because we don't have C++11
-
-commit b31ac2d37ecb68ed9661923fbaeaedeac241ba4a
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu May 12 20:28:11 2016 +0800
-
- osd: reset session->osdmap if session is not waiting for a map anymore
-
- we should release the osdmap reference once we are done with it,
- otherwise we might need to wait very long to update that reference with
- a newer osdmap ref. this appears to be an OSDMap leak: it is held by an
- quiet OSD::Session forever.
-
- the osdmap is not reset in OSD::session_notify_pg_create(), because its
- only caller is wake_pg_waiters(), which will call
- dispatch_session_waiting() later. and dispatch_session_waiting() will
- check the session->osdmap, and will also reset the osdmap if
- session->waiting_for_pg.empty().
-
- Fixes: http://tracker.ceph.com/issues/13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 82b0af7cedc3071cd83ee53479f834c23c62b7d0)
-
-commit 3a30ffc21a5edd52726867302da6b358f93aa8dc
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Wed Jan 27 11:34:47 2016 +1000
-
- qa: Add test for #13829
-
- qa/workunits/cephtool/test.sh: add test for setting negative int options
- src/test/daemon_config.cc: remove tests for failed negative values
-
- Fixes: #13829
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 994ac2942d04584d1617e6d4bbd5b880b1ea0448)
-
-commit f70e4adf8682ed82b267e21e5e63039048893243
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Wed Jan 27 11:18:16 2016 +1000
-
- common: Allow config set with negative value
-
- A recent commit disabled negative values but they are required for variables
- such as filestore_merge_threshold.
-
- Modified patch to remove C++11 specific elements so it will build for hammer
-
- Fixes: #13829
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 8b777a0c346bc70fd10d07e89368b3785b58f10e)
-
-commit 04989695915fd7ee5ef85ae34ede1fd680514f9d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 10 09:50:07 2016 -0500
-
- log: do not repeat errors to stderr
-
- If we get an error writing to the log, log it only once to stderr.
- This avoids generating, say, 72 GB of ENOSPC errors in
- teuthology.log when /var/log fills up.
-
- Fixes: #14616
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d9ac0474b864afda58a44b9012cca4bbc6aaf509)
-
- Conflicts:
- src/log/Log.cc (drop m_uid and m_gid which are not used in hammer;
- order of do_stderr, do_syslog, do_fd conditional blocks is reversed in
- hammer; drop irrelevant speed optimization code from
- 5bfe05aebfefdff9022f0eb990805758e0edb1dc)
-
-commit 2633ec3934ad8f7629c55b4345f426cacfb7b140
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 15 20:15:14 2016 +0800
-
- mds: disallow 'open truncate' non-regular inode
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0e4b6f2332bb4822cf324587a94144f1c98e4b97)
-
- Conflicts:
- src/mds/Server.cc (hammer has cur->inode.inline_version - in master
- this has been changed to cur->inode.inline_data.version)
-
-commit 3f0fb20ed08dfde614cff6c056d41b59af200c2c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 15 19:45:23 2016 +0800
-
- mds: only open non-regular inode with mode FILE_MODE_PIN
-
- ceph_atomic_open() in kernel client does lookup and open at the same
- time. So it can open a symlink inode with mode CEPH_FILE_MODE_WR.
- Open a symlink inode with mode CEPH_FILE_MODE_WR triggers assertion
- in Locker::check_inode_max_size();
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4d15eb12298e007744486e28924a6f0ae071bd06)
-
-commit 2c180159c00aa184e1fe8b051b1aa1e9f0f332fc
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu Jul 7 14:14:36 2016 -0700
-
- rgw: fix multi-delete query param parsing.
-
- Multi-delete is triggered by a query parameter on POST, but there are
- multiple valid ways of representing it, and Ceph should accept ANY way
- that has the query parameter set, regardless of what value or absence of
- value.
-
- This caused the RubyGem aws-sdk-v1 to break, and has been present since
- multi-delete was first added in commit 0a1f4a97da, for the bobtail
- release.
-
- Fixes: http://tracker.ceph.com/issues/16618
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit a7016e1b67e82641f0702fda4eae799e953063e6)
-
-commit 387d5c1ba836833a0cf11ddf9a4fb8690a532878
-Merge: 2fd75cc 4eea92b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 10:16:31 2016 -0700
-
- Merge pull request #9407 from SUSE/wip-15833-hammer
-
- hammer: RGW :: Subset of uploaded objects via radosgw are unretrievable when using erasure coded pool
-
-commit 8a39e5e67bc9a93cadb6c13f25c7ccd57421af6b
-Author: Ira Cooper <ira@redhat.com>
-Date: Thu Mar 31 12:30:45 2016 -0400
-
- configure: Add -D_LARGEFILE64_SOURCE to Linux build.
-
- Fixes: http://tracker.ceph.com/issues/16612
-
- Without -D_LARGEFILE64_SOURCE we can't build against libxfs,
- because off64_t must be defined.
-
- Signed-off-by: Ira Cooper <ira@redhat.com>
- (cherry picked from commit 602425a)
-
-commit 2fd75cced9dbcfdfdcba979eae90a6f4fb384758
-Merge: dac65d0 2c97cb3
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Jul 6 20:25:20 2016 +0200
-
- Merge pull request #8475 from Vicente-Cheng/wip-15343-hammer
-
- hammer: Multipart ListPartsResult has missing quotes on ETag
- Reviewed-bu: Orit Wasserman <owasserm@redhat.com>
-
-commit 3bb248b7d530403b347e3ff68a8996b624fc1c98
-Author: shun-s <song.shun3@zte.com.cn>
-Date: Tue Jun 28 15:30:16 2016 +0800
-
- replcatedBackend: delete one useless op->mark_started as there are two in ReplicatedBackend::sub_op_modify_impl
- delete one mark_start event as there are two same op->mark_started in ReplicatedBackend::sub_op_modify_impl
- Fixes: http://tracker.ceph.com/issues/16572
-
- Signed-off-by: shun-s <song.shun3@zte.com.cn>
-
-commit ed4ca7c92cdf7404754dab6f9d58c64b647136c5
-Author: Wido den Hollander <wido@42on.com>
-Date: Tue Apr 5 11:14:16 2016 +0200
-
- rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule
-
- Before this patch the RGW would respond with the Origin send by the client in the request
- if a wildcard/asterisk was specified as a valid Origin.
-
- This patch makes sure we respond with a header like this:
-
- Access-Control-Allow-Origin: *
-
- This way a resource can be used on different Origins by the same browser and that browser
- will use the content as the asterisk.
-
- We also keep in mind that when Authorization is send by the client different rules apply.
- In the case of Authorization we may not respond with an Asterisk, but we do have to
- add the Vary header with 'Origin' as a value to let the browser know that for different
- Origins it has to perform a new request.
-
- More information: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-
- Fixes: #15348
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 0021e224480c7164330eaa7cc1078bb8795169bf)
-
- Conflicts:
- src/rgw/rgw_rest.cc
- hammer still uses s->cio->print() where master uses STREAM_IO(s)->print()
-
-commit b78a1be835706e7dabc505be343945d0ac05697d
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Jun 30 13:24:22 2016 +0800
-
- mon: Monitor: validate prefix on handle_command()
-
- Fixes: http://tracker.ceph.com/issues/16297
-
- Signed-off-by: You Ji <youji@ebay.com>
- (cherry picked from commit 7cb3434fed03a5497abfd00bcec7276b70df0654)
-
- Conflicts:
- src/mon/Monitor.cc (the signature of Monitor::reply_command()
- changed a little bit in master, so adapt the
- commit to work with the old method)
-
-commit dac65d048919f701877de96d3271131853e532ed (refs/remotes/gh/wip-optracker-4354)
-Merge: 2e156d7 a2e7ca1
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jun 27 17:51:19 2016 +0200
-
- Merge pull request #8538 from Vicente-Cheng/wip-15360-hammer
-
- hammer: Linking to -lrbd causes process startup times to balloon
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 850881cf787ccb23eca989861a6688f3a4de1a7c
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Jan 20 17:24:38 2016 +0100
-
- rgw: fix subuser rm command failure
-
- Fixes: 14375
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit bbc06e70b49b2917ee63985727cb92724fb99209)
-
- Conflicts:
- src/rgw/rgw_user.cc The "if (op_state.will_purge_keys())" block was
- later changed to "always purge all associated keys" by
- e7b7e1afc7a81c3f97976f7442fbdc5118b532b5 - keep the hammer version
-
-commit 055427cf58857eeadda11ed1b3381e84e384bc85
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 12 16:57:49 2016 -0700
-
- Pipe: take a ref to existing while we are waiting
-
- Otherwise, if it is reaped while we are waiting, it'll be a
- use-after-free.
-
- Fixes: http://tracker.ceph.com/issues/15870
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit b224912d249453d754fc0478d3680f8cfa1a5c22)
-
- Conflicts:
- src/msg/simple/Pipe.cc: nullptr changed to 0 because hammer is not compiled
- with -std=c++11
-
-commit 24cc4f9e67d9c61f68ccc8f7d80ac227d67aeda1
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jun 15 16:53:16 2016 +0200
-
- rgw: check for -ERR_NOT_MODIFIED in rgw_rest_s3.cc
-
- Fixes: http://tracker.ceph.com/issues/16327
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit fc38346c596d8b0bc156183970d6a327943cb577)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
- use ret instead of op_ret to check op result
-
-commit 7dbace59b83a059fcb364b78fc78d4e38164df6c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu May 28 22:35:08 2015 +0200
-
- erasure-code: s/unreocvery/unfound/
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 28820d1cd630ec466ed1069a437d740a025fb9aa)
-
-commit e726f211107cd84cc722744c38213b96dc59cdc7
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Wed Apr 22 09:45:04 2015 +0800
-
- test: add test-case for repair unrecovery-ec pg.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 8f30db85219a6c57cb2fc03f4049a3f57446ca55)
-
-commit 40b1c2b231b62471d4f3cfba3ba2c3d596c9e170
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Apr 14 13:29:54 2015 +0800
-
- osd: Remove the duplicated func MissingLoc::get_all_missing.
-
- It is the same as MissingLoc::get_needs_recovery.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit bdd6205408cf20e039496728052a36c1a7d758c6)
-
-commit 47d5dfc0323e8d7614ad5793d85c1476b63c18e6
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Tue Apr 14 09:11:58 2015 +0800
-
- osd: Fix ec pg repair endless when met unrecover object.
-
- In repair_object, if bad_peer is replica, it don't add soid in
- MissingLoc for ec pool. If there are more bad replica for ec pool
- which cause object can't recover, the later recoverying will endless.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d51806f5b330d5f112281fbb95ea6addf994324e)
-
-commit 187d308b5b0cb0512b442bbad1bddfda8ef9203f
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 24 14:51:47 2015 -0400
-
- uuid: use boost::random:random_device
-
- The boost mt code uses uninitialized memory for extra randomness,
- which is a bad idea in general but more importantly makes valgrind
- unhappy. Use /dev/urandom instead.
-
- Unfortunately this introduces a link time dependency.. meh!
-
- Fixes: #12736
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit dbcaa544856fcc99ab912a101c4a28e1eb3fb94e)
-
- Conflicts:
- ceph.spec.in (trivial resolution)
-
-commit 174de7fce8080df6e02b363e7821e8cca6f8157f
-Author: Rohan Mars <code@rohanmars.com>
-Date: Wed Aug 12 21:19:31 2015 -0700
-
- moved to use boost uuid implementation, based on commit 4fe89a7b14c97b2ed7f357132901beb2bdcec551
-
- Signed-off-by: Rohan Mars <code@rohanmars.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 62bfc7a1ab1587e81ed3bff0ddfbb1aa69d1c299)
-
- Conflicts:
- debian/control (trivial resolution)
- src/common/Makefile.am (trivial resolution)
- src/common/blkdev.cc (no get_device_by_uuid() function in hammer)
-
-commit 2e156d7ad4b9f4ffd6028df3a460b50b30c8b0d3
-Merge: 054a90e 5cd922c
-Author: Mykola Golub <to.my.trociny@gmail.com>
-Date: Thu Jun 16 08:26:00 2016 +0300
-
- Merge pull request #9722 from trociny/wip-16289-hammer
-
- hammer: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5cd922ca31d2eb987992b2afcbd45d5d92aeac69
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Jun 14 15:28:06 2016 +0300
-
- qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable
-
- Fixes: http://tracker.ceph.com/issues/16289
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 3048d3c7ce800a6174c54946b838e4e4079ec609)
-
-commit 1ac920bf291a58cf680108f8dc738197e9bae44d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Sep 18 17:34:51 2015 -0700
-
- rgw: fix identification of canceled operation
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9f63b15b3a7c4cc633ff90f529934f071aea7c62)
-
-commit a38f157a09097d1eaef64813fc947aac19e3844a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Mar 25 17:35:40 2015 -0700
-
- rgw: identify racing writes when using copy-if-newer
-
- When copying an object from a different zone, and copy-if-newer is
- specified, if the final meta write is canceled check whether the
- destinatioin that was created is actually newer than our mtime,
- otherwise retry.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit fe9c64b75caf3f53ce2dfdea5e39d794528dfc33)
-
-commit 02f6d8aaa86f4fdb9912763883d079d02589e5be
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 24 22:48:03 2015 -0700
-
- rgw: translate http error 304 to appropriate status
-
- So that we can return the appropriate response on a conditioinal multi
- zone copy operation.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 20d24e965884af440f94c7e3093587c7b8643cb9)
-
-commit 7319d76b269d541249124f46890f1b04279ba2ea
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 24 20:24:55 2015 -0700
-
- rgw: fix if-modified-since boundary
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 27946e8ba4bc5dbfec2da319fa23266d5885d655)
-
-commit 5e4de5ad66dc24b059ef19664d1eef22be6890f7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 24 20:16:02 2015 -0700
-
- rgw: add rgwx-copy-if-newer http header
-
- Similar to IF_MOD_SINCE, but does not take a time argument, and should
- protected against races (not there yet).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 8813a4401198636e0f4d3a220a0f726625a5c5d4)
-
-commit 054a90edb2812f78426b8cb1dac2e768b2e7fc51
-Merge: 785ffd1 c722d00
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Jun 7 15:48:00 2016 +0200
-
- Merge pull request #8113 from Vicente-Cheng/wip-15023-hammer
-
- hammer: rgw: user quota may not adjust on bucket removal
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 785ffd1f616864909b24314c803d12566c885d14
-Merge: e0a3589 139691c
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Jun 6 12:42:14 2016 -0700
-
- Merge pull request #9277 from ceph/wip-split-lfn-hammer
-
- Hammer LFN collection split fix: backport of http://tracker.ceph.com/issues/14766
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e0a358972644d3718c80970fd7236a4df8e61afe
-Merge: 735c524 006ea56
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Jun 6 08:19:23 2016 -0700
-
- Merge pull request #9521 from ceph/revert-9496-wip-16149-hammer
-
- Revert "hammer: Scrub error: 0/1 pinned"
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 006ea56f603e160c83c8b1fe35ee8022321bf3b2
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 6 11:15:54 2016 -0400
-
- Revert "hammer: Scrub error: 0/1 pinned"
-
-commit 735c52423305d4ad548464e986ff88e57333b8ca
-Merge: a1a5f57 c294bd3
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 6 08:46:45 2016 -0400
-
- Merge pull request #9496 from Vicente-Cheng/wip-16149-hammer
-
- hammer: Scrub error: 0/1 pinned
-
-commit a1a5f57558e30fc0fd581756a75da5abee3e897b
-Merge: a336291 d1ab71f
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jun 6 11:39:34 2016 +0200
-
- Merge pull request #8987 from dreamhost/hammer-wip-pr7712
-
- hammer: rgw: S3: set EncodingType in ListBucketResult
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit c294bd34e7e29f2c96e3277491c02ea26bf6da5c
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 20 13:59:10 2016 -0700
-
- ReplicatedPG: adjust num_pinned in _delete_oid
-
- Fixes: http://tracker.ceph.com/issues/15952
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 907d4e25c676fd3e1c2be90ce8ab5b64b362b0bc)
-
-commit 43d1b92b97e0bb1c419341ba3c740fa632cafef0
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue May 17 17:14:07 2016 -0700
-
- test: Fix grouping of mon_cephdf_commands by moving to MON_TESTS
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2fb0530a5650bcdb9c89d8bdd2504a7dd1642678)
-
- Conflicts:
- qa/workunits/cephtool/test.sh (trivial)
-
-commit 300c11179290d9b119ff6f310efd1cf5b559b3e1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Mar 22 18:14:57 2016 -0700
-
- rgw: convert plain object to versioned (with null version) when removing
-
- Fixes #15243
-
- When removing a plain null versioned object (was created prior to bucket versioning
- enabled), need to convert the bucket index representation to a versioned one. This
- is needed so that all the versioning mechanics play together.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit c6334d430b17739fed2df2b4481ae395ef6568d9)
-
- Conflicts:
- src/rgw/rgw_rados.cc
- - hammer is missing get_zone() API from which log_data can be
- obtained. Needed to fall back to zone_public_config
- structure in bucket_index_unlink_instance() definition.
- - olh_tag string parameter added to
- bucket_index_unlink_instance() definition.
- src/rgw/rgw_rados.h
- - olh_tag string parameter added to
- bucket_index_unlink_instance() declaration.
-
-commit 4eea92b4a50e06d850c39009d122f8bbbd48c857
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 5 14:02:25 2016 -0700
-
- rgw: handle stripe transition when flushing final pending_data_bl
-
- Fixes: http://tracker.ceph.com/issues/15745
-
- When complete_writing_data() is called, if pending_data_bl is not empty
- we still need to handle stripe transition correctly. If pending_data_bl
- has more data that we can allow in current stripe, move to the next one.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b7a7d41839558b1a8786a66e27d9d80e606f61c7)
-
- Conflicts:
- src/rgw/rgw_rados.cc (hammer write_data() takes rgw_obj reference as
- 4th argument, hammer throttle_data() takes rgw_obj as 2nd argument)
-
-commit f6076dd0416dd4464955f208d8964ef136b6142b
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Tue May 3 17:12:26 2016 +0800
-
- mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
- (cherry picked from commit 88b6d669e37924536152a552db46ef43a7353562)
-
- Conflicts:
- src/mds/Server.cc (hammer has req->head.args.open.flags instead of just flags)
-
-commit ce313cd89e29c0cfc6b7c600a82bdea7b351cdbd
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue May 10 17:45:20 2016 +0200
-
- rgw: handle errors properly during GET on Swift's DLO.
-
- Backport: Jewel, Hammer
- Fixes: http://tracker.ceph.com/issues/15812
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5ef0202a86a1e4cb56bd29d926555f114a1acdd8)
-
- Conflicts:
- src/rgw/rgw_op.cc (hammer uses ret instead of op_ret; enclosing if
- block in hammer does not check skip_manifest)
-
-commit 410ff1528caafaec0cfd9ea6ee4b86ed6788b09d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri May 6 09:09:43 2016 -0400
-
- osdc/Objecter: upper bound watch_check result
-
- This way we always return a safe upper bound on the amount of time
- since we did a check. Among other things, this prevents us from
- returning a value of 0, which is confusing.
-
- Fixes: http://tracker.ceph.com/issues/15760
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2e2ce365866a7569b55aff338a82c132aa927089)
-
- Conflicts:
- src/osdc/Objecter.cc
- By https://github.com/ceph/ceph/pull/8967, simply add 1 to return vaule.
-
-commit d3eae0a01ae8d33988ffccee1f0af145aa10fa33
-Author: Xinze Chi <xinze@xsky.com>
-Date: Mon May 23 21:38:39 2016 +0800
-
- osd: fix omap digest compare when scrub
-
- Introduce by fe1c28dea4e5607a0c72eab1f046074616cd55a7.
-
- Fixes: http://tracker.ceph.com/issues/16000
- Signed-off-by: Xinze Chi <xinze@xsky.com>
-
-commit a33629106ec64acdaba45bf9db18d2402a926b8e
-Merge: b9b5f96 dd29310
-Author: Sage Weil <sage@redhat.com>
-Date: Sat May 21 14:18:25 2016 -0400
-
- Merge pull request #9240 from yehudasa/wip-15886-hammer
-
- rgw: keep track of written_objs correctly
-
-commit dd29310bd6273ec3643bf90e51f7cae4801629c7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 16 14:35:12 2016 -0700
-
- rgw: keep track of written_objs correctly
-
- Fixes: http://tracker.ceph.com/issues/15886
-
- Only add a rados object to the written_objs list if the write
- was successful. Otherwise if the write will be canceled for some
- reason, we'd remove an object that we didn't write to. This was
- a problem in a case where there's multiple writes that went to
- the same part. The second writer should fail the write, since
- we do an exclusive write. However, we added the object's name
- to the written_objs list anyway, which was a real problem when
- the old processor was disposed (as it was clearing the objects).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 8fd74d11682f9d0c9085d2dc445fc3eb5631f6e0)
-
-commit c2ea6dbd652782bb227b7787c486660871b2d950
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 9 15:01:46 2016 +0800
-
- osd: remove all stale osdmaps in handle_osd_map()
-
- in a large cluster, there are better chances that the OSD fails to trim
- the cached osdmap in a timely manner. and sometimes, it is just unable
- to keep up with the incoming osdmap if skip_maps, so the osdmap cache
- can keep building up to over 250GB in size. in this change
-
- * publish_superblock() before trimming the osdmaps, so other osdmap
- consumers of OSDService.superblock won't access the osdmaps being
- removed.
- * trim all stale osdmaps in batch of conf->osd_target_transaction_size
- if skip_maps is true. in my test, it happens when the osd only
- receives the osdmap from monitor occasionally because the osd happens
- to be chosen when monitor wants to share a new osdmap with a random
- osd.
- * always use dedicated transaction(s) for trimming osdmaps. so even in
- the normal case where we are able to trim all stale osdmaps in a
- single batch, a separated transaction is used. we can piggy back
- the commits for removing maps, but we keep it this way for simplicity.
- * use std::min() instead MIN() for type safety
-
- Fixes: http://tracker.ceph.com/issues/13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 369db9930887d75b498927da9c97733bff4472b6)
-
- Conflicts:
- remove the C++11ism
-
-commit ac0340ad30329df7919ce82938ad49d0a2e2d160
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Mar 16 21:15:35 2016 +0800
-
- osd: populate the trim_thru epoch using MOSDMap.oldest_map
-
- instead of filling MOSDMap with the local oldest_map, we share
- the maximum MOSDMap.oldest_map received so far with peers. That
- way one OSD's failure to trim won't prevent it from sharing with
- others that they are allowed to trim.
-
- Fixes: #13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 9789c29fe0f82b236703f7ae4d356251fde3a46f)
-
- Conflict: use atomic_t instead of std::atomic<>
-
-commit b9b5f966ddfe7e706c038db204271ee662e0d825
-Merge: b90c097 bb5e015
-Author: Sage Weil <sage@redhat.com>
-Date: Wed May 18 17:02:26 2016 -0400
-
- Merge pull request #9164 from liewegas/wip-osdmapcrc-hammer
-
- osd: dump full map bl at 20 when crc doesn't match
-
-commit bb5e015d50cb50361dd6ce258c720fe798b3835a
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Sep 6 13:56:38 2015 -0400
-
- osd: dump full map bl at 20 when crc doesn't match
-
- This will help us debug cases where the encoding doesn't match due
- to a bug.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bfe359af0b80f44ca04847f74d5a2d81097ce4e6)
-
-commit 5057c34ebe4f93792f058ea5f2e3c7e0a29b3d3d
-Author: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
-Date: Mon Mar 23 11:05:44 2015 -0700
-
- obj_bencher: cosmetic display fixes
-
- fix indents in output
- change `snprintf' to `setprecision'
-
- Signed-off-by: Dmitry Yatsushkevich <dyatsushkevich@mirantis.com>
- (cherry picked from commit ddb422f40394ec2f4fc4a6a6cff49e43538121a9)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit 6d8ad0edf6bae57a6e8ca5cc1a7add1659a92691
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Fri May 6 15:05:42 2016 +1000
-
- common: Add space between timestamp and "min lat:" in bench output
-
- This change is taken from 069d95eaf49cadaa9a8fa1fa186455944a50ec7d
- but I did not want to cherry-pick that patch since the rest of it
- is purely cosmetic and would be unlikely to apply cleanly.
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit b90c097ddd3e172df4534509309a554cb3bc3917
-Merge: aefe2cb aab3a40
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon May 16 13:02:44 2016 +0200
-
- Merge pull request #8535 from asheplyakov/bug-14512-hammer
-
- hammer: rbd snap rollback: restore the link to parent
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 31849986896ba6b5fd2b0b13023b50f67842fd28
-Author: Adam Kupczyk <akupczyk@mirantis.com>
-Date: Wed Mar 2 12:31:01 2016 +0100
-
- [MON] Fixed calculation of %USED. Now it is shows (space used by all replicas)/(raw space available on OSDs). Before it was (size of pool)/(raw space available on OSDs).
-
- Signed-off-by: Adam Kupczyk akupczyk@mirantis.com
- (cherry picked from commit 71c4e525f27b8efd2aa4f3b5e95f4a13f123d41a)
-
-commit fed256e40f5465959384735be957dec88733aeb7
-Author: Ruifeng Yang <yangruifeng.09209@h3c.com>
-Date: Tue Jan 12 22:08:41 2016 +0800
-
- mon: add a column 'RAW USED' for ceph df detail
-
- Signed-off-by: Ruifeng Yang <yangruifeng.09209@h3c.com>
- (cherry picked from commit 2b597ae6d4d53974f28a2da090232577daf09979)
-
- Conflicts:
- qa/workunits/cephtool/test.sh (trivial)
- src/mon/PGMonitor.cc (trivial)
- src/mon/PGMonitor.h (trivial)
-
-commit aefe2cb4f262112f0a028797733f868b83da7bd2
-Merge: d56bdf9 221efb0
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 12 23:17:51 2016 +0200
-
- Merge pull request #9107 from SUSE/wip-15867-hammer
-
- hammer: ceph-disk s/by-parttype-uuid/by-parttypeuuid/
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 139691c646809f6c25d72c8de064f26b3c036197
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 12 13:50:58 2016 -0700
-
- src/test/objectstore/store_test.cc: fix shards for new tests
-
- This didn't matter on master/jewel, but in hammer, keyvaluestore
- asserts that gen != NO_GEN => shard != NO_SHARD.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 221efb0b893adbfd7a19df171cf967fee87afcc7
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu May 12 20:06:06 2016 +0200
-
- doc: s/by-parttype-uuid/by-parttypeuuid/ in ceph-disk
-
- Fixes: http://tracker.ceph.com/issues/15867
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 62f4fbe66f8af79fb874125743df0433aa92b731
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Mar 11 17:02:15 2016 -0800
-
- store_test: improve synthetic coverage of the ec stash case
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f3a78e046d54260de01a4d1db8e104130e35cf42)
-
- Conflicts:
- src/test/objectstore/store_test.cc
-
-commit b6bc9cbaef99670bc0fc55936ab02a3656ec8bfd
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Mar 11 14:05:37 2016 -0800
-
- store_test: improve synthetic test coverage of long object names
-
- 1/2 of objects will now have long names, and we'll shift the region
- of the hash space where new objects are created every 1024 objects
- created.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 4b44720f752ebac63454ecd338e2b0c77c8fe501)
-
- Conflicts:
- src/test/objectstore/store_test.cc
-
-commit ec74c1281e641a45de039f2c168b50902e514729
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Mar 10 15:38:26 2016 -0800
-
- TestRados: make half the objects have long names
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8b64432d07a14df9dfd2ed1314783de16530b1d1)
-
-commit 9d1ee7cf390154c5939a01ff439e33d303a952c2
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Mar 10 15:19:15 2016 -0800
-
- LFNIndex::lfn_translate: consider alt attr as well
-
- If the file has an alt attr, there are two possible matching
- ghobjects. We want to make sure we choose the right one for
- the short name we have. If we don't, a split while there are
- two objects linking to the same inode will result in one of
- the links being orphaned in the source directory, resulting
- in #14766.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 850ce11ea3c4dacc6ff1a3ce7ff37000818267c2)
-
-commit 6b821cc8f394e59760e3d58d27f382976bb69e13
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Mar 10 11:06:06 2016 -0800
-
- LFNIndex::created: fix return value with failure injection
-
- See comment for explanation.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit aec5560887a1c1dbbb5aba822280e2c1e05d5d8f)
-
-commit f500435da3ddf750cf0770c0f63e9cff0cebd7a7
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Mar 10 11:03:13 2016 -0800
-
- store_test: add reproducer for #14766
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 0fb67c772561aaca9261ac9094b74d7524498f6f)
-
- Conflicts:
- src/test/objectstore/store_test.cc
-
-commit cbd5aafe93a5c85392a460a183862f62af2836b8
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 29 15:24:09 2016 -0400
-
- osd/PG: update info.stats.* mappings on split
-
- These are updated in the init and start_peering_interval paths, but not
- on split.
-
- Fixes: http://tracker.ceph.com/issues/15523
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8b42294d98dd70715184991da5ba495fbe93d009)
-
-commit d1ab71ff6084719e86e07a447f3054af73e40868
-Author: Vitja Makarov <vitja.makarov@gmail.com>
-Date: Wed Feb 17 13:46:18 2016 +0300
-
- hammer: rgw: S3: set EncodingType in ListBucketResult
-
- Signed-off-by: Victor Makarov <vitja.makarov@gmail.com>
- (cherry picked from commit d2e281d2beb0a49aae0fd939f9387cb2af2692c8)
- X-Github-PR: 7712
- Backport: hammer
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit df4eadc2376bb4a53210e2fe176520887b840f2f
-Author: Gu Zhongyan <guzhongyan@360.cn>
-Date: Wed Dec 30 16:42:07 2015 +0800
-
- rados: Add units to rados bench output
-
- Fixes: #12248
- Signed-off-by: Gu Zhongyan <guzhongyan@360.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 669b932934d60bbfa751cebd9340f11bd95e2853)
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit d96086af5d54a7450f3823210323b9fe08fc075a
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Dec 2 17:20:19 2015 -0800
-
- PGLog::rewind_divergent_log: fix rollback_info_trimmed_to before index()
-
- Fixes: #13965
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 053ee919059b2671d40110e8dff8615dc13d34e0)
-
-commit e79162de4cb418576ca633d5c7ea6fb766706962
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Dec 2 17:17:57 2015 -0800
-
- TestPGLog: add test for 13965
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 66c7246491f4b6e5b95d80cc93c9157725a1a778)
-
-commit fb1b40f5e2da1b70d9ff026a75196c79d09cf0c6
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Sun Mar 22 22:07:24 2015 +0800
-
- osd/Replicated: For CEPH_OSD_OP_WRITE, set data digest.
-
- Add two cases which can add data digest for OP_WRITE:
- a: offset = 0, and length > original size
- b: offset = original size, and original has data_digest.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit c7702bf85d3617b3e1c6619b8ebeff34932fc3e4)
-
-commit f0242598ea7c990aef2d00f3dc6a0cd65656332c
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Mon Mar 23 09:54:52 2015 +0800
-
- osd/ReplicatedPG: For obj has omap, it mean have omap data or omap header or have both.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit fc51ce2a837e8e878d46d8ca54531aa7bd5d01b2)
-
-commit 7b3f1da0ab7f60705b6bc802ddb1bfbce10c8738
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Mar 28 10:33:53 2016 -0400
-
- mon/MonClient: fix shutdown race
-
- While we are shutting down, we should drop all subsequent mon
- messages. Currently it is possible to finish the authentication
- sequence *while* we are shutting down, such that a subsequent
- attempt to authenticate succeeds.
-
- Fix this by resetting cur_con early in the sequence, as this
- makes us drop all incoming messages.
-
- Fixes: http://tracker.ceph.com/issues/13992
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5b44a348bfe4978446bbc7acf58eb8f60a47c965)
-
-commit ec02d8b7b1610bd7fd00c201fb01ef80d3b9f05b
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Apr 12 17:31:27 2016 +0800
-
- PG: set epoch_created and parent_split_bits for child pg
-
- if we have a wrong "created", OSD receiving an osd_pg_create message
- could fail to project its history and crash. a bad split_bits could
- mislead the monitor and osd, and hence cause problems.
- * set child.info.history.epoch_created to osdmap.get_epoch() instead of
- using the parent's epoch_created
- * set child.info.stats.parent_split_bits to the calculated split_bits
- instead using the parent's split_bits
-
- Fixes: http://tracker.ceph.com/issues/15426
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 8b985561ba08d4ed2d7751a8e09f9d9067c5fbd3)
-
-commit 049bc8a498d4ab516c2daded8ac44699aa72c982
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Thu Jan 14 11:04:42 2016 +0800
-
- ceph-fuse: double decreased the count to trim caps
-
- Signed-off-by: Zhi Zhang zhangz.david@outlook.com
- (cherry picked from commit d8a3f6d839649243b12cd6f73e6cb8aec1f955c1)
-
-commit e20df8020458a7b7679d0105183f870220ed0ce7
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 8 10:35:29 2016 -0400
-
- osd/ReplicatedPG: make handle_watch_timeout no-op if !active
-
- During on_change, we clean up old events on the obcs. This can
- include a queued watch timeout:
-
- 3: (ReplicatedPG::handle_watch_timeout(std::shared_ptr<Watch>)+0x125) [0x7f1fc21fe375]
- 4: (HandleDelayedWatchTimeout::finish(int)+0xd3) [0x7f1fc213e2e3]
- 5: (Context::complete(int)+0x9) [0x7f1fc20ead29]
- 6: (ReplicatedPG::finish_degraded_object(hobject_t const&)+0x354) [0x7f1fc22429e4]
- 7: (ReplicatedPG::on_change(ObjectStore::Transaction*)+0x2ba) [0x7f1fc224353a]
- 8: (PG::start_peering_interval(std::shared_ptr<OSDMap const>, std::vector<int, std::allocator<int> > const&, int, std::vector<int, std::allocator<int> > const&, int, ObjectStore::Transaction*)+0x7bd) [0x7f1fc219a0bd]
-
- In this case, handle_watch_timeout should not assume that we are
- active and primary.
-
- Fixes: http://tracker.ceph.com/issues/15391
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4b0e39ee11e7bd5079ff6704bc74627d3ba8ba44)
-
-commit 3cb72dd57f901f400d19022269fb098c06318d6b
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Jun 9 14:57:54 2015 +0200
-
- mon/OSDMonitor.cc: fix UNINTENDED_INTEGER_DIVISION
-
- Fix for:
-
- CID 1297885 (#1 of 2): Result is not floating-point (UNINTENDED_INTEGER_DIVISION)
- integer_division: Dividing integer expressions g_conf->mon_pool_quota_warn_threshold
- and 100, and then converting the integer quotient to type float. Any remainder,
- or fractional part of the quotient, is ignored.
-
- CID 1297885 (#2 of 2): Result is not floating-point (UNINTENDED_INTEGER_DIVISION)
- integer_division: Dividing integer expressions g_conf->mon_pool_quota_crit_threshold
- and 100, and then converting the integer quotient to type float. Any remainder,
- or fractional part of the quotient, is ignored.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit be7e07a52871e16e8a46accde6171077cca8db5a)
-
-commit aab3a40f95dafab34a7eadc2159d142a5f0f88f1
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Mon Apr 11 14:16:48 2016 +0300
-
- hammer: rbd snap rollback: restore the link to parent
-
- So snapshot, flatten, rollback of a cloned image does not loose any data
-
- Fixes: #14512
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit 488a78794d800312f79f7a8cd75dfda3bf3d6ed0
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Jan 8 13:26:39 2016 -0800
-
- ECBackend: send subop writes and reads at normal priority
-
- We want these to be processed ahead of new client ops since
- there are resources being held.
-
- Fixes: 14313
- Backport: hammer
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit b1151c4b8b7f22c7ac067da059d087007b0bc8ea)
-
-commit a2e7ca15d6fd0326526b77f443c15067eb1840ac
-Author: Richard W.M. Jones <rjones@redhat.com>
-Date: Mon Mar 21 14:24:35 2016 +0000
-
- common/Cycles: Do not initialize Cycles globally.
-
- Move initialization to the few tests that actually use it.
-
- Fixes: http://tracker.ceph.com/issues/15225
- Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
- (cherry picked from commit 1c2831a2c1277c69f9649200d74a75c04a4b0296)
-
- Conflicts:
- src/test/msgr/perf_msgr_client.cc
- src/test/msgr/perf_msgr_server.cc
- src/test/perf_local.cc
- These three files were not introduced on hammer, just remove
-
-commit ca0beef84812b09f1ab224e4796fd44c8fe37989
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 18 10:42:40 2016 -0700
-
- osd/OSD: fix build_past_intervals_parallel
-
- We may be only calculating older past intervals and have a valid
- history.same_interval_since value, in which case the local
- same_interval_since value will end at the newest old interval we had to
- generate.
-
- Same as 0830275b39afc408573c2c468fa3b0e7b1d5cc4e change in generate_past_intervals()
- This was introduced by 70316541bbb115d9a35954bfba373cf1dc084b7e.
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0fd674bbf0c17a673be40123645adee3d64375a0)
-
-commit fce79027034bef0cfedbecd9d2601589495f86e6
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Jul 20 17:48:15 2015 -0700
-
- osd: When generating past intervals due to an import end at pg epoch
-
- Add assert() to make sure same_interval_since isn't too far forward
-
- Fixes: #12387
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 65dcc2da76750d0b6dd2cf0031c44f32749f33e5)
-
-commit 2c97cb33c8aa3f53af8a331075a3f79e70113cea
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Thu Mar 31 19:48:38 2016 +0800
-
- rgw: fix compiling error
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 535eb0e608f3bf6b7c561f277e9977b91ab97b48)
-
-commit 2aa1ea6b505c768323abb99dcc8c8f24e594a898
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu Mar 31 06:24:40 2016 +0000
-
- rgw: Multipart ListPartsResult ETag quotes
-
- ListPartsResult output has always missed quotes on the ETag since it was
- first committed.
-
- Fixes: #15334
- Backports: hammer, infernalis
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit a58b774e72cc1613d62e10b25322d6d15e9d2899)
-
-commit 365f21b1181b08e0bb89b916833301228e7c9efc
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Apr 6 15:39:23 2016 +0200
-
- tests: be more generous with test timeout
-
- When the thrasher is in action together with a validater (lockdep or
- valgrind), a single test may hang for more than 360 seconds. Increase to
- 1200: it does not matter if the value is large, only that it prevents
- the test from hanging forever.
-
- Fixes: http://tracker.ceph.com/issues/15403
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit af89474b3fb2c4aa63680aa6b30d71fad2fdd373)
-
-commit c722d00af5286785ad23c574359220e47fd15076
-Author: Vicente Cheng <freeze.bilsted@gmail.com>
-Date: Tue Feb 9 12:03:24 2016 -0800
-
- rgw: user quota may not adjust on bucket removal
-
- Description:
- If the user/admin removes a bucket using --force/--purge-objects options with s3cmd/radosgw-admin respectively, the user stats will continue to reflect the deleted objects for quota purposes, and there seems to be no way to reset them. User stats need to be sync'ed prior to bucket removal.
-
- Solution:
- Sync user stats before removing a bucket.
-
- Fixes: #14507
- Signed-off-by: Edward Yang <eyang@us.fujitsu.com>
- (cherry picked from commit 06507992e3fad837c4667f467d59fc026a2ca0e8)
-
- Conflicts:
-
- src/rgw/rgw_op.cc
- reordering the check seqence and replace some op_ret to ret
-
- Backport Change:
- We remove the `tenant` parameter because this feature is not introduced on hammer version.
- The rgw multi-tenant feature is introduced on pr#6784 (https://github.com/ceph/ceph/pull/6784)
- This feature is supported from v10.0.2 and later version.
-
-commit 20f300e2900ff123974312143c10dca59ee1a64a
-Author: Wido den Hollander <wido@42on.com>
-Date: Tue Mar 22 11:35:05 2016 +0100
-
- rgw: Do not send a Content-Length header on a 304 response
-
- We tell the client that the content has not changed. If we
- send a Content-Length header RFC2616 describes that the client
- MUST use that new value:
-
- "If a cache uses a received 304 response to update a cache entry,
- the cache MUST update the entry to reflect any new field values
- given in the response."
-
- Therefor we should not send a Content-Length header
-
- Fixes: #15119
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit fb4e5cc5d6adc82423d294496855f56e43e8c11d)
-
-commit e53751d0e52f6fb611d9bd81fe2115cd7ce533b3
-Author: Wido den Hollander <wido@42on.com>
-Date: Mon Mar 21 16:50:49 2016 +0100
-
- rgw: Do not send a Content-Type on a '304 Not Modified' response
-
- When we say the Content has not changed we should not respond
- with a content type which defaults to binary/octet stream.
-
- Fixes: #15119
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 471fa29e643fcfd5e1383fb987f99b5b21038ed7)
-
-commit 19dbc2598d15d0676017abe4fb75f7ddc3248119
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 18 10:18:22 2015 -0800
-
- rgw: dump_status() uses integer
-
- so that we can avoid atoi() later
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 744a29a34b72d2a709a58a5ea5fb6223a39c676a)
-
- Conflicts:
- src/rgw/rgw_rest.cc
- rename the input parameter from `err` to `http_ret`
-
-commit c79b481311b3cd992794abc6e2f194f350d43531
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Dec 18 10:07:27 2015 -0800
-
- rgw: move status_num initialization into constructor
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2a12ffc3d7f98504ece8906a6fcb5dac8fd81aba)
-
-commit ceb8e19096f7d4ef35ed3ad8fad508aecbfa78ef
-Author: Wido den Hollander <wido@42on.com>
-Date: Wed Nov 11 19:01:15 2015 +0100
-
- rgw: Do not send a Content-Length header on status 204
-
- RFC7230 says:
- A server MUST NOT send a Content-Length header field in any response with a
- status code of 1xx (Informational) or 204 (No Content).
-
- Fixes: #13582
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 4e5921dbc7d1c51feb4cc5c03aa59a432742765e)
-
-commit 3ecdedd5cfe67d85530123ed6684688b43910aa6
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Mar 11 11:13:43 2016 +0800
-
- mds: fix stray purging in 'stripe_count > 1' case
-
- Fixes: #15050
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 99ec183973e0f4686673d93df02e5381543be51f)
-
-commit f28477c9cf904e9b27e6ad6bb38fbeeb80db5017
-Author: Dunrong Huang <riegamaths@gmail.com>
-Date: Mon Dec 28 18:55:37 2015 +0800
-
- rgw: do not abort when user passed bad parameters to set quota
-
- when user passes bad parameter(e.g. pass "null" to bool parameter), the ceph_json.cc::decode_json_obj()
- will raise a exception with type of JSONDecoder::err(). If we do not catch this exception, the radosgw
- server will abort.
-
- Fixes: #14191
-
- $ curl -X PUT http://ceph1:9090/admin/user?quota&uid=test5&quota-type=user -d '{"enabled": "null"}'
-
- 0> 2015-12-28 11:25:20.864091 7f0d46fb5700 -1 *** Caught signal (Aborted) **
- in thread 7f0d46fb5700
-
- ceph version 10.0.1-787-gc485d29 (c485d29a53f6a2c1a3b561c54632dbac1c4e9473)
- 1: (ceph::BackTrace::BackTrace(int)+0x2d) [0x7f0e13ef88c5]
- 2: (()+0x8fbfb7) [0x7f0e13ef7fb7]
- 3: (()+0xf100) [0x7f0e082c3100]
- 4: (gsignal()+0x37) [0x7f0e072fd5f7]
- 5: (abort()+0x148) [0x7f0e072fece8]
- 6: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7f0e07c019b5]
- 7: (()+0x5e926) [0x7f0e07bff926]
- 8: (()+0x5e953) [0x7f0e07bff953]
- 9: (()+0x5eb73) [0x7f0e07bffb73]
- 10: (bool JSONDecoder::decode_json<bool>(char const*, bool&, JSONObj*, bool)+0x288) [0x7f0e13d74c2c]
- 11: (RGWQuotaInfo::decode_json(JSONObj*)+0x6c) [0x7f0e13d71128]
- 12: (void decode_json_obj<RGWQuotaInfo>(RGWQuotaInfo&, JSONObj*)+0x23) [0x7f0e13d21f16]
- 13: (int rgw_rest_get_json_input<RGWQuotaInfo>(CephContext*, req_state*, RGWQuotaInfo&, int, bool*)+0x11e) [0x7f0e13d21e48]
- 14: (RGWOp_Quota_Set::execute()+0x8c9) [0x7f0e13d1ed6d]
- 15: (()+0x7532d2) [0x7f0e13d4f2d2
-
- Reported-by: Coffee Chou <coffee.zyr@gmail.com>
- Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
- (cherry picked from commit 59f9058467480d21bd98e0e90aa97313a92478a1)
-
- Conflicts:
- src/rgw/rgw_rest.h
- hammer version lacks rgw_rest_get_json_input_keep_data()
- template
-
-commit 9786394b2f75d883505125bc45c95fb685b96531
-Author: Dunrong Huang <riegamaths@gmail.com>
-Date: Mon Dec 28 18:14:22 2015 +0800
-
- rgw: do not abort when user passed bad parameters to set metadata
-
- Fixes: #14190
-
- when user passes bad parameter(e.g. pass "null" to bool parameter), the ceph_json.cc::decode_json_obj()
- will raise a exception with type of JSONDecoder::err(). If we do not catch this exception, the radosgw
- server will abort.
-
- $ curl -X PUT http://ceph1:9090/admin/metadata?user&format=json -d 'data = { "mtime": "null"}'
-
- terminate called after throwing an instance of 'JSONDecoder::err'
- *** Caught signal (Aborted) **
- in thread 7ff982f55700
- ceph version 10.0.1-787-gc485d29 (c485d29a53f6a2c1a3b561c54632dbac1c4e9473)
- 1: (ceph::BackTrace::BackTrace(int)+0x2d) [0x7ffa814db8c5]
- 2: (()+0x8fbfb7) [0x7ffa814dafb7]
- 3: (()+0xf100) [0x7ffa758a6100]
- 4: (gsignal()+0x37) [0x7ffa748e05f7]
- 5: (abort()+0x148) [0x7ffa748e1ce8]
- 6: (__gnu_cxx::__verbose_terminate_handler()+0x165) [0x7ffa751e49b5]
- 7: (()+0x5e926) [0x7ffa751e2926]
- 8: (()+0x5e953) [0x7ffa751e2953]
- 9: (()+0x5eb73) [0x7ffa751e2b73]
- 10: (bool JSONDecoder::decode_json<long>(char const*, long&, JSONObj*, bool)+0x28c) [0x7ffa8135920a]
- 11: (RGWMetadataManager::put(std::string&, ceph::buffer::list&, RGWMetadataHandler::sync_type_t, obj_version*)+0x173) [0x7ffa81468029]
- 12: (RGWOp_Metadata_Put::execute()+0x172) [0x7ffa81308dcc]
- 13: (()+0x7532d2) [0x7ffa813322d2]
- 14: (RGWFCGXProcess::handle_request(RGWRequest*)+0x90) [0x7ffa813328a4]
-
- Reported-by: Coffee Chou <coffee.zyr@gmail.com>
- Signed-off-by: Dunrong Huang <riegamaths@gmail.com>
- (cherry picked from commit 83503239c81573232429a5fe98381f1a8f1357e9)
-
- Conflicts:
- src/rgw/rgw_user.cc
- hammer version uses RGWUserInfo instead of RGWUserCompleteInfo
-
-commit b9a4ad9da99d82bd247e5d39108840f19535fa5e
-Author: Vicente Cheng <freeze.bilsted@gmail.com>
-Date: Fri Mar 27 18:49:28 2015 +0800
-
- Fixed the ceph get mdsmap assertion.
-
- When we want to get mdsmap, we try to get_version()
- and the return value err = 0 means success.
-
- The assert verified r == 0. r would not change in this flow.
- It always meet assert and lead mon failure.
-
- I think this verify should be:
- assert(err == 0)
- It will help to check return value of get_version().
-
- If you have any questions, feel free to let me know.
- Thanks!
-
- Signed-off-by: Vicente Cheng <freeze.bilsted@gmail.com>
- (cherry picked from commit f4398d2e6c245e3f81a6038425e1b8372b265b8c)
diff --git a/src/ceph/doc/changelog/v0.94.9.txt b/src/ceph/doc/changelog/v0.94.9.txt
deleted file mode 100644
index 52d883d..0000000
--- a/src/ceph/doc/changelog/v0.94.9.txt
+++ /dev/null
@@ -1,72 +0,0 @@
-commit fe6d859066244b97b24f09d46552afc2071e6f90 (tag: refs/tags/v0.94.9, refs/remotes/gh/hammer)
-Author: Jenkins Build Slave User <jenkins-build@trusty-huge--d6d4765c-3c95-4fe1-a8cb-776094e0d416.localdomain>
-Date: Tue Aug 30 11:33:34 2016 +0000
-
- 0.94.9
-
-commit d51d10407459bd337f674c6fb0bab1bf55e30c1e
-Merge: b97a974 27d8055
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Tue Aug 30 07:12:09 2016 -0400
-
- Merge pull request #10913 from ceph/wip-revert-random-uuid-hammer
-
- hammer: revert use of boost for uuids
-
- Reviewed-by: Alfredo Deza <adeza@redhat.com>
-
-commit b97a974878881dc5963c0c8a78a9f83fdd31d5f5
-Merge: 838cd35 a219cf5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Aug 30 03:03:57 2016 +0200
-
- Merge pull request #10898 from SUSE/wip-release-notes-hammer
-
- doc: release-notes: add missing hammer releases
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 27d805589552b63a2a152335e4932f996e979d86
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 29 15:29:29 2016 -0400
-
- Revert "moved to use boost uuid implementation, based on commit 4fe89a7b14c97b2ed7f357132901beb2bdcec551"
-
- This reverts commit 174de7fce8080df6e02b363e7821e8cca6f8157f.
-
-commit 21f6f1da0764e1a003a43ef73d6788bdfc3ef848 (refs/remotes/gh/wip-revert-random-uuid-hammer)
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Aug 29 11:55:24 2016 -0400
-
- Revert "uuid: use boost::random:random_device"
-
- This reverts commit 187d308b5b0cb0512b442bbad1bddfda8ef9203f.
-
- This breaks precise builds.
-
-commit a219cf5348b5a5d7b013f4dc1cb503d33d609f12
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Aug 28 09:27:00 2016 +0200
-
- doc: release-notes.rst: add missing line to v0.94.8
-
- see 46264a3b6cb7f490680c79bf0957c36aeaea5f6c and
- b83d25d2918cbd880fbaeec976bffcea8868d5d9 in master
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit a6ba10174559d100341e3684e08d74c6de2e79c7
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Aug 27 12:50:09 2016 +0200
-
- doc: add missing changelogs up to 0.94.8
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit f3dad334fa3147490c8aa94323bee16dd2449681
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Aug 27 09:28:48 2016 +0200
-
- doc: release-notes: add missing hammer releases
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
diff --git a/src/ceph/doc/changelog/v10.2.1.txt b/src/ceph/doc/changelog/v10.2.1.txt
deleted file mode 100644
index 5646e8a..0000000
--- a/src/ceph/doc/changelog/v10.2.1.txt
+++ /dev/null
@@ -1,2249 +0,0 @@
-commit 3a66dd4f30852819c1bdaa8ec23c795d4ad77269 (tag: refs/tags/v10.2.1, refs/remotes/gh/jewel)
-Author: Jenkins Build Slave User <jenkins-build@trusty-huge--11a52675-9585-4db4-a514-798db40d6da2.localdomain>
-Date: Thu May 12 21:48:00 2016 +0000
-
- 10.2.1
-
-commit d93a90ec2743c9aec229891c3b0da72b038cffad
-Merge: cb35d7c 466b7fe
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu May 12 17:30:14 2016 +0200
-
- Merge pull request #8853 from ceph/wip-jewel-backports
-
- jewel: several backports
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cb35d7c25bb1df2a8eff01432d27c5d3bbb196af
-Merge: 0e1b633 b6ebb25
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Thu May 12 16:50:33 2016 +0200
-
- Merge pull request #9041 from vshankar/jewel-15721-backport
-
- jewel: rbd: helpful error message on map failure
-
- Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
-
-commit 0e1b6336b60af6bceaf9dbc8ce544fcb7af71961
-Merge: bfdf709 867f798
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 11 12:33:50 2016 -0700
-
- Merge pull request #9081 from yehudasa/wip-rgw-period-commit-jewel
-
- rgw: period commit fix
-
-commit bfdf709dff9bd3d60d11950d4b2d8741ad0cb113
-Merge: bf1474f 9d5162f
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed May 11 12:24:23 2016 -0700
-
- Merge pull request #8969 from Abhishekvrshny/wip-15731-jewel
-
- jewel: MDSAuthCap parse no longer fails on paths with hyphens
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit bf1474f86ce1a102d15c54ee0e1b11005fe48191
-Merge: 7a37155 52ca195
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed May 11 12:23:28 2016 -0700
-
- Merge pull request #8970 from Abhishekvrshny/wip-15732-jewel
-
- jewel: MDS incarnation no longer gets lost after remove filesystem
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7a37155d798aebc688fb4a06056dc4761062b098
-Merge: e83764c e6aa453
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed May 11 12:20:03 2016 -0700
-
- Merge pull request #8971 from Abhishekvrshny/wip-15738-jewel
-
- jewel: handle standby-replay nodes properly in upgrades
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit e83764c03b9e88dd2a8ef848269768ffb8b6a703
-Merge: 4916950 dccb5ef
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 11 10:38:30 2016 -0700
-
- Merge pull request #9054 from yehudasa/wip-rgw-admin-output-jewel
-
- jewel: rgw admin output
-
-commit 49169501a922034c2686dd88365d438e12605116
-Merge: aa24358 f071d8c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 11 10:38:17 2016 -0700
-
- Merge pull request #9053 from yehudasa/wip-15745-jewel
-
- jewel: rgw: handle stripe transition when flushing final pending_data_bl
-
-commit aa243585508eedf87b2e9e558cc63c014f84b3b0
-Merge: f88e2df 9bb17db
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 11 10:38:02 2016 -0700
-
- Merge pull request #9047 from ceph/wip-rgw-period-delete-jewel
-
- jewel: rgw: period delete fixes
-
-commit f88e2df881c045f52f78516aa08def8569be6ecf
-Merge: a614858 a496b70
-Author: Sage Weil <sage@redhat.com>
-Date: Wed May 11 12:30:18 2016 -0400
-
- Merge pull request #9076 from dillaman/wip-cmake-test-rbd-mirror-jewel
-
- jewel: cmake: fix rbd compile errors
-
-commit a496b705ed48da187b341392530f7e8579637310
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 22:37:01 2016 -0400
-
- cmake: fix rbd compile errors
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8d4c00d1bec431f8c721195c81684c4095079c1d)
-
-commit 9a46e13f3ca9915d71f01bb3506818db59c31a7b
-Author: runsisi <runsisi@zte.com.cn>
-Date: Thu Apr 28 10:22:07 2016 +0800
-
- cmake: add library cls_journal for target unittest_librbd
-
- otherwise if we want to generate target unittest_librbd we need to
- (re)generate cls_journal manually
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 7efb29416b789fcb7e68aab554d6033e6b5ebb43)
-
-commit a6148582432ff36110145ba642d2e0f38e5872b3
-Merge: 7a4810d 48b732f
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Wed May 11 16:50:41 2016 +0800
-
- Merge pull request #9063 from dachary/wip-15838-jewel
-
- jewel: tests: make check fails on ext4
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 48b732fbfac1fa6af10bec0ef900029b71204c26
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon May 2 10:42:24 2016 +0200
-
- tests: enable make check on ext4 (part 2)
-
- Followup of 475cc08c330e639b226f2ab57dedbe4495f63022
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit b0b3a068d4fcc7b739c5dd3d68297e2d517c378e)
-
-commit e1c67d4684c485711b2b9af02edabe161f3d7779
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Apr 30 17:12:05 2016 -0400
-
- qa/workunits/ceph-helpers.sh: make ceph-osd behave on ext4
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 475cc08c330e639b226f2ab57dedbe4495f63022)
-
-commit 867f798d9c364ab5400a61d83cbaef0da9a57b27
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 10 15:51:27 2016 -0400
-
- radosgw-admin: 'period commit' sends to new master zone by default
-
- if no --remote or --url is given, set --remote = master_zone_id to
- override the rest_master_conn (which refers to the old master zone)
-
- Fixes: http://tracker.ceph.com/issues/15828
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit fbe1a05355549dfe0c05750683eeb61e275950c2)
-
-commit a6a6c13c751bbb74ba4f12dc593cd054aabed87c
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 10 15:48:33 2016 -0400
-
- radosgw-admin: allow --remote to specify zone or zonegroup id
-
- --remote was only looking for zonegroup connections. extended to check
- for zone connections as well
-
- updated the usage to clarify that it expects zone/zonegroup ids
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 9fcff89ee1e60009fa367e33c915a90354c9a9cc)
-
-commit dccb5efb128233affaa544b43f93aa4b3d557259
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu May 5 09:59:49 2016 -0400
-
- radosgw-admin: 'zonegroup add' prints updated zonegroup
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit d355208023fe08a7e16f1078c872286048c4bcc6)
-
-commit bd6b5fc5d49c08f574b84a2705a8de4a1d5f8ed1
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu May 5 09:59:32 2016 -0400
-
- radosgw-admin: 'zonegroup modify' prints updated zonegroup
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit a033f40caf60083111886aa804fcdbf3ee60aef8)
-
-commit c1e92df545d0a8db64c84879bc09023c98783fe4
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu May 5 09:56:47 2016 -0400
-
- radosgw-admin: 'zone modify' prints updated zone
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 8a639014a6f2dd950062aa405bbee1762ca23e09)
-
-commit f071d8c6885786ac5fd5400381369945704abaa8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 5 14:02:25 2016 -0700
-
- rgw: handle stripe transition when flushing final pending_data_bl
-
- Fixes: http://tracker.ceph.com/issues/15745
-
- When complete_writing_data() is called, if pending_data_bl is not empty
- we still need to handle stripe transition correctly. If pending_data_bl
- has more data that we can allow in current stripe, move to the next one.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b7a7d41839558b1a8786a66e27d9d80e606f61c7)
-
-commit 7a4810d1f51c072f6406a7306743ad7577476c76
-Merge: 67809b8 10b393b
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue May 10 11:14:40 2016 -0700
-
- Merge pull request #9052 from dillaman/wip-cmake-rbd-mirror-replay-status-jewel
-
- jewel: cmake: add missing source file to rbd_mirror/image_replayer
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 10b393bd90ed76ad41d2123aae5700e171a8e9bc
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Apr 29 17:33:03 2016 -0400
-
- cmake: add missing source file to rbd_mirror/image_replayer
-
- fixes an undefined reference when linking librbd_mirror_internal.a
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 2f3f56170ab47fc10d4232101ae2e85398a4c299)
-
-commit 67809b8e3d71b3cba5ce91e542e840c099c927cd
-Merge: e15854c 8bb4c7f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 10 14:10:05 2016 -0400
-
- Merge pull request #9051 from athanatos/wip-15815-jewel
-
- Wip 15815 jewel
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 8bb4c7f92ca784a116d0f7a9a22677b514e7e6ca
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 22 16:38:14 2016 -0400
-
- ceph_test_keyvaluedb: clean up test dir
-
- Just like ceph_test_objectstore
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2b075aa52d4475338c0f3cd3360e1ee4de8befa7)
-
-commit 108cdfdff65bcce98cb3b2da799fe46bed4421f4
-Author: Allen Samuels <allen.samuels@sandisk.com>
-Date: Fri Apr 22 14:06:56 2016 -0400
-
- ceph_test_keyvaluedb: fixup unit test for keyvaluedb
-
- Fixes: http://tracker.ceph.com/issues/15435
- Signed-off-by: Allen Samuels <allen.samuels@sandisk.com>
- (cherry picked from commit 85c14de20936ff9ee224f9b6569a73f9bae75f19)
-
-commit e15854ce98291b3186e9cfadb6cb47a401a4c8ae
-Merge: 7686c62 815967a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:52:54 2016 -0400
-
- Merge pull request #9050 from dillaman/wip-15821
-
- jewel: rbd-mirror: image sync needs to handle snapshot size and protection status
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 815967ab97631f65c44cd200971cc8056e94d89e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 9 18:25:39 2016 -0400
-
- test: add missing header dependency for MockJournaler
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fa91919c856ac8186545bc8f8da31a8f438a9b5d)
-
-commit 32189573c2da9e1922b6bfae232a62a909797e1a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 10:23:49 2016 -0400
-
- rbd-mirror: image sync object copy was not properly mapping snapshots
-
- When the snapshot sequence is out-of-sync between remote and local
- clusters (expected), the objects would not be written with the
- correct snapshot context.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit dd8f08039bf5354a0413c9da4263d1075243e9c9)
-
-commit d3dc919991a013eb45d55a8b6a04628d089d000a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 10:23:25 2016 -0400
-
- rbd-mirror: clean up image sync debug messages
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit acca475fe5c9ff024c7f76397e7f49e4c4558b09)
-
-commit 58e0612a7bb66f6c50dcfc27ed0f1e49d6ec08fa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 00:12:05 2016 -0400
-
- librbd: readahead should not read past end of image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit adb14303ccf8a26ed5536bb692ae63d92ac40a9f)
-
-commit 7dadecb96a4f856d18fcccffb323941b1149ceaa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 23:17:12 2016 -0400
-
- test: randomize rbd-mirror test case IO
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0d75f2ce61cee164da4e5b7ffb4e69c286e6036a)
-
-commit 7aef2976084b8be858e354a05dae12df30743737
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 23:15:58 2016 -0400
-
- rbd-mirror: don't set object map to nonexistent during image sync
-
- The object maps are initialized to nonexistent at snapshot creation,
- so this operation is unnecessary.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fe5d4a811f9d9d1160ff7104fe9243cc17ef1bef)
-
-commit 58e90f1bcb53a38be2491ac7797f170de324af9a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 23:01:30 2016 -0400
-
- librbd: improve object map debug messages
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2c657752a5067e11405dca59461ce9cbdf062602)
-
-commit 6c1af50b67e1a1769bb3d30d28e45fee8b13bb71
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 22:53:52 2016 -0400
-
- test: snapshot stress test rbd-mirror image sync
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 468287bd182fa0cd02f7551ad6d729ff67ab1a22)
-
-commit 0f84aaf011f1a62250948647069cc7fbd6c45699
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 21:42:05 2016 -0400
-
- rbd-mirror: allocate empty object map during snapshot create
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 57a7fe0f44c5542a72120d0beed8b38e9ccd66db)
-
-commit fa8a61df1570893e222c0d9431ba61e192a23c40
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Apr 29 16:43:07 2016 -0400
-
- librbd: optionally skip object map creation upon snapshot
-
- This feature is used by rbd-mirror during image bootstrap since
- it will directly create an empty object map.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit db16240c79be7e28d65edac2088352b9b146da5f)
-
-commit a140753b6b01215f832cc9524e3532e825e4c2f2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Apr 25 15:11:28 2016 -0400
-
- rbd-mirror: refactor snapshot create into its own state machine
-
- Initial implementation will resize the image (if needed) and create
- the snapshot. It is stubbed out for future state machines for handling
- object map and clones.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8adc47fbf8efa3991bd247be43b786676fe5fff9)
-
-commit ef1e4c874adba51bc5a3acbbf3177174f25da088
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 14 21:47:19 2016 -0400
-
- rbd-mirror: sync snapshot protection status during bootstrap
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e6fba2b2306c8f04ce088fb15ef70e1dac282ff3)
-
-commit c790da5aef0cb6a5573d86d0a8298d850b63ef25
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sat Apr 9 13:30:56 2016 -0400
-
- test: stub test cases for rbd-mirror image bootstrap
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d0f732877213ba9eec9d3158b839c5a4c796e7ab)
-
-commit 7a7889572789e1bec9cb72e08a0d66d8302d7639
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Apr 5 00:03:12 2016 -0400
-
- test: share journal::MockJournaler between librbd and rbd-mirror
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 04db7ddec661ef195077c3fab06f248705b17220)
-
- Conflicts:
- src/test/librbd/test_mock_Journal.cc: MockJournaler moved to new file
-
-commit 7686c628b199dd2f3f58b70e7ab3bbb9c1f199c1
-Merge: 63d2d23 f221fed
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:40:32 2016 -0400
-
- Merge pull request #9040 from dillaman/wip-15818
-
- jewel: librbd: potential concurrent event processing during journal replay
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 63d2d2396d80fd7d9fd439488d08e8747846d181
-Merge: 1bb1a3a f18b14b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:39:46 2016 -0400
-
- Merge pull request #9038 from dillaman/wip-15817
-
- jewel: journal: incorrectly computed object offset within set
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1bb1a3a4862e5bb5a99c7549d499564deecbdafe
-Merge: abbe69e 8605040
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:39:06 2016 -0400
-
- Merge pull request #9039 from dillaman/wip-15820
-
- jewel: librbd: client-side handling for incompatible object map sizes
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 86050402066d1f5d680ec777826386a5760e3456
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 17:00:59 2016 -0400
-
- librbd: guard object map against incompatible image sizes
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 42d3d3ac2d33360aae071330cfa34b87c87eadc5)
-
-commit 7448d29027dafe1abd1e6ebff6f0fe5bb15e4b07
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 15:16:17 2016 -0400
-
- librbd: properly handle object map open returning error code
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 570de56bfc7fd2edd5cf1cf5b7b92084cd3352a3)
-
-commit 764b3bd413b81d2c98f8c325100661ee41a571bc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 15:01:58 2016 -0400
-
- librbd: add client-side memory constraint when loading object map
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2dd34b2c7b8c376817aafe5cfdda7aa9cfb60e1a)
-
-commit abbe69e19af6d453095e03adbaaaef680ed80958
-Merge: 05d5749 5ec1f79
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:30:49 2016 -0400
-
- Merge pull request #9048 from dillaman/wip-15819
-
- jewel: librbd: constrain size of AioWriteEvent journal entries
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5ec1f79086e4841aa27c12531a1220f69ed3cccb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 6 00:08:38 2016 -0400
-
- librbd: split large AioWrite journal events
-
- Ensure that AioWrite journal events fit within a single
- journal object.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 70b9fbf2745c795fe345f0298a2f30af80a12985)
-
-commit f1a2e6aeaa22233f13878d004cbe905a42bdc744
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 5 21:30:18 2016 -0400
-
- journal: prohibit journal entries larger than the soft object size
-
- This avoids complications like a librbd write event of 128MB trying
- to fit within a 24MB journal object.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d5f307dec10429a1ffc042919b71ac25466a1b72)
-
-commit 05d574926df94b4fa2e0186f31d5050bd0b39ed3
-Merge: 495313f 2d906e6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:28:11 2016 -0400
-
- Merge pull request #9036 from dillaman/wip-15814
-
- jewel: librbd: fix get/list mirror image status API
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2d906e600a8d81aae15bcf3f8b2fc694537890d4
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue May 10 12:29:12 2016 +0300
-
- rbd-mirror: fixup to get/list mirror image status API
-
- - embed name and rbd_mirror_image_info_t into rbd_mirror_image_status_t;
- - index image status list by image id to make 'start' work correctly;
- - provide rbd_mirror_image_status_list_cleanup function.
-
- Fixes: #15771
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e6c709b3a8be489a900178b8b0d962705d5687e9)
-
-commit 495313f355955463f747be9e6650fe8796c0d124
-Merge: 9750610 617004e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:15:23 2016 -0400
-
- Merge pull request #9003 from dillaman/wip-15743
-
- jewel: librbd: reduce log level for image format 1 warning
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9750610ebf7f4d853dee23adaf6109c2c6b63ee0
-Merge: 0218f0b fb7eb4e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:13:27 2016 -0400
-
- Merge pull request #9010 from dillaman/wip-15736
-
- jewel: rbd-mirror: admin socket commands to start/stop/restart mirroring
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit fb7eb4e6548b6536fccb6fd38b18a5ced0f9ee4b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Apr 28 09:32:33 2016 +0300
-
- rbd-mirror: admin socket commands to start/stop/restart mirroring
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit a22cf518f9cc0872f72a8a850ea01558094ebd00)
-
-commit 8e46e4383a15f022e9213c6710671e6241e7fb6c
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sun May 1 22:04:46 2016 +0300
-
- qa/workunits/rbd: fix rbd-mirror log file name
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 4c28fc2aa378c10ce6e78b1a2f98d5e14ac211e9)
-
-commit d73073a400807f2aa62d0eadc8ff6a8537ca04fa
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Apr 28 09:23:35 2016 +0300
-
- rbd-mirror: make image replayer asok commands available when not started
-
- Initially the asok commands were registered only after the image
- replayer start (and unregistered on stop) because their names were
- built using remote pool and image names, which became known only after
- start.
-
- Now, the asok commands are registered on the image replayer construction
- using the temporary name "remote_pool_name/global_image_id". They are
- re-registered using "remote_pool_name/remote_image_name" when the
- image replayer is started. Also the commands are not unregistered on
- the image replayer stop.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 21790484dc66e97e7625b5b2afabb7efe3a92b08)
-
-commit 24ea574a94c009d64d480bc3f887d4b0325d26d8
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Apr 1 18:15:33 2016 -0700
-
- qa/workunits/rbd: add env vars to adapt rbd_mirror.sh to teuthology
-
- With these set, this script can work in teuthology, where we want to
- control the how daemons run and their log locations, valgrind
- settings, etc. The workunit task always sets CEPH_ID, and allows
- other env vars to be configured optionally.
-
- The RBD_MIRROR_USE_EXISTING_CLUSTER option can also speed up local testing.
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit dcd11a1f262e0c56bb1b37d54283cda06abbf4c7)
-
-commit 21220a1fa668d4080eb7c4844cafeefffa77ecdc
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Apr 7 16:57:14 2016 -0700
-
- qa: rbd_mirror.sh: change parameters to cluster rather than daemon name
-
- Daemon name is only useful to differentiate asok and pid filenames, so
- just inline its use there. Everywhere else replace the 'daemon'
- parameter with cluster or local_cluster as appropriate.
-
- Remove the CLUSTER{1,2}_DAEMON vars as well, since they are no longer
- used.
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 5fe64fa806f3bbdbdb950a5643238cc2508814b0)
-
-commit 0218f0b0750b88f308f3ee0837b4e4efc7aeea63
-Merge: a152b32 c1960de
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:04:09 2016 -0400
-
- Merge pull request #9005 from dillaman/wip-15716
-
- jewel: rbd-nbd: fix rbd-nbd aio callback error handling
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a152b32016529633a810fc901a2c980ab1169b27
-Merge: 54177d0 0e95ee4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:03:38 2016 -0400
-
- jewel: librbd: unlock image if journal error encountered during lock
-
- jewel: librbd: unlock image if journal error encountered during lock
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 54177d00f06ab3d712c8837832de080e452205de
-Merge: b6b3cdd a73b9dd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 13:02:24 2016 -0400
-
- Merge pull request #9009 from dillaman/wip-15713
-
- jewel: librbd: possible race condition leads to use-after-free
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a73b9dd670bcd3a77611c7240d86963b29527983
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 07:41:30 2016 -0400
-
- librbd: possible race condition leads to use-after-free
-
- The invoke async operation state machine can complete before the
- owner lock is released. Use a stack reference to prevent
- use-after-free.
-
- Fixes: http://tracker.ceph.com/issues/15690
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d9421a25b582e41550526714b71fb55f05abb1de)
-
-commit b6b3cdd40c60775c27b631cd8670e95bc84a5219
-Merge: a3e2e41 28ac027
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:53:30 2016 -0400
-
- Merge pull request #9004 from dillaman/wip-15708
-
- jewel: rbd: help message distinction between commands and aliases
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a3e2e410f5ef6308fcfd59baf607c49112f69138
-Merge: ade4359 82838e3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:53:00 2016 -0400
-
- Merge pull request #8972 from Abhishekvrshny/wip-15697-jewel
-
- jewel: python: clone operation will fail if config overridden with "rbd default format = 1"
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ade4359b15d18ab51ab00168339d1aadcdffacbb
-Merge: 7f95348 451246d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:50:43 2016 -0400
-
- Merge pull request #9008 from dillaman/wip-15698
-
- jewel: rbd-mirror: lockdep error during bootstrap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9bb17dbb1ce2ae910927e120cf35da9ee4c98225 (refs/remotes/gh/wip-rgw-period-delete-jewel)
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri May 6 15:57:22 2016 -0400
-
- rgw: fix for duplicates in list_periods()
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit abed30befd86c68922759a66db589285fe01e54b)
-
-commit 7ea6e78aa0aa3b86d663dab3f69998e5cd3a5177
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri May 6 15:18:46 2016 -0400
-
- rgw: 'period delete' cleans up all period objects
-
- Fixes: http://tracker.ceph.com/issues/15469
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit a286b32224d4a9757058415f98a2feff683ac520)
-
-commit 451246df64890e39205d20d40eb5676893a7e1db
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 10:33:50 2016 -0400
-
- librbd: disable automatic refresh of image upon lock message
-
- There is no need to refresh the image upon request/release/acquire
- of the exclusive lock. The next IO or maintenance op will kick off
- the refresh. This is interfering with the refresh state machine
- unit test case (since two concurrent refreshes shouldn't be possible).
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ee617a0ca56d752daf62bfffa59219b2c540a428)
-
-commit 9e058fc852090ecb1b3a8daa3e0ee9df9d5eba3c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 10:26:29 2016 -0400
-
- librbd: update_features should release lock if acquired
-
- There is a small window where requests are unblocked and before
- the image is shut down where new requests can be accepted. These
- are correctly canceled during the shut down, but it can lead to
- warning messages.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 608e09851396a9eeb7cf6dc1c7f687ef7a033601)
-
-commit e653a1541ca7df29d01e8524a3f3b597fa0fb67b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 09:27:29 2016 -0400
-
- librbd: avoid applying refreshed image config within librados callback
-
- There is a potential that a synchronous API call could deadlock a
- image refresh.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ce5c701bc47b0959f8453b6b92dee4804d3b1d75)
-
-commit a5996e5ad64e01fcde50fc46bf9861b2d163f0c4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 08:42:35 2016 -0400
-
- rbd-mirror: don't use temporary string for snap operation
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 06faf83bbfab000c8200a9cbe781adb0082b3f7b)
-
-commit a891919b85f44a7d81fb2fb84d1b8d7258b3fbdc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 08:31:54 2016 -0400
-
- librbd: avoid recursive locking within operation state machine
-
- Fixes: http://tracker.ceph.com/issues/15664
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 91a4890ee78c25391c1548fdacb2b51c46a47415)
-
-commit 7f953488b46642ed3825349d41a34b0faeb6a76b
-Merge: 8963af7 895c975
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:47:01 2016 -0400
-
- Merge pull request #8869 from Abhishekvrshny/wip-15669-jewel
-
- jewel: Errors encountered disabling object-map while flatten is in-progress
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 8963af73823285e9261acf6305778903a8f4205d
-Merge: 978f30e 63738d4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:46:12 2016 -0400
-
- Merge pull request #8870 from Abhishekvrshny/wip-15668-jewel
-
- jewel: rbd disk-usage CLI command should support calculating full image usage
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 978f30e100fa91c148fd2aeaadad2f6e7bb94f9a
-Merge: 1dceb38 32c0901
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:35:41 2016 -0400
-
- Merge pull request #8868 from Abhishekvrshny/wip-15666-jewel
-
- jewel: rbd CLI to retrieve rbd mirror state for a pool / specific image
-
- Conflicts:
- src/tools/rbd_mirror/ImageReplayer.cc: trivial resolution
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1dceb38538d9c8a13551ef8b9217cb5757089576
-Merge: 2495f08 357ad37
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:33:33 2016 -0400
-
- Merge pull request #9046 from dillaman/wip-fix-snapc-validation-jewel
-
- jewel: librbd: put the validation of image snap context earlier
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 357ad37a4facc9917866c780892c7cd0e21653fd
-Author: runsisi <runsisi@zte.com.cn>
-Date: Wed Apr 20 09:55:39 2016 +0800
-
- librbd: put the validation of image snap context earlier
-
- we'd better validate the snap context right after we got the mutable
- metadata before we could go any further
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit ca8ae66ba42e7a598ad23ed911938589dc288456)
-
-commit 2495f08a64b352cbd21432b708fdd8e4090b67bb
-Merge: 5e9128d 125aab8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:31:10 2016 -0400
-
- Merge pull request #8867 from Abhishekvrshny/wip-15661-jewel
-
- jewel: Parent image is closed twice if error encountered while opening
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5e9128dc8b4af16512f689d556baa7d6e08ae1f8
-Merge: c167514 af1c0bc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:30:12 2016 -0400
-
- Merge pull request #8866 from Abhishekvrshny/wip-15660-jewel
-
- jewel: rbd-mirror can crash if start up is interrupted
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit c16751431baed0322765e502bf750b7f9be49e78
-Merge: 5e89e82 a2eb187
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:29:02 2016 -0400
-
- Merge pull request #9044 from dillaman/wip-librbd-bad-header-jewel
-
- jewel: librbd: does not crash if image header is too short
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a2eb187658d045160fb85f6c1d9437eaa49f0830
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Apr 28 00:59:34 2016 +0800
-
- librbd: does not crash if image header is too short
-
- if something goes wrong with the object, and returns a chunk shorter
- than expected, don't panic
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 7b52183addda83f98c8b1f37d3de20ca0fc4687b)
-
-commit 5e89e821f3e9b368b6d4963824e334acbd49cceb
-Merge: f99aba4 8cae07c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:26:48 2016 -0400
-
- Merge pull request #8803 from SUSE/wip-15605-jewel
-
- jewel: Potential double free of SetSnapRequest instance
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f99aba4a869bbb6dda5353a6f5c9c65da32dcd02
-Merge: 9d40896 9b2c173
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 12:16:09 2016 -0400
-
- Merge pull request #8865 from Abhishekvrshny/wip-15649-jewel
-
- jewel: possible double-free of object map invalidation request upon error
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit b6ebb25afc3d75d834311a9931b08c84e858a5e4
-Author: Venky Shankar <vshankar@redhat.com>
-Date: Thu May 5 15:28:16 2016 +0530
-
- rbd: helpful error message on map failure
-
- Failure to map an rbd image provides pretty much nothing to
- debug (or rectify) the nature of failure. This change tries
- to improve the same by providing helpful error messages (by
- pointing to dmesg, etc..).
-
- Fixes: http://http://tracker.ceph.com/issues/15816
- Signed-off-by: Venky Shankar <vshankar@redhat.com>
-
-commit f221fedb3b34bccd80383096d6ccfa19a4a72db9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 6 11:16:37 2016 -0400
-
- librbd: assertion to ensure no concurrent processing of replay events
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 44827a3e8e02529be84c829a76ef01f70e0d20ee)
-
-commit 37f08e6e15b21eec2dedfd5e497619165cd3d117
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 6 11:05:50 2016 -0400
-
- journal: suppress notifications if client still in try_pop_front loop
-
- One such example is popping the last entry from an object. The next
- object will be automatically prefetched. When that object is received,
- we do not want to alert the user that entries are available since
- try_pop_front already indicated more records were available.
-
- Fixes: http://tracker.ceph.com/issues/15755
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3b8d21ac13865791d8fc4c519f47c1f7d6096e76)
-
-commit 82c04c5ad3476805d8c4f7569e1eba41244ad2c7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 6 09:47:01 2016 -0400
-
- librbd: delay processing of next journal entry until flush in-progress
-
- When replaying a journal flush event, do not start processing the next
- journal entry until after the flush is in progress to ensure the barrier
- is correctly guarding against future writes.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5d205ef33cb8b5517f141d46a62947dd583500e0)
-
-commit 9d40896d280f44080623b1d9a0d9aba35ae410c5
-Merge: bc764b6 075ee03
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:31:02 2016 -0700
-
- Merge pull request #8930 from theanalyst/wip-15707-jewel
-
- jewel: multisite: Issues with Deleting Buckets
-
-commit bc764b6af7fb7f5aea6bc5fd8c8f5b7174949a90
-Merge: 8bbe2a9 7029b9c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:30:52 2016 -0700
-
- Merge pull request #9029 from theanalyst/wip-15680
-
- jewel: rgw: radosgw-admin zone set cuts pool names short if name starts with a period
-
-commit 8bbe2a924d9b27582c130f045e1fede29171f159
-Merge: 80beeff 5fdca84
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:30:03 2016 -0700
-
- Merge pull request #9022 from yehudasa/wip-rgw-leak-3-jewel
-
- jewel: rgw: leak fixes
-
-commit 80beeff4b1bf89fba6c36b59ffcec61aa8fc975e
-Merge: b9cb6bd d93fa13
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:29:52 2016 -0700
-
- Merge pull request #9021 from yehudasa/wip-rgw-xstorageurl-fix-jewel
-
- jewel: rgw: fix printing wrong X-Storage-Url in Swift's TempAuth.
-
-commit b9cb6bd73593da4312889c928fba8f02a50b1533
-Merge: ce2f028 f37318a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:29:27 2016 -0700
-
- Merge pull request #9020 from yehudasa/wip-15597-jewel
-
- jewel: rgw: fix issue #15597
-
-commit ce2f028268509361700980d47dabe5429127910f
-Merge: 1cba195 a28fe02
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:29:18 2016 -0700
-
- Merge pull request #9019 from yehudasa/wip-rgw-admin-zonegroup-jewel
-
- jewel: radosgw-admin: add missing --zonegroup-id to usage
-
-commit 1cba1951898e8d21dbfd6b8e354ebaa29f48b720
-Merge: 4ead0f9 1d28aac
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:29:03 2016 -0700
-
- Merge pull request #9018 from yehudasa/wip-15626-jewel
-
- rgw: add AWS4 completion support for RGW_OP_SET_BUCKET_WEBSITE
-
-commit 4ead0f98dccf79f65878384ac0f45b9f3e2ad97c
-Merge: 6f23218 c08e90e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:28:50 2016 -0700
-
- Merge pull request #9017 from yehudasa/wip-15625-jewel
-
- jewel: rgw: segfault at RGWAsyncGetSystemObj
-
-commit 6f23218bbcee8190acfdf0ae7b76e6e742015d91
-Merge: 2650806 e69bfa1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:28:37 2016 -0700
-
- Merge pull request #9016 from yehudasa/wip-rgw-admin-modify-jewel
-
- jewel: radosgw-admin: update usage for zone[group] modify
-
-commit 26508062cbb13ba28252735449784dd4b63175af
-Merge: fdf8dcb 11d599c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 08:27:56 2016 -0700
-
- Merge pull request #9015 from yehudasa/wip-rgw-zonegroup-remove-jewel
-
- jewel: radosgw-admin: zonegroup remove command
-
-commit f18b14b00fd3b8fbf3007f9eeb9424bbaf5ee14a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 9 11:22:48 2016 -0400
-
- journal: incorrectly computed object offset within set
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f3372a1bcf81fcfd75e7ef5901dbcdc1daa062a3)
-
-commit 466b7fe3d5cd6da8de993169da4c0e4c0990e703
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Fri Apr 22 09:45:30 2016 +0800
-
- tools/crushtool: add straw2 support for help message
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 6448ea283b4e1519682ecb29f18fbb767752d496)
-
-commit d6692ed70aebc5387997660e9e2b025e96eff96f
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Apr 20 16:23:55 2016 -0400
-
- install-deps: remove distribute requirement
-
- Because it was meant for Ubuntu 12.04 and it is installing directly
- from PyPI on newer releases that aren't being built for 12.04
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit 64f14d43a829f998b9a2ad5f3d87095560914e2a)
-
-commit 3011edab65e78156346ff7de655707619589bd7a
-Author: Alfredo Deza <adeza@redhat.com>
-Date: Wed Apr 20 15:48:19 2016 -0400
-
- tools: remove installation for distribute. It is no longer maintained and breaks builds
-
- Signed-off-by: Alfredo Deza <adeza@redhat.com>
- (cherry picked from commit d02bd9cb70479b7373c5b65e42e9c57f8eae55f1)
-
-commit 45a1f01aa4baa1913c335efb2f8b3941f3c0f791
-Author: Alexandre Derumier <aderumier@odiso.com>
-Date: Fri Apr 29 03:30:05 2016 +0200
-
- set 128MB tcmalloc cache size by bytes
-
- (cherry picked from commit d1d144c03bc9050931d86d635a16363bd2b73fd0)
-
-commit bb1aeb7c7bb296d9264f051519d100ecf1f50f1d
-Author: Alexandre Derumier <aderumier@odiso.com>
-Date: Thu Apr 28 22:55:37 2016 +0200
-
- etc/default/ceph: set 128MB tcmalloc cache size
-
- Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
- (cherry picked from commit 9decbd1026c6ab0474c73a26a9c84c24557beb8a)
-
-commit 617004ef26b6c97621a85a44b78cc7b0708fe161
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 10 08:33:03 2016 -0400
-
- test: update rbd integration cram test to remove format 1 warning
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 098038fad47b181a9ddd11767397082b05405be5)
-
-commit 7029b9c3b0c02c9f20f6079243521458d28b2ab4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Apr 25 15:09:47 2016 -0700
-
- rgw: fix suffix in RGWZoneParams::fix_pool_names()
-
- Fixes: http://tracker.ceph.com/issues/15598
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6f6b0c925994b0369eda390a6b3fd20005e70c9b)
-
-commit f37318af823f76ba7bf05e09da83141b569bf579
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 9 14:23:03 2016 -0700
-
- rgw: code cleanup
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d53ffbfe65611425b08af71e0d24bfe2a0076f1e)
-
-commit a8b800b903f0f1144efe0cf3568b02b3e200c3b2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 26 11:31:43 2016 -0700
-
- rgw: upgrade default zonegroup and set correct zone[group] id
-
- Fixes: http://tracker.ceph.com/issues/15597
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 27806c71922eef2f4cde360d7ba40dee9d5bd4bd)
-
-commit 5fdca846aaea9afd16828d33ccc279c4dcdbcd4c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 5 10:57:05 2016 -0700
-
- rgw: RGWHTTPClient requests can unregister themselves early
-
- No need to wait for req_state to complete anymore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 91f61d68bf5fc39152d75fbc633f088e17d53d9e)
-
- Conflicts:
- src/rgw/rgw_http_client.cc
-
-commit 5609eb1bae0fc55b24a3025621597590f30aaad4
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 4 18:08:38 2016 -0700
-
- rgw: move around sync_env.init()
-
- call sync_env.init() even if we're initalized in RGWRemoteDataLog::init()
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 3d8442effc1c175e0b7c5064ed41bc642f6cdcb0)
-
-commit faf6b2d25e89b7a84ed262c08b0a858dbf4199da
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 12:01:55 2016 -0700
-
- rgw: rados crs, explicit cleanup
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1c876eb3873692042c0af3644f8ee3ad15ffdbf5)
-
-commit b55514c390b22605fabdf3a8e5011415f57e6da8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 12:00:46 2016 -0700
-
- rgw: RGWHTTPManager, avoid referring to req_data->client when completing
-
- this is past calling req_data->finish(), client can be destroyed by now
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 7ada4df124a71eae413e7dec0e25264a8deffcad)
-
-commit 2d0cd8a08bb26f519d2b9b59bfe54f014cc36a1f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 11:59:11 2016 -0700
-
- rgw: civetweb_callback() refer to store inside lock
-
- pe->store might change when reconfiguring
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2ca38dab071c7d20a224a4e1dacfd68548fe52dd)
-
-commit 2f65b313d08a5c9dfde220353eaa54204531b1ee
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 10:03:14 2016 -0700
-
- rgw: RGWPeriodPusher, stop http manager explicitly
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 98433e589f2a8b519726ed23b1565c5eb331c68e)
-
-commit e5312b10aaa000d942468bf51d2164c689add279
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 10:02:02 2016 -0700
-
- rgw: RGWHTTPManager, can call stop() more than once
-
- destructor calls stop(), but it can be also called explicitly, if caller
- wants to ensure requests are not being handled anymore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit bdce81a2ae00f154420386e107a104cbf100d96d)
-
-commit cbea993562b03f75ceb0bdb7c02d72e5b51ae0fa
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 10:01:33 2016 -0700
-
- rgw: RGWReadRESTResourceCR, fix refcounting
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d1ec31def71505dc95139fbdd3b49c92fec1d296)
-
-commit 93a65f3306e21c1bc34f5a95d85deeba746adb62
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 3 09:59:47 2016 -0700
-
- rgw: RGWReadRemoteDataLogShardCR fix destructor
-
- was missing destructor, constructor was broken
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 95162a4c1bf61f7329e363b7efd5686f7e1025f0)
-
-commit 2de16690b6a404a365af5d9f526de044873f9729
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 2 18:13:17 2016 -0700
-
- rgw: RGWDataSyncStatusManager, cleanup if failing init
-
- init can be called more than once, ended up with leaking some resources
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 14cd44e0847fd914068f48dd0208ce7c1fe4eecb)
-
-commit 57266e6b78851f8e6167f15ad8dbf7195d561371
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Apr 29 13:04:13 2016 -0700
-
- rgw: rest crs, explicitly call cleanup
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a3a3f4f5883f3fc2bf47a7ebfa538206b7ab51d9)
-
-commit 6b86332ca3ee35eb522cbf88408b7fd5f3070772
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Apr 28 17:03:21 2016 -0700
-
- rgw: more leaks fixes
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit cb797d4fd754b4a33eb34c249da3aabc65a7aba3)
-
-commit 0fb48546a9fe6eb497833a6566353229e0923d3f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 27 16:39:36 2016 -0700
-
- rgw: drop a reference to http op
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4442d1c19acfc28c2dd4a011365ebebe08750963)
-
-commit d93fa132bba597e71c4dd483663d2069e7117bf1
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sun Apr 24 17:41:55 2016 +0200
-
- rgw: fix printing wrong X-Storage-Url in Swift's TempAuth.
-
- If the option "rgw_swift_account_in_url" is being set to true,
- both user and subuser IDs will be present in the X-Storage-Url
- header generated by the implementation of Swift API's TempAuth.
- This patch rectifies this behavior and makes that only the user
- identifier will be placed there.
-
- Fixes: http://tracker.ceph.com/issues/15667
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 88f4c67d822388d2038454a25ead7e9a11f404b5)
-
-commit a28fe02c933e2ec7ea969a974f961769052e9d38
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Apr 26 15:20:45 2016 -0400
-
- radosgw-admin: add missing --zonegroup-id to usage
-
- also clarified that --rgw-zone takes the zone by name
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- Reported-by: John Wilkins <jowilkin@redhat.com>
- (cherry picked from commit 97fad754565b262529073e1b9f8d1799bfdfe0de)
-
-commit c08e90ea20b8ed96c7fe8638f725cf5abefc6783
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Apr 27 15:09:55 2016 -0700
-
- rgw: don't allow any concurrent sync requests on the same key
-
- We used to allow concurrent requests, as long as these had different op,
- which wasn't correct.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit edea6d58dd25995bcc1ed4fc5be6f72ce4a6835a)
-
-commit 6c61341697b99db34466c9e7e90aa7867048d651
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 26 15:59:33 2016 -0700
-
- rgw: collect children after waiting for them
-
- Otherwise we're going to busy loop there.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 806fb85d18653910863ba6b8cb56b8db1a0fa3d2)
-
-commit 4a5f33dd975eb44f908b8a90a7ad2e4beb17b354
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Apr 26 15:29:41 2016 -0700
-
- rgw: don't pass object context into async coroutines
-
- Fixes: http://tracker.ceph.com/issues/15625
-
- The async read data/attrs coroutines may outlive the callers. Instead
- of introducing a complicated refcounting scheme, just don't pass it in.
- Anyway, it was not thread safe, and the benefit of using it is not
- clear.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b225d1758057efc30721aad25447d54fa36e4cb2)
-
-commit 1d12f82a24f78769bcebb32cb379445e04f35e46
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Apr 21 17:24:16 2016 -0700
-
- rgw: check for status >= 0
-
- Fixes: #15565
-
- check only verified that status was > 0, so we ended not updating mtime for
- the target object. This resulted in a continuous sync of objects.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 255f19d9ef964536f2db17f70749f489330262a6)
-
-commit a288a054c18fedda9ac3230d392f5a41a140ca9a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Apr 22 14:23:22 2016 -0700
-
- rgw: don't try to delete object if does not exist
-
- If we know that the object does not exist, no need to remove it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 8d59a30d56b5f197a293f7fba6ebb1a630a33a05)
-
-commit 308b9f54e9fa07d071335bb2d953a50a5095c464
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Apr 22 11:55:28 2016 -0700
-
- rgw, cls/rgw: store removed object mtime in bi log
-
- Store the mtime of the object that was removed in the bucket index log.
- This will be used in data sync.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 80d64049937e1930ea8273fdad76a51493a5e14a)
-
-commit 1d28aac642d940bb1c63733406999a7b027e05f2
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Wed Apr 27 20:28:08 2016 +0200
-
- rgw: add AWS4 completion support for RGW_OP_SET_BUCKET_WEBSITE
-
- Fixes: http://tracker.ceph.com/issues/15626
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 05373354e4725c3fc675df652fbf97da26160bcb)
-
-commit e69bfa14e184716c4ab6bf01746edf5c9663a8e1
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Apr 27 18:06:45 2016 -0400
-
- radosgw-admin: update usage for zone[group] modify
-
- the help strings indicated that only --master could be changed
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 410d432d11541a29c3fd4608a070cecf8dc2766e)
-
-commit 11d599cda659a42ddde43f34307c5e3553596c54
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri May 6 14:26:46 2016 -0400
-
- test/rgw: add test_zonegroup_remove
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e2b27c7266f0ace372dbf94e062598fd7a575795)
-
-commit 928ccf4952052ab19044de1a8f20246075d54832
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri May 6 14:26:23 2016 -0400
-
- test/rgw: index zones by name instead of insertion order
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 6327ade12bf0255c3b35bd6407f1dd2bcc6936fa)
-
-commit 5edacdccc61d565a0e91af452f9297d559a474e4
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon May 2 11:38:24 2016 -0400
-
- radosgw-admin: add missing 'zonegroup remove'
-
- Fixes: http://tracker.ceph.com/issues/15684
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit db0fa48ed5958d37928f893acd44cd66b6b9b990)
-
-commit 6b1d9ebb80478c1dfe0e974377bd4fb070a5d417
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon May 2 11:36:58 2016 -0400
-
- rgw: RGWZoneGroup::remove_zone() takes zone id
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 3a451511fb38a5f1cd83ca3610c91141e7279f63)
-
-commit 0e95ee4bd16f4d54d1da476b51fd0fd0829d69ed
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 3 10:15:08 2016 -0400
-
- librbd: unlock image if journal error encountered during lock
-
- Explicitly unlock to prevent a client from accidentally blacklisting
- itself when retrying the lock.
-
- Fixes: http://tracker.ceph.com/issues/15709
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a11f5e8e55fc448ed60616cbf66a3ea7db2247b9)
-
-commit fdf8dcb772d8313a3a801bf265f022505dba934d
-Merge: 030883f 0de6345
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 9 13:54:58 2016 -0400
-
- Merge pull request #9006 from athanatos/wip-15655-jewel
-
- OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c1960debf5c8696f365cd670dedeea01d2a3b9a8
-Author: cy.l@inwinstack.com <cy.l@inwinstack.com>
-Date: Sat Apr 30 15:22:29 2016 +0800
-
- rbd-nbd: Fix aio_callback error handling
-
- Change aio_callback return code handling for NBD_CMD_READ command.
-
- Tracker:
- http://tracker.ceph.com/issues/15604
-
- Signed-off-by: Chang-Yi Lee <cy.l@inwinstack.com>
- (cherry picked from commit ee211295441b126a995c07820176cfc966ab61c5)
-
-commit 4e87c1cd7e923f4254ce43e92e1cce4329fd86dd
-Author: cy.l@inwinstack.com <cy.l@inwinstack.com>
-Date: Wed Apr 27 11:00:25 2016 +0800
-
- Fix RBD-NBD aio_callback error handling
-
- Tracker-Id: #15604
-
- Signed-off-by: Chang-Yi Lee <cy.l@inwinstack.com>
- (cherry picked from commit f8f6c1dc865b7ed642fec3f416e5eca5e91523d0)
-
-commit 28ac027f6f86635d320f0f5e25582452011d9bed
-Author: YongQiang <he.yongqiang@h3c.com>
-Date: Fri Apr 22 11:20:31 2016 -0400
-
- rbd:make a distinction of help message between ''rbd snap rollback" and "rbd snap revert"
-
- Fixes: https://tracker.ceph.com/issues/15521
-
- Signed-off-by: Yongqiang He <he.yongqiang@h3c.com>
- (cherry picked from commit 1bf26509c6efd06a8facc0e45ab42255592ca74d)
-
-commit 039554d7ad8cfd82bcb6d4c6564f6dd46320a24f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 4 13:36:06 2016 -0400
-
- librbd: reduce log level for image format 1 warning
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c87f383b65ccc2e91645394f1c75de1c2d52e1e1)
-
-commit 030883f41d3d2d8f297b3d3f6e7c7fa5a06ea4c0
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Tue Apr 26 15:12:17 2016 +0800
-
- osdc/Objecter: fix race condition for sortbitwise flag detection
-
- During list_objects/list_nobjects(), we are checking osdmap's
- sortbitwise flag setting without holding rwlock in hand, which
- is a potential race condition.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 7fb6be706be2454cc2a831df29808997f0aa5ab3)
-
-commit 82838e340e0ab7c593618f5807ea5868ecd6bc48
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 15:06:51 2016 -0400
-
- librbd: default clone operation to image format 2
-
- Image format 1 doesn't support clones, so unless the user
- overrode the setting, default to format 2.
-
- Fixes: http://tracker.ceph.com/issues/15685
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f24c70f54343aa6698af8ac1f0774282b0659968)
-
-commit ca13a9554d8a9d97428c2096b5a2ae8e25d08a9e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 2 14:51:31 2016 -0400
-
- librbd: add rbd_image_options_is_set helper method to API
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2633b045e0b57827cc10c2e7707bd5a5e344e59a)
-
-commit e6aa4533feb9c8e6d15c820f54dd719c378dd26e
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Apr 29 20:12:20 2016 +0100
-
- mds: fix upgrades with replay daemons in map
-
- In the new world, a standby replay daemon which
- is actively replaying has its rank set. In the old
- world it did not: map this during the upgrade/downgrade
- paths in decode/encode.
-
- Fixes: http://tracker.ceph.com/issues/15591
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit d94115aa2a4bd92c56552e9fd11205d391a1c673)
-
-commit 6c1b792b7b2fba729f21b0f10ec70d14b830ffa9
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 30 12:06:27 2016 +0100
-
- doc: add cephfs daemon management docs
-
- Principally to tell people how to configure
- standby, but more generally as a place to define
- our terms for GIDs etc.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 97dd6897efaa14d3f8859a791949f9d246769620)
-
-commit bf44c6d434a41b90c0739e493a022cb3d3df5554
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 30 12:05:43 2016 +0100
-
- mds: omit fscid in single-filesystem status output
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit ec8f3db3e5c26b60b9333e86453e1b17324a8cfa)
-
-commit be5274c3f47ecb0dca0facca37d4a90c68b37027
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Mar 24 13:23:26 2016 +0000
-
- mds: simplify standby/standby-replay logic
-
- This used to use an arcane set of constants
- in standby_for_rank, combined with daemons sometimes
- sending requests to enter state STANDBY_REPLAY.
-
- Simplify this so that there is only one place we
- put daemons into standby replay, and that is
- in tick->maybe_promote_staandby.
-
- There is a behavioural change in here, which is
- that we used to sometimes promote standbys to
- be standby-replay, even if they didn't have
- "standby replay = true", when they did have
- a standby_for_rank or standby_for_name set.
- I'm calling that a bug, and making it so that
- daemons will only go into standby-replay if
- "standby replay = true" is set.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 2a2a56b2d0e9e4224cae27f80d990b787e209bed)
-
-commit ae3ce5b8741eaf65d03aeb7b74925a75e5ef2598
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Mar 24 13:13:55 2016 +0000
-
- messages: add MMDSBeacon::standby_replay
-
- So that daemons can explicitly say that they
- want to be standby replay, instead of using
- magic standby_for_rank values.
-
- Because in some cases daemons would indicate this
- with a beacon requesting STANDBY_REPLAY state, we
- also munge these during decode to be normal STANDBY
- requests with standby_replay=true.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit cdf8a29f81475a000824ce8942f02d9d570ec3bb)
-
-commit 02e3edd93c0f4ef6e0d11df1f35187f74c7ea2ff
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Mar 22 17:44:22 2016 +0000
-
- mds: remove ONESHOT_REPLAY mode
-
- This predated cephfs-journal-tool. Don't bother
- with any backwards-compatibility mechanisms here, as
- it was a seriously niche undocumented thing.
-
- On the off chance that someone ran an old ceph-mds against
- a newer ceph-mon with oneshot enabled, it shouldn't break
- anything, it just won't do what they want.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit edfda9c6b0a0c8b75ebff5f06017aa475339b1fd)
-
-commit 52ca195221ffa86b778346e847aeec817329c651
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Apr 7 12:53:00 2016 +0100
-
- mds: remove stale comments
-
- A little bit of detritus from the MDS->MDSRank refactor.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit e9b58e7ff97646e557c5b3e2c86a067d2d136149)
-
-commit c1279d8ff8716a54622bf98bd29ce40faa2bf41d
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Apr 7 12:37:08 2016 +0100
-
- mds: remove inc array from mdsmap
-
- Instead, use the MDSMap epochs to provide the `inc` that
- we populate into mds_info_t for use by the daemons.
-
- It is not necessary to respect the current value of inc
- in old maps, because the per-rank counters were necessarily
- lower numbers than the overall map epoch (incrementing
- the counters always corresponded to a map change).
-
- Fixes: http://tracker.ceph.com/issues/15399
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 30a375ebf814245fbbb5155fd39d8ff673f0a32a)
-
-commit 9d5162fe102301bc94065f99a20b3067395dde2a
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Sep 24 14:03:58 2015 +0100
-
- test/mds: add test for symbols in paths
-
- Especially, hyphens.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 4e9327f64e5965c57c0eeea397060dc2ab43cfbf)
-
-commit af3a4e4af36b5159721b634e216edcab9a171155
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Apr 12 02:49:32 2016 +0100
-
- mds: fix auth caps with hyphen in path
-
- Quirk of the boost spirit char() fn, hyphens
- are treated as range delimiters unless they're
- the last character in the set.
-
- Fixes: #15465
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit f82fa5f59a80851581573553be07e8f1620ee346)
-
-commit 075ee0310888d012c56c494291b873be47393e47
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Tue Apr 19 15:20:53 2016 +0200
-
- rgw_op: pass delete bucket op to master zone first
-
- Basically first ask the master to process a delete bucket request before
- we process it in the zone locally, otherwise we reach a situation where
- we drop the bucket locally and master will still maintain an index
-
- Fixes: http://tracker.ceph.com/issues/15540
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit da6b44a6e47399493adae53ad3c36a029f1e2a23)
-
-commit 1527b56a888a65fa28223cd9c9cdb06d1575973c
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Tue Apr 19 15:20:07 2016 +0200
-
- rgw: add errno entry for -ENOTEMPTY
-
- currently if master returns an -ENOTEMTPY, we return a -EIO as we dont
- have an entry for this
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit 40c3bfef8cc3bce7d15fbb0e135c1a909ee59368)
-
-commit 791eba81a5467dd5de4f1680ed0deb647eb3fb8b
-Author: Alexandre Derumier <aderumier@odiso.com>
-Date: Thu Apr 28 22:48:52 2016 +0200
-
- fix deb package /etc/default/ceph location
-
- commit 7384a14f243519547a61534d22e21e6069aae016 have introduce
- the /etc/default/ceph file at a wrong location : /etc/default/ceph/ceph
-
- (cherry picked from commit 13804fafd4c33068d8ed6d0480b594daec0f9341)
-
-commit d9851351aeb6d45a2df1c107b23e77c992926d0a
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Tue Apr 26 11:13:32 2016 +0800
-
- mon/OSDMonitor: improve reweight_by_utilization() logic
-
- By calling reweight_by_utilization() method, we are aiming at an evener result
- of utilization among all osds. To achieve this, we shall decrease weights of
- osds which are currently overloaded, and try to increase weights of osds which
- are currently underloaded when it is possible.
- However, we can't do this all at a time in order to avoid a massive pg migrations
- between osds. Thus we introduce a max_osds limit to smooth the progress.
-
- The problem here is that we have sorted the utilization of all osds in a descending
- manner and we always try to decrease the weights of the most overloaded osds
- since they are most likely to encounter a nearfull/full transition soon, but
- we won't increase the weights from the most underloaded(least utilized by contrast)
- at the same time, which I think is not quite reasonable.
-
- Actually, the best thing would probably be to iterate over teh low and high osds
- in parallel, and do the ones that are furthest from the average first.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit e7a32534ebc9e27f955ff2d7a8d1db511383301e)
-
-commit b0543fdfdebc6766fe927b4cc34a4369e7f86544
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Mon Apr 25 15:43:03 2016 +0800
-
- mon/OSDMonitor: avoid potential expensive grace calculation
-
- The grace calculation during check_failure() is now very complicated
- and time-consuming. Therefore we shall skip this when it is possible.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 3557903d5d57642179b2ae137bedc389974b1956)
-
-commit 53686dfac0622a981374d448ce8229eb3984e5c2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 29 22:01:56 2016 -0400
-
- mon/OSDMonitor: max_osds must be > 0 for reweight-by-*
-
- Include a few test cases.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 84bd0dce18f6dd0c35d7e6cfee91ce8c5a0f4db7)
-
-commit ec416556e516b60ab490c424a4e45fa9ff8f8fd0
-Merge: 442c31b f4d63af
-Author: John Spray <jspray@redhat.com>
-Date: Tue May 3 08:05:23 2016 -0500
-
- Merge pull request #8787 from xiaoxichen/wip-15631
-
- jewel: CephFSVolumeClient should isolate volumes by RADOS namespace
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 0de63455cbf662435ff57a35b9d98187091dcec7 (refs/remotes/gh/wip-sam-testing-jewel)
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Apr 28 13:47:48 2016 -0700
-
- OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1
-
- Fixes: http://tracker.ceph.com/issues/15655
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c121bc51a5a877a49094cfbd3bd16af1f3ae5090)
-
-commit 63738d4d154d983d98021a09daa24607df64b979
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 15:53:59 2016 -0400
-
- rbd: disk usage now includes all snapshots by default
-
- Added a new "--from-snap" optional to restrict the calculation to
- specific subsets of snapshots and the HEAD revision.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1ccdcb5b6c1cfd176a86df4f115a88accc81b4d0)
-
-commit 895c975651b722832befeb829a43acc55823740b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 12:48:59 2016 -0400
-
- librbd: block RPC requests while updating features
-
- Disabling the journal and object map require acquiring the exclusive
- lock locally. We don't want to start executing long-running ops
- for this quick process.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit db7aaff0f6d7a57e2b36d22b609f915f9b2b3893)
-
-commit 1f0056a427cd46793934c59c49aa225da2237628
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 12:43:24 2016 -0400
-
- librbd: return -ESHUTDOWN when a refresh is requested on a closed image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ed132a1eb10e6b2eb4bc465658eb0379daca3d67)
-
-commit 6da1a84f16f4478ec17bdd4f50d9b0a02178c444
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 12:42:49 2016 -0400
-
- librbd: synchronous block_writes should return possible error result
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 88e76cb3c9a74b4718ad39c827f2194666f5be2a)
-
-commit 04ef40e7652ff05146289a6e9e15ce2290a1ee32
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 11:46:20 2016 -0400
-
- librbd: refresh image before executing maint op
-
- If a maint op is interrupted and restarted, it's possible that the
- image will need to be refreshed.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9cf6821bd9f58c181720a5c8156cec5ab33d35d4)
-
-commit 64cb6455f384f5ecc20abcf4d4ec6596569ac4c0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 11:10:25 2016 -0400
-
- librbd: reduce log level when lock owner not detected
-
- This can happen under normal operating conditions and the
- lock request is automatically retried.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5a4893b7a7e50cc399696e1d0cb4d4f8785e723d)
-
-commit 49cfb0e48014610d04233a6c7549bbc3756dd3f6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Apr 28 10:52:15 2016 -0400
-
- librbd: reduce log level for interrupted maint ops
-
- Fixes: http://tracker.ceph.com/issues/15572
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1617328402345c68bf5d54828da6d687e51ef42b)
-
-commit 32c09015a16ef8dee535d2c81825a2590f7f15e7
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sun Apr 24 19:39:40 2016 +0300
-
- qa/workunits/rbd: test mirror status in pool directory
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit f15cd51a1ddbd4079a8218bc2446a4bf68f95107)
-
-commit 9a30a89abc5749c37d26d39c175e51259f63caec
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Apr 21 09:52:47 2016 +0300
-
- rbd-mirror: in replay status store number of entries behind master
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e4229d1d4b163f1003e68fef1db63f796393ba23)
-
-commit 15a9131fd2d55191c3082c6692f5e8f714fcff71
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Apr 15 08:42:17 2016 +0300
-
- librbd: API to retrieve image mirroring status
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit a2045d61874f9e418b5b3c3136af4482603c8e7f)
-
-commit 98ca7f3904a9c8ff9a661f153069a8747a51431b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Apr 6 14:57:29 2016 +0300
-
- test: MockJournaler: add get_cached_client method
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 7633407ab584ce8c7777a525554773c2a358ce5f)
-
-commit e57c4d8f0832abcf431029b04da43e043a479d19
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Apr 5 14:42:09 2016 +0300
-
- rbd: CLI to retrieve rbd mirror state for a pool / specific image
-
- Fixes: #15144
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit fe5207278d884464c05d6808245a0c4df03c441c)
-
-commit 6111a25448fda1824ca6b3007fcdece1970674d6
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Apr 5 14:40:50 2016 +0300
-
- rbd-mirror: store replay status in mirroring object
-
- Fixes: #14420
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 52b2fe14cfc932b2aa53ce76a3150ce87ce4d377)
-
-commit f22514201c3b49d93593fad27360deb7b715493d
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Apr 5 14:25:11 2016 +0300
-
- test: cls_rbd: methods to store/retrieve mirroring status
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 8aefad59813489cee112f46b3fe10331bb039b57)
-
-commit 4a3f0d23ba4b96a28de661e219dcb52165bbbeac
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Apr 5 14:24:07 2016 +0300
-
- cls::rbd:: methods to store/retrieve mirroring status
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 17dd40df4f4201cf0c0c6d58b1728177c5ee726b)
-
-commit 62c60144311518e7e7947791a17608ed1765f971
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Apr 1 08:27:03 2016 +0300
-
- objclass: add method to list watchers
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 44a31d2b770ef016271f9285447c601921b9c838)
-
-commit 442c31bcf73899767c7fa198427712bbdf767067
-Merge: 6e5091e d302617
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon May 2 08:35:09 2016 +0200
-
- Merge pull request #8843 from SUSE/wip-msd-typo-fix-jewel
-
- systemd: fix typo in preset file
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 125aab8dc4300dc9c67b2d4ca219cfbd60ab0924
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 27 15:56:11 2016 -0400
-
- librbd: propagate any image refresh errors back to caller
-
- Previously, the saved error code was only propagated when an image
- flush was required.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 105ef8a24aa6ac8719f68c5a9366129ddb41ee88)
-
-commit 5fe4beac0ed68ebf33fa69ba7a3082d2072bb9ce
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 27 15:45:25 2016 -0400
-
- librbd: avoid second close attempt of invalid parent image
-
- Fixes: http://tracker.ceph.com/issues/15574
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e91e7f8d9ce10f0d19c48facfb6318d6b49798e8)
-
-commit af1c0bce9184c55aa88b4082db9302239009af36
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 27 15:22:59 2016 -0400
-
- rbd-mirror: interrupting image replay startup can cause crash
-
- Properly shut down the journaler if a shut down has been requested
- while start up is in-progress.
-
- Fixes: http://tracker.ceph.com/issues/15630
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3a71052a5b14af34ed81f6ee77f862f576a7a5cc)
-
-commit 9b2c17392a2d9543f05d0cb8486183edf84eb2c3
-Author: runsisi <runsisi@zte.com.cn>
-Date: Thu Apr 28 09:05:33 2016 +0800
-
- librbd: fix potential assertion for object map invalidation
-
- if update_flags fails we should not go any further, or the async request
- will be removed from m_image_ctx.async_requests twice
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit dd0eb719a50e9fb24eca5a840c2e8adb53be41b2)
-
-commit 6e5091e454018e42ebe79bc4ec70cd24bfaeb36d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 30 16:21:13 2016 +0200
-
- systemd: fix typo in preset file
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 80be4a8cbf1d42232ff61494d035e7abd90c2c14)
-
-commit d3026174f87ede746a0ab0aa96b0efbf5e77b161
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 30 16:21:13 2016 +0200
-
- systemd: fix typo in preset file
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 80be4a8cbf1d42232ff61494d035e7abd90c2c14)
-
-commit 9cdad1f348a67e3f4daec617210340b14a2dd49a
-Merge: 96b3726 37ccacf
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Apr 29 08:22:01 2016 +0200
-
- Merge pull request #8801 from SUSE/wip-15633-jewel
-
- jewel: ceph-{mds,mon,osd} packages need scriptlets with systemd code
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 8cae07c10b9cb62af87d494724586c945f181127
-Author: runsisi <runsisi@zte.com.cn>
-Date: Thu Apr 21 14:48:55 2016 +0800
-
- librbd: fix potential double free of SetSnapRequest instance
-
- if image feature EXCLUSIVE_LOCK is not enabled we should not try to
- initialize the exclusive lock, or we may end with two async Contexts
- to finish the same SetSnapRequest instance
-
- Fixes: http://tracker.ceph.com/issues/15571
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 0a6eaac12fe29762c3dd29068f9427840cfea100)
-
-commit 37ccacf7d1ce57291d6cbadd416fb96aed7db36a
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed Apr 27 18:10:51 2016 +0200
-
- rpm: Add rpm scripts for ceph-rbd-mirror
-
- We are currently missing the systemd scripts for the new ceph-rbd-mirror
- daemons. This patch introduces them.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 14652f32165f72efde569a939179fc26584ab155)
-
-commit c729bdd4bcb974081899c65934d3fdb9e0e96316
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed Apr 27 18:00:08 2016 +0200
-
- rpm: Start all the targets in %post
-
- We need to have the sub-targets active for the ceph.target to be able
- to propagate its calls to the services. If the sub-target is inactive,
- the main target won't propagate the stop/restart calls.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 73f457986753b504fd088c1fa064608aa9d340c9)
-
-commit c72f0bc3d4fb9a3f5abfefcf8d2775721d95b33a
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 19 14:48:41 2016 +0200
-
- rpm: implement scriptlets for the post-split daemon packages
-
- This patch gives each of the ceph-{mds,mon,osd,radosgw} packages its own
- %post, %preun, and %postun scriptlets dealing with the package's unit files.
-
- The scriptlets of ceph-base are adapted to handle the ceph.target unit file
- only.
-
- The scriptlets of ceph-mon handle ceph-create-keys services in addition to ceph-mon.
-
- The scriptlets of ceph-osd handle ceph-disk services in addition to ceph-osd.
-
- Fixes: http://tracker.ceph.com/issues/14941
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 644aba9270714e5e231ac7d7e3437477837531eb)
-
-commit 81f407337da18b5b555c6737e394a0e054d7c7da
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 19 14:51:01 2016 +0200
-
- systemd: enable all the ceph .target services by default
-
- Some distros, like Fedora and openSUSE, have a policy that all services are
- disabled by default.
-
- This patch changes that default for the ceph.target and
- ceph-{mds,mon,osd,radosgw}.target services.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 53b1a6799c2ce08acc8382e4aa996d1bde700316)
-
-commit f4d63af533b22f740d809272e2e47ebc9d8d6845
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Wed Apr 6 22:50:05 2016 +0800
-
- python_cephfs: rule out empty/None volume_id
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit 73368069dd466cdbde1ebeae97771d603ce431f5)
-
-commit b609017a52e3140e9ff6314b8d312a409af52a57
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Wed Apr 6 22:45:02 2016 +0800
-
- python-cephfs: use rados namespace for data isolation.
-
- As cephfs dir layout supports rados namespace in jewel, it would be
- good to use rados namespace instead of pool, since it is free,
- we always enforce namespace isolation for volumes.
-
- The meaning of "data_isolated" flag changed a bit, it's no longer used
- for security isolation, referring to physical isolation
- (i.e. potentially using different OSDs).
-
- Also, (de)authorize based on namespace.
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit 0e1d013ea690c18f7fa6e2a19500f854a9949091)
-
-commit 96b3726d74cb7bbcacdd22e0ab0fe233e4c4d829
-Author: Tamil Muthamizhan <tmuthamizhan@MacBook-Air.local>
-Date: Tue Apr 26 17:34:52 2016 -0700
-
- Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
-
- s/ceph-deploy/ceph-tests, hence removing ceph-deploy folder
-
-commit 77fdbf1747d73fd809607efd3325cc38b2fbafc0
-Author: Tamil Muthamizhan <tamil@magna002.ceph.redhat.com>
-Date: Fri Apr 22 18:25:46 2016 -0400
-
- Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
-
- renamed the workunit and test to reflect reality and for better clarity
-
- (cherry picked from commit 0fd358b877c611bf67c94b4a2dacbe65e17deae9)
-
-commit 1fa533e83d8e541315aa4925a6192ab0401b688b
-Author: Alexandre Derumier <aderumier@odiso.com>
-Date: Sun Apr 24 09:55:35 2016 +0200
-
- fix ceph init script
-
- commit 65963739cd6815b8008282c8f64cd64365662e60 have introduce a bug
-
- test variables need to be quoted, or -n always return true, even if variables don't exist
-
- (cherry picked from commit b581dd56bea09520c154611ecea91ebe399058d3)
-
-commit 7acbefadace28412f395bb98aec5651d5ec70666
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Apr 18 18:27:52 2016 -0700
-
- test: Fix ceph-objectstore-tool test to run manually from src non-cmake
-
- Fix init-ceph to handle it when CEPH_* values set
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5e8e03b4d030db57c93047551d5b92db0b604063)
-
-commit af4b31cb9770d1710d038c557d547373f58a89a8
-Author: James Page <james.page@ubuntu.com>
-Date: Tue Apr 5 16:58:58 2016 +0100
-
- Drop --setuser/--setgroup from osd prestart
-
- These are not supported by /usr/lib/ceph/ceph-osd-prestart.sh,
- resulting in warnings:
-
- ceph-osd-prestart.sh[23367]: getopt: unrecognized option '--setuser'
- ceph-osd-prestart.sh[23367]: getopt: unrecognized option '--setgroup'
-
- --setuser and --setgroup are only needed for the ceph-osd process.
-
- Signed-off-by: James Page <james.page@ubuntu.com>
- (cherry picked from commit 74977f78840fe95b67788f3aa135ac69a2353c43)
-
-commit 8a86d08e38a8b68ba5e04b2cc4f59a2983481ee7
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Apr 22 11:19:30 2016 +0200
-
- osd: fix backwards min/max osd utilization
-
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 7529851f2a186501664461916f785da8456ad612)
diff --git a/src/ceph/doc/changelog/v10.2.2.txt b/src/ceph/doc/changelog/v10.2.2.txt
deleted file mode 100644
index cda6954..0000000
--- a/src/ceph/doc/changelog/v10.2.2.txt
+++ /dev/null
@@ -1,3002 +0,0 @@
-commit 45107e21c568dd033c2f0a3107dec8f0b0e58374 (tag: refs/tags/v10.2.2)
-Author: Jenkins Build Slave User <jenkins-build@trusty-huge--abdffd45-81df-4aa8-a769-e169993c7a0f.localdomain>
-Date: Tue Jun 14 11:43:24 2016 +0000
-
- 10.2.2
-
-commit 008c5af59b045f9b6b8046a4c6d5e915cbe18bb3
-Merge: b733244 dd1ea65
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 14 07:32:44 2016 -0400
-
- Merge pull request #9692 from dillaman/wip-16292
-
- jewel: librbd: remove should ignore mirror errors from older OSDs
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit dd1ea65c2c8ae966c1f07ce78f0d1f16c9a315d9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 15:29:43 2016 -0400
-
- librbd: remove should ignore mirror errors from older OSDs
-
- Fixes: http://tracker.ceph.com/issues/16268
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5a97a9b7ef238c4ceb16225a0b937f9a0cdbb2b6)
-
-commit b733244b3dc46e11689ddfb46187877c01347d3a
-Merge: 1feddef 2656881
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 14 07:24:28 2016 -0400
-
- Merge pull request #9691 from dillaman/wip-16260-jewel
-
- jewel: librbd: do not shut down exclusive lock while acquiring'
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1feddef07c182d5a50b3aa3c4a7ff87f21dbd3e1
-Merge: ffb64cd a38caf9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 14 06:57:38 2016 -0400
-
- Merge pull request #9690 from dillaman/wip-16290
-
- jewel: rbd-mirror: FAILED assert(!m_status_watcher)
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 26568819e331ef3adec6667a801f07058d94845b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 20:20:33 2016 -0400
-
- librbd: track in-flight flush events for journaling
-
- The tracking for flush events was accidentally dropped. This
- can result in the journal being closed too early since it
- might miss in-flight flush ops.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a1ea1edce9332fa1730625629e3b4e16f02caaf4)
-
-commit a85fbb4e9a9a409738e9f031c20a8e2beb1b514f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 12:00:28 2016 -0400
-
- librbd: do not shut down exclusive lock while acquiring
-
- Fixes: http://tracker.ceph.com/issues/16260
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c5694fc6766fb8e213c4b65d2cd7b9d066b07ff7)
-
-commit a38caf90c98a04d57b81519803271f9d85fb5d56
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sun Jun 12 20:32:45 2016 +0300
-
- rbd-mirror: FAILED assert(!m_status_watcher)
-
- Fixes: http://tracker.ceph.com/issues/16245
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit b8bfc0f2efb44d3eff7a5fd8bca24516c8815d62)
-
-commit ffb64cd0538cee05b4f360fa8334829da268d1b9
-Merge: 271406c edef63d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 14 06:54:51 2016 -0400
-
- Merge pull request #9654 from dillaman/wip-16246
-
- jewel: librbd: recursive lock possible when disabling journaling
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 271406c77a6176057ba73b55a110a193d6872a48
-Merge: b5e344e 0579a48
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 14 06:54:31 2016 -0400
-
- Merge pull request #9673 from dillaman/wip-16265
-
- jewel: rbd-mirror: do not re-use image id from mirror directory if creating image
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit b5e344e1e3670214da803ff6f7eb6e50bf52e46f
-Merge: 1720664 739f343
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 23:37:06 2016 -0400
-
- Merge pull request #9674 from dillaman/wip-16267
-
- jewel: qa/workunits: ensure replay has started before checking position
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 739f343ec880eacd13b935d493b5dbfcc5efa387
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 00:19:37 2016 -0400
-
- qa/workunits: ensure replay has started before checking position
-
- Fixes: http://tracker.ceph.com/issues/16248
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6a68b68e0d2741e6694fd28d31766808ba881815)
-
-commit 0579a483bf7b0f1cc590fb1dbc6c740c17679dac
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 02:09:00 2016 -0400
-
- rbd-mirror: reset local image id when creating new image
-
- Fixes: http://tracker.ceph.com/issues/16253
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1948047acbc129de2982d53e130da1f577af224b)
-
-commit ec809870cc2902d2bdf6543d911e23e71567303c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 02:07:54 2016 -0400
-
- rbd-mirror: handle an attempt to delete a non-mirrored image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 45dda67b3ef3d5dc5abb327fc1f242140f004d90)
-
-commit 6c303007af20a317f02b5caf7d3cb9f2214d2ee5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 13 02:03:29 2016 -0400
-
- cls_rbd: disallow setting an empty mirror image entry to disabling
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7b2f99a97ff64451f3ae72081186dff41c507271)
-
-commit edef63d56bc329638f79ce8017e72810dcd768f1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 21:42:59 2016 -0400
-
- librbd: avoid holding owner_lock waiting for exclusive lock
-
- Fixes: http://tracker.ceph.com/issues/16235
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b96ab805eed49d4bdb494c8919d2e1ee7ad0a7e6)
-
-commit 1720664ddcb32dd300b2bd046ff15ed4916676a4
-Merge: f902309 2eaaf2e
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Jun 13 01:26:53 2016 -0700
-
- Merge pull request #9656 from gregsfortytwo/wip-jewel-16024
-
- Jewel client: fix bugs accidentally disabling readahead
-
-commit f902309bc9c159c0d6a798c0398a95f64bb682ed
-Merge: 89d6545 d61e3dd
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Jun 13 01:22:22 2016 -0700
-
- Merge pull request #9655 from gregsfortytwo/wip-jewel-15508
-
- Jewel mds: order directories by hash and fix simultaneous readdir races
-
-commit d61e3ddf6d99a4b9b72fd769d635bf9b2bffaf0e
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon May 9 22:12:48 2016 +0800
-
- client: fix simultaneous readdirs race
-
- Current readdir code uses list to track the order of the dentries
- in readdir replies. When handling a readdir reply, it pushes the
- resulting dentries to the back of directory's dentry_list. After
- readdir finishes, the dentry_list reflects how MDS sorts dentries.
-
- This method is racy when there are simultaneous readdirs. The fix
- is use vector instead of list to trace how dentries are sorted in
- its parent directory. As long as shared_gen doesn't change, each
- dentry is at fixed position of the vector. So cocurrent readdirs
- do not affect each other.
-
- Fixes: http://tracker.ceph.com/issues/15508
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 9d297c5e98f814b282dadc379ab70dfa678db73e)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit ba9fa11a235dc6c55b3b03e3a98b17316d06cf27
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Apr 25 23:24:46 2016 +0800
-
- client: move dir_{release,ordered}_count into class Inode
-
- We close Inode::dir when it's empty. Once closing the dir, we lose
- track of {release,ordered}_count. This causes direcotry to be wrongly
- marked as complete. (dir is trimmed to empty in the middle of readdir)
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 235fcf68f5d96a4d9d6cc260d12da912fa7ea4a8)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit f5db278c8cba873e580255dea6dba5227d508df7
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Apr 25 17:59:35 2016 +0800
-
- ceph_test_libcephfs: check order of entries in readdir result
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 9b17d145c15a469caa29853312b8dcb0b19f55f0)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 51a75063f59fcb47d3a4d5f06aa51cab83b76616
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Apr 25 15:52:32 2016 +0800
-
- mds: don't reset readdir offset if client supports hash order dentry
-
- Now the ordering of dentries is stable across directory fragmentation.
- There is no need to reset readdir offset if directory get fragmented
- in the middle of readdir.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 98a01af2cd8e01f14ab7be32c31a43571ef8bb87)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 3fe5a09f3e7aa9fc89cd47a261785110c2bf38a2
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Apr 25 15:31:27 2016 +0800
-
- client: using hash value to compose dentry offset
-
- If MDS sorts dentries in dirfrag in hash order, we use hash value to
- compose dentry offset. dentry offset is:
-
- (0xff << 52) | ((24 bits hash) << 28) |
- (the nth entry hash hash collision)
-
- This offset is stable across directory fragmentation.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 680766ec131b95271e320f54dfe6d69ea8d4fbb3)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit a65b3ef30123e5d9d3199cf2f5dafd7d9ab8a755
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Apr 25 10:50:17 2016 +0800
-
- client: record 'offset' for each entry of dir_result_t::buffer
-
- This is preparation for using hash value as dentry 'offset'
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bd6546e5e8bfb4ef8927807492d63d5285534618)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 8361b988441d073b82809dbafd82fba1c23b13be
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon May 9 11:51:36 2016 +0800
-
- client: fix cached readdir after seekdir
-
- Client::seekdir doesn't reset dirp->at_cache_name for a forward seek
- within same frag. So the dentry with name == at_cache_name may not be
- the one prior to the readdir postion.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0e32115bae2f1ac2c59b57852976b0de5587abac)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit cf261257f6ad9b0d51f39af5d26beb15e5759672
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Apr 21 17:31:10 2016 +0800
-
- mds: define end/complete in readdir reply as single u16 flags
-
- so that we can introduce new flags for readdir reply.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 92cfbdf526d1030891da366299b635e589dd5f8e)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 9ce73cdeb6056060b299cf92e4c858d1ab2aef2c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Apr 23 16:03:48 2016 +0800
-
- mds: sort dentries in CDir in hash order
-
- This gives us stable ordering of dentries. (Previously ordering of
- dentries changes after directory gets fragmented)
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit f483224a0bc70b9eb5f62cd6cbb8b97df5b65953)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 288160b7e4bec94238d3b24622b4d16808a273e1
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 22 09:43:54 2016 +0800
-
- client: save readdir result into dir_result_t directly
-
- Current code saves the readdir result into MedaRequest, then updates
- dir_result_t according to MetaRequest. I can't see any reason why
- we need to do this.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit db5d60d1b8d01afd43da09a063f00aa6ab312903)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 75edb5b1c8bcdbc24b4cd6cb811e9c07608f09f5
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 22 09:31:00 2016 +0800
-
- client: don't allocate dir_result_t::buffer dynamically
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit c41ceb9f1425432295a52965de8d4a23b15fe5e5)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 98e36d17d42d7b43720685745348317cab4a847f
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Apr 21 20:53:55 2016 +0800
-
- client: simplify 'offset in frag'
-
- don't distinguish leftmost frag from other frags. always use 2 as
- first entry's offset.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 6572c2a24ea2abec4c7eecef92a292c2cc72c762)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 2eaaf2e524c8b95b1b22b6bd7ba153b52746fd01
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Fri Jun 10 17:33:04 2016 -0400
-
- client: move readahead ref get/put to obj constr
-
- The readahead context was incrementing the file handle reference count but only
- decreasing in finish which is not called if readahead is a no-op.
-
- This fixes a bug caught in testing where readahead was causing inode to become
- disconnected:
-
- 2016-06-10 19:46:48.953018 7f2a4351be80 1 client.4125 dump_inode: DISCONNECTED inode 10000000502 #10000000502 ref 110000000502.head(faked_ino=2307 ref=1 ll_ref=0 cap_refs={1024=0,2048=0,4096=0,8192=0} open={1=0,2=0} mode=100666 size=4194304/0 mtime=2016-06-10 19:29:45.107417 caps=-(0=pAsLsXsFscr) objectset[10000000502 ts 2/4012653 objects 0 dirty_or_tx 0] 0x7f2a24300d00)
- 2016-06-10 19:46:48.953032 7f2a4351be80 2 client.4125 cache still has 0+155 items, waiting (for caps to release?)
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit b5a0773259ce9f2ef44e8e6925ab11dc1a5e55e6)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit 1ec2ef876d0e5cfe595ebb4a98fabf4958e9e937
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Thu May 26 16:32:58 2016 -0400
-
- client: use fh min readahead to enable readahead
-
- The client was using the configured maximum readahead of 0 which was changed in
- 95ee69989129750fddce6a3b5644238c4b88ed74. This prevented readahead from ever
- running (without setting a different default from 0).
-
- Fixes: http://tracker.ceph.com/issues/16024
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 01c179bcce2dc8a269d78eb1be8198b12bd161f7)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit b0bccc3dc11731466f9809013d6deb09f020693b
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Fri May 27 11:43:31 2016 -0400
-
- client: update comment
-
- Default was changed to unlimited in 11e4680e7394e6e02612441c964e05207b97737b.
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit bee02a073f4c551798bc490618a0e8d862893c25)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit e4104689b2698feccd9ea8432f1d57847effbd07
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Thu May 26 15:08:52 2016 -0400
-
- client: use layout.get_period() helper
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit b331d12a43a4177369a003c3ab9d525da6a89950)
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com
-
-commit e5759fa8d016d3f8e2a1ba79edb0bf90ab24565b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 15:44:26 2016 -0400
-
- librbd: recursive lock possible when disabling journaling
-
- If pool-level mirroring is enabled, deleting the journal
- could cause a deadlock attempting to delete remote peer
- sync-point snapshots.
-
- Fixes: http://tracker.ceph.com/issues/16235
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fb255e6c3cd44c8d24c53e3cd70395a11a712574)
-
-commit 89d65456ed1303b09e9bc054bbb62c0808db4565
-Merge: c526386 e15bfff
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:16:35 2016 -0400
-
- Merge pull request #9553 from Abhishekvrshny/wip-16038-jewel
-
- jewel: pybind: rbd API should default features parameter to None
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit c526386b4b087029e6fc00315b7726a2cf9caecb
-Merge: 6f9f830 6af7b22
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:13:16 2016 -0400
-
- Merge pull request #9552 from Abhishekvrshny/wip-15981-jewel
-
- jewel: qa: dynamic_features.sh races with image deletion
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 6f9f8307d7cff313bd2f476236591141d3c45c71
-Merge: 7edf393 dc38a26
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:08:39 2016 -0400
-
- Merge pull request #9629 from dillaman/wip-16231
-
- jewel: rbd-mirror: fix deletion propagation edge cases
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 7edf393743b2f7811d784e02a42fce13af19e8bc
-Merge: 39f530a bc658ed
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:08:23 2016 -0400
-
- Merge pull request #9630 from dillaman/wip-16233
-
- jewel: rbd-mirror: do not propagate deletions when pool unavailable
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 39f530a224d85cd12294ce125d8548cbe1e3e1c0
-Merge: bd454ff cb50679
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:07:42 2016 -0400
-
- Merge pull request #9628 from dillaman/wip-16224
-
- jewel: rbd-mirror: fix journal shut down ordering
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit bd454ff3a95244d2be2177180814439667db73f1
-Merge: 3fe2f1b 3a2cd16
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Jun 12 08:07:10 2016 -0400
-
- Merge pull request #9627 from dillaman/wip-16217
-
- jewel: rbd-mirror: refresh image after creating sync point
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 3fe2f1b652d7d6d80f9375174885b002db503f40
-Merge: 2a9fee9 99ff1fc
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 10 21:48:26 2016 -0400
-
- Merge pull request #9579 from Abhishekvrshny/wip-16006-jewel
-
- jewel: BackoffThrottle spins unnecessarily with very small backoff while the throttle is full
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 2a9fee94f10cba7675f564edbeac35620e8a6602
-Merge: ac1b354 4a967eb
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jun 10 17:34:19 2016 -0400
-
- Merge pull request #9638 from ceph/wip-16211-jewel
-
- Jewel: remove reliance on FLAG_OMAP for reads
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit bc658ede5b2e68210852b66585bfa5560964f405
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 08:15:19 2016 -0400
-
- rbd-mirror: do not propagate deletions when pool unavailable
-
- Fixes: http://tracker.ceph.com/issues/16229
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d321634414fa4b90c66474557ec990dfc935ae29)
-
-commit dc38a26e2e48f0a1fabdb51f1819e402e5b214ce
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 00:12:06 2016 -0400
-
- rbd-mirror: image deleter properly handles multiple snapshots
-
- Fixes: http://tracker.ceph.com/issues/16226
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d72a8cb67fbdc7361f8f9e265c659ddb96dc0f74)
-
-commit 0a74552b5a4c297855f5e04336a9d5cf00441d9e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 9 22:32:33 2016 -0400
-
- rbd-mirror: propagate deletions even if image replayer is stopped
-
- If an image deletion which causes the replayer to stop (due to an error)
- before the deletion is detected, the deletion should still occur.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a0c526a23783fe543737f6445a2d9438cc73b137)
-
-commit da6d409ab670e45e34c1dcf7de3f775632423d3f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 9 21:14:27 2016 -0400
-
- qa/workunits/rbd: improve deletion propagation test case
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit de15b198cd7b5e94016605c8016a5cf38c07c6f6)
-
-commit cb50679bad91fa1a0e360dca0331996b543fdadd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 8 10:12:04 2016 -0400
-
- librbd: quickly check for duplicate snap name upon create
-
- During journal replay, quickly check for a duplicate snap name
- before allocating a snapshot sequence from the OSDs and
- reverting due to the duplicate name.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8374d45c7644666103f88c410a2b1b781f3a0cb8)
-
-commit 43f3bbf130c9914f895bf4834305f951d0228954
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 7 14:45:16 2016 -0400
-
- rbd-mirror: stop external replayer before closing remote journaler
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 88bd3002082184c045bb82547929b30da1526cfb)
-
-commit f0bf15e9d38e3de63c959bac0ae90b609dafc514
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 7 12:42:52 2016 -0400
-
- librbd: stop journal recorder before starting external replay
-
- Fixes: http://tracker.ceph.com/issues/16165
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5aa6eb2782bdb5cde6a050a5f7a4e683800414c0)
-
-commit 3a2cd16e6c35b7b8ba0dd113b9a8cc586c1086b0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 8 12:49:04 2016 -0400
-
- rbd-mirror: refresh image after creating sync point snapshot
-
- Fixes: http://tracker.ceph.com/issues/16196
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c9a3e3be7ddc31992167d55de12bbe6849447b43)
-
-commit 6b77d2268e7b17911f0a6809045d356d97d1621a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 8 12:03:33 2016 -0400
-
- rbd-mirror: consistently use dout/derr for debug logging
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 03f5e4a917b3c18f8ccdaa5ce676ed9731dd2a8f)
-
-commit ac1b35478eea6bad574fac8641b47c0fcaee20f4
-Merge: 966186f 03466f0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:32:21 2016 -0400
-
- Merge pull request #9612 from dillaman/wip-16208
-
- jewel: rbd-mirror: support bootstrap canceling
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 966186f3c20080475d3e692e918cc363cac1ae47
-Merge: 49ed4ff bddf944
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:32:02 2016 -0400
-
- Merge pull request #9610 from dillaman/wip-16209
-
- jewel: librbd: prevent error messages when journal externally disabled
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 49ed4ffeb2c17f266559137030ab32182750b321
-Merge: 8e533c8 0014a9e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:19:47 2016 -0400
-
- Merge pull request #9611 from dillaman/wip-16210
-
- jewel: librbd: journal IO error results in failed assertion in AioCompletion
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 8e533c877e5d7bac84867d418aada1998425ef72
-Merge: a768a1c e424482
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:16:49 2016 -0400
-
- Merge pull request #9580 from Abhishekvrshny/wip-15996-jewel
-
- jewel: librbd: reuse ImageCtx::finisher and SafeTimer for lots of images case
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a768a1cb7b0062963714361ce94f8a834db44bd4
-Merge: ba5d490 bb279f1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:15:51 2016 -0400
-
- Merge pull request #9609 from dillaman/wip-16216
-
- jewel: librbd: refresh image if needed in mirror functions
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ba5d490824efa63c63713fee418631cd684293c4
-Merge: 41c5c27 3b8cb63
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:15:32 2016 -0400
-
- Merge pull request #9608 from dillaman/wip-16189
-
- jewel: cls_rbd: mirror image status summary should read full directory
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 41c5c273b1f52d0284c6b08f15db3edb17cd674c
-Merge: 7d217b9 cec6870
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:15:08 2016 -0400
-
- Merge pull request #9556 from Abhishekvrshny/wip-16162-jewel
-
- jewel: ceph_test_librbd_fsx crashes during journal replay shut down
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 7d217b9cc55778fa73f0ce4a0c2c5994f5f31c87
-Merge: 32f90a7 6c0e202
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:14:49 2016 -0400
-
- Merge pull request #9554 from Abhishekvrshny/wip-16084-jewel
-
- jewel: librbd: validate image metadata configuration overrides
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 32f90a7c98ebd5a272ece71b1af7009be2742cb5
-Merge: 3715d20c 09200d4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:13:06 2016 -0400
-
- Merge pull request #9555 from Abhishekvrshny/wip-16147-jewel
-
- jewel: Object Map is showing as invalid, even when Object Map is disabled for that Image.
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 3715d20c25c19ec1d1c58d275cef4e7ddb5b7778
-Merge: 7ea13df 73464af
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:12:47 2016 -0400
-
- Merge pull request #9550 from Abhishekvrshny/wip-15969-jewel
-
- jewel: Initial python APIs to support mirroring
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 7ea13dfb9d85613d5c4daf92811a786293ffc2be
-Merge: 2c22131 3084cf3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 10 12:12:37 2016 -0400
-
- Merge pull request #9548 from Abhishekvrshny/wip-15963-jewel
-
- jewel: Disabling journaling feature results in "Transport endpoint is not connected" error
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2c221318e27fb4c4b68780c0037b9acae5862d6e
-Merge: 4d68ae0 69a9500
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jun 10 00:55:47 2016 +0200
-
- Merge pull request #9424 from SUSE/wip-16107-jewel
-
- jewel: ceph gid mismatch on upgrade from hammer with pre-existing ceph user (SUSE)
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4d68ae062b90599c184282b807f7d16cfaf2f6ad
-Merge: 57b4542 b443fdf
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jun 10 00:54:52 2016 +0200
-
- Merge pull request #8802 from SUSE/wip-15606-jewel
-
- jewel: ceph-{mds,mon,osd,radosgw} systemd unit files need wants=time-sync.target
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 57b45426b5efa7ec4e293f9276f1f4299b5bf3ac
-Merge: 3cf6533 555cec9
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:44:13 2016 -0700
-
- Merge pull request #9320 from SUSE/wip-16017-jewel
-
- jewel: ceph: cli: exception when pool name has non-ascii characters
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3cf653328c988da5cf6be678cf3f0cb4c80c094d
-Merge: a422d03 663d7c2
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:43:48 2016 -0700
-
- Merge pull request #9270 from Abhishekvrshny/wip-15852-jewel
-
- jewel: mon/Monitor: memory leak on Monitor::handle_ping()
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit a422d0372719841ea4cc63f87e77ddc1dee7d815
-Merge: 34b193b 8356021
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:43:04 2016 -0700
-
- Merge pull request #9237 from SUSE/wip-15961-jewel
-
- jewel: ceph-osd valgrind invalid reads/writes
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 34b193be043f0d88c42c5ae177a660b747e81486
-Merge: e2a035e 64f15b3
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:42:32 2016 -0700
-
- Merge pull request #9103 from Abhishekvrshny/wip-15797-jewel
-
- jewel: deadlock in OSD::_committed_osd_maps
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit e2a035eeb19e9043c41e5132d2ea0b8a59ac1bed
-Merge: 2c35fe7 adfbe95
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:41:52 2016 -0700
-
- Merge pull request #9101 from Abhishekvrshny/wip-15799-jewel
-
- jewel: osd boot race with noup being set
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 2c35fe7e739e99452cf4d039281185e8c4a40b1c
-Merge: 6528e43 f4306de
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:40:43 2016 -0700
-
- Merge pull request #9104 from Abhishekvrshny/wip-15795-jewel
-
- jewel: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 6528e4371e0ab1c385e539646d08f4ea1dded893
-Merge: 50143ed b989084
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 15:37:43 2016 -0700
-
- Merge pull request #9427 from SUSE/wip-16104-jewel
-
- jewel: ceph-disk: workaround gperftool hang
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 50143ed004ef198f2161b9f360bfeccd16503954
-Merge: b328e99 a32820d
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Jun 9 14:55:31 2016 -0400
-
- Merge pull request #9614 from ceph/wip-16113-jewel
-
- osd: hobject_t::get_max() vs is_max() discrepancy
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 03466f096adcfe3322cad49c959fec976d887860
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 4 15:30:05 2016 +0300
-
- rbd-mirror: don't return split-brain error if we still in MIRROR_PEER_STATE_SYNCING
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 3ac620c5d66d8516e68264fcdb5e97b0e803d0ec)
-
-commit dfefd343e35b1c69fc2c938c7ebc30352e1320d4
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue May 3 12:48:06 2016 +0300
-
- rbd-mirror: refactor split-brain detection code
-
- to make it more readable and extendable.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 039cd2d2e3bb6a9c5042c125d2c67ec9adc02c47)
-
-commit c94e5b740628b98008e5342b8a3b2b888ff7b794
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue May 31 15:00:30 2016 +0300
-
- rbd-mirror: support bootstrap canceling
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 21f895f48498e518c3675a9e851559f4d071f6dd)
-
-commit c8a3e759298c3a2adfa67d932178d284619d460e
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon May 30 16:24:24 2016 +0300
-
- rbd-mirror: return ECANCELED when ImageReplayer start is canceled
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit f581dbcb2eca108ce9440629b8f00f3229c07b95)
-
-commit 0014a9e284c6cfc7678e63b56d707a8ad9b93127
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 7 01:01:09 2016 -0400
-
- librbd: flush journal commit positions before starting op
-
- Ensure all IO has been properly flushed and committed to the
- journal before starting an op that could affect the IO path.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 636129653c7cac9665d0c423f6aafad5fd0c480a)
-
-commit 3cec45a17a3d8bdcd19c63c31dad6b9150a9fbfd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 7 00:11:34 2016 -0400
-
- librbd: leaked AioCompletion if IO issued after image shut down
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d3d4e068396e01c58832e0ea1224ca34bafb808e)
-
-commit ef12536830082194da52df3a0dc8e22a3f69cb54
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 6 19:00:47 2016 -0400
-
- librbd: resize and snap create can hang on journal replay failure
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1032f19b3c9d9c7916669d04af909131574b3cab)
-
-commit c8b4cabea0e1a74a62fd9b25ccb5e0b15df38733
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 6 14:54:23 2016 -0400
-
- librbd: missing journal state for flushing/restarting replay
-
- Fixes: http://tracker.ceph.com/issues/16077
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a7f5bc181c9cd677d39f95ad78134e0f85c22acb)
-
-commit bc7649be5867fca46c1e86dacb99c1f8b18ad2e8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 12 21:22:56 2016 -0400
-
- librbd: track IO in the order issued
-
- Fixes: http://tracker.ceph.com/issues/15034
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit eb8dda5296eb5c19aa27e96d6e92eaa0c352cb62)
-
-commit 602ffd78f3de00d6655236dd914aa83006a8f862
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 12 15:15:04 2016 -0400
-
- librbd: AioCompletion should retrieve CephContext from ImageCtx
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 133b1ffb21c982003c7aa9dafd585062f9b2eb51)
-
-commit 6e20662a9f5b9eabbd83eb91760532d8171d96b8
-Author: Hector Martin <marcan@marcan.st>
-Date: Wed May 25 20:41:40 2016 +0900
-
- librbd: only mark async completion as done after callback
-
- This change in behavior was introduced in fde9f78.
-
- Signed-off-by: Hector Martin <marcan@marcan.st>
- (cherry picked from commit 77f7c1cf829e5417eb356ebf3bf1fbc8ff7a25a5)
-
-commit de29be73c043c0cd49b4d35a160ddd3910d423e8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 9 18:17:49 2016 -0400
-
- librbd: Journal no longer requires AioCompletion for IO events
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 82587a31f1d8ba1765f164391796753cf97a1878)
-
-commit 65556aa507e3e70352bb61c1549f340af0c4a9fb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 9 17:59:09 2016 -0400
-
- librbd: bubble journal error up via existing AioObjectRequests
-
- The journal cannot directly fail the AioCompletion because it
- might have one-or-more outstanding requests associated with
- it.
-
- Fixes: http://tracker.ceph.com/issues/15791
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 79c934742fb15c803780519b36070408599a74c5)
-
-commit bddf944797df5ffb93b587f8ac245846a48bd2e3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 6 22:34:30 2016 -0400
-
- librbd: potential duplicate snap removal can result in crash
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 276fed6b7078158c2cd04fba14a11531c27898e0)
-
-commit 4ce4130d0e6deef315dcbd5dc899faf5de9ab0e7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 2 00:43:53 2016 -0400
-
- ObjectCacher: do not merge uncommitted journal bhs
-
- Avoid the possibility of an overwrite callback for regions
- that were never associated with a journal write.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c6060ade16205337de3941a10d05e234b738fa07)
-
-commit 6e645985e77bd0597eab6755b6e4071b79967584
-Author: Zhiqiang Wang <zhiqiang@xsky.com>
-Date: Wed Feb 24 21:54:34 2016 +0800
-
- ObjectCacher: don't loop the extents of OSDRead in map_read
-
- Looping the extents of OSDRead is done in _readx. The looping in
- map_read is not needed.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang@xsky.com>
- (cherry picked from commit fae912c3856cab6d03183411eecab90c6e6732d2)
-
-commit c5f281d64221c62e3736f9630204f85d67328670
-Author: Zhiqiang Wang <zhiqiang@xsky.com>
-Date: Wed Feb 24 21:49:56 2016 +0800
-
- ObjectCacher: fix the bytes_written in writex
-
- The BufferHead returned after map_write may include other dirty data to
- the left and/or right. The actual length of data been written is in the
- ObjectExtent.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang@xsky.com>
- (cherry picked from commit ca6f1681e4baf61682e258c5761536d67bf6bdb8)
-
-commit 1c00d813791cdd8c6e685c1ebf6f93ef4aa0adbe
-Author: Zhiqiang Wang <zhiqiang@xsky.com>
-Date: Wed Feb 24 21:45:45 2016 +0800
-
- osdc: don't loop the extents of OSDWrite in map_write
-
- We are looping all the extents of the OSDWrite in writex. The looping in
- map_write is not needed. And if there are same object in these
- extents,they will be mapped multiple times.
-
- Signed-off-by: Zhiqiang Wang <zhiqiang@xsky.com>
- (cherry picked from commit 322f1059670898762a890a01af6d3b0dd3ccf826)
-
-commit b48cdb21da2ba02ae4ee5398c38b48e857dba8cf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 2 00:42:30 2016 -0400
-
- librbd: notify image feature update before releasing lock
-
- If a client is waiting for the lock, ensure it sees the latest
- version of the image features.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f601ea835bb78554ac767ccb11789df960765bf9)
-
-commit 680efbdcc3d2e28b6de991e7ad5c18e0d71cc551
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 1 23:19:20 2016 -0400
-
- librbd: refresh image after acquiring exclusive lock
-
- It's possible that the object map or journaling features have
- been disabled while the lock was not owned.
-
- Fixes: http://tracker.ceph.com/issues/16114
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 03c54f52d15d6283c630bac6f75427e6829f7d0a)
-
-commit bb279f1b288f1069b83d7661588f883716c80d9d
-Author: Jon Bernard <jbernard@tuxion.com>
-Date: Wed Jun 1 21:01:30 2016 -0400
-
- librbd: refresh image if needed in mirror functions
-
- Fixes: http://tracker.ceph.com/issues/16096
-
- Signed-off-by: Jon Bernard <jbernard@tuxion.com>
- (cherry picked from commit a355c8f6d9e792517a8d0e096a99a64474369cfc)
-
-commit 3b8cb634b34dd7742bbdea2ca354a358cb0fe089
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 7 09:36:02 2016 -0400
-
- cls_rbd: mirror image status summary should read full directory
-
- Previously only retrieved the status for the first 64 images in
- the rbd_mirroring directory.
-
- Fixes: http://tracker.ceph.com/issues/16178
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 61f86e7ec14233ea0dee5b3370595ce050ee28c3)
-
-commit 4a967eb42a7409b9d78d569585af2155414234d2 (refs/remotes/origin/wip-16211-jewel)
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 10:36:44 2016 -0700
-
- Revert "osd/ReplicatedPG: for copy_get get omap, firstly check ob whether has omap."
-
- This reverts commit 771c869651132013054599f3decfc1017092a25f.
-
-commit fd8f8af2456bc197877793a60d4401751f828032
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 10:36:39 2016 -0700
-
- Revert "osd/ReplicatedPG: For omap read ops, it should check object wether has omap"
-
- This reverts commit 98caba1d0b4dd334748e3bcaf1bfb3f79f75eb65.
-
-commit d59ca31a4fcc472809b1f1bd3379fc3521c28fb0
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 9 10:36:31 2016 -0700
-
- Revert "osd/ReplicatedPG: When do omapclear, it should check object whether is omap."
-
- This reverts commit aeb8141c29cdd337961430bbf3e93a79e3e1bcd3.
-
- Conflicts:
- src/osd/ReplicatedPG.cc
-
-commit b328e998b2aa066f5f42577abd0c74a5f3d42694
-Merge: b1c4c4c 188318b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 8 12:00:31 2016 +0200
-
- Merge pull request #8938 from SUSE/wip-15739-jewel
-
- jewel: ceph.spec.in: drop support for RHEL<7 and SUSE<1210 in jewel and above
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit f4306de66d6c071cb240a0d77e8f877841f87033
-Author: Sage Weil <sage@redhat.com>
-Date: Fri May 6 09:09:43 2016 -0400
-
- osdc/Objecter: upper bound watch_check result
-
- This way we always return a safe upper bound on the amount of time
- since we did a check. Among other things, this prevents us from
- returning a value of 0, which is confusing.
-
- Fixes: http://tracker.ceph.com/issues/15760
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2e2ce365866a7569b55aff338a82c132aa927089)
-
-commit 64f15b3cfd15faa65e7a36c9779713ea2436cf16
-Author: Xinze Chi <xinze@xsky.com>
-Date: Wed May 4 09:49:40 2016 +0800
-
- OSD: fix deadlock in OSD::_committed_osd_maps
-
- Fixes: http://tracker.ceph.com/issues/15701
- Signed-off-by: Xinze Chi <xinze@xsky.com>
- (cherry picked from commit 4fbf3891aab16347d02782f7c1c0400f9e0896af)
-
-commit adfbe9554be2cb79a6cbccc7c4a556139b4aed50
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 2 23:28:18 2016 -0400
-
- osd: handle boot racing with NOUP set
-
- This is a follow-on to 7139a232d26beef441ffbc13bc087baab3505ea8,
- which handled the NOUP set + clear case when the OSD found out
- about the flag being cleared. However, it's possible that the
- flag will get cleared but the OSD won't get a map update (because
- it hasn't subscribed and is not doing any work).
-
- This means that it is *more* likely than before that we will
- restart the boot process even though the OSD did successfully
- mark us up. However, as before, it is unavoidable because there
- is no notification of whether our boot request succeeds or not.
-
- And it is still mostly harmless (an extra mark down + up cycle).
-
- Fixes: http://tracker.ceph.com/issues/15678
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 11e4242fbdb2f2f6f654d4cb3a7c95d5b38a88c2)
-
-commit e424482d0e79ad0a0c44b14f0977cfa69d1b7f72
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Feb 28 23:35:17 2016 +0800
-
- TaskFinisher: use singleton SafeTimer and Finisher
-
- Fix #13938
- Signed-off-by: Haomai Wang <haomai@xsky.com>
-
- (cherry picked from commit dc6d6ce8b29de51b69242e569517f69acfe226f4)
-
-commit 99ff1fc34215da3339ccd227c4f17caf8294a32f
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 18 12:09:10 2016 -0700
-
- BackoffThrottle: wait() if past max
-
- Otherwise, we risk spinning on wait_for() with a small
- delay.
-
- Fixes: http://tracker.ceph.com/issues/15953
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6f835726a7df5b29a96849fc1362186fd2116d9b)
-
-commit 5ce43eb7682535deeee149600f1226b87e41defd
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed May 18 11:49:19 2016 -0700
-
- BackoffThrottle: use wait_for instead of wait_until
-
- On some platforms, wait_until won't surrender the lock
- with a negative argument.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 846808ff3f3837b1772f293ae71dba5eda609cc4)
-
-commit cec6870572621ed9abbe3791ba6e1a460333dfc0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 2 10:41:18 2016 -0400
-
- test/rbd: fsx needs to shut down the journal
-
- Fixes: http://tracker.ceph.com/issues/16123
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d10ffaafbd2a5831154757b848ed8504dad99069)
-
-commit 09200d4b5002f8ef9e75a9218fe85aaa5da33a8b
-Author: xinxin shu <shuxinxin@chinac.com>
-Date: Thu Jun 2 14:13:09 2016 +0800
-
- remove invalid objectmap flag when objectmap is disabled
- Fixes: http://tracker.ceph.com/issues/16076
- Signed-off-by: xinxin shu <shuxinxin@chinac.com>
-
- (cherry picked from commit b2d475686ee7617bb2023d753941e3d6952f0878)
-
-commit 6c0e202573110de522d531e0aa8978e843b5167e
-Author: zhuangzeqiang <zhuang.zeqiang@h3c.com>
-Date: Sat Oct 7 16:52:07 2017 +0800
-
- rbd: check value of config override when setting image-meta
-
- Fixes: http://tracker.ceph.com/issues/15522
-
- Signed-off-by: zhuangzeqiang <zhuang.zeqiang@h3c.com>
- (cherry picked from commit 4538f8152d0e73bdefc09874113c87467bdda622)
-
-commit e15bfff2e822e15e0a34d09825e04cee381d8737
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon May 23 09:18:34 2016 +0300
-
- pybind/rbd: create/clone/copy: default to None for features param
-
- If None is specified don't set the features so that the defaults is
- used.
-
- Fixes: http://tracker.ceph.com/issues/15982
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit b8b3a9757f7d517210a91f2893b0961b6b35afab)
-
-commit f9e32ac68a83932945165612dc64c307f0411b19
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon May 23 09:16:38 2016 +0300
-
- librbd: clone: default to parent features
-
- Fixes: http://tracker.ceph.com/issues/15982
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit d305eaad8d57a6f64e6d80eebcd0839a65c9a668)
-
-commit 6af7b223f3d0a8d51cd472cb7024a5ec70d30f61
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu May 12 09:15:53 2016 +0300
-
- qa: dynamic_features.sh: return error only if it failed on alive QEMU
-
- Fixes: #15500
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 8a71a79d24f2e1f999a5fc0a4154a10401d5a261)
-
-commit 73464af844b45137049b0fff294449ed3a6f13bb
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 11 14:33:00 2016 +0300
-
- test: initial python APIs to support mirroring
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit bfad0ca33b9d65dcec65bc1a18596d35fb3098f3)
-
-commit 5c312669ba2d208acaa8e819812e50ce23418208
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 11 14:29:17 2016 +0300
-
- rbd: initial python APIs to support mirroring
-
- Fixes: http://tracker.ceph.com/issues/15656
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit ef0ea8ee3c926a31b54e410c18e887415f6ea3cf)
-
-commit 3084cf32463a07cecec66befa1562a187bc1734f
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Mon May 16 16:18:59 2016 +0800
-
- rbd: close journal before removing
-
- Otherwise there is some unwanted error message.
-
- Fixes: http://tracker.ceph.com/issues/15863
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit ecdad4acca635d4b9f0b407889dde9985ab3a506)
-
-commit a32820d15fd5d2f817bc5fc94b731f4e7adafbf3 (refs/remotes/origin/wip-16113-jewel)
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 2 17:13:09 2016 -0700
-
- src/: remove all direct comparisons to get_max()
-
- get_max() now returns a special singleton type from which hobject_t's
- can be assigned and constructed, but which cannot be directly compared.
-
- This patch also cleans up all such uses to use is_max() instead.
-
- This should prevent some issues like 16113 by preventing us from
- checking for max-ness by comparing against a sentinel value. The more
- complete fix will be to make all fields of hobject_t private and enforce
- a canonical max() representation that way. That patch will be hard to
- backport, however, so we'll settle for this for now.
-
- Fixes: http://tracker.ceph.com/issues/16113
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 7c5f2acaa57bd6caaf4b13b48154df3ad6fbe84d)
-
-commit f869594332fb8ffa4d29aae22573afd094c39f54
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 2 17:39:09 2016 -0700
-
- PG::replica_scrub: don't adjust pool on max object
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8b7b7c7a2379ce77173bbdfd90c98c561d786155)
-
-commit 1737ff3f49080904ef07a7519d200ee608fab446
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 2 17:36:21 2016 -0700
-
- hobject: compensate for non-canonical hobject_t::get_max() encodings
-
- This closes a loop-hole that could allow a non-canonical in memory
- hobject_t::get_max() object which would return true for is_max(), but
- false for *this == hobject_t::get_max().
-
- Fixes: http://tracker.ceph.com/issues/16113
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 42fad4b76def50a0984bf3de06f78ed434d56954)
-
-commit b1c4c4c456d1d20ccc91de4f762dbe46d8e339a3
-Merge: 24404c9 5d9ee88
-Author: John Spray <jspray@redhat.com>
-Date: Fri Jun 3 12:37:00 2016 +0100
-
- Merge pull request #9430 from ceph/wip-manila-backports
-
- jewel: backports needed for Manila
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 24404c928b878d28a34439b8adaf43854547d317
-Merge: 1aa81ce 208659f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 2 12:03:12 2016 -0400
-
- Merge pull request #9423 from dillaman/wip-16101
-
- jewel: rbd-mirror: replicate cloned images
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5d9ee88e2a0ee57455581350bafe613fef8e3da2
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Tue Apr 26 17:51:48 2016 -0500
-
- pybind: configurable cephfs_vol_client prefix and ns_prefix.
-
- Which is useful if we would like to have multiple backends
- in manila and potentially set different layout based on prefix.
-
- And also make ns_prefix configurable also in order to support
- multiple backend.
-
- Fixes #15417
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit d1a21b07ede77ab3f2be7a753426d76de0343086)
-
-commit 470605c38f772e5bcc466e71ac232294b41be276
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Apr 13 14:03:51 2016 +0530
-
- ceph_volume_client: evict client also based on mount path
-
- Evict clients based on not just their auth ID, but also based on the
- volume path mounted. This is needed for the Manila use-case, where
- the clients using an auth ID are denied further access to a share.
-
- Fixes: http://tracker.ceph.com/issues/15855
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 68714b9dda8ed6010cad6730e0ddf54b3219150d)
- (cherry picked from commit aaa0e9aea9fcf2f63e73e544bd40c10a0d694408)
-
-commit 726292eb305d58661993803dea613e9d98a64f4f
-Author: John Spray <john.spray@redhat.com>
-Date: Wed May 11 13:18:23 2016 +0100
-
- client: report root's quota in statfs
-
- When user is mounted a quota-restricted inode
- as the root, report that inode's quota status
- as the filesystem statistics in statfs.
-
- This allows us to have a fairly convincing illusion
- that someone has a filesystem to themselves, when
- they're really mounting a restricted part of
- the larger global filesystem.
-
- Fixes: http://tracker.ceph.com/issues/15599
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit b6d2b6d1a51969c210ae75fef93c71ac21f511a6)
-
-commit 46c2bd0864f8f7ace80a8cad07b873d9aa57ead9
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Apr 1 14:27:31 2016 +0100
-
- pybind: fix unicode handling in CephFSVolumeClient::purge
-
- os.path.join is sensitive to string encoding, but
- just doing a straight substitution should not be.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit e590f4d05fdb46747e83e35e66a26d9f4aa0314d)
-
-commit b989084dfc28659445fe08847537f8e5ad275cdd
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu May 26 12:55:51 2016 +0200
-
- ceph-disk: workaround gperftool hang
-
- Temporary workaround: if ceph-osd --mkfs does not
- complete within 5 minutes, assume it is blocked
- because of https://github.com/gperftools/gperftools/issues/786
-
- References http://tracker.ceph.com/issues/13522
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit c092321c24b9ca493d90a9ccc8f0b4b9a38677f1)
-
-commit 69a9500d900b2d5b9bdb0e989f83fe60ddddeda0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu May 12 19:23:31 2016 +0200
-
- rpm: unconditionally set ceph user's primary group to ceph (SUSE)
-
- This commit brings the user/group creation into greater semantic alignment
- with the Debian packaging.
-
- Fixes: http://tracker.ceph.com/issues/15869
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b3dfa8d90962e60b6841555db830c8ea635f4cce)
-
-commit 208659fdebc888cab35239ec848f27320477420f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 12:49:45 2016 -0400
-
- qa/workunits/rbd: basic cloned image test
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 943ff829874f96f720d6c6299e1212e4da24c6c5)
-
-commit af6be1bc15dfc2757cf74772078dd8516ed889be
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 08:22:16 2016 -0400
-
- rbd-mirror: copy snapshot parent image settings
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f5fd09373714ebe8886bcf51bb97732038fffe55)
-
-commit 8405c2c377c7f9e755a349bfc90494f7ee7cc477
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 12:01:15 2016 -0400
-
- cls_rbd: asynchronous helper method to set parent
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fcfdebb471650a1730306f6a309f1775ba7a5eee)
-
-commit 26f4edcbb3b24eed98f111a2c77a5380cbf16927
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 17:38:06 2016 -0400
-
- rbd-mirror: add support for cloning images from mirrored parent
-
- Fixes: http://tracker.ceph.com/issues/14937
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ae6e03dfb1fa3be61e6deac4fe39982e7e7c18aa)
-
-commit b8b01c57949955b1ff6a6a35dcae05108a2dda58
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 17:36:06 2016 -0400
-
- librbd: extend internal API to clone from open parent image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit bfaa112c30da7091fd2d539b80a4a211176a6031)
-
-commit 9081c58a31aa8fa6f966f3b682b9870e2b6f8297
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 17:13:59 2016 -0400
-
- cls_rbd: asynchronous helper methods to retrieve mirror image metadata
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5a26080447cfa4b7bfdacdc13242569258a64076)
-
-commit 2c2f4b251d0c8b870728293d06e9c853856c8092
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 15:16:28 2016 -0400
-
- rbd-mirror: helper state machine to open remote/read-only images
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3731c3c34c15f8dcfbab444bdbf3c05976b03431)
-
-commit 1aa81ce5ba492e8eeea2b20f08b77a18a94cd738
-Merge: 54bfefb 0bcc295
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 13:11:22 2016 -0400
-
- Merge pull request #9409 from dillaman/wip-16068
-
- jewel: rbd-mirror: support multiple replicated pools
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 0bcc295363d9ca20d43fd313084370158513bc62
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 27 11:40:58 2016 -0400
-
- rbd-mirror: cluster-level asok commands need to support multiple pools
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f4339ee8cb64d5f1a164e017fea942600ffb0ea9)
-
-commit e4547c036ef641d48ab03808f59e035b56136745
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 23:26:20 2016 -0400
-
- rbd-mirror: replayer should only handle a single pool
-
- The pool watcher now only needs to scan a single pool for
- its associated replayer since a peer is inherently tied to
- a single pool.
-
- Fixes: http://tracker.ceph.com/issues/16045
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c5a8b780edeb9b62a601f0718459837f3d66e63d)
-
-commit 6fc5328e93b7d005479f925cca1268e7e7e10234
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 16:03:59 2016 -0400
-
- rbd-mirror: group peers by local pools
-
- The peer structure is automatically unique per pool due to its
- UUID, so grouping local pools by a single peer doesn't work.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 020f0282a0771c0d321732a62f53cee10a193715)
-
- Conflicts:
- src/tools/rbd_mirror/ClusterWatcher.cc: trivial resolution
-
-commit 0745cc3db35a349799891c8397249bf8d088ef83
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 14:00:34 2016 -0400
-
- rbd-mirror: stop stale replayers before starting new replayers
-
- If the connection details are tweaked for a remote peer, stop
- the existing replayer before potentially starting a new replayer
- against the same remote.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6a2adca2a47b384f64c20996b9fc77010a70bc22)
-
-commit 91f8373613a38d48d71f2762e75e21ec817305be
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 13:29:49 2016 -0400
-
- rbd-mirror: normalize debug log message prefix
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d52843190d84d533ab50a1702cf4a829b71ad68b)
-
-commit 5f0d89a9258fdf2f7392c63ca5d6488c4e3f210d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 26 13:26:57 2016 -0400
-
- qa/workunits/rbd: create secondary replicated pool
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 839544ee6446b959f01290667592e44fc5ee6991)
-
-commit 54bfefb7d108667058eda56fda24b0029a560746
-Merge: 522c7f9 61542c1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:51:05 2016 -0400
-
- Merge pull request #9373 from dillaman/wip-16055
-
- jewel: journal: support asynchronous shutdown
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 522c7f9432e029f4db2b7455fb83b4aeb3ff4a4e
-Merge: f04972c 6375c78
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:49:39 2016 -0400
-
- Merge pull request #9372 from dillaman/wip-15995
-
- jewel: rbd-mirror: Delete local image mirror when remote image mirroring is disabled
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 61542c14d34c4192f1468e2d7865fe913cce21b8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 02:31:11 2016 -0400
-
- rbd-mirror: image replay now uses asynchronous journal shutdown
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a1b0a1b1b9a237ae363a52c7b4038b19e87052a5)
-
-commit bf4c45830330b025bf818286e13693b837f1f2c5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 25 00:21:14 2016 -0400
-
- librbd: integrate with async journaler shutdown API
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ad297850b1be8ed38f77b86913c6821748f3368b)
-
-commit 36cf42a3f47c23db82a8aca7a5560857cc3e0027
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 24 16:12:16 2016 -0400
-
- journal: extend asynchronous shutdown to facade
-
- Fixes: http://tracker.ceph.com/issues/14530
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f40c595255a6828e27abfe63b4209ebae03e237b)
-
-commit 1b0422d7272788561253479a43f5b3dcdbb6282b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 24 15:53:12 2016 -0400
-
- journal: trimmer now has asynchronous shutdown
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 59ca9916ba2e2b144eff5ee471a314b9c4391936)
-
-commit f913946ff74924fc14c7336fef6c73a4c6edfdfa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 24 15:36:17 2016 -0400
-
- journal: metadata init and shutdown now asynchronous
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0543e1b29eb253bf1d9e9af7af6f22fa394dd854)
-
-commit 1a9d60f8244d6ba8697b2254d967907fdb618cdb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 24 12:06:26 2016 -0400
-
- journal: player shutdown is now handled asynchronously
-
- Fixes: http://tracker.ceph.com/issues/15949
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 79b41346678b3acdeb547fe07e44d8d0543d37a7)
-
-commit 4af5bb1d2d86de68be0cef3713e09dfe0f1a9030
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 23 22:26:05 2016 -0400
-
- test: use randomized write sizes for rbd-mirror stress test
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b9edff2174ff04bb8b6353dd2d2218c64757aae1)
-
-commit df2b8d9f0f399dcf9bb0e3eba3a39e14de504c49
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 23 22:21:33 2016 -0400
-
- journal: eliminate watch delay for object refetches
-
- The randomized write sizes of the modified rbd-mirror stress
- test results in a lot of journal object with few entries.
- Immediately fetch objects when performing a refetch check prior
- to closing an empty object.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d7b511b854c8ab633dcdb1c935014218b83f4e09)
-
-commit c65614f155ceccebd1960d6042d55e13b31e62ba
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 23 14:57:03 2016 -0400
-
- journal: keep active tag to assist with pruning watched objects
-
- It's possible that there might be additional entries to prune in
- objects that haven't been prefetched yet. Keep the active tag
- to allow these entries to be pruned after they have been loaded.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0fb730e6be632e25d76695e1f37eba542162d620)
-
-commit 30c7f4dbe0a7c515d14be98f3f59ba8a8cdb1dcf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 23 12:15:49 2016 -0400
-
- journal: update commit entry object number upon overflow
-
- Otherwise the recorded object positions might point to an older
- object that doesn't contain the actual entry.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5fbf5f82de8214c5c676d38feae7682a006fcab1)
-
-commit fa08330dadb9ce973db866ad641a79d5d2dd290c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 23 11:01:05 2016 -0400
-
- journal: cleanup watch refetch flag handling
-
- Clear the refetch required flag while scheduling the watch
- and remove the stale object after the watch completes if still
- empty. Previously, it was possible for the flag to become
- out-of-sync with whether or not it was actually refreshed
- and pruned.
-
- Fixes: http://tracker.ceph.com/issues/15993
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ff2cc27ae592646b495bf1b614d35bd50c091a3d)
-
-commit 6375c7831de551c52f1dbf74bf9f65be3b6d8adf
-Author: Ricardo Dias <rdias@suse.com>
-Date: Fri May 13 16:47:25 2016 +0100
-
- rbd-mirror: test: added image-deleter test case when mirroring is disabled
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit d85e312ead1da7c35d5ee4fe4be3d6e69a68b572)
-
-commit 1ba650539c1e90b82727a6bd9f1c16796b92b821
-Author: Ricardo Dias <rdias@suse.com>
-Date: Fri May 13 16:44:53 2016 +0100
-
- rbd-mirror: Unregister clients from non-primary images journal
-
- A non-primary image may have registered clients on its journal
- (for instance a primary image that was later demoted). We must
- unregister the clients when disabling image mirroring with the
- force option.
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 9cb0b180bc8a12ea2ebb0d7e32279b696ddd127e)
-
-commit a53cf28ab95a704b78cfa46cf758c2eec8058619
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Apr 19 12:35:49 2016 +0100
-
- rbd-mirror: test: Added unit test for testing image-deleter thread
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit ac9514941b0accb6c738ce4aa0953c36cdcf69a6)
-
-commit 78b13a504c32685090bb5b6512be9c050df2d8b6
-Author: Ricardo Dias <rdias@suse.com>
-Date: Mon Apr 18 12:22:19 2016 +0100
-
- rbd-mirror: test: Fixed test_PoolWatcher to support the new changes in PoolWatcher class
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit e3677f115e1f369a49227fba51a1d34505d487ac)
-
-commit fef7456f8bc85f32cbdb28ce81198a9eb7d56d3b
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Apr 5 09:47:32 2016 +0100
-
- rbd-mirror: Replayer: bootstrap existing mirrored images
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 3c2615aa6da837bfef2365f701f56a34c49b536f)
-
-commit 97eb85f971a74678e4075b16cb5a8e836a985b56
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu Apr 28 11:49:43 2016 +0100
-
- rbd-mirror: replayer: Added image-deleter thread to replayer
-
- Fixes: http://tracker.ceph.com/issues/14421
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit a6d698829d925894e4afcdec0ee42b1fc1205db0)
-
-commit 24406c5f8ea12d2c19573116ea84c90ba7446f8b
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu Apr 28 11:48:05 2016 +0100
-
- rbd-mirror: Added image-deleter thread to rbd-mirror
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 011984d40bce448fe0febfc6a9fcf57d2c7b4768)
-
-commit 0780230b4af7e4ca923dab5f77735d0a11409202
-Author: Ricardo Dias <rdias@suse.com>
-Date: Wed Apr 13 15:17:40 2016 +0100
-
- rbd-mirror: Added implementation of image-deleter thread
-
- image-deleter thread will handle the deletion of local images that have
- been disabled for mirroring by the primary site.
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 6cc6e663ed2ec336a9475d93ab2cb605644e6ee0)
-
-commit 38514adc847a227dbd28318650931a8c2a7df7db
-Author: runsisi <runsisi@zte.com.cn>
-Date: Wed May 11 20:42:37 2016 +0800
-
- rbd-mirror: librbd::mirror_peer_list never returns -ENOENT
-
- no need to check -ENOENT specially
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 81ff42253369a9f57118bd26b29115c86a1748c5)
-
-commit 4e7233ad43d368a5f6e812870cec77545e034186
-Author: runsisi <runsisi@zte.com.cn>
-Date: Wed May 11 20:52:38 2016 +0800
-
- rbd-mirror: fix typo
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 25bfd4c786d0701fe6ae06e3d120098bd82f8aa0)
-
-commit c3b1bf1e530a4cf55585886a4b4038b9d2862471
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 18 10:07:55 2016 +0300
-
- rbd-mirror: calculate behind_master only if mirror tag is not newer than master
-
- Fixes: http://tracker.ceph.com/issues/15916
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit cbd8d526f94523c9de3c575d426063e63d7e1802)
-
-commit f04972c8be28fc6d3133363b5474f22ebac5fd15
-Merge: c194c5d cb950fc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:48:06 2016 -0400
-
- Merge pull request #9377 from dillaman/wip-16063
-
- jewel: test: failure in journal.sh workunit test
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit cb950fca12395a1c62421d4b0bce64b4a52b2fd4
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 25 21:54:16 2016 +0300
-
- test: workaround failure in journal.sh
-
- With the changes to ensure that the commit position of a new
- client is initialized to the minimum position of other clients,
- the 'journal inspect/export' commands return zero records because
- the master client has committed all of its entries.
-
- Workaround this by restoring the initial commit position after
- writing to the image.
-
- Fixes: http://tracker.ceph.com/issues/16011
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e9ed8ac33b1884c6ed5cdfb23023094ec790b116)
-
-commit f92c2a5604d4a8e83504b7283114d3d59bc45f38
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 25 14:51:43 2016 +0300
-
- cls::journal: treat empty commit position as minimal
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 16846e8085b0c594f065322a768e6dfcbd5d2444)
-
-commit c194c5d8d454d0b387e191d03fec9d916271ff7f
-Merge: 4d3b668 8fbb555
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:46:30 2016 -0400
-
- Merge pull request #9376 from dillaman/wip-15994
-
- jewel: cls_journal: initialize empty commit position upon client register
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4d3b66842d4477ec4c4a418a91723fc9b800101c
-Merge: dafe375 e5ebb51
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:45:43 2016 -0400
-
- jewel: librbd: write-after-write might result in an inconsistent replicated image
-
- jewel: librbd: write-after-write might result in an inconsistent replicated image
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit dafe375640967e10d1a94b02970d399c51980076
-Merge: 409fc64 305ebbc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:30:47 2016 -0400
-
- Merge pull request #9318 from Abhishekvrshny/wip-15957-jewel
-
- jewel: Metadata config overrides are applied synchronously
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 409fc64799aec36e183e6ba2bb25c3bf7e3d603b
-Merge: cd6ed4d 0c99028
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 31 11:29:45 2016 -0400
-
- Merge pull request #9317 from Abhishekvrshny/wip-15956-jewel
-
- jewel: rbd-mirror should disable the rbd cache for local images
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit cd6ed4deb0f4b66a10ea7bd5e027daee3a93d1f4
-Merge: 9fa8596 be9e85d
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Tue May 31 18:48:58 2016 +0800
-
- Merge pull request #9403 from dachary/wip-16088-jewel
-
- jewel: tests: rm -fr /tmp/*virtualenv*
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit be9e85d83f3d025cec16b7da85d8a2ce1f64e8fa
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri May 20 13:19:07 2016 +0200
-
- tests: rm -fr /tmp/*virtualenv*
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 8f0eefba00d1c6ad656302a608217fc3395d0401)
-
-commit 9fa85963a8accd669b0f0fbb17f4b721290432c6
-Merge: a046d2a 3674341
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Tue May 31 13:46:31 2016 +0800
-
- Merge pull request #8968 from Abhishekvrshny/wip-15728-jewel
-
- jewel: osd: acting_primary not updated on split
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit a046d2a8c37182652d5f300f58673f70c8485114
-Merge: 954af78 8bbb5ad
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Tue May 31 13:42:28 2016 +0800
-
- Merge pull request #9100 from Abhishekvrshny/wip-15856-jewel
-
- jewel: Hammer (0.94.3) OSD does not delete old OSD Maps in a timely fashion (maybe at all?)
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 954af787526a77b923fe85ed1282ba98277738e4
-Merge: e8e572c fae360f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 30 13:53:45 2016 +0300
-
- Merge pull request #9245 from dreamhost/wip-15974-jewel
-
- rgw: fix manager selection when APIs customized
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit e8e572c6454816119448240fa7813be7995fd250
-Merge: c11db6f ffd545b
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon May 30 11:15:18 2016 +0200
-
- Merge pull request #9239 from yehudasa/wip-15886-jewel
-
- rgw: keep track of written_objs correctly
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 8fbb555befb1415ef5218c8aaa149ca44017d73d
-Author: Venky Shankar <vshankar@redhat.com>
-Date: Thu May 19 22:45:34 2016 +0530
-
- cls_journal: Select min commit position for new clients
-
- When a new client registers, its commit position is initialized
- to the least commit position of all other clients.
-
- Fixes: http://tracker.ceph.com/issues/15757
- Signed-off-by: Venky Shankar <vshankar@redhat.com>
- (cherry picked from commit dd2e3dae8adb3778e7e381db5dbfca0948571c55)
-
-commit 576ff0ca804779d1eb0b1c44d6ce38e0658b6a05
-Author: runsisi <runsisi@zte.com.cn>
-Date: Mon May 9 15:15:31 2016 +0800
-
- cls_journal: remove duplicated key generation
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 715e99c83e1ebc01ceb9eff0f66da8e2b598766a)
-
-commit fae360f0e419266b80f001a25a6864668e772d08
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Fri May 20 16:00:33 2016 -0700
-
- rgw: fix manager selection when APIs customized
-
- When modifying rgw_enable_apis per RGW instance, such as for staticsites, you
- can end up with RESTManager instance being null in some cases, which returns a
- HTTP 405 MethodNotAllowed to all requests.
-
- Example configuration to trigger the bug:
- rgw_enable_apis = s3website
-
- Backport: jewel
- X-Note: Patch from Yehuda in private IRC discussion, 2016/05/20.
- Fixes: http://tracker.ceph.com/issues/15973
- Fixes: http://tracker.ceph.com/issues/15974
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 7c7a465b55f7100eab0f140bf54f9420abd1c776)
-
-commit 8bbb5add6208a552979270baf4623430cf45e1b3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri May 13 11:26:31 2016 +0800
-
- osd/OpRequest: reset connection upon unregister
-
- this helps to free the resources referenced by the connection, among
- other things, in the case of MOSDOp, the OSD::Session and OSDMap. this
- helps to free the resource earlier and trim the osdmaps in time.
-
- Fixes: http://tracker.ceph.com/issues/13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 87850e96ea6fa45a8368bacabee50f9e95b40ae9)
-
-commit e97cc2d1e9bcee0a43f54ed592d3078182571874
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu May 12 20:28:11 2016 +0800
-
- osd: reset session->osdmap if session is not waiting for a map anymore
-
- we should release the osdmap reference once we are done with it,
- otherwise we might need to wait very long to update that reference with
- a newer osdmap ref. this appears to be an OSDMap leak: it is held by an
- quiet OSD::Session forever.
-
- the osdmap is not reset in OSD::session_notify_pg_create(), because its
- only caller is wake_pg_waiters(), which will call
- dispatch_session_waiting() later. and dispatch_session_waiting() will
- check the session->osdmap, and will also reset the osdmap if
- session->waiting_for_pg.empty().
-
- Fixes: http://tracker.ceph.com/issues/13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 82b0af7cedc3071cd83ee53479f834c23c62b7d0)
-
-commit 555cec9a92568666880d70b9ae8f6e9748eca204
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue May 17 18:04:28 2016 +0100
-
- ceph.in: fix exception when pool name has non-ascii characters
-
- When deleting a pool without the --i-really-really-mean-it option, if
- the pool name has non-ascii characters, the format of the command
- message raises a UnicodeEncodeError exception.
-
- Fixes: http://tracker.ceph.com/issues/15913
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 805873fed0135616a4cf8b499d1ba0b10dac004c)
-
-commit 305ebbc36473cf8bfd22513ffe55d3a4a99d5ef1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 19:19:24 2016 -0400
-
- librbd: metadata retrieval added to open image state machine
-
- Fixes: http://tracker.ceph.com/issues/15928
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b64cb31f8e7796175b4709929c017b3236649462)
-
-commit 5c9ecea87d3eb90201a967d8da827018cd728f0d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 17:50:07 2016 -0400
-
- cls_rbd: async version of metadata_list helper method
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 985cb38211c51c95d84479df231c4f53847cb2ec)
-
-commit 0c99028582326c4ac142a03f168ab1bcf0ddd3c2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 20:53:26 2016 -0400
-
- rbd-mirror: disable librbd caching for replicated images
-
- Each image has its own cache and each cache uses its own thread. With
- a large replicated cluster, this could result in thousands of extra
- threads and gigabytes of extra memory.
-
- Fixes: http://tracker.ceph.com/issues/15930
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ea35f148257282fe3f3ae02fe7a26cf245cda952)
-
-commit 188318b7b567f206d60dfb754fedbb0bfc74ef91
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon May 23 17:06:19 2016 +0200
-
- rpm: Restore /var/run/ceph context manually
-
- The fixfiles command won't fix label for /var/run/ceph (/run is probably
- excluded from relabel), we need to restore the context manually.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 6de39ce73737f79d4511dfc4e1d10d7f3733ab1b)
-
-commit ab1f65dd0429647c30fdae1dd97ff6f393dbc1a8
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri May 20 08:09:42 2016 +0200
-
- rpm: Mute semodule in postun script
-
- Currently, we don't mute the semodule output in postun script. This
- results in the following message when removing ceph-selinux package:
-
- libsemanage.semanage_direct_remove_key: Removing last ceph module (no
- other ceph module exists at another priority).
-
- The fix is to simply mute the output of the command.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 3c104b106540fabdba43e0d04a3828d77f83e89d)
-
-commit 587fb3df704973071114a30bc55288768dbc2720
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Apr 27 11:13:06 2016 +0200
-
- install-deps.sh: systemd-rpm-macros must be installed on SUSE
-
- Otherwise the script breaks.
-
- Fixes: http://tracker.ceph.com/issues/15627
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit a7f5ad5f6f9c01ef81f90a7071b6e2243b6da4e7)
-
-commit 69470d406d2b539e8021afd4def7de931ac91857
-Author: Boris Ranto <branto@redhat.com>
-Date: Tue May 10 18:20:13 2016 +0200
-
- rpm: Drop SELinux priority setting
-
- Older versions of semodule binary that are in Centos/RHEL do not
- support priority setting, dropping it.
-
- Fixes: #15822
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 7e606f29f499eac83ecb7053ea6874fcfd092924)
-
-commit 128dbc8af0095622d48b962ddd9476aa4140bc16
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed May 4 09:09:47 2016 +0200
-
- rpm: Fix SELinux relabel on fedora
-
- The SELinux userspace utilities stopped providing versions when they
- switched to CIL language. We need to use a different technique to
- relabel the files.
-
- Fixes: #15725
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit bd26641d705a34a1148a781eea08d203e81b750d)
-
-commit 8182b9a4d2750bb8f0f035d84e9d8476abc62c3c
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 12 15:33:45 2016 +0200
-
- Test-enable XIO messenger and IB/RDMA support
-
- Fixes: http://tracker.ceph.com/issues/15472
-
- Signed-off-by: Lars Marowsky-Bree <lmb@suse.com>
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit d4b74c56d6cbb2c6852bf66f2f34b8a877d7a9ef)
-
-commit 50626cec7a55637764ba379d6cb71e0b485290a8
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Apr 28 19:29:00 2016 +0200
-
- rpm: do a full make check when --with-tests is given
-
- The check-local target tests the CLI tools only.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit e1514809ae3d2df08a0c47882f9b3bd0ed68d200)
-
-commit fb6858c283d96de15c70fbe8ffc33b5dada82739
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 26 17:03:28 2016 +0200
-
- rpm: drop sysvinit bits from relabel_files function
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 20df58799a4853ed3798501176988ffaf888936b)
-
-commit db4f2d677df5c9fc00592fc9e003bccb44af6da6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 18:27:45 2015 +0200
-
- rpm: replace literal paths with RPM macros
-
- The only place we should write out literal paths is in the RPM scriptlets,
- and there only for things that are not installed by this package.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit e0346b36fc0e6e17c80c047b13997448ccf1c76e)
-
-commit 3abf89517b0b2142698610debbaa3c6b535424f3
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 18:05:12 2015 +0200
-
- rpm: drop udev/95-ceph-osd-alt.rules
-
- This udev rules file was needed on older RHEL platforms, which are
- unsupported as of jewel.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit ee4acb31593dd33da99138998fd0f30ebc2f1a6e)
-
-commit a7e01dd4ff08607fc6d99e41189e3db1a3c1d4da
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 17:20:46 2015 +0200
-
- rpm: global replace $RPM_BUILD_ROOT with %{buildroot}
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit bed92b6a86cdef784e89c38952fa779ce5fc5a91)
-
-commit d81cec99421e544e2cf7d212680b04d51ef675f3
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:37:47 2015 +0200
-
- rpm: put dependencies in alphabetical order
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 66042c03df012754215ed848e475f2195ee988a0)
-
-commit e8338a5844aea6dad8e61f00dbd94ca4e04df7be
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:32:46 2015 +0200
-
- rpm: drop sysvinit-specific dependencies
-
- Obsolete in jewel and above.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit c655cb896ad10e001b95848f4a4b64dd1ef6984f)
-
-commit b18d8ac0d65f91929fc956980d3b5977bb2970e6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:32:05 2015 +0200
-
- rpm: move boost-random dependency to appropriate section
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 46b16c19f73d82cc357b16e6201926a3479046f2)
-
-commit 94efaef9c28347baebc374e27d3e81f143e642e0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 23 19:57:49 2016 +0200
-
- rpm: move unified python-sphinx build dependency
-
- Now that the python-sphinx build dependency is unified, move it
- to the proper section of the spec file.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 1d897da861c6134778136fa2b8b33e36c08faff9)
-
-commit 54dc8bf5703e2fb8962a97f7737a6114132b9b20
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 23 19:41:06 2016 +0200
-
- rpm: drop init-ceph.in-fedora.patch
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit e8cf501d0f22c757a0860a0c91dcb1d7a472ed34)
-
-commit 641e5bb0808a14d2b59cba141bad4acf5bbfb63a
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:22:37 2015 +0200
-
- rpm: drop dead conditionals
-
- This commit drops conditionals that no longer serve any purpose, since
- jewel and above do not support the distro versions they are checking for.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 1332fac70e537014b5e03810aa983e2c9210d8dc)
-
-commit 4317a17997f21019e1dec59606928a2a9f4d94b9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:18:33 2015 +0200
-
- rpm: drop python-argparse dependency
-
- This was only necessary for older (now unsupported) distro versions.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 6c42066d488d03142a56f92cff99d9c29d106214)
-
-commit 70466ffd386795082f02d718e804ad9e9c494401
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 10:02:40 2015 +0200
-
- rpm: drop _with_systemd
-
- Ceph versions jewel and above only support systemd.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 2ca6dd250b6a049f27fa17c5e8ca11674acb63f6)
-
-commit 928a8158aa71012db9f451a4302e8661783b5d37
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Oct 11 09:43:06 2015 +0200
-
- rpm: drop python_sitelib/sitearch conditional
-
- This conditional was required to support older versions of RHEL/CentOS that are
- no longer supported in infernalis and above.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 98d52120f89af3e93896d0518dbea4c4f660af48)
-
-commit 9f76b9ff31525eac01f04450d72559ec99927496
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Apr 18 09:16:02 2016 -0400
-
- udev: remove 60-ceph-partuuid-workaround-rules
-
- These were added to get /dev/disk/by-partuuid/ symlinks to work on
- wheezy. They are no longer needed for the supported distros (el7+,
- jessie+, trusty+), and they apparently break dm by opening devices they
- should not.
-
- Fixes: http://tracker.ceph.com/issues/15516
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9f77244b8e0782921663e52005b725cca58a8753)
-
-commit 1ad390197af21d8cd7e507e2959f803028d3d09d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Apr 20 17:21:56 2016 +0200
-
- rpm: refrain from installing systemd unit files twice
-
- These files are already installed by systemd/Makefile.am
-
- Fixes: http://tracker.ceph.com/issues/15549
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 6d3cbaa509525f1807ac34bf5fed0fe99255f40f)
-
-commit 9c81f25b76ef2211910e453ba2bc4577fc921d7f
-Author: Boris Ranto <branto@redhat.com>
-Date: Tue Feb 23 05:57:14 2016 +0100
-
- test/ec: build the libs only when 'make check'
-
- Currently, we are always building the erasure code libraries while we
- need them only when 'make check' is run. Moving the test libraries to
- check_LTLIBRARIES should fix this for us.
-
- We no longer need to remove the libec libs manually, remove the lines
- that do that.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 0bbfea5cf13c138bbb2f0993607fa0dbf756281b)
-
-commit 663d7c2901ddf0b6e4184ec344bf0af00582eaf2
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed May 4 16:53:18 2016 +0800
-
- mon/Monitor: use CEPH_MON_PORT for CRC output
-
- The default monitor port will be changed from 6789 to 3300, which has
- been assigned to us by IANA. So update this accordingly for better
- tracing and understanding.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 2b3d5686d76ee65fceca31d0d3343c2eaa4f2364)
-
-commit 64b948c21a4608a7680012e247f23dd2a3393f3f
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed May 4 15:03:55 2016 +0800
-
- mon/Monitor: fix memory leak
-
- Fixes: http://tracker.ceph.com/issues/15793
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit ae5184ac07523a050584a3d621954baeb0dca01a)
-
-commit 9c3c6d57552a0a2cd448f0e60ded2f96ef9802ef
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed May 4 14:54:32 2016 +0800
-
- mon/Monitor: use VOID_TEMP_FAILURE_RETRY wrapper for fd close().
-
- This is safer and much more robust.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit bfa40363b2d8fc25b4aed0164579d55137ac9e8b)
-
-commit 544c538d3720d7f18fca29ba15fd47200d3e05fc
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed May 4 10:02:01 2016 +0800
-
- mon/Monitor: add "host" to tracked_conf_key
-
- The get_tracked_conf_keys() method gets the specified keys
- registered and works as filters for configuration changing,
- so we can track these key configuration changing and react
- properly.
-
- Right now graylog prints host in its log entry, so
- Monitor::update_log_clients() also reads from conf.host
- and pass the host read from conf to graylog. That is
- why we shall get "host" to the tracked_conf_key too.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit c79fc3305be42bd6126e8a60ae1f220d86754830)
-
-commit e5ebb51f22c43d49d716129ffcb5f87390b7acab
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 19 15:52:16 2016 -0400
-
- journal: replay position might change after pruning stale tags
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0f5f1c375d8ef7b301cfd20b6848bdc81a761746)
-
-commit 9ecc3dcb76cc8f6d2904118d6b246d77d10cd9cf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 19 15:50:04 2016 -0400
-
- librbd: delay commit of overwritten journal event
-
- With the cache enabled and write-after-write IOs to the same
- object extents, it was possible for the overwritten journal event
- to be committed before the overwriter journal event was written
- to disk. If a client crash occurs before the event is written,
- the image will be inconsistent on replay.
-
- Fixes: http://tracker.ceph.com/issues/15938
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e8bf64cc85ffe3d2dda23eab1834f7a5f104f6fe)
-
-commit 070dc7c98daaacaa05f72f50561d47ce459984da
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 19 14:13:46 2016 -0400
-
- ObjectCacher: pass new journal tid when overwriting extent
-
- librbd needs to ensure the new journal event has been safely
- committed to disk before it can mark an overwritten journal
- event as committed.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0051316effe0b25804378975b117691d7ad08a3b)
-
-commit 0dfc787ef58fe9aa8177742f7c6e294e3b5d4b89
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 19 13:48:22 2016 -0400
-
- qa/workunits/rbd: record rbd CLI debug messages during mirror stress
-
- The debug messages from 'rbd bench-write' and 'rbd snap create',
- in addition to the existing debug messages from rbd-mirror, make
- it possible to determine the source of any image inconsistency.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 714ed5e64e65fed9ac886537becf3a85ae6ae7fd)
-
-commit ffd545bf173c5a076c47541cbe3889175188d73e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon May 16 14:35:12 2016 -0700
-
- rgw: keep track of written_objs correctly
-
- Fixes: http://tracker.ceph.com/issues/15886
-
- Only add a rados object to the written_objs list if the write
- was successful. Otherwise if the write will be canceled for some
- reason, we'd remove an object that we didn't write to. This was
- a problem in a case where there's multiple writes that went to
- the same part. The second writer should fail the write, since
- we do an exclusive write. However, we added the object's name
- to the written_objs list anyway, which was a real problem when
- the old processor was disposed (as it was clearing the objects).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 8fd74d11682f9d0c9085d2dc445fc3eb5631f6e0)
-
-commit 8356021ef3d3d21fd632d3caa660ba9a03cf80d3
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 12 16:57:49 2016 -0700
-
- Pipe: take a ref to existing while we are waiting
-
- Otherwise, if it is reaped while we are waiting, it'll be a
- use-after-free.
-
- Fixes: http://tracker.ceph.com/issues/15870
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit b224912d249453d754fc0478d3680f8cfa1a5c22)
-
-commit c11db6f103b2dd0049894a606916a84d66933833
-Merge: 7834070 e0dfc55
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 20 14:57:00 2016 -0400
-
- Merge pull request #9232 from jdurgin/wip-mirror-workunit-jewel
-
- jewel: qa/workunits/rbd: fixed rbd_mirror teuthology runtime errors
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit e0dfc55ac874f2531bd0b88aa1c81156d7f7aec9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 14:17:13 2016 -0400
-
- qa/workunits/rbd: fixed rbd_mirror teuthology runtime errors
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8ef09c4d8d3c7c6fbc9b6f7ef17cca0179e73468)
-
-commit 7834070fd8ead19e49fb8c766ea3ce8bfe63f032
-Merge: 9873fc1 5f09b9a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 20 09:02:51 2016 -0400
-
- Merge pull request #9226 from dillaman/wip-15950
-
- jewel: rbd-mirror: potential crash during image status update
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 9873fc13d5647e94ec6f0152f903dd67b2882b0d
-Merge: aee6f7e 6c2973c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 20 09:02:06 2016 -0400
-
- Merge pull request #9069 from dillaman/fixup-mirror_image_status_list-jewel
-
- jewel: cls::rbd: mirror_image_status_list returned max 64 items
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5f09b9aef8f30d9dc7e5ec934b228d885e6456e2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu May 19 10:11:12 2016 -0400
-
- journal: reset watch step after pruning expired tag
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 48c2f4e079000021b6ebe807bb1dba0dc1a6a11d)
-
-commit 2ee1e0a583d0ca851db4671b561eff9d493ca7d3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 11:01:22 2016 -0400
-
- rbd-mirror: additional debug messages during image replayer start/stop
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit afc891f7fcb000d106b1d722386f6d81ddeddab6)
-
-commit f9e6bd8f1b6750d500fba3dd134257b7baac08c3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 00:55:01 2016 -0400
-
- rbd-mirror: ensure proper handling of status updates during shutdown
-
- Previously, several shutdown race conditions could occur due to the
- use of the async work queue for scheduling updates.
-
- Fixes: http://tracker.ceph.com/issues/15909
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9ae4edc05660665c3a135536a7c51d4070d28a40)
-
-commit f789d83cbb9dbb1a6daa15585e2be2980ea19616
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 17 23:31:02 2016 -0400
-
- rbd-mirror: track bootstrap state within image status
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e5dd97b4bf4a993911febf34dce90470a2a91d59)
-
-commit e0b3879692d38bcc01d928cef09f74bc850cef86
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 17 23:25:25 2016 -0400
-
- rbd-mirror: combine ImageReplayer stopped and uninitialized states
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a8f6dde4dbae8039380f31e026030a22a89fb4bd)
-
-commit 9c7977da45aef44160efadb48cb2d606568d4a7b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue May 17 16:14:42 2016 -0400
-
- rbd-mirror: lock ordering issue in status update callback
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5c04c1361074ca9e9df1bc1c2dd82dfafc2a1304)
-
-commit 66f7f2d7bda7f2db6871870f5622594d6391b921
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 4 15:23:11 2016 +0300
-
- rbd-mirror: don't unregister asok commands if image replayer start failed
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 2fd6fdd3dc9ecb915362f5e3aa8a224210273540)
-
-commit 569f06f1241309a710a0570d4ede950c1dc6e5d1
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 4 15:25:04 2016 +0300
-
- rbd-mirror: avoid potential deadlock
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 46bf727d43af4975beeb514630a99d59cfb0a406)
-
-commit aee6f7ed791abd63ff9d1158a258d51db6c5ad28
-Merge: 2d0669e 0d19390
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 20 09:01:50 2016 -0400
-
- Merge pull request #9217 from dillaman/wip-15945
-
- jewel: journal: live replay might skip entries from previous object set
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 0d193905b1d552600b542a466759af054c80e498
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 16 21:17:09 2016 -0400
-
- qa/workunits/rbd: rbd-mirror daemon stress test
-
- This test repeatedly runs rbd bench-write, kills the process
- randomly to create an unclean journal shutdown, and verifies
- that the image content replicates correctly.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e2ab3128a37f4f36c9a1de6ddf2c0fe2e48aa7e2)
-
-commit d020b6ab1d10daa92fc99d1506222987b4306b26
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon May 16 18:08:35 2016 -0400
-
- journal: helper method to detect newer tags
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0a8a6126ea35344e85af7eb64ffc490938edba51)
-
-commit 56515070710a6723ae4adc3e3b166e9ae9a35fdf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun May 15 09:52:41 2016 -0400
-
- journal: skip partially complete tag entries during playback
-
- If a journal client does not fully write out its buffered entries
- before quiting, replay should skip over all remaining out-of-
- sequence entries for the tag.
-
- Fixes: http://tracker.ceph.com/issues/15864
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9454f7e4c62437b1c288f371009feba1fd374584)
-
-commit 18f663d834edd03b42e2c08b9428e72fdc6bae9d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sat May 14 18:58:41 2016 -0400
-
- journal: close, advance, and open object set ordering
-
- Flush in-flight appends to open objects before advancing the
- active object set. Additionally, don't start recording to the
- new objects until after advancing the active set.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit de830057d0f7286914e019540c6263423cb60428)
-
-commit 27fba6ad7e7cb566d32c6e63f35aff966fc60bd7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sat May 14 18:13:38 2016 -0400
-
- journal: new ObjectRecorder closed callback
-
- The callback will be invoked if there were in-flight appends
- when the close was requested.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit bba91437dbe3b7a9b6da8a61ccc4c597858c8efc)
-
-commit 870c21c738e42d2cf34478bfa0631d602175dadc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 16:34:44 2016 -0400
-
- journal: do not flag append as full if already known to be full
-
- Once an object has overflowed or a close is in-progress, re-attempting
- to close the object is not needed since the async process is already
- underway.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 45620dc312ca2aeaf084638144aaa4783b622c4a)
-
-commit 1cdebc7b896dd36bfee30f12aa3abd602c15af3e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 16:28:50 2016 -0400
-
- journal: delay object overflow event until in-flight appends settled
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ee8d311a1fcdf7a85cdc168e1740fbaa252e87d3)
-
-commit 821d92af2fcc43ff560f01c78ff699ad7df33daa
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 16:17:37 2016 -0400
-
- journal: ignore flush on closed/overflowed object
-
- The journal would be in-progress on transitioning to a new
- object recorder in a newer object set. Once the records
- re-attach to the new object player they will automatically
- flush.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a13cb821f71b6b1b3378464bcc2d8318eb0da48a)
-
-commit 3d860d5db37f77c1e8c76d214529266062caaa75
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 16:10:11 2016 -0400
-
- journal: implicitly detach future's flush handler on append
-
- If the future is already in-flight, there is no purpose served
- by requesting the future be flushed to disk.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1cb9b1a1b25d0f4c2d9a9e22661636e195fc70a0)
-
-commit f98e1289ce10aeb059a0b7d7cc8d17d6f1d60219
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 15:22:30 2016 -0400
-
- journal: async callback for advancing the active object set
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ca89abfd9e6f0e8edc3234afea387757ef694826)
-
-commit 86e51ebcb301d823fb5c8b30bdc07107704679b4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri May 13 14:49:07 2016 -0400
-
- journal: re-fetch active object before advancing set during replay
-
- During a live replay, it's possible that an append and and overflow
- into the next object could race with the live playback of the same
- object. Re-fetch an "empty" object at least once before advancing
- to next set to ensure all records have been read.
-
- Fixes: http://tracker.ceph.com/issues/15665
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6056f8c45c99bd37cb18933a37cc238c7e9a7c7d)
-
-commit 2d0669e172c37d38f118332574a474a534d27020
-Merge: f3979cd e885f1e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 19 13:08:00 2016 -0700
-
- Merge pull request #9210 from yehudasa/wip-15926-jewel
-
- radosgw-admin: fix 'period push' handling of --url
-
-commit e885f1e3be0f9a0c6457c5387f1c38b6e8b6a492
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon May 16 09:37:05 2016 -0400
-
- radosgw-admin: fix 'period push' handling of --url
-
- was calling send_to_remote_gateway(), but passing 'url' instead of
- 'remote'. now uses send_to_remote_or_url() to accept either
-
- Fixes: http://tracker.ceph.com/issues/15926
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
-
-commit f3979cd1d2fe910185db6dc3894722dd385379bd
-Merge: 1356d29 37ecfa6
-Author: Boris Ranto <branto@redhat.com>
-Date: Thu May 19 12:56:15 2016 +0200
-
- Merge pull request #9194 from ceph/wip-jewel-no-lttng-global-link
-
- Do not link lttng into libglobal
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 37ecfa6c754683cac1c6f4c66a1a491d2fd5db1d
-Author: Karol Mroz <kmroz@suse.com>
-Date: Mon May 2 14:01:27 2016 +0200
-
- global: don't link lttng into libglobal
-
- Rely on dynamic initialization instead. Linking lttng in this way had
- the unfortunate side effect of causing radosgw to segfault (when
- daemonized) during sigterm processing (ie. during lttng_ust_exit()).
-
- This was originally removed in 638738f, but accidentally re-added via
- 5f61d36.
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
-
-commit 1356d29c70afedcbd55599d29aab93d2f79a02ad
-Merge: 15c4ad4 16ba13c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed May 18 13:23:39 2016 -0400
-
- Merge pull request #9180 from dillaman/wip-15746-jewel
-
- jewel: doc: update mirroring guide to include pool/image status commands
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 16ba13c83d678656723173c061318dd83805768a
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu May 12 11:15:34 2016 +0300
-
- doc: update mirroring guide to include pool/image status commands
-
- Fixes: http://tracker.ceph.com/issues/15746
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 4381e341c435c80793b847115eed616b8359c4e6)
-
-commit 818166e25d2ccac5d9bb3541f6166fcb8c25fd64
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu May 12 11:11:55 2016 +0300
-
- doc: fixup: "rbd-mirror daemon" instead of "rbd-daemon"
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit ddd6345f8f7edcff638ed435aef316ba3e0e40dd)
-
-commit 15c4ad44010c798af7804e287ba71dcc289f806f
-Merge: 3a66dd4 7be281d
-Author: Sage Weil <sage@redhat.com>
-Date: Wed May 18 05:11:55 2016 -0400
-
- Merge pull request #8815 from ktdreyer/wip-15646-jewel-system-targets
-
- jewel: debian: install systemd target files
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 7be281dab96c15b53fcfc3c2ffe6d17aec84b315
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Apr 28 09:13:50 2016 -0400
-
- debian/control: dh_systemd_start is in the dh-systemd package
-
- Fixes: http://tracker.ceph.com/issues/15573
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 89154d1e01dbc58dc92f37741031f7ddb0448d2e)
-
-commit e463aa8b92dabdc7c13e150585eb09790da638ba
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Apr 22 21:07:58 2016 +0800
-
- debian: install systemd target files
-
- * enable it using dh_systemd_enable
- * start the target using dh_systemd_start
- * move the dh_installinit, dh_systemd_enable, dh_systemd_start calls
- down, so they can identify the service files if they care about them.
-
- Fixes: http://tracker.ceph.com/issues/15573
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f950a0a7f5b35e13668379bc69dcb5d98a2dfc1f)
-
-commit 72c9b6f70752faf779b9272724f428e68d6499bb
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon May 9 14:15:36 2016 +0800
-
- osd: remove all stale osdmaps in handle_osd_map()
-
- in a large cluster, there are better chances that the OSD fails to trim
- the cached osdmap in a timely manner. and sometimes, it is just unable
- to keep up with the incoming osdmap if skip_maps, so the osdmap cache
- can keep building up to over 250GB in size. in this change
-
- * publish_superblock() before trimming the osdmaps, so other osdmap
- consumers of OSDService.superblock won't access the osdmaps being
- removed.
- * trim all stale osdmaps in batch of conf->osd_target_transaction_size
- if skip_maps is true. in my test, it happens when the osd only
- receives the osdmap from monitor occasionally because the osd happens
- to be chosen when monitor wants to share a new osdmap with a random
- osd.
- * always use dedicated transaction(s) for trimming osdmaps. so even in
- the normal case where we are able to trim all stale osdmaps in a
- single batch, a separated transaction is used. we can piggy back
- the commits for removing maps, but we keep it this way for simplicity.
- * use std::min() instead MIN() for type safety
-
- Fixes: http://tracker.ceph.com/issues/13990
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 369db9930887d75b498927da9c97733bff4472b6)
-
-commit 6c2973cd08503a3d91eeb881732c79213e42599f
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed May 11 14:14:46 2016 +0300
-
- cls::rbd: mirror_image_status_list returned max 64 items
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e925ce86243c91e6d64ff8d7b45166e4e3f2650b)
-
-commit 36743419ba49df4f97cdbe9ac25d9b08b0685108
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Apr 29 15:24:09 2016 -0400
-
- osd/PG: update info.stats.* mappings on split
-
- These are updated in the init and start_peering_interval paths, but not
- on split.
-
- Fixes: http://tracker.ceph.com/issues/15523
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8b42294d98dd70715184991da5ba495fbe93d009)
-
-commit b443fdf9402df621400ab7ca66799f597e8b2c23
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 23 11:42:25 2016 +0200
-
- ceph.spec.in: recommend ntp-daemon on SUSE
-
- SUSE has settled on "ntp-daemon" as the generic package name. The "ntp" and
- "chrony" etc. packages have "Provides: ntp-daemon" in their respective spec
- files.
-
- References: http://tracker.ceph.com/issues/15419
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 23108547454f53b95e193086d82d433570312ad4)
-
-commit 299f84ccdbf4d91412e216042fb248fd802af89d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Apr 7 20:54:21 2016 +0200
-
- deb: make ceph-base and radosgw recommend time-daemon
-
- References: http://tracker.ceph.com/issues/15419
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit f27cda03b7a961e445cce4ad35db6417e9e55959)
-
-commit 2da7cb2c7daad3ce2f9d2614e019291f75d4737d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Apr 7 20:17:44 2016 +0200
-
- systemd: make Ceph daemon units "want" time-sync.target
-
- Fixes: http://tracker.ceph.com/issues/15419
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit df893f395e62c8b1db18a277b38b44cab8b2016f)
diff --git a/src/ceph/doc/changelog/v10.2.3.txt b/src/ceph/doc/changelog/v10.2.3.txt
deleted file mode 100644
index a21d1b7..0000000
--- a/src/ceph/doc/changelog/v10.2.3.txt
+++ /dev/null
@@ -1,5957 +0,0 @@
-commit ecc23778eb545d8dd55e2e4735b53cc93f92e65b
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Tue Sep 20 22:04:23 2016 +0000
-
- 10.2.3
-
-commit 9bfc0cf178dc21b0fe33e0ce3b90a18858abaf1b
-Merge: aeee80e 1cbc839
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 29 13:43:15 2016 +0200
-
- Merge pull request #10804 from dachary/wip-17089-jewel
-
- jewel: OSD failed to subscribe skipped osdmaps after ceph osd pause
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit aeee80e64af2f685ac9785c3444f40b60d0877f2
-Merge: 3168a84 dc154cd
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 29 13:43:00 2016 +0200
-
- Merge pull request #10760 from dachary/wip-16865-jewel
-
- jewel: saw valgrind issues in ReplicatedPG::new_repop
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 3168a8482211a2aaf9b4d715c0f7a920e896d9bb
-Merge: 12b374f ce986aa
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 26 22:12:39 2016 +0200
-
- Merge pull request #10662 from dachary/wip-16901-jewel
-
- jewel: segfault in RGWOp_MDLog_Notify
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 12b374fccfb9792998ab88a4d7777f8b8134cb5c
-Merge: 91ee75f f298643
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Aug 26 10:31:06 2016 +0200
-
- Merge pull request #10763 from dachary/wip-17034-jewel
-
- jewel: rgw: object expirer's hints might be trimmed without processing in some circumstances
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 91ee75f39c05fe0c25aab2664f1fa71f858e7c6f
-Merge: d8bdc22 a865f26
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Aug 26 10:28:10 2016 +0200
-
- Merge pull request #10658 from dachary/wip-16862-jewel
-
- jewel: default zone and zonegroup cannot be added to a realm
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit d8bdc2245ddec91c2f55d367045e4407112d2af1
-Merge: 6d270f6 fa2e42d
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Aug 26 10:26:53 2016 +0200
-
- Merge pull request #10659 from dachary/wip-16863-jewel
-
- jewel: use zone endpoints instead of zonegroup endpoints
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 6d270f6084a035040638638ff65c14f5d76eeef1
-Merge: fe23c2e 2485efc
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Aug 26 10:24:20 2016 +0200
-
- Merge pull request #10660 from dachary/wip-16864-jewel
-
- jewel: multisite segfault on ~RGWRealmWatcher if realm was deleted
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit fe23c2edc70d1ad15e640195570e624b31415aef
-Merge: a57c21a 577336e
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 26 00:46:17 2016 +0200
-
- Merge pull request #10847 from gregsfortytwo/jewel-fix-mds
-
- mds: fix double-unlock on shutdown
-
- Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
-
-commit a57c21afa686967a3afc4ddabb97c665e5894b21
-Merge: 49022d4 ce5e250
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 23:04:37 2016 +0200
-
- Merge pull request #10663 from dachary/wip-16934-jewel
-
- jewel: Add zone rename to radosgw_admin
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 49022d4b2e2c5506dd83f3d894ac0a4ba83f8c7b
-Merge: f7afbbf 22c9df1
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 23:04:22 2016 +0200
-
- Merge pull request #10664 from dachary/wip-16958-jewel
-
- jewel: Bug when using port 443s in rgw.
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit f7afbbf094e5eabc1a651379f522d0b1544b01a3
-Merge: 7b672cb 73cc608
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 23:04:07 2016 +0200
-
- Merge pull request #10764 from dachary/wip-17032-jewel
-
- jewel: multisite: RGWPeriodPuller tries to pull from itself
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 7b672cbe343955228b2a701eba91a30f5cac7fe5
-Merge: 28bc826 55460e2
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 23:03:40 2016 +0200
-
- Merge pull request #10765 from dachary/wip-17006-jewel
-
- jewel: Increase log level for messages occuring while running rgw admin command
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 28bc826e9140520e86e2eb34470103979d10ae49
-Merge: 8b37c68 21da103
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 22:25:21 2016 +0200
-
- Merge pull request #10845 from cbodley/wip-16702
-
- jewel: rgw: add tenant support to multisite sync
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8b37c68f761d59025678c184a4f9b1755c90a628
-Merge: 94eb163 2266287
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 09:17:52 2016 +0200
-
- Merge pull request #9405 from SUSE/wip-16083-jewel
-
- jewel: mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 94eb163c19e02ffae06659ced714140bd55584f0
-Merge: 9de2e93 f5db5a4
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 25 09:02:17 2016 +0200
-
- Merge pull request #10654 from dachary/wip-9577-jewel
-
- jewel: mon: "mon metadata" fails when only one monitor exists
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 577336e20f68aa289311103e54d4def793b0cc01
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Wed Aug 24 13:34:43 2016 -0700
-
- mds: fix double-unlock on shutdown
-
- We did a bad backport or something and accidentally ended up with two Unlock()
- calls on mds_lock. Don't.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 21da1039fc57bcf4054c0e7a13bb2732781770f6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jul 12 20:36:35 2016 -0700
-
- rgw: collect skips a specific coroutine stack
-
- Fixes: http://tracker.ceph.com/issues/16665
-
- Instead of drain_all_but() that specifies number of stacks to leave behind,
- added drain_all_but_stack() that has a specific stack specified. This is needed
- so that we don't call wakeup() through lease_cr->go_down() on a cr stack that
- was already collected.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5a2e8f0526db92a290c711f82627fc5042c290ea)
-
-commit 9de2e93d1b55c5f5f54b3dbf334d1513abb3f174
-Merge: 1d5dedf d1e0512
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 22:08:58 2016 +0200
-
- Merge pull request #10791 from dachary/wip-17004-jewel
-
- jewel: rbd-mirror: FAILED assert(m_state == STATE_STOPPING)
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1d5dedf0307f0fddf55f6487486a281c2625ef92
-Merge: e30c76e ecea6dc
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 22:08:30 2016 +0200
-
- Merge pull request #10827 from dillaman/wip-16950-jewel
-
- jewel: librbd: delay acquiring lock if image watch has failed
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 98779c32de98efc367e888b99fd154ad4e5274d9
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Jul 11 17:38:43 2016 -0700
-
- rgw: fix compilation
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit 874de58024e12d893ae050cd421ef67c9521c753)
-
-commit f5d9537d3e69197c7eadb21a6d0d01373530e2de
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jul 7 14:42:00 2016 -0400
-
- rgw: remove datalog keys from error repo on ENOENT
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 16976eedb70292e821193e39bb577a68df1bc95a)
-
-commit 32505b2c8d703d09224b6a2f7007b20a79e0fb3d
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Jul 1 12:36:04 2016 -0400
-
- test/rgw: add optional --tenant flag to test_multi.py
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 6f65d192cd3917cdcf7d9deb5396750d2c641842)
-
-commit f68337aaa535ea182258eb4934af739fb703f556
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jun 30 15:50:00 2016 -0400
-
- rgw: add tenant id to GetBucketInstanceInfo
-
- use the rgw_bucket overload of get_bucket_instance_info() so it can
- supply the tenant id
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 3cf715c6828d7d9732bf6a6fd9b46bbd8c08de5f)
-
-commit a0ffffa5aad423f363bf10a6b8dbaf19a47262a2
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jun 29 11:58:55 2016 -0400
-
- rgw: carry tenant id with data sync
-
- use rgw_bucket_shard to track buckets, which includes tenant id
-
- Fixes: http://tracker.ceph.com/issues/16469
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit d945e2099525e39588b572e357b115df98c8cdca)
-
-commit bff626f7b32b3fe918510c147f88c49ead5007fa
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jun 30 17:43:40 2016 -0400
-
- rgw: add tenant to url for RGWRESTStreamWriteRequest
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 2a1e1a776c58f62fbcb57877d56b92eb1e8933e6)
-
-commit dc50687f9ee7291192b2291c3c5770c46c852677
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jun 30 17:42:54 2016 -0400
-
- rgw: add tenant to rgw_bucket json format
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit fc0df4802b48fa095587b93557c82da5446d9ca3)
-
-commit 06223adc51d2ccc1494c5e6891ad367edde69a91
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jun 30 00:13:47 2016 -0400
-
- rgw: add rgw_bucket_parse_bucket_key()
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit d5ac140040ea2f17e33d2846870cb033c7ae6ffa)
-
-commit b4f687ee7fce682a41c707af7e2feb6b3a1cbe15
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Jun 28 11:24:46 2016 -0400
-
- rgw: add tenant name to datalog entries
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit c8aa668fc3e34a7651ce6e2dda62902ced808541)
-
-commit dda0ee035fe9bb0c2fc4366df8355184db5034e3
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jul 6 11:50:47 2016 -0400
-
- rgw: convert bucket instance listings back to metadata key format
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 3eae201c8a1513bae23233700c754ec076360664)
-
-commit 6225a6d45b8e76f9afaa741fa61d4b9742ef60fb
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Jul 5 09:00:19 2016 -0400
-
- rgw: use tenant/ for bucket instance metadata keys
-
- to work around the ambiguity of parsing tenant: and :shard in the same
- bucket instance metadata key, use tenant/ instead
-
- to preserve backward compatibility with existing objects, new helper
- function rgw_bucket_instance_key_to_oid() converts this / back to a :
- before being used as an object name
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit a0befa1e7be3aeb37209bac2e2a7de0edf5d5a95)
-
-commit cac6612a8a4f344e910d0c880ee8d020fac1ec79
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jun 30 18:09:03 2016 -0400
-
- rgw: add get_key() methods to format rgw_buckets
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 51ff8ef7c6bb7c9f55f3ca8ad059b029a4088cdf)
-
-commit ac557e04e2d104fe9fdeae1d1ca31e212cfc89f6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jun 6 16:16:33 2016 -0700
-
- rgw: data sync debug logging
-
- a high level debug logging of the data sync process.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 97ef16c0cc0ad8345b5a897108717d83ab0aa9ab)
-
-commit 6bb8c15a38e1ebf4e2b03f43bb527d460cd82dc3
-Author: Pritha Srivastava <prsrivas@redhat.com>
-Date: Thu Jun 16 14:45:57 2016 +0530
-
- rgw: modifying multi-site log messages.
-
- Increasing the log level and removing 'ERROR' from messages that appear during normal multi-site operation.
- Fixes: http://tracker.ceph.com/issues/16121
-
- Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
- (cherry picked from commit e1737ddaa035f23757d021dd34b0c87d24ce372c)
-
-commit e30c76ee33ddcb1a58835637c5e506c6c4b61b12
-Merge: df71e57 308f514
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 18:57:23 2016 +0200
-
- Merge pull request #10653 from dachary/wip-10495-jewel
-
- jewel : 60-ceph-partuuid-workaround-rules still needed by debian jessie (udev 215-17)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit df71e5740255ffc0a809b2c437ce37826aed11d3
-Merge: 286b30f f80d10c
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 18:51:54 2016 +0200
-
- Merge pull request #10357 from SUSE/wip-16748-jewel
-
- jewel: mount.ceph: move from ceph-base to ceph-common and add symlink in /sbin for SUSE
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 286b30fc54c1ea6a41c38a80c5227f9deeb13741
-Merge: eb28401 48ee3aa
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 17:48:00 2016 +0200
-
- Merge pull request #10790 from dachary/wip-17005-jewel
-
- jewel: ImageReplayer::is_replaying does not include flush state
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit eb28401a59e2ca1a30d0f29aab7a2ea5eb704aea
-Merge: 4f3605b d336735
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 17:47:45 2016 +0200
-
- Merge pull request #10792 from dachary/wip-16978-jewel
-
- jewel: rbd-mirror: FAILED assert(m_on_update_status_finish == nullptr)
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4f3605b0c3cba436b362318487bec4358ea8c4d0
-Merge: 0c60d47 8316b6a
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 17:47:36 2016 +0200
-
- Merge pull request #10646 from dachary/wip-16576-jewel
-
- jewel: rbd-mirror: FAILED assert(m_local_image_ctx->object_map != nullptr)
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 0c60d47579591f07bc4e8d24a52c0355fbd17917
-Merge: 6dd0327 5968664
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 17:47:18 2016 +0200
-
- Merge pull request #10647 from dachary/wip-16593-jewel
-
- jewel: FAILED assert(object_no < m_object_map.size())
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 6dd0327b40b35e19cb14ce30dec0d75d5a7da086
-Merge: cb4cb4a e098fb1
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 17:47:08 2016 +0200
-
- Merge pull request #10786 from dachary/wip-17061-jewel
-
- jewel: bashism in src/rbdmap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit cb4cb4a02b160d9dd65e624cd762c12284eed241
-Merge: 089bb43 46246e3
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 24 14:12:34 2016 +0200
-
- Merge pull request #10421 from SUSE/wip-16659-jewel
-
- jewel: ReplicatedBackend doesn't increment stats on pull, only push
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 089bb43b146408e5e670c3788990b712d8d26543
-Merge: 59b6c20 28697fc
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 15:42:11 2016 +0200
-
- Merge pull request #10501 from Abhishekvrshny/wip-16621-jewel
-
- jewel: mds: tell command blocks forever with async messenger (TestVolumeClient.test_evict_client failure)
-
- Reviewed-by: Douglas Fuller <dfuller@redhat.com>
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 59b6c20ea5bfb2d7062f7119ffbecd312d342bc4
-Merge: e1ddce7 f4fb598
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 15:23:34 2016 +0200
-
- Merge pull request #10816 from SUSE/wip-17092-jewel
-
- jewel: build/ops: need rocksdb commit 7ca731b12ce for ppc64le build
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ecea6dcf1c36bc5d478cf030f7ba1e01ca35a2d0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 4 13:24:54 2016 -0400
-
- librbd: delay acquiring exclusive lock if watch has failed
-
- Fixes: http://tracker.ceph.com/issues/16923
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit dfe9f3eac9cca3b83962e0e1b7eac38e6e76d7a5)
-
-commit 49a39ebf6f7c6b7b0b19e4486fc10e57637e143c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 4 13:47:33 2016 -0400
-
- librbd: convert ImageWatcher class to template
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 814c305ce8c35b5ce01d7e29a912d5ef3978754b)
-
- Conflicts:
- src/librbd/ImageWatcher.cc: no shrink guard
- src/librbd/Operations.cc: no shrink guard
-
-commit e1ddce7654698f3e41d89406981b1eb26f8f72a3
-Merge: 2c387d5 a7987f0
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:48:19 2016 +0200
-
- Merge pull request #10103 from xiaoxichen/wip-16037-jewel
-
- jewel: MDSMonitor::check_subs() is very buggy
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 2c387d5cd2785d518982f1c0d209235c240cb7ae
-Merge: 128251c 64d99b1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:48:01 2016 +0200
-
- Merge pull request #10105 from xiaoxichen/wip-16515-jewel
-
- jewel: Session::check_access() is buggy
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 128251ceddf6129a1836a6d991a727adc93869df
-Merge: d27c6ac bce5646
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:47:37 2016 +0200
-
- Merge pull request #10106 from xiaoxichen/wip-16215-jewel
-
- jewel: client: crash in unmount when fuse_use_invalidate_cb is enabled
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit d27c6ac57b5cd2f5566c5ecf476b8fe37041ab27
-Merge: 63422d0 fd7ff96
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:47:23 2016 +0200
-
- Merge pull request #10108 from xiaoxichen/wip-16320-jewel
-
- jewel: fuse mounted file systems fails SAMBA CTDB ping_pong rw test with v9.0.2
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 63422d08ea6d401cefd6b438a7de48c1528da114
-Merge: 9fd5291 aa39361
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:47:10 2016 +0200
-
- Merge pull request #10199 from SUSE/wip-16625-jewel
-
- jewel: Failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 9fd5291345e4f7d08faf8110ba78df244d030db6
-Merge: 2823714 2beb56a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:46:53 2016 +0200
-
- Merge pull request #10499 from Abhishekvrshny/wip-16299-jewel
-
- jewel: mds: fix SnapRealm::have_past_parents_open()
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 282371465476e37408f65fc33145f8a76cf35ac7
-Merge: e2f7de6 1d3a816
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:46:38 2016 +0200
-
- Merge pull request #10500 from Abhishekvrshny/wip-16620-jewel
-
- jewel: Fix shutting down mds timed-out due to deadlock
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit e2f7de68393dcf008e366cfc40b199b5acfcd428
-Merge: 6f287bf 7c2eab1
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:46:13 2016 +0200
-
- Merge pull request #10502 from Abhishekvrshny/wip-16797-jewel
-
- jewel: MDS Deadlock on shutdown active rank while busy with metadata IO
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 6f287bf2b99b8f6b1ae21f017d905dfa4a569649
-Merge: d68d41e d244b7a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 08:45:41 2016 +0200
-
- Merge pull request #10104 from xiaoxichen/wip-16560-jewel
-
- jewel: mds: enforce a dirfrag limit on entries
-
- Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
-
-commit d68d41ebdae92666b4dcf6cc8455cf17ab1d903a
-Merge: bc6e329 a5f5513
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 23 01:19:33 2016 +0200
-
- Merge pull request #10074 from ceph/jewel-16002
-
- jewel: ObjectCacher split BufferHead read fix
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit f4fb59896ccb0d8ac01434cd4cf6ad67776fb0a0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Aug 22 20:56:38 2016 +0200
-
- build/ops: bump rocksdb submodule
-
- Fixes a FTBFS on ppc64le
-
- Fixes: http://tracker.ceph.com/issues/17092
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit bc6e3291b4960779fb84b2976079490d5f8f4935
-Merge: 46106f0 e825dd2
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 22 10:37:14 2016 +0200
-
- Merge pull request #10537 from theanalyst/wip-16778-jewel
-
- jewel: rgw multisite: preserve zone's extra pool
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 46106f0c0cfeb8746a521559bb466a5021a2c221
-Merge: 1bf76cd 96ad2d1
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:31:39 2016 +0200
-
- Merge pull request #10655 from dachary/wip-16163-jewel
-
- jewel: rgw: can set negative max_buckets on RGWUserInfo
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 1bf76cd58ec3635291e5c0080df47f0845088b77
-Merge: 3cef399 8b9954d
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:29:40 2016 +0200
-
- Merge pull request #10580 from dreamhost/wip-16928-jewel
-
- jewel: rgw: Fix civetweb IPv6
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3cef399857b5cb234e0f4cd54933d58744736f62
-Merge: e1bc847 9e5a3ae
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:28:14 2016 +0200
-
- Merge pull request #10216 from SUSE/wip-16637-jewel
-
- jewel: add socket backlog setting for via ceph.conf
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit e1bc84776e7a95062311fb6b00a85a5327926c92
-Merge: 089967f 429e9c0
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:27:03 2016 +0200
-
- Merge pull request #10167 from jmunhoz/aws4-streaming-backport-jewel
-
- jewel: rgw: aws4: add STREAMING-AWS4-HMAC-SHA256-PAYLOAD support
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 089967f4374569495d177c7dea1e345ca08c772a
-Merge: 8e2de35 44decb4
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:13:51 2016 +0200
-
- Merge pull request #9544 from Abhishekvrshny/wip-16085-jewel
-
- jewel: A query on a static large object fails with 404 error
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 8e2de35324258cdbe44dfe8e7ce757ca1b3ef99b
-Merge: 3f007a1 059ed62
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:10:25 2016 +0200
-
- Merge pull request #10525 from Abhishekvrshny/wip-16732-jewel
-
- jewel: Bucket index shards orphaned after bucket delete
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3f007a192f8629b7a6000846db41550eb94cdcb2
-Merge: 1019325 8655803
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:09:21 2016 +0200
-
- Merge pull request #10188 from dreamhost/wip-16618-jewel
-
- jewel: rgw: fix multi-delete query param parsing.
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 1019325af6c7153893a74b126f2c5e6534841bc4
-Merge: 0cd574f 4a3c9f3
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 22 10:06:51 2016 +0200
-
- Merge pull request #9266 from Abhishekvrshny/wip-15964-jewel
-
- jewel: rgw: realm pull fails when using apache frontend
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 0cd574f5a9a1db4ddfe262e2c4eb4643c5af9075
-Merge: cdd4ab2 dbf8cf0
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 22 10:02:20 2016 +0200
-
- Merge pull request #10710 from rzarzynski/wip-16393-jewel
-
- jewel: rgw: improve support for Swift's object versioning.
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 1cbc839ebd11acb2ed0ebf0b0117eab09b5141c3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 15 15:42:29 2016 +0800
-
- osd: set objecter.osdmap when starts
-
- if any OSD is full or the pause flag is set in cluster, objecter will
- always try to subscribe the next osdmap using the mon client shared with
- OSD. but if the OSD's osdmap is very far behind on osd maps due to some
- reasons, `MonClient::sub_want_increment()` will reject the subscribe
- request from OSD, because it's asking for older maps while the mon client
- is about to send the request from objecter for the *next* osdmap.
-
- so we need to update objecter with the latest local osdmap, so it is
- able to skip the new osdmaps if OSD needs to catch up with the cluster
- first.
-
- Fixes: http://tracker.ceph.com/issues/17023
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 1515e08e7d425f01d2e9d02c34b2ae40cdf2611a)
-
-commit 4d37cfb6eed1737b21d9f3f18eee6169f48445b2
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 12 19:19:51 2016 +0800
-
- mon/MonClient: should update sub_sent with sub_new
-
- std::map::insert() does not overwrite existing items with the same key.
- so we need to do this in a different way. and we will check sub_sent
- aftewards, so we need to keep an updated sub_sent around.
-
- Fixes: http://tracker.ceph.com/issues/17023
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 550814900ebca9dd89e088b9abe24f66eb5e3e6d)
-
-commit cdd4ab2897a3d0004b1e50401754004f95559e18
-Merge: 38433ad 5498377
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Aug 21 21:48:20 2016 +0200
-
- Merge pull request #10797 from trociny/wip-17080-jewel
-
- jewel: the option 'rbd_cache_writethrough_until_flush=true' dosn't work
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 5498377205523052476ed81aebb2c2e6973f67ef
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 17 12:08:37 2016 -0400
-
- librbd: cache was not switching to writeback after first flush
-
- Fixes: http://tracker.ceph.com/issues/16654
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2d9840af39555ce00246b50e4a5c186798bd88ff)
-
-commit 471871e752963bf8cc42dcc1ec7e44e34e7e0ca2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 26 23:28:43 2016 -0400
-
- test: unit test cases for disabling librbd journal by policy
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4a256f5044ac54a8a0a9598ee7fd151b8ea08f84)
-
- Conflicts:
- src/test/librbd/CMakeLists.txt (test_ConsistencyGroups.cc)
-
-commit 062162f88f1bdaaaa96713429007757b72ec92f9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 27 10:56:48 2016 -0400
-
- librbd: utilize factory methods to create AioObjectRequest objects
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2e5076eb19172919deeb0f4d11f2b2b6cc03fab3)
-
-commit d8eddc6b58fa2b0589719fab54beb42bc8e440bf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 27 09:07:00 2016 -0400
-
- librbd: convert AioObjectRequest/AioObjectRead classes to templates
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 840a473e7fb94124ca7c571fc3dd2c787e0d265a)
-
-commit 1a7cb60ee4b898aaea43a9963e95ed575ec66f56
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 27 09:54:44 2016 -0400
-
- librbd: move read callback helpers to narrowest scope
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 65b336f68596a430629692a8682c5cfe883c31f1)
-
-commit 026f6d2da25d41f21f5bb5f8ee367cc7601296f7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 26 23:26:08 2016 -0400
-
- librbd: convert AioImageRequest derived classes to templates
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a945c2c235d9259b1d4a8a579d7e6efc2ed35916)
-
-commit 61f0acb82ba344139bc2aa486fb096e5576e2553
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 27 08:49:44 2016 -0400
-
- librbd: removed namespace indentation from legacy classes
-
- Better follows the Ceph C++ style guide
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f1e391982b43ddfb363ff913260460368a6d5834)
-
-commit e83866bcf01f32c35af94a47ee614361b4a787e6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 26 22:58:24 2016 -0400
-
- librbd: do not record journal events if append is disabled by policy
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 405142c615352613e8bacee46e92484eb0c08f26)
-
-commit a9a84bad431f2d9916bdf88980b1cd2d0e36a1e5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 26 20:57:40 2016 -0400
-
- librbd: remove unused journal replay canceled callback
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f453554edcb16ec72714b2456c08bab9e339b1eb)
-
-commit 942950007f9c424949eacf1d1cf3a74ef3b95725
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 26 20:48:13 2016 -0400
-
- librbd: optionally support disabling journal appends via policy
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f7eeacd02f8f80c5d1d5d9cfed35bbd23f64b018)
-
-commit 1f63307a339fcfe3045cc001a72d1ecc197a7010
-Author: shawn <cxwshawn@gmail.com>
-Date: Fri Jun 17 01:45:58 2016 -0400
-
- librbd: optimize header file dependency & modify related file.
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 2185a6275c89d9462611e965da407ea0d504987d)
-
-commit c49398dcd92bab90ab852407427bcc2c23147779
-Author: shawn <cxwshawn@gmail.com>
-Date: Tue Jun 7 03:12:55 2016 -0400
-
- librbd: optimize operation header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 88afa408683238b803606f3d63de326ead8cefee)
-
-commit 5366973897c1103a1c291c2f886692da4170d901
-Author: shawn <cxwshawn@gmail.com>
-Date: Tue Jun 7 01:59:05 2016 -0400
-
- librbd: optimize journal header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 59397e27a04fb0f2b990a86dcaf3c418457d1b72)
-
-commit c95b83e7c0cae0b322af713045745fb1c8fa411a
-Author: shawn <cxwshawn@gmail.com>
-Date: Mon Jun 6 23:36:06 2016 -0400
-
- librbd: optimize image_watcher header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit aee1559f312e9493d6580e5ffcb606fe21ee3c59)
-
-commit e955496fb638163427c71b0734f6506aa6636d28
-Author: shawn <cxwshawn@gmail.com>
-Date: Mon Jun 6 23:22:39 2016 -0400
-
- librbd: optimize image header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 461958ebc7e8ccef76b3f08a979482762267c10b)
-
-commit f403abafd5da00e5afc13abba7514fa2bdce9760
-Author: shawn <cxwshawn@gmail.com>
-Date: Mon Jun 6 22:56:49 2016 -0400
-
- librbd: optimize exclusive_lock header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 01282eb5cdeda7bbbb77438c7d1953d023ea54b6)
-
-commit 0ca8071e13492a9124be8322843cd96ca2bba531
-Author: shawn <cxwshawn@gmail.com>
-Date: Mon Jun 6 03:37:22 2016 -0400
-
- librbd: optimize object-map header file dependency
-
- Signed-off-by: Xiaowei Chen <chen.xiaowei@h3c.com>
- (cherry picked from commit 1a2276927d5956918f7a4830b4a44048ac090328)
-
-commit 03314145d1bb5f4330a92d945af9df8856284724
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jun 30 14:31:23 2016 +0300
-
- test: fix librbd tests for rbd_skip_partial_discard
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 9717417b7b8aa1b24a82a0bfddbfc23748188641)
-
- Conflicts:
- src/rocksdb this was a mistake in the original commit
-
-commit d0c0c2fce39091915428e815bc6aee265ac9e351
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jun 30 14:30:08 2016 +0300
-
- librbd: discard hangs when 'rbd_skip_partial_discard' is enabled
-
- Fixes: http://tracker.ceph.com/issues/16386
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit dc41731fbfd73d9fbb63d3ff360d4c5dd62deaf1)
-
-commit 5bf4398e373ecc26958d8480171f4322341a9d82
-Author: xinxin shu <shuxinxin@chinac.com>
-Date: Tue Jun 7 12:07:55 2016 +0800
-
- librbd: object_may_exist always return true when you write an empty object
-
- if you write an empty object, object map is updated firstly
-
- Signed-off-by: xinxin shu <shuxinxin@chinac.com>
- (cherry picked from commit a54073808146d205d54d6a932a6e0fd750f1dc38)
-
-commit 67861061fcd85f143e7d26077c71a582c6439745
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 25 12:43:13 2016 -0400
-
- librbd: ensure that AIO ops are started prior to request
-
- Fixes: http://tracker.ceph.com/issues/16708
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6064f2346de0a8bf2878bf5bfac9a992cda7c4ca)
-
-commit 47279f8e0158d0483011bca01455ef9735453b34
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 25 12:42:26 2016 -0400
-
- librbd: helper method for creating and starting AioCompletions
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3df7213c0a9f0186e3a37c9e4a10f1c8bc84446e)
-
-commit 38433ad90b81b4e398ae6f4b8e196af1a9ea20b8
-Merge: b98e27c 9fc5b41
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 19 20:35:19 2016 +0200
-
- Merge pull request #10649 from dachary/wip-16867-jewel
-
- jewel: mkfs.xfs slow performance with discards and object map
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit d3367354b02be7ee231a50b9ad8bca098f840f46
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 8 14:41:00 2016 -0400
-
- rbd-mirror: potential assertion failure during error-induced shutdown
-
- Fixes: http://tracker.ceph.com/issues/16956
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6a465d9dad417e8b52909c5478f7e3e433748948)
-
-commit d1e05127b73c53a02944edc267548656732231fd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 10 12:50:53 2016 -0400
-
- rbd-mirror: potential race condition during failure shutdown
-
- Fixes: http://tracker.ceph.com/issues/16980
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 74ec7c91f17630c77647cfc9813090d688b3410d)
-
-commit 48ee3aacef8b1628f41936bd13cc0327c44e59ef
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 9 08:13:30 2016 -0400
-
- rbd-mirror: replaying state should include flush action
-
- Fixes: http://tracker.ceph.com/issues/16970
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7246f1b771b4d1f336ac11b9e881c9eb32bcd4e1)
-
-commit e098fb14f106bf294780abd5d580244e7ce3b20c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 15 14:10:27 2016 -0400
-
- doc: added rbdmap man page to RBD restructured index
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4e05cbf7e6eda797a9b08e0081aead19523d5762)
-
-commit b7793d757fca99aa2eb371934e667b3cc555d666
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 15 14:07:43 2016 -0400
-
- rbdmap: specify bash shell interpreter
-
- Fixes: http://tracker.ceph.com/issues/16608
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 51237c33d1ec4034c5c07f5d63d63838a76bce88)
-
-commit b98e27c42f29f4fa44cbe7f4b7d9ab3633404f0c
-Merge: eb706ab 92d7882
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 19 07:12:40 2016 +0200
-
- Merge pull request #10684 from dillaman/wip-16904-jewel
-
- jewel: rbd-mirror: reduce memory footprint during journal replay
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 92d7882661d632af9e9f07817610297411c0248f
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jun 30 16:18:56 2016 +0300
-
- rbd-mirror: remove ceph_test_rbd_mirror_image_replay test case
-
- Fixes: http://tracker.ceph.com/issues/16539
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 06a333b116383de4d39c9e098e6e5fa195ceb370)
-
-commit 0d9d57385bcb544115ccdb00d6bbd67b987dbad0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 16:18:23 2016 -0400
-
- qa/workunits/rbd: override rbd-mirror integration test poll frequency
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 574be7486ad737892422aed0322f80e5750a75a0)
-
-commit 96cdb11934e359024c1a2f7cbffd55a5c7f6715b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 21 07:28:54 2016 -0400
-
- rbd-mirror: do not cancel maintenance ops with missing finish events
-
- librbd will replay these ops when opening an image, so rbd-mirror
- should also ensure these ops are replayed.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 862e581553fff510286b58135a1fd69705c06096)
-
-commit d47a23272765633df2303e142d67d78af5bd2bf4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 19 15:46:49 2016 -0400
-
- rbd-mirror: potential memory leak when attempting to cancel image sync
-
- The cancel request could race with the actual scheduling of the image
- sync operation.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e6cdf955bad500561ddada2791641eba5fb27762)
-
-commit 1e4d98cdd4c5d671870735823a80e80751ba13ae
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 19 15:42:27 2016 -0400
-
- rbd-mirror: fix issues detected when attempting clean shut down
-
- Fixed lockdep issue from status update callback and fixed the
- potential for a stuck status state.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0275c7ca23b27dc5250cd33f317e2273470a9fe8)
-
-commit e4c43190b49e94ccfeda05ac7a7a8835d81b49a5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 19 13:50:20 2016 -0400
-
- rbd-mirror: shut down image replayers in parallel
-
- When multiple pools are being replicated, start the shut down
- process concurrently across all pool replayers.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 73cdd08007c27d2c3c41fe644601e7a144f21c82)
-
-commit 1e3821268fbd17581a1352401af626a3e56ee3d4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 19 00:50:14 2016 -0400
-
- rbd-mirror: configuration options to control replay throttling
-
- Fixes: http://tracker.ceph.com/issues/16223
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 24883e0605907d1f9bcd1206c8a95c3bde30d5dc)
-
-commit 549aada7f90b9f7d4a4447d2794c18d5f61807a5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 08:11:53 2016 -0400
-
- librbd: new configuration option to restrict journal payload size
-
- Ensure that, by default, IO journal events are broken up into manageable
- sizes when factoring in that an rbd-mirror daemon might be replaying
- events from thousands of images.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 11d7500b9bcda7b7c1d8756ade3373f404257f32)
-
-commit 99195e89e4d229922c6e88aed6a024619e939040
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 19 00:42:16 2016 -0400
-
- librbd: wait for journal commit op event to be safely recorded
-
- Operation request op finish events should not be fire and forget.
- Instead, ensure the event is committed to the journal before
- completing the op. This will avoid several possible split-brain
- events during mirroring.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 47e0fbf231e52d00069c97b72c57c3158445bcf0)
-
- Conflicts:
- src/test/librbd/operation/test_mock_ResizeRequest.cc: no shrink restriction
-
-commit 3ae52ebadb5ef0de63ba30f937dcbcad507a7048
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 16:17:41 2016 -0400
-
- journal: optimize speed of live replay journal pruning
-
- When streaming playback, avoid the unnecessary watch delay when
- one or more entries have been pruned.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 08a8ee98c03b5dfb30341c8d209f0c231b2c5d27)
-
-commit 3850ded99728d1d6acfcaa72cf3923e791dd8fed
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 10:04:21 2016 -0400
-
- journal: possible deadlock during flush of journal entries
-
- If a future flush is requested at the exact same moment that an
- overflow is detected, the two threads will deadlock since locks
- are not taken in a consistent order.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2c65471de4b0f54b8ed722f5deaf51ba62632e37)
-
-commit b4b984325f67a617c890ce6ccfbea5f42322cec5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 09:15:26 2016 -0400
-
- journal: improve debug log messages
-
- rbd-mirror debugging involved potentially thousands of journals
- concurrently running. The instance address will correlate log
- messages between journals.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 11475f4fe740cccdfea459ebeabdca8cb94dc911)
-
-commit 196de276d5f1102a1cb4c7600252c9f1e783acc6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 15:34:53 2016 -0400
-
- journal: support streaming entry playback
-
- Now that it's possible for the ObjectPlayer to only read a
- partial subset of available entries, the JournalPlayer needs
- to detect that more entries might be available.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 28d5ca16cbcb445f985469413b2a8a3048ab66b7)
-
-commit b08335d052ba04765690397f70d0d7f9b54898ac
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 15:15:58 2016 -0400
-
- journal: replay should only read from a single object set
-
- Previously it was prefetching up to 2 object sets worth of journal
- data objects which consumed too much memory.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2666d366645b22a5db2a2bcbfce466726bf0b3c0)
-
-commit c6f5303fb2d12830d0c9ac8605884b0c89d16539
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 20 08:06:13 2016 -0400
-
- journal: optionally restrict maximum entry payload size
-
- Journal playback will need to read at least a full entry which was
- currently limited to the maximum object size. In memory constrained
- environment, this new optional limit will set a fix upper bound on
- memory usage.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8c1877b82fee0db1dba76252b32ff348226d41a7)
-
-commit 6dc609f24e54c8363a5acecef982aa67beb6130e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 11:01:26 2016 -0400
-
- journal: optionally fetch entries in small chunks during replay
-
- Support fetching the full object or incremental chunks (with a
- minimum of at least a single decoded entry if available).
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f7362e9a57e484fffd840ca0eef01778dcacb65b)
-
-commit 91c70f34edabfb3983da643478d746568ed6b738
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 09:31:40 2016 -0400
-
- journal: helper class for organizing optional settings
-
- Additional runtime configuration settings will be needed. The
- new class will avoid the need to expand the constructor.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit dad8328f2d502d18923c35f7b86a0cc2ccec133a)
-
-commit d68fe79eedc475c11858c9da5cb3fd2b66ed2b2f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 11 15:32:45 2016 -0400
-
- rbd-mirror: preprocess journal events prior to applying
-
- Fixes: http://tracker.ceph.com/issues/16622
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4df913d10b2dd0444db806fccb2812547efa1b56)
-
-commit 01f5f3f15c0da44588b4644905953e234a551def
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 8 16:19:52 2016 -0400
-
- rbd-mirror: event preprocessor to handle snap rename operations
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fdfca557370c9d86acb81d50edb6aafc42044747)
-
-commit f71dc87e509ada03b40b2bec5ea82579709e0d2d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 8 15:16:04 2016 -0400
-
- librbd: improve journaling debug log messages
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 270cb74bc276bfb1f828a6a6933fa827f6cdce42)
-
- Conflicts:
- src/librbd/journal/Replay.cc: no snap limit restriction
-
-commit 14db53587aa9a918174b616f006c38d1b4c99e58
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 8 14:37:14 2016 -0400
-
- librbd: separate journal event decoding and processing
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 57cd75e8058b84b5dce38f3d8f4b7b4138ac6c9a)
-
-commit 0c4a73fb422ea78e4c5db0763866206cbb54f120
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 8 09:14:58 2016 -0400
-
- librbd: record original snap name in snap rename journal event
-
- Remote peers need a key to map snapshot ids between clusters.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f70b90c48d9520bbb4bb29058375e8205cf63771)
-
-commit 1a25490367343d7d4083961163c62f1c32cac105
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jul 8 09:13:07 2016 -0400
-
- librbd: simple duplicate op checks for all maintenance operations
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 77699bfe749bc7a898024638fb8347c53fe12123)
-
- Conflicts:
- src/test/librbd/mock/MockOperations.h: no shrink restriction
-
-commit 45a0b74a3eb50395a8e5ebb0f2a87add5090ddc1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 7 22:16:51 2016 -0400
-
- qa/workunits/rbd: exercise snapshot renames within rbd-mirror test
-
- Snapshot rename operations utilize the (cluster) unique snapshot
- sequence to prevent attempts at replays. When mirroring to a
- different cluster, these sequences will not align.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2f4cb26d8bbd1457bc261547103b56ad40b3c464)
-
-commit c7ab24e7ed63dd1754753c7b0e5c8981a8454a0b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jun 15 11:31:14 2016 +0300
-
- librbd: re-register watch on old format image rename
-
- The watching object name is changed when renaming an old format image,
- so unregister the watcher before the rename, and register back after,
- to avoid "Transport endpoint is not connected" error.
-
- Fixes: http://tracker.ceph.com/issues/16321
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 1a3973c8814200dc449a557a4fc8212911633985)
-
-commit 46fdba458750a13d217708ae3209b0f8bd058072
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 20:28:33 2016 -0400
-
- rbd-mirror: gracefully restart pool replayer when blacklisted
-
- Fixes: http://tracker.ceph.com/issues/16349
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2f55aa5e33b2fe242ebb9702ba9ff6f8d5cef96c)
-
-commit a806cdbb057e6bf14322ec6c3da8670ea2e9cfdc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 20:28:02 2016 -0400
-
- rbd-mirror: do not clear image replayer error code after shut down
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1fc27545c2092c178293ed636b6aadb11bc8cbd3)
-
-commit b88a851d96b224d8332aa76a61d17a659dd5d14e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 16:57:50 2016 -0400
-
- rbd-mirror: image deleter should use provided librados connection
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 03c2aec4c613f11fcfed5bcd47855005f42abd79)
-
-commit 4b05677581ce9910e356e84203000251c92d8405
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 16:03:03 2016 -0400
-
- rbd-mirror: each pool replayer should use its own librados connection
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 48f301decbf1f27937bb77a3b47e54933f272d7d)
-
-commit 569fbee99d1367bc0d51e96e42dcf64eeb930648
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 09:05:33 2016 -0400
-
- rbd-mirror: clean up ImageReplayer before stopping state machine
-
- Fixes: http://tracker.ceph.com/issues/16489
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c97f7245a015dbdda25584134840d023fd65cdd1)
-
-commit eb706abd814fbd5cc704f21f3f9839ff09aaea6e
-Merge: 3167918 fcc00f7
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 19:17:56 2016 +0200
-
- Merge pull request #10679 from dillaman/wip-16735-jewel
-
- jewel: rbd-nbd does not properly handle resize notifications
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 3167918679b519ae7d2625ea08b96419111c9992
-Merge: e6f9f28 2afc176
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 19:10:04 2016 +0200
-
- Merge pull request #10148 from SUSE/wip-16599-jewel
-
- jewel: rgw: Swift API returns double space usage and objects of account metadata
-
- Reviewed-by: Pritha Srivastava <prsrivas@redhat.com>
-
-commit 55460e2e7b0f1298796b37b38a64820a8f23f6e2
-Author: Shilpa Jagannath <smanjara@redhat.com>
-Date: Sat Aug 6 14:25:48 2016 +0530
-
- rgw: raise log levels for common radosgw-admin errors
-
- Currently while running radosgw-admin command we see these messages thrown at
- the endusers since debug level is set to 0:
-
- 2016-08-02 14:48:28.687251 7f9e630639c0 0 Cannot find zone
- id=7a2a89b9-4f5e-4f60-a29e-451ac9acc5a8 (name=us-west), switching to local
- zonegroup configuration
- 2016-08-02 14:48:35.742185 7f9e630639c0 0 error read_lastest_epoch
- .rgw.root:periods.a3db7884-2445-4bab-a165-6730f8573b8f:staging.latest_epoch
-
- Raising the log level to 1.
-
- Fixes: http://tracker.ceph.com/issues/16935
- Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
- (cherry picked from commit 8ff2b8e71abd34648c8eefb6b158ae5de46bd709)
-
-commit 73cc60862891cba8581370e3d5726a9f75ba1651
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Aug 5 11:28:13 2016 -0400
-
- rgw: fixes for period puller
-
- * reset epoch=0 before RGWPeriod::init() so we get the latest_epoch
- * if we're the metadata master, don't try to pull periods from ourself
-
- Fixes: http://tracker.ceph.com/issues/16939
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 06c384f1c5aa5b4b6404a3caf8a5f88ee40b0b03)
-
-commit f29864302648f38050626086bb87d47448a72aaf
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Jul 15 17:18:23 2016 +0200
-
- rgw: ONLY improve code formatting in rgw_object_expirer_core.{cc,h}.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit bc1ecdfb42bf9c9c5825af035409359536ed5b1e)
-
-commit e7be5a544a712142742323d573586dc9e98cbd77
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Jul 15 17:11:04 2016 +0200
-
- rgw: fix skipping some objects to delete by RadosGW's object expirer.
-
- Wei Qiaomiao has found that expired objects, which should be removed by
- the object expirer of RadosGW, might be left unprocessed till next
- restart of a RadosGW's instance. This happens when process_single_shard
- method of RGWObjectExpirer class exhaust a time slot for a single round
- and finishes without informing caller about the situation.
-
- Fixes: http://tracker.ceph.com/issues/16705
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 99f7d6eb565cee116c662305411df2adef002cae)
-
-commit af7e1e0dde953a56f33197c80da499e89f3dfc93
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Jul 15 17:05:37 2016 +0200
-
- rgw: fix trimming object expirer's hints.
-
- Fixes: http://tracker.ceph.com/issues/16684
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 83cd7852ed1fd8350d7c95a1b8811ffd34d7789f)
-
-commit dc154cd1e497b02386b91fde28a658d79ec6659e
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Jul 25 11:12:14 2016 +0800
-
- osd: fix the mem leak of RepGather
-
- ReplicatedPG::new_repop() returns a pointer to RepGather with two refcounts,
- one is held by ReplicatedPG::repop_queue, the other is supposed to be
- held by the caller of this function. but it's caller
- ReplicatedPG::submit_log_entries() assigns it to a
- boost::intrusive_ptr<RepGather>() directly, why by default add_ref() in
- its constructor. this makes the refcount 3. that's why we have a leak of
- RepGather in `ReplicatedPG::new_repop(ObcLockManager&&,
- boost::optional<std::function<void ()>>&&)`.
-
- Fixes: http://tracker.ceph.com/issues/16801
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d3a28465fc7b7002f38cff364fdf601f7486add3)
-
-commit e6f9f287e226e44035920827be2a45753f7452d1
-Merge: 84e3810 90d29fc
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:41:12 2016 +0200
-
- Merge pull request #10678 from dillaman/wip-16701-jewel
-
- jewel: rbd-mirror: include local pool id in resync throttle unique key
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 84e38109472b4a2a169eb8286c6632da4b1edb6e
-Merge: c2defb0 0ff0960
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:39:02 2016 +0200
-
- Merge pull request #10614 from SUSE/wip-16959-jewel
-
- jewel: rpm: OBS needs ExclusiveArch
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c2defb0cea4ba9eed88af3f234c248c57ba48f4f
-Merge: 6d7ebb1 461782e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:38:27 2016 +0200
-
- Merge pull request #10519 from Abhishekvrshny/wip-16312-jewel
-
- jewel: selinux denials in RGW
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6d7ebb10e6b20f7c3656fd763d96e64ac247e59f
-Merge: 338a58c b26acc0
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:37:51 2016 +0200
-
- Merge pull request #10364 from SUSE/wip-16750-jewel
-
- jewel: ceph-osd-prestart.sh contains Upstart-specific code
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 338a58ca2ed9ba27f9d66c22e725322ce15466af
-Merge: c7a1c81 c1a47c7
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:36:47 2016 +0200
-
- Merge pull request #10008 from dachary/wip-16099-jewel
-
- jewel: ceph-base requires parted
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c7a1c812c4aab478ee38db60947e6f686e8a7407
-Merge: 2d5ada4 ad3b788
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 17 13:35:54 2016 +0200
-
- Merge pull request #9917 from SUSE/wip-16461-jewel
-
- jewel: ceph Resource Agent does not work with systemd
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 96ad2d16df6ec43cd730a4c21b866524a188c532
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 2 04:28:30 2016 -0700
-
- rgw: can set negative max_buckets on RGWUserInfo
-
- This can be used to disable user's bucket creation
-
- Fixes: http://tracker.ceph.com/issues/14534
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 626d795139a6c5104be098780b70500c2de9b8f4)
-
-commit 2d5ada4ef8ee7d6803a903b7395e0c2b19b781ea
-Merge: aa03e1d 00f3fd4
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 16 16:39:22 2016 +0200
-
- Merge pull request #10303 from ukernel/jewel-16655
-
- jewel: ceph-fuse: link to libtcmalloc or jemalloc
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit aa03e1dbe6b243c56ed40eee8734051f434c2ed2
-Merge: 0280773 3da251f
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 16 16:21:01 2016 +0200
-
- Merge pull request #10420 from SUSE/wip-16798-jewel
-
- jewel: ceph command line tool chokes on ceph –w (the dash is unicode 'en dash' &ndash, copy-paste to reproduce)
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit dbf8cf0b5d46cc49eaf0a14bcc05a4fb215d98fb
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri May 13 18:23:12 2016 +0200
-
- rgw: improve support for Swift's object versioning.
-
- This patch allows RadosGW to pass the RefStack with an accuracy
- to the RFC7230 violation issue which is clearly a Tempest bug.
-
- Fixes: http://tracker.ceph.com/issues/15925
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 237ad1210f5a6e4f191293ce532ca15869612a93)
-
- Conflicts:
- src/rgw/rgw_op.cc
- In contrast to master, Jewel doesn't support
- container quota of Swift API. All tracks of this
- feature have been eradicated from the patch.
- src/rgw/rgw_rest_swift.cc
- Jewel doesn't include boost/optional.hpp but has
- boost/utility/in_place_factory.hpp. The conflict
- has been resolved to pull in both headers.
-
-commit 02807732b0f66826c2d110fe06ece15751924760
-Merge: 1e04a35 67eb961
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 16 10:40:05 2016 +0200
-
- Merge pull request #10520 from Abhishekvrshny/wip-16319-jewel
-
- jewel: radosgw-admin: inconsistency in uid/email handling
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 1e04a357a6e9e67c81b5104f57ab61e5ce07a5e3
-Merge: f6e927c 3f76e4a
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Mon Aug 15 17:18:36 2016 -0400
-
- Merge pull request #10073 from SUSE/wip-16565-jewel
-
- jewel: rgw: data sync stops after getting error in all data log sync shards
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit f6e927cfe3e296ebd5e3b22c3f05d717f87cd4ed
-Merge: d2e8692 93d7875
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Mon Aug 15 17:18:06 2016 -0400
-
- Merge pull request #10524 from Abhishekvrshny/wip-16731-jewel
-
- jewel: failed to create bucket after upgrade from hammer to jewel
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit d2e869255869ae68ca419d5f0a3bbfbcf3a91710
-Merge: 87e71aa dc96383
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Mon Aug 15 17:16:41 2016 -0400
-
- Merge pull request #10523 from Abhishekvrshny/wip-16700-jewel
-
- jewel: rgw: segmentation fault on error_repo in data sync
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 87e71aae7a2d73b7b5444e1a5ab283ece570e3fb
-Merge: cc60230 fe57ace
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Mon Aug 15 17:16:06 2016 -0400
-
- Merge pull request #10518 from Abhishekvrshny/wip-16272-jewel
-
- jewel: rgw ldap: fix ldap bindpw parsing
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit cc60230eef82173eafa52df3d2015c8c0473d236
-Merge: 31264f4 489f8ce
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 15 17:59:51 2016 +0200
-
- Merge pull request #10144 from dillaman/wip-fix-missing-return-jewel
-
- jewel: librbd: fix missing return statement if failed to get mirror image state
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 31264f4126f79c26cff73b2a4d2bea77426c5cd9
-Merge: 4ee9117 c6546bb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 15 17:55:42 2016 +0200
-
- Merge pull request #10552 from ceph/wip-16507-jewel
-
- jewel: expose buffer const_iterator symbols
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4ee9117d52d41a72444722afe81ce2074dbf58d3
-Merge: 5b7899e 3d6d36a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 15 17:53:40 2016 +0200
-
- Merge pull request #10497 from Abhishekvrshny/wip-16586-jewel
-
- jewel: partprobe intermittent issues during ceph-disk prepare
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5b7899e89154eceb53625cd6f7ae33984298857f
-Merge: c65536c bd70d6d
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Aug 15 08:35:57 2016 -0700
-
- Merge pull request #10716 from ceph/wip-16975
-
- qa: add rados test script for upgrades
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit c65536cf4f3433fea2cc4683da930676f2def223
-Merge: 40e3e2e 5ffdc34
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 15 08:28:32 2016 -0400
-
- Merge pull request #10732 from dillaman/wip-rbd-default-format-jewel
-
- doc: format 2 now is the default image format
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5ffdc344401e91c4db89f9ed017adb15e535ebb4
-Author: Chengwei Yang <yangchengwei@qiyi.com>
-Date: Fri Aug 12 17:44:16 2016 +0800
-
- doc: format 2 now is the default image format
-
- Signed-off-by: Chengwei Yang <yangchengwei@qiyi.com>
- (cherry picked from commit c8c92f8a2c2106d11b18c70c4c183c3724c2f3c2)
-
-commit 40e3e2e075f21c2e4d36219747d6fdba530d5ed8
-Merge: f58ca19 2c39d36
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 15 11:14:58 2016 +0200
-
- Merge pull request #10217 from SUSE/wip-16636-jewel
-
- jewel: rgw: document multi tenancy
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f58ca19f36179a64e50e2d14555b1efbb8fbfa79
-Merge: 40fc75e 546141c
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Aug 15 10:02:12 2016 +0200
-
- Merge pull request #9453 from wido/jewel-issue-15348
-
- jewel: rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 40fc75ef4fafada6aa3fac47963da060f50646b0
-Merge: ec14cf5 3ff6e8f
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Aug 12 17:41:07 2016 +0200
-
- Merge pull request #10693 from dreamhost/wip-15975-jewel
-
- rgw: Fallback to Host header for bucket name.
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit bd70d6ddba1bc237a6ffafa0dadea16b2c65a39c
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Aug 11 20:39:20 2016 -0700
-
- qa: remove tmap_migrate tests from upgrade testing
-
- tmap_upgrade only exists in jewel
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 49db733bad375645214ddb8f9b95b8817f9b41e1
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Aug 11 16:05:04 2016 -0700
-
- qa: add rados test script for upgrades
-
- Disable master tests that are not meant to work on jewel
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 3ff6e8fa852346f4b69cd8c10b2f14ae4983d527
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu May 26 15:41:20 2016 -0700
-
- rgw: Fallback to Host header for bucket name.
-
- RGW should fallback to using the Host header as the bucket name if valid &
- possible even when it is NOT a suffix match against the DNS names, or a match
- against the CNAME rule.
-
- This mirrors AWS S3 behavior for these cases (The AWS S3 does not do any DNS
- lookups regardless).
-
- Backport: jewel
- Fixes: http://tracker.ceph.com/issues/15975
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 46aae19eeb91bf3ac78a94c9d4812a788d9042a8)
-
-commit 90d29fc94a826b1f56ff99e5b5d81a735abbc4cd
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 11 21:58:45 2016 -0400
-
- rbd-mirror: include local pool id in resync throttle unique key
-
- Fixes: http://tracker.ceph.com/issues/16536
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8ad36cab7cbf3492bfa972b43e4a5f75a110bfe6)
-
-commit 03c76148ef9e10fad649a407374f4fc855529377
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 28 15:18:51 2016 -0400
-
- test: ensure unique template specializations per test case
-
- With optimizations disabled, there can be cross translation unit
- symbol leaking that is not present when inlining is enabled.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 995a16ebcbe79fd14e6de3b25087373744238294)
-
-commit ea9e031e2144ee32b3776cfe2237681f7065861b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 28 14:59:17 2016 -0400
-
- test: missing template specialization for unittest_rbd_mirror
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 187e2c87b50d64e93736a42fcf449c55e8550125)
-
-commit c2e6d08469ea733dac984770c30d8ab6356f3eca
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 15 17:49:54 2016 -0400
-
- qa/workunits/rbd: increase writes in large image count test
-
- This will help to test edge cases where the remote image does
- or does not own the exclusive lock when the sync starts.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d16698f96c65b9627cc1f64ef80b7f1e39d69d45)
-
-commit 88a7c5c1b28c6a077d35577787757b0a98b7b2a5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 15 17:42:59 2016 -0400
-
- rbd-mirror: prune sync points referencing missing snapshots
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 378914f6b8a8a8c5517fee8fa186268078fbcbfb)
-
-commit 9a6bad3bd7eaa733042c0a23aaf48be4fa6f84ce
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 15 16:34:44 2016 -0400
-
- rbd-mirror: ignore empty snapshot sequence mapping
-
- This invalid condition will be gracefully detected and handled
- when the snapshot mappings are computed.
-
- Fixes: http://tracker.ceph.com/issues/16329
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 58ed8a18e91401333bc3f3f957ce5d715b6687b6)
-
-commit c8089dea98fd40651664ae80b0e16834bf727540
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 13:01:13 2016 -0400
-
- qa/workunits/rbd: remove temporary image exports
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 45498d04990861a034e2aad69a93658e018c991a)
-
-commit bdb2189c94badb6e389a3a05794ad8af3eceda1c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 11:13:29 2016 -0400
-
- rbd-mirror: fix potential image replayer state transition race
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e224c6c03a6a5de0e179bd788387cfa3ff49e9d)
-
-commit e7d7990958bdd8add7cfdcf037bcda5dd05c59d4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 11:06:57 2016 -0400
-
- rbd-mirror: cancel image deletion callback on shut down
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c3f1cb3a34e1b4d258877d519e683e25bf65c65a)
-
-commit bba7811489170e01471ef7c086066a006f57fb6b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 10:58:09 2016 -0400
-
- rbd-mirror: fixed potential leaking image deletion context callback
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9d1cd90c220f95d23d2694b4f1fb6b2fed073ced)
-
-commit b71efb090708e30225502d0cbf974b880def1eb8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 09:45:25 2016 -0400
-
- rbd-mirror: ImageReplayer doesn't need image deleted callback
-
- The Replayer will detect that the ImageReplayer is stopped and will
- schedule the "wait for deleted" callback before attempting to
- restart the ImageReplayer.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7e5afc71dfd3ec3e7b0ddaca96f92ac6e0414006)
-
-commit b657d1849a37bc4461edb18337078041a5460818
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 27 09:21:05 2016 -0400
-
- rbd-mirror: use async callback when deletion not in-progress
-
- Fixes: http://tracker.ceph.com/issues/16491
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c136f443366fe804057a9c1f8c01c3f0a33a4d63)
-
-commit c9c1216b3c06e49d3f0addeb7a4f6f5796c00d30
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu Jun 9 10:40:23 2016 +0100
-
- rbd-mirror: tests: ImageSyncThrottler unit tests
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 8ca9a84f36efa73ad17fd27f545dff3716cd798c)
-
-commit c56d6ec4c1898e710aad307b5d3696b9b159ba0c
-Author: Ricardo Dias <rdias@suse.com>
-Date: Wed Jun 8 16:38:01 2016 +0100
-
- rbd-mirror: Usage of image-sync throttler in BootstrapRequest
-
- Fixes: http://tracker.ceph.com/issues/15239
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 6a91146255d84229688bd8b378732be5975a778b)
-
-commit 5323ebd40a96484f5341574ed8a783c2e696f5dc
-Author: Ricardo Dias <rdias@suse.com>
-Date: Wed Jun 8 16:37:20 2016 +0100
-
- rbd-mirror: Implementation of image-sync throttler
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit c4f926d6980d1efd95771885a11d8cc4ebd2e4c3)
-
-commit 783bd686c451ae816ea9c7001b3c6a0ef1b5f554
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Jun 14 16:43:19 2016 +0100
-
- rbd-mirror: tests: Support for inflight image sync point update
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit cee543bd96bc99f219024aedbfafc5dcd99abb5a)
-
-commit b878f5ffc75e70b1f09eee461f93b1cb5031586e
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu Jun 2 10:04:41 2016 +0100
-
- rbd-mirror: image-sync: Periodically update sync point object number
-
- Fixes: http://tracker.ceph.com/issues/15108
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit c2eedf4d27b73d7eaf3fda54f9b0ee74e455bc1d)
-
-commit 2ba61a73b1c616fab5acb1b92fe0a0b7ce7b64cb
-Author: Ricardo Dias <rdias@suse.com>
-Date: Mon Jun 27 11:07:41 2016 +0100
-
- rbd-mirror: image-replayer: Fix bug in resync listener remotion
-
- Fixes: http://tracker.ceph.com/issues/16488
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 11a5851e90bca2c1813156bf12dda0192965db37)
-
-commit cbd1ab461d5d75baf6e8387788740a6bcb3520de
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu May 19 12:06:08 2016 +0100
-
- rbd-mirror: resync: Added unit tests
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 8953825956f2a560d17c7b651d1724a95f2f7d1d)
-
-commit 5fe93a4383521b7b67d7f168e4f20735440bb8ca
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu May 12 18:12:33 2016 +0100
-
- rbd-mirror: image-replayer: Implementation of resync operation
-
- Fixes: http://tracker.ceph.com/issues/15670
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit f2b114238103315197a9eefc8490786c484c8520)
-
-commit c2b786ca92728ef6ceeb836133598a837cd18a2c
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu May 12 18:10:38 2016 +0100
-
- rbd: journal: Support for listening updates on client metadata
-
- Currently we only support listening for image resync requests.
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 0dd85739e9034912b86250ced2834dd7fb3d92fd)
-
-commit 21d2ba5eefd1ef904360ce09b4335df77c952d95
-Author: Ricardo Dias <rdias@suse.com>
-Date: Thu May 12 18:09:09 2016 +0100
-
- journal: Support for registering metadata listeners in the Journaler
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit c535eb0399cd649371db233ee1ed01cf5441a4b3)
-
-commit fcc00f7ac2c9ed517d12ef9ebab735bdd0d1a162
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jun 27 10:53:09 2016 +0300
-
- test: fsx: fix rbd-nbd daemon logging
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 09710c46d3811e602250f858fe7292925c1e3c06)
-
-commit 63fbed0f39da22374f6818030674c6b5e73f41dd
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Jun 3 21:11:21 2016 +0300
-
- qa/workunits/rbd: image resize test for rbd-nbd
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit fa58acbb6fcc79e5a9bfd4b86250a0e2b9c8efa1)
-
-commit 3db1a3c8ea5a6829e1e44ecd0c96316c759bf048
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue May 24 15:52:00 2016 +0300
-
- rbd-nbd: use librbd API method to watch image size update
-
- Fixes: http://tracker.ceph.com/issues/15715
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 1e1d3b1609432ea80d6fd1c5b3df49f38ad579f1)
-
-commit 8f94f5e3f7ba0cb3578952ffbca85c0dc6a772a0
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue May 24 15:50:22 2016 +0300
-
- librbd: API: methods to watch image stat update
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 9952b75a0c8c9bed9792cb77671fd5588f32630f)
-
- Conflicts:
- src/include/rbd/librbd.h: removed CG references
- src/tracing/librbd.tp: removed CG references
-
-commit ec14cf5ce3e8d04eee3f13aadcfc2d7f22c5a633
-Merge: c587e9e 393bf7e
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Aug 11 11:31:40 2016 +0200
-
- Merge pull request #9790 from SUSE/wip-16381-jewel
-
- jewel: comparing return code to ERR_NOT_MODIFIED in rgw_rest_s3.cc (needs minus sign)
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 22c9df1d9bef3f48ab2a12357035fc54fbde141d
-Author: Pritha Srivastava <prsrivas@redhat.com>
-Date: Fri Jul 1 14:15:42 2016 +0530
-
- rgw: Fix for using port 443 with pre-signed urls.
-
- Fixes http://tracker.ceph.com/issues/16548
-
- Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
- (cherry picked from commit 44b9ed37ac659d83fbd4bb99c69da6b9dec06b8d)
-
-commit ce5e250405449c6035b805bbcdcca73ad4399d68
-Author: Shilpa Jagannath <smanjara@redhat.com>
-Date: Fri Jun 17 18:29:42 2016 +0530
-
- rgw: added zone rename to radosgw_admin
-
- Added zone rename option to radosgw-admin help
-
- Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
- (cherry picked from commit da3235234eaf41f9dbd378fb0d9994d2c4096947)
-
-commit ce986aa6e8b3ee54697802a361246c256e8097b4
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jul 14 13:38:44 2016 -0400
-
- rgw: RGWMetaSyncCR holds refs to stacks for wakeup
-
- because RGWCoroutine::wakeup() calls RGWCoroutinesStack::wakeup(), the
- stack must also stay alive
-
- Fixes: http://tracker.ceph.com/issues/16666
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e4bc16044e1b80636855dbc39da1d121a3508308)
-
-commit 2485efc26d68b6848cda02d66b54dd58769fcbd8
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Jul 26 12:50:13 2016 -0400
-
- rgw: clear realm watch on failed watch_restart
-
- if the realm is deleted while the gateway has a watch, it's disconnected
- and watch_restart() will fail. this results in a watch handle of 0,
- which leads to a segfault on ~RGWRealmWatcher when we pass it to
- unwatch()
-
- this commit cleans up the watch when watch_restart() fails, so we don't
- try to unwatch() on destruction
-
- Fixes: http://tracker.ceph.com/issues/16817
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e5b8b5b27502fdacdac38effd7a55fd719911e85)
-
-commit fa2e42d4614619f761a5cf4c86e3db7d7e101e11
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jul 27 12:16:57 2016 -0400
-
- rgw: use endpoints from master zone instead of zonegroup
-
- Fixes: http://tracker.ceph.com/issues/16834
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit d4872ec9f7554ff49f4be336fe59cdd2051ee2a5)
-
-commit a865f26e68a991eaf55dc5f105b7fd7cb4634bc3
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jul 28 09:55:05 2016 -0400
-
- radosgw-admin: zone[group] modify can change realm id
-
- allows the default zone and zonegroup (created with empty realm_id) to
- be later added to a realm. the 'modify' command now accepts either
- --realm_id=id or --rgw-realm=name
-
- Fixes: http://tracker.ceph.com/issues/16839
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 064b7e953dd6ace2c32b94150e70959e95a01761)
-
-commit c587e9e5c73cd8a990106708a43222fcb5a2a709
-Merge: aacb793 3250c4d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Aug 10 13:33:12 2016 +0200
-
- Merge pull request #10026 from SUSE/wip-16392-jewel
-
- jewel: master: build failures with boost > 1.58
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f5db5a4b0bb52fed544f277c28ab5088d1c3fc79
-Author: John Spray <john.spray@redhat.com>
-Date: Tue May 17 17:53:56 2016 +0100
-
- mon: tolerate missing osd metadata
-
- Just because one OSD's metadata is missing,
- don't give up on outputting all the other
- OSDs' metadata.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 2c7dd5f22288c4aee814573baa6af131421f36a4)
-
-commit 36e5c86469eda59f7d5d15b16e15d0aab81a34fa
-Author: John Spray <john.spray@redhat.com>
-Date: Tue May 17 14:03:09 2016 +0100
-
- mon: fix metadata dumps for empty lists
-
- Because 'r' was set inside loop, these would
- fail to set it (leaving ENOSYS) if no
- metadata is present.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 5fe4fe4d92f5b2d67896beac9b5b3b48b309a6b4)
-
- Conflicts:
- src/mon/Monitor.cc and src/mon/MDSMonitor.cc
- changes relate to features that are not backported to jewel
-
-commit de99bd53f5efe84647e1a1d79a8db330887b7704
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sun May 15 10:32:28 2016 +0800
-
- mon: 'std::move` Metadata when updating it
-
- to avoid copying of the std::map
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit dd67eaab00698d747bf8669a3065c72ea68f7784)
-
-commit 828df3995430ce89fe9be40c6c19c44fb6f14752
-Author: John Spray <john.spray@redhat.com>
-Date: Thu May 12 15:49:23 2016 +0100
-
- mon: fix 'mon metadata' for lone monitors
-
- Previously, writing to the store was only
- triggered when MMonMetadata was received
- from peers, so if you had a single mon then
- you would always get ENOENT from "mon metadata"
-
- Fixes: http://tracker.ceph.com/issues/15866
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 93ab00c77059e93b52ac4caa703e259944be1d1e)
-
-commit 308f5143a9e9b121fb5c4df0a227ba30bda4636e
-Author: runsisi <runsisi@zte.com.cn>
-Date: Mon Jul 4 13:52:03 2016 +0800
-
- ceph.spec.in: fix rpm package building error as follows:
-
- error: Installed (but unpackaged) file(s) found:
- /usr/lib/udev/rules.d/60-ceph-by-parttypeuuid.rules
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 49dfad1f53d7abe0e9efc7817aaaf1735df5a9c9)
-
-commit 727a704e79995c8a74f2b5768c63e90eecf9a883
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Jun 23 09:23:09 2016 +0200
-
- udev: always populate /dev/disk/by-parttypeuuid
-
- ceph-disk activate-all walks /dev/disk/by-parttypeuuid at boot time. It
- is not necessary when udev fires ADD event for each partition and
- 95-ceph-osd.rules gets a chance to activate a ceph disk or journal.
-
- There are various reasons why udev ADD events may not be fired at
- boot (for instance Debian Jessi 8.5 never does it and CentOS 7.2 seems
- to be racy in that regard when a LVM root is being used).
-
- Populating /dev/disk/by-parttypeuuid fixes ceph-disk activate-all that
- would not work without it. And it guarantees disks are activated at boot
- time regardless of wether udev fires ADD events at the right time (or at
- all).
-
- The new udev file is a partial resurection of the
- 60-ceph-partuuid-workaround-rules that was removed by
- 9f77244b8e0782921663e52005b725cca58a8753. It is given a name that
- reflects its new purpose.
-
- Fixes http://tracker.ceph.com/issues/16351
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 35004a628b2969d8b2f1c02155bb235165a1d809)
-
-commit 9fc5b41598f09414572e89572e8980fd3d3c76e0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 14:03:01 2016 -0400
-
- librbd: optimize away unnecessary object map updates
-
- Fixes: http://tracker.ceph.com/issues/16689
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e5b4188635c4ee1ee0c4353cfc5ecd6e887d536b)
-
-commit 81a2534742e5051fa92549029303cef3f3d187a6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jul 18 13:37:37 2016 -0400
-
- rbd-replay: decode and replay discard IO operations
-
- Fixes: http://tracker.ceph.com/issues/16707
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b7a4db213d0d4812aa6cd9c54e9646ff57d10411)
-
-commit 5968664fd4ddf8e26989360ebbc048faa8431251
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 30 15:00:32 2016 -0400
-
- librbd: failed assertion after shrinking a clone image twice
-
- Fixes: http://tracker.ceph.com/issues/16561
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 34d2297eed040f694b4d1c5e2606af04752c9e1a)
-
-commit 8316b6a6bad28343f8bade63f05b5fb93f4fe415
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 30 10:24:01 2016 -0400
-
- rbd-mirror: gracefully fail if object map is unavailable
-
- If the exclusive lock was lost due to a watch failure from an
- overloaded cluster, gracefully abort the image sync.
-
- Fixes: http://tracker.ceph.com/issues/16558
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6f573ca2d63784e4a2b1e7a410044afdf58f6801)
-
-commit aacb793948a69294e518f8458be6e670df23fe53
-Merge: 954e978 5ae0e43
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 17:09:42 2016 +0200
-
- Merge pull request #10625 from dachary/wip-16969-jewel
-
- jewel: src/script/subman fails with KeyError: 'nband'
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 5ae0e43e7f75a3a6d96d9fc5f03c4b0a86c7481b
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Aug 9 09:13:17 2016 +0200
-
- subman: use replace instead of format
-
- Otherwise all {} are assumed to be substituted. Add a test.
-
- Fixes: http://tracker.ceph.com/issues/16961
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit b006c136761746e12704e349a672325b8b6e51f5)
-
-commit 0ca27727173501856e9f17785b9f555684661709
-Author: Ali Maredia <amaredia@redhat.com>
-Date: Thu Apr 21 20:32:47 2016 -0400
-
- cmake: script that sets env vars for unit tests
-
- Signed-off-by: Ali Maredia <amaredia@redhat.com>
- (cherry picked from commit 15a669435aaa78562746f6728bb185b1e99a4274)
-
-commit 954e978bc8cd233ac149a2e490d8730d9782583a
-Merge: d387bf4 cbc9636
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:41:30 2016 +0200
-
- Merge pull request #10054 from dachary/wip-16484-jewel
-
- jewel: ExclusiveLock object leaked when switching to snapshot
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit d387bf44d405a3a8658697134e6bfc9ae077dfef
-Merge: 14a4484 cf65ed9
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:28:44 2016 +0200
-
- Merge pull request #10041 from dachary/wip-16315-jewel
-
- jewel: When journaling is enabled, a flush request shouldn't flush the cache
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 14a448466e9bda6b8d565f34b248a0ab6f9f90b3
-Merge: fc39bd8 757babb
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:27:50 2016 +0200
-
- Merge pull request #10055 from dachary/wip-16485-jewel
-
- jewel: Whitelist EBUSY error from snap unprotect for journal replay
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit fc39bd804e479fbaefa6f81befd899b8a1a82581
-Merge: fc084a3 d9c3f28
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:27:22 2016 +0200
-
- Merge pull request #10053 from dachary/wip-16483-jewel
-
- jewel: Close journal and object map before flagging exclusive lock as released
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit fc084a32ecf7c1868cbbbd808b273f2d095746f0
-Merge: 543dd04 b1d9698
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:27:08 2016 +0200
-
- Merge pull request #10052 from dachary/wip-16482-jewel
-
- jewel: Timeout sending mirroring notification shouldn't result in failure
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 543dd0460228f778ca10e8ff238c8db3f1b239fe
-Merge: 8fb4121 51defea
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:26:50 2016 +0200
-
- Merge pull request #10051 from dachary/wip-16460-jewel
-
- jewel: Crash when utilizing advisory locking API functions
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 8fb4121c53850f0f60eadb6e2a3bfc8c750e5935
-Merge: 64d5ff9 db28ddc
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:26:40 2016 +0200
-
- Merge pull request #10050 from dachary/wip-16459-jewel
-
- jewel: rbd-mirror should disable proxied maintenance ops for non-primary image
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 64d5ff97ced5cc0cfa4f15b66b54cc2fb11b2c22
-Merge: 4fe02a6 70bf746
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:26:21 2016 +0200
-
- Merge pull request #10047 from dachary/wip-16426-jewel
-
- jewel: Possible race condition during journal transition from replay to ready
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 4fe02a62b7ad2c6b4a32962741a73d8b1db9fb11
-Merge: b86aec9 f3f4a4a
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:26:11 2016 +0200
-
- Merge pull request #10046 from dachary/wip-16425-jewel
-
- jewel: rbd-mirror: potential race condition accessing local image journal
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit b86aec99e8375eb2de1d495338ab212e1880a0f7
-Merge: 4a6e48e 0399958
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:26:00 2016 +0200
-
- Merge pull request #10045 from dachary/wip-16424-jewel
-
- jewel: Journal needs to handle duplicate maintenance op tids
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 4a6e48ed85914413b919e4da5a67ee4f95f34ae2
-Merge: adcf5a7 6a28d63
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:25:48 2016 +0200
-
- Merge pull request #10044 from dachary/wip-16423-jewel
-
- jewel: Journal duplicate op detection can cause lockdep error
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit adcf5a7fbf181505c6319c4399572cd3e9259a47
-Merge: eab8994 1e85da9
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:25:35 2016 +0200
-
- Merge pull request #10043 from dachary/wip-16371-jewel
-
- jewel: rbd-mirror: ensure replay status formatter has completed before stopping replay
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit eab89942c53ef5bff15cd837dea8ba42a228dc8f
-Merge: 289c2d2 bf58eab
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:25:11 2016 +0200
-
- Merge pull request #10042 from dachary/wip-16372-jewel
-
- jewel: Unable to disable journaling feature if in unexpected mirror state
-
-commit 289c2d2a512723e039bc1465353dbb39084edb80
-Merge: e01ebb9 dd635e4
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:24:55 2016 +0200
-
- Merge pull request #10010 from dachary/wip-16486-jewel
-
- jewel: Object map/fast-diff invalidated if journal replays the same snap remove event
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit e01ebb9319d17fd71b83bd0ccf9cb0f231a1783e
-Merge: 28575db db7ce96
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Aug 9 08:24:38 2016 +0200
-
- Merge pull request #10009 from dachary/wip-16514-jewel
-
- jewel: Image removal doesn't necessarily clean up all rbd_mirroring entries
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 0ff096073f4c26bbccd9125a345372f090754d63
-Author: Michel Normand <normand@linux.vnet.ibm.com>
-Date: Fri Aug 5 16:34:48 2016 +0200
-
- ExclusiveArch for suse_version
-
- for SLES supports only x86_64 and aarch64 targets
- for openSUSE (Tumbleweed and Leap) add ppc64/ppc64le targets.
-
- fixes: http://tracker.ceph.com/issues/16936
- Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
- (cherry picked from commit a8db0f4d96d71223083bf6c2275acd892666a13e)
-
-commit 28575db3fb1579cdfa85b14b0484363cc0634a2e
-Merge: 3e36f8c 1f19dbd
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 8 08:47:34 2016 +0200
-
- Merge pull request #9952 from dillaman/wip-fix-use-after-free-jewel
-
- jewel: librbd: potential use after free on refresh error
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3e36f8c66326d3de97a79859eab363e509dfc8c2
-Merge: 5c98730 6b41d76
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Aug 8 08:45:58 2016 +0200
-
- Merge pull request #9752 from dillaman/wip-fix-task-finisher-jewel
-
- jewel: librbd: cancel all tasks should wait until finisher is done
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5c98730854f11b0efb3b3e03be426ce2b7a999af
-Merge: f014619 7e1ba28
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Aug 5 12:46:10 2016 -0700
-
- Merge pull request #10561 from dzafman/wip-16672-jewel
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit f0146196ccfbcfd923191f63d93e4e81219523b1
-Merge: e400999 c025010
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:30:52 2016 +0200
-
- Merge pull request #9562 from Abhishekvrshny/wip-16152-jewel
-
- jewel: client: fstat cap release
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit e400999a2cb0972919e35dd8510f8d85f48ceace
-Merge: 0cb5ca6 c3f6d82
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:30:41 2016 +0200
-
- Merge pull request #9561 from Abhishekvrshny/wip-16136-jewel
-
- jewel: MDSMonitor fixes
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 0cb5ca6db018461c6275636f0d9cc1b1c8f56e53
-Merge: 67f2eb0 19c1366
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:29:33 2016 +0200
-
- Merge pull request #9557 from Abhishekvrshny/wip-15898-jewel
-
- jewel: Confusing MDS log message when shut down with stalled journaler reads
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 67f2eb01deff699016c16a312448d665cbef3922
-Merge: 7ec15f6 eea0e91
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:29:23 2016 +0200
-
- Merge pull request #9560 from Abhishekvrshny/wip-16135-jewel
-
- jewel: MDS: fix getattr starve setattr
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 7ec15f69f83e78ac862515c1068a64769caaff91
-Merge: e51060a 2c7fc95
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:29:08 2016 +0200
-
- Merge pull request #9559 from Abhishekvrshny/wip-16041-jewel
-
- jewel: mds/StrayManager.cc: 520: FAILED assert(dnl->is_primary())
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit e51060ad8190bddf2b9b367c4d0a67e8cce7daef
-Merge: fda98f7 edd3f79
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:17:22 2016 +0200
-
- Merge pull request #9996 from dachary/wip-16437-jewel
-
- jewel: async messenger mon crash
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
- Reviewed-by: Haomai Wang <haomai@xsky.com>
-
-commit fda98f780134c26e491ce15fca0890dc240d67cf
-Merge: 56bbcb1 18fdc1c
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:10:27 2016 +0200
-
- Merge pull request #9997 from dachary/wip-16431-jewel
-
- jewel: librados,osd: bad flags can crash the osd
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 56bbcb1aa11a2beb951de396b0de9e3373d91c57
-Merge: 7586d69 a826bb8
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:10:08 2016 +0200
-
- Merge pull request #9998 from dachary/wip-16429-jewel
-
- jewel: OSDMonitor: drop pg temps from not the current primary
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 7586d693e1c4f08a17e60f89fda5abcb31d2f80d
-Merge: 3b28428 6554d46
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Aug 5 15:09:52 2016 +0200
-
- Merge pull request #10001 from dachary/wip-16427-jewel
-
- jewel: prepare_pgtemp needs to only update up_thru if newer than the existing one
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 3b28428f901c1a6ed08b6c23b4f9991b87fe0960
-Merge: 6996b76 762db30
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Fri Aug 5 09:09:23 2016 -0400
-
- Merge pull request #9743 from vumrao/wip-vumrao-16339
-
- jewel : rgw: support size suffixes for --max-size in radosgw-admin command
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 8b9954d0ccab9694c7519002209be8cb9dc03362
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu Aug 4 17:15:18 2016 -0700
-
- rgw: Fix civetweb IPv6
-
- Commit c38e3cbb6f7c6221209f2b512cba18c564c895a4 introduced a second
- compiled version of src/civetweb/src/civetweb.c, but did not pass the
- configuration header (civetweb/include/civetweb_conf.h).
-
- As a result, USE_IPV6 was not defined when it was compiled, and that
- copy was included into the radosgw binary. This caused breakage for the
- civetweb frontend when used with IPv6:
- rgw frontends = civetweb port=[::]:7480
-
- Reintroduce the header so that civetweb is compiled correctly again.
-
- Fixes: http://tracker.ceph.com/issues/16928
- Backport: jewel
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 921c556b65eafe2136f2afcc8234681711aa7348)
-
-commit 6996b76d35b20a558d13d35fafaaad47fe331434
-Merge: 8586e9b 74dd035
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 14:45:05 2016 +0200
-
- Merge pull request #10007 from dachary/wip-15806-jewel
-
- jewel: New pools have bogus stuck inactive/unclean HEALTH_ERR messages until they are first active and clean
-
- Reviewed-by: xie xingguo <xie.xingguo@zte.com.cn>
-
-commit 8586e9bd49d1fc083a7c37a2b1865744bbcce26a
-Merge: e85b58b a2e8ae6
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 14:43:36 2016 +0200
-
- Merge pull request #10006 from dachary/wip-16249-jewel
-
- jewel: sparse_read on ec pool should return extends with correct offset
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit e85b58bbe6aa217e4f9c5cef052aabedf728b9fe
-Merge: f05eaae f8e4911
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 14:43:22 2016 +0200
-
- Merge pull request #9740 from vumrao/wip-vumrao-16338
-
- jewel : rados: Add cleanup message with time to rados bench output
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit f05eaaea3f39159cc5e1a127a7d9913f479a7bf4
-Merge: 093f30d b8f7aa2
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 14:42:53 2016 +0200
-
- Merge pull request #10004 from dachary/wip-16374-jewel
-
- jewel: AsyncConnection::lockmsg/async lockdep cycle: AsyncMessenger::lock, MDSDaemon::mds_lock, AsyncConnection::lock
-
- Reviewed-by: Haomai Wang <haomai@xsky.com>
-
-commit 093f30d1788b4a7225e3ab1c3345db14e40a5237
-Merge: 648442b 3dbb08a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 14:42:32 2016 +0200
-
- Merge pull request #10003 from dachary/wip-16380-jewel
-
- jewel: msg/async: connection race hang
-
- Reviewed-by: Haomai Wang <haomai@xsky.com>
-
-commit 648442bfea4ea72c04fad441fc933d03d980f80c
-Merge: a35e2fa caad884
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 12:35:14 2016 +0200
-
- Merge pull request #10036 from liewegas/wip-16297-jewel
-
- mon: Monitor: validate prefix on handle_command()
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a35e2fa5f1a22ea5798c559196d50d1d38d7679e
-Merge: e499d1c 7b0318a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Aug 4 09:53:10 2016 +0200
-
- Merge pull request #9547 from jcsp/wip-jewel-15705
-
- jewel backport: mds: fix mdsmap print_summary with standby replays
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7e1ba28b1e218deb7d54ad6bef8853c9d19411a0
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 2 22:32:02 2016 -0700
-
- os: Fix HashIndex::recursive_remove() to remove everything but original path
-
- Fixes: http://tracker.ceph.com/issues/16672
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ba88a3aac0d3b620986e32ed718237513d6592f6)
-
-commit cb1f17f05422ac802378df0de698ce20a1f2976e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 2 23:26:41 2016 -0700
-
- filestore: Clear objects before calling collection_list() again
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 892303cd02b64b622669183c2acffcdd7a8f3547)
-
-commit bdcfcaf821add71c518b01d6fb3dccb7c2e074a7
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 2 23:24:12 2016 -0700
-
- filestore: Improve logging
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b78c457785553e3a6e4f901bfebb41fc9c4d9bd5)
-
-commit e499d1c8fb216b490a739f2712b3c733623d45d1
-Merge: 269d742 8981f3b
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Tue Aug 2 10:28:00 2016 -0400
-
- Merge pull request #10293 from theanalyst/wip-16589-jewel
-
- jewel: multisite sync races with deletes
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 269d7427dfa9de7b1a288da0532505810bdf283b
-Merge: 894a5f8 e1eb8af
-Author: John Spray <jspray@redhat.com>
-Date: Tue Aug 2 12:31:18 2016 +0100
-
- Merge pull request #10453 from ajarr/wip-manila-backports-jewel
-
- jewel: essential backports for OpenStack Manila
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit e1eb8afea9f202947eef33e8361a0aac0e955eea
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jul 7 17:15:13 2016 +0530
-
- ceph_volume_client: version on-disk metadata
-
- Version on-disk metadata with two attributes,
- 'compat version', the minimum CephFSVolume Client
- version that can decode the metadata, and
- 'version', the version that encoded the metadata.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 1c1d65a45f4574ca5f33cc9d949089a5c956e363)
-
-commit e8dd1eeec7ee2fd11a2985843825a3ec0f522b0c
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Jul 6 15:33:06 2016 +0530
-
- ceph_volume_client: add versioning
-
- Add class attributes to CephFSVolumeClient to version
- its capabilities.
-
- 'version' attribute stores the current version number
- of CephFSVolumeClient.
-
- 'compat_version' attribute stores the earliest version
- number of CephFSVolumeClient that the current version is
- compatible with.
-
- Fixes: http://tracker.ceph.com/issues/15406
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 46876fb2ceb22082c0a1703fe77ad1694b508ad8)
-
-commit a0ffc859f5763850342a165ec4c49b3b1e83bb95
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 23:22:12 2016 +0530
-
- ceph_volume_client: disallow tenants to share auth IDs
-
- Restrict an auth ID to a single OpenStack tenant to enforce
- strong tenant isolation of shares.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 82445a20a258a4c8800f273dc5f2484aace0e413)
-
-commit d3e22db9841404d6c305012032427d6bb5311253
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 17:11:33 2016 +0530
-
- ceph_volume_client: cleanup auth meta files
-
- Remove auth meta files on last rule for an auth ID deletion
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit ec2e6e37d01c961d269d83661d0b95ada6a8449e)
-
-commit 2e9c37adfb7b9f7e67801ffc2e1fa6c85674c9c1
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 16:55:30 2016 +0530
-
- ceph_volume_client: fix log messages
-
- Log the path of the volume during creation and deletion of volumes.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 7731287761f91e1fdee0e6306d9ecf9b04ad363c)
-
-commit 7e93d3d0e631f375a496673174667934d5ecc08e
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 16:31:23 2016 +0530
-
- ceph_volume_client: create/delete VMeta for create/delete volume
-
- Create and delete volume meta files during creation and deletion of
- volumes.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 37fbfc7aa8f10d37f5202603a906425507271ff5)
-
-commit 7cea0eee455c83fbdd64fff192c6aa10235a2c40
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 16:06:53 2016 +0530
-
- ceph_volume_client: modify locking of meta files
-
- File locks are applied on meta files before updating the meta
- file contents. These meta files would need to be cleaned up
- sometime, which could lead to locks being held on unlinked meta
- files. Prevent this by checking whether the file had been deleted
- after lock was acquired on it.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit f7c037229bcf3f5a3d06897ec7fe0c5419dd7143)
-
-commit e77684fc68cfd3dfb33a80e7c5604356921a40b0
-Author: Ramana Raja <rraja@redhat.com>
-Date: Thu Jun 23 17:39:32 2016 +0530
-
- cephfs.pyx: implement python bindings for fstat
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit f58403f3d19e22edeb8f91b6f87a0b7947b0ff21)
-
-commit d2792ef1babd452d76528ce5ca511106d8c836b4
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Jun 8 16:57:01 2016 +0530
-
- ceph_volume_client: restrict volume group names
-
- Prevent craftily-named volume groups from colliding with meta files.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 7f7d2a76ae9b556c1de418f0eab8461c538f91d9)
-
-commit 4f874dd9a9c4ce58f623c635c31bb67012a72199
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Jun 8 16:34:56 2016 +0530
-
- ceph_volume_client: use fsync instead of syncfs
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 27eb51baab4cda6b385aef53fc7c3962a9debae5)
-
-commit bde2c8f111d8276b026a3b1e37a5c9081a498ec9
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Fri Apr 29 14:47:42 2016 -0500
-
- pybind: expose fsync in cephfs binding.
-
- So we don't necessary to syncfs when want to persistent
- some file.
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit 1c952fbaf0fd393ef2dcb83a3db721a077b4274e)
-
-commit 0c13bf2d028eab4cd062209be7ed985cdf28960c
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Jun 8 00:42:18 2016 +0530
-
- ceph_volume_client: recover from dirty auth and auth meta updates
-
- Check dirty flag after locking something and call recover() if we are
- opening something dirty (racing with another instance of the driver
- restarting after failure) -- only required if someone running multiple
- manila-share instances with Ceph loaded.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 647a2447f0c4354dc21d1083043591d2b6f6f94f)
-
-commit 8f7defb5d084f8e781fa44e9c21edf6c472cfb4a
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Jun 21 12:14:56 2016 +0530
-
- ceph_volume_client: modify data layout in meta files
-
- Notable changes to data layout in auth meta and volume meta files:
-
- In the auth meta files, add a 'dirty' flag to track the status of auth
- updates to a single volume.
-
- In the volume meta file, make the 'dirty' flag track the status of
- auth updates for a single ID.
-
- Optimize the recovery of partial auth update changes to auth meta,
- volume meta, and the Ceph backend, facilitated by changes in the
- data layout in the meta files.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 7c8a28a7e817d030a4d419b0cc627c30c1064270)
-
-commit 748a5a08ecc1e212e4bd10e0c8eff0a805fc931f
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 2 12:30:45 2016 +0000
-
- pybind: ceph_volume_client authentication metadata
-
- Store a two-way mapping between auth IDs and volumes.
-
- Enables us to record some metadata on auth ids (which
- openstack tenant created it) so that we can avoid exposing
- keys to other tenants who try to use the same ceph
- auth id.
-
- Enables us to expose the list of which auth ids have access
- to a volume, so that Manila's update_access() can be
- implemented efficiently.
-
- DNM: see TODOs inline.
-
- Fixes: http://tracker.ceph.com/issues/15615
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit d2e9eb55ca6ed5daa094cf323faf143615b9380b)
-
-commit e14dc25e1fca7fd74971cbda74d1fcadff5be3b4
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Mar 7 13:06:41 2016 +0000
-
- pybind: enable integer flags to libcephfs open
-
- The 'rw+' style flags are handy and convenient, but
- they don't capture all possibilities. Change to
- optionally accept an integer here for advance users
- who want to specify arbitrary combinations of
- flags.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 5678584f4176d07301acd7f57acc4efd7fb20e43)
-
-commit c6546bb29b25fb96f270257b959426f949eb9418
-Author: Noah Watkins <noahwatkins@gmail.com>
-Date: Wed Mar 16 14:12:05 2016 -0700
-
- buffer: fix iterator_impl visibility through typedef
-
- The following program doesn't compile because of symbol visibility issues.
- While bufferlist::iterator is a class implementation with visibility specified,
- it is unclear after google-fu how to do the same through typedef.
-
- int main()
- {
- ceph::bufferlist bl;
- ceph::bufferlist::const_iterator it = bl.begin();
- (void)it;
- return 0;
- }
-
- [nwatkins@bender ~]$ g++ -Wall -std=c++11 -Iinstall/include -Linstall/lib -o test test.cc -lrados
- /tmp/cciR9MUj.o: In function `main':
- test.cc:(.text+0x43): undefined reference to `ceph::buffer::list::iterator_impl<true>::iterator_impl(ceph::buffer::list::iterator const&)'
- /usr/bin/ld: test: hidden symbol `_ZN4ceph6buffer4list13iterator_implILb1EEC1ERKNS1_8iteratorE' isn't defined
- /usr/bin/ld: final link failed: Bad value
- collect2: error: ld returned 1 exit status
-
- Signed-off-by: Noah Watkins <noahwatkins@gmail.com>
- (cherry picked from commit 16bc3e59325d4057d36cd63a57111ab36fbc50fd)
-
-commit e825dd2f3fc9048995062bfe96e32e6df7ef37d9
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Fri Jul 22 10:57:45 2016 +0200
-
- rgw multisite: preserve zone's extra pool
-
- In current multisite scenarios,if a bucket is created in master, we end
- up storing multipart metadata in `$source-zone.rgw.buckets.non-ec` pool
- instead of the zone's own non-ec pool, so we end up additionally
- creating this pool and storing multipart metadata entries in it. Also if
- a bucket is created in a secondary zone, and we initiate a multipart
- upload, before mdlog sync with master, we end up getting errors during
- complete multipart requests as omap entries are partly stored in the
- `$zone.rgw.buckets.non-ec` as well as `$source-zone.rgw.buckets.non-ec`
- pools which leads to total number of parts mismatch.
-
- Fixes: http://tracker.ceph.com/issues/16712
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit d4ecc956f603a567bd4043c2be39b3e7e3402c75)
-
-commit 059ed62ff937ce63b7255d72bf9b3cf687c4b532
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jul 4 15:01:51 2016 +0200
-
- rgw: remove bucket index objects when deleting the bucket
-
- Fixes: http://tracker.ceph.com/issues/16412
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 3ae276390641ad5fc4fef0c03971db95948880b4)
-
-commit 93d787557939d77c6a15854520a42f3d0f358370
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri Jul 8 10:41:59 2016 +0200
-
- rgw: add missing master_zone when running with old default region config
-
- Fixes: http://tracker.ceph.com/issues/16627
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit a0420741d446341a4979d78db7e2e58f396fdc4b)
-
-commit dc963833af2d81984c7fd023f718f5b7e58a37dc
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jul 6 09:15:29 2016 -0400
-
- rgw: fix error_repo segfault in data sync
-
- RGWDataSyncShardCR will only allocate an error_repo if it's doing
- incremental sync, so RGWDataSyncSingleEntryCR needs to guard against a
- null error_repo
-
- also, RGWDataSyncShardCR::stop_spawned_services() was dropping the last
- reference to the error_repo before calling drain_all(), which meant that
- RGWDataSyncSingleEntryCR could still be holding a pointer. now uses a
- boost::intrusive_ptr in RGWDataSyncSingleEntryCR to account for its
- reference
-
- Fixes: http://tracker.ceph.com/issues/16603
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 28609029cf1be2fc9f8c8e3f47320636db29014a)
-
-commit 67eb961927664cbded6b01c5f76bfd9db8481f8c
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 18 16:06:15 2016 -0500
-
- rgw: add line space between inl. member function defns (rgw_user.h)
-
- This is a cosmetic change only.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 5a7f7f5560e57f8dc64a3c84c1e668be834d81e0)
-
-commit 3f8298a049e255f542a012688b4148456d465d8d
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 18 15:58:07 2016 -0500
-
- rgw-admin: return error on email address conflict (add user)
-
- Fixes the error return inconsistency documented in upstream
- Ceph issue #13598
-
- Revised after upstream review, permits changing email address as
- originally (but use case-insensitive comp).
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 90c143efa2156e55dc017ebe81005315cacaf2c5)
-
-commit 962e7dc47dcaa64f4774a197ae21d0ee59f7854f
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 18 15:06:19 2016 -0500
-
- rgw-admin: convert user email addresses to lower case
-
- Fixes the email address inconsistency documented in upstream
- Ceph BUG #13598
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4c438dbbc0e6eda6b9a3018d60019a1a780d6f65)
-
-commit 461782ee6b755b14f6ae90ea56ebcb656e305b94
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Jun 13 12:34:39 2016 +0200
-
- selinux: allow chown for self and setattr for /var/run/ceph
-
- Fixes: http://tracker.ceph.com/issues/16126
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 2a6c738abda35f540af6f9398406d4e49337c34d)
-
-commit fe57aceeb02ad9163feb2d196589b5927cedfa0f
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jun 6 16:19:17 2016 -0400
-
- rgw ldap: fix ldap bindpw parsing
-
- Also add additional LDAP debugging output at 0, 10, and 15 to make
- troubleshooting easier.
-
- Fixes DN search issue using QE configuration of MS AD.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 72b2f3e8dcb879be3dac7ac03142fd4a13ff28ac)
-
-commit 429e9c03f3f47e3804f54cac380db0add18584f2
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Tue Jun 14 11:04:23 2016 +0200
-
- rgw: aws4: fix buffer sharing issue with chunked uploads
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit dd9f53115a452e1e4268a1036f8fb69f9c1b86f7)
-
-commit 7c2eab19e2c088e97de924f7f1a633a9f291439d
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Fri Jul 1 21:06:17 2016 -0400
-
- mds: move Finisher to unlocked shutdown
-
- This commit resolves a deadlock reported in i16042 where the thread calling
- MDSRankDispatcher::shutdown would hold the mds_lock while asynchronous
- callbacks in the Finisher would attempt to lock mds_lock.
-
- For simplicity, I merged the finisher stop with the messenger shutdown as both
- need the mds_lock dropped.
-
- Fixes: http://tracker.ceph.com/issues/16042
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit b1d6689b6cae579d5f1b2047fd3c653cda422454)
-
- Conflicts:
- src/mds/MDSRank.cc
- trivial conflict in MDSRankDispatcher::shutdown()
-
-commit 28697fc5101395be2a1bd778445983e61a2dc089
-Author: Douglas Fuller <dfuller@redhat.com>
-Date: Mon Jun 27 12:30:11 2016 -0700
-
- mds: Kill C_SaferCond in evict_sessions()
-
- MDSRankDispatcher::evict_sessions waits on a C_SaferCond for
- kill_session to complete on each of its victims. Change the
- command handling flow to pass command messages all the way down
- to MDSRankDispatcher. Extract the MDSDaemon's reply path into a
- static function callable from a new context in the MDSRankDispatcher.
-
- See: http://tracker.ceph.com/issues/16288
- Signed-off-by: Douglas Fuller <dfuller@redhat.com>
- (cherry picked from commit 3a4d63ee67765010a8e53af5a89aef4f49fafd56)
-
-commit 1d3a816814c6cb87f645f205362de800cc84d484
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Mon Jun 27 13:00:26 2016 +0800
-
- mds: fix shutting down mds timed-out due to deadlock
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
- (cherry picked from commit ca069149654ecd10778cd5327bf59b9643e23967)
-
-commit 49a1ce936d76b4bbf7a3b46be300ad5ebb6d301e
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Mon Jun 27 12:59:08 2016 +0800
-
- msg/async: remove the unnecessary checking to wakup event_wait
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
- (cherry picked from commit 560dc32771be00664c4b22a0ebca5190cd246e0a)
-
-commit 2beb56a10a0319b6d061caf1da769bb3c9f5f90b
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Jun 2 17:03:05 2016 +0800
-
- mds: fix SnapRealm::have_past_parents_open()
-
- the '!' got delete accidentally in commit f7fb2cb52c (mds: fix open
- snap parents tracking)
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit f28f72635c7d11f0db4f156a6d108a480295056d)
-
-commit 3d6d36a12bd4823352dc58e2135d03f261d18dbe
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu May 26 09:38:47 2016 +0200
-
- ceph-disk: partprobe should block udev induced BLKRRPART
-
- Wrap partprobe with flock to stop udev from issuing BLKRRPART because
- this is racy and frequently fails with a message like:
-
- Error: Error informing the kernel about modifications to partition
- /dev/vdc1 -- Device or resource busy. This means Linux won't know about
- any changes you made to /dev/vdc1 until you reboot -- so you shouldn't
- mount it or use it in any way before rebooting.
-
- Opening a device (/dev/vdc for instance) in write mode indirectly
- triggers a BLKRRPART ioctl from udev (starting version 214 and up)
- when the device is closed (see below for the udev release note).
-
- However, if udev fails to acquire an exclusive lock (with
- flock(fd, LOCK_EX|LOCK_NB); ) the BLKRRPART ioctl is not issued.
-
- https://github.com/systemd/systemd/blob/045e00cf16c47bc516c0823d059b7548f3ce9c7c/src/udev/udevd.c#L1042
-
- Acquiring an exclusive lock before running the process that opens the
- device in write mode is therefore an effective way to control this
- behavior.
-
- git clone git://anonscm.debian.org/pkg-systemd/systemd.git
- systemd/NEWS:
- CHANGES WITH 214:
-
- * As an experimental feature, udev now tries to lock the
- disk device node (flock(LOCK_SH|LOCK_NB)) while it
- executes events for the disk or any of its partitions.
- Applications like partitioning programs can lock the
- disk device node (flock(LOCK_EX)) and claim temporary
- device ownership that way; udev will entirely skip all event
- handling for this disk and its partitions. If the disk
- was opened for writing, the close will trigger a partition
- table rescan in udev's "watch" facility, and if needed
- synthesize "change" events for the disk and all its partitions.
- This is now unconditionally enabled, and if it turns out to
- cause major problems, we might turn it on only for specific
- devices, or might need to disable it entirely. Device Mapper
- devices are excluded from this logic.
-
- Fixes: http://tracker.ceph.com/issues/15176
-
- Signed-off-by: Marius Vollmer <marius.vollmer@redhat com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 8519481b72365701d01ee58a0ef57ad1bea2c66c)
-
-commit 8cd7f44d8066a796cccd872dd2593582ac061331
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Fri Jun 3 17:34:10 2016 +0200
-
- rgw: aws4: add STREAMING-AWS4-HMAC-SHA256-PAYLOAD support
-
- When authenticating requests using the Authorization header in AWS4, you have
- the option of uploading the payload in chunks. You can send data in fixed size
- or variable size chunks.
-
- This patch enables streaming mode and signed headers support with chunked
- uploads.
-
- Fixes: http://tracker.ceph.com/issues/16146
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 5de5876a535537f7878615898bb9cf7887204cb1)
-
- Conflicts:
- src/rgw/rgw_rest_s3.cc
-
- No change required to resolve the conflict. Manual merge was enough.
-
-commit 276ec72e85d6650782aef2c96f4b1fbc47918f42
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 11 17:34:33 2016 +0100
-
- rgw: use std::unique_ptr for rgw_aws4_auth management.
-
- This is purely for code maintainability.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 6f273eb52c07b27c7aa2d69be3e5ff5d6578558c)
-
-commit 2c422e306989f65d9112f95a131ff29479b2d0f0
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Mar 11 17:33:47 2016 +0100
-
- rgw: add handling of memory allocation failure in AWS4 auth.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit ddbb0ab9d5046672795ec876221de9ebd466364f)
-
-commit 2cd3ed8a59786be28b55a0983a438af1aab226ea
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Apr 27 23:26:44 2016 +0530
-
- ceph_volume_client: allow read-only authorization for volumes
-
- Allow clients to be restricted to read-only mount of the volume
- by restricting their ceph auth ID's MDS and OSD caps to read-only.
-
- Fixes: http://tracker.ceph.com/issues/15614
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 011ea5e7fb35ee07848e0c3abac24702a778ad63)
-
-commit 46246e39b8cadc14aede930559eddd09059301fc
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Jul 6 19:41:54 2016 +0800
-
- osd: increment stas on recovery pull also
-
- PGMap::recovery_rate_summary() summaries the recovery progress from
- a pool's
- pool_stat_t.stats.sum.num_{objects_recovered,bytes_recovered,keys_recovered},
- now we only increment stats on completion of recovery push, but there
- are chances that a PG recovers by pulling data from replicas to primary.
- in that case, teuthology will erroneously consider recovery hung: a zero
- recovering_keys_per_sec or recovering_bytes_per_sec or
- recovering_objects_per_sec. so we should increment stats on pull as
- well.
-
- Fixes: http://tracker.ceph.com/issues/16277
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 9c6c4d8fef67380e2a6d93f6c101744c926d8b9b)
-
-commit 3da251fe7f3bafa9a936df209b1906824764e5f6
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jul 22 15:55:16 2016 +0800
-
- pybind/ceph_argparse: handle non ascii unicode args
-
- we raise UnicodeDecodeError at seeing non-ascii args if we fail to match
- it with any command signatures. instead, we should use a unicode string
- for representing the error in that case. please note, the exception is
- not printed at all in real-world. =)
-
- Fixes: http://tracker.ceph.com/issues/12287
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5864626d275c423cdb8d3e52a91fe4cc6b8e6f90)
-
-commit b01af21ceeb83e3b2fb7cee608f2a9229e6eed7e
-Author: Oleh Prypin <oleh@pryp.in>
-Date: Wed Jun 15 00:50:20 2016 +0300
-
- Fix tabs->whitespace in ceph_argparse
-
- Signed-off-by: Oleh Prypin <oleh@pryp.in>
- (cherry picked from commit bef2c83c1da7dcc32fc2ff98cf214fc93bef75b8)
-
-commit bb2dc9537612b56a79f1237618126faecbeccc9e
-Author: Oleh Prypin <oleh@pryp.in>
-Date: Wed Jun 15 00:54:08 2016 +0300
-
- Make usage of builtins in ceph_argparse compatible with Python 3
-
- Signed-off-by: Oleh Prypin <oleh@pryp.in>
- (cherry picked from commit ddf06041ef80ac9606da8d57f048d2e23233d122)
-
-commit f80d10c82034fcd9d53b3890afe62a4dbfeb1799
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 20 10:23:48 2016 +0200
-
- rpm: move libatomic_ops-devel to non-distro-specific section
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 94e4f2190b6ab3ff7b57b0b6095fea6d9228d917)
-
-commit a28810c69b356d1865d1ce9e989bcc9e8a66017a
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 20 10:22:37 2016 +0200
-
- rpm: move gperftools-devel to non-distro-specific section
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 06940e29b702c7437dc9f8df365fcc383cb882e1)
-
-commit e6b7a4ba8a1a8ea13d6f7178bd69432a3705754b
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jul 9 22:55:54 2016 +0200
-
- rpm: use new name of libatomic_ops-devel
-
- The previous form, libatomic-ops-devel, has been deprecated since May 23, 2012.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit c835f6ddf5839c418d29db1c2f46da32fbf05d2c)
-
-commit 9bbf2e8d874201460c3cf1dfd14cfd17752d397d
-Author: Dan Horák <dan@danny.cz>
-Date: Fri May 6 13:29:03 2016 +0200
-
- fix tcmalloc handling in spec file
-
- - there is no gperftools/tcmalloc on s390(x) yet
- - explicitly disable tcmalloc when built without
-
- Signed-off-by: Dan Horák <dan@danny.cz>
- (cherry picked from commit efa7f7b365d27797573bf4e5a9878f94f41aede2)
-
-commit 894a5f8d878d4b267f80b90a4bffce157f2b4ba7
-Merge: b15cf42 2538b77
-Author: John Spray <jspray@redhat.com>
-Date: Thu Jul 21 13:58:16 2016 +0100
-
- Merge pull request #10373 from ceph/jewel-mds-snap-failover
-
- Jewel mds snap failover
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit b26acc03ab42ba7eacb804ef8dc08c03a6e64e2d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jun 13 10:27:18 2016 +0200
-
- ceph-osd-prestart.sh: drop Upstart-specific code
-
- Before this patch, the ceph-osd-prestart.sh script would do Upstart-specific
- things if the journal device failed to appear after a 5-second timeout.
-
- Fixes: http://tracker.ceph.com/issues/15984
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 47a06e608b7f686252d42c5a879373d8ebb65d9d)
-
-commit 1e622a5d3b79a89a6affb56f282e1305c48ec835
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Jul 19 15:40:36 2016 +0100
-
- rpm: Fix creation of mount.ceph symbolic link for SUSE distros
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 976c9d4f31793712b2af334e4a7a58745af8c099)
-
-commit 89cb116ca14abf5764edf07373d045bb127ca7eb
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jul 18 19:09:54 2016 +0200
-
- build/ops: build mount.ceph and mount.fuse.ceph as client binaries
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b2675ff82445cda9873292ac2be8186e054098ed)
-
-commit 84b45b75c47e6234aac9d3ee1cf1c6844b898ae9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jul 18 16:16:11 2016 +0200
-
- rpm: move mount.ceph from ceph-base to ceph-common
-
- Ceph clients use mount.ceph to mount CephFS filesystems, and
- ceph-base is not expected to be installed on client systems.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b8c24bf2f8c6a6b125778ca92d68d8e64ccf9ae0)
-
-commit e028cd140840b15a8f99962dcf8ec646da3f1f60
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 6 10:13:03 2016 +0200
-
- rpm: create mount.ceph symlink in /sbin (SUSE only)
-
- Fixes: http://tracker.ceph.com/issues/16598
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b090e9da326a72068260682599c886c2d11f06b3)
-
-commit ad67d1c15f49233fe1108258d9b968c8b2301330
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Jun 2 02:08:45 2016 +0800
-
- makefile: install mount.fuse.ceph,mount.ceph into /usr/sbin
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 52021ff9f0b23c36a012f19c7388dcfb2281b523)
-
- Conflicts:
- src/CMakeLists.txt (Install mount.ceph to ${CMAKE_INSTALL_SBINDIR}
- instead of sbin; install mount.fuse.ceph to ${CMAKE_INSTALL_SBINDIR} as
- well)
-
-commit 2538b77a2f219a76c19289ab3e675927f6914149
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Jul 11 15:32:41 2016 +0800
-
- client: fix MetaRequest::set_other_inode()
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 265f96bda7e106883063f074133450ce39ee262c)
-
-commit ffcfe69ef7abaaa3c663de86fb04ea986dc90b15
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Jul 11 11:25:37 2016 +0800
-
- client: close directory's snapdir when deleting directory
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 3099cabd11a16d22c6707631861bef0aa176ed02)
-
-commit b9007025f3dd49532a45267d7478dcdc5308ce3a
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Jul 11 11:07:01 2016 +0800
-
- client: invalidate snap inodes after removing snapshot
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit f180ad149ab510626fcd6cbd8221f550f9858126)
-
-commit d9f957a5cda55adcdba5db28689aeb344d10e413
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Jul 11 10:51:13 2016 +0800
-
- mds: fix incorrect "unconnected snaprealm xxx" warning
-
- If a snaprealm has no child/parent snaprelam, and the snaprealm inode
- is not in the cache while client reconnects. The snaprealm does not
- get properly removed from MDCache::reconnected_snaplrealm. This causes
- incorrect "unconnected snaprealm xxx" warning
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 85e687de876ca7e0174734ba81130949c4ab6a40)
-
-commit 3e745ef3172aeef07038c9156d4668ca08078f18
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Jun 30 16:05:57 2016 +0800
-
- qa/workunits/fs: fix expect_failure function in test scripts
-
- The origin expect_failure function return 0 regardness of command's
- return value.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 16f7d7c71e65cd68cecde3e5b89d189ab5950548)
-
-commit 37157d146f1983b94588135e4b0468a9c59c3ead
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 29 20:49:40 2016 +0800
-
- client: make sure snapflush is sent before normal cap message
-
- MDS does null snapflush when it receives normal cap message. So client
- must send snapflush first.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d3916717e2edc8000400f678fa7134ca1406a074)
-
-commit 326d46b54280ff5612ee571671cc4956fcb7e8eb
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jun 28 20:39:08 2016 +0800
-
- client: unify cap flush and snapcap flush
-
- This patch includes following changes
- - assign flush tid to snapcap flush
- - remove session's flushing_capsnaps list. add inode with snapcap
- flushes to session's flushing_caps list instead.
- - when reconnecting to MDS, re-send one inode's snapcap flushes and
- cap flushes at the same time.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a05e996b2a2c36496abd8538829ac4897392f6eb)
-
-commit 5c2ff04061cc686c8ece37cee3393365769d2bf1
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 29 17:15:01 2016 +0800
-
- mds: handle partly purged directory
-
- For a snapshoted direcotry whose snaprealm parents are being opened,
- MDS does not know if the directory is purgeable. So MDS can't skip
- committing dirfrags of the directory. But if the direcotry is purgeale,
- some dirfrags could have already been deleted during MDS failover.
- Committing them could return -ENOENT.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit bc50e0309280c08c3ca79dfa5514ac3a15f81a23)
-
-commit 57b39f04087f3ba855248950723c949e3b7dcd7c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 29 11:42:42 2016 +0800
-
- mds: do files recovery after processing cap flushes
-
- File recovery may update inode and trigger inode COW. MDS relies on
- client caps to setup CInode::client_need_snapflush. But for a given
- client, the reconnected caps may not include the flushing caps.
- (Before MDS failover, client released and flushed some caps at the
- same time. When MDS recovers, client re-send the cap flush and send
- cap reconnect to the MDS.) This may cause later snapflush to get
- dropped.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit dd98448d3d0bbb7d338f03f7ad1e40f217eebe0d)
-
-commit bace1c8c7ce7d29676b9ed6925cdee41af8a8425
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 29 11:25:12 2016 +0800
-
- mds: combine MDCache::{reconnected_caps,cap_imports_dirty}
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 57067e032e84bbdb69c499aa7ea93ca68082569b)
-
-commit 365bda18e3fe960be69d81882e11dcb9932a002c
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Jun 24 17:09:34 2016 +0800
-
- mds: remove CEPH_LOCK_IFLOCKL from cinode_lock_info
-
- Currently we don't support dirty CEPH_CAP_FLOCK_EXCL
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit cfc3ec17b6f245e6d8a0be4fdf6cfa64d2fb725f)
-
-commit 55367c5cda09167778839eb8474f86903857f53a
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Jun 23 16:59:46 2016 +0800
-
- mds: rebuild the internal states that tracking pending snapflush
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 1b7d198f633a8608b704f82f01a3f4a4a3a4892b)
-
-commit 0897fc4f15804a25a667bf7e495dc4ff1209127b
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 22 20:34:41 2016 +0800
-
- mds: using cap_reconnect_t to track cap recconect
-
- Previous commit extended cap_reconnect_t to include snapflush
- related information. This information are needed in various
- places
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 25b6011dcf07c1fc663cbe29ffd119b66545a0ac)
-
-commit ac508dc9202ebdb8f39bf1304bb459637cae1cb9
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 22 15:56:29 2016 +0800
-
- mds: add 'follows' of first pending snapflush to cap reconnect message
-
- This helps the recovering MDS to reconstruct the internal states that
- tracking pending snapflush.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit dd3963a878d4bb2fb5992278ccbc9f7633fb8786)
-
-commit c258f52afa68bf991b4d6c76d36271333c3e49bf
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jun 21 17:17:56 2016 +0800
-
- mds: journal snap inodes that need flush when expiring log segment
-
- Treat snap inodes that need flush in the same way as open files.
- When MDS recovers, this make sure that journal replay bring snap
- inodes that need flush into the cache
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 306153b3d012832bdfa20402077fa60a9a5d626c)
-
-commit 42dd72df1a514175be05d5d613d9b00296cb1b1e
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jun 21 16:20:58 2016 +0800
-
- mds: properly update client_snap_caps when splitting snap inode
-
- update the new snap inode's client_snap_caps according to the old
- snap inode.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4883779935219817c7e391940a025be1679daeb5)
-
-commit b15cf42a4be7bb290e095cd5027d7f9ac604a97d
-Author: Oleh Prypin <oleh@pryp.in>
-Date: Thu Jul 14 01:06:51 2016 +0300
-
- install-deps: Get the latest virtualenv in a temporary folder
- to work around a bug in old virtualenv
-
- Signed-off-by: Oleh Prypin <oleh@pryp.in>
- (cherry picked from commit 2699b6d89b8c1c193fd86b5233d1ea86458753a0)
-
-commit 00f3fd4a39f35780e602acfa4023bf59031b3617
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jul 12 16:07:53 2016 +0800
-
- ceph-fuse: link to libtcmalloc or jemalloc
-
- Fixes: http://tracker.ceph.com/issues/16655
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit e644f6eb64037b1e21ce55d4dcffa43571ac1327)
-
-commit d794e295786599102d5ea1a4c10002f4f8d85649
-Merge: bb94997 7178f23
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Thu Jul 14 12:10:11 2016 -0400
-
- Merge remote-tracking branch 'upstream/pull/10298/head' into jewel
-
- * upstream/pull/10298/head:
- doc: fix standby replay config
-
-commit 7178f23c1bcb800bec2c7bec138ac02b22dbad2b
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Tue Jul 12 15:43:23 2016 -0400
-
- doc: fix standby replay config
-
- I tried using these settings in tests without success. The correct config names
- are prefixed with "mds".
-
- Fixes: http://tracker.ceph.com/issues/16664
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
-
-commit 8981f3beb5732f51197a5be84df18edde64217ca
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Jun 21 15:09:53 2016 -0400
-
- rgw: add pg_ver to tombstone_cache
-
- a tombstone cache was added to remember the mtime of deleted objects for
- use with the HTTP_IF_MODIFIED_SINCE header, but the comparison was still
- failing because of a missing pg_ver. added pg_ver to the tombstone cache
- so it can be passed with HTTP_DEST_PG_VER
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit adb529f2fb983df671a1db58a0b17862a29762f0)
-
-commit 6c32fe8a75f535f21d3bec089bf06a82db5ec876
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jun 10 14:35:01 2016 -0700
-
- rgw: add obj tombstone cache
-
- The obj tombstone cache is used in multi-zone environmet to keep
- track of removed objects' mtime. This is then used to fetch remote
- object only if its newer than the object that was removed, otherwise
- we're just fetching ghost of the past.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit eb10214920c23b24edd94ca53d0f36c85404644d)
-
-commit f651a8f0cc2a11eb1a037338e35de3cf165f5ac2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jun 10 14:34:41 2016 -0700
-
- rgw: rgw_obj comparison also accounts for bucket id
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a7f32c4b1bd951b1a18b7d13013dc8e2822d6ffc)
-
-commit 354e81c1800066e4e8f525706214c41d90816b9d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 9 14:30:42 2016 -0700
-
- cls/rgw: reduce tag_timeout significantly
-
- The tag timeout is used for applying dir_suggest changes. Shorten it
- so that changes will be reported early and can be used in data sync.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 99efdc673b7aed439eebdaa92ff117ba9646dd7c)
-
-commit 24d483119035a78973a1ee3827f5f7c8cb20ce5a
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 9 14:22:07 2016 -0700
-
- cls_rgw: dir_suggest entries bucket index logging
-
- Fixes: http://tracker.ceph.com/issues/16222
-
- Log entries that were set through the dir_suggest mechanism in
- the bucket index log.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ae00c5529219d81987425160dbb2a4e937661a6c)
-
-commit bdef8b23714eaff933992ed8c02fb35cd8d11818
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 9 12:59:35 2016 -0700
-
- cls/rgw: fix timespan comparison
-
- Fixes: http://tracker.ceph.com/issues/16220
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e0a07f70f7740a66ffa2646e0a57e8bdc0285373)
-
-commit c34dbd4b19dcc35483306f95932b3ed6ed8332fd
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Jun 4 05:47:50 2016 -0700
-
- rgw: data sync squash, prioritize object removal
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2fcd8b1d49aae2fd03b986dd10bb3f98d3b8f32e)
-
-commit 09eee3be8fcd79ef46ecfbd277e8cc2bf4f28d93
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Jun 4 03:29:12 2016 -0700
-
- rgw: squash bi complete bi log entries
-
- only process the newest complete operation in a bilog listing.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f69db8e455f07c5594363c5beac329cb964be1ff)
-
-commit 571a13255aff4ca072ff88bb4ce54da086fbad86
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jun 3 02:03:13 2016 -0700
-
- rgw: stop bucket lease only after draining object sync operations
-
- Fixes: http://tracker.ceph.com/issues/16143
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit be6ad9a76c3008ea25a737c0de718faab8fca611)
-
-commit 7af0306de5778340fc7c9395b237bf4e73716d0a
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 24 12:57:19 2016 -0400
-
- rgw: don't leak RGWRados::cr_registry on error
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 53a7f1a9951fa21cb46b5fb3914db3547b568aa5)
-
-commit 9591e505c1d2c7b66b4c17421f94b6fc7e68913f
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 24 10:40:25 2016 -0400
-
- rgw: dont need atomic RGWRados::next_rados_handle
-
- next_rados_handle is only accessed under an exclusive handle_lock
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 1adff94b720d01240040fdffebdbf53efdd528a5)
-
-commit 047379c2521434f2dbbe67ebbf53e59ed92654f0
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 24 10:23:26 2016 -0400
-
- rgw: remove unneeded RGWRados::num_rados_handles
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 72d5a485e41ac5824c30556b6cfe659094cd303c)
-
-commit 7848482988711406c9cde48d828a0d118f764ad1
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue May 3 10:35:41 2016 -0400
-
- rgw: use vector for librados handles
-
- using a vector instead of an array of pointers cleans up our
- initialization/shutdown logic
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 02fb39d7f5835ada4d6304f318203444dc7eedc9)
-
-commit bb94997bf4548a430b686a7ceb98052fdb051223
-Merge: 6ae4d13 a40cfe4
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Tue Jul 12 10:09:34 2016 -0400
-
- Merge pull request #9268 from theanalyst/wip-15992-jewel
-
- jewel: radosgw-admin: EEXIST messages for create operations
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 6ae4d13e81d4b98e34d7094e939a8eab5820f608
-Merge: bf73c9a 21f0216
-Author: Loic Dachary <loic@dachary.org>
-Date: Sun Jul 10 23:03:16 2016 +0200
-
- Merge pull request #8497 from sabaini/jewel
-
- ceph-disk: Accept bcache devices as data disks
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2c39d3652acbab77e8da50fa1b7ef537374ac109
-Author: Pete Zaitcev <zaitcev@kotori.zaitcev.us>
-Date: Tue Jun 7 17:44:20 2016 -0600
-
- rgw: Add documentation for the Multi-tenancy feature
-
- Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
- (cherry picked from commit 0e622020fa2a185eaf0546d93a20b06d44e7f691)
-
-commit 9e5a3ae3cd35ccbd7a9f48c555fb93d5beee57cb
-Author: Feng Guo <diluga@gmail.com>
-Date: Fri Jun 24 09:26:16 2016 +0800
-
- RGW:add socket backlog setting for via ceph.conf
- http://tracker.ceph.com/issues/16406
-
- Signed-off-by: Feng Guo <diluga@gmail.com>
- (cherry picked from commit 3e4df832d34c782795a32b5a30f5c7414a1c3fa9)
-
-commit aa3936131d6525e656cd56315947bbf9ddc508ce
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 15 20:15:14 2016 +0800
-
- mds: disallow 'open truncate' non-regular inode
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0e4b6f2332bb4822cf324587a94144f1c98e4b97)
-
-commit 3af7b422a3a97c0e89dbff757c5ed0f4557a6602
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Apr 15 19:45:23 2016 +0800
-
- mds: only open non-regular inode with mode FILE_MODE_PIN
-
- ceph_atomic_open() in kernel client does lookup and open at the same
- time. So it can open a symlink inode with mode CEPH_FILE_MODE_WR.
- Open a symlink inode with mode CEPH_FILE_MODE_WR triggers assertion
- in Locker::check_inode_max_size();
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4d15eb12298e007744486e28924a6f0ae071bd06)
-
-commit 8655803d8fb9ac21f75b636fb6d666f387462934
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu Jul 7 14:14:36 2016 -0700
-
- rgw: fix multi-delete query param parsing.
-
- Multi-delete is triggered by a query parameter on POST, but there are
- multiple valid ways of representing it, and Ceph should accept ANY way
- that has the query parameter set, regardless of what value or absence of
- value.
-
- This caused the RubyGem aws-sdk-v1 to break, and has been present since
- multi-delete was first added in commit 0a1f4a97da, for the bobtail
- release.
-
- Fixes: http://tracker.ceph.com/issues/16618
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit a7016e1b67e82641f0702fda4eae799e953063e6)
-
-commit bf73c9ad08ed2cc8db821c08694b11461549fb26
-Merge: f672ddf f858f94
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Jul 6 14:18:44 2016 -0400
-
- Merge pull request #9545 from Abhishekvrshny/wip-16117-jewel
-
- jewel: rgw: aws4 parsing issue
-
-commit 546141c94a1c5e45dcb70e2d5fd06fe1ac0b1599
-Author: Wido den Hollander <wido@42on.com>
-Date: Tue Apr 5 11:14:16 2016 +0200
-
- rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule
-
- Before this patch the RGW would respond with the Origin send by the client in the request
- if a wildcard/asterisk was specified as a valid Origin.
-
- This patch makes sure we respond with a header like this:
-
- Access-Control-Allow-Origin: *
-
- This way a resource can be used on different Origins by the same browser and that browser
- will use the content as the asterisk.
-
- We also keep in mind that when Authorization is send by the client different rules apply.
- In the case of Authorization we may not respond with an Asterisk, but we do have to
- add the Vary header with 'Origin' as a value to let the browser know that for different
- Origins it has to perform a new request.
-
- More information: https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
-
- Fixes: #15348
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit 0021e224480c7164330eaa7cc1078bb8795169bf)
-
-commit f672ddfc5ad6ac86051987985067318436f0667b
-Merge: aa211cb ec884a3
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jul 6 11:55:13 2016 +0200
-
- Merge pull request #9568 from dreamhost/wip-16182
-
- jewel: rgw: backport merge of static sites fixes
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 2afc176a2792a9ef389f34c7de1aba697fca6a31
-Author: Albert Tu <albert.t@inwinstack.com>
-Date: Tue Jun 28 10:38:07 2016 +0800
-
- rgw: fix double counting in RGWRados::update_containers_stats()
-
- Fixes: http://tracker.ceph.com/issues/16188
- Signed-off-by: Albert Tu <albert.t@inwinstack.com>
- (cherry picked from commit 5dd825aed25588843dc4834be3f5fdf10d93bc68)
-
-commit 489f8ce48b30c708879a002a55aecc080421b5a1
-Author: runsisi <runsisi@zte.com.cn>
-Date: Tue Jul 5 16:08:40 2016 +0800
-
- librbd: fix missing return statement if failed to get mirror image state
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit ea775178b61ba38237343b07a90d19802f0b7dac)
-
-commit a7987f060479f81d6181f8949e8ed2c8b3029dfd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed May 25 18:33:49 2016 +0800
-
- MDSMonitor.cc: fix mdsmap.<namespace> subscriptions
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 8f09dd15cb07597c57d0a6ae981f15a47de11bb9)
-
-commit d244b7a0c6eb4a57a424297d4293184dff28b94c
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Fri Jun 17 11:53:32 2016 -0400
-
- mds: add maximum fragment size constraint
-
- This commit adds a new config option
-
- mds_bal_fragment_size_max = 10000*10
-
- which is an order of magnitude larger than mds_bal_split_size.
-
- This limit prevents a fragment from getting too large which results in large
- omap directories.
-
- Right now the limit is enforced only in the RPC paths and in stray directory
- entry creation.
-
- Fixes http://tracker.ceph.com/issues/16164
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 60af83c80910070d8fb10ac7a4f6f24d49521c1b)
-
-commit 64d99b160d9d6a8758b7a9b3783bd1d153e15c9a
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Jun 17 11:58:13 2016 +0800
-
- mds: fix Session::check_access()
-
- It calls CInode::make_path_string(...) with the second argument is
- false. The second argument makes the third argument useless. For
- newly created inode, the path string is something like #1xxxxxxxxx.
- This can cause the access check to fail.
-
- Fixes: http://tracker.ceph.com/issues/16358
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit a94ef56523a383c44c7a52e473e37a43fa0cb6a2)
-
-commit bce5646cd7c9bc9c753bfcefeff37991763b9066
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Jun 6 16:41:49 2016 +0800
-
- client: skip executing async invalidates while umounting
-
- Fixes: http://tracker.ceph.com/issues/16137
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit b95e603a3f9568debeb76fc49aae9a6ee4b75c6b)
-
-commit fd7ff96cbc4a2e9b38d805f36cd4e72a32f04925
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Aug 10 15:15:48 2015 +0800
-
- ceph-fuse: add option to disable kernel pagecache
-
- When multiple clients read/write to a file at the same time, we need
- to disable cache and let reads/writes go to OSDs. In ceph-fuse case,
- there are two caches, one is in ceph-fuse, another one is in kernel.
- We can't disable/enable the kernel cache dynamically. So adding an
- config option to completely disable kernel cache. Disabling kernel
- cache may reduce performance, so option is disabled by default.
-
- Fixes: 12653
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 0f11ec237d4692d313a038ed61aa07a3f40555ba)
-
- Conflicts:
- src/common/config_opts.h
- follow the content in patchset, set fuse_use_invalidate_cb
- to True. Which is also the backport
- for http://tracker.ceph.com/issues/15634
-
-commit 3f76e4acf243dda26c44ae95919b3d4444bd7d88
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jun 29 14:50:12 2016 -0700
-
- rgw: finish error_repo cr in stop_spawned_services()
-
- Fixes: http://tracker.ceph.com/issues/16530
-
- Need to call finish, otherwise drain_all() wouldn't be able to
- drain it.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 492bb608733c83a5d85319cf47c4d86402344376)
-
-commit a5f5513ede87d7d77d83a9327e8d178767f734ea
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Jun 28 14:39:46 2016 -0700
-
- test: fix CMake build of ceph_test_objectcacher_stress
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 2ee3d02c8f5de8d2a0ae3e22f3029b269fe4a212)
-
-commit 17f1bffdb891a155532d966b7d3ab4983c9016cf
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Mon May 23 15:14:21 2016 -0700
-
- ObjectCacher: fix bh_read_finish offset logic
-
- If we have an incoming read split across multiple BufferHeads, we want to
- line up the BufferHead's bl with the incoming OSDOp's bl at the right offset. We
- were erroneously using this nonsense calculation (always equal to zero!) when
- a much simpler comparison of the BufferHead's logical object offset to the
- incoming OSDOp's logical offset will do the trick nicely.
-
- Fixes: http://tracker.ceph.com/issues/16002
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 9ec6e7f608608088d51e449c9d375844631dcdde)
-
-commit 73bc6d11745246df45ea6c4b5fbf9be3b9e91c09
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Jun 23 14:23:51 2016 -0700
-
- osd: provide some contents on ObjectExtent usage in testing
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit a555d9a0c7d3b6c2206520cf78445234b0834639)
-
-commit 3446fa498266ec2902a1d4d9215de4e4b1d9c455
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Fri Jun 10 17:01:09 2016 -0700
-
- test: build a correctness test for the ObjectCacher
-
- For now it's very specifically designed to reproduce
- http://tracker.ceph.com/issues/16002, but it can
- be extended to other patterns in the future.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 0fd55a9886dd8da344c23a5e9898ee5c5061e8f9)
-
-commit b6684914e29fdc375d91be7c80cdf9615d637c8c
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue May 31 16:18:19 2016 -0700
-
- test: split objectcacher test into 'stress' and 'correctness'
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit cc9aab1b0a22c3f7320046b97f75dccf2b86cc6d)
-
-commit 74f59203a13da4ec5ca673a921ed3d07e8d5fc9b
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Thu Jun 23 13:41:46 2016 -0700
-
- test: add a data-storing MemWriteback for testing ObjectCacher
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit ed5801492bf2850e80a328ce5a61cb1ff2709215)
-
-commit aa211cb4ff0a7e9cac4779187848b3ba00c39bf9
-Merge: e3ccf0f d48a1ed
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:36:20 2016 +0200
-
- Merge pull request #9099 from Abhishekvrshny/wip-15841-jewel
-
- jewel: s3website: x-amz-website-redirect-location header returns malformed HTTP response
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit e3ccf0f9d31c9e35edb551dc24da7af7265799c1
-Merge: 448deed a08caa6
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:35:23 2016 +0200
-
- Merge pull request #9265 from Abhishekvrshny/wip-15965-jewel
-
- jewel: No Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 448deed8484b06bdbbdad62cbe34cfab7958bbc1
-Merge: ad182de ff9c29a
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:34:42 2016 +0200
-
- Merge pull request #9267 from Abhishekvrshny/wip-15960-jewel
-
- jewel: rgw: custom metadata aren't camelcased in Swift's responses
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit ad182de1ca849d90fbbbf2ec057b476f32e86d8b
-Merge: 3ccfac6 108638f
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:28:45 2016 +0200
-
- Merge pull request #9316 from Abhishekvrshny/wip-15954-jewel
-
- jewel: rgw: initial slashes are not properly handled in Swift's BulkDelete
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3ccfac6b8e98afef19e6c113bd38ae7ab0c51c24
-Merge: 4e1ebac 0bdc8fd
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:26:09 2016 +0200
-
- Merge pull request #9390 from vumrao/wip-vumrao-16071
-
- jewel: rgw : cleanup radosgw-admin temp command as it was deprecated
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 4e1ebac3048ee1750978e11115144df074923e22
-Merge: 4957014 4eded9a
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:25:51 2016 +0200
-
- Merge pull request #9542 from Abhishekvrshny/wip-15967-jewel
-
- jewel: rgw: account/container metadata not actually present in a request are deleted during POST through Swift API
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 4957014a0e7a744af6c782e6d4e9e5a89c934ace
-Merge: bb02d3e e8b7dd4
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Jun 30 10:25:30 2016 +0200
-
- Merge pull request #9543 from Abhishekvrshny/wip-16040-jewel
-
- jewel: rgw: updating CORS/ACLs might not work in some circumstances
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 757babb03a9024d6aa42fb327244fd983c066545
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 09:03:24 2016 -0400
-
- librbd: memory leak possible if journal op event failed
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f5069750849c2c43caa4bff766301169a4bfc6ca)
-
-commit e7ec20e6c54f913dd4bf52a949488ac9d258c150
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 08:45:59 2016 -0400
-
- librbd: ignore snap unprotect -EBUSY errors during journal replay
-
- Fixes: http://tracker.ceph.com/issues/16445
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit beef0b4b024e9692305f4b413e6c6b520fdaa7f9)
-
-commit cbc963684def355b9c27932fdb4c605bf373ed6e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 09:23:32 2016 -0400
-
- librbd: delete ExclusiveLock instance when switching to snapshot
-
- Fixes: http://tracker.ceph.com/issues/16446
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 677832ceb24096ddbeaf2d60e0ac72d28c399f02)
-
-commit d9c3f28f1200e99c8ecf92f50ec4e8840d74a0f1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 13:34:56 2016 -0400
-
- librbd: mark exclusive lock as released after journal is closed
-
- Fixes: http://tracker.ceph.com/issues/16450
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1811e62aa0ba3bab85c536eaab8f3adec6d1fffa)
-
-commit b1d969868bdd898958236212ee847f7a401c6406
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 24 10:03:53 2016 -0400
-
- librbd: do not propagate mirror status notification failures
-
- These should be treated as a broadcast since no ACK is required. The
- peer will eventually see the notification or its watch will have timed
- out and it will re-sync.
-
- Fixes: http://tracker.ceph.com/issues/16470
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 97bade9f76af62765d7aa8c2154e51a7b231e40f)
-
-commit 51defeada069c0e33b03b96be962f155ce3df295
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 22 18:19:52 2016 -0400
-
- librbd: fix crash while using advisory locks with R/O image
-
- Fixes: http://tracker.ceph.com/issues/16364
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1007aea3d78ca5aead8a11f932da0c1d9d67259e)
-
-commit db28ddcf88c13aef80e5a7131db463b305102abe
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 22 10:14:21 2016 -0400
-
- rbd-mirror: block proxied ops with -EROFS return code
-
- When replicating to a local image, the daemon will own the
- exclusive lock and will receive any proxied maintenance ops
- from other clients. Since the image is non-primary, respond
- with -EROFS.
-
- Fixes: http://tracker.ceph.com/issues/16411
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 07b49df24e5f30460ce3ab584a89370ea3ff7cc8)
-
-commit ebce8ceb9353052d1d43d18e2bb76c68e581272e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 22 10:13:45 2016 -0400
-
- librbd: optionally block proxied requests with an error code
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 93e2faf38e866fb3e32a7b3f3527d97215c60d31)
-
-commit bb02d3e7a4db89d693ed1555d2ac82c5452978e1
-Merge: 8542898 b4a80cb
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jun 30 09:41:20 2016 +0200
-
- Merge pull request #9631 from dillaman/wip-16232
-
- jewel: test: improve rbd-mirror test case coverage
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 70bf7465ad7c75c9c7623a446218ab501f329bd3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 20 09:39:24 2016 -0400
-
- librbd: potential race when replaying journal ops
-
- Fixes: http://tracker.ceph.com/issues/16198
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 75b0f58e37b0ede5e8cf8dcaea980cf71a5ca908)
-
-commit f3f4a4a20ab3039f8dfeda23c773141bf6d95792
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 16 09:27:50 2016 -0400
-
- librbd: journal callback to interrupt replay
-
- If the exclusive lock is lost while the journal is in the
- replay state, the journal close will block until the replay
- completes. The new callback will facilitate stopping replay
- in a timely fashion so that the journal can be closed.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9687e5e34aca98934fcf04089ead2794629455a1)
-
-commit b203168e21c0cfba9df55e9ff43e73a5905119d6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 15 23:04:48 2016 -0400
-
- rbd-mirror: keep local pointer to image journal
-
- Fixes: http://tracker.ceph.com/issues/16230
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 47e25e59a8ed4c4e64ae58b41c03125c6d3c4104)
-
-commit 0399958f6cc2a16487f0962b5d5a317dc1d9ff21
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 20 11:41:31 2016 -0400
-
- rbd-mirror: keep events from different epochs independent
-
- Fixes: http://tracker.ceph.com/issues/16362
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3a5b491ec61134dc2e18cbe4e27a54e64b17f7d2)
-
-commit 6a28d63ac609c4e3eb43a31cabe36f2c79c875d2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jun 20 10:32:04 2016 -0400
-
- librbd: fix lockdep issue when duplicate event detected
-
- Fixes: http://tracker.ceph.com/issues/16363
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 86ef725c34ae950c0e41e89c1aa0c6a15e40f369)
-
-commit 1e85da9cb97f6262eb25d8de234d45e8daccd461
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 16 17:32:20 2016 -0400
-
- rbd-mirror: ensure replay status formatter has completed before stopping
-
- Fixes: http://tracker.ceph.com/issues/16352
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit cccdca460b4be310f99877cf43c48300713150df)
-
-commit bf58eabf561fdb041ed170e54e5d35c46cbe3258
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 16 10:37:56 2016 -0400
-
- journal: do not log watch errors against deleted journal
-
- The peer rbd-mirror process will eventually notice that the journal has
- been removed and clean itself up. This avoids flooding the log with
- expected error messages when journaling is disabled.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8317ce1611c39ad6a58bf2d760a010587d91ec60)
-
-commit deb6ca84e4083b1cf569d22b84f3194b1fb27a4b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 16 09:38:28 2016 -0400
-
- librbd: force-remove journal when disabling feature and removing image
-
- If mirroring is enabled, it's nearly certain that the peer rbd-mirror
- daemon will be a registered client within the journal. Without
- forcing the removal, this would prevent the removal from occurring.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d83aa1e0e44784e1f38698a839f8a353c87027eb)
-
-commit 415ea77fdad016faf7da150630e933930c5ac4b6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 16 09:31:03 2016 -0400
-
- librbd: ignore ENOENT error when removing image from mirror directory
-
- Fixes: http://tracker.ceph.com/issues/16348
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4255afd34927ad6c303074aa6814538a8b5ae96e)
-
-commit cf65ed998b175e5d766364ff18741554b775b632
-Author: Yuan Zhou <yuan.zhou@intel.com>
-Date: Thu May 12 18:22:12 2016 +0800
-
- rbd: Skip rbd cache flush if journaling is enabled under aio_flush
-
- With journaling rbd writes will be persisteted on rbd journal objects.
- The journal will be replayed if crash happen. So it's not necessary to
- flush rbd_cache in this case. This will improve the flush latency.
-
- This patch adds checking on handling aio_flush: if journaling is
- enabled, rbd cache flushing is skipped.
- In a system flush(ImageCtx::flush) the cache is flushed even w/ journaling
- where we truly do need to flush all IO out to disk.
-
- Fixes: http://tracker.ceph.com/issues/15761
-
- Signed-off-by: Yuan Zhou <yuan.zhou@intel.com>
- (cherry picked from commit f2def83b7a4a98bc60db5ba8936d78a49abace88)
-
-commit caad884704ce22ae0a860a12693d7529a5837212
-Author: youji <youji@ebay.com>
-Date: Tue Jun 14 11:12:16 2016 -0700
-
- mon: Monitor: validate prefix on handle_command()
-
- Fixes: http://tracker.ceph.com/issues/16297
-
- Signed-off-by: You Ji <youji@ebay.com>
- (cherry picked from commit 7cb3434fed03a5497abfd00bcec7276b70df0654)
-
-commit 3250c4d5a0bd9fc32eb6b1831a38363581f7c1bd
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Mon Jun 20 15:56:50 2016 +0200
-
- rgw_swift: newer versions of boost/utility no longer include in_place
-
- boost > 1.58 no longer includes in_place in boost/utility, we need to
- include in_place_factory explicitly. This causes build failures in
- distros that ship with a higher version of boost. Since the only call is for
- swift_ver_location, another possibility is to use emplace()
- instead (though this requires boost ~ 1.56)
-
- Fixes: http://tracker.ceph.com/issues/16391
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit a14f0f3869bb7defa7587ad9ccb18c3f086b2c3d)
-
- Conflicts:
- src/rgw/rgw_rest_swift.cc
- jewel does not have #include <boost/optional.hpp>
-
-commit 85428983070c8df663056404a7c63959bb8ef693
-Merge: 2817f99 e9f9916
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 29 16:47:15 2016 +0200
-
- Merge pull request #9294 from theanalyst/wip-16009-jewel
-
- jewel: radosgw-admin: failure for user create after upgrade from hammer to jewel
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit dd635e46ee2425335264ae493cb6b8437cd712fc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 23 10:25:54 2016 -0400
-
- librbd: ignore missing object map during snap remove
-
- Fixes: http://tracker.ceph.com/issues/16350
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 68b296b0f107db39b16fa90c186fdc920d97170d)
-
-commit db7ce96a3093e661f535efdd5e7e37177ba0732b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jun 24 10:52:16 2016 -0400
-
- librbd: removal of partially deleted image needs id lookup
-
- Several operations depend on the image id but if the image cannot be
- opened to retrieve the id, these cleanup operations cannot be executed.
-
- Fixes: http://tracker.ceph.com/issues/16471
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6a9e7da6c3da40c7b25ff3d5ac84027e94beb287)
-
-commit c1a47c7728a17dbfc71280270b0c3079e5961ffb
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue May 31 17:50:05 2016 -0600
-
- packaging: move parted requirement to -osd subpkg
-
- Prior to this change, ceph-base required the "parted" package, which
- meant that any installation of ceph-osd, ceph-mon, or ceph-mds would
- pull in the parted package.
-
- Move the parted dependency to ceph-osd, since ceph-disk is the only
- thing that uses parted.
-
- The advantage of this change is that Mon and MDS systems will not need
- to install the parted package.
-
- Fixes: http://tracker.ceph.com/issues/16095
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 115349680bad520a0aa56ce3a346d93f541a905c)
-
-commit 74dd0359d4d6db3c6dac4fd41703270e5020aad7
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 2 14:28:55 2016 -0400
-
- osd/PG: set last_* PG fields on a creating PG
-
- Use the value from pg_history_t that ultimately came from the
- mon if last_epoch_started == 0. This establishes a sane lower
- bound on these timestamps, and prevents a mon health error from
- coming up about how a PG is stuck in whatever state while it is
- being created.
-
- (We addressed half of this problem in commit 6ca6aeac, but the
- warning comes back as soon as the OSD reports with a creating
- state.)
-
- Fixes: http://tracker.ceph.com/issues/14952
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 3be3bc60c12448a36f607c8d4fbf3300c7bbdbee)
-
-commit 2c03e02a04c217b8461b858fd3b46b73c4a370d1
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 2 14:27:16 2016 -0400
-
- osd: set pg history last_clean_scrub_stamp on create
-
- We were setting the other two; set this one as well.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 47f540d5b7ecc4ae193057df429db24ca6b3de8d)
-
-commit a2e8ae68ea452d03519359cb0cd344e71e603fa9
-Author: kofiliu <liu.xuan@h3c.com>
-Date: Fri May 27 03:45:06 2016 -0400
-
- osd: sparse_read offset may not be zero for ecpool
-
- Signed-off-by: kofiliu <liu.xuan@h3c.com>
- (cherry picked from commit 65e8738611cde0090619b3566a2e25f83b4c8468)
-
-commit 2817f9978f73014b1b1363cecacabdd98e499c72
-Merge: 38a2542 8b82bb8
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jun 29 11:42:43 2016 +0300
-
- Merge pull request #9721 from trociny/wip-16289-jewel
-
- jewel: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit b8f7aa28c394830bac9aa73429131e92f7499aa0
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sat Jun 11 13:39:23 2016 +0800
-
- msg/async/AsyncConnection: make verify auth callback without connection lock
-
- Fixes: http://tracker.ceph.com/issues/16237
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 2b7776545c3f87d7f54a53190e65ec48378eaa05)
-
-commit 3dbb08a069c8e8238d2884a78b04f0a0d01a36e3
-Author: Haomai Wang <haomai@xsky.com>
-Date: Thu May 12 12:01:35 2016 +0800
-
- AsyncConnection: create writable event for in progress connection
-
- Previously we use a tricky with ceph msgr protocol, if initiator side got
- in progress connection state, it will wait until read event. Because if
- tcp session built successfully server side will send the banner firstly
- and initiator side will get read event. Otherwise, if connection failed,
- read event also be called.
-
- But actually man(2)[http://man7.org/linux/man-pages/man2/connect.2.html]
- specify if we want to get notification whether connection built, we need
- to listen writable event. It means when connection built, send buffer
- is ready to be written.
-
- This patch follow the strict nonblock connect process. Not fully sure fix
- http://tracker.ceph.com/issues/15849
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit a74ce419133881ff8618733a0501c4a47e1368e3)
-
-commit 6554d462059b68ab983c0c8355c465e98ca45440
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jun 7 17:15:05 2016 -0700
-
- OSDMonitor::prepare_pgtemp: only update up_thru if newer
-
- Fixes: http://tracker.ceph.com/issues/16185
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5f2bd7b6b28aad96d68444b22c04b8b24564616b)
-
-commit a826bb818b02edac71b69fdd97e9318bb42ebc36
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jun 2 10:43:17 2016 -0700
-
- OSDMonitor: drop pg temp from sources other than the current primary
-
- Fixes: http://tracker.ceph.com/issues/16127
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 1a07123c38e3fecb3fb2e43bbbae962d8411d287)
-
-commit 18fdc1c9f061b396df8095907c5b0ffb0591e76d
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 24 14:02:32 2016 -0400
-
- osd: reject PARALLELEXEC ops with EINVAL
-
- Errors are better than crashing.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 407495197dd878b62f1356f6d939e33ab50d78c6)
-
-commit f91da931bcca9fd9f055a8d42d86ba3c3d3ea25f
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 24 14:02:14 2016 -0400
-
- ceph_test_rados_api_misc: test rados op with bad flas
-
- Pass the bad PARALLELEXEC flag to remove(), which takes a flags arg.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 1aa807f4f29b4b016cc737ffa443e8f30c3b7693)
-
-commit edd3f799fb1e5d70244412c5a1be17f74397aae2
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Jun 19 23:42:36 2016 +0800
-
- msg/async: close STATE_WAIT connection in short period
-
- 1. in practice, STATE_WAIT connection caused by racing connect should be
- resolved in milliseconds level. we don't need to keep this connection
- forever.
- 2. it will avoid unexpected osd peering hang because of outside network
- problem.
-
- Fixes: http://tracker.ceph.com/issues/16378
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 4de5407ac96686748497253e4daf51177f809a95)
-
-commit af8e86c20e9b1124abe33f0dff58817fc8aad7c9
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Jun 19 23:12:10 2016 +0800
-
- test_msgr: add assert if wait for shutdown hang
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit ca22e0bc09c1a13c8dac14b25c00501e912b8006)
-
-commit 42ef435554a21dfd5daec53002440a38f4d9f705
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Jun 19 23:04:46 2016 +0800
-
- test/test_msgr: add shutdown hang debug info
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 37b53d69d3d8c848d4627475fd63c80e15e118e7)
-
-commit d4c531dca281560b904ec14b2749bc2924f470fb
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun May 22 23:43:47 2016 +0800
-
- test_msgr: add verbose info for pending connections
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 39515b0f7c49d0cedbec0cf0dc2196b9d6d6339c)
-
-commit 90ce35c4f449bfd48398b8a164e423f3d72609b2
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Jun 19 23:03:07 2016 +0800
-
- msg/async/AsyncConnection: lower racing case debug log level
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit d8cc985fe0ebc18d4ff725f50304a5ff36a77cd0)
-
-commit 38a25420a0120288029d65cf924f1cbe5f3eb3fd
-Merge: 980abcf 75d3261
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 29 09:56:58 2016 +0200
-
- Merge pull request #9425 from cbodley/wip-rgw-sync-retry-jewel
-
- jewel: rgw: retry on bucket sync errors
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 980abcfd3966c29b4871d5a0913051a8312d866c
-Merge: e230023 933fdef
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 29 09:55:26 2016 +0200
-
- Merge pull request #9327 from cbodley/wip-rgw-zone-modify-master-jewel
-
- jewel: rgw: add_zone only clears master_zone if --master=false
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e2300232b07175a12b92f23352deb34210d8ae41
-Merge: e63dcb0 8163c4d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jun 29 09:50:04 2016 +0200
-
- Merge pull request #9242 from yehudasa/wip-15911-jewel
-
- jewel: rgw: don't unregister request if request is not connected to manager
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e63dcb08083dff3a8382900f90df9f3311c9ec99
-Merge: c9f2fda b751d48
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 28 15:53:03 2016 -0400
-
- Merge pull request #9883 from dillaman/wip-16422
-
- jewel: librbd: flag image as updated after proxying maintenance op
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit c9f2fda32c55f85f717ec26dfcf9140b16fa8cc6
-Merge: 9aafefe 70018bf
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Jun 27 12:43:11 2016 -0700
-
- Merge pull request #9105 from Abhishekvrshny/wip-15768-jewel
-
- jewel: FileStore: umount hang because sync thread doesn't exit
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 9aafefeab6b0f01d7467f70cb2f1b16ae88340e8
-Merge: 25c807b cb9e9e1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 27 17:50:39 2016 +0200
-
- Merge pull request #9633 from liewegas/wip-async-jewel
-
- msg/async: backports of all asyncmsgr fixes to jewel
-
- Reviewed-by: Haomai Wang <haomai@xsky.com>
-
-commit 25c807b1919fe11b8d8183b06cdfc5465357d509
-Merge: ae34e37 6619bd9
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 27 09:12:14 2016 -0400
-
- Merge pull request #9576 from Abhishekvrshny/wip-16148-jewel
-
- jewel: Scrub error: 0/1 pinned
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit ae34e3742651f7b679e4b524676d26d4fb906562
-Merge: e16830c b7f0e73
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 27 09:11:43 2016 -0400
-
- Merge pull request #9575 from Abhishekvrshny/wip-16150-jewel
-
- jewel: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e16830c6287323aae4fdddd9f4192793a6c48e74
-Merge: 2cf8d58 6c1163c
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Jun 27 09:10:36 2016 -0400
-
- Merge pull request #8754 from kmroz/wip-backport-fix-run-dir-chown
-
- jewel: global-init: fixup chown of the run directory along with log and asok files
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1f19dbd0f092390b44acfb5fe9dc3936c6732fdd
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jun 27 14:45:02 2016 +0300
-
- librbd: potential use after free on refresh error
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit e92b3950cd261d36de422ccaa4a2441d41c80d0c)
-
-commit 2cf8d58beb164017d065e91fdbf8c7a380a4dddb
-Merge: b861c30 3f8642d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 27 10:12:35 2016 +0200
-
- Merge pull request #9578 from Abhishekvrshny/wip-16080-jewel
-
- jewel: osd:sched_time not actually randomized
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit b861c30bdf86378845379bd3e66db32f264b23ee
-Merge: eea4851 1c7abcb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 27 10:08:25 2016 +0200
-
- Merge pull request #9574 from Abhishekvrshny/wip-16153-jewel
-
- jewel: Missing export for rados_aio_get_version in src/include/rados/librados.h
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit eea48519d76e53ebe94947165c9404259397a37e
-Merge: 057ff74 9415d38
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 27 10:06:54 2016 +0200
-
- Merge pull request #9565 from dzafman/wip-15767-jewel
-
- jewel: Fixes for list-inconsistent-*
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 057ff74ede5510e1b28b19e3f99d823781d5da39
-Merge: 50e242c b2d1df1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Jun 27 09:42:28 2016 +0200
-
- Merge pull request #8904 from SUSE/wip-15700-jewel
-
- jewel: rados/test.sh workunit timesout on OpenStack
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ad3b788b0c83ffb1339d940cd86555dbc3b1b55f
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Apr 23 20:33:17 2016 +0200
-
- Drop ceph Resource Agent
-
- This RA wraps the ceph sysvinit script. As of Jewel, none of the supported
- distros are using sysvinit anymore. So, drop it.
-
- Incidentally, Pacemaker can control systemd units without any wrappers.
-
- References: http://tracker.ceph.com/issues/14828
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit bb624c7334ee4241ea3bf892f88e25d165dc3477)
-
-commit b751d4854aa8629f46f0e3dd835aff27b8be709d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jun 21 14:56:43 2016 -0400
-
- librbd: flag image as updated after proxying maintenance op
-
- Fixes: http://tracker.ceph.com/issues/16404
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 478dd5f173591914b41d87b8c6d035c32cac8d3e)
-
-commit 50e242c28b766bd35c924f0f01c0298ed166d20a
-Merge: a34b227 9b75275
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Tue Jun 21 16:43:20 2016 -0700
-
- Merge branch 'wip-dmick-install-deps-jewel' into jewel
-
- install-deps.sh: use mk-build-deps instead of processing control
-
- Reviewed-by: Erwan Velu <erwan@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 9b7527537547b388d1cd75cb70a522712420a455
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Mar 23 17:43:53 2016 -0700
-
- install-deps.sh: use mk-build-deps instead of processing control
-
- mk-build-deps is designed to handle installing build dependencies;
- use that instead, so '|' indications are handled properly.
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 99bca09b8d09c41077a9d2141ff556b74328e57a)
-
-commit a34b227c1ed11f51d830ea48a6fbfc0c74a981a6
-Author: Roi Dayan <roid@mellanox.com>
-Date: Wed Apr 20 17:56:16 2016 +0300
-
- xio: add MNop.h to dist tarball
-
- This file is needed when we want to build a package with xio messenger
- but was not added to dist tarball.
-
- Signed-off-by: Roi Dayan <roid@mellanox.com>
- (cherry picked from commit ac50842d81d271569d4149737834ac53b2f51db2)
-
-commit 393bf7ef409253123e0721cdfe3b78aa4fd55148
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jun 15 16:53:16 2016 +0200
-
- rgw: check for -ERR_NOT_MODIFIED in rgw_rest_s3.cc
-
- Fixes: http://tracker.ceph.com/issues/16327
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit fc38346c596d8b0bc156183970d6a327943cb577)
-
-commit 6b41d76f53337a696523cddb47b53b703cdfa571
-Author: Haomai Wang <haomai@xsky.com>
-Date: Tue Jun 14 11:03:19 2016 +0800
-
- TaskFinisher: cancel all tasks wait until finisher done
-
- Otherwise, caller may think pending task won't be executed but actually
- finisher may execute callback which may cause refer to freed object.
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 40c5679ef038375e2bde982f401d78c1f3e05c6c)
-
-commit 762db30a3c2c43e56b227017b993802369c07219
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Tue May 24 09:29:32 2016 +0530
-
- rgw: support size suffixes for --max-size in
- radosgw-admin command
-
- Fixes: http://tracker.ceph.com/issues/16339
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 62eec902c70463173e758e55fa38594c594f868f)
-
-commit e3a99c082e3ebd56d5b40d7d94d98e35629df81e
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu May 26 23:30:25 2016 +0530
-
- common: add int64_t template for strict_si_cast()
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 8e429d05370fbe7935212d0ae9608e7547f39860)
-
-commit f8e491168d4802ab071e30e4fdd654dca018bfe6
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Mon May 9 18:00:28 2016 +0530
-
- rados: Add cleanup message with time to rados bench output
-
- Fixes: http://tracker.ceph.com/issues/16338
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 885ebb1650bb4a355600d85ca436c1ecd4916dce)
-
-commit 8b82bb85e4f2d6fb81c3c4ccc6789856c78f4984
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Jun 14 15:28:06 2016 +0300
-
- qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable
-
- Fixes: http://tracker.ceph.com/issues/16289
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 3048d3c7ce800a6174c54946b838e4e4079ec609)
-
-commit 9415d38139a66b86ff40e0521b769665f31fd36b
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu May 5 23:20:58 2016 -0700
-
- rados: Improve list-inconsistent json format
-
- Use array "errors" of strings for the error bits
- Change snapshot number to integer instead of hex
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 07dc844d6804db93055573ec83e6753773a4c049)
-
-commit 2fd6e7cf78f2eabbec669f3f9c4e60f1aa3ee8bd
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 6 19:54:11 2016 -0700
-
- test: Fix test to not use jq -S which isn't avail in all distributions
-
- Fixes: http://tracker.ceph.com/issues/15766
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a2147ad3cb256c34541ff7dc285594a22a24dfc6)
-
-commit c789aa39f27dc83f52465ba2d5b513a06b99c9d2
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue May 3 12:10:38 2016 -0700
-
- test: Add testing of new scrub commands in rados
-
- Test list-inconsistent-pg
- Test list-inconsistent-obj
- Test inconsistent-snapset
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit db517ba9176f1ee829453b016b1bd43c6054a555)
-
-commit a6f3f762505849994c91efea98c345da16561a22
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Apr 29 11:25:18 2016 -0700
-
- rados: Don't bother showing list-inconsistent-* errors that aren't set
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a551b6bd5c4eba11c170afe63994258e7598c3d2)
-
-commit 4c72195a6c5cb9eeca952f12edf62a10ec666f10
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Apr 29 17:09:13 2016 -0700
-
- osd, rados: Fixes for list-inconsistent-snapset
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit fdca113fc24adbb4f60bfdc55fbbd5044b711b5d)
-
-commit 4e4e562926d38371f70ba2cf2f7003daa251b9f0
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Apr 29 11:26:39 2016 -0700
-
- include, rados: Fixes for list-inconsistent-obj and librados
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 4fc4326b36aa00092043514746aa39aedad06b0f)
-
-commit 80f0dd348f32ff6e1f98ca29ea2ed38b5b7f5854
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Apr 26 18:16:22 2016 -0700
-
- rados: Balance format sections in same do_get_inconsistent_cmd()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit de4681b80a5d24e72bbc7ac6dfee4775987fd834)
-
-commit d248aba10ed232df116729591fea5b195a245735
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 21 20:41:03 2016 -0700
-
- rados: Include epoch in the list-inconsistent-* command output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit df4bc16c4d49489f7398eb1ecc7b9aef93258414)
-
-commit 43141e383ebac822221b3f22392f02b95b015ef5
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 21 20:39:53 2016 -0700
-
- rados: Improve error messages for list-inconsistent commands
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit cea7cf56ee3b9593c935d0c74ce6e4b28b14c2da)
-
-commit 502540faf67308fa595e03f9f446b4ba67df731d
-Author: Jenkins Build Slave User <jenkins-build@trusty-huge--dfeed223-b008-47e6-b689-a0d96992b62c.localdomain>
-Date: Fri May 13 17:50:34 2016 +0000
-
- 10.2.1
-
-commit b4a80cb1e30f8da8e2b0fc2b18fc846609282879
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sat Jun 11 20:01:31 2016 +0300
-
- qa/workunits/rbd: specify source path
-
- otherwise it looks in $PATH for the script
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 698242e7435c9c4d1db7cb6d5aab3faf57eda840)
-
-commit 70c97bd07e6764e1c6ff83225f6a2a9dcdfb989e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 9 16:23:52 2016 -0400
-
- qa/workunits/rbd: additional rbd-mirror stress tests
-
- Fixes: http://tracker.ceph.com/issues/16197
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit db3e583a5fe4a7985b1e7f1740114da414835af5)
-
-commit c7cfb4825fbcc82e74b5b1461fc86591098a8599
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jun 9 17:14:36 2016 -0400
-
- vstart: add --nolockdep option
-
- rbd-mirror stress test cases need a way to disable lockdep when
- initiated in a vstart environment.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d5eec7b2f4222dde0cfdaa9e0e4b43be015c3692)
-
-commit d48a1ed7845843cfc7598d97dce6b10992079ec3
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Sun Apr 17 08:23:23 2016 -0700
-
- rgw/s3website: Fix x-amz-website-redirect-location support.
-
- Support for the x-amz-website-redirect-location header was broken in the
- feature merging of Jewel, as it previously depended on the error handler to
- redirect, which was overkill. Simplify it to work.
-
- Backport: jewel
- Fixes: http://tracker.ceph.com/issues/15531
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 7cbb63bb748c4c78c02926acb4ad9bcea5593695)
-
-commit 3f8642d134c473be331a53f420d122b4f390dee6
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sat May 14 11:28:04 2016 +0800
-
- osd: fix sched_time not actually randomized
-
- The test program:
-
- main()
- {
- for (int i = 0; i < 1000; i++) {
- double before = rand() / RAND_MAX;
- double after = rand() / (double)RAND_MAX;
- cout << "before: " << before << " after: " << after << endl;
- }
- }
-
- And the output(partial and with "-std=c++11" option):
-
- before: 0 after: 0.394383
- before: 0 after: 0.79844
- before: 0 after: 0.197551
- before: 0 after: 0.76823
- before: 0 after: 0.55397
- before: 0 after: 0.628871
- before: 0 after: 0.513401
- before: 0 after: 0.916195
- before: 0 after: 0.717297
- before: 0 after: 0.606969
- before: 0 after: 0.242887
- before: 0 after: 0.804177
- before: 0 after: 0.400944
- before: 0 after: 0.108809
- before: 0 after: 0.218257
- before: 0 after: 0.839112
- before: 0 after: 0.296032
- before: 0 after: 0.524287
-
- Fixes: http://tracker.ceph.com/issues/15890
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit d3b7767a64af0cd57d17b888e4ec3bdae6fdab87)
-
-commit 6619bd9dbe257bfeb19931cf7f94c56520ae1ebf
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri May 20 13:59:10 2016 -0700
-
- ReplicatedPG: adjust num_pinned in _delete_oid
-
- Fixes: http://tracker.ceph.com/issues/15952
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 907d4e25c676fd3e1c2be90ce8ab5b64b362b0bc)
-
-commit b7f0e73223687035e470fcd7ffc7b851c04aba00
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu May 19 16:00:35 2016 -0700
-
- PG: update PGPool to detect map gaps and reset cached_removed_snaps
-
- Fixes: http://tracker.ceph.com/issues/15943
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a)
-
-commit 1c7abcbfe58f77d9d915dd2fc2fc4c75883d46c1
-Author: Jim Wright <jim@quadraturecapital.com>
-Date: Thu Jun 2 15:12:30 2016 +0100
-
- librados: Added declaration for rados_aio_get_version
-
- Was missing from librados.h and hence had an incorrect
- visability.
-
- Fixes: #15535
- (cherry picked from commit a5a1c1732e50be7d27f8742e794eba88d35c1c7f)
-
-commit ec884a3406568ccb4c997b4da8924d25d3e2473b
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Tue May 17 17:38:38 2016 -0700
-
- rgw/s3website: whitespace style fixes
-
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit fd35ad001c9430753cc2b1f91a7d48f591c6754e)
-
-commit bf26b6eeb7fb806bff0ee306467277a273dcc887
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Tue May 17 17:35:41 2016 -0700
-
- rgw/s3website: Fix ErrocDoc memory leak.
-
- Yehuda pointed [1] out a memory leak with the RGWGetObj not being handed back, and
- suggested that shared_ptr was used to handle it, rather than the prior approach
- of explicitly calling handler->put_op.
-
- This commit implements just that change, in isolation from other changes, for
- ease of comparision testing.
-
- X-Reference-1: https://github.com/ceph/ceph/pull/8669#discussion_r63445516
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 2fd7bc8cbe4a2e23553e716ce0be75937853e07b)
-
-commit 36672c61be8289ba00dd694c92cd9057dbf5cf29
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Sun Apr 17 08:23:23 2016 -0700
-
- rgw/s3website: Fix x-amz-website-redirect-location support.
-
- Support for the x-amz-website-redirect-location header was broken in the
- feature merging of Jewel, as it previously depended on the error handler to
- redirect, which was overkill. Simplify it to work.
-
- Backport: jewel
- Fixes: http://tracker.ceph.com/issues/15531
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 7cbb63bb748c4c78c02926acb4ad9bcea5593695)
-
-commit 3c0ac8eb9c9d19a6418e3d84df36e4a87f24fb23
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Wed Apr 20 15:52:51 2016 -0700
-
- rgw/s3website: Implement ErrorDoc & fix Double-Fault handler
-
- Fix more last minute breakage from merges, now has has a working ErrorDoc as
- well as working double-fault. Also moves some s3website-specific code out of
- the main S3 codepath.
-
- Fixes: #15532
- Fixes: #15555
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit fcb3cf169f1fa7cf878eb154dc3f1ff78e278056)
-
-commit cb9e9e1c322cb7fb2150b15b17bde4371fd1e703
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Fri Feb 26 13:54:20 2016 +0100
-
- msg/async: Implement smarter worker thread selection
-
- This changeset makes AsyncMessenger a bit smarter when it comes
- to assigning worker threads to AsyncConnections. Each time a worker
- is assigned, its reference count is increased. Next time when Async
- Messenger needs to assign another worker to new AsyncConnection, it
- picks the one with the lowest reference count. If it cannot find an
- idle one, and number of currently instantiated workers is less than
- specified with "ms async op max threads", the new worker is created
- and returned.
- Once AsyncConnection goes away, the reference count on assigned
- worker is decreased.
- This does not prevent, but greatly reduces chances of having a single
- async worker thread doing most (or even all) of the ops, and also
- removes the need to manually tune the "ms async op threads" option.
-
- Signed-off-by: Piotr Dałek <git@predictor.org.pl>
- (cherry picked from commit 3e80f8d74a535e14d4092b27ea5417bacff8394e)
-
-commit 578ac8aacfdd0ecfecb3ae3ebeb8a0b3ff53b67d
-Author: Haomai Wang <haomai@xsky.com>
-Date: Wed Apr 20 14:23:20 2016 -0400
-
- Event: fix delete_time_event while in processing list
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 1ddeede83200566666fce80867eb7cb5a61a4f62)
-
-commit 8c7a13fdfa46095621b96a7da8d3b9ce09439509
-Author: Haomai Wang <haomai@xsky.com>
-Date: Fri Apr 15 13:33:35 2016 +0800
-
- test_msgr: add delay inject test
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 0a2392919f9ad7286ae4b5924566197c1069474f)
-
-commit 846992f025586fa83c69eaec3ed09b6ab6677fcc
-Author: Haomai Wang <haomai@xsky.com>
-Date: Fri Apr 15 11:43:42 2016 +0800
-
- AsyncConnection: make delay message happen within original thread
-
- Fixes: http://tracker.ceph.com/issues/15503
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 83f7db58aad2509e1a8742e862d4e8bbfd85c37c)
-
-commit 9b199d0b19220bf4adb9b0754f493e7c1ad78a4e
-Author: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
-Date: Tue Apr 5 09:37:23 2016 +0200
-
- msg/async: add missing DelayedDelivery and delay injection
-
- Delay injection was missing from a few spots, also, DelayedDelivery
- was added.
-
- Fixes: http://tracker.ceph.com/issues/15372
- Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
- (cherry picked from commit 49a0c9981bd4bf61b520ece8fb8adfdf7439185b)
-
-commit 0e6324a726e85e498946a49393e0f7c228c2f913
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun May 1 08:32:24 2016 +0800
-
- Event: replace ceph_clock_now with coarse_real_clock
-
- reduce cpu utilization on real clock latency
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 79343a8a093630f1c0696f135c6e3bef0c23da28)
-
-commit 6597fab4cc27de6d6f1dcfa070ed401612bfed76
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Mon Apr 25 09:45:20 2016 +0800
-
- msg/async: fix some return values and misspellings.
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit 0519f938e13d0adf53c1328fd636b9fa5e6c5b93)
-
-commit 18f18c7beee3c7a072009838c02d5ba1f97fef2c
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Mon Mar 28 15:33:30 2016 +0800
-
- msg/async: delete the confused comments.
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit 69a587b139815812433f2b651db6bd723353605d)
-
-commit 79354f4223191c9d8ce6f92aaadf3481f9abf72d
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Fri Mar 25 17:34:12 2016 +0800
-
- msg/async: add numevents statistics for external_events
-
- Maybe we need to add the statistics for external_events.
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit f08ca0a0892767a8c40e06e336297109aa6142a1)
-
-commit 4005a5193a1cb3e3a0ac1e6f019bead0837ea552
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sun Mar 13 12:24:35 2016 +0800
-
- AsyncConnection: remove unnecessary "send" flag
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit 5c0a689d720f1016846ff945ca75b9f91756170d)
-
-commit 441847d9951e230b48776fa0fbe639d7b23a595b
-Author: Haomai Wang <haomai@xsky.com>
-Date: Sat Mar 12 21:02:51 2016 +0800
-
- async: skip unnecessary steps when parsing simple messages
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit a9ac1c4f88ffb5f66c43527ea0ae1deef1be3a96)
-
-commit c02501005b0316ba9f0ae1cd316a92c567b37c3b
-Author: Noah Watkins <nwatkins@redhat.com>
-Date: Wed May 4 17:22:14 2016 +0800
-
- client: fstat should take CEPH_STAT_CAP_INODE_ALL
-
- Fixes: http://tracker.ceph.com/issues/15723
- Signed-off-by: Noah Watkins <nwatkins@redhat.com>
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 4b1a5d4ef9c3a116bb08100edd576819930047e3)
-
-commit c3f6d82d86f9720a373ec9792b927292f01897c0
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed Jun 1 14:28:17 2016 +0800
-
- mon/MDSMonitor: fix wrongly set expiration time of blacklist
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 0c3a92bb999e90212a9f38f9f4dc3bf89bd20acb)
-
-commit d4017ae915e8355f9146844a443942c0dce32476
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Wed Jun 1 11:17:32 2016 +0800
-
- mon/MDSMonitor: fix wrong positive of jewel flag check
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 24b82bafffced97384135e55ab2a97091e9a7b4b)
-
-commit eea0e916640c3ac2d69ffb9c335dde6332b03938
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri May 6 19:07:07 2016 +0800
-
- mds: finish lock waiters in the same order that they were added.
-
- Current code first processes lock waiters who have smaller wait mask.
- Lock waiters who have large wait mask can starve if client keeps
- sending requests that add waiter with small mask.
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d463107473382170c07d9250bb7ace0e5a2a7de2)
-
-commit 2c7fc95e06f6b1b52bef89904399de4088efaff1
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon May 23 17:40:05 2016 +0800
-
- mds: fix race between StrayManager::{eval_stray,reintegrate_stray}
-
- StrayManager::eval_stray() is called after Server::respond_to_request()
- drops locks. So it can race with StrayManager::reintegrate_stray()
-
- Fixes: http://tracker.ceph.com/issues/15920
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 65827a0fd4d4ecb6d5e2eccf3a1818026ce1f10c)
-
-commit 19c13669ecb1bc9788b6741753d3eedbde713620
-Author: John Spray <john.spray@redhat.com>
-Date: Mon May 2 22:23:04 2016 +0100
-
- osdc: send error to recovery waiters on shutdown
-
- ...instead of sending them '0', which gets things
- confused.
-
- Fixes: http://tracker.ceph.com/issues/15689
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 62c7a3c59ce479d5240eb5fbef01edf11388c7bb)
-
-commit 7b0318aad79a08f1549bbf9054519a18c9e8c379
-Author: John Spray <john.spray@redhat.com>
-Date: Mon May 2 22:14:07 2016 +0100
-
- mds: fix mdsmap print_summary with standby replays
-
- Fixes: http://tracker.ceph.com/issues/15705
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 899a16e50a6c22359e7a5c5ac720a605f6a4b67e)
-
-commit f858f94c9dcd2b2845fe59ff9d213b59574144c5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jun 1 04:24:34 2016 -0700
-
- rgw: reduce string copy
-
- As suggested by Casey Bodley.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f8f1f217314c32cf65ac1fa4e8e0132b501ee184)
-
-commit 67e3be38fdfcec8fa4b00dfc703a45ffa101679b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 19 15:02:21 2016 -0700
-
- rgw: rework aws4 header parsing
-
- Fixes: #15940
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e3618c87026b5ced8ef81adbcafc7f9b34f2d48d)
-
-commit 5bdd13e6f2bc8c52f9a4829a5cc80691947233bb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 19 12:52:54 2016 -0700
-
- rgw: don't add port to aws4 canonical string if using default port
-
- Fixes: #15939
-
- When either port 80 is used, or if it's a secure connection and port 443 is used,
- and when going through the presigned url auth, don't add the port to the signed
- string.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 033888bbd0e4d8d81358bf61a099276dddb5692b)
-
-commit 474739e87231dc1fc3e3a805584c3f15e1dd1f94
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 19 11:30:44 2016 -0700
-
- rgw: use correct method to get current epoch
-
- Fixes: #15939
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 310f5bdf56a9deb09347aadc158da25750fb6735)
-
-commit fc34fbd469dd1c35804305a96d4e650828049d51
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 18 17:21:28 2016 -0700
-
- rgw: check for aws4 headers size where needed
-
- Fixes: #15940
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 493cc5d1241693f3ea52f4d7f3a194d9e0ec1905)
-
-commit 44decb4ea1d8e60ba929500e0ccbdac3417c3647
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed May 25 14:23:29 2016 +0200
-
- rgw: properly handle initial slashes in SLO's segment path.
-
- Fixes: http://tracker.ceph.com/issues/16015
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit d384b2b8e0ed670f229eb889a14f521fa8d194fc)
-
-commit e8b7dd47018ab115ffa27b7e72470956de738fd3
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon May 23 13:27:24 2016 +0200
-
- rgw: remove unnecessary data copying in RGWPutMetadataBucket.
-
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 19c12bbc233a118496f8ad5d640d19bb0e2c5d05)
-
-commit 63e0993e33b10adc4d9e1f80c4fe4c5ee9c5f4ff
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sun May 22 15:32:19 2016 +0200
-
- rgw: Fix updating CORS/ACLs during POST on Swift's container.
-
- Introduced in: 7a7de9b75265b978ba4e53966f614fac033972cb
- Fixes: http://tracker.ceph.com/issues/15976
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
- (cherry picked from commit d9e4727b7e6ffa1cb2918b610381d41439a056e8)
-
-commit 4eded9aa94384e60e765accb4c9f093bd2534970
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sat May 21 02:47:12 2016 +0200
-
- rgw: fix update of already existing account/bucket's custom attributes.
-
- Introduced in: 3f3b18bff16f6a5b36987f888ba3f2a0d1ea3155.
- Fixes: http://tracker.ceph.com/issues/15977
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
- (cherry picked from commit d6129e664fc8d25e70bfaf83e340703005f8f73f)
-
-commit 30ee18018ae890a058ae40a6006e1045258d36d5
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon May 9 17:22:45 2016 +0200
-
- rgw: fix updating account/container metadata of Swift API.
-
- This patch rectifies an issue with handling of user metadata that are
- actually stored by an updated resource (account or container).
- The expected behaviour is they will be merged with new medadata coming
- from an HTTP client.
-
- Backport: Jewel
- Fixes: http://tracker.ceph.com/issues/15779
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 3f3b18bff16f6a5b36987f888ba3f2a0d1ea3155)
-
-commit 75d326117dd57acdae355cec5ac25112e70ff2ba
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 13 14:13:27 2016 -0700
-
- rgw: back off if error repo is empty
-
- Don't check it every time
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit dbf6dcb29faa853c2439457c767d550d5fcdc0f2)
-
-commit 8dcd2a1d93f08db6ede05b3028c3fc601defe932
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 13 11:13:48 2016 -0700
-
- rgw: data sync retries sync on prevously failed bucket shards
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f1ccc4cd973d16e7676b2374eeefe4ee6f6a4630)
-
-commit 3e5210ddedd1d98473e0bcff04a03958b0b850fc
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed May 11 15:59:27 2016 -0700
-
- rgw: store failed data sync entries in separate omap
-
- so that we can reiterate over them
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b7deb7cb09304f1b0963139296bdb3abb22895ff)
-
-commit d08ca528ea869cf5a899fd684caecf030b96f5fe
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri May 13 11:20:49 2016 -0700
-
- rgw: configurable window size to RGWOmapAppend
-
- We want to be able to disable buffering for certain operations.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 94ff675e2e7763650d14f62aaf1ff9ddb05cc380)
-
-commit 368e88409e57d6827c7b10f72761d0320cdb4dc2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu May 12 09:14:29 2016 -0700
-
- rgw: add a cr for omap keys removal
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 20c1b4b8a3695b818c5c64d61d5ea4f84c48c782)
-
-commit 933fdefb56ce1ab883e6d3ee09c34fb2aa14808e
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon May 16 11:03:45 2016 -0400
-
- rgw: add_zone only clears master_zone if --master=false
-
- Fixes: http://tracker.ceph.com/issues/15901
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 40c4d150757cba4b05938c6c760ab9f0296c2ff6)
-
-commit e9f99166f7fc1b4b468e146a47ec9ac71541bec9
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri May 20 09:52:01 2016 +0200
-
- rgw: add missing metadata_heap pool to old zones
-
- Fixes: http://tracker.ceph.com/issues/15937
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit b79856bd3f7db8498231d7f35b53b4bcb44a0422)
-
-commit 22662875320717d1ee939732f9cf7939db697106
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Tue May 3 17:12:26 2016 +0800
-
- mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
- (cherry picked from commit 88b6d669e37924536152a552db46ef43a7353562)
-
-commit 0bdc8fd58ce790638c62bbe5264294ed5e1f710a
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu May 26 15:43:41 2016 +0530
-
- rgw : cleanup radosgw-admin temp command as it was deprecated
- and also implementation code for this command was removed in commit
- 8d7c8828b02c46e119adc4b9e8f655551512fc2d
-
- Fixes: http://tracker.ceph.com/issues/16071
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 949f917af80ae0bd9a5448129d3ce8979acf7e0b)
-
-commit 108638f366a70ca634a21b7fe4c9206368791514
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue Mar 15 16:48:26 2016 +0100
-
- rgw: handle initial slashes properly in BulkDelete of Swift API.
-
- Fixes: http://tracker.ceph.com/issues/15948
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 1dde062c21c3d6fa3cc01e8c922d7f89c6973bfa)
-
-commit a40cfe4df81c03b197dc31888f5d77927eeae7c5
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Tue May 3 14:56:38 2016 +0200
-
- rgw: remove -EEXIST error msg for ZoneCreate
-
- currently for any admin operations like user create etc. you would
- always see:
-
- `RGWZoneParams::create(): error creating default zone params: (17) File
- Exists`
-
- in stdout as the debug level is set to 0, which doesn't make much sense
- for an end user, so skip the error message, callers of the function handle
- the error message anyway, so we skip it here
-
- Fixes: http://tracker.ceph.com/issues/15720
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit 2ace9d7f349ef09d3ed87fb216cda3e305ef706f)
-
-commit ff9c29a0e7a3719858ad94f632b6d1af3f3ec73e
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Mon May 16 18:24:55 2016 +0200
-
- rgw: camelcase names of custom attributes in Swift's responses.
-
- Fixes: http://tracker.ceph.com/issues/15902
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit cfde4c42c0248b52ef1b855f7de79ee1e229e73f)
-
-commit 4a3c9f338fb0f2cee71f31652cf31a8ba61d5e4e
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Fri May 13 15:39:32 2016 +0200
-
- rgw: fix realm pull and period pull for apache frontend
-
- add missing content-type and content-length headers
-
- Fixes: http://tracker.ceph.com/issues/15846
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 8454ff1a91322697224332f0e6f0c7a9c856ec9a)
-
-commit a08caa6d3cbca0395a9ed5f487f9de33b615f59f
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Tue May 10 17:45:20 2016 +0200
-
- rgw: handle errors properly during GET on Swift's DLO.
-
- Backport: Jewel, Hammer
- Fixes: http://tracker.ceph.com/issues/15812
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 5ef0202a86a1e4cb56bd29d926555f114a1acdd8)
-
-commit 8163c4dd34d24249bf662c1110c49136ff335bf9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue May 10 15:34:19 2016 -0700
-
- rgw: don't unregister request if request is not connected to manager
-
- That means that request is already complete and done with the manager.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 16c0605bf276b245fbf41cb3e000ecdf7b049e15)
-
-commit 70018bfe6f5e298791c34ae4ad6eac2140d6f761
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue May 3 17:20:04 2016 +0800
-
- os/FileStore::sync_entry check for stop in after wait
-
- there is chance that the sync_entry() gets signaled in the
- WaitInterval(max_interval) call because of sync_cond.Signal() call after
- "stop = true" in umount(), so without this change, sync_entry() will
- continue wait until min_interval is reached. this forces umount() to
- wait even it has called d_force_sync(), and hence slows down the
- progress of umount(). so we need to check for `stop` if we are not
- signalled because of `force_sync`.
-
- Fixes: http://tracker.ceph.com/issues/15695
- Reported-by: Haomai Wang <haomaiwang@gmail.com>
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 65426a522d9d052fd7c38964f143087f277816c5)
-
-commit b2d1df129bc4403d98b66873ee6bca64ba1ea264
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Apr 6 15:39:23 2016 +0200
-
- tests: be more generous with test timeout
-
- When the thrasher is in action together with a validater (lockdep or
- valgrind), a single test may hang for more than 360 seconds. Increase to
- 1200: it does not matter if the value is large, only that it prevents
- the test from hanging forever.
-
- Fixes: http://tracker.ceph.com/issues/15403
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit af89474b3fb2c4aa63680aa6b30d71fad2fdd373)
-
-commit 6c1163cd6e39ba293be1be4a3f82e60fd054a348
-Author: Karol Mroz <kmroz@suse.com>
-Date: Mon Apr 25 17:24:07 2016 +0200
-
- admin-socket: use chown instead of fchown
-
- fchown() returns success, but does not change asok file
- ownership. chown() does.
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 3d051a58cc117ff79d4cdd768603d1dec8ca7f60)
-
-commit 3963de78635d760924a36eeb1e8b7782dd5a276e
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:55:18 2016 +0200
-
- global-init: fixup inconsistent use of ceph ctx and conf
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 088cc66a94886130df647976050c9d98fcd7572e)
-
-commit 2bc41945ca6a8e8e8e852ae0b7e888bc223dd7a3
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:54:45 2016 +0200
-
- global-init: chown pid files
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 9c82d8466a264c0f07fd3ec4cc58c1ddb88cc84f)
-
-commit 5681b78ac74728db70a89bc86845a74ff7d81217
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:47:58 2016 +0200
-
- global-init: chown run dir
-
- Also performs log file chown() operations if permission drop has been
- deferred. Documents that admin socket chown() happen in the common init
- path.
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 9d513793b3fe4b7e1402e36a4a675553edd6f317)
-
-commit c2075448f052ef7e49bc95c1f8240c2ff559b5ae
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:40:08 2016 +0200
-
- common-init: chown admin socket after service thread started
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 206585c1d0fc6826c91f7830cde8ded86288abef)
-
-commit f7e6b3cf9c363a3a65da4e176c7324d027352420
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:36:01 2016 +0200
-
- global-init: check init flags and set accordingly
-
- If init flags have changed between the time ceph context was
- instantiated and now, update them. This can happen, for example, if
- between manual global_pre_init() and global_init() calls, a daemon adds
- modifies it's init flags.
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit a0ad13db7aba95537808a570ad4c90f6ac4ca0b8)
-
-commit d4afe947578a7ae4956a99fbc9350920e2239e0b
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:35:02 2016 +0200
-
- global-init: add a path chown wrapper function
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit 860977b105595dbb50320a30dc0edb922279cb00)
-
-commit 770ae9eecf5c8e064529efec29020f38a3675a63
-Author: Karol Mroz <kmroz@suse.com>
-Date: Sat Apr 23 13:32:45 2016 +0200
-
- ceph-context: add function to set init flags
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit aecab14089bcfd33d6a18adabede6a54040460d4)
-
-commit 21f0216287485e6cce8811f324fee804ef733524
-Author: Peter Sabaini <peter@sabaini.at>
-Date: Fri Apr 8 00:30:55 2016 +0200
-
- ceph-disk: Accept bcache devices as data disks
-
- Fixes: http://tracker.ceph.com/issues/13278
- Signed-off-by: Peter Sabaini <peter@sabaini.at>
diff --git a/src/ceph/doc/changelog/v10.2.4.txt b/src/ceph/doc/changelog/v10.2.4.txt
deleted file mode 100644
index f9b388f..0000000
--- a/src/ceph/doc/changelog/v10.2.4.txt
+++ /dev/null
@@ -1,4586 +0,0 @@
-commit 9411351cc8ce9ee03fbd46225102fe3d28ddf611
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Mon Dec 5 22:15:20 2016 +0000
-
- 10.2.4
-
-commit a9444915a10038c35d5726485e110e56349fe3df
-Merge: 4d9a28d 4d6f848
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Dec 5 14:50:23 2016 +0100
-
- Merge pull request #12167 from liewegas/wip-osdmap-encoding-jewel
-
- jewel: osd: condition OSDMap encoding on features
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4d9a28d26d84a1dab90d22a09b1a044c193a41ad
-Merge: 6d17188 d194db8
-Author: Loic Dachary <loic@dachary.org>
-Date: Sat Dec 3 10:57:18 2016 +0100
-
- Merge pull request #12067 from SUSE/wip-17953-jewel
-
- jewel: mon: OSDMonitor: only reject MOSDBoot based on up_from if inst matches
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit d194db826bb26483f847235bf062ba7b225be147
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Nov 14 11:50:23 2016 -0800
-
- OSDMonitor: only reject MOSDBoot based on up_from if inst matches
-
- If the osd actually restarts, there is no guarrantee that the epoch will
- advance past up_from. If the inst is different, it can't really be a
- dup. At worst, it might be a queued MOSDBoot from a previous inst, but
- in that case, the real inst would see itself marked up, and then back
- down causing it to try booting again.
-
- Fixes: http://tracker.ceph.com/issues/17899
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 033ad5b46c0492134e72a8372e44e3ef1358d2df)
-
-commit 6d17188786ef7bd574dd8336d1e97e069db9de74
-Merge: b168c26 79be070
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Dec 2 08:16:27 2016 -0800
-
- Merge pull request #12207 from jdurgin/wip-librados-setxattr-overload-jewel
-
- librados: remove new setxattr overload to avoid breaking the C++ ABI
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit b168c262f4c04d748b8a71aa6289e13385398764
-Merge: be5c828 00de014
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Dec 2 10:01:39 2016 +0100
-
- Merge pull request #12267 from dachary/wip-17904-jewel
-
- jewel: Error EINVAL: removing mon.a at 172.21.15.16:6789/0, there will be 1 monitors
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 00de0140410ec8457ca25920866f8409f0d54a10
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Wed Nov 2 15:38:36 2016 +0000
-
- mon: MonmapMonitor: drop unnecessary 'goto' statements
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit 20dcb597e35e6961db81831facefbe22cecddec3)
-
-commit 25f1b390525d975f90d0c7232b785415431d0f3e
-Author: Joao Eduardo Luis <joao@suse.de>
-Date: Wed Nov 2 15:33:52 2016 +0000
-
- mon: MonmapMonitor: return success when monitor will be removed
-
- Fixes: http://tracker.ceph.com/issues/17725
-
- Signed-off-by: Joao Eduardo Luis <joao@suse.de>
- (cherry picked from commit c9d46cfbf2512bc3495c6901de2b8f711bef9bae)
-
-commit be5c82829916c581765f7c0130b738395a27720c
-Merge: 427f357 3cc29c6
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Dec 1 11:08:04 2016 -0800
-
- Merge pull request #12001 from dachary/wip-17915-jewel
-
- jewel: filestore: can get stuck in an unbounded loop during scrub
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 79be070a4d442229d62b168ab87c95b662df1a9c
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Mon Nov 28 22:06:56 2016 -0800
-
- librados: remove new setxattr overload to avoid breaking the C++ ABI
-
- Fixes: http://tracker.ceph.com/issues/18058
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit b8ff781ddcf737882163cf56d7c9b11e815fb699)
-
- Conflicts:
- src/include/rados/librados.hpp (trivial namespace change in removed line)
-
-commit 4d6f8481b22ecfa5e55b2a6f8f8660f2d0445030
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 23 14:15:50 2016 -0500
-
- crush: condition latest tunable encoding on features
-
- This avoids throwing hammer OSDMap encodings off.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 9e5ff86487bd1f5979866b5e16300dd4a3979f97)
-
-commit bf96b30eaf552148249953ed4fb654cbb101c3d0
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 28 14:35:53 2016 -0500
-
- crush/CrushWrapper: encode with features
-
- No behavior change yet; just fixing callers.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b7c9e055848c8aa951bc48c957cff3ef323ea441)
-
- [Updated write_file to use all feaetures]
- [Updated OSDMonitor.cc to use mon->quorum_features instead of the
- mon->get_quorum_con_featuers() helper]
- [trivial conflict from removed write_file and read_file]
-
- Conflicts:
- src/crush/CrushWrapper.h
- src/mgr/PyModules.cc
- src/mon/OSDMonitor.cc
- src/tools/ceph_monstore_tool.cc
-
-commit c5f5b94fc2e18b38d05f00fec04d2d7e3c35c54c
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Nov 28 14:35:24 2016 -0500
-
- crush/CrushWrapper: drop unused 'lean' encode() argument
-
- No callers, no users.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 638a38bbb55c07ad0358a35a56418e66874d1c26)
-
- Conflicts:
- src/crush/CrushWrapper.h
-
- [trivial conflict due to removal of write_file and read_file]
-
-commit c66c556852b08e18d409e769eb7bd945c35e43cf
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 23 13:51:59 2016 -0500
-
- osd/osd_types: encode pg_pool_t like hammer if features indicate hammer
-
- If the target features are missing the new OSDOp encoding, the
- first feature we added post-hammer, encode like hammer.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2f8cfb632823ba4e63eaff394392d6af7979d7c8)
-
-commit 85caf34924bbfb0e872abd096ec571fff73035ae
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 23 13:48:35 2016 -0500
-
- osd/osd_types: conditional pg_pool_t encoding
-
- Align this with decode.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 01d9e8a20bbc3c039f67b040da95018e2c7b00b6)
-
-commit 3cc29c6736007c97f58ba3a77ae149225e96d42a
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Nov 10 13:56:24 2016 -0500
-
- os/filestore/HashIndex: fix list_by_hash_* termination on reaching end
-
- If we set *next to max, then the caller (a few lines up) doesn't terminate
- the loop and will keep trying to list objects in every following hash
- dir until it reaches the end of the collection. In fact, if we have an
- end bound we will never to an efficient listing unless we hit the max
- first.
-
- For one user, this was causing OSD suicides when scrub ran because it
- wasn't able to list all objects before the timeout. In general, this would
- cause scrub to stall a PG for a long time and slow down requests.
-
- Broken by refactor in 921c4586f165ce39c17ef8b579c548dc8f6f4500.
-
- Fixes: http://tracker.ceph.com/issues/17859
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c5180262a086c2d3895aff4bf0fb0ff9a6666149)
-
-commit 427f357f0eed32c9ce17590ae9303a94e8b710e7
-Merge: 0c38c46 8b595f5
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Nov 9 20:53:18 2016 +0100
-
- Merge pull request #11822 from SUSE/wip-17816-jewel
-
- jewel: Missing comma in ceph-create-keys causes concatenation of arguments
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8b595f567407be2a759e4987f33ce79e3763ea49
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Sun Sep 18 16:26:29 2016 -0400
-
- ceph-create-keys: add missing argument comma
-
- The arguments "get" and "client.admin" were being concatenated into
- "getclient.admin".
-
- Found using ceph-ansible + strace:
-
- 13031 execve("/usr/bin/ceph", ["ceph", "--cluster=ceph", "--name=mon.", "--keyring=/var/lib/ceph/mon/ceph-ceph-mon0/keyring", "auth", "getclient.admin"], ["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin", "LANG=en_US.UTF-8", "CLUSTER=ceph", "TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=134217728", "CEPH_AUTO_RESTART_ON_UPGRADE=no"] <unfinished ...>
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 482022233d845b75876b04ca23fb137281a9f6ab)
-
-commit 0c38c464fff2280a6345b470f1c83aa6229776cc
-Merge: eb67259 eea546f
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 7 14:39:48 2016 +0100
-
- Merge pull request #11679 from dachary/wip-17734-jewel
-
- jewel: Upgrading 0.94.6 -> 0.94.9 saturating mon node networking
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit eea546fafcf22573e33332ce91e3d112202ac207
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sat May 21 14:11:55 2016 +0800
-
- mon: expose require_jewel_osds flag to user
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 83ffc2b761742d563777e50959faa6a6010edae0)
-
-commit f8ee076ac4559dc9dbf828121618e78ad11687fd
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 21 12:25:08 2016 -0400
-
- mon/OSDMonitor: encode OSDMap::Incremental with same features as OSDMap
-
- The Incremental encode stashes encode_features, which is
- what we use later to reencode the updated OSDMap. Use
- the same features so that the encoding will match!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 916ca6a0aaa32bd9c2b449e0d7fbd312c29f06e5)
-
-commit 1f629b2ba91c793db34614f319d12594646f5ce2
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Oct 13 12:16:40 2016 -0400
-
- mon/OSDMonitor: health warn if require_{jewel,kraken} flags aren't set
-
- We want to prompt users to set these flags as soon as their
- upgrades complete.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 12e508313dbd5d1d38c76859cb7de2ce22404e12)
-
- Conflicts:
- src/mon/OSDMonitor.cc: remove references to kraken
-
- if ((osdmap.get_up_osd_features() & CEPH_FEATURE_SERVER_KRAKEN) &&
- !osdmap.test_flag(CEPH_OSDMAP_REQUIRE_KRAKEN)) {
- string msg = "all OSDs are running kraken or later but the"
- " 'require_kraken_osds' osdmap flag is not set";
- summary.push_back(make_pair(HEALTH_WARN, msg));
- if (detail) {
- detail->push_back(make_pair(HEALTH_WARN, msg));
- }
- } else
-
-commit 34555f11b068eb335866d4b536c9e10fe1de62e5
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Sep 30 18:02:39 2016 -0400
-
- mon/OSDMonitor: encode canonical full osdmap based on osdmap flags
-
- If the JEWEL or KRAKEN flags aren't set, encode the full map without
- those features. This ensure that older OSDs in the cluster will be able
- to correctly encode the full map with a matching CRC. At least, that is
- true as long as the encoding changes are guarded by those feature bits.
- That appears to be true currently, and we plan to ensure that it is true
- in the future as well.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5e0daf6642011bf1222c4dc20aa284966fa5df9f)
-
- Conflicts:
- src/mon/OSDMonitor.cc: removed reference to kraken
-
- if (!tmp.test_flag(CEPH_OSDMAP_REQUIRE_KRAKEN)) {
- dout(10) << __func__ << " encoding without feature SERVER_KRAKEN" << dendl;
- features &= ~CEPH_FEATURE_SERVER_KRAKEN;
- }
-
-commit eb672598ad8209dcb7b7454fea31f921d255af1f
-Merge: 5e079cf d48e603
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Nov 4 15:31:05 2016 +0100
-
- Merge pull request #11742 from tchaikov/wip-17728-jewel
-
- jewel: test/ceph_test_msgr: do not use Message::middle for holding transient…
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5e079cfd46e4649e0eb24b15cb2c45887f5762fe
-Merge: 7b3ec11 eb30cc5
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Nov 3 15:54:28 2016 +0100
-
- Merge pull request #11746 from liewegas/wip-post-file-key-jewel
-
- jewel: ceph-post-file: use new ssh key
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit eb30cc5ad6b439417298b7c615ff8ae15bf00fa2
-Author: David Galloway <dgallowa@redhat.com>
-Date: Fri Aug 19 16:11:32 2016 -0400
-
- ceph-post-file: Ignore keys offered by ssh-agent
-
- In my case, I had multiple private keys in ssh-agent which resulted in
- the sftp connection failing despite explicitly specifying the private
- key to use
-
- Signed-off-by: David Galloway <dgallowa@redhat.com>
- (cherry picked from commit a61fcb2eac35a149b49efdc9b2ffa675afb968e8)
-
-commit 43282b0657ff19060dad25df79981ce17a76900f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Nov 2 09:37:41 2016 -0400
-
- ceph-post-file: migrate to RSA SSH keys
-
- DSA keys are being deprecated: http://www.openssh.com/legacy.html
-
- drop.ceph.com will continue to allow the old DSA key but eventually,
- users submitting logs using ceph-post-file will run into issues when
- OpenSSH completely drops support for the algorithm.
-
- Fixes: http://tracker.ceph.com/issues/14267
-
- Signed-off-by: David Galloway <dgallowa@redhat.com>
- (cherry picked from commit ecd02bf3f1c7a07a3271b2736a9e12dd6e897821)
-
- # Conflicts:
- # src/CMakeLists.txt
-
-commit d48e603d6c6715fbc127003226d327b79f30713a
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Oct 23 18:40:57 2016 -0500
-
- msg: adjust byte_throttler from Message::encode
-
- Normally we never call encode on a message that has a byte_throttler set
- because we only use it for messages we received. However, for forwarded
- messages that we clear_payload() before resending, we *do* reencode, and in
- that case we need to retake the appropriate number of bytes from the
- throttler--just like we release them in clear_payload().
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a9651282f7c16df872757b82d3d2995d92458d5c)
-
-commit 1bc616138fea897f36c1c25851f87df91404011c
-Author: Sage Weil <sage@redhat.com>
-Date: Sun Oct 23 18:10:00 2016 -0500
-
- msg/Message: fix set_middle vs throttler
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e7bf50b27a495ed75def67025d1ceca83861ba35)
-
-commit 5d5b5952322bb6a571c9cd58fd3e683eb32a2509
-Author: Sage Weil <sage@redhat.com>
-Date: Sat Oct 22 14:01:34 2016 -0400
-
- messages/MForward: reencode forwarded message if target has differing features
-
- This ensures we reencode the payload with the
- appropriate set of features if the client, us, or the
- target do not have identical features. Otherwise we
- may forward an encoding with more features than the
- target can handle.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit a433455e59067a844c3df4a0d6080db2ceb4ec59)
-
-commit e068c9206a3d618b3b04975d03f61ca64a92c4d4
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 28 11:44:28 2016 -0400
-
- messages/MForward: fix encoding features
-
- We were encoding the message with the sending client's
- features, which makes no sense: we need to encode with
- the recipient's features so that it can decode the
- message.
-
- The simplest way to fix this is to rip out the bizarre
- msg_bl handling code and simply keep a decoded Message
- reference, and encode it when we send.
-
- We encode the encapsulated message with the intersection
- of the target mon's features and the sending client's
- features. This probably doesn't matter, but it's
- conceivable that there is some feature-dependent
- behavior in the message encode/decode that is important.
-
- Fixes: http://tracker.ceph.com/issues/17365
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d4f5e88f36e5388ae9e062c4bc49ac1c684a3f3c)
-
-commit 158b003751d8bedafdca60d859aef67e69d9a732
-Author: Michal Jarzabek <stiopa@gmail.com>
-Date: Sat Jun 4 23:24:06 2016 +0100
-
- all: add const to operator<< param
-
- Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
- (cherry picked from commit 0a157e088b2e5eb66177421f19f559ca427240eb)
-
-commit 3e1edde98610b11b94c59d23de979d6cd79dd8fe
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Oct 29 01:54:58 2016 +0800
-
- test/ceph_test_msgr: do not use Message::middle for holding transient data
-
- Message::middle is used for holding encoded data, so we we can not stuff
- it with payload and leave the "payload" field empty. this change
- refactors the ceph_test_msgr by introducing a Payload class which
- encodes all test data in it.
-
- Fixes: http://tracker.ceph.com/issues/17728
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 56896a7ed20869ce91ade4c77c1d6cbab8d50de1)
- Conflicts:
- src/test/msgr/test_msgr.cc: do not use the new-style DENC()
- framework for implementing the encoder of Payload class. DENC() was
- introduced after jewel was released.
-
-commit 8f75bd64768b6984c537dd15b5d9159070b86d91
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 8 23:20:58 2016 +0800
-
- test/ceph_test_msgr: fix circular locking dependency
-
- * do not acquire lock when sending message
- * remove lock in session
- * reduce the scope guarded by locks for better performance.
-
- Fixes: http://tracker.ceph.com/issues/16955
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cf1801c260c42aa93850538eea7a194440ebe350)
-
-commit f960db4646a9535bcee6d53740811b84e0678c93
-Author: Haomai Wang <haomai@xsky.com>
-Date: Thu Jul 7 14:59:51 2016 +0800
-
- ceph_test_msgr: use ceph log infrastructure to output
-
- because we want to get the right log sequence which mixes ceph logginer and
- cerr. Otherwise, cerr output make the logs a little disordered.
-
- Signed-off-by: Haomai Wang <haomai@xsky.com>
- (cherry picked from commit d1268a6aa895ee93cd9fee6fc6c759317e681a85)
-
-commit 7b3ec119cb968a26526ad95355c5bf7525fb5346
-Merge: 5efb6b1 779af22
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Tue Nov 1 17:05:27 2016 -0700
-
- Merge pull request #11728 from ceph/wip-librados-upgrade-jewel
-
- qa: remove EnumerateObjects from librados upgrade tests
-
-commit 5efb6b1c2c9eb68f479446e7b42cd8945a18dd53
-Merge: 3c9fe54 39b8e78
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 28 14:29:20 2016 +0200
-
- Merge pull request #11669 from ceph/wip-jewel-11566
-
- rgw: fix put_acls for objects starting and ending with underscore
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3c9fe545dccf13413bb491098c089d3e4a76bcd2
-Merge: 5ca8791 6356664
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 27 21:40:26 2016 +0200
-
- Merge pull request #11472 from dachary/wip-17510-jewel
-
- jewel: ERROR: got unexpected error when trying to read object: -2
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 39b8e783defb930b1dd8eeecdfee68d0d886d03b
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Oct 19 21:51:01 2016 +0200
-
- rgw: fix put_acls for objects starting and ending with underscore
-
- Fixes: http://tracker.ceph.com/issues/17625
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 14d4d912c7b47c56b16ae0bdc6bc08d208de3461)
-
-commit 5ca879114fcc98b906cac64a5ef5cb2a8568cb60
-Merge: ed9a824 dc2ffda
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Oct 27 13:52:22 2016 -0400
-
- Merge pull request #11662 from linuxbox2/jewel-17635
-
- jewel: rgw: handle empty POST condition
-
-commit ed9a824f2075e15ac245b9aac683cb28183ecd3a
-Merge: e08b0f3 f5e37ab
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 27 16:48:43 2016 +0200
-
- Merge pull request #11634 from dillaman/wip-17590-jewel
-
- jewel: journal: do not prematurely flag object recorder as closed
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 779af22fc920f1fdfdd3fa2b01d8587088372bd4
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Oct 26 16:33:53 2016 -0700
-
- qa: remove EnumerateObjects from librados upgrade tests
-
- These rely on new rados functionality not present in jewel
-
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e08b0f308f5af45c1b1867ab5b757486bba51333
-Merge: 0aee633 4cb83c1
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 26 23:00:35 2016 +0200
-
- Merge pull request #11644 from ceph/wip-17695
-
- jewel: librbd: discard after write can result in assertion failure
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4cb83c14dbe09d4b371f7b728d9b5c0549e59f1a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 25 09:43:06 2016 -0400
-
- librbd: discard after write can result in assertion failure
-
- With journaling enabled, the proper lock is not held when handling
- a discard after write to overlapping extents. This issue is only present
- on the jewel branch due to design changes on the master branch.
-
- Fixes: http://tracker.ceph.com/issues/17695
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit dc2ffda7819d2ebeed3526d9e6da8f53221818de
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Oct 20 10:17:36 2016 -0700
-
- rgw: handle empty POST condition
-
- Fixes: http://tracker.ceph.com/issues/17635
-
- Before accessing json entity, need to check that iterator is valid.
- If there is no entry return appropriate error code.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 23cb642243e09ca4a8e104f62a3bb7b2cbb6ea12)
-
-commit 0aee6331ad93a3caf212b84412bb648171758fff
-Merge: 06f7d7a cd99a64
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 26 16:47:03 2016 +0200
-
- Merge pull request #11657 from dachary/wip-17707-jewel
-
- jewel: ceph-disk: using a regular file as a journal fails
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 06f7d7a9b2403cf8b7af5301dae575d6f21c71ce
-Merge: 7ff2c10 7964187
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 26 14:04:20 2016 +0200
-
- Merge pull request #11321 from linuxbox2/jewel-11051
-
- jewel: rgw: Do not archive metadata by default
-
- Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 7ff2c108ea12451b6dcb25dab4574f2de68162d1
-Merge: 0fb486d 2f9a5be
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 26 11:55:49 2016 +0200
-
- Merge pull request #11626 from ceph/wip-jewel-11567
-
- jewel: don't loop forever when reading data from 0 sized segment.
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 0fb486d59e1574e936564e4b048a089dee8b267b
-Merge: bf5c47a 86eef27
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 26 11:39:40 2016 +0200
-
- Merge pull request #11478 from dachary/wip-17312-jewel
-
- jewel: build/ops: allow building RGW with LDAP disabled
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit cd99a642a088c7cd010e45a81d6680cdfca16ca6
-Author: Jayashree Candadai <jayaajay@indiana.edu>
-Date: Fri Oct 21 13:52:05 2016 -0400
-
- ceph-disk: allow using a regular file as a journal
-
- Because of a missing return, ceph-disk prepare would fail if given a
- regular file as a journal. If the journal file does not exist, ceph-disk
- will create it but fail to ensure that the ceph user owns it. The
- symlink to the journal file is not set when the journal file is
- specified on the command line and the journal file does not exist at
- all. The ceph-osd daemon will silently create it as a file but it will
- not be the file given in argument.
-
- Add a test case to verify using a regular file as a journal works as
- expected.
-
- Fixes: http://tracker.ceph.com/issues/17662
-
- Signed-off-by: Jayashree Candadai <jayaajay@indiana.edu>
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit db917d50eb5f86a07a5487e130f46a6b1d27672a)
-
-commit a80040230cddc395809d2323392c87a4a1fef923
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Wed Aug 17 12:19:33 2016 +0530
-
- ceph-disk: PEP8ify
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit f7a15ccfa2cc214c3688a2b41ac45be1abfb7700)
-
- Conflicts:
- src/ceph-disk/setup.py: python 2.7 restriction not backported
-
-commit e200b17016a1a7cd103affde2d2b265916755498
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Wed Aug 17 12:15:25 2016 +0530
-
- ceph-disk: Set space_symlink to the path, not file object
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit d290454cf5f660c1681eefd70a38e79da683525f)
-
-commit 9191825c06b3d92e2caa26c9efdb69a79cc3964b
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Wed Aug 17 12:13:53 2016 +0530
-
- ceph-disk: Use os.path.isabs instead of .startswith('/')
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit 6f795356de00dd7c33282183b11a03da800fde7b)
-
-commit f1c2de768535ce18259d4fc187cd370766c1e6cf
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Sun Jun 19 05:10:27 2016 +0530
-
- ceph-disk: Use context manager with FileLock
-
- acquire and release methods of FileLock are dropped
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit c1011d514ce0c7d340a5acd6f9c640165e169156)
-
-commit 26cb5b6bfbd6eee46bfa3cf005b1cd9f06b0e262
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Sun Jun 19 04:05:42 2016 +0530
-
- ceph-disk: Fix bug in FileLock
-
- Python fcntl.lockf() accepts a file descriptor, not a file object
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit df9cc2ce938a969f4044b63fd80030d00f64f060)
-
-commit 91a9ca374f646966e31b015928a2cc60bc5225aa
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Thu Jun 16 16:37:00 2016 +0530
-
- ceph-disk: Use true integer division in get_dev_size
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit f1bb72c82806cc03e85e0b19c83d61409c6b2d51)
-
-commit 2373ccb7a991069406e344b91fa70c0b2d1aa5e0
-Author: Anirudha Bose <ani07nov@gmail.com>
-Date: Tue Jun 14 21:42:02 2016 +0530
-
- ceph-disk: Compatibility fixes for Python 3
-
- ceph-disk: Misc cleanups
-
- Signed-off-by: Anirudha Bose <ani07nov@gmail.com>
- (cherry picked from commit d0e29c74f84a2ed3014a516c0106172619314bdc)
-
- Conflicts:
- src/ceph-disk/tox.ini: python3 is not supported in jewel
-
-commit 79cf6330d67ad52af5690f4d4efd29aa2722acb2
-Author: Shylesh Kumar <shmohan@redhat.com>
-Date: Thu Jul 7 20:45:57 2016 +0530
-
- ceph-disk: change ownership of init file to ceph:ceph
-
- Fixes: http://tracker.ceph.com/issues/16280
- Signed-off-by: Shylesh Kumar <shmohan@redhat.com>
- (cherry picked from commit aab9d03e1b50ba10a383663088400b9fabe306cb)
-
-commit 796418746ecd2a4971e365499c6952e131e74913
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Mon Sep 12 14:30:43 2016 +0530
-
- rgw: Do not archive metadata by default
-
- Fixes: http://tracker.ceph.com/issues/17256
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
- (cherry picked from commit c617ea83e0cca0061af18e0811c7ef8b4e836519)
-
-commit bf5c47a28abe6d91dfdace8d6803a7016bbf02fb
-Merge: 7714689 1eedf18
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 25 15:49:55 2016 +0200
-
- Merge pull request #11642 from tchaikov/wip-17685-jewel
-
- jewel: mon: fix missing osd metadata (again)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 77146891ab254bc796e38e2a45b8500c0119745f
-Merge: 3ccc17b e8e1acb
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 25 15:40:01 2016 +0200
-
- Merge pull request #11467 from dachary/wip-17262-jewel
-
- jewel: rbd-nbd IO hang
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1eedf181176ce75212a8cfbb87ac927350a826ed
-Author: John Spray <john.spray@redhat.com>
-Date: Wed May 25 17:56:51 2016 +0100
-
- mon: fix missing osd metadata (again)
-
- The JSON output was getting broken by continuing
- in the wrong place.
-
- Fixes: http://tracker.ceph.com/issues/17685
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit c5700ce4b45b3a385fe4c2111da852bea7d86da2)
-
-commit f5e37abefcb015b2cb58295cfdf109fd6f5833b0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Oct 17 09:48:20 2016 -0400
-
- journal: do not prematurely flag object recorder as closed
-
- Fixes: http://tracker.ceph.com/issues/17590
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2be6367cb0119d86dfecfa94eb4a3a102c40162a)
-
-commit 2f9a5beb9a903220b70a780b30564d9741e9f0e5
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Thu Oct 13 21:12:36 2016 -0400
-
- Don't loop forever when reading data from 0 sized segment.
-
- The 0 sized segment can arise depending on how
- the client uploads the object in the first place.
- The cpu loop then happens during a swift `GET'.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 46c5f9773246522e66bb2cca49345d0b62a16c42)
-
-commit 3ccc17b81d2794406d803ff4210e930a1fa67455
-Merge: 112b89d 0b30a1d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 24 12:03:13 2016 +0200
-
- Merge pull request #10757 from dachary/wip-17056-jewel
-
- jewel: mon/osdmonitor: decouple adjust_heartbeat_grace and min_down_reporters
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 112b89dc315dd1240d68eb50fba1438057002327
-Merge: 7ab1e02 0dcefd2
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 24 12:03:01 2016 +0200
-
- Merge pull request #10759 from dachary/wip-16866-jewel
-
- jewel: OSD: ceph osd df does not show summarized info correctly if one or more OSDs are out
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 7ab1e0275101a30c2d318bcd55787f61c687328f
-Merge: e053b20 4f9e02c
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 24 11:55:41 2016 +0200
-
- Merge pull request #11590 from dachary/wip-17642-jewel
-
- jewel: TestJournalReplay: sporadic assert(m_state == STATE_READY || m_state == STATE_STOPPING) failure
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4f9e02c40ac5359f344d29f20332ec6ed8575b8e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 13 10:04:24 2016 -0400
-
- test: TestJournalReplay test cases need to wait for committed journal event
-
- Fixes: http://tracker.ceph.com/issues/17566
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1bdf7a425eb7436838c9445ea2c8ab42dfd3a1b6)
-
-commit e8e1acb1d5154b749d251efa88b45e8ad3edb2bb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Sep 8 11:51:34 2016 -0400
-
- librbd: ignore cache busy errors when shrinking an image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4ce663845679dc35f2f15b893c6f988c4a60b25b)
-
- Conflicts:
- src/test/librbd/operation/test_mock_ResizeRequest.cc:
- when_resize does not have the allow_shrink argument because
- d1f2c557b2c039730baca9efa3f5244bc19dcb1a has not been
- backported
-
-commit ba2e87e0443069b0552b698cc7a508898a3f585d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Sep 8 09:59:37 2016 -0400
-
- librbd: invalidate cache before trimming image
-
- Any potential writeback outside the extents of a shrunk image
- would result in orphaned objects.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3f93a1917437ba7b69b306e4ff971b79e8b79c89)
-
-commit d7c0873ea77234b7b736080c3de4012d2f6adaee
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 7 11:49:26 2016 -0400
-
- rbd-nbd: mask out-of-bounds IO errors caused by image shrink
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c6cfb616a846959a2cd1c0e540b14668c61a2afd)
-
-commit 0ce342d39f359d23c92ab94efb910b84a634094a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Sep 5 10:01:45 2016 -0400
-
- rbd-nbd: fix kernel deadlock during teuthology testing
-
- Fixes: http://tracker.ceph.com/issues/16921
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ce7c1520a8019f011fa34dd898af317f78974577)
-
-commit e053b2085b0d0be0e8c9912c82c7142bb0871783
-Merge: f6d7290 caf08d7
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 20 11:17:49 2016 -0400
-
- Merge pull request #11519 from dachary/wip-17576-jewel
-
- jewel: RGW loses realm/period/zonegroup/zone data: period overwritten if somewhere in the cluster is still running Hammer
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit f6d729082359b450950513080c9c08461d6f557c
-Merge: 9e9a38d 40689d1
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 20 11:17:22 2016 -0400
-
- Merge pull request #11471 from dachary/wip-17511-jewel
-
- jewel: s3tests-test-readwrite failing with 500
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 9e9a38df303749147a638f0df42ad875c829d294
-Merge: 9b0fa2b 5a53ffa
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 20 11:16:38 2016 -0400
-
- Merge pull request #11469 from dachary/wip-17538-jewel
-
- jewel: rgw:user email can modify to empty when it has values
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 9b0fa2b27386dd0c09aead832c9f049ef10b26fb
-Merge: 0eac635 4babd3f
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:31:10 2016 +0200
-
- Merge pull request #11466 from dachary/wip-17290-jewel
-
- jewel: ImageWatcher: use after free within C_UnwatchAndFlush
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 0eac63545da063a8bbab4b1ea6c9a765023617fc
-Merge: 51d5ed0 b73356b
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:30:53 2016 +0200
-
- Merge pull request #11464 from dachary/wip-17373-jewel
-
- jewel: image.stat() call in librbdpy fails sometimes
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 51d5ed0ddbe7e1018be1fa46c912d2e0ca07a984
-Merge: d2150fb b410c8e
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:30:44 2016 +0200
-
- Merge pull request #11463 from dachary/wip-17384-jewel
-
- jewel: helgrind: TestLibRBD.TestIOPP potential deadlock closing an image with read-ahead enabled
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit d2150fb54e894039e03855352708fad6b08d75d0
-Merge: f8989ef 32d84e0
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:30:32 2016 +0200
-
- Merge pull request #11462 from dachary/wip-17404-jewel
-
- jewel: update_features API needs to support backwards/forward compatibility
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f8989ef7a79dd37f58fc9bddbd1e3fcd83e14f42
-Merge: ac2ce6d 7d6801b
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:28:18 2016 +0200
-
- Merge pull request #11459 from dachary/wip-17483-jewel
-
- jewel: RBD should restrict mirror enable/disable actions on parents/clones
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ac2ce6dcda27a70a45e17270cab4d5e9a856abc7
-Merge: cd48521 391936a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:27:36 2016 +0200
-
- Merge pull request #11460 from dachary/wip-17482-jewel
-
- jewel: Enable/Disable of features is allowed even the features are already enabled/disabled
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit cd48521cde8bb69b6879977f51404a3014571a84
-Merge: 410a368 dd93e00
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 16:26:53 2016 +0200
-
- Merge pull request #11461 from dachary/wip-17481-jewel
-
- jewel: Proxied operations shouldn't result in error messages if replayed
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 410a368e9bdf31f6512be5e9a783c7990ba9003f
-Merge: 07a8d8a d66bb7a
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 12:42:01 2016 +0200
-
- Merge pull request #11431 from ceph/wip-jewel-tarball
-
- jewel: build/ops: include more files in "make dist" tarball
-
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit 07a8d8aedfa101a52e4764cc211fd2a1d8f36582
-Merge: 62f7f64 50fd48f
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:48:49 2016 +0200
-
- Merge pull request #11474 from dachary/wip-17350-jewel
-
- jewel: rgw:response information is error when geting token of swift account
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 62f7f646b85f81c0c812f3d5adc1926d4cee3f7d
-Merge: 638590c 91bd342
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:47:43 2016 +0200
-
- Merge pull request #11492 from SUSE/wip-17575-jewel
-
- jewel: aarch64: Compiler-based detection of crc32 extended CPU type is broken
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 638590c97a5365df118c72aab2e510ffcd2a9470
-Merge: c58d626 6575545
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:28:29 2016 +0200
-
- Merge pull request #11475 from dachary/wip-17349-jewel
-
- jewel: Modification for TEST S3 ACCESS section in INSTALL CEPH OBJECT GATEWAY page
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c58d62677449b08023b761762a52cc4ceaf69def
-Merge: 3cb4bf4 7423661
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:27:54 2016 +0200
-
- Merge pull request #11473 from dachary/wip-17509-jewel
-
- jewel: Config parameter rgw keystone make new tenants in radosgw multitenancy does not work
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3cb4bf43b923a71872525b0222b4b0fc73664fb0
-Merge: fb74b16 de672a0
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:27:18 2016 +0200
-
- Merge pull request #11201 from ceph/wip-backport-logrotate-jewel
-
- jewel: build/ops: backport 'logrotate: Run as root/ceph'
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit fb74b1688603c0351e80ed504be4faad320a67e6
-Merge: 9d3373d 25a35d4
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 11:22:45 2016 +0200
-
- Merge pull request #11126 from tchaikov/wip-17179-jewel
-
- jewel: add a tool to rebuild mon store from OSD
-
- Reviewed-by: huanwen ren <ren.huanwen@zte.com.cn>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 9d3373d71f8af16a8f0220aa0d0682e2f3bb5a8c
-Merge: 0c83eb3 eb6c3cb
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 20 09:39:15 2016 +0200
-
- Merge pull request #11563 from ceph/wip-jewel-acl-underscore
-
- rgw: fix regression with handling double underscore
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit eb6c3cbcc6cadd4eff9de0d6332f42c785486f7b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 18:35:59 2016 -0700
-
- rgw: set correct instance on the object
-
- Fixes: http://tracker.ceph.com/issues/17443
-
- This was broken by commit bc840afafdfe5e528e5c1b711e71420ac3cb5a67
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d2ada35c8c0d938a704ecf9974988ea30a9c0105)
-
-commit 0c83eb355e989fb6ed38a3b82f9705fd5d700e89
-Merge: 7496388 f400ff2
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 23:14:23 2016 +0200
-
- Merge pull request #11548 from dachary/wip-17609-jewel
-
- jewel: tests: ceph-disk must ignore debug monc
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 7496388468688763cab7fab9cc2f61cfaeeb4e7c
-Merge: f8055a9 d205b74
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 23:11:24 2016 +0200
-
- Merge pull request #11411 from dachary/wip-17245-jewel
-
- jewel: tests: scsi_debug fails /dev/disk/by-partuuid
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f8055a9453e228079a8c61ba398e93e9fbdcf55a
-Merge: 3b2d360 dea93dc
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 23:11:04 2016 +0200
-
- Merge pull request #10884 from dachary/wip-17149-jewel
-
- jewel: ceph-disk: expected systemd unit failures are confusing
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 084108e440b7b9b8f0d36282dd4eba64a4b96f4b
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Aug 31 22:25:57 2016 +0200
-
- rgw: fix regression with handling double underscore
-
- Fixes: http://tracker.ceph.com/issues/16856
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit bc840afafdfe5e528e5c1b711e71420ac3cb5a67)
-
-commit 3b2d36039305bc070ac1eaf5142d5b5bfa7accb1
-Merge: d15d6dc 483d8c4
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 16:50:44 2016 +0200
-
- Merge pull request #11408 from dachary/wip-17345-jewel
-
- jewel: Ceph Status - Segmentation Fault
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit d15d6dc896d0ac30ddff4354600d7c2ecb61b54a
-Merge: d4197dc 5ae4f31
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 16:50:22 2016 +0200
-
- Merge pull request #11407 from dachary/wip-17360-jewel
-
- jewel: ceph-objectstore-tool crashes if --journal-path <a-directory>
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit d4197dcae43b073d121c4b12ff7cca2f619745e1
-Merge: 54bb909 c94244d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 09:47:00 2016 +0200
-
- Merge pull request #11158 from dillaman/wip-rbdmap-jewel
-
- jewel: systemd: add install section to rbdmap.service file
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 54bb9092a8d658ab2f352ed8c850d719b2468d83
-Merge: dc59575 c3c2910
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 09:46:19 2016 +0200
-
- Merge pull request #10862 from dachary/wip-17095-jewel
-
- jewel: rpm: ceph installs stuff in %_udevrulesdir but does not own that directory
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f400ff222e531feb00de3ebf1860a0d4bcca736e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Oct 18 17:33:23 2016 +0200
-
- tests: ceph-disk: force debug monc = 0
-
- The sh function will collect both stderr and stdout and debug
- will mess the json parsing.
-
- Fixes: http://tracker.ceph.com/issues/17607
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 469a53a4adc335ea4ff8e34a958b12f0f222a6c1)
-
-commit dc59575b2fec477bdcf152f91a02532fcdfd1a10
-Merge: 778d884 c2cf21d
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 08:56:46 2016 +0200
-
- Merge pull request #10860 from dachary/wip-17121-jewel
-
- jewel: the %USED of ceph df is wrong
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 778d884512d2cf298c60634cda9a6f66dc2b948b
-Merge: 82edc5b a25a483
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Oct 19 01:35:13 2016 +0200
-
- Merge pull request #10886 from dachary/wip-17144-jewel
-
- jewel: mark_all_unfound_lost() leaves unapplied changes
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 82edc5bc526e02d7c535d01642d8ef7f00d19939
-Merge: c4f4f8a e6ac214
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 18 13:05:43 2016 +0200
-
- Merge pull request #10784 from dachary/wip-17067-jewel
-
- jewel: Request exclusive lock if owner sends -ENOTSUPP for proxied maintenance op
-
- Reviewed-by: Ilya Dryomov <idryomov@redhat.com>
-
-commit 25a35d43a8bf7e1a7d78d5d1d2a5556dff98f5e8
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Oct 10 18:43:39 2016 +0800
-
- doc: fill keyring with caps before passing it to ceph-monstore-tool
-
- to make sure the recovered monitor store is ready for use.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit af8e21163735377071b6832d8a81b035bb835257)
-
-commit 73ea9264803bdf53a5da64992c1b91e94633f5e3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Oct 10 16:32:27 2016 +0800
-
- tools/ceph_monstore_tool: bail out if no caps found for a key
-
- we take it as an error if no caps is granted to an entity in the
- specified keyring file when rebuilding the monitor db.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b4bd4004a836121c11b0bb97d8123df54c271f04)
-
-commit 4ebf87bccdb17bd04b2c615e6278a7816ae1ff43
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Sep 30 17:58:14 2016 +0800
-
- tools/ceph_monstore_tool: update pgmap_meta also when rebuilding store.db
-
- we should rebuild pgmap_meta table from the collected osdmaps
-
- Fixes: http://tracker.ceph.com/issues/17400
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cdfa7a69f63d047205dcfccd63b5d58ab0d4695b)
-
-commit d2deed6bfbc5693e3bd8a10a2f9be8df8ef1b0e5
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sun Sep 18 11:40:56 2016 +0800
-
- tools/rebuild_mondb: kill compiling warning
-
- As follow:
-
- [ 72%] Building CXX object src/tools/CMakeFiles/ceph-objectstore-tool.dir/RadosDump.cc.o
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc: In function ‘int update_mon_db(ObjectStore&, OSDSuperblock&, const string&, const string&)’:
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc:289:22: warning: ‘crc’ may be used uninitialized in this function [-Wmaybe-uninitialized]
- if (have_crc && osdmap.get_crc() != crc) {
- ^
- /home/jenkins-build/build/workspace/ceph-pull-requests/src/tools/rebuild_mondb.cc:238:14: note: ‘crc’ was declared here
- uint32_t crc;
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit f16a31476a3f9b44a7c3dabf0dfd2a0d015b11b9)
-
-commit 09701269de225e556099b9e5c511faa44acae024
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Sun Sep 18 10:33:56 2016 +0800
-
- tools/rebuild_mondb: avoid unnecessary result code cast
-
- In general we return negative codes for error cases, so there is
- no need perform the cast here.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 6a1c01d334fe65124043aa68a6e0cfaea43836b5)
-
-commit 5191b06294cf505716d0c64ac36528e9ea57b0a8
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Oct 1 14:18:55 2016 +0800
-
- doc: add rados/operations/disaster-recovery.rst
-
- document the process to recover from leveldb corruption.
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 79a9f299253e24d20547131b3c9c9e0667e3b869)
- Conflicts:
- src/tools/rebuild_mondb.cc:
- remove the code change in this file from this commit.
- and the code gets removed is added in anther commit.
-
-commit 8c8d5ce529fa826bc0d453edf5fb5e98e29294d3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 29 19:53:11 2016 +0800
-
- tools/ceph_monstore_tool: add "rebuild" command
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d909fa035c8fbbded786b2ca072acc10ea6b6052)
-
-commit 1fcb0bb81a8989b31a79bc565354f6817ceb12d7
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Aug 29 19:52:19 2016 +0800
-
- tools/ceph-objectstore-tool: add "update-mon-db" command
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Conflicts:
- src/tools/CMakeLists.txt: this file was added in master, so
- update src/CMakeLists.txt instead
- src/tools/Makefile-server.am: jewel is still using autotools,
- so update this file also.
- src/tools/rebuild_mondb.cc: move the code spilled into
- doc/rados/troubleshooting/troubleshooting-mon.rst
- by accident back to this commit.
- (cherry picked from commit 24faea7ce446bbf09cbd4a9d3434dd5444a6c295)
-
-commit 416750258fb63064a36eaf53f586a51fc3ea63e0
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Aug 31 13:11:24 2016 +0800
-
- mon/AuthMonitor: make AuthMonitor::IncType public
-
- so ceph-objectstore-tool is able to use it when rebuilding monitor
- db.
-
- Fixes: http://tracker.ceph.com/issues/17179
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 19ef4f16b3aba04119ac647cd6261c74a57ce829)
-
-commit c4f4f8a72421e9c43c09eb9dfb5a3c6fe2123886
-Merge: ded7c27 5ef9085
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Oct 17 11:56:30 2016 -0700
-
- Merge pull request #10885 from dachary/wip-17145-jewel
-
- jewel: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max())))
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit ded7c27a2d0fc0ae307321de2bf419e065c36ba1
-Merge: bdcdedd 58b7c52
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Oct 17 11:54:29 2016 -0700
-
- Merge pull request #10883 from dachary/wip-17141-jewel
-
- jewel: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit bdcdedd32f9e8a71735ae1d4d3ca18b41bde3378
-Merge: 757f8e8 3bb2a9e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 18:08:46 2016 +0200
-
- Merge pull request #11420 from dachary/wip-17556-jewel
-
- jewel: librbd::Operations: update notification failed: (2) No such file or directory
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 757f8e87e0aa39af05f0bc7b8146c826191e8032
-Merge: 4d2bc33 bd63666
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 18:08:32 2016 +0200
-
- Merge pull request #10857 from dachary/wip-16984-jewel
-
- jewel: Disabling pool mirror mode with registered peers results orphaned mirrored images
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4d2bc33101aaadbab73cdae3327fc0888a15e25a
-Merge: 23d91cf 18a66cb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:55:10 2016 +0200
-
- Merge pull request #10645 from dachary/wip-16458-jewel
-
- jewel: Potential crash during journal::Replay shut down
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 23d91cfcd1c77766972577639ef72db353076e37
-Merge: 51c2794 775c78d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:54:55 2016 +0200
-
- Merge pull request #10652 from dachary/wip-16951-jewel
-
- jewel: ceph 10.2.2 rbd status on image format 2 returns (2) No such file or directory
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 51c279425e26626884ec54add6043c7ed3873920
-Merge: ee32be2 bb81f9d
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:37:41 2016 +0200
-
- Merge pull request #11337 from SUSE/wip-17060-jewel
-
- jewel: librbd: cannot disable journaling or remove non-mirrored, non-primary image
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ee32be2ae3c328238fd2bbb953c18d3b9f0a51b1
-Merge: 7d0dd1c 2b27212
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:37:06 2016 +0200
-
- Merge pull request #10650 from dachary/wip-16868-jewel
-
- jewel: Prevent the creation of a clone from a non-primary mirrored image
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 7d0dd1cf6f6568f86fa593de0a7845462a510d31
-Merge: f1c21c6 1c76ef4
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:06:51 2016 +0200
-
- Merge pull request #11433 from dillaman/wip-17416-jewel
-
- jewel: rbd-mirror: improve resiliency of stress test case
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f1c21c6f01e20949753198e5f3ad160e0213cc5b
-Merge: 986a8b5 80e25b0
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 17:04:11 2016 +0200
-
- Merge pull request #10796 from dillaman/wip-17059-jewel
-
- jewel: rbd: bench io-size should not be larger than image size
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 986a8b5eacbf0d6084121eef8407088a24d27ffd
-Merge: c7b7f2e 10e603b
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:28:06 2016 +0200
-
- Merge pull request #11414 from dachary/wip-17477-jewel
-
- jewel: Crash in Client::_invalidate_kernel_dcache when reconnecting during unmount
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit c7b7f2e8c0de596255e651ae5e499c586f1e4493
-Merge: ada7edd 3320da0
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:27:53 2016 +0200
-
- Merge pull request #11412 from dachary/wip-17479-jewel
-
- jewel: Duplicate damage table entries
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit ada7edd1d21073b71c1d4538ab66b15b978cf418
-Merge: 1412b17 3a79db1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:27:43 2016 +0200
-
- Merge pull request #11415 from dachary/wip-17476-jewel
-
- jewel: Failure in snaptest-git-ceph.sh
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 1412b171c057fabd05abaf9adcf31aa29a4f5b00
-Merge: 368c96c 0a17741
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:27:30 2016 +0200
-
- Merge pull request #11416 from dachary/wip-17474-jewel
-
- jewel: Failure in dirfrag.sh
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 368c96c513cd5424d7935fc02edd6297fb680bb7
-Merge: 4486e3b 2c4e1c1
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:27:17 2016 +0200
-
- Merge pull request #11418 from dachary/wip-17246-jewel
-
- jewel: Log path as well as ino when detecting metadata damage
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 4486e3b5e00e809bc3391613cc5160810ce5bf1e
-Merge: b174220 5173563
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:27:04 2016 +0200
-
- Merge pull request #11419 from dachary/wip-17244-jewel
-
- jewel: Failure in snaptest-git-ceph.sh
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit b1742204e10d563573bbda82917b843c01b20420
-Merge: 54240c4 c0db9fb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 14:26:30 2016 +0200
-
- Merge pull request #10877 from dachary/wip-16946-jewel
-
- jewel: client: nlink count is not maintained correctly
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 54240c4d3dfeef97c6fba343fe501f0303c73f1b
-Merge: 8b5aa5d 430ab1b
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 17 13:40:13 2016 +0200
-
- Merge pull request #10758 from dachary/wip-17007-jewel
-
- jewel: ceph-disk should timeout when a lock cannot be acquired
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit caf08d731c7cec40fe6635189de877d1f047e8b4
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Oct 11 14:18:29 2016 +0200
-
- rgw: avoid corruption when running old radosgw-admin on a newer rgw
-
- Fixes:http://tracker.ceph.com/issues/17371
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 8eab9454b4d45ed8092a1292bd1904ef928c2120)
-
-commit e5f7854ddfc2a6c123d77b1d33e659b4f870fbe6
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Oct 11 11:19:01 2016 +0200
-
- rgw: Fix missing master zone for default region conversion
-
- Fixes:http://tracker.ceph.com/issues/17371
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit cd3bccdef2ecd1d294ab1192ab3b9e731b5592e0)
-
-commit ec2fb022307eea93a802f80307b957bfb2581249
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Tue Oct 11 11:00:00 2016 +0200
-
- rgw: mark configuration as converted to avoid corruption when running older admins
-
- Fixes: http://tracker.ceph.com/issues/17371
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit ceafa2863dd9c02da8a30c5a5324b472ed5d3404)
-
-commit 8b5aa5d94fd24793c160372f02b02735632b5fd0
-Merge: 6baac41 2311ab2
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 14 18:13:09 2016 +0200
-
- Merge pull request #10864 from dachary/wip-17131-jewel
-
- jewel: Jewel: segfault in ObjectCacher::FlusherThread
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 6baac417eb95df880b97cdc720e6b00f6f8f27d8
-Merge: 19922c5 ca8fc6f
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 14 09:26:32 2016 -0500
-
- Merge pull request #11417 from dachary/wip-17347-jewel
-
- jewel: ceph-create-keys: sometimes blocks forever if mds allow is set
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 19922c5b818e82c297dfc0d2eb914276945e9a2e
-Merge: 952a81a 35660d1
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 14 09:25:42 2016 -0500
-
- Merge pull request #11272 from aiicore/wip-17402-jewel
-
- jewel: OSDMonitor: Missing nearfull flag set
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 952a81aed3bae88239e448fcae1ce73e725d9966
-Merge: e34b7da 165e5ab
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 14 09:24:42 2016 -0500
-
- Merge pull request #11193 from SUSE/wip-17377-jewel
-
- jewel: LIBRADOS modify Pipe::connect() to return the error code
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit e34b7dad7e11f1db45f2bd636b1f3ed73742540a
-Merge: f9c969e 7d92e2e
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 14 09:23:30 2016 -0500
-
- Merge pull request #10861 from dachary/wip-17135-jewel
-
- jewel: ceph mon Segmentation fault after set crush_ruleset ceph 10.2.2
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit f9c969eb54fef6f474bc8f784735123039ffeccc
-Merge: 4bcc21b 117aa35
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Oct 14 09:22:05 2016 -0500
-
- Merge pull request #10855 from dachary/wip-16657-jewel
-
- jewel: i386 tarball gitbuilder failure on master
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 4bcc21b9288ed046a2781e95e781bfc71636b9c1
-Merge: 92a3538 5d0e2f8
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 14 15:37:25 2016 +0200
-
- Merge pull request #11409 from dachary/wip-17341-jewel
-
- jewel: librados memory leaks from ceph::crypto (WITH_NSS)
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 92a353847852dbec003e4795e3322d2a92752b9d
-Merge: 67d0ded 8833c64
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 14 13:45:46 2016 +0200
-
- Merge pull request #11311 from dzafman/wip-scrub-boundary-jewel
-
- jewel: osd: adjust scrub boundary to object without SnapSet
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 67d0ded8d3ceda56ab7c0aaca25f3c1c51731c72
-Merge: 52e596f 9cb45e1
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 14 13:43:27 2016 +0200
-
- Merge pull request #11231 from badone/wip-17376
-
- jewel: common: Log.cc: Assign LOG_INFO priority to syslog calls
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 52e596ffe0b8a83bfeae0ad836227a73d7d6facb
-Merge: 65e8bbc cca589f
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Oct 14 13:30:05 2016 +0200
-
- Merge pull request #9872 from odivlad/fix-init-el7-jewel
-
- jewel: remove SYSTEMD_RUN from initscript
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 91bd342df6de15263004f3a41c285f6658a16d45
-Author: Alexander Graf <agraf@suse.de>
-Date: Mon Sep 26 10:26:30 2016 +0200
-
- AArch64: Detect crc32 extension support from assembler
-
- The used compiler may or may not be recent enough to recognize the
- crc32 extended cpu type. However, it does not really have to know about
- them either, since all we do is pass inline assembly instructions to
- the assembler.
-
- This patch moves the crc cpu extension detection from compiler based
- to assembler based, so that we can build optimized code even when the
- compiler does not know about the cpu type yet.
-
- Signed-off-by: Alexander Graf <agraf@suse.de>
-
- (manual backport of e70ab48b7f6d39a281b3ec65098535a55018b681 - manual backport
- was undertaken because jewel uses autotools)
-
-commit 65e8bbccdb73cc6696736367a3df59ea3dcfda1f
-Merge: 7c9f1c7 086f6e0
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 13 14:52:30 2016 -0400
-
- Merge pull request #10891 from dachary/wip-16793-jewel
-
- jewel: rgw: upgrade from old multisite to new multisite fails
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 7c9f1c7940c77451b2d44ef22a278fdfb2938cea
-Merge: e3839ab 27626ba
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 13 14:51:59 2016 -0400
-
- Merge pull request #10889 from dachary/wip-17143-jewel
-
- jewel: rgw: rgw file uses too much CPU in gc/idle thread
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit e3839ab5ce63abd248d886dcf362f3a6c49f382e
-Merge: 0561550 416ec6f
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 13 14:51:38 2016 -0400
-
- Merge pull request #10868 from dachary/wip-17064-jewel
-
- jewel: rgw: radosgw daemon core when reopen logs
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 05615509d946c340d03af7e407a31e3e53447ac8
-Merge: abc8e3d f034fd0
-Author: Casey Bodley <cbodley@users.noreply.github.com>
-Date: Thu Oct 13 14:51:17 2016 -0400
-
- Merge pull request #10867 from dachary/wip-17118-jewel
-
- jewel: rgw: period commit return error when the current period has a zonegroup which doesn't have a master zone
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit abc8e3dd0388778d01a19f3de15a1ffcb662549f
-Merge: 8adc55d 83a91ba
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 17:43:52 2016 +0200
-
- Merge pull request #11367 from linuxbox2/jewel-s3-versioning
-
- jewel: rgw: S3 object versioning fails when applied on a non-master zone
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 8adc55d0d3f98acde4d91ba6f8ab9fb379ec10d9
-Merge: 50404ae 77ea511
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 16:43:04 2016 +0200
-
- Merge pull request #11342 from SUSE/wip-17505-jewel
-
- jewel: rgw: doc: description of multipart part entity is wrong
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 50404aef1f36cd2035c4384ecdf608910e6cb215
-Merge: f1c55ad de0c4e1
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 16:42:45 2016 +0200
-
- Merge pull request #11330 from cbodley/wip-17073
-
- jewel: rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f1c55ad7eeeb633e5ad3414e37ebb5dacccb930b
-Merge: a336110 e2ce857
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 16:39:06 2016 +0200
-
- Merge pull request #11139 from cbodley/wip-radosgw-admin-man-jewel
-
- jewel: add orphan options to radosgw-admin --help and man page
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a336110785ea06f4404f136dddcce61660d85b2f
-Merge: 79885ae cf47628
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 16:35:57 2016 +0200
-
- Merge pull request #10832 from ceph/jewel-default-quota
-
- jewel: rgw - default quota fixes
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 79885ae86be1e444985446ab8315a21ad6d24634
-Merge: 9d1f756 54b6b5e
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Oct 13 14:58:33 2016 +0200
-
- Merge pull request #10107 from xiaoxichen/wip-16313-jewel
-
- jewel: client: FAILED assert(root_ancestor->qtree == __null)
-
- Reviewed-by: John Spray <john.spray@redhat.com>
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit d205b74e07ab364378afb4fc63cb08814a8a1f4e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Aug 23 12:17:00 2016 +0200
-
- tests: populate /dev/disk/by-partuuid for scsi_debug
-
- The scsi_debug SCSI devices do not have a symlink in /dev/disk/by-partuuid
- because they are filtered out by 60-persistent-storage.rules. That was
- worked around by 60-ceph-partuuid-workaround-rules which has been
- removed by 9f76b9ff31525eac01f04450d72559ec99927496.
-
- Add create rules targetting this specific case, only for tests since the
- problem does not show in real use cases.
-
- Fixes: http://tracker.ceph.com/issues/17100
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7cbf1f0a5eced402e6c7242015550668e3b568f3)
-
-commit 86eef272304f3896a9cda5cde7e882d09d0269c0
-Author: Daniel Gryniewicz <dang@redhat.com>
-Date: Fri Jun 10 11:33:56 2016 -0400
-
- Allow building RGW with LDAP disabled
-
- Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- (cherry picked from commit 38abfcb5d036c050a363533a2c7b658d528d3612)
-
-commit 657554574414dcece6126bfa1b4008b038c3f729
-Author: la-sguduru <SGuduru@walmartlabs.com>
-Date: Thu May 12 11:53:25 2016 +0530
-
- doc: Modification for "TEST S3 ACCESS" section
-
- Signed-off-by: SirishaGuduru sirishaguduru99@gmail.com
- (cherry picked from commit 27d6cf0c6958de9f0533bedb90a74c4020b53675)
-
-commit 50fd48fbdc8f4f0e9151eb405eb112b710304bb9
-Author: qiankunzheng <zheng.qiankun@h3c.com>
-Date: Fri Mar 18 13:58:22 2016 -0400
-
- rgw:response information is error when geting token of swift account
- The header is X-Trans-Id instead of x-amz-request-id in the response header
-
- Fixes:#15195
- Signed-off-by: Qiankun Zheng <zheng.qiankun@h3c.com>
- (cherry picked from commit 08e909d0b844e8be3cb82d6add3e87d38e19e80e)
-
-commit 742366116d368d3adff4b7941a4751d362073b35
-Author: SirishaGuduru <SGuduru@walmartlabs.com>
-Date: Mon Sep 19 10:21:06 2016 +0530
-
- doc: Radosgw multitenancy config paramater change
-
- Radosgw multitenancy configuration parameter
- "rgw keystone make new tenants" never works even
- applied. When gone through the code, itseems this
- parameter is not used. But "rgw keystone implicit
- tenants" works as the code looks for this.
-
- Modified the configuration parameter in two files
- mentioned below from "rgw keystone make new tenants"
- to "rgw keystone implicit tenants"
-
- Fixes: http://tracker.ceph.com/issues/17293
-
- Signed-off-by: SirishaGuduru <SGuduru@walmartlabs.com>
- (cherry picked from commit bd9695d50cfd472508a8a704f1ea5fc62dc08faf)
-
-commit 635666412c464228edb014b525abb0af3a55ac50
-Author: Yang Honggang <joseph.yang@xtaotech.com>
-Date: Tue Oct 4 09:18:09 2016 +0800
-
- rgw: fix versioned object IO error
-
- When accessing a copied destination object, its source object's instance ID
- information is needed, however it's missing now in the destination object's
- manifest.
-
- In order to fix this problem, we can record source object's version_id/instance
- into dest object's manifest(a new filed 'tail_instance' is added). When creating
- a new object(not copy), 'tail_instance' should be equal to its instance value.
- When copy/get a object, 'tail_instance' should always be used to get the right
- tail objects.
-
- Fixes: http://tracker.ceph.com/issues/17111
- Signed-off-by: Yang Honggang <joseph.yang@xtaotech.com>
-
- (cherry picked from commit d43b69e529328f73da6c29cd746557788a989ae0)
-
-commit 40689d1acab4da963d05540eb837fd12a4411269
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Sep 30 16:13:00 2016 -0700
-
- rgw: don't fail if lost race when setting acls
-
- Fixes: http://tracker.ceph.com/issues/16930
-
- When concurrently setting acls on object/bucket, we could lose in a race.
- Instead of retry, just return success (same effect as if we won and then
- other writer overwrote us).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6e9a915b565923081f609048072b8d75716a74ea)
-
-commit 5a53ffa8a9e8590ea0d1992fad9a30cde135cbac
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Oct 5 11:41:42 2016 -0700
-
- rgw: remove user email index using helper function
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 10dbfc540aef5c3d45b7e3aabe61090c302f47ab)
-
-commit ad54bf9a0dc541cb6d664edec9ca7f3ec6ffbc93
-Author: Weijun Duan <duanweijun@h3c.com>
-Date: Sat Feb 27 04:28:14 2016 -0500
-
- rgw:user email can modify to empty
-
- Fixes: http://tracker.ceph.com/issues/13286
-
- Signed-off-by: Weijun Duan <duanweijun@h3c.com>
- (cherry picked from commit ebfd713d9a40e1cb33dfdf2198c20d621e387e36)
-
-commit 4babd3fa335351bd4327cded47a1ffe5a8cfd897
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sat Sep 17 08:29:15 2016 -0400
-
- librbd: corrected use-after-free in ImageWatcher
-
- Fixes: http://tracker.ceph.com/issues/17289
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2f4d4868e3b721c932c35ae7e8f0dd96b36a37fc)
-
-commit 1ca4dc6d1bd6aebece500c6e91f6a9871af0e1f1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Sep 9 10:42:50 2016 -0400
-
- librbd: possible deadlock if cluster connection closed after image
-
- Fixes: http://tracker.ceph.com/issues/17254
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 818c2f2abc972f689acb7d783c2a684bcc9e6e51)
-
-commit b73356b500f9ff364c09e6d78e62fc0e79fbfbac
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 07:25:36 2016 -0400
-
- librbd: block name prefix might overflow fixed size C-string
-
- The issue which resulted in too large v2 image ids was fixed
- under #16887.
-
- Fixes: http://tracker.ceph.com/issues/17310
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 61734d266c6ee476c2f5fcfbbaefc7d0c7939617)
-
-commit b410c8ea2164eb53ee7882859f0a977b67cf8b80
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 10:19:45 2016 -0400
-
- librbd: potential deadlock closing image with in-flight readahead
-
- Fixes: http://tracker.ceph.com/issues/17198
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c971d58f8a5550b19374b74bb89d69143423479b)
-
-commit 32d84e0eed671f0cfe37057d59f0afe1b63f3c4d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 14:47:36 2016 -0400
-
- librbd: update_features should handle Infernalis OSDs
-
- Fixes: http://tracker.ceph.com/issues/17330
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8cb2ccda1b847e0f33c0d34bf57e9ec29bbbb43b)
-
-commit b4e13808b004fd10d342e3daa17a3d4e830d4d00
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 14:34:16 2016 -0400
-
- cls/rbd: set_features should adjust the mask to known features
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a26c7a5cacebf8814e20a2f3d5b69c20d8798871)
-
-commit dd93e009a222e8e86041661742b4df9c92b097f7
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Mon Jun 27 23:36:09 2016 +0530
-
- rbd: cleanup - Proxied operations shouldn't result
- in error messages if replayed
-
- Fixes: http://tracker.ceph.com/issues/16130
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit d09c9c471f40f15c14f392a93a04353ca30b1c5e)
-
-commit 391936a30cc6022f067cb11c2e39bd47b9e58d61
-Author: Lu Shi <shi.lu@h3c.com>
-Date: Wed Jun 15 09:24:43 2016 +0800
-
- librbd: enable/disable of features is not allowed when already enabled/disabled
-
- Fixes: http://tracker.ceph.com/issues/16079
-
- Signed-off-by: Lu Shi <shi.lu@h3c.com>
- (cherry picked from commit a8a633396a4105991c9643c2b39391621934c26d)
-
-commit 7d6801bdd376f8eb5e1fbfa8f3a9f4de5dc710a1
-Author: zhuangzeqiang <zhuang.zeqiang@h3c.com>
-Date: Sat Jun 25 10:21:25 2016 +0800
-
- rbd: restrict mirror enable/disable actions on parents/clones
-
- Fixes: http://tracker.ceph.com/issues/16056
-
- Signed-off-by: zhuangzeqiang zhuang.zeqiang@h3c.com
- (cherry picked from commit 11dee0bbf0a85f2c197192d0560bd486bc2ad6fc)
-
-commit cf476284ae9089e73e5fdf5ddfefdd5842246190
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Sun Jun 19 13:06:06 2016 +0530
-
- rgw: Add documentation for RGW default quota
-
- Fixes http://tracker.ceph.com/issues/16447
-
- This was modified to use size in kB, rather than size in bytes, since
- Jewel has not yet been converted to use size in bytes.
-
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- (cherry picked from commit e3ab3476146cf0fe604783e9e5a0d63237271735)
-
-commit 22348154ad51c20d73aa7715695244b8d85fac37
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Sun Jun 19 12:48:42 2016 +0530
-
- rgw: Do not bother to check against conf values during quota handling
-
- Fixes http://tracker.ceph.com/issues/16447
-
- This was modified to use size in kB, rather than size in bytes, since
- Jewel has not yet been converted to use size in bytes.
-
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- (cherry picked from commit 17d2c1712a5b72315a47ab0f8380331bfd478c0b)
-
-commit 0b8ecce6ac5abafe0175c941dbf55862b1515b1d
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Mon May 23 15:34:58 2016 +0530
-
- rgw: Let the default quota settings take effect during user creation
-
- Fixes http://tracker.ceph.com/issues/16447
-
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- Signed-off-by: Daniel Gryniewicz <dang@redhat.com>
- (cherry picked from commit 400d7c982f18efd7cf96acfc3a63078791d1ec0a)
-
-commit 1c76ef4e3ea7cb401345af0938d6b76652061d05
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sat Oct 1 11:21:21 2016 +0300
-
- journal: ensure in-flight ops are complete destroying journaler
-
- Fixes: http://tracker.ceph.com/issues/17446
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a25b1d7cbebb7b19cebee4cfb362cd744bbb4607)
-
-commit 9bc5e444543fade1f6d78788cadeb7bfdd29710b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Sep 29 16:55:22 2016 +0300
-
- journal: complete action only after notification completed
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 55762cca2bf586d037cb9f32775ec158dc3287c1)
-
-commit 74873322da011d0e6221c90ff39d137de80720ce
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 4 21:29:31 2016 -0400
-
- qa/workunits: reduce amount of client IO for rbd-mirror stress
-
- Journal IO is faster now, resulting in OSDs quickly filling up
- under the stress test case.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a6dd6b50d632aa6995a0f4b6fc5e1a1bda23e2a0)
-
-commit d51a2f6689391274bba41f9359acb9395574e629
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 4 12:22:06 2016 -0400
-
- rbd-mirror: potential race allocating tag during shut down
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8c2ff9bce61a8af024150b8be9dee484f339f7df)
-
-commit cea000c6225c809b35b6c643919a01d940522c55
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Sep 30 12:32:37 2016 -0400
-
- librbd: ignore attempts to request lock if already lock owner
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 355c79cb7c955e62e3153cf28046a9b8a6d0d25c)
-
-commit 912ce3728c09b2bf613da287f5013b97920cc27c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Sep 30 12:59:16 2016 -0400
-
- journal: clean up object recorder closed/overflow callback
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 24faead086a50ea1b9614268d4dd5f3ea7bbe445)
-
-commit 310f3f79cf54daeefa8f00aba0d7b692261e4a33
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Sep 29 08:36:53 2016 -0400
-
- journal: delay moving overflowed buffers until quiesced
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4483531aa3aa3d0f298778062e2b9a339ad05075)
-
-commit 9f3614377043efb56c606905a4b4f5c86b3e074e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Sep 29 08:19:52 2016 -0400
-
- journal: use reverse iterator search to find flush record
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a96065815558e50361af4c701c23e5248962dfe0)
-
-commit 21502d90ecc72e70faa19b1202f9c7095341aaec
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 28 08:35:36 2016 -0400
-
- journal: avoid holding lock while sending journal append
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit dc77a629ed353d586b63f0bd8e20f54a7595afba)
-
-commit e0de824f7e728b06025a572a0c8213ef9fb1f112
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 21 15:41:55 2016 -0400
-
- rbd-mirror: wait for in-flight event commit notifications
-
- Fixes: http://tracker.ceph.com/issues/17355
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f810c106ad4e9ae94494801fea6c580d81b9156b)
-
-commit efa12f7187b6e037c22ba62563030eb883dab5f9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 11 13:55:21 2016 -0400
-
- journal: fix AsyncOpTracker compiler error
-
- The master branch has an async JournalTrimmer which shouldn't be
- backported to the Jewel branch yet. This change addresses the
- missing sync AsyncOpTracker::wait_for_ops method from the backported
- class.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2460a3dbe7d04f1a4daa44d7367d24d47fa070fb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 21 13:02:34 2016 -0400
-
- common: move AsyncOpTracker to common library
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 72d8992f054a7e36f92fdd2e01278ce3b9ede2eb)
-
- Conflicts:
- src/journal/CMakeLists.txt: doesn't exist in Jewel
-
-commit 1748b38da48beb8e25dc5ca831a540d389a963ee
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 28 16:35:48 2016 -0400
-
- librbd: support deleting image by id instead of name
-
- The rbd-mirror daemon will use this API to delete images instead
- of attempting to use the local image name.
-
- Fixes: http://tracker.ceph.com/issues/16227
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 87b32d15914207f61595c1c943817d983faceacd)
-
-commit bb5f6b6872e81291176543e954bf3654eb88120f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jul 13 14:49:06 2016 -0400
-
- rbd-mirror: use pool id + global image id as deletion primary key
-
- Fixes: http://tracker.ceph.com/issues/16538
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 25203a8a9d59ff025d223ec1afaeb14946d54993)
-
-commit 96d551d7e8f10f98cc0a6ae5d90d33e6bca968a5
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Sep 15 18:14:15 2016 -0400
-
- rbd-mirror: concurrent access of event might result in heap corruption
-
- Fixes: http://tracker.ceph.com/issues/17283
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ac9ad37ab80db8913f9f1149707bd0009f8235c4)
-
-commit 8070d6a560044e5b45af7bd6995345ab30489d84
-Author: Ricardo Dias <rdias@suse.com>
-Date: Wed Sep 21 23:08:18 2016 +0100
-
- rbd-mirror: test: Fixed timeout problem in rbd_mirror_stress.sh
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 5c737038dd6d44bd76605587486ddf9457bc2d96)
-
-commit 6ea4cde78ac7db6081e83d2530552946368021ef
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Sep 6 17:28:22 2016 +0100
-
- rbd: Fix race between journal flush and append events
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit aa959e71fe5a8cec43de75007fc9cef8de5ee3a5)
-
-commit 180a86b61498e6a27a59c7673f74e32ce1ae02cf
-Author: Ricardo Dias <rdias@suse.com>
-Date: Wed Sep 7 15:26:34 2016 +0100
-
- journal: make librados call async in ObjectRecorder
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 7b740f5b4ac1c66ac3c80782d2d34e846d00fddd)
-
-commit 5edbfe278532225aaaa6bb3fe6bef84a4c693d83
-Author: Ricardo Dias <rdias@suse.com>
-Date: Mon Jul 25 17:00:50 2016 +0100
-
- journal: increase concurrency of journal recorder
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 5c88edd68a1ee7c77f11e4113251fbe5768b8d99)
-
-commit 9ad132e670564c738e448bf719503cc73525fd8a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Sep 19 11:24:17 2016 -0400
-
- journal: send update notification when tag allocated
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f1cd613e3d8ccb6d05b9adfe1956927991a4f4fe)
-
-commit f9aae06152e281c271f50201a8dd1852a132447f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 13 21:54:46 2016 -0400
-
- librbd: new journal listener event for force promotion
-
- Fixes: http://tracker.ceph.com/issues/16974
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fd005490e95d7fca85be4cad34344a58986f64d6)
-
-commit 4f5ce86349e246e12abe8e0c55380f400bf05ebb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 13 16:38:51 2016 -0400
-
- librbd: helper class for quiescing in-flight async ops
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 39d9e5cc9b38de2ee9ad2faf8e04253314160811)
-
-commit 829ff8c5fa9d9470f1e5370cf601509809b39674
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 13 12:37:53 2016 -0400
-
- librbd: unify journal event callbacks into single interface
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit dbbcecf4a289ca36b734b7bda9530cc0a59f84ac)
-
-commit 41cf3d93356bde801c32dec4b7a21ae065295aa7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 13 16:28:50 2016 -0400
-
- journal: expose ability to retrieve partial tag list
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 277b6dd9f13a8390cbf7c9ac7a313813ecad4d27)
-
-commit 2f9e6412982826fe0712a0b98e004c405b60fac3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Sep 14 08:49:39 2016 -0400
-
- qa/workunits/rbd: fix remove mirrored image race conditions
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a0f65b968b350629dfad978c191fc878ca26d093)
-
-commit 2ec5e93806f8487bdc5f8df23740aab5738cde1f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 13 12:32:45 2016 -0400
-
- qa/workunits/rbd: new mirroring forced promotion test
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a43268a4a30c06233152d531cbf2550224fb8a15)
-
-commit 5d1d898e1132325cae7045dc764a533878d56e00
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 20 13:31:36 2016 -0400
-
- test/rbd: fix possible mock journal race conditions
-
- Fixes: http://tracker.ceph.com/issues/17317
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 471898392372ba4c404376410fb56f3af5287c80)
-
-commit 775a999e8bac9d0dc02cb40f0206b96c5864b8d1
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jul 6 12:59:25 2016 +0300
-
- qa/workunits/rbd: before removing image make sure it is not bootstrapped
-
- If an image is being bootstrapped, it implies that the rbd-mirror
- daemon currently has the image open. The removal API will prevent the
- removal of any image that is opened by another client.
-
- Works-around: http://tracker.ceph.com/issues/16555
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 9737a8d6cbaf1b79bbc6008249d39acbae883941)
-
-commit 3bbd8ba4282ea7f3fa286d0a1944e9e93d321365
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Sep 27 14:47:02 2016 -0400
-
- librbd: fix journal create compilation error
-
- The synchronous journal create method no longer exists on the master
- branch and the associated change to introduce an asynchronous journal
- creation state machine should be delayed to provide more testing time
- on the master branch before being backported to jewel.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 89c6618df89dc0d5d3eb1f855f6f93c72be75939
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 11 21:11:07 2016 -0400
-
- test: fixed unused function warnings in unittest_rbd_mirror
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3545d9ed19be8d3956f0db901ea9d3bb8b10d13d)
-
-commit ca94f25aa960bb352043a9d53eee361071d537da
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 11 20:48:27 2016 -0400
-
- rbd-mirror: prevent syncing to non-primary image after failover
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit beaef377d69f555277b706afff944a15086da28e)
-
-commit 7a434842ac2a2799b611aa87422009c244418922
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 8 23:45:46 2016 -0400
-
- rbd-mirror: demote/promote in same cluster results in split-brain
-
- Fixes: http://tracker.ceph.com/issues/16855
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a6901ca1a065419426b3ad704e27e43ba8d591b8)
-
-commit f8f3bbd7246d9a1d5a82f6b0b112f185323a5fb3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 11 19:39:21 2016 -0400
-
- librbd: normalize journal promotion/demotion events
-
- A non-primary image's commit possition won't accurately reflect
- the current demotion/promotion chain. Therefore, directly specify
- the predecessor for promotion events.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ac590e85a472533005cad73c82b2d61db161ab7a)
-
-commit 4baea6ace14bd834a3cb2c1d9d5202e94546e264
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 11 19:09:09 2016 -0400
-
- librbd: block RPC requests when demoting the image
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 8b195e1fc8fe70a0e5417934302d5831b1f8dfb3)
-
-commit 8ccdad6d9d09e0f09431df6d3ebb2fbed47040c6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 9 12:24:19 2016 -0400
-
- librbd: separate journal::TagData predecessor data into new struct
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 718befdae711141ef4a1e2e9f5e9aca97f1b5513)
-
-commit 13daaffb451e7187d5492a82bb85488c1bfe55d2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 8 20:57:45 2016 -0400
-
- rbd-mirror: include tag tid in bootstrap debug log messages
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 47d1e625006d554164f020e496a847735240ec95)
-
-commit d775680dc4eb53c08a692e746dd65c57a560496d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 8 10:39:01 2016 -0400
-
- qa/workunits/rbd: demote/promote image on same cluster
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e6aa18ea0df6dc4d1add597bc2d972c79699bf4c)
-
-commit f7ffbfa71d6f8c417b140ce434b7714cd0053b09
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Aug 10 13:46:46 2016 +0300
-
- rbd-mirror: option to automatically resync after journal client disconnect
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 77fd6a1c2016262d734b0bb5387e6b6a41232e8b)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
-
-commit 0b402390381dfbfcf4d3810f3179f90c4aa995ef
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jul 27 13:45:32 2016 +0300
-
- rbd-mirror: stop replay when client is disconnected
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 330dba00ba3153ba2862eef52714e0dceae05192)
-
-commit 80aa7e0b4fae6f71a34e28ad1225e3540f9606ed
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Aug 10 11:22:16 2016 +0300
-
- rbd-mirror: resync was possible only when image replayer start had succeeded
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 4bf6912f3c75560b89324fc29286028750f122c1)
-
-commit 170476e408308fad622063eddbd282a38a28ed89
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Jul 26 16:10:30 2016 +0300
-
- rbd-mirror: decode_client_meta should return false on error
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit cd5eb36e98f46a1d84bddeafa4e7dcad415aa4a2)
-
-commit 7382e1a5a2b801cdfcbf7cda109343c365d005f3
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Aug 3 14:19:51 2016 +0300
-
- rbd: new command to disconnect journal client
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit fc3ba54b3c101498a08a3f34ac8f7eab0152ad7c)
-
-commit d3ad2ff9dff192d93d2fbef82ec0ccd37809d2ca
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jul 27 14:06:42 2016 +0300
-
- librbd: optionally flag "laggy" journal clients disconnected
-
- Fixes: http://tracker.ceph.com/issues/14738
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit b8eafefba9f2221a0ce927568795cb1c3ac0fa9c)
-
-commit 4056e360117b3aacfba2ae98cd4ecb60e356730c
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jul 13 15:49:40 2016 +0300
-
- journal: allow to trim journal for "laggy" clients
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 0b8b1aaedc10f7f46e91bf6ad809414feb770c8d)
-
-commit 3aec576572066a4329488c0b4420fe863cbbeeb2
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jul 27 13:42:19 2016 +0300
-
- cls/journal: add async client_update_state method
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 58b8c66d5bfa60e6dd3ad2ec79360c2eca165c58)
-
-commit d66bb7a991affb8b77eb9440d7c8874cc0b3bbf4
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Mon Oct 3 14:43:25 2016 -0600
-
- build: include more files in "make dist" tarball
-
- Include all the documentation, qa, and CMakeLists.txt files in the "make
- dist" tarball.
-
- Kraken and newer releases will already do this. This change is
- restricted to releases that still use autotools.
-
- The purpose of this change is to make it easier to apply downstream
- patches on an unpacked upstream tarball, because often those patches are
- cherry-picks of commits that touch files under doc/, qa/, or
- CMakeLists.txt.
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit 9d1f756dfa1775338c2fa1cf6bfafd45b842b75f
-Merge: 59f0f4c 57f08fe
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 12:30:44 2016 +0200
-
- Merge pull request #11389 from jcsp/wip-17466-jewel
-
- jewel: mon: don't crash on invalid standby_for_fscid
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 59f0f4c7cc81b20fc584b8e6fff84887ec9c26dd
-Merge: b747903 c2d4239
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 12:30:25 2016 +0200
-
- Merge pull request #10997 from batrick/i17105-backport
-
- jewel: multimds: allow_multimds not required when max_mds is set in ceph.conf at startup
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit b7479037472c7ce633e2130fb6dbc302dbb3affb
-Merge: db2e822 cf211d7
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 12:30:03 2016 +0200
-
- Merge pull request #10958 from ukernel/jewel-16764
-
- jewel: client: fix shutdown with open inodes
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit db2e8224853dc344b71871317204f13a0a53d808
-Merge: 4769027 1bc047b
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 12:29:36 2016 +0200
-
- Merge pull request #10921 from jcsp/wip-client-lock-backport
-
- jewel: client: add missing client_lock for get_root
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 4769027f0c83cb22f25186356b56e86b49579b8b
-Merge: f49bac2 494687b
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 12:29:05 2016 +0200
-
- Merge pull request #11400 from ceph/wip-rbd-cli-jewel
-
- jewel: krbd-related CLI patches
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f49bac2cbbda6aefef676b03f6656a98ec390b87
-Merge: 2a348d2 5ab5e82
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Oct 11 11:03:40 2016 +0200
-
- Merge pull request #11171 from ceph/wip-rasize-doc-jewel
-
- jewel: doc: fix description for rsize and rasize
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3bb2a9ed9602b0d280a357f53bc90c6cf83ffe32
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Oct 10 11:57:03 2016 -0400
-
- librbd: ignore notify errors on missing image header
-
- The rename op on v1 images fails since the header no longer exists. In
- the general case, the removal of the header object will also fail the
- watcher which has its own recovery path.
-
- Fixes: http://tracker.ceph.com/issues/17549
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit fe3e2eafa087f81c9ab59f3fbc39600d6adaa9c2)
-
-commit 5173563fbfc2799cc2328468bb197d65a94b4d7a
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Sep 2 16:19:29 2016 +0800
-
- client: properly set inode number of created inode in replay request
-
- Fixes: http://tracker.ceph.com/issues/17172
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit e59385f16afc607ec700397b0bea5229ce69df30)
-
-commit 2c4e1c1cd1d01e51d5e4ad500d6b31832591d201
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Sep 6 13:16:04 2016 +0100
-
- mds: log path with CDir damage messages
-
- Previously you just got the inode number, which
- wasn't terribly useful for e.g. a missing fragment
- object, as you couldn't readily resolve the parent
- path.
-
- Fixes: http://tracker.ceph.com/issues/16973
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 439cd5e1b4725e594786785189a37184243828d9)
-
- Conflicts:
- src/mds/CDir.cc: the go_bad() prototype which is part of the
- context of the patch has changed.
-
-commit d52f190d449a2e68baed0659367795ebfb0dcb3d
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Sep 6 13:07:38 2016 +0100
-
- mds: s/used_ions/used_inos/
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit bd3645fb07714d43fb7bd3d66b7e34b33768a8e8)
-
-commit 494687b7f11d0c9ca56d96b6b4480de96847bec2
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri Oct 7 12:32:43 2016 +0200
-
- rbd: expose rbd unmap options
-
- Reuse rbd map -o infrastructure to expose rbd unmap options in
- a similar fashion. Currently it's just one bool option, but we may
- need more in the future.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 620f5e1455fdcb05cd3873c1e260141849829e35)
-
- Conflicts:
- doc/man/8/rbd.rst [ PR #9151 ("rbd: add methods to set and get
- snapshot limits") not in jewel ]
-
-commit 6b0226774e2f09f98751e6fa3b0125a960417cc0
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri Oct 7 11:14:16 2016 +0200
-
- rbd: fix up terminology in help texts
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit ba8f9ee791d55c4cf25ad751213ea6ba770b7434)
-
-commit 071bd4778547930d9aab9340dcabbb6d9ffdd890
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Mon Oct 3 14:09:11 2016 +0200
-
- rbd: recognize lock_on_read option
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit e857b7896527b676155d6e01c78567337dc33b1c)
-
-commit 7d0714e17557ad281bd92907e10462894a482ce9
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Tue Oct 4 10:21:36 2016 +0200
-
- doc: clarify rbd size units
-
- It wasn't clear from the man page that --size defaults to M.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit d38dc29ed588b8933da3b66e46e1f0dd4cbb2cf4)
-
- Conflicts:
- doc/man/8/rbd.rst [ PR #9066 ("rbd: introduce a simple bench
- for read") not in jewel ]
-
-commit ca8fc6fc8baae2e4da842e16e25b91d304702cb5
-Author: John Spray <john.spray@redhat.com>
-Date: Sat Jul 23 22:56:45 2016 +0100
-
- ceph-create-keys: fix existing-but-different case
-
- We just have to refrain from calling get-or-create
- if the named key already exists, to avoid potentially
- having an error when the default creation args don't
- match the key as it has already been created, such
- as on certain upgrades.
-
- Fixes: http://tracker.ceph.com/issues/16255
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 278196d86c52b0be3cb9c17ed7f8f3e3502a217a)
-
-commit 0a17741861faa1643bc338459397072268e469bd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Sep 20 18:07:56 2016 +0800
-
- client: fix readdir vs fragmentation race
-
- following sequence of events tigger the race
-
- client readdir frag 0* -> got item 'A'
- MDS merges frag 0* and frag 1*
- client send readdir request (frag 1*, offset 2, readdir_start 'A')
- MDS reply items (that are after item 'A') in frag *
-
- Fixes: http://tracker.ceph.com/issues/17286
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit feb63776d4f2b03ece189715fdd75da5cae2afc2)
-
-commit 3a79db10f259d66ca17c2152cf639a63f245505d
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Sep 14 18:22:01 2016 +0800
-
- mds: remove fail-safe queueing replay request
-
- MDSRank::queue_one_replay() does not create active request
- immediately, it just queues corresponding C_MDS_RetryMessage
- for execution. So the fail-safe code can queue an extra replay
- request. This can cause replay requests be processed out-of-order
-
- Fixes: http://tracker.ceph.com/issues/17271
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit d755a4a78242293dd3103bdd0748292df3034563)
-
-commit 10e603b1e3024c760cd5567dbbc73fbb3c1281f3
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Sep 21 21:57:25 2016 +0800
-
- client: fix segment fault in Client::_invalidate_kernel_dcache().
-
- when umounting, root can be NULL
-
- Fixes: http://tracker.ceph.com/issues/17253
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ddea9a5b78151c0abe834e4a9872f7cf5f918ebc)
-
-commit 3320da0adb346af15a5d50a45e0aea5ca234eb79
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Sep 19 15:18:24 2016 +0100
-
- mds: catch duplicates in DamageTable
-
- There was an implicit assumption in the code that callers
- wouldn't hit the notify_*damaged paths twice because they would
- have checked is_*_damaged paths first.
-
- However, that's not really true in all cases, e.g. scrub
- code isn't required to respect existing damage entries
- when trying to load a CDir.
-
- Simply fix this by having the DamageTable notify* functions
- check the key they're inserting doesn't already exist.
-
- Fixes: http://tracker.ceph.com/issues/17173
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit c9cfaef104e9aaefad55583d7e54f8b4665904b3)
-
-commit 5d0e2f8690b08418fc404dc43df7a3a16ac83309
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Sep 2 14:13:19 2016 -0400
-
- common: only call crypto::init once per CephContext
-
- Fixes: http://tracker.ceph.com/issues/17205
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 9dfc1537564c4ce65e4d0230a83f0d8d47503b16)
-
-commit 483d8c41a241aa917878284765aef2ba2ced0bb3
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Tue Jun 14 17:34:44 2016 +1000
-
- cephx: Fix multiple segfaults due to attempts to encrypt or decrypt
- an empty secret and a null CryptoKeyHandler
-
- Fixes: http://tracker.ceph.com/issues/16266
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 009e777fbd18602e5fd66f97bdad95e977e6fecc)
-
-commit 5ae4f316b2cf37ce5d13b1ced4b65962c5583882
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 20 17:39:24 2016 +0800
-
- os/filestore/FileJournal: fail out if FileJournal is not block device or regular file
-
- otherwise JournalingFileStore will assert when deleting FileJournal
- which still has the non block/regular file opened.
-
- Fixes: http://tracker.ceph.com/issues/17307
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 7431eec6fd24cd08ca6c76a9893e3f6e8c63a916)
-
-commit 2a348d23e5a047bf6a9c80140cf31ba2d6d4113f
-Merge: da04ac0 29a8701
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 20:30:54 2016 +0200
-
- Merge pull request #10812 from SUSE/wip-17094-jewel
-
- jewel: build/ops: ceph-osd-prestart.sh fails confusingly when data directory does not exist
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit da04ac055188e2e84d21b29feee3069bb95e5ebe
-Merge: a80aacf 1a7faefd
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Oct 10 10:46:33 2016 -0400
-
- Merge pull request #11335 from linuxbox2/jewel-nfs
-
- jewel: rgw: nfs backports
-
-commit a80aacf048c2809bc2b7fd7e2f41e12b5470c5ab
-Merge: e795450 a10d700
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Oct 10 10:45:07 2016 -0400
-
- Merge pull request #11332 from linuxbox2/jewel-ldap
-
- jewel: rgw: combined LDAP backports
-
-commit c2d4239331e397e6a48b1ee7a4c69dad0c951f94
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Mon Aug 29 16:25:10 2016 -0400
-
- mds: remove max_mds config option
-
- It is now required that all changes to max_mds use the run-time `ceph fs
- set max_mds` command. The rationale for this change is that it is
- confusing to have a configuration for max_mds which is only observed at
- file system creation.
-
- Fixes: http://tracker.ceph.com/issues/17105
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 52f4e545e0ce4782d5f2239d31080d392c12eba2)
-
-commit e7954500dab4f3e3bead824ba0da66105940e36a
-Merge: eac384a 0b93a9a
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 10 08:54:02 2016 -0500
-
- Merge pull request #10761 from dachary/wip-16377-jewel
-
- jewel: msgr/async: Messenger thread long time lock hold risk
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit eac384a5a158191e3276940d340ee2fe0b4b4b73
-Merge: c21e1de d94e5bc
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Oct 10 08:52:59 2016 -0500
-
- Merge pull request #10278 from SUSE/wip-16667-jewel
-
- jewel: incorrect value of CINIT_FLAG_DEFER_DROP_PRIVILEGES
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 57f08fe72269b573d95791b44f25de044d40fba6
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Sep 30 21:57:35 2016 +0100
-
- mds: make mds_role_t member order match constructor
-
- Previously this was mildy confusing.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 63d711d4e9decd2940c55aa697e6a588593da23a)
-
-commit c19326cef28ca3764340434cacc1f77e5899b887
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Oct 3 07:33:27 2016 +0100
-
- mon: don't crash on invalid standby_for_fscid
-
- Fixes: http://tracker.ceph.com/issues/17466
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 92fdcf36bd7d57b97f5d887d0370a181860e388c)
-
-commit cbd9a39e83258a7fa98d3d33aea652def17d3906
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Oct 3 07:40:12 2016 +0100
-
- messages: fix MMDSBeacon constructor
-
- This was leaving garbage in some fields during decode
- when decoding messages with an older version.
-
- Fixes: http://tracker.ceph.com/issues/17466
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit f1fb667dfd21cd241f4f45ce9ef3f8393d114c60)
-
-commit c21e1de83294fea247bd2a458143639544f91f6d
-Merge: 8a84877 f7d23d5
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 12:26:02 2016 +0200
-
- Merge pull request #10794 from SUSE/wip-17082-jewel
-
- jewel: disable LTTng-UST in openSUSE builds
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8a8487711339596f2f22da572e59a194c6166c69
-Merge: 4c526a4 47605a2
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 12:21:59 2016 +0200
-
- Merge pull request #9739 from vumrao/wip-vumrao-16337
-
- jewel: osd: add peer_addr in heartbeat_check log message
-
- Reviewed-by: Samuel Just <sjust@redhat.com>
-
-commit 4c526a4211f29a5151c5d79d3f0aa221f3d24221
-Merge: c362c71 5ffee35
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 12:20:30 2016 +0200
-
- Merge pull request #9388 from vumrao/wip-vumrao-16069
-
- jewel: mon: Display full flag in ceph status if full flag is set
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c362c71ef34b136112852cce7a769a8bac30626c
-Merge: f707d1d 79e2acb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 12:03:51 2016 +0200
-
- Merge pull request #10496 from Abhishekvrshny/wip-16583-jewel
-
- jewel: mon crash: crush/CrushWrapper.h: 940: FAILED assert(successful_detach)
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit f707d1d4f1cae66927e630da9a4524d2af6c9a11
-Merge: 84adafe f337a07
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Oct 10 09:31:29 2016 +0200
-
- Merge pull request #11018 from ceph/wip-17223-jewel
-
- jewel: krbd qa scripts and concurrent.sh test fix
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cca589fdb18147ea61e79b8d98b886ef30cd65d5
-Author: Vladislav Odintsov <odivlad@gmail.com>
-Date: Mon Jul 4 15:29:22 2016 +0300
-
- init-radosgw: do not use systemd-run in sysvinit
-
- `systemd-run` logic in initscripts was introduced because of ticket
- http://tracker.ceph.com/issues/7627.
-
- If we have systemd-based operating system, we should use systemd unit files
- from systemd directory to start/stop ceph daemons.
- Otherwise, `daemon()` from `/etc/init.d/functions` on systemd distro starts service
- in `system.slice` and everything works well.
-
- `systemd-run` can not be run on non-systemd distros, so it's not needed
- on SysV systems.
-
- also, ceph-disk is now able to run the "systemctl"
- to enable and start the ceph-osd, and ceph-deploy is also now
- playing well with systemd when it comes to ceph-mon and ceph-mds
-
- Fixes: http://tracker.ceph.com/issues/16440
-
- Signed-off-by: Vladislav Odintsov <odivlad@gmail.com>
- (cherry picked from commit 1fd4f92a025e80092b8d08d9b7da2e0b73a52f0f)
-
-commit 83a91baff05f03f907fb80702ae1c68194b5308b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 30 17:36:16 2016 -0700
-
- rgw: forward input data when forwarding set_bucket_version to master
-
- Fixes: http://tracker.ceph.com/issues/16494
-
- Needed to keep input data around to be forwarded correctly. Also, master
- does not send any data back, so don't try to parse anything.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1eec00bef1e5540bf3e31d1f8fb1645eb64b1e62)
-
-commit 0986aff2aafdf64847a7e9608abb84edaea59eb1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jun 30 17:34:38 2016 -0700
-
- rgw: set args when rebuilding req_info
-
- Was missing args, so it didn't sign requests with subresources
- correctly when forwarding.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit dd1068c54e50671d8904b99189823418a5a5bc07)
-
-commit bb81f9dd83da76704a5b6ba3e718fef3ac918290
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 12 12:39:45 2016 -0400
-
- librbd: permit disabling journaling if in corrupt state
-
- Fixes: http://tracker.ceph.com/issues/16740
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6afb884d755697528684fad54dbb69b15d4386f1)
-
-commit b14d7f148c8f64d2e2da533fe2b35661536810c4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 12 12:21:02 2016 -0400
-
- librbd: new journal policy to disable initializing the journal
-
- This will be used in the case where the journal is being disabled.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 73e4c65c809a1e4161229f49285b21b2cfc623ca)
-
- Conflicts:
- src/librbd/Makefile.am (no CreateRequest.h or RemoveRequest.h in jewel)
-
-commit 77ea51138f05b4fa1c603ade0e62f961ec708441
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Wed Aug 10 14:11:43 2016 +0800
-
- doc/radosgw: fix description of response elements 'Part'
-
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit 9c3fe46a7eb89aedc52582737c200e58d63738a5)
-
-commit 1a7faefd035aa8f31ab11ddfe1046989d0e69aac
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Sep 21 17:18:20 2016 -0400
-
- rgw_file: pre-assign times
-
- Set unix timestamps based on RGW values for creation, modification
- time for buckets, objects in stat requests. Regard any saved
- value of these in unix attributes as an overlay.
-
- Fixes: http://tracker.ceph.com/issues/17367
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 969750e96380859a350e25015bc8cbf9bdf88512)
-
- Fixes: http://tracker.ceph.com/issues/17394
-
-commit 0c932b9078a249bcb9dbb8c425788787f1cd48f2
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Sep 20 17:32:03 2016 -0400
-
- rgw_file: fix set_attrs operation
-
- The effective part of this change is to always set a value
- for RGW_ATTR_UNIX_KEY1 (because it is expected later).
-
- Secondarily, do not pass the address of the to-set attributes
- buffer::list as remove attrs--this is confusing.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 08afb40b2812270a6af3cd1965e8c03c10392ace)
-
- Fixes: http://tracker.ceph.com/issues/17393
-
-commit 0de33909012f2a8305ff2038906669c78070cbcd
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Apr 14 19:18:37 2016 -0400
-
- rgw_file: implement rgw_setattr
-
- Introduce a new RGWSetattrs RGWOp descendant, to create or replace
- sets of attrs on buckets or objects.
-
- This version of the change uses the standard RGWRADOS::set_attrs op
- (we want attribute changes to (e.g.) sync with other changes).
-
- Previous versions of this changed incorrectly masked the values
- of st->st_ino in RGWFileHandle::stat(), now fixed.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4de1c3c260265f821ebee842d49cb35bf49d8e4e)
-
- Fixes: http://tracker.ceph.com/issues/17311
- Fixes: http://tracker.ceph.com/issues/17332
-
-commit 00f3fbe7dc940d8c9176a8da35fccd42e6ddc10f
-Author: zhangweibing <zhangweibing@unitedstack.com>
-Date: Fri Aug 26 10:49:48 2016 +0800
-
- rgw: remove duplicated calls to getattr
-
- Signed-off-by: Weibing Zhang <zhangweibing@unitedstack.com>
- (cherry picked from commit 87b550ed2fba472d4ef2e1f771bb5f9fd248804f)
-
- Fixes: http://tracker.ceph.com/issues/17327
-
-commit c53992856d6058b71bed55337c3830dbaefb6823
-Author: Min Chen <chenmin@xsky.com>
-Date: Fri Aug 19 01:02:50 2016 -0400
-
- rgw: rgw file fix bug of rgw_lookup can not exact match file name
-
- bug reproduce steps:
- in nfs-client (connect to nfs-ganesha server):
- 1. mv file file.rename
- 2. stat file // get file attrs, not return with -ENOENT
-
- the reason is that:
- RGWStatLeafRequest does not exact match the file name,
- just take file name as a prefix filter
-
- Signed-off-by: Min Chen <chenmin@xsky.com>
- (cherry picked from commit 9d813bafc8e197507457c58ab4f365ccdb7f3589)
-
- Fixes: http://tracker.ceph.com/issues/17326
-
-commit 9f5c7377143c56b169a62a96dba5c6ff800e4d5c
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Tue Aug 23 12:51:10 2016 +0800
-
- rgw: fix the wrong return value
-
- Here `parent->readdir` will return negative numbers When there is an error.
- so we should just return it.
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit c979be7810793534715c24c6a9f7c8b0ed31de8d)
-
- Fixes: http://tracker.ceph.com/issues/17325
-
-commit cf1353c24917ecb9056272da7f6b3e73bba11fa8
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 17 10:28:48 2016 -0400
-
- rgw_file: restore local definition of RGWLibFS gc interval
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 31936caa09b46e86700faad969adfa9d43176206)
-
- Fixes: http://tracker.ceph.com/issues/17323
-
-commit 7a648ed991630541b5875a329820b67b269af570
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 23 16:50:42 2016 -0400
-
- rgw_file: explain semantics of RGWFileHandle::commit
-
- Add a comment explaining why the method currently returns 0
- unconditionally.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit b1da1354320cc5f69277b225a293a03cc2a5054f)
-
-commit 0135da74e2a08fccc2e2da9f1b7e55478bf79157
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 23 15:57:06 2016 -0400
-
- ceph_timer: prefer using directive to typedef
-
- This change replaces the existing member-hook typedef as well as
- the new set-type typedefs, so committed separately.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit f7d4d418658d2091652033045abdb4bfbeb637aa)
-
-commit 2a9233f1fbff38c12d378d5b6528a7e576a62e3e
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 23 14:18:43 2016 -0400
-
- librgw: add API version defines for librgw and rgw_file
-
- This change borrows the major, minor+extra format used by libcephfs.
- The version numbering is starting at 1,1,0 on the theory that the
- implicit version at Jewel is 1,0,0.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 355ccc5ded7f0b459bca24bc8b504b41807c583d)
-
-commit 2d6966f7e1f4c6dab12f7500746f1021b52d91af
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 17 11:24:01 2016 -0400
-
- rgw file: allow RGWLibFS::write_completion_interval_s to be set in conf
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 70dad0fba561edaf0bb4e746e29b92a4e9b014b2)
-
-commit 7071845f2e477648c322f0072e54490c47ed4154
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 17 11:00:22 2016 -0400
-
- rgw_file: log on write completion events at level 10
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit d1e512d8c0e20df5a96ccb5f775a7a2ca123efbe)
-
-commit 95310c7f960eead2e22bc02c0e9d94ec863cafd6
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 17 10:52:58 2016 -0400
-
- rgw_file: add RGW_OPEN_FLAG_STATELESS as a synonym for V3
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit da596eb3af69c2cdf191893eb44a8947662634cf)
-
-commit 697d4ef7837061bb6b5ebaad07ae86836cdbe126
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 16 18:17:53 2016 -0400
-
- rgw_file: implement stateless write completion timer
-
- Implements a temporal mechanism to enforce write completion for setups
- which lack open state tracking (e.g., NFS3).
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 2c83ed4bd43fcb5d5497151a157b1dc08022fed9)
-
-commit 4a31509c5ae7e40dd1538b2075287d8cc202f159
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Aug 12 16:52:51 2016 -0400
-
- rgw_file: fix/update rgw_create flag arguments
-
- Allow passing POSIX open flags as well as api call flags. Needed
- for NFS3 support.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 2d0ea2b4649e76cbbb87f44c57754d7ea9c46dce)
-
-commit 73f9a0b147914f3ef4f7b69a3b57899034406bca
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Aug 12 10:39:21 2016 -0400
-
- rgw_file: fix/update rgw_open flag arguments
-
- Allow passing POSIX open flags as well as api call flags. Needed
- for NFS3 support.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit ada29f7f8323be2301588941bcd5c60190b32a4b)
-
-commit 4ceb70eba4d777ecc34cce9d1d10002807a6e770
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 9 16:49:41 2016 -0400
-
- rgw file: remove busy-wait in RGWLibFS::gc()
-
- This is a background thread. However, CPU is wasted.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit ca33241286f52d849dbde8092507131b8b1108cc)
-
- Fixes: http://tracker.ceph.com/issues/17321
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 8e1515b068991567136042fb11384fb0fd0620fe
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 9 14:23:00 2016 -0400
-
- rgw_file: unlock() must precede out label
-
- In lookup_handle(...).
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 9f64f34e481278a683e962b17c7aa811005783a8)
-
-commit 88eeaa967494ba6b536d493d06bc4bdbe92e452f
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Aug 7 18:39:33 2016 -0400
-
- rgw nfs: fix write continuations
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit b4d079f2b5a4d49b2ba7576b272a2a3f3b0d66c8)
-
-commit f0b1799910564706766fccb8ec2b1c2c27a10467
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Aug 5 10:03:33 2016 -0400
-
- rgw nfs: don't leak fh->mtx in lookup_handle()
-
- This change fixes a serious latent locking problem, noticed after
- updating the ganesha/rgw driver invalidation after renames.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit d74d46170d7104a6553674f111bbdbe3a116cf54)
-
-commit f16ac90f9c097352de2763215f0c83812503e815
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Aug 8 10:18:35 2016 -0400
-
- rgw file: refuse to rename directories
-
- The representation of paths as an aggregate involving any
- number of objects argues against ever permitting such
- operations.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 297220fd2a96c0cf34701127b8cf724e24e6865f)
-
-commit 23b749f93ed9a7de93aabc871df0adeeebac4e0f
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 3 13:53:15 2016 -0400
-
- rgw_file: refuse ops on deleted targets
-
- Detect these illegal cases, as they are indicate various incorrect
- behaviors/bugs.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 34224ecd8360e03603a1a5dd1c1c9f0a31f1c1d5)
-
-commit 345de45cbf5932174222b733bf71820e818fbfd5
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Apr 14 19:18:37 2016 -0400
-
- rgw_file: implement rgw_setattr
-
- Introduce a new RGWSetattrs RGWOp descendant, to create or replace
- sets of attrs on buckets or objects.
-
- This version of the change uses the standard RGWRADOS::set_attrs op
- (we want attribute changes to (e.g.) sync with other changes).
-
- Previous versions of this changed incorrectly masked the values
- of st->st_ino in RGWFileHandle::stat(), now fixed.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4de1c3c260265f821ebee842d49cb35bf49d8e4e)
-
-commit 88b5027850618f14c562d07ba25a664fd4c22771
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Jul 13 10:16:59 2016 -0400
-
- rgw_file: refuse partial, out-of-order writes
-
- A single file object may be opened only once per gateway
- instance, and writes to that object must be complete, and in-order.
- Enforce this.
-
- If an invalid write is seen, deletes the current write transaction.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 12aded803e24539266ce9698c678088e2158a82a)
-
-commit be243695c1309acfc293f7080cf213edbc558d14
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Jul 12 17:43:43 2016 -0400
-
- rgw_file: fix rename cases and unify unlink
-
- Rather ordinary rename cases failed in the unlink step. Fix this,
- unifying the unlink path while at it.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 05af1fbb870a905ea8903594dfc607d346c9dd31)
-
-commit a10d700697d8f432aca2b1bff6766e2478ac060d
-Author: Harald Klein <hari@vt100.at>
-Date: Wed Aug 31 17:41:26 2016 +0200
-
- add ldap auth custom search filter feature patch - http://tracker.ceph.com/issues/17185
-
- Signed-off-by: Harald Klein <hari@vt100.at>
- (cherry picked from commit c935885ae9d5fd413495448a0b0e5fce899c9b73)
-
- Fixes: http://tracker.ceph.com/issues/17185
-
-commit 7486638563c1eeda7781dcf58b0c536d11f17a0b
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Aug 18 10:54:16 2016 -0400
-
- rgw ldap: protect rgw::from_base64 from non-base64 input
-
- Also adds unit tests for:
- 1. empty output from from_base64 (turns out to be harmless)
- 2. random and specific non-base64 and sort strings
- (modified from upstream to avoid alteration of src/test/test_rgw_token.cc)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 0a4c91ec7652d02673a9b156cd16144d778a3844)
-
- Fixes: http://tracker.ceph.com/issues/17324
-
-commit 68788fb898118c826b136b7cd7f60265a6dfef79
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Aug 5 10:02:03 2016 -0400
-
- rgw ldap: enforce simple_bind w/LDAPv3
-
- Found by Harald Klein <hklein@redhat.com>.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 08d54291435e4d1cb5e02cda3951bc6e8510b0e2)
-
-commit 871caeb5011b06d54bd41370ee20ba38e84c9ac0
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Aug 1 17:36:17 2016 -0400
-
- rgw: add reinit/rebind logic (ldap)
-
- Gracefully handle stale LDAP connections by rebinding--verified
- with MS AD. Rebind is attempted once per request until rebound--
- not worse than misconfiguring the environment.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 9b8fccf68789ba5c5986766c544b23aeada0e87e)
-
-commit de0c4e1281b5b67af1459aa11fbb292a0cae2ab2
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Aug 16 16:58:51 2016 -0400
-
- rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR
-
- Fixes: http://tracker.ceph.com/issues/17073
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e77a523f1d74768f4fef58c05cc167705d219036)
-
-commit 8833c64459edb77fa0d394b2eda2f79cd0f6dba9
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Oct 3 10:34:51 2016 -0700
-
- PG: block writes and scan log for scrub using inclusive upper bound
-
- See comment in commit.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 0e2338e5ec5441e5fc173a7af69343c775b02a13
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Oct 3 14:34:19 2016 -0700
-
- osd_types,PG: force the map used in _scrub to be sorted correctly
-
- Previously, ScrubMap::objects was always sorted bitwise (nibblewise
- before the comparator change was made. It didn't matter because we
- always scrubbed whole hash values. Now, we need the objects in the
- objectstore ordering because we may be missing objects at the tail of
- the scanned range and need them to show up at the tail of the
- ScrubMap::objects mapping. We don't need to do anything else to handle
- the upgrade process since the actual objects *in* the map were
- determined by the objectstore ordering.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 6d410e97232afdad4f226151333b209d8b50f4ed)
-
-commit 16f9d95204f3eca6908ae241e5bacc48b006cb23
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Sep 28 13:24:56 2016 -0700
-
- src/osd: relax the requirement that we scrub a whole hash value
-
- Previously, we needed to scrub all objects in clones in a single
- hash value mainly to ensure that _scrub had access to all clones
- of a single object at the same time. Instead, just avoid letting
- head or snapdir be a boundary (see the comment in the commit
- for details).
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 27bdc8ce6d0a7d8ae47f29540f281ba417e16b4c)
-
-commit 2176c847d588fbec654653db48c4ad156a87aac2
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Sep 28 13:25:42 2016 -0700
-
- hobject: clarify is_snap and has_snapset for max
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit a2c27c9423b43b8c5633fb0af95f28b0de94b365)
-
-commit 84adafe3fe6f57d49b4bdf1e036e1b686e6b0f55
-Merge: 5246f81 fb36dd0
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Sep 30 14:02:43 2016 -0400
-
- Merge pull request #10656 from dachary/wip-16564-jewel
-
- jewel: cors auto memleak
-
-commit 35660d1aabd8b27bf3ba71e50d00ba1cf1cecf00
-Author: Igor Podoski <igor.podoski@ts.fujitsu.com>
-Date: Wed Sep 14 07:36:43 2016 -0400
-
- mon: OSDMonitor: Missing nearfull flag set
-
- Output from 'ceph -s -f json-pretty' wans't showing nearfull flag set.
-
- Signed-off-by: Igor Podoski <igor.podoski@ts.fujitsu.com>
- (cherry picked from commit 754887b575795ef96cda095f7f0d8c898e20f00f)
-
-commit 5246f8135124dd49466268ead3c8c10d241c94f9
-Merge: 9c464a5 3cb0a5e
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Sep 29 15:54:05 2016 -0700
-
- Merge pull request #11252 from ceph/wip-offline-split-jewel
-
- ceph-objectstore-tool: add a way to split filestore directories offline
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 9c464a55c8ffe7278450c88cc208f2f2e7bce1a0
-Merge: 085e9e3 457d78f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 11:34:44 2016 -0700
-
- Merge pull request #10866 from dachary/wip-17122-jewel
-
- jewel: COPY broke multipart files uploaded under dumpling
-
-commit 085e9e369c5c6fbe48f888009e3997d86dcaf968
-Merge: cb46489 23d73dc
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 11:32:09 2016 -0700
-
- Merge pull request #10890 from dachary/wip-17140-jewel
-
- jewel: rgw: period commit loses zonegroup changes: region_map converted repeatedly
-
-commit cb46489b92b14c5722368e88a4c66712ecc1623d
-Merge: a0fce63 cefd6f5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 10:51:09 2016 -0700
-
- Merge pull request #11021 from cbodley/wip-16794
-
- jewel: rgw: back off bucket sync on failures, don't store marker
-
-commit a0fce6302013b2e9ddad8466d7ab34c370d3786e
-Merge: 4e61538 92581a3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 10:49:28 2016 -0700
-
- Merge pull request #10657 from dachary/wip-16792-jewel
-
- jewel: metadata sync can skip markers for failed/incomplete entries
-
-commit 3cb0a5e0b0517701ad3b44bdf6d4b60d6a51e8ee
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Fri Aug 5 11:45:00 2016 -0700
-
- ceph-objectstore-tool: add a way to split filestore directories offline
-
- Use the usual split code, and split each dir that meets the
- usual split criteria.
-
- This can be run with lower than usual split settings, to avoid costly
- online splits. To make sure the directories are not merged again, use
- a load merge threshold (e.g. filestore merge threshold = 1), and
- adjust the split multiplier accordingly.
-
- Fixes: http://tracker.ceph.com/issues/17220
- Signed-off-by: Josh Durgin <jdurgin@redhat.com>
- (cherry picked from commit e7b0428e0e8d8f5459311dc698d94a3ac4f04684)
-
- Conflicts:
- src/os/filestore/FileStore.cc
- src/tools/ceph_objectstore_tool.cc
- (trivial resolution)
-
-commit de672a09f1e2b29de1e0e6e15d26be99315c41b9
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Aug 5 11:14:53 2016 +0200
-
- logrotate: Run as root/ceph
-
- Currently, we run the logrotate scripts as ceph/ceph but that way we
- cannot rotate the scripts created by qemu (they are root/ceph and 644).
- The original su line was introduced in commit 73d7bed9 because logrotate
- complained that the directory was writable by a non-root group and it
- needed a su line to supress that error. This way, we keep the group
- settings and we can access and rotate the qemu logs as well.
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
-
-commit 4e61538d9f1b372f28e61ad94c368c782be09d92
-Merge: ecc2377 e72e7a2
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Sep 27 15:37:17 2016 -0500
-
- Merge pull request #10888 from dachary/wip-17062-jewel
-
- jewel: tests: fix TestClsRbd.mirror_image failure in upgrade:jewel-x-master-distro-basic-vps
-
-commit 9cb45e11ec392da7c22578539b99619bdbf37e35
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Tue May 10 16:44:44 2016 +1000
-
- log: Log.cc: Assign LOG_INFO priority to syslog calls
-
- LOG_DEBUG prio messages are not logged by a default syslog
- configuration so log at LOG_INFO instead.
-
- Fixes: http://tracker.ceph.com/issues/15808
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 3ab5a660a45506d6c4c41bfeb5babdf188e62b3d)
-
-commit 165e5abdbf6311974d4001e43982b83d06f9e0cc
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Fri Apr 1 16:55:36 2016 +0530
-
- librados: modify Pipe::connect() to return the error code
-
- Fixes: http://tracker.ceph.com/issues/15308
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit cad38dca0c90fb2ee4b589f336f8272122f50ad6)
-
-commit 5ab5e8268174bd34a095a1e96a1a969ad9e3531b
-Author: Andreas Gerstmayr <andreas.gerstmayr@gmail.com>
-Date: Thu Sep 15 22:02:23 2016 +0200
-
- doc: fix description for rsize and rasize
-
- Signed-off-by: Andreas Gerstmayr <andreas.gerstmayr@gmail.com>
- (cherry picked from commit a004254a02cafdee848a382f893f89c3c5a9845a)
-
-commit c94244d3b132b6cf1f8ad309644cf48739282f04
-Author: Jelle vd Kooij <vdkooij.jelle@gmail.com>
-Date: Thu Sep 1 00:42:34 2016 +0200
-
- Add Install section to systemd rbdmap.service file
-
- Signed-off-by: Jelle vd Kooij <vdkooij.jelle@gmail.com>
- (cherry picked from commit 57b6f656e17124a5ab4cd1400840d9c7c87a3cc3)
-
-commit e2ce8576f547b1e073c169ef331c7063319d9783
-Author: tserlin <tserlin@redhat.com>
-Date: Mon Sep 19 14:40:12 2016 -0400
-
- Add two options to radosgw-admin.rst manpage
-
- Add '--job-id' and '--max-concurrent-ios' to Orphan Search Options
-
- Fixes: http://tracker.ceph.com/issues/17281
- Signed-off-by: Thomas Serlin <tserlin@redhat.com>
- (cherry picked from commit 697f30d86f49b73c981c06375ab2937570b1db01)
-
-commit 4e66f9e9d1179204a6fdf08e43608a852d2b7fd3
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Sep 15 12:56:39 2016 -0600
-
- radosgw-admin: add "--orphan-stale-secs" to --help
-
- The radosgw-admin --help did not include the description of the
- `--orphan-stale-secs` option of the `orphans find` command. The option
- sets the number of seconds to wait before declaring an object to be an
- orphan.
-
- Fixes: http://tracker.ceph.com/issues/17280
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 354059ae43b4f4cc797da1669715399cd96a4738)
-
-commit bfa90a152867e0277ae05c64b6bdc429b659b9a5
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Thu Sep 15 11:40:14 2016 -0600
-
- doc: add "--orphan-stale-secs" to radosgw-admin(8)
-
- The radosgw-admin(8) manual page did not include the description of the
- `--orphan-stale-secs` option of the `orphans find` command. The option sets
- the number of seconds to wait before declaring an object to be an
- orphan.
-
- Fixes: http://tracker.ceph.com/issues/17280
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit a676c516069cc448591018ecf4f7d1f7f7bc3bfd)
-
-commit cefd6f51068df3ed04c755b1167dd146b85a0741
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 20 12:59:50 2016 -0700
-
- rgw: fix collection of object sync errors
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit aacc31f72cef6f151459e4a0543850edeeaf1938)
-
-commit aa369817c9bf10cffa420bfb88a27957407fb625
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 20 12:43:48 2016 -0700
-
- rgw: fix marker tracker completion handling
-
- Was not tracking high markers correctly. Could only work if there was a single
- hole in the completion range. Just keep a map of all the complete entries.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f5801c726efdc2f3067a071e6bb5ac83fd0cd147)
-
-commit bce19a39b6f6ff23b6373f82ed2e6e12d65a77ef
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 20 12:42:52 2016 -0700
-
- rgw: collect() stops if error encoutered
-
- and returns true if needed to be called again
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 5528932e4c327a0fb0ce34a676eb59707a575325)
-
-commit f82b59363d12e38446b4f06f554b932a3cbdb1fb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Jul 19 15:32:03 2016 -0700
-
- rgw: back off bucket sync on failures, don't store marker
-
- Fixes: http://tracker.ceph.com/issues/16742
-
- If we fail on any single entry in bucket, skip updating the marker tracker
- so that next time we'll go over that entry, and back off. This will trigger
- a report to the data sync error repo and eventually a retry on the failing
- object.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1f3fec807043fd313ef7c66ff48f18b82c8bfa66)
-
-commit f337a0720713329b5305ddd9e5c18e8d2b11b475
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri Jun 3 17:24:48 2016 +0200
-
- krbd: don't segfault if images are unmapped concurrently
-
- "rbd map c" can die from a NULL dereference on any of this_pool,
- this_image or this_snap in wait_for_udev_add():
-
- <image a is mapped>
- rbd map c
- rbd map b
- rbd unmap a
- rbd unmap b
-
- However unlikely, this segfault is triggered by the rbd/concurrent.sh
- workunit on a regular basis.
-
- Similarly, "rbd showmapped" can die if an image to be listed is
- unmapped.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 2bfecb1c0a0b2a314a5d137e6ca2cccd9ddc9b54)
-
-commit 2399d4ae54780cb18c313a8da79b697a70a87146
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri May 13 17:57:12 2016 +0200
-
- qa: rbd/simple_big.sh: drop extraneous sudo
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 6643f4d9723e5d9c5195680ac9abb9915ef42a56)
-
-commit 472cb29c5712c4fbbeaef26cdfddc1afd5f2945d
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Fri May 13 15:05:53 2016 +0200
-
- qa: rbd/concurrent.sh: suppress rbd map output
-
- rbd_map_image() echoes the id of the image and is used in command
- substitution:
-
- id=$(rbd_map_image "${image}")
-
- Output from rbd map isn't consumed and clobbers the return.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit a7d4189587e343a581660f1a118f6667c26e5bd4)
-
-commit 667d42aad7e19e36200ee7cd979efdd19154876a
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Thu May 12 15:07:12 2016 +0200
-
- qa: rbd: don't modprobe, chown sysfs files or udevadm settle
-
- This is a followup to 38a572011dbb ("qa: rbd/map-snapshot-io.sh: don't
- chown sysfs files") for the rest of the workunits:
-
- - /sys/bus/rbd/add_single_major is used if present, so chown'ing
- /sys/bus/rbd/add doesn't help. Use sudo on rbd map instead.
-
- - Don't modprobe or udevadm settle - rbd CLI tool takes care of that.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 6bddef8ecff97f732bf707d9ba6d2386bc147f5a)
-
-commit 866c3e594b754d10bf960375f8498ba573c531dd
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Wed May 11 17:26:39 2016 +0200
-
- qa: rbd/map-snapshot-io.sh: don't chown sysfs files
-
- /sys/bus/rbd/add_single_major is used if present, so chown'ing
- /sys/bus/rbd/add doesn't help. Use sudo on rbd map instead.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 38a572011dbbf8298cb7ba8ebf43909967eec689)
-
-commit cf211d7dc2eef46cb409b425caa72aac1b24bd7c
-Author: John Spray <john.spray@redhat.com>
-Date: Sun Jul 24 17:19:55 2016 +0100
-
- client: fix shutdown with open inodes
-
- This piece of code was dereferencing an invalid
- iterator (invalidated by call to erase())
-
- Fixes: http://tracker.ceph.com/issues/16764
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit d642b4faec3266f609e4871ccdccdcd73707dc23)
-
-commit 1bc047b1c6ccc1a1757c97e52da5e4db5bc8f801
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Wed Jun 29 15:45:30 2016 -0400
-
- client: add missing client_lock for get_root
-
- A segmentation fault was observed in a recent test failure
- (test_client_cache_size) [1]. An analysis of the core dump revealed that the
- client->root inode was NULL. The client log [2] showed that the root inode was
- deleted prior to the segfault:
-
- 2016-06-27 14:24:13.358500 7fe75cff9700 20 client.4161 _ll_put 0x7fe76000ba40 100000003e9 1 -> 0
- 2016-06-27 14:24:13.358502 7fe75cff9700 10 client.4161 put_inode on 100000003e9.head(faked_ino=0 ref=1 ll_ref=0 cap_refs={} open={} mode=41777 size=0/0 mtime=2016-06-27 14:24:10.700562 caps=pAsLsXsFs(0=pAsLsXsFs) 0x7fe76000ba40)
- 2016-06-27 14:24:13.358513 7fe75cff9700 15 inode.put on 0x7fe76000ba40 100000003e9.head now 0
- 2016-06-27 14:24:13.358515 7fe75cff9700 10 client.4161 remove_cap mds.0 on 100000003e9.head(faked_ino=0 ref=0 ll_ref=0 cap_refs={} open={} mode=41777 size=0/0 mtime=2016-06-27 14:24:10.700562 caps=pAsLsXsFs(0=pAsLsXsFs) 0x7fe76000ba40)
- 2016-06-27 14:24:13.358538 7fe75cff9700 15 client.4161 remove_cap last one, closing snaprealm 0x7fe76000c1b0
- 2016-06-27 14:24:13.358544 7fe75cff9700 20 client.4161 put_snap_realm 1 0x7fe76000c1b0 1002 -> 1001
- 2016-06-27 14:24:13.358546 7fe75cff9700 10 client.4161 put_inode deleting 100000003e9.head(faked_ino=0 ref=0 ll_ref=0 cap_refs={} open={} mode=41777 size=0/0 mtime=2016-06-27 14:24:10.700562 caps=- 0x7fe76000ba40)
-
- After looking through the reference count inc/dec, I noticed this mismatched inc/dec:
-
- 2016-06-27 14:24:13.352622 7fe75dffb700 3 client.4161 ll_forget 100000003e9 1
- 2016-06-27 14:24:13.352601 7fe7767fc700 1 -- 172.21.15.58:0/3762258427 >> 172.21.15.57:6804/11121 conn(0x7fe789bf3b60 sd=20 :-1 s=STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH pgs=7 cs=1 l=0). == rx == mds.0 seq 1473 0x7fe764037a80 client_reply(???:470 = 0 (0) Success safe) v1
- 2016-06-27 14:24:13.352665 7fe75dffb700 20 client.4161 _ll_put 0x7fe76000ba40 100000003e9 1 -> 1
- 2016-06-27 14:24:13.352687 7fe75d7fa700 3 client.4161 ll_lookup 0x7fe76000ba40 testdir
- 2016-06-27 14:24:13.352699 7fe75d7fa700 20 client.4161 _lookup have dn testdir mds.-1 ttl 0.000000 seq 0
- 2016-06-27 14:24:13.352705 7fe75d7fa700 15 inode.get on 0x7fe760011da0 100000003ea.head now 537
- 2016-06-27 14:24:13.352693 7fe76effd700 1 -- 172.21.15.58:0/3762258427 <== mds.0 172.21.15.57:6804/11121 1473 ==== client_reply(???:470 = 0 (0) Success safe) v1 ==== 27+0+0 (3458149698 0 0) 0x7fe764037a80 con 0x7fe789bf3b60
- 2016-06-27 14:24:13.352708 7fe75d7fa700 10 client.4161 _lookup 100000003e9.head(faked_ino=0 ref=3 ll_ref=1 cap_refs={} open={} mode=41777 size=0/0 mtime=2016-06-27 14:24:10.700562 caps=pAsLsXsFs(0=pAsLsXsFs) 0x7fe76000ba40) testdir = 100000003ea.head(faked_ino=0 ref=537 ll_ref=999 cap_refs={} open={} mode=40755 size=0/0 mtime=2016-06-27 14:24:13.325297 caps=pAsLsXsFsx(0=pAsLsXsFsx) COMPLETE parents=0x7fe750001f50 0x7fe760011da0)
-
- This sequence of ll_forget/ll_lookup is repeated in this test several hundred times. This is the prior sequence (in one thread):
-
- 2016-06-27 14:24:13.324896 7fe75dffb700 3 client.4161 ll_forget 100000003e9 1
- 2016-06-27 14:24:13.324904 7fe75dffb700 20 client.4161 _ll_put 0x7fe76000ba40 100000003e9 1 -> 1
- 2016-06-27 14:24:13.324915 7fe75dffb700 3 client.4161 ll_lookup 0x7fe76000ba40 testdir
- 2016-06-27 14:24:13.324921 7fe75dffb700 20 client.4161 _lookup have dn testdir mds.-1 ttl 0.000000 seq 0
- 2016-06-27 14:24:13.324931 7fe75dffb700 15 inode.get on 0x7fe760011da0 100000003ea.head now 621
- 2016-06-27 14:24:13.324904 7fe7767fc700 1 -- 172.21.15.58:0/3762258427 >> 172.21.15.57:6804/11121 conn(0x7fe789bf3b60 sd=20 :-1 s=STATE_OPEN_MESSAGE_READ_FOOTER_AND_DISPATCH pgs=7 cs=1 l=0). == rx == mds.0 seq 1387 0x7fe764026720 client_reply(???:385 = 0 (0) Success safe) v1
- 2016-06-27 14:24:13.324934 7fe75dffb700 10 client.4161 _lookup 100000003e9.head(faked_ino=0 ref=3 ll_ref=2 cap_refs={} open={} mode=41777 size=0/0 mtime=2016-06-27 14:24:10.700562 caps=pAsLsXsFs(0=pAsLsXsFs) 0x7fe76000ba40) testdir = 100000003ea.head(faked_ino=0 ref=621 ll_ref=998 cap_refs={} open={} mode=40755 size=0/0 mtime=2016-06-27 14:24:13.321021 caps=pAsLsXsFsx(0=pAsLsXsFsx) COMPLETE parents=0x7fe750001f50 0x7fe760011da0)
-
- The key line is `_lookup 100000003e9.head(...)`. ll_ref=2 is the expected count
- after this sequence but, as we see at 14:24:13.352708, ll_ref=1.
-
- This racing behavior is not serialized by client_lock because
- Client::get_root() does not lock the client_lock. Additionally, this race is
- not easy to identify in the logs because Client::get_root() does not use
- Client::_ll_get to increment the reference, which hides the increments in the
- logs. Instead it directly increments the reference using Inode:ll_get().
-
- This commit adds the client_lock for Client::get_root() and
- Client::get_root_ino() (which may not strictly be necessary but can't hurt).
-
- [1] http://pulpito.ceph.com/pdonnell-2016-06-27_06:54:23-fs-wip-pdonnell-i16164---basic-smithi/280361/
- [2] http://qa-proxy.ceph.com/teuthology/pdonnell-2016-06-27_06:54:23-fs-wip-pdonnell-i16164---basic-smithi/280361/remote/smithi058/log/ceph-client.0.23448.log.gz
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 208e3b6fd58237b309aae15b18dcd82672b133af)
-
-commit 086f6e0c07c807dc5001e40d18a72d53c5a10f66
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Jul 20 13:02:03 2016 +0200
-
- rgw: fix upgrade from old multisite to new multisite configuration
-
- We need to store the updated current period after adding the old converted regions
-
- Fixes: http://tracker.ceph.com/issues/16751
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 6d7841c6f050f6bd813d54df65d38e7f6934d22d)
-
-commit 23d73dca4e8fd9472b8e39d9219fda90323478fb
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Aug 23 15:10:44 2016 -0400
-
- rgw: delete region map after upgrade to zonegroup map
-
- convert_regionmap() reads the region map and uses it to initialize the
- zonegroup map. but it doesn't remove the region_map afterwards, so
- radosgw (and some radosgw-admin commands) will keep doing this on
- startup, overwriting any changes made to the period/zonegroup map
-
- Fixes: http://tracker.ceph.com/issues/17051
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 215cd6f6ff7b8cb74df6dc3b94a5928f56ab9540)
-
-commit 27626ba9cc7495e312bf5caba6be8d6ee2f1ea64
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Aug 17 10:28:48 2016 -0400
-
- rgw_file: restore local definition of RGWLibFS gc interval
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 31936caa09b46e86700faad969adfa9d43176206)
-
-commit 91b65e7b4976103ea45c923bac9d21321d962773
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Aug 9 16:49:41 2016 -0400
-
- rgw file: remove busy-wait in RGWLibFS::gc()
-
- This is a background thread. However, CPU is wasted.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit ca33241286f52d849dbde8092507131b8b1108cc)
-
-commit e72e7a26f22022e6520232481f66f509367073a1
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 12 14:44:09 2016 -0400
-
- qa/workunits: support filtering cls_rbd unit test cases
-
- Fixes: http://tracker.ceph.com/issues/16529
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0891ede57cd254aa75c66301fde4a2eb6957a3d6)
-
-commit a25a4835ef91f2c249107a3f402c299d8c5c40da
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Jun 3 14:41:13 2016 -0700
-
- ReplicatedPG: call op_applied for submit_log_entries based repops
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 8bde0ae122f384817f4e522604379d1e9b21d8d9)
-
-commit 5ef90856ce26761b31cfd4eb1bea4dfbe88cfb13
-Author: Tao Chang <changtao@hihuron.com>
-Date: Mon May 9 09:50:17 2016 -0400
-
- Cleanup: delete find_best_info again
-
- After called find_best_info find a auth_pg_shard, it must be not incomplete,
- so it will not enter find_best_info again.
-
- Signed-off-by: Tao Chang <changtao@hihuron.com>
- (cherry picked from commit a25cfc4d46c03d8d78e0254c728ea5c29e2246e1)
-
-commit dea93dc35859ebf31366dfe5f2b8c2ebebc4f6a6
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Jun 27 11:48:17 2016 +0200
-
- ceph-disk: do not activate device that is not ready
-
- If the journal (or data) device is not ready when we are activating the
- data (or journal) device, just print an info message and exit with 0 so
- that the ceph-disk systemd service won't fail in this case.
-
- Fixes: http://tracker.ceph.com/issues/15990
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 73a7a65f65b1f6e90c4cae101bd43fabaeac3045)
-
-commit 58b7c52db2df0105aea3fbc36a0b2bc0d299415f
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 11 08:57:51 2016 -0700
-
- PG: use upset rather than up for _update_calc_stats
-
- Fixes: http://tracker.ceph.com/issues/16998
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 200cae8c9db99b3dede377f74413cc0b15033e1f)
-
-commit 4e2b4917c30b431f87b0da0d090664f2210f7ad2
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Aug 11 08:57:35 2016 -0700
-
- PG: introduce and maintain upset
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 80a5c21d97116e7a66351a0e1f5d9b561f8663ac)
-
-commit c0db9fb831dc67ae138056c2f03c31dcc7f6adbf
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Mon Aug 1 09:01:15 2016 -0400
-
- ceph: don't fudge the ctime in stat() unless it's really older than the mtime
-
- The current code just looks at the sec field, but the difference may
- only be evident in the nsec field.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 14ee7bcbf0bdd6553dc1b78898ae429aae644100)
-
-commit 66cd43bfedddbbc82e3c303554f089f20eabf0f6
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Mon Aug 1 09:01:15 2016 -0400
-
- client: only skip querying the MDS in _lookup when we have the necessary caps
-
- If we don't have the caps we'll need later, then we must reissue the
- lookup to get them regardless of whether we have a lease on the
- dentry.
-
- Fixes: http://tracker.ceph.com/issues/16668
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 9e8476743eef195a0a9bc6ef82392a8781e82549)
-
-commit fb4a9398a8d60f40ed4c8f57965de54dac1df983
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Mon Aug 1 09:01:14 2016 -0400
-
- client: plumb a mask argument into _lookup
-
- ...and attempt to pass in a sane value there, based on what we'll do
- with the resulting inode.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit f3605d39e53b3ff777eb64538abfa62a5f98a4f2)
-
-commit b5cbd5766fbf2a9ff5ee0e58b4ea42c706f4505a
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Mon Aug 1 09:01:14 2016 -0400
-
- client: add mask parameter to _do_lookup
-
- We need to allow callers to specify caps to acquire during a lookup, as
- they may need to scrape certain info out of the inode later. Allow them
- to pass in a mask. For now, _lookup just passes in 0 for the mask,
- but verify_reply_trace passes in the regetattr_mask to match what we'd
- request in the _getattr request if there were a traceless reply.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit a2ce16f8bfdb16ac485b8c4ad9a51ade5c256a5b)
-
-commit 416ec6ff91c602f385385acd8ac458ac58f13222
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Tue Aug 16 14:19:20 2016 +0800
-
- rgw: fix radosgw daemon core when reopen logs
-
- the rgw_user_st_syn thread use the pointer meta_mgr in RGWUserStatsCache::sync_all_users() fuction, so we should close the thread before delete the pointer in RGWRados::finalize() function when close storage before reopen_logs.
-
- Fixes: http://tracker.ceph.com/issues/17036
-
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit ea5d7fdd7fa978deadeee42bc0ea33fb11662e59)
-
-commit f034fd0a7b959dc3553fb0708da989ba6ac77db3
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Wed Aug 24 09:38:03 2016 +0800
-
- rgw: fix period update --commit return error
-
- period commit return error when the current period has a zonegroup which doesn't have a master zone
-
- Fixes: http://tracker.ceph.com/issues/17110
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit fcedda6e5dfbaff3975b4474d8546cf77f78cc83)
-
-commit 457d78f4f497fdaa0f0f116228ebf135a1ce7fb6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 18:01:54 2016 -0700
-
- rgw: adjust manifest head object
-
- adjust the manifest head object:
- - when reading manifest, set the head object to the object
- we read the manifest from (and its size). Some manifests are
- broken and point at a different object
- - when copying multipart object, set the manifest head object to
- point at the new head object
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 419264586fc46337322f0d60b0ffcdcce3bb5c5a)
-
-commit 77e497da5c618a30fb908cb3915aa1ca7279ce7f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 15:49:07 2016 -0700
-
- rgw: adjust objs when copying obj with explicit_objs set
-
- If the head object contains data, need to set it in the list of
- objs (in addition to being pointed at by head_obj).
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 1e012112b99004745952accc6fb11ada5e8e0045)
-
-commit c1250ee6cbc4a7710399e603ff3ee0e46aa92d49
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jul 7 15:36:33 2016 -0700
-
- rgw: patch manifest to handle explicit objs copy issue
-
- Fixes: http://tracker.ceph.com/issues/16435
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b51476466e5bb03bbaa6e428bb6bb189a259b9fd)
-
-commit 2311ab24049805ea274451607949ba9b54028470
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Jul 15 11:32:18 2016 +0800
-
- ObjectCacher: fix last_write check in bh_write_adjacencies()
-
- Make the last_write check in bh_write_adjacencies() match corresponding
- check in flush().
-
- Fixes: http://tracker.ceph.com/issues/16610
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ce166c2cd706b8573deabd331d29544e75e85972)
-
-commit c3c2910fbe8c6cc206e1cd70d267503f8ab36e74
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Aug 7 23:08:48 2016 +0200
-
- rpm: proper packaging of udev directories
-
- The issue here is that ceph.spec.in does not package the directories
- /usr/lib/udev and /usr/lib/udev/rules.d. The problem was not showing because
- hdparm, which is brought in as a build dependency, packages these directories.
- However, in SUSE a recent update to hdparm changes that and the problem
- manifests.
-
- This PR addresses the issue by adding udev as a build dependency, which should
- cover /usr/lib/udev, and by adding explicit "%dir %{_udevrulesdir}" to the
- packages that put files in this directory.
-
- Fixes: http://tracker.ceph.com/issues/16949
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 1a164bc94d661b9d83b4a80e957712ed6f5cd122)
-
-commit 7d92e2ea1855a21f9a444c716c590e90dcb9f978
-Author: songbaisen <song.baisen@zte.com.cn>
-Date: Mon Apr 25 10:34:42 2016 +0800
-
- crush: When consider rule size use the correct method.
-
- Signed-off-by: song baisen <song.baisen@zte.com.cn>
- (cherry picked from commit 4cf4791ea1200528ccc0d65b3d4a0fbc234c5df0)
-
-commit c2cf21dcce9f481a53c8309800707c80c77754e1
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Aug 5 14:27:43 2016 +0800
-
- mon/PGMonitor: calc the %USED of pool using used/(used+avail)
-
- we were using
- "the raw space used by this pool" / "the raw space of the whole cluster"
- as the %USED. but it's wrong:
-
- - there is chance that not all OSDs are assigned to the pool in question
- - we can not utilize all the raw space for the pool: there is overhead.
- and the size of available space for a pool is capped by the assigned
- OSD with minimal free space.
-
- so we should use
- USED / (USED + AVAIL)
- as the %USED. so once we have no AVAIL space left, %USED will be 100%.
-
- Fixes: http://tracker.ceph.com/issues/16933
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 08532ea166dfd97c548d9f1fb478e163021cdda3)
-
-commit 109da6fd2fa8a6f8e56a1fe2daa6a738bb2a1fde
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sun Aug 7 00:58:04 2016 +0800
-
- mon/PGMonitor: mark dump_object_stat_sum() as static
-
- so we can test this method without create an instance of PGMonitor.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit af3d3e25823ca9b40ddf09835edb82795ac68f33)
-
-commit bd636662a2ff26d9af13955b08f9ab20f29de771
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 12 09:52:21 2016 -0400
-
- librbd: fix possible inconsistent state when disabling mirroring
-
- Fixes: http://tracker.ceph.com/issues/16984
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7cfedb54ea0cf496cc4b55d08a787abc2d6a4bbe)
-
-commit 117aa35094c059dbf5770b01ac13a583471e54aa
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sun Jun 26 01:02:03 2016 +0800
-
- common: instantiate strict_si_cast<long> not strict_si_cast<int64_t>
-
- this fixes the build on armf.
-
- on 32bit platforms, cstdint is very likely to
-
- typedef long long int int64_t;
-
- this results in compilation error like
-
- `common/strtol.cc:190:75: error: duplicate explicit instantiation of 'T
- strict_si_cast(const char, std::string) [with T = long long int;
- std::string = std::basic_string]'
-
- [-fpermissive]
- template int64_t strict_si_cast(const char *str, std::string *err);
- ^`
-
- we can address this by instantiate the primitive type of `long long`
- instead of `in64_t`.
-
- Fixes: http://tracker.ceph.com/issues/16398
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 31db4c5f9f725e13e38f3c90744e299e023d02a4)
-
-commit d93eda88048d2bcefe4be3ea0aaa6ca0289eabbf
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu May 26 23:30:25 2016 +0530
-
- common: add int64_t template for strict_si_cast()
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 8e429d05370fbe7935212d0ae9608e7547f39860)
-
-commit f7cd28460147530cfd265a593b32d02adb93abe6
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Sat Apr 30 18:31:37 2016 +0800
-
- common/config: cast OPT_U32 options using uint32_t
-
- the OPT_U32 options was translated using strict_si_cast<int>(), and then
- cast the converted result to uint32_t. this could cause integer
- underflow. we could have lifted the burden of checking invalid input
- from the user of this option to the strict_si_cast<>() function. so in
- this change, we use strict_si_cast<uint32_t>() instead, before casting
- the converted value into `uint32_t`.
-
- Signed-off-by: Kefu Chai <tchaikov@gmail.com>
- (cherry picked from commit b7babd6aa671d688eef0af61ca17fd11eec22773)
-
-commit 518883d939f34ec0afa03aea1bac35960fb579f2
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Aug 25 09:09:40 2016 +0200
-
- Revert "common: add int64_t template for strict_si_cast()"
-
- This reverts commit e3a99c082e3ebd56d5b40d7d94d98e35629df81e.
-
-commit 29a87012f560c213e34b893cd8dd9dedfd0b11da
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Aug 22 11:52:45 2016 +0200
-
- ceph-osd-prestart.sh: check existence of OSD data directory
-
- Fixes: http://tracker.ceph.com/issues/17091
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit d6ffa770784f0efb88827ee7c65ff2e5f9029434)
-
-commit 80e25b00554e3955f7bee2e03eba6c55a955999b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 12 08:26:49 2016 -0400
-
- rbd: bench io-size should not be larger than image size
-
- Fixes: http://tracker.ceph.com/issues/16967
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 113775eb583fa28a669c6dc1f8dbf47a8ecd789c)
-
- Conflicts:
- src/tools/rbd/action/BenchWrite.cc: trivial resolution
-
-commit f7d23d59535dee004686c5baa79c7b0815ab610a
-Author: Michel Normand <normand@linux.vnet.ibm.com>
-Date: Fri Aug 5 15:19:50 2016 +0200
-
- LTTng-UST disabled for openSUSE
-
- LTTng-UST not yet supported in openSUSE so do not enable lltng for it.
- The (1) is where is defined "is_opensuse"
-
- Remove value for test of suse_version in spec file
- and change related comment from SLES12 to SLE
- as per comment in https://github.com/ceph/ceph/pull/10592
-
- (1) https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto#Detect_a_distribution_flavor_for_special_code
-
- Fixes: http://tracker.ceph.com/issues/16937
- Signed-off-by: Michel Normand <normand@linux.vnet.ibm.com>
- (cherry picked from commit 7da19b6db7eaefb5fe159375cc5a465a722d3897)
-
-commit e6ac214f8a6d8773de032c83f5fdd7c65b68d53f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 28 15:09:53 2016 -0400
-
- librbd: request exclusive lock if current owner cannot execute op
-
- The initial krbd implementation will not support executing maintenance
- ops and instead will return -EOPNOTSUPP. In this case, librbd can take
- the lock and execute the operation.
-
- Fixes: http://tracker.ceph.com/issues/16171
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d2d2d90d64663905c2b81f7809f1d636db6b7fb1)
-
-commit 0b93a9a1e7929bc0709ec139fbc6686783f99044
-Author: Wei Jin <wjin.cn@gmail.com>
-Date: Thu Apr 28 19:00:48 2016 +0800
-
- fast dispatch heartbeat message
-
- Signed-off-by: Wei Jin <wjin.cn@gmail.com>
- (cherry picked from commit 6f1f717446314618db7a165c75dfd6a76a01f55e)
-
-commit 0dcefd2352c06b719960a2df970ac3cbdcce8f52
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Mon Jul 18 13:57:08 2016 +0800
-
- mon/osdmonitor: fix incorrect output of "osd df" due to osd out
-
- If an osd is automatically marked as out, the output of "osd df"
- is not right, as follow:
-
- -5 10.00999 - 5586G 2989G 2596G 0 0 host ceph192-9-9-8
- 11 0.90999 1.00000 931G 542G 388G 58.25 0.99 osd.11
- 14 0.90999 1.00000 931G 530G 400G 56.97 0.97 osd.14
- 20 0.90999 1.00000 931G 716G 214G 76.99 1.31 osd.20
- 22 0.90999 1.00000 931G 477G 453G 51.29 0.87 osd.22
- 26 0.90999 0 0 0 0 0 0 osd.26
- 28 0.90999 1.00000 931G 587G 343G 63.09 1.07 osd.28
- 30 0.90999 1.00000 931G 602G 328G 64.75 1.10 osd.30
- 16 0.90999 1.00000 931G 589G 341G 63.34 1.08 osd.16
- 18 0.90999 1.00000 931G 530G 400G 56.93 0.97 osd.18
- 24 0.90999 1.00000 931G 202G 728G 21.77 0.37 osd.24
- 32 0.90999 1.00000 931G 477G 454G 51.23 0.87 osd.32
-
- Two problems are identified from the above output:
-
- 1. the total capacity(total, total used, total avial)
- only includes osd.32, osd.24, osd.18, osd.16, osd.30, osd.28, and other
- healthy osds such as osd.11, osd.14 etc. are excluded.
-
- 2. the average utilization/deviation are forced resetted.
-
- Fixes: http://tracker.ceph.com/issues/16706
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 1e4735440ca329f4b95d9bd6f58d9efab7d28d20)
-
-commit ac27352743a4ac1e4a4bec422d41a0ad8f17e41a
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Fri Jul 15 16:08:33 2016 +0800
-
- mon/osdmonitor: initialize local variable "kb_avail_i"
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 98f50cebe1d1708adeeb6fc6d0aa2cdc85ac942c)
-
-commit 430ab1b83e67dfb697b034e669b06b7a600bcc6b
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jul 12 16:56:52 2016 +0200
-
- ceph-disk: timeout ceph-disk to avoid blocking forever
-
- When ceph-disk runs from udev or init script, it is in the background
- and should it block for any reason, it may keep a lock forever. All
- calls to ceph-disk in these context are changed to timeout.
-
- The TimeoutStartSec= and TimeoutStopSec= which are both set via
- TimeoutSec= do not apply to Type=oneshot services.
-
- https://www.freedesktop.org/software/systemd/man/systemd.service.html
-
- Fixes: http://tracker.ceph.com/issues/16580
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit bed1a5cc05a9880b91fc9ac8d8a959efe3b3d512)
-
-commit 0b30a1d210710593678462b287ff33f22de52323
-Author: Zengran Zhang <zhangzengran@h3c.com>
-Date: Mon Apr 25 22:45:56 2016 -0400
-
- mon/osdmonitor: decouple adjust_heartbeat_grace and min_down_reporters
-
- if cancel mon_osd_adjust_heartbeat_grace, we must set mon_osd_min_down_reporters to zero.
- otherwise the next checking for
- reporters_by_subtree.size() >= g_conf->mon_osd_min_down_reporters
- will allways be fail.the two options should take effect respectively...
-
- Signed-off-by: Zengran Zhang <zhangzengran@h3c.com>
- (cherry picked from commit 7ac5ca5698cfdaab019bf282b537bcc897f9444c)
-
-commit 92581a388462039a7f4dc748e8318c4226f068d3
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Jul 20 12:43:48 2016 -0700
-
- rgw: fix marker tracker completion handling
-
- Was not tracking high markers correctly. Could only work if there was a single
- hole in the completion range. Just keep a map of all the complete entries.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f5801c726efdc2f3067a071e6bb5ac83fd0cd147)
-
-commit fb36dd0c7a72ce5f3affd69d1f77e6222e26de94
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Tue Jun 28 16:17:58 2016 +0800
-
- rgw: fix potential memory leaks in RGWPutCORS_ObjStore_S3::get_params
-
- We should free `data` before return or jump to `done_err` label.
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit 69c6cf551754e51debb4e645716a89e29517f4ee)
-
-commit 775c78d4bb31640a006d255ec0cb3818b6a5d23a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Aug 4 20:40:10 2016 -0400
-
- librbd: prevent creation of v2 image ids that are too large
-
- The librbd API is capped at 24 characters for expressing the
- object prefix for data blocks (including trailing null byte).
-
- Fixes: http://tracker.ceph.com/issues/16887
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4de7c8d0a7222c83268d03b99015c6b9d25f124d)
-
-commit 2b272126de6ea6e75b9dcf4fedac5c216093e36d
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jul 4 13:54:32 2016 +0300
-
- librbd: prevent creation of clone from non-primary mirrored image
-
- Fixes: http://tracker.ceph.com/issues/16449
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit ba849e3b04a5c513849d40a7fe4151375265302a)
-
-commit 18a66cb375bf6540a3908f843b004c652eacc2dc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jun 22 18:09:29 2016 -0400
-
- librbd: journal::Replay no longer holds lock while completing callback
-
- Fixes: http://tracker.ceph.com/issues/16433
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3112a93b49c24f9ae101a7f252c8e708e0d3e260)
-
-commit 79e2acb9a585ede5b97d804550b5394f277e7cc4
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jul 1 20:44:35 2016 +0800
-
- crush: reset bucket->h.items[i] when removing tree item
-
- * crush: so we don't see the reference after the removing, this keeps
- check_item_loc() happy, and move_bucket() use check_item_loc() to see if
- the removed bucket disappears after the removal.
- * test: also add unittest_crush_wrapper::CrushWrapper.insert_item
-
- Fixes: http://tracker.ceph.com/issues/16525
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit a7069c7aab6b3f605f3d8f909af96f87977e8698)
-
-commit d94e5bc0903a40d8ea353327ddaa7b8567b95f5f
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Apr 27 16:53:26 2016 -0400
-
- common: fix value of CINIT_FLAG_DEFER_DROP_PRIVILEGES
-
- 0x16 (binary 10110) was overlapping two other flags
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit dfb897ad576e4861a3cb75d85dffbbeaad5e980e)
-
-commit 54b6b5e42bca2b7f05b9ff77315de61d3ba14daf
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jun 8 17:47:58 2016 +0800
-
- client: kill QuotaTree
-
- Multiple clients can modify cephfs at the same time. It is
- very tricky to keep QuotaTree consistant with the global FS
- hiberarchy. This patch kills the quota tree.
-
- After removing the quota tree, we traverse inode's path to
- find quota root.
-
- Fixes: http://tracker.ceph.com/issues/16066
- Fixes: http://tracker.ceph.com/issues/16067
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 161954bbfeb13d5588668637d5258221948128ea)
-
-commit 47605a2fdde65265e3c4dc60aac206c6ae712be5
-Author: Sage Weil <sage@redhat.com>
-Date: Fri May 6 09:46:06 2016 -0400
-
- msg/msg_types: update sockaddr, sockaddr_storage accessors
-
- Return sockaddr_storage by value. New sockaddr-based accessors.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 0038d362d38181bd348881bc0fbe717211eb8d15)
-
-commit d5c77c8ff6ad0e4b4242669e4f218f607f433310
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Fri May 20 15:47:23 2016 +0530
-
- osd: add peer_addr in heartbeat_check log message
-
- Fixes: http://tracker.ceph.com/issues/16337
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit f235b9cc1541d33c210e2d56e8061e8908b91ac9)
-
-commit 5ffee353cb947bfb79925ca4d62daec248c3ba4a
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Fri May 20 23:09:46 2016 +0530
-
- mon : Display full flag in ceph status if
- full flag is set
-
- Fixes: http://tracker.ceph.com/issues/16069
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 6b1c894b2b083bf6cead21e9f96d304b2eb7887d)
diff --git a/src/ceph/doc/changelog/v10.2.5.txt b/src/ceph/doc/changelog/v10.2.5.txt
deleted file mode 100644
index 53d3f10..0000000
--- a/src/ceph/doc/changelog/v10.2.5.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-commit c461ee19ecbc0c5c330aca20f7392c9a00730367
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Fri Dec 9 20:08:24 2016 +0000
-
- 10.2.5
-
-commit 2c7d2b99d3be6f23188af4bf95f2d6f4a4fb516a
-Merge: 9411351 f7abffe
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Dec 8 07:55:27 2016 -0800
-
- Merge pull request #12376 from liewegas/wip-msgr-eagain-loop-jewel
-
- msg/simple/Pipe: avoid returning 0 on poll timeout
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit f7abffec751e454d119df273dc6e49e5f7106078
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 7 18:25:55 2016 -0600
-
- msg/simple/Pipe: avoid returning 0 on poll timeout
-
- If poll times out it will return 0 (no data to read on socket). In
- 165e5abdbf6311974d4001e43982b83d06f9e0cc we changed tcp_read_wait from
- returning -1 to returning -errno, which means we return 0 instead of -1
- in this case.
-
- This makes tcp_read() get into an infinite loop by repeatedly trying to
- read from the socket and getting EAGAIN.
-
- Fix by explicitly checking for a 0 return from poll(2) and returning
- EAGAIN in that case.
-
- Fixes: http://tracker.ceph.com/issues/18184
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6c3d015c6854a12cda40673848813d968ff6afae)
diff --git a/src/ceph/doc/changelog/v10.2.6.txt b/src/ceph/doc/changelog/v10.2.6.txt
deleted file mode 100644
index 4628c7c..0000000
--- a/src/ceph/doc/changelog/v10.2.6.txt
+++ /dev/null
@@ -1,5165 +0,0 @@
-commit 656b5b63ed7c43bd014bcafd81b001959d5f089f
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Tue Mar 7 13:29:40 2017 +0000
-
- 10.2.6
-
-commit 420a9a0796e327676cb704bc18b2020f9941d7b6
-Merge: 9267dec 88f4895
-Author: Zack Cerza <zack@cerza.org>
-Date: Thu Mar 2 14:00:13 2017 -0700
-
- Merge pull request #13749 from zmc/wip-openstack-volumes-jewel
-
- qa/suites/upgrade/hammer-x: Add some volumes
-
-commit 88f48955900e9401680f5434f9a162907b146e74
-Author: Zack Cerza <zack@redhat.com>
-Date: Thu Mar 2 10:57:54 2017 -0700
-
- qa/suites/upgrade/hammer-x: Add some volumes
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
-
-commit 9267dec7e794afb67d0904bf9795e9ac7a0b2a78
-Merge: c66683d 0c242d1
-Author: Zack Cerza <zack@cerza.org>
-Date: Wed Mar 1 16:35:37 2017 -0700
-
- Merge pull request #13708 from zmc/wip-openstack-volumes-jewel
-
- qa/suites/ceph-deploy: Drop OpenStack volume count
-
-commit 0c242d18c4f4b2009467d6cbc0ef26a08a9d9865
-Author: Zack Cerza <zack@redhat.com>
-Date: Tue Feb 28 13:07:15 2017 -0700
-
- qa/suites/ceph-deploy: Drop OpenStack volume count
-
- Looks like we only need two per node, since there is only one OSD per
- node, and ceph-deploy wants two disks per OSD to account for the
- journal.
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 87072e277c9ef259c9ee2ae1f761e252aa216713)
-
-commit c66683d908de4a747de9ddffee353206f50bf50a
-Merge: d5a778c ccd0265
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Wed Mar 1 07:26:30 2017 -0800
-
- Merge pull request #13710 from tmuthamizhan/wip-mv-centos-version
-
- qa: replace centos 7.2 with centos 7.3
-
- Reviewed-by: Yuri Weinstein <yweins@redhat.com>
-
-commit d5a778ced47a7601cfcea79b660ba6367e740e01
-Merge: 7187b61 2cbec5b
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Tue Feb 28 16:05:32 2017 -0800
-
- Merge pull request #13705 from ceph/wip_remove_dumpling_jewel
-
- qa: Removed dumplin test 13234.yaml as not needed anymore
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit ccd0265a0540e4c4e9423b177b04fae60716bc1c
-Author: Tamil Muthamizhan <tmuthami@redhat.com>
-Date: Tue Feb 28 16:02:57 2017 -0800
-
- qa: replace centos 7.2 with centos 7.3
-
- s/centos_7.2/centos_7.3
-
- Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
-
-commit 2cbec5b909920a05afd34e83c6fa00c5ece4a991
-Author: Yuri Weinstein <yweinste@redhat.com>
-Date: Tue Feb 28 15:17:54 2017 -0800
-
- Removed dumplin test 13234.yaml as not needed anymore
-
- Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
-
-commit 7187b617ccdc7ba70134ba468eb4c3848a555a41
-Merge: ac3ba2a 771e1d9
-Author: Zack Cerza <zack@cerza.org>
-Date: Mon Feb 27 12:23:18 2017 -0700
-
- Merge pull request #13674 from zmc/wip-openstack-volumes-jewel
-
- qa/suites/{ceph-ansible,rest}: OpenStack volumes
-
-commit 771e1d98a2b5cd437dcf68e03d504f3dec4f2e06
-Author: Zack Cerza <zack@redhat.com>
-Date: Mon Feb 27 09:14:41 2017 -0700
-
- qa/suites/rest: Openstack volumes
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 99d942145f4206c00aca30c0bb74f0edc4bac798)
-
-commit a18640fcd7df45eea0baf2b0cfb1d717f982490b
-Author: Zack Cerza <zack@redhat.com>
-Date: Mon Feb 27 09:06:26 2017 -0700
-
- qa/suites/ceph-ansible: Openstack volumes
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 964b983bdbd412311bce56184d12d1b6d43c7f28)
-
-commit ac3ba2adcd21ac011ad556ac4506623e61fbe696
-Merge: 016238b 841688b
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 24 17:22:17 2017 -0700
-
- Merge pull request #13642 from zmc/wip-fs-openstack-jewel
-
- qa/suites/fs: Add openstack volume configuration
-
-commit 841688bb2e46bade3ede4a902c0b42a99e6a62f6
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 15:25:19 2017 -0700
-
- qa/suites/fs: Add openstack volume configuration
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit b076d89a3f1fbad7d477913812b2e17529abeacf)
-
-commit 016238b06938064afb6debb2c6dd753037c05279
-Merge: 48bc625 9778743
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 24 14:44:10 2017 -0700
-
- Merge pull request #13639 from zmc/wip-openstack-volumes-jewel
-
- qa/suites/{knfs,hadoop,samba}: OpenStack volume configuration
-
-commit 48bc625c721f426b29eed4f19f030f1243048649
-Merge: f5643f8 ba35859
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 24 14:43:40 2017 -0700
-
- Merge pull request #13636 from zmc/wip-kcephfs-openstack-jewel
-
- qa/suites/kcephfs: Openstack volume configuration
-
-commit 9778743547fb9337e98e636fb7ad801fe1ff39ca
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 13:46:54 2017 -0700
-
- qa/suites/samba: Openstack volume configuration
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit e0296d706422ea4dc01d84f8786f6f7104c3d996)
-
-commit cd1e8ef4fc2ccfe5abc11b6282a496185af49455
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 13:45:18 2017 -0700
-
- qa/suites/hadoop: Openstack volume configuration
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 3fef0a49da2ccfdceba7b98e9096be8305da1111)
-
-commit ac7add155f0b787d6a7a55b597da84278b785ae8
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 13:44:33 2017 -0700
-
- qa/suites/knfs: Add openstack volume configuration
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 62c6fd3371adf0f420c12d9c7e2b3a2a0c69256b)
-
-commit ba35859ef26b49ecab750cd36c87a98315e8c023
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 13:37:23 2017 -0700
-
- qa/suites/kcephfs: Openstack volume configuration
-
- (cherry picked from commit ec6fb28eaf8e2db327e4afc115879a40c7664e07)
- Signed-off-by: Zack Cerza <zack@redhat.com>
-
-commit f5643f8818772a4778e2c553d483c7c6ab67ac18
-Merge: bfac1be aced718
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 24 12:15:41 2017 -0700
-
- Merge pull request #13632 from zmc/wip-krbd-openstack-jewel
-
- qa/suites/krbd: Add openstack volume configuration
-
-commit bfac1bee09c90ec81b6d969ecaccbbe047a82604
-Merge: d9eaab4 94d5888
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 24 12:15:22 2017 -0700
-
- Merge pull request #13612 from ceph/wip-rgw-openstack-jewel
-
- qa/suites/rgw: Add openstack volume configuration
-
-commit aced718032fdfedfdfad441a5761f26f04028af3
-Author: Zack Cerza <zack@redhat.com>
-Date: Fri Feb 24 11:17:45 2017 -0700
-
- qa/suites/krbd: Add openstack volume configuration
-
- Signed-off-by: Zack Cerza <zack@redhat.com>
- (cherry picked from commit 201b4d0d1e92bf95ac6a8f2951b664763030f12d)
-
-commit 94d5888cea0ddac8fa03b32225c937955d83dd86
-Author: Zack Cerza <zack@redhat.com>
-Date: Thu Feb 23 10:14:05 2017 -0700
-
- qa/suites/rgw: Add openstack volume configuration
-
- Without this, OSDs will fail to create on instances whose root fs isn't
- xfs.
-
- (cherry picked from commit 8af4c35f9577ef5a88307ea5cbbe2561a473926c)
- Signed-off-by: Zack Cerza <zack@redhat.com>
-
-commit d9eaab456ff45ae88e83bd633f0c4efb5902bf07
-Merge: ecdfb7c bf3400f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Feb 23 16:32:20 2017 +0100
-
- Merge pull request #13184 from smithfarm/wip-18720-jewel
-
- jewel: build/ops: systemd restarts Ceph Mon to quickly after failing to start
-
-commit ecdfb7ce0c29aa5eb954b3644e5be1544e018515
-Merge: 96b4cb8 5c328f0
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 23 07:32:01 2017 +0100
-
- Merge pull request #13240 from smithfarm/wip-18804-jewel
-
- jewel: tests: ignore bogus ceph-objectstore-tool error in ceph_manager
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 96b4cb8eab5e7531eeaf412cf4b10db5947bef70
-Merge: 27095f3 20e7502
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 23 07:30:30 2017 +0100
-
- Merge pull request #13058 from wido/issue-18635-jewel
-
- jewel: systemd: Restart Mon after 10s in case of failure
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 27095f36b51a91ff5575bd42d12a16d2af11b731
-Merge: 0766a8b 67e7a90
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 23 07:28:16 2017 +0100
-
- Merge pull request #13048 from SUSE/wip-18457-jewel
-
- jewel: selinux: Allow ceph to manage tmp files
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 0766a8bc604d0c4ee7a7d93427022105f5eb6425
-Merge: 9f36610 463e88e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 22 22:59:41 2017 +0100
-
- Merge pull request #13131 from ovh/bp-osdmap-hammer-compat
-
- jewel: mon: OSDMonitor: clear jewel+ feature bits when talking to Hammer OSD
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 9f366100bb7c9882146def8b5ed9ce9eddd4db21
-Merge: 083e0f4 78d296b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 22 22:36:07 2017 +0100
-
- Merge pull request #13255 from liewegas/wip-enxio-jewel
-
- jewel: osd: do not send ENXIO on misdirected op by default
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 083e0f4ac06f922c32b806d6d027f738c5057cae
-Merge: 04a8492 8a75f98
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Feb 21 21:40:14 2017 +0100
-
- Merge pull request #13050 from SUSE/wip-18406-jewel
-
- jewel: tests: Cannot reserve CentOS 7.2 smithi machines
-
-commit 04a8492dfed7ec6f235cb201ab6de14201e27bbd
-Merge: d10a8e6 ebb2f73
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Feb 21 10:27:51 2017 +0100
-
- Merge pull request #13459 from ukernel/jewel-18708
-
- jewel: mds: fix incorrect assertion in Server::_dir_is_nonempty()
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit d10a8e6d927ea8171e29b7a7c10afcc2c10c5392
-Merge: a009942 cb7bb0c
-Author: Sage Weil <sage@newdream.net>
-Date: Mon Feb 20 10:20:58 2017 -0600
-
- Merge pull request #13533 from smithfarm/wip-stress-split-ec
-
- jewel: qa/suites/upgrade/hammer-x: break stress split ec symlinks
-
-commit a00994299fb360c1c086baad3b65e6889579a4ba
-Merge: 40eedcc 1e75e23
-Author: Sage Weil <sage@newdream.net>
-Date: Mon Feb 20 10:20:51 2017 -0600
-
- Merge pull request #13222 from liewegas/wip-hammer-x-jewel
-
- jewel: tests: qa/suites/upgrade/hammer-x/stress-split: finish thrashing before final upgrade
-
-commit 40eedcc9428abc8bc988594b6e624bbc3c732405
-Merge: 786b318 e9a6dec
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 20 16:42:59 2017 +0100
-
- Merge pull request #13273 from asheplyakov/jewel-bp-18773
-
- jewel: rgw: fix period update crash
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 786b31877fcf1c13bfb5034ca92e5044d5d6a78f
-Merge: 7566139 b06d6f5
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 20 16:41:56 2017 +0100
-
- Merge pull request #13341 from dreamhost/wip-17550-jewel
-
- jewel: rgw: bucket resharding
-
- Reviewed-by: Yehuda Sadeh <ysadehwe@redhat.com>
-
-commit 7566139391f43616e7847e806c657c527e7a098d
-Merge: b3bb9cc b1d6c2e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 20 16:41:29 2017 +0100
-
- Merge pull request #13004 from asheplyakov/jewel-bp-18563
-
- jewel: rgw: leak from RGWMetaSyncShardCR::incremental_sync
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit cb7bb0c49315cc66130336625ede92c70beaec74
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Feb 20 11:44:49 2017 +0100
-
- tests: reduce stress-split-erasure-code-x86_64 dependency on stress-split
-
- This patch breaks the symlinks for two files from stress-split that
- are being changed by https://github.com/ceph/ceph/pull/13222 in a way
- that would break this test otherwise.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit b3bb9cc382e11f535a874675d65015829d1a3254
-Merge: 7d6e915 7cf37f6
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 20 11:48:26 2017 +0100
-
- Merge pull request #12754 from Abhishekvrshny/wip-18285-jewel
-
- jewel: rbd: partition func should be enabled When load nbd.ko for rbd-nbd
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 7d6e915a2f7d78741d8fcdfdc7d44e71236ac48d
-Merge: 7e844b6 401271e
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 20 11:45:29 2017 +0100
-
- Merge pull request #13183 from smithfarm/wip-17313-jewel
-
- jewel: build/ops: add ldap lib to rgw lib deps based on build config
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 8ae18863d013655e05a46e53de53f9f97fc4d42d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Feb 20 11:44:49 2017 +0100
-
- tests: reduce stress-split-erasure-code dependency on stress-split
-
- This patch breaks the symlinks for two files from stress-split that
- are being changed by https://github.com/ceph/ceph/pull/13222 in a way
- that would break this test otherwise.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 7e844b66848ba6e911aa357ebfca0ebf20aa46d3
-Merge: 5cda572 4d4b38e
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Fri Feb 17 14:43:00 2017 -0800
-
- Merge pull request #13502 from tmuthamizhan/wip-ansible-rm-trusty
-
- qa: drop ubuntu trusty support
-
- Reviewed-by: Yuri Weinstein <yweins@redhat.com>
-
-commit 4d4b38eca81f7b57e3d3b31e1c13e7ab0ba5b30f
-Author: Tamil Muthamizhan <tmuthami@redhat.com>
-Date: Fri Feb 17 21:06:43 2017 +0000
-
- qa: drop ubuntu trusty support
-
- ceph-ansible dropped support for OS that doesnt support systemd
-
- Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
-
-commit 5cda5722e05784163190b6110dcc2dd164142e90
-Merge: 87f8341 260801f
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 16 22:27:53 2017 +0100
-
- Merge pull request #13276 from rzarzynski/wip-rgw-18364-2-jewel
-
- jewel: rgw: be aware abount tenants on cls_user_bucket -> rgw_bucket conversion
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 87f8341909e791e420a4b9344810e3840c1e83cc
-Merge: 3d9a584 a0ee8b9
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 16 16:30:56 2017 +0100
-
- Merge pull request #12729 from liupan1111/wip-fix-disable-rgw-compile-error
-
- jewel: build/ops: fixed compilation error when --with-radowsgw=no
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3d9a584bf0f335caf65265345faf2a940f901519
-Merge: 9f1e1ce 89248e1
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 16 15:43:32 2017 +0100
-
- Merge pull request #12239 from liupan1111/wip-fix-makefile-bug
-
- jewel: build/ops: fixed the issue when --disable-server, compilation fails.
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ebb2f73e48092c8d2ecf18c75ce70f1a88c9bb22
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jan 18 16:23:49 2017 +0800
-
- mds: fix incorrect assertion in Server::_dir_is_nonempty()
-
- when filelock is in XLOCKDONE state. client of xlocker can rdlock
- the filelock. In that case, only client of xlocker can read the lock.
-
- Fixes: http://tracker.ceph.com/issues/18708
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit fe4ab52b30079a785be053a9fd0197d6990737fe)
-
-commit 9f1e1ce394c7779420ef27bda793bc719cdb9096
-Merge: 792a0c8 36ff758
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 23:39:11 2017 +0100
-
- Merge pull request #12380 from dachary/wip-18183-jewel
-
- jewel: cephfs metadata pool: deep-scrub error omap_digest != best guess omap_digest
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 792a0c8160a1e239f7388cb1ca5be412d850aa82
-Merge: f95cbe0 3eff1ac
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 17:08:26 2017 +0100
-
- Merge pull request #13130 from rjfd/wip-18608-jewel
-
- jewel: librbd: allow to open an image without opening parent image
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f95cbe064639d31c218079d93c5831821e7cd13c
-Merge: 49b16ee 214ce1b
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 17:06:53 2017 +0100
-
- Merge pull request #13233 from smithfarm/wip-18556-jewel
-
- jewel: rbd: Potential race when removing two-way mirroring image
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 49b16eed6bf5303667df6657238735b47f573ebb
-Merge: cd9e5df 8742203
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 10:48:21 2017 +0100
-
- Merge pull request #13113 from jcsp/wip-18679
-
- jewel: mds: finish clientreplay requests before requesting active state
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cd9e5df1593f999c943376b82de49a3eba291f8c
-Merge: 3192ef6 21622c1
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 10:47:59 2017 +0100
-
- Merge pull request #13139 from jcsp/wip-18100
-
- jewel: mds: fix MDSMap upgrade decoding
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 3192ef6a034bf39becead5f87a0e48651fcab705
-Merge: e84b3f8 384e5c0
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 10:18:04 2017 +0100
-
- Merge pull request #12490 from linuxbox2/jewel-rgw-header
-
- jewel: rgw: add option to log custom HTTP headers (rgw_log_http_headers)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit e84b3f8e073ec02f7a45387768490b90d6d777b4
-Merge: 9b4175e d7a479c4
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 10:14:23 2017 +0100
-
- Merge pull request #12079 from rzarzynski/wip-rgw-17961
-
- jewel: rgw: TempURL properly handles accounts created with the implicit tenant
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 9b4175e491286f0578bcba5152a72e0e3b934051
-Merge: 2420d47 732405e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 15 10:13:32 2017 +0100
-
- Merge pull request #12044 from Abhishekvrshny/wip-17886-jewel
-
- jewel: rgw: multisite: ECANCELED & 500 error on bucket delete
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 2420d474a8d22f3237b9fb28a78f0ff3f168ba34
-Merge: 81efc40 256b850
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 15 00:39:48 2017 +0100
-
- Merge pull request #13422 from smithfarm/wip-fix-hammer-x-fix
-
- tests: remove extra indentation in exec block
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
-
-commit 81efc40b11fc0f146f5d2388033333aeb9ad9d56
-Merge: 994df97 4824ad2
-Author: Tamilarasi Muthamizhan <tmuthami@redhat.com>
-Date: Tue Feb 14 13:59:58 2017 -0800
-
- Merge pull request #13364 from tmuthamizhan/wip-ansible-jewel
-
- qa: ceph-ansible smoke suite modified for jewel
-
-commit 256b850fc1a80f71b0b8365c6d66abea84482f9e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Feb 14 22:13:37 2017 +0100
-
- tests: remove extra indentation in exec block
-
- The exec block was indented by an extra space, causing
-
- line 439, in parse_block_mapping_key
- "expected <block end>, but found %r" % token.id, token.start_mark)
- yaml.parser.ParserError: while parsing a block mapping
- in "<string>", line 111, column 3:
- sequential:
- ^
- expected <block end>, but found '<block sequence start>'
- in "<string>", line 126, column 4:
- - exec:
- ^
-
- when trying to run upgrade/hammer-x
-
- Reported-by: Yuri Weinstein <yweins@redhat.com>
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 994df972dd64fc39ef7acce1acfff0e9e8440e1f
-Merge: 9bf8dcf 898702d
-Author: Sage Weil <sage@newdream.net>
-Date: Mon Feb 13 18:44:37 2017 -0600
-
- Merge pull request #13404 from smithfarm/wip-fix-hammer-x
-
- tests: add require_jewel_osds to upgrade/hammer-x/tiering
-
- Reviewed-by: Yuri Weinstein <yweins@redhat.com>
-
-commit 898702d58f3e26c41713e44625fcf357841f52af
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Feb 13 22:04:17 2017 +0100
-
- tests: add require_jewel_osds to upgrade/hammer-x/tiering
-
- Without this, the test tends to fail, but sometimes passes (apparently because
- the "wait-for-healthy: true" in the last ceph.restart is racy - HEALTH_OK is
- received before the MONs notice that all OSDs are running jewel without
- require_jewel_osds.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 214ce1b96c112c193614aeeabaa278bd1004f6b2
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Aug 31 22:49:36 2016 +0300
-
- librbd: async method to check journal tag owner
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 953561f84140efcc870ec4a8f1ecb732b8e99409)
-
- Conflicts:
- src/librbd/Journal.cc - trivial context difference (master does not
- have "class SafeTimerSingleton"),
- added "typedef ::journal::Journaler Journaler;" in
- C_IsTagOwner template to fix build failure
-
-commit 5723b932cfb12ed67cb54347a127c5f3539d0bcf
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jan 9 10:40:46 2017 +0100
-
- rbd-mirror: check image mirroring state when bootstrapping
-
- Fixes: http://tracker.ceph.com/issues/18447
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 5fc5a8ac895524f05eed6e7db20b0dda3a8cb60f)
-
-commit 8361a60c3cb272d2d4895840dadbbc6c50294f51
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jan 9 09:23:19 2017 +0100
-
- rbd-mirror: async request to test if image is primary
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 0a1cb35caacdf85029f31a0364dc07a5d7462f5f)
-
- Conflicts:
- src/tools/rbd_mirror/CMakeLists.txt - file doesn't exist in jewel
- (ported the patch to src/tools/Makefile-client.am)
- src/tools/rbd_mirror/image_replayer/BootstrapRequest.cc - Journal is
- implemented by a typedef in jewel
- src/tools/rbd_mirror/image_replayer/OpenLocalImageRequest.cc -
- no compat.h include in jewel, Journal is implemented by a typedef
- in jewel
-
-commit 9bf8dcf914e76a340fed29d2b46346f8ada6d0c7
-Merge: 748f75c 7515a77
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 13 08:20:53 2017 +0100
-
- Merge pull request #13331 from smithfarm/wip-18869-jewel
-
- jewel: tests: SUSE yaml facets in qa/distros/all are out of date
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 748f75cd845e3b33687d9d235508f9bc7ebdcefb
-Merge: c27aba8 21ded74
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Mon Feb 13 14:52:59 2017 +0800
-
- Merge pull request #11410 from dachary/wip-17334-jewel
-
- jewel: crushtool --compile is create output despite of missing item
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 21ded748e7bbf2c02b3bf381cf796afe99a62ce0
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Sep 21 22:58:49 2016 +0800
-
- test/cli/crushtool: fix the test of compile-decompile-recompile.t
-
- should read the map from $TESTDIR,
- it's a regression introduced by b2c0a07
-
- Fixes: http://tracker.ceph.com/issues/17306
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 404043980d7882f320f48fbaed4b18f31bb15eb7)
-
-commit d92738c0c9491c97fd189ff49ca57427316b9eb7
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Sep 20 14:10:16 2016 +0800
-
- crush/CrushCompiler: error out as long as parse fails
-
- do not output compiled crush map if anything goes wrong when parsing
- crush map.
-
- Fixes: http://tracker.ceph.com/issues/17306
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b2c0a079dc074c907e1bc429861230096534f597)
-
-commit 4824ad27345f32ed0043c2cb20fe5fc7e019555a
-Author: Tamil Muthamizhan <tmuthami@redhat.com>
-Date: Fri Feb 10 12:37:51 2017 -0800
-
- qa: ceph-ansible smoke suite modified for jewel
-
- Signed-off-by: Tamil Muthamizhan <tmuthami@redhat.com>
-
-commit c27aba8f723b013baeb0704fe84c6956d1cb005d
-Merge: 8c87d09 5ed454d
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Feb 10 15:04:02 2017 -0500
-
- Merge pull request #13358 from linuxbox2/wip-jewel-marker
-
- jewel: rgw: fix use of marker in List::list_objects()
-
-commit 5ed454dd8f470749ef661782a8f4e866ae8193e2
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jan 26 16:26:42 2017 -0800
-
- rgw: fix use of marker in List::list_objects()
-
- Fixes: http://tracker.ceph.com/issues/18331
-
- List marker is an index key, so treat it as such. This
- fixes infinite loop in orphans find command.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a5d1fa0587184f43c69d8e03114b58d43f320781)
-
-commit b06d6f5f8fb6693dcf4f480d1f80b1081cd63305
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Thu Feb 9 14:38:02 2017 -0800
-
- Backport bucket reshard to jewel.
-
- Fixes: http://tracker.ceph.com/issues/17756
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 25af6e5c2448d2478ac3d8def6141fcbfb086f3c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 3 17:00:41 2016 -0700
-
- rgw_admin: add a few admin commands to the usage
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 91ed1216d7465a42d11546cb967c70997ea5b1d8)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit b429331f4fb22e845edcd526b618b10c82db6286
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Oct 3 16:43:44 2016 -0700
-
- rgw_admin: add bi purge command
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit aaf0d213eb39192ceb252c9c7db68c1a48ba1272)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit eb65394363676629726aed2aac8182a745ba96e6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Sep 28 12:54:47 2016 -0700
-
- rgw: bucket resharding, adjust logging
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit e2b8dc6113e2625bdf65ea6f2c42510229d04c87)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit e197ec0312cb07d576c0bf045b803454702ccc81
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Sep 28 10:41:45 2016 -0700
-
- cls/rgw: bi_list() fix is_truncated returned param
-
- is_truncated was never set. Also, make sure that we don't return
- more entries than requested.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 47f422a4e0382d53023af6f651433011606b8625)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 81daefa473a4e6826be5afa4dae5ea63d66bd1be
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 15:13:37 2016 -0700
-
- rgw_admin: require --yes-i-really-mean-it for bucket reshard
-
- in the case where num shards are less or equal to current bucket
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 75da4375ee0e36c58f96cbf2920c3b9aadf12733)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 4adb247e56e8e77cbdfecca8f90240edbd04742f
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 14:35:31 2016 -0700
-
- rgw_admin: better bucket reshard logging
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ac88b5d9e6bc3c8b59c500bf79a0e3daa923a47c)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 139842d7451ef44cb0548676a818d3056e2e4ac6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 14:11:41 2016 -0700
-
- rgw: limit bucket reshard num shards to max possible
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d9c88afec4b52848f9ad8957bab5a86fdafecded)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 7e4493a4cca99bfa817803c0255755e1cd330cbf
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Sep 27 11:55:32 2016 -0700
-
- rgw_admin: fix bi list command
-
- Changes scoping of json section, and push the --object param in so that
- an object can be specified as a filter.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 716d096bbb8e836aefa6a451b799389d3bd85620)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 1604b521730577fc6aa5345127381b1bfc5625b7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 15:49:37 2016 -0700
-
- rgw_admin: use aio operations for bucket resharding
-
- also created shards manager to make things slightly cleaner
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 97e7ee9ca213ccf4b8f537e02125bd0c4ef24103)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit cd2e35e84599d25e94f28fad8e4a743883fec94d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 10:45:17 2016 -0700
-
- rgw: bucket reshard updates stats
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit dd712384ffe72ee23cbe0a20d7400aff7fb779a8)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 678dac9289ce52f1e5f13e603b5858a3b867c216
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 09:52:29 2016 -0700
-
- cls/rgw: add bucket_update_stats method
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4cc7d3a33a28602b45ec04ff5384e6bc62b376cb)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit d39eac038266a61a6081c820360c2165279bd8c1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:46:36 2016 -0700
-
- rgw_admin: reshard also links to new bucket instance
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 094fe3f0cfeb27b32abfc93b07054b60de363a20)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 29c9e9872c2cef6b6e874bf95c797a72a580e84c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:33:57 2016 -0700
-
- rgw: rgw_link_bucket, use correct bucket structure for entry point
-
- The bucket structure might be different than the one that we were using
- before.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f2d9fc015556d6d70e596f75c382cc7157add411)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit b40ce2738964c6fc1c9c390af18758b16820cdb9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 10:01:00 2016 -0700
-
- radosgw-admin: bucket reshard needs --num-shards to be specified
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d0569f913340cb251c1a49f1e470b176d8b34346)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit d9df7451a70a4fe64443e7f4669e995c54d74361
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Sat Sep 24 05:49:37 2016 -0700
-
- cls/rgw: fix bi_list objclass command
-
- was filtering entries, even if filter was not specified, and need to
- set boundary for plain entries. Also, list_instance_entries() was not
- working correctly, and added list_olh_entries().
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit f87c4b2c2a6ecadaf9f0e0cfef4b6061878a023b)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 4892def3643555720619b987bc1ccb508cdd8ac7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:09:34 2016 -0700
-
- rgw_admin: bucket rehsrading, initial work
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit d8c5931bceaa42ad47ae5ad9b2c32bb6c321484a)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
- Conflicts:
- src/rgw/rgw_admin.cc
-
-commit c1cf61f3612844fc644a832f7c61f716f28ecb46
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:09:15 2016 -0700
-
- rgw: utilities to support raw bucket index operations
-
- and other related changes.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit b01e732f3d597670f4f781be3db81786e63d5053)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
- Conflicts:
- src/rgw/rgw_rados.cc
-
-commit 0ce2a125f4d400abaf2a65ff90d1d40ee000aea9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:06:17 2016 -0700
-
- rgw: use bucket_info.bucket_id instead of marker where needed
-
- We used to use these interchangeably, but they actually have diffent meaning.
- The marker is the prefix we assign to the objects in this bucket, whereas
- the bucket_id is the bucket instance's id. These used to hold the same
- value, but with bucket resharding it's not going to be true anymore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 94afaf722fc8289af6e75025ba7d783f11c4b7d0)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 5fe58c5bf22ad593d650d68b059d462be49214ed
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Sep 26 16:01:39 2016 -0700
-
- cls/rgw: utilities to support raw bucket index operations
-
- New flavour of bi_put() call, and a function to extract key off
- a raw bi entry.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 9b3a2a40a5732689be98a940f7e6c3c4a6e73c53)
- See: http://tracker.ceph.com/issues/17556
- See: https://github.com/ceph/ceph/pull/11368
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 7515a77bf1d06ec7cea448adecc56e50c417540f
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Feb 8 21:23:54 2017 +0100
-
- tests: drop buildpackages.py
-
- The buildpackages suite has been moved to teuthology. This cleans up a file
- that was left behind by https://github.com/ceph/ceph/pull/13297
-
- Fixes: http://tracker.ceph.com/issues/18846
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 6b7443fb50c117ee7f20d53bbc7530bb0eb7ebd5)
-
-commit 36f96f40e7ce9abf1fc21878c91365d300dee281
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Feb 8 15:27:00 2017 +0100
-
- tests: update SUSE yaml facets in qa/distros/all
-
- Fixes: http://tracker.ceph.com/issues/18856
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 0bd56e871a8549d4b0b1211f09dad2d1120fb606)
-
-commit 8c87d0927447233697d623c995163fde25524fa5
-Merge: a00efd8 bb3c594
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 8 13:16:25 2017 +0100
-
- Merge pull request #13299 from dachary/wip-18848-jewel
-
- jewel: tests: remove qa/suites/buildpackages
-
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
-
-commit 7cf37f68e14935d6d6c3d540ab5fd6b7a2ebb605
-Author: Pan Liu <pan.liu@istuary.com>
-Date: Tue Dec 6 21:04:03 2016 +0800
-
- rbd-nbd: support partition for rbd-nbd mapped raw block device.
-
- Fixes: http://tracker.ceph.com/issues/18115
- Signed-off-by: Pan Liu pan.liu@istuary.com
- (cherry picked from commit 42645a301869b08b4be860fcac491ae4189b313a)
-
- Conflicts:
- src/tools/rbd_nbd/rbd-nbd.cc
- Removed exclusive option
-
-commit bb3c5941d15f9e6ae35c51334f0774dc3ef17f64
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Feb 7 18:33:29 2017 +0100
-
- buildpackages: remove because it does not belong
-
- It should live in teuthology, not in Ceph. And it is currently broken:
- there is no need to keep it around.
-
- Fixes: http://tracker.ceph.com/issues/18846
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 5a43f8d57925da227c95480501ceec10a29395d8)
-
- Conflicts:
- qa/tasks/buildpackages/common.sh (remove)
- qa/tasks/buildpackages/make-rpm.sh (remove)
-
-commit 5c328f0ec51f435e51357f015bb088a450277ece
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Feb 6 18:43:49 2017 +0100
-
- tests: fix regression in qa/tasks/ceph_master.py
-
- https://github.com/ceph/ceph/pull/13194 introduced a regression:
-
- 2017-02-06T16:14:23.162 INFO:tasks.thrashosds.thrasher:Traceback (most recent call last):
- File "/home/teuthworker/src/github.com_ceph_ceph_master/qa/tasks/ceph_manager.py", line 722, in wrapper
- return func(self)
- File "/home/teuthworker/src/github.com_ceph_ceph_master/qa/tasks/ceph_manager.py", line 839, in do_thrash
- self.choose_action()()
- File "/home/teuthworker/src/github.com_ceph_ceph_master/qa/tasks/ceph_manager.py", line 305, in kill_osd
- output = proc.stderr.getvalue()
- AttributeError: 'NoneType' object has no attribute 'getvalue'
-
- This is because the original patch failed to pass "stderr=StringIO()" to run().
-
- Fixes: http://tracker.ceph.com/issues/16263
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit db2582e25e390fcaf75952eb59a73dcff643f49c)
-
-commit a00efd8d2d22aaca89747f4db818866b9d5fc982
-Merge: 84a0fdb 0cf7a61
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 6 16:31:06 2017 -0800
-
- Merge pull request #13280 from athanatos/wip-revert-jewel-18581
-
- Revert "Merge pull request #12978 from asheplyakov/jewel-18581"
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 0cf7a6133ee0d4609242d94088dd77e83665aa93
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Feb 6 10:20:55 2017 -0800
-
- Revert "Merge pull request #12978 from asheplyakov/jewel-18581"
-
- See: http://tracker.ceph.com/issues/18809
-
- This reverts commit 8e69580c97622abfcbda73f92d9b6b6780be031f, reversing
- changes made to c05730ceb3387fb43c35937f0506297a34a44452.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
-
-commit 260801f9bb78169648c3f2052ebc3e1328113367
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Wed Feb 1 19:05:50 2017 +0100
-
- rgw: be aware abount tenants on cls_user_bucket -> rgw_bucket conversion.
-
- Fixes: http://tracker.ceph.com/issues/18364
- Fixes: http://tracker.ceph.com/issues/16355
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit 871e1f51afe9d6c8b88debc07460b4316121f999)
-
-commit e9a6dec55b894b34e3278dbf6b226063fd461cd5
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 22 15:05:30 2017 +0200
-
- rgw: add check for update return value
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 125955e0625461065dc4755b900e51c3598cadb4)
-
-commit a27f6a72ec836af1672e8aa344fb80d067ed20a8
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 22 14:42:14 2017 +0200
-
- rgw: we need to reinit the zonegroup after assignment to avoid invalid cct and store
-
- Fixes: http://tracker.ceph.com/issues/18631
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit ac9a7565ddf801121f22476cf3f66668f311833e)
-
-commit 006140adf7413ec3d482971bb44bfc3ffada2fbf
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 22 14:40:16 2017 +0200
-
- rgw: fix init_zg_from_period when default zone is not set as default
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 5393077e07bed45b9fc007591d365f1229d3e815)
-
-commit 78d296b076a284e35ef4bae931756e7d17a5c09d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Feb 3 17:40:29 2017 -0500
-
- osd: do not send ENXIO on misdirected op by default
-
- In practice this tends to get bubbled up the stack as an error on
- the caller, and they usually do not handle it properly. For example,
- with librbd, this turns into EIO and break the VM.
-
- Instead, this will manifest as a hung op on the client. That is
- also not ideal, but given that the root cause here is generally a
- bug, it's not clear what else would be better.
-
- We already log an error in the cluster log, so teuthology runs will
- continue to fail.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 923e7f5ce5ed437af15e178299a61029ff48e4a2)
-
- # Conflicts:
- # PendingReleaseNotes
- # src/common/config_opts.h
-
-commit 30fb615c3686154275cf10a567a0c3ad961cbb50
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jan 31 00:46:22 2017 +0100
-
- tests: ignore bogus ceph-objectstore-tool error in ceph_manager
-
- Fixes: http://tracker.ceph.com/issues/16263
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 046e873026c59e733f1844b28ffdc030cbe57b36)
-
-commit 3eff1ac2d680d2f6ae1f7ff0d8fe6b6329a17522
-Author: Ricardo Dias <rdias@suse.com>
-Date: Tue Jan 10 15:11:19 2017 +0000
-
- librbd: allow to open an image without opening parent image
-
- Fixes: http://tracker.ceph.com/issues/18325
-
- Signed-off-by: Ricardo Dias <rdias@suse.com>
- (cherry picked from commit 61af1c25015de087a2423811548d975dd7d430b4)
-
- Conflicts:
- src/librbd/ImageState.cc - added missing arg to RefreshRequest::create
- src/librbd/exclusive_lock/PostAcquireRequest.cc -
- deleted, does not exist in jewel
- src/librbd/image/OpenRequest.cc - added missing arg to
- RefreshRequest::create
- src/librbd/internal.cc - added missing arg to ImageState::open
- src/librbd/librbd.cc - added missing arg to ImageState::open
- src/test/librbd/exclusive_lock/test_mock_PostAcquireRequest.cc -
- deleted, does not exist in jewel
- src/test/rbd_mirror/image_replayer/test_mock_CreateImageRequest.cc -
- added missing arg to ImageState::open
- src/test/rbd_mirror/test_PoolWatcher.cc - added missing arg to
- ImageState::open
-
-commit bee1d2c24ab463a0f5c1e28cb70f6b89e0278d22
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jan 9 15:02:02 2017 +0100
-
- rbd-mirror: hold owner lock when testing if lock owner
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 82aa89668d666f434cd19ff444223017b5512c6a)
-
-commit 463e88e24378470ef405bdfb2eb823b04e017e5e
-Author: Piotr Dałek <piotr.dalek@corp.ovh.com>
-Date: Fri Jan 20 16:07:10 2017 +0100
-
- OSDMonitor: clear jewel+ feature bits when talking to Hammer OSD
-
- During upgrade from Hammer to Jewel, when upgrading MONs first and OSDs
- last, Jewel MONs send OSDMaps with components in encoding version not
- encodable by Hammer OSDs, generating extra load on MONs due to requests
- for full OSDMap after failing the CRC check.
- Fix this by not including CEPH_FEATURE_NEW_OSDOP_ENCODING (which
- is responsible for encoding pg_pool_t in version 24 instead of 21) and
- CEPH_FEATURE_CRUSH_TUNABLES5 (responsible for adding chooseleaf_stable
- field into encoded CRUSH map) when CEPH_OSDMAP_REQUIRE_JEWEL flag
- is not present.
- Note that this issue applies only to upgrade from Hammer to Jewel,
- because direct upgrade from Hammer to any other later release is not
- supported. For that reason, there is no need to have this patch in any
- release other than Jewel.
-
- Fixes: http://tracker.ceph.com/issues/18582
- Signed-off-by: Piotr Dałek <piotr.dalek@corp.ovh.com>
-
-commit b1d6c2ebee2e6216cb6aa2afaa9e32ce5e571aa9
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jan 5 13:10:50 2017 -0500
-
- rgw: RGWCloneMetaLogCoroutine uses RGWMetadataLogInfoCompletion
-
- Fixes: http://tracker.ceph.com/issues/18412
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 34a2edbf53f26a21e3206027dc61efc70d9c6aad)
-
- Minor changes:
- RGWCloneMetaLogCoroutine::state_read_shard_status(): use
- boost::intrusive_ptr ctor instead of reset() to be compatible
- with older boost versions (there's no bundled boost in jewel)
-
-commit 7ca400b9bd7b6fd382a9143b450de5a2dbcf057a
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jan 5 13:10:18 2017 -0500
-
- rgw: expose completion for RGWMetadataLog::get_info_async()
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 7b3532e2ad0f478a1670ceb61fd68209df87aa8b)
-
-commit 335a7326a9e8416b114467096d938fafe6b09605
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Dec 21 14:32:04 2016 -0500
-
- rgw: RGWMetaSyncShardCR drops stack refs on destruction
-
- if the coroutine is canceled before collect_children() can clean up
- all of its child stacks, those stack refs will leak. store these
- stacks as boost::intrusive_ptr so the ref is dropped automatically on
- destruction
-
- Fixes: http://tracker.ceph.com/issues/18300
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 060fe72faf6a483a36d481207c6624c46a414231)
-
-commit e5646a0192c1968a542b42dbfe907565b604971e
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Sep 26 11:19:50 2016 -0400
-
- rgw: librados aio wait_for_safe, not wait_for_complete
-
- We want to wait for the op to be durable, not ordered.
-
- Note that wait_for_safe works for read ops as well, despite a
- name that implies an update.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2e447eafb34a7019ca15189d73a3ad3341640dc5)
-
-commit 84a0fdb8b464734a58bfc98edb010f1278fa25f2
-Merge: 96626c2 73cef9f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Feb 2 00:08:29 2017 +0100
-
- Merge pull request #11872 from dachary/wip-17838-jewel
-
- jewel: leak in RGWFetchAllMetaCR
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 96626c2555b4bab7c293ee8a6f3382614c6306d1
-Merge: 3322556 73d2114
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:58:29 2017 +0100
-
- Merge pull request #13182 from smithfarm/wip-18498-jewel
-
- jewel: rgw: Realm set does not create a new period
-
-commit 3322556f3ebabcd82be703bcffbd539454b191e0
-Merge: bc704b1 33c6ef5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:57:40 2017 +0100
-
- Merge pull request #13180 from smithfarm/wip-18547-jewel
-
- jewel: rgw: multisite: segfault after changing value of rgw_data_log_num_shards
-
-commit bc704b1beb1897286e6eaa62f03ba8ddabb17ee9
-Merge: f46c125 8b124c8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:56:21 2017 +0100
-
- Merge pull request #13177 from smithfarm/wip-18676-jewel
-
- jewel: rgw: librgw: objects created from s3 apis are not visible from nfs mount point
-
-commit f46c1259dcd63ce335715817e3aeb18def59c503
-Merge: a3cb5e6 2cb0307
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:55:25 2017 +0100
-
- Merge pull request #13175 from smithfarm/wip-18684-jewel
-
- jewel: rgw: multisite: sync status reports master is on a different period
-
-commit a3cb5e61d18cc48d176b0630fb21ebc603472b4c
-Merge: 73ccbdc 0a47342
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:54:33 2017 +0100
-
- Merge pull request #13173 from smithfarm/wip-18710-jewel
-
- jewel: rgw: slave zonegroup cannot enable the bucket versioning
-
-commit 73ccbdce630350a4601255483469959f00829c45
-Merge: 5d0f2f3 7e51bec
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:53:39 2017 +0100
-
- Merge pull request #13171 from smithfarm/wip-18712-jewel
-
- jewel: rgw: radosgw-admin period update reverts deleted zonegroup
-
-commit 5d0f2f3ec893f5990860f901f40b870a6fd2e737
-Merge: 2f4990d e8f55f6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:13:11 2017 +0100
-
- Merge pull request #13001 from asheplyakov/jewel-bp/18559
-
- jewel: rgw multisite: fix ref counting of completions
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 2f4990d7a6cb355b059e5b8cfb97b6e371155dde
-Merge: a379c01 c21622d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:10:37 2017 +0100
-
- Merge pull request #12997 from asheplyakov/jewel-bp-18569
-
- jewel: radosgw valgrind "invalid read size 4" RGWGetObj
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a379c01ee916e73c12da4ba8ef1c7620be81e3b8
-Merge: 5834732 9a59ce9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:02:14 2017 +0100
-
- Merge pull request #12764 from SUSE/wip-17342-jewel
-
- jewel: tests: assertion failure in a radosgw-admin related task
-
-commit 5834732ad44d67b9414d782799f41e320d66bcf2
-Merge: 9486ccd 9a1258d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:01:02 2017 +0100
-
- Merge pull request #12738 from SUSE/wip-18286-jewel
-
- jewel: rgw: multisite: coroutine deadlock in RGWMetaSyncCR after ECANCELED errors
-
-commit 9486ccd9bd13e3020947a0d669c2e70248f24bfb
-Merge: edf2e6e 5aa9387
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:00:12 2017 +0100
-
- Merge pull request #12678 from Abhishekvrshny/wip-18348-jewel
-
- jewel: rgw ldap: enforce simple_bind w/LDAPv3 redux
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit edf2e6eaccf5d0fa848d56c0920d44c980a86298
-Merge: 2f087a3 d584f9e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:45:54 2017 +0100
-
- Merge pull request #12622 from wido/jewel-15776
-
- jewel: rgw: log name instead of id for SystemMetaObj on failure
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
-
-commit 2f087a37bc3d9ed86c4a6268bd21fe42c843cbb7
-Merge: 2d5f8fd 87a2a95
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:39:52 2017 +0100
-
- Merge pull request #12542 from dreamhost/wip-17076-jewel
-
- jewel: rgw: Replacing '+' with "%20" in canonical uri for s3 v4 auth.
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 2d5f8fda98cba07ce48a3e85896c83b3459a5973
-Merge: 9897021 ddb5403
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:38:17 2017 +0100
-
- Merge pull request #12428 from SUSE/wip-18216-jewel
-
- jewel: rgw-admin: missing command to modify placement targets
-
-commit 9897021fd29716974ba547814c35f8a606dce88f
-Merge: bf1e63b 26c87fd
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:36:19 2017 +0100
-
- Merge pull request #12426 from SUSE/wip-18214-jewel
-
- jewel: add max_part and nbds_max options in rbd nbd map, in order to keep consistent with
-
- http://tracker.ceph.com/issues/17851#note-59
-
-commit bf1e63b6441af02404ad680462de5380e8714c43
-Merge: 9c83af8 8b10d3b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:34:15 2017 +0100
-
- Merge pull request #12419 from SUSE/wip-18217-jewel
-
- jewel: rgw sends omap_getvals with (u64)-1 limit
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 9c83af87ee8716dd7785c2e21fcc8007a92f9c92
-Merge: c0e845c fe753db
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:32:24 2017 +0100
-
- Merge pull request #12405 from jan--f/wip-18199-jewel
-
- jewel: build/ops: install-deps.sh based on /etc/os-release
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit c0e845c4f6b03f3c28c31ba2278be5b20e5be13c
-Merge: 45281fb 4eb7c73
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:29:24 2017 +0100
-
- Merge pull request #12397 from linuxbox2/jewel-next
-
- jewel: rgw: do not abort when accept a CORS request with short origin
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 45281fb4d3ddca81d051cd776269cb111cc26bc1
-Merge: 1f85f84 7db6d1d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 22:15:35 2017 +0100
-
- Merge pull request #12316 from dachary/wip-18101-jewel
-
- jewel: Add workaround for upgrade issues for older jewel versions
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 1f85f847b6a8413047891d6d46e838ad83d5a8b7
-Merge: 735be97 3839727
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 21:37:45 2017 +0100
-
- Merge pull request #12890 from dillaman/wip-18453-jewel
-
- jewel: librbd: new API method to force break a peer's exclusive lock
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 1e75e23b9973c9c5203b3c3ed2cec35333b40d77
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Feb 1 15:24:50 2017 -0500
-
- qa/suites/upgrade/hammer-x: wrap thrash and workloads
-
- We need the thrashing to stop before we do the final upgrade step.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 735be9772f0029eb6c7f9aef7d0469107897521a
-Merge: ce309b8 5400673
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 1 20:23:36 2017 +0100
-
- Merge pull request #12302 from SUSE/wip-18135-jewel
-
- jewel: build/ops: add hostname sanity check to run-{c}make-check.sh
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ce309b8493a3e69498d3495bbbdfa7b2c2e31cf5
-Merge: 4cbe0e3 478e40a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 16:18:04 2017 +0100
-
- Merge pull request #12315 from dachary/wip-18102-jewel
-
- jewel: rgw: Unable to commit period zonegroup change
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4cbe0e398ad9b46eefafbfd2d0202d0cbb65402a
-Merge: e371af6 b502b96
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 16:14:15 2017 +0100
-
- Merge pull request #12314 from dachary/wip-18107-jewel
-
- jewel: multisite: failed assertion in 'radosgw-admin bucket sync status'
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit e371af6b7d17020c1bda09f0de28036a920303fd
-Merge: 056f8ac ece622d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 16:12:40 2017 +0100
-
- Merge pull request #12313 from dachary/wip-18112-jewel
-
- jewel: rgw: multisite requests failing with '400 Bad Request' with civetweb 1.8
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 056f8ac054c82358ec4ea20782a7da327e6ad19e
-Merge: 41fcf74 d9c1d86
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 16:02:05 2017 +0100
-
- Merge pull request #12258 from rzarzynski/wip-rgw-17931-jewel
-
- jewel: rgw: add support for the prefix parameter in account listing of Swift API
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 41fcf740ba9205c08a2995fd69dc29051ed81b6a
-Merge: 8a86bf5 a0b4e60
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:56:48 2017 +0100
-
- Merge pull request #12156 from dachary/wip-17969-jewel
-
- jewel: rgw: multisite upgrade from hammer -> jewel ignores rgw_region_root_pool
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 8a86bf508503f7b22b47c6663b56f6fd7012df4c
-Merge: d71c75a d1df8f7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:34:45 2017 +0100
-
- Merge pull request #11990 from asheplyakov/jewel-17908
-
- jewel: rgw: for the create_bucket api, if the input creation_time is zero, we …
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit d71c75ac6bc2ed576344e0f75fe99ce860b8914d
-Merge: 7d0c6de 6a3c10f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:31:21 2017 +0100
-
- Merge pull request #11876 from dachary/wip-17839-jewel
-
- jewel: rgw: the value of total_time is wrong in the result of 'radosgw-admin log show' opt
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 7d0c6dee032c1254a2c78b589bb48bea335ca0f2
-Merge: a695e8d 3239ce8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:26:21 2017 +0100
-
- Merge pull request #11868 from dachary/wip-17512-jewel
-
- jewel: multisite: metadata master can get the wrong value for 'oldest_log_period'
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a695e8d167ada37260b4ef8ed4595f758fc4421b
-Merge: 4395560 0b7577e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:24:11 2017 +0100
-
- Merge pull request #11866 from dachary/wip-17709-jewel
-
- jewel: rgw: multisite: coroutine deadlock assertion on error in FetchAllMetaCR
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4395560d686cc7ccdc28eaba1f6cbadf57e1bba5
-Merge: 1bc9432 8d3b0e7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:21:33 2017 +0100
-
- Merge pull request #11497 from rzarzynski/wip-rgw-slashinfo-jewel
-
- jewel: rgw: add suport for Swift-at-root dependent features of Swift API
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 1bc9432e744c42fae98c570f09ddc3f4606d2297
-Merge: 92d385e 6c1edcd
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:18:42 2017 +0100
-
- Merge pull request #11477 from dachary/wip-17119-jewel
-
- jewel: rgw: multisite: assert(next) failed in RGWMetaSyncCR
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 92d385e8cb4cff91051464a8552ab5aed4cbfae4
-Merge: a61be36 d54b354
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:17:03 2017 +0100
-
- Merge pull request #11476 from dachary/wip-17162-jewel
-
- jewel: rgw: multisite doesn't retry RGWFetchAllMetaCR on failed lease
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a61be367615f7ef5f8101d0fbbe40615782d8c5c
-Merge: 5821e8d aa24a8f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:15:01 2017 +0100
-
- Merge pull request #11470 from dachary/wip-17514-jewel
-
- jewel: rgw:bucket check remove _multipart_ prefix
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 5821e8d9c448f95f9a4b73e6353db8f7d2cfb534
-Merge: bb702bc 19a836b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 15:12:51 2017 +0100
-
- Merge pull request #10661 from dachary/wip-16871-jewel
-
- jewel: rgw: Have a flavor of bucket deletion in radosgw-admin to bypass garbage collection
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit bb702bc4b9b720af86f759d0e040d57a9a91b3da
-Merge: c5461bc 18545a2
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 1 14:02:56 2017 +0100
-
- Merge pull request #13187 from asheplyakov/jewel-bp-18729
-
- jewel: cli: ceph-disk: convert none str to str before printing it
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit c5461bc9703a9062c3c2ea8022b9f4d4842e0b65
-Merge: 1c6eacb 1481c8f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 13:29:50 2017 +0100
-
- Merge pull request #13153 from smithfarm/wip-no-firefly-on-centos
-
- jewel: tests: upgrade:hammer-x: install firefly only on Ubuntu 14.04
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 1c6eacb6f905cd39248663383da8f797aaef9ebe
-Merge: 5784855 5c4fffa
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 13:17:48 2017 +0100
-
- Merge pull request #13118 from smithfarm/wip-18274-jewel
-
- jewel: Memory leaks in object_list_begin and object_list_end
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5784855782385186a40696c8bcec151403bfae0c
-Merge: cc867e1 173ea7f
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 1 13:15:09 2017 +0100
-
- Merge pull request #13025 from SUSE/wip-18605-jewel
-
- jewel: ceph-disk prepare writes osd log 0 with root owner
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit cc867e1ed2b631c6dd380a575c4475973b5a2a4d
-Merge: 864f915 3a02868
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 13:12:57 2017 +0100
-
- Merge pull request #13106 from ceph/wip-cd-dev-option
-
- qa/tasks: jewel backport - ceph-deploy use of dev option
-
- Reviewed-by: Yuri Weinstein <yweinste@redhat.com>
-
-commit 864f9159a97b671f4332b917b72a29600c79aa4d
-Merge: 8e69580 ff91688
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 13:02:54 2017 +0100
-
- Merge pull request #13062 from asheplyakov/jewel-bp-18379
-
- jewel: msg/simple: clear_pipe when wait() is mopping up pipes
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 8e69580c97622abfcbda73f92d9b6b6780be031f
-Merge: c05730c 509de4d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:53:06 2017 +0100
-
- Merge pull request #12978 from asheplyakov/jewel-18581
-
- jewel: ReplicatedBackend: take read locks for clone sources during recovery
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit c05730ceb3387fb43c35937f0506297a34a44452
-Merge: 36005e9 fcdd5e7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:33:19 2017 +0100
-
- Merge pull request #12755 from Abhishekvrshny/wip-18284-jewel
-
- jewel: Need CLI ability to add, edit and remove omap values with binary keys
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 36005e9efa4a5b75efecfd0eec6effc17639d7db
-Merge: 615549a dcc9483
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:31:13 2017 +0100
-
- Merge pull request #12677 from SUSE/wip-18104-jewel
-
- jewel: mon: ceph osd down detection behaviour
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 615549abbf7eed157289dde4603e3c0b25a40d2e
-Merge: 90c9ad7 8a774cc
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:28:50 2017 +0100
-
- Merge pull request #12291 from asheplyakov/jewel-18108
-
- jewel: msg/simple/Pipe: error decoding addr
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 90c9ad7fe60b89a87f53b2b224100befc334dbe1
-Merge: ef7d826 a9da605
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:27:46 2017 +0100
-
- Merge pull request #11998 from Abhishekvrshny/wip-17877-jewel
-
- jewel: FileStore: fiemap cannot be totally retrieved in xfs when the number of extents > 1364
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit ef7d82679e91d1e2364e3fb433542940511598ee
-Merge: d1a019a fff2127
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 12:26:28 2017 +0100
-
- Merge pull request #11991 from asheplyakov/jewel-17909
-
- jewel: osd: limit omap data in push op
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit d1a019ad3b0a35bd8f339f0ceefd5f8617ee18fa
-Merge: 0b33f2c b044361
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Jan 31 11:40:41 2017 -0500
-
- Merge pull request #12045 from Abhishekvrshny/wip-17875-jewel
-
- jewel: rgw: file: remove spurious mount entries for RGW buckets
-
-commit 0b33f2caf7bf2762ac66779fba0032868e9488e5
-Merge: 92827ae 75d0580
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Jan 31 16:42:14 2017 +0100
-
- Merge pull request #13161 from smithfarm/wip-lfn-upgrade-hammer
-
- jewel: tests: add require_jewel_osds before upgrading last hammer node
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 92827aeb4ea557f204f850a86d69eeed74812c93
-Merge: 790f2a1 077290b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 16:36:17 2017 +0100
-
- Merge pull request #12425 from SUSE/wip-18190-jewel
-
- jewel: rbd-mirror: gmock warnings in bootstrap request unit tests
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 790f2a11860378785bab7fb0195a455ec1d70857
-Merge: 32890c1 649b1d4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 15:16:45 2017 +0100
-
- Merge pull request #13129 from smithfarm/wip-18558-jewel
-
- jewel: rbd: bench-write will crash if --io-size is 4G
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 32890c153dcd8abb3e1ea942f16718582bd0c836
-Merge: c0e3ae3 dd1f425
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 15:15:30 2017 +0100
-
- Merge pull request #13155 from smithfarm/wip-18494-jewel
-
- jewel: rbd: [rbd-mirror] sporadic image replayer shut down failure
-
-commit c0e3ae3332a51dab3a17f1546b6e8258eaea09eb
-Merge: 7849ea5 c2f86a4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 15:14:31 2017 +0100
-
- Merge pull request #13128 from smithfarm/wip-18633-jewel
-
- jewel: rbd: [qa] crash in journal-enabled fsx run
-
- http://tracker.ceph.com/issues/13512
-
-commit 7849ea5166030e7f0b331ef21d0867b235fedb2d
-Merge: 833c58e 61e1b0c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 15:11:43 2017 +0100
-
- Merge pull request #13104 from idryomov/wip-fio-unmap-devices-jewel
-
- qa/tasks: backport rbd_fio fixes to jewel
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 833c58edc0445fc54364cc5ae7a58e1c17a96422
-Merge: 26798a1 16a2fec
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 15:10:03 2017 +0100
-
- Merge pull request #13156 from smithfarm/wip-18455-jewel
-
- jewel: rbd: Attempting to remove an image w/ incompatible features results in partial removal
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 26798a1850c2ee6de2e6ec2fd9b9597e447f63dd
-Merge: dff349c 99bafc1
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:59:56 2017 +0100
-
- Merge pull request #13157 from smithfarm/wip-18434-jewel
-
- jewel: rbd: Improve error reporting from rbd feature enable/disable
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit dff349c8249388e5b31314dc6297446bf9f0f9e3
-Merge: f9b56db 1555638
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:59:04 2017 +0100
-
- Merge pull request #13168 from trociny/wip-18550-jewel
-
- jewel: librbd: metadata_set API operation should not change global config setting
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f9b56dbdb28cd02ea665f0dfde630f8419a1067c
-Merge: 586f4ea 9c84a65
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:55:58 2017 +0100
-
- Merge pull request #12739 from SUSE/wip-18323-jewel
-
- jewel: JournalMetadata flooding with errors when being blacklisted
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 586f4ead083518e95115d31dbecfbf4d5995e7ed
-Merge: 9af8b21 ad869de
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:54:19 2017 +0100
-
- Merge pull request #12416 from SUSE/wip-18219-jewel
-
- jewel: msg: don't truncate message sequence to 32-bits
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 9af8b2191268d1b2b4e4d4ba234ba12d265e3731
-Merge: 1a9eb84 336c351
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:52:00 2017 +0100
-
- Merge pull request #13115 from smithfarm/wip-18404-jewel
-
- jewel: mon: cache tiering: base pool last_force_resend not respected (racing read got wrong version)
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 1a9eb8454368160be35e966b5264c296db87ac0a
-Merge: b03280d 35e10a0
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:50:52 2017 +0100
-
- Merge pull request #13045 from SUSE/wip-18553-jewel
-
- jewel: mon: peon wrongly delete routed pg stats op before receive pg stats ack
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit b03280d67c2464599289da659152a6877da65827
-Merge: e524035 7bbb5a8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 14:49:56 2017 +0100
-
- Merge pull request #13117 from smithfarm/wip-18280-jewel
-
- jewel: mon: osd flag health message is misleading
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit e5240357a6901a7e37440f01883ecac56fbc771f
-Merge: c4f8684 820ab7d
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Jan 31 08:34:22 2017 -0500
-
- Merge pull request #12320 from dachary/wip-18061-jewel
-
- jewel: rgw:fix for deleting objects name beginning and ending with underscores of one bucket using POST method of js sdk.
-
-commit c4f868406274881a8b5bbe97bc19e32146efe861
-Merge: e47969e 13fa5db
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Jan 31 08:31:34 2017 -0500
-
- Merge pull request #11759 from Abhishekvrshny/wip-17783-jewel
-
- jewel: rgw: json encode/decode of RGWBucketInfo missing index_type field
-
-commit e47969e5d5cdf51149c23da4eec04dd0a2faec6f
-Merge: b278ece edac06f
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:10:46 2017 +0100
-
- Merge pull request #12153 from dachary/wip-18010-jewel
-
- jewel: Cleanly reject session evict command when in replay
-
-commit b278ece85be7ed4f57dec6f524f187d1d10f4616
-Merge: 2d2e4af e1af490
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:10:23 2017 +0100
-
- Merge pull request #12324 from dachary/wip-18103-jewel
-
- jewel: truncate can cause unflushed snapshot data lose
-
-commit 2d2e4afa3eef29ee82ec8057d6172f5706f4b872
-Merge: 916e95d 7819adb
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:09:59 2017 +0100
-
- Merge pull request #12783 from SUSE/wip-18413-jewel
-
- jewel: cephfs: lookup of /.. in jewel returns -ENOENT
-
-commit 916e95d13692e9a025e47b11724aa65d51860411
-Merge: 384a425 8404426
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:08:56 2017 +0100
-
- Merge pull request #12921 from xiaoxichen/wip-18520-jewel
-
- Jewel: speed up readdir by skipping unwanted dn
-
-commit 384a425cf69b7554e460d528e7f788c3b0c2eff1
-Merge: 4fd62b6 b147022
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:08:30 2017 +0100
-
- Merge pull request #13119 from smithfarm/wip-18565-jewel
-
- jewel: MDS crashes on missing metadata object
-
-commit 4fd62b65c2097052378043ee82c937bb702263c1
-Merge: 01a6b1f bc9b779
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:08:20 2017 +0100
-
- Merge pull request #13120 from smithfarm/wip-18551-jewel
-
- jewel: ceph-fuse crash during snapshot tests
-
-commit 01a6b1f31eafc66cea06702984a77391562e0ad1
-Merge: 831c1d8 fef3de8
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:08:01 2017 +0100
-
- Merge pull request #13123 from smithfarm/wip-18282-jewel
-
- jewel: monitor cannot start because of FAILED assert(info.state == MDSMap::STATE_STANDBY)
-
-commit 831c1d8c8fc3e8777559da8a154aff104f1c831d
-Merge: 7fbe164 df4558c
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:07:52 2017 +0100
-
- Merge pull request #13125 from smithfarm/wip-18195-jewel
-
- jewel: cephfs: fix missing ll_get for ll_walk
-
-commit 7fbe164962d488a6b2c2b921619794fea254b848
-Merge: 3793798 5eda4aa
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jan 31 14:07:41 2017 +0100
-
- Merge pull request #13126 from smithfarm/wip-18192-jewel
-
- jewel: standby-replay daemons can sometimes miss events
-
-commit 75d05809a66bee219031a7ccb64d414a2d6c8775
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 27 22:27:18 2017 +0100
-
- tests: add require_jewel_osds before upgrading last hammer node
-
- Note: this commit was inspired by
- http://github.com/ceph/ceph-qa-suite/commit/50758a4810794d265c5d36a71d1e16799251a00d
-
- As of 10.2.4, when upgrading a cluster from hammer to jewel, after the last
- node is upgraded the MON will put the cluster into HEALTH_WARN and say: "all
- OSDs are running jewel or later but the 'require_jewel_osds' osdmap flag is not
- set". The release notes say:
-
- This is a signal for the admin to do "ceph osd set require_jewel_osds" – by
- doing this, the upgrade path is complete and no more pre-Jewel OSDs may be
- added to the cluster.
-
- Fixes: http://tracker.ceph.com/issues/18719
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 3793798049ba74f8f3a5742c50398c8e89bbac0b
-Merge: a1a209e 23680e0
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 11:19:39 2017 +0100
-
- Merge pull request #13049 from SUSE/wip-18433-jewel
-
- jewel: rados bench seq must verify the hostname
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a1a209ed1b33fbb78a4335f69f1f2d5d9085bda4
-Merge: 25bd0be c2bbf7f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:40:52 2017 +0100
-
- Merge pull request #13040 from SUSE/wip-fs-thrash-jewel
-
- jewel: tests: run fs/thrash on xfs instead of btrfs
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 25bd0befb0749bb2759059559405f5bafe933d20
-Merge: bdb5e36 7a341a8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:39:35 2017 +0100
-
- Merge pull request #13029 from SUSE/wip-18611-jewel
-
- jewel: cephfs: client segfault on ceph_rmdir path /
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit bdb5e362dfec1debf1de5db6c14b23a63437a0d6
-Merge: 1bc16a4 f24c3ff
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:34:46 2017 +0100
-
- Merge pull request #12875 from asheplyakov/jewel-bp-18485
-
- jewel: osd/PG: publish PG stats when backfill-related states change
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 1bc16a4333e27c9c3b603af6c52722183ce10a51
-Merge: 1722b46 2296c87
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:32:58 2017 +0100
-
- Merge pull request #12789 from SUSE/wip-18417-jewel
-
- jewel: osd: leveldb corruption leads to Operation not permitted not handled and assert
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 1722b4684808eb968b0997b8584477a51cd8940a
-Merge: 345bcdc bbf4c27
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:28:22 2017 +0100
-
- Merge pull request #12761 from SUSE/wip-18402-jewel
-
- jewel: tests: objecter_requests workunit fails on wip branches
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 345bcdc0a41ac362ae813a64756fcd3f1d2ff2f4
-Merge: 85ae998 ef2709a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:10:20 2017 +0100
-
- Merge pull request #11947 from SUSE/wip-17884-jewel
-
- jewel: mon: OSDs marked OUT wrongly after monitor failover
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 85ae998886c5f8b429b20a8a7d80b2ed4ce57e37
-Merge: 0ddbaf3 4f8287f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jan 31 08:07:40 2017 +0100
-
- Merge pull request #11508 from SUSE/wip-17583-jewel
-
- jewel: utime.h: fix timezone issue in round_to_* funcs.
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit 3a02868be40f3431d2bfedf16737b37ebf1a7e89
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Thu Jan 26 13:21:30 2017 -0800
-
- Revert "use the create option during instantiation"
-
- jewel cephfs still uses old Filesystem initializtion method
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
-
-commit ebdc0d2ce82ba67aecfaa25e66270c9529238700
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Thu Dec 15 14:11:00 2016 -0800
-
- use dev option instead of dev-commit
-
- Fixes: http://tracker.ceph.com/issues/18736
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
-
-commit 0ddbaf384a76e87f218af1babb99f4a08da5abce
-Merge: 4ef0a63 016b059
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Jan 30 13:25:23 2017 -0500
-
- Merge pull request #13169 from linuxbox2/jewel-mg-errortrans
-
- jewel:rgw: fix interface compliance of RGWCivetWeb::write_data()
-
-commit 3839727f2969337a6d70e948db3de034a1346e90
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 30 11:38:21 2017 -0500
-
- librbd: ensure owner lock is held before purging cache
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit d0c12edc52d45a0e429e0d4cca78f8724e39e926
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jan 6 11:17:10 2017 -0500
-
- librados: blacklist_add should wait for latest OSD map
-
- This ensures that future operations against the OSDs force
- a OSD map update to notice the blacklisted client.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9242a2e4e1a5a9fcea48d8135b1589493fc28242)
-
-commit bf8b78c3a6fb8a6b516793493c4169ceee15d9f8
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 5 13:31:57 2017 -0500
-
- librbd: prevent assertion failure when journal IO is blacklisted
-
- Fixes: http://tracker.ceph.com/issues/18429
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c720f6e3704ed7e8cf41dffdb931dbb05d59a003)
-
-commit 2ca703073fd7563c06a310b66191fb4a99d4fa63
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 4 12:12:27 2017 -0500
-
- librbd: ignore blacklist error when releasing exclusive lock
-
- This ensures the journal and object map are properly closed so that the
- image can be properly closed w/o failing any assertions.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 418dcf29cb8c450049047e09a4dad2941af87018)
-
-commit 7aa424ab450afb6ff308272cedc854a33420d081
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 3 15:29:17 2017 -0500
-
- librbd: fail immediately if the exclusive lock cannot be acquired
-
- Fixes: http://tracker.ceph.com/issues/16988
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 47b89f4d48a0b99876462167389df28893a8d418)
-
-commit 5d96332700cbb05f541c211c375ca97506b41aad
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 3 14:51:14 2017 -0500
-
- librbd: add new lock_get_owners / lock_break_lock API methods
-
- If the client application supports failover, let the application
- force break the current lock and blacklist the owner. This is
- required in case the current lock owner is alive from the point-of-view
- of librbd but failover was required due to a higher level reason.
-
- Fixes: http://tracker.ceph.com/issues/18327
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9a5a8c75a025143cee6f92f3dbc3a12f2b6a9ad7)
-
- Conflicts:
- src/pybind/rbd/rbd.pyx: trivial resolution
- src/test/pybind/test_rbd.py: trivial resolution
-
-commit 245898aa9ae3d6fe03668f3a88b2fac84d11cb29
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Dec 22 15:00:23 2016 -0500
-
- librbd: separate break lock logic into standalone state machine
-
- The current lockers are now queried before the lock is attempted to
- prevent any possible race conditions when one or more clients attempt
- to break the lock of a dead client.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 23f60fee86d1ff9b261fbb6411746a2a9479cf19)
-
-commit 968a10b2adc56a45f292ac9faf9b671f2f66b996
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Dec 22 17:24:47 2016 -0500
-
- librbd: separate locker query into standalone state machine
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 03533b912c59d5e433d0f006e1a063e014468ca5)
-
- Conflicts:
- src/test/librbd/exclusive_lock/test_mock_AcquireRequest.cc: trivial resolution
-
-commit 652e65a2143f9fa2a69822fe9924e59a83ba5c21
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Mon Feb 22 15:17:20 2016 +0100
-
- librbd/exclusive_lock/AcquireRequest.cc: init lock_type
-
- Fixup for:
-
- CID 1351687 (#1 of 1): Uninitialized scalar variable (UNINIT)
- var_decl: Declaring variable lock_type without initializer
- uninit_use: Using uninitialized value lock_type.
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit da9ede90cd257ff605ab3ebfcc1aa995f655f1cc)
-
-commit d4085d34f31fa9eed73d69f241184b99e5198b22
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Wed Jun 8 15:11:02 2016 +0300
-
- librbd: API methods to directly acquire and release the exclusive lock
-
- Fixes: http://tracker.ceph.com/issues/15632
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 8f1b47fd5da021ec320fd0b5fc0fd68ffff8a706)
-
- Conflicts:
- src/common/config_opts.h: trivial resolution
- src/include/rbd/librbd.h: trivial resolution
- src/librbd/CMakeLists.txt: trivial resolution
- src/librbd/Makefile.am: trivial resolution
- src/test/librbd/test_librbd.cc: trivial resolution
-
-commit 476e2b14364daa4363425b392199e9cc23c2f02b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Jun 10 14:04:04 2016 +0300
-
- rbd-mirror: fix error messages formatting
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 2af72480d94b2b90ed6eac7b3e131437864eada7)
-
- Conflicts:
- src/tools/rbd_mirror/image_replayer/BootstrapRequest.cc: trivial resolution
-
-commit 374d89f3706aea019f053350c9d790cd8c2c1423
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Sep 11 09:08:41 2016 -0400
-
- librbd: ignore partial refresh error when acquiring exclusive lock
-
- Fixes: http://tracker.ceph.com/issues/17227
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 24396dcba77a97342d19916fdd285bae0c38fd19)
-
-commit 0bd843aa7bcf212bf370800a4c0c3176af5d6e9e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Sep 9 08:31:52 2016 -0400
-
- librbd: potential seg fault when blacklisting an image client
-
- Fixes: http://tracker.ceph.com/issues/17251
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7025fe8976f8672a2fce05ea693c06a8e9faed19)
-
-commit 273fd99085f13fb5f76e9e60a81012c22c49418d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Sun Sep 4 10:48:48 2016 -0400
-
- librbd: potential double-unwatch of watch handle upon error
-
- Fixes: http://tracker.ceph.com/issues/17210
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1068ded0cba59831a0712f347946731689a68553)
-
-commit 33e037a089337b5c96a03befac44549e680db13d
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 31 21:33:54 2016 -0400
-
- librbd: deadlock when replaying journal during image open
-
- Fixes: http://tracker.ceph.com/issues/17188
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3dc13067f5f0d140ee76b0166eb4cec568610211)
-
-commit bca65c46fdac4829132308f7fcf2ac59e2aaea6c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 31 20:56:54 2016 -0400
-
- librbd: improve image state machine debug log messages
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c71182a73146c65dfe7bf955ad67ebeebcf7b1fd)
-
-commit a12f435041860f3329e2465586805a168dcc87c9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 17 15:16:37 2016 -0400
-
- librbd: remove unused refresh request logic
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5156b438d5ad69803b4d4529083039db825d6c8c)
-
-commit a475bfb4d2c8906cfad52a7d81196a87c4c2f0bc
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 17 14:58:22 2016 -0400
-
- librbd: interlock image refresh and lock operations
-
- Fixes: http://tracker.ceph.com/issues/16773
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 583ac91872859e81d68c9d346516522c6aa1614c)
-
-commit 3d61b69b11ef67719e78d77fec000403d43d70d3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Aug 17 14:02:32 2016 -0400
-
- librbd: image state machine now has hooks for lock requests
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a5b8c9c1d81ed609e71a5a8abe4d0e90194408cc)
-
-commit 4ea8d55c95304e07a90a6c4b8890787ccaeecedf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 16 16:23:57 2016 -0400
-
- librbd: integrate asynchronous image rewatch state machine
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d0d97fcca2cb427adbdf5c32f0e07830c38aaf4b)
-
-commit 62f265b30531141dfda8a7490d18b1d0d787fe13
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 15 15:46:23 2016 -0400
-
- librbd: helper state machine for asynchronous watch recovery
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 32180aaf42050a01981c33f84edd95eff931ee6c)
-
- Conflicts:
- src/librbd/CMakeLists.txt: trivial resolution
- src/librbd/Makefile.am: trivial resolution
-
-commit ead7201874ed8617d86dc548798aa4bde7168fdb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 16 14:20:20 2016 -0400
-
- librbd: exclusive lock now supports reacquiring a lost lock
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 66c605573f840c0db8b3630315ea50e9fc987509)
-
-commit 38ca4ff1d8d21db17f382a6821d098e472be4657
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 16 13:11:19 2016 -0400
-
- librbd: store exclusive lock cookie instead of recalculating
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit aa53f74ad261f453e971bf3cef0b96bba4932b7b)
-
-commit 73a445572e8fab135c7d87b80e374355e77d2e28
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Aug 16 12:28:09 2016 -0400
-
- librbd: helper state machine to update lock cookie
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d523df8dafac472f95233805d3a82edb3b3b02ea)
-
-commit 98a5e116c28ec9096ce68308be06e794883ce29e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Aug 15 16:50:43 2016 -0400
-
- cls_lock: support updating the lock cookie without releasing the lock
-
- Fixes: http://tracker.ceph.com/issues/17015
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 377f57652f8ddae53f44c59f21e89c51b2bf0f7b)
-
-commit 8a75f980d3cb00cc31c479f5e4253a6385563663
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jan 30 14:19:05 2017 +0100
-
- tests: make distros/all/centos.yaml be a symlink to centos_7.3
-
- Before this commit, tests that used distros/all/centos.yaml would
- fail on VPS because VPS defaults to centos 7.0 when os_version is not
- specified.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4ef0a63e7a29eafad6dda52ea3c92846f03f268d
-Merge: efad365 900f2ac
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:26:37 2017 +0100
-
- Merge pull request #12323 from dachary/wip-18024-jewel
-
- jewel: rbd: FAILED assert(m_processing == 0) while running test_lock_fence.sh
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit efad365753b7847ecce1280fe267d97d2ccf2888
-Merge: a1e7c06 64c0cae
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:25:48 2017 +0100
-
- Merge pull request #12649 from xiaoxichen/wip-18278-jewel
-
- jewel: rbd: librbd: use proper snapshot when computing diff parent overlap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a1e7c06dcb1b47eceea273e9b6ae5044c5958a07
-Merge: ed50d14 8877ee4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:24:22 2017 +0100
-
- Merge pull request #12741 from SUSE/wip-18320-jewel
-
- jewel: rbd status: json format has duplicated/overwritten key
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ed50d14b4fa4acd13b4197e881666b2120525601
-Merge: b7481a8 d313e42
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:23:44 2017 +0100
-
- Merge pull request #12753 from Abhishekvrshny/wip-18288-jewel
-
- jewel: rbd-mirror: image sync object map reload logs message
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit b7481a85453ed059b7ab40932e57ac5354b7581f
-Merge: 2ebb894 944ec03
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:23:09 2017 +0100
-
- Merge pull request #12756 from Abhishekvrshny/wip-18276-jewel
-
- jewel: rbd-nbd: invalid error code for "failed to read nbd request" messages
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2ebb8948858a33c077f6a1481a1ce3e3f23d5d74
-Merge: 60a2037 b359935
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:22:37 2017 +0100
-
- Merge pull request #12822 from SUSE/wip-18450-jewel
-
- jewel: tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 60a2037ef52a6fc75171260067cee9c9bcc66bd9
-Merge: 60bc353 cdd6cbf
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:21:25 2017 +0100
-
- Merge pull request #12909 from dillaman/wip-18290-jewel
-
- jewel: librbd: properly order concurrent updates to the object map
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 60bc35357cdbe39e8c85ebd217526c1b9ad4fc76
-Merge: 18cb72c aa8e57d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:20:07 2017 +0100
-
- Merge pull request #12529 from SUSE/wip-18270-jewel
-
- jewel: rbd: add image id block name prefix APIs
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 18cb72c129d6c90afa489fd1cda6713fe8a9e1ed
-Merge: 20a480d 4a157ea
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jan 30 13:18:32 2017 +0100
-
- Merge pull request #12322 from dachary/wip-18110-jewel
-
- jewel: diff calculate can hide parent extents when examining first snapshot in clone
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 18545a27eccfa0b22b1782bb52e3f47afef8ec39
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jan 3 20:40:00 2017 +0800
-
- ceph-disk: convert none str to str before printing it
-
- Error('somethings goes wrong', e) is thrown if exception `e` is caught
- in ceph-disk, where e is not a string. so we can not just concat it in
- Error's __str__(). so cast it to str before doing so.
-
- introduced by d0e29c7
-
- Fixes: http://tracker.ceph.com/issues/18371
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5e0dd1e7df43a3be589d17878714756a22052d8e)
-
-commit 077290b873e2cd991a995de14a116d85d83ba66e
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Dec 6 23:19:54 2016 +0200
-
- rbd-mirror: fix gmock warnings in bootstrap request unit tests
-
- Fixes: http://tracker.ceph.com/issues/18156
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 376026d7b24c77a59ef95d0f66686494caf0e9d0)
-
-commit ce32297c880779532ba3482edb93fc4e4340d94b
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Dec 2 10:10:52 2016 +0200
-
- qa/workunits/rbd: test_status_in_pool_dir: explicitly check grep return value
-
- Otherwise, it does not work as supposed to work in statements like below:
-
- set -e
- test_status_in_pool_dir ... && ...
-
- (e.g. in wait_for_status_in_pool_dir)
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 7c078eda0fc260f6a885fa43f377b47844867d12)
-
-commit 6d729d231401f9253aa1cbde06e57cd8bd066a90
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Nov 29 11:44:05 2016 +0200
-
- rbd-mirror: make 'rbd mirror image resync' work after split-brain
-
- Fixes: http://tracker.ceph.com/issues/18051
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 6cb1ed485f89f30fe6dda31e77e16e23f9b5b2ab)
-
-commit e34a403df5e247b0937abee617758e0838fc0c8e
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Nov 29 11:40:14 2016 +0200
-
- rbd-mirror: split-brain issues should be clearly visible in mirror status
-
- Fixed: http://tracker.ceph.com/issues/16991
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit cccca67d5f898c43207a19a6e029a1abb86efbcb)
-
-commit 8f9a93c68947c05636a633c92dbbd69d2ed70c3d
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Sun Nov 27 16:27:51 2016 +0200
-
- qa/workunits/rbd: use image id when probing for image presence
-
- This fixes a race in resync tests leading to false negative results.
-
- Fixes: http://tracker.ceph.com/issues/18048
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit c23f56b9835f4e59d72f20a2218de8236574e65f)
-
-commit 1f2d30cbb735d2c7fd3eea6431f1a1e9555d5942
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Oct 3 10:10:33 2016 +0300
-
- qa/workunits/rbd: check status also in pool dir after asok commands
-
- wait_for_image_replay_stopped returns not when the state is stopped,
- but when the state is not replaying. So a race was possible when an
- asok command was running when the previos stop command was still in
- progress, leading to unexpected results.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 2882f8c01a42ee3cfe22a838b64f21c93cf84d16)
-
- Conflicts:
- qa/workunits/rbd/rbd_mirror.sh (tests for not backported features)
-
-commit 5d0fba44501130165416a57a10490ff8ba292d48
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Aug 2 20:06:17 2016 +0300
-
- qa/workunits/rbd: wait for image deleted before checking health
-
- This is a fixup to the previous commit.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit a5f63f726146c2c230d172f6909d8ca1ad46895a)
-
-commit 38e06fbfcd8ba3a529af0a902c1af6168cf7b0f6
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jul 28 14:45:56 2016 +0300
-
- qa/workunits/rbd: wait for image deleted before checking health
-
- When a primiry image is being deleted, the mirrored image might
- temporary be reported in error state, before deletion is propagated.
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 8dbe42d34520d0b44b189ae4d8b96559752a57da)
-
-commit 735e32bb53fd370058ed8dfb0e29e4a9cfc6e86f
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jul 28 14:49:37 2016 +0300
-
- qa/workunits/rbd: small fixup and improvements for rbd-mirror tests
-
- - log to stderr;
- - log status if a `wait_for` function failed;
- - don't needlessly sleep in `wait_for` functions after the last
- unsuccessful iteration;
- - make `wait_for_pool_images` work for image removal case;
- - fix `wait_for_pool_images` reset timeout (last_count set).
-
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit fdb971a2660111d35f0a3077f17a9ca85ca2ef54)
-
-commit bf3400f7f1dbc14917f3392c8f9221b6b02df185
-Author: Wido den Hollander <wido@42on.com>
-Date: Mon Jan 23 08:18:27 2017 +0100
-
- systemd: Restart Mon after 10s in case of failure
-
- In some situations the IP address the Monitor wants to bind to
- might not be available yet.
-
- This might for example be a IPv6 Address which is still performing
- DAD or waiting for a Router Advertisement to be send by the Router(s).
-
- Have systemd wait for 10s before starting the Mon and increase the amount
- of times it does so to 5.
-
- This allows the system to bring up IP Addresses in the mean time while
- systemd waits with restarting the Mon.
-
- Fixes: #18635
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit e73eb8cc1e0d45af1f0b7852c551f2ddfb82a520)
-
-commit 20a480defb607e6e5a72f2bcc3868fb14f9e56de
-Merge: 6b4bcd3 bcd4698
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sun Jan 29 13:22:49 2017 +0100
-
- Merge pull request #13043 from SUSE/wip-18570-jewel
-
- jewel: Python Swift client commands in Quick Developer Guide don't match configuration in vstart.sh
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 401271e353fcfd59bf0285c53643b667281954d0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jan 29 13:12:43 2017 +0100
-
- build/ops: add libldap dependency for RGW
-
- This is a minimal manual backport of the relevant parts of
- a4c7e13d17ceff3ee15fc311c2a344cd4573821d and
- b3b3185008a0a2149dcba59813e0f0400d2e47de
-
- Fixes: http://tracker.ceph.com/issues/17313
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 73d2114ed60e8297d26b7f31f0500034b3d784e7
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 1 12:56:44 2017 +0200
-
- radosgw-admin: check for name mistmatch in realm set
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 4facc5f4f3e842d371115a9a04d86257280014f0)
-
-commit e4b6cf633a88dc7fcd48f9a4a54d10fea7bef7e2
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 1 12:40:37 2017 +0200
-
- radosgw-admin: relam set can use input redirection
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit b8b3ae3be3f8e4c05cb23062d25c701b15900475)
-
- Conflicts:
- src/rgw/rgw_admin.cc ("return EINVAL" in master, "return -EINVAL" in
- jewel; but it's irrelevant because the whole block is deleted)
-
-commit 3cd42f4b75c9ea9d253c276e61789d5a2b2395b4
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Jan 1 12:36:04 2017 +0200
-
- radosgw-admin: realm set should create a new realm
-
- Fixes: http://tracker.ceph.com/issues/18333
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit e23339c9ef34f6b9df90b1ab64b550af9b541d9e)
-
-commit 33c6ef53413ef83f84be3bc3825125030aa2281b
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jan 11 09:32:59 2017 -0500
-
- rgw: fix off-by-one in RGWDataChangesLog::get_info
-
- Fixes: http://tracker.ceph.com/issues/18488
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit a0974fdcf62e60cf31bc15588e7b718da6f6ade3)
-
-commit 8b124c84749e0fdd6663aa8302e0bd93a52626e7
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Jan 19 18:14:30 2017 -0500
-
- rgw_file: add timed namespace invalidation
-
- With change, librgw/rgw_file consumers can provide an invalidation
- callback, which is used by the library to invalidate directories
- whose contents should be forgotten.
-
- The existing RGWLib GC mechanism is being used to drive this. New
- configuration params have been added. The main configurable is
- rgw_nfs_namespace_expire_secs, the expire timeout.
-
- Updated post Yehuda review.
-
- Fixes: http://tracker.ceph.com/issues/18651
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit deb2c1ea985fcb906e47b93fd3d0117794e2d0a1)
-
- Conflicts:
- src/rgw/rgw_lib_frontend.h - in class RGWLibProcess : public RGWProcess
- there was no public method stop() in jewel (now there is)
-
-commit 2cb0307e7522a8dac9e6a400d987e22b9c09b56a
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Fri Jan 13 16:32:55 2017 +0100
-
- rgw_admin: read master log shards from master's current period
-
- Also make the sync output look similar to the output of data sync
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
-
- (cherry picked from commit cc306c506ca6607223cb89cd388f8e18673c4fe2)
-
-commit b2fedddd3daf544d935ba4f80a5feef35400f2e3
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Fri Jan 13 16:29:47 2017 +0100
-
- rgw: allow getting master log shards info on specified period
-
- This is needed for rgw admin's sync status or else we end up always
- publishing that we're behind since we are always checking against
- master's first period to sync from
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit 063c949d4409a18a22b64791d497e20f7473bc01)
-
-commit a0e08935b342ff3713ab9172a541e284fd1bb006
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Thu Jan 12 22:09:01 2017 +0100
-
- rgw_admin: get master's period from store's current period info
-
- This ensures that we get the current period in contrast to the admin log
- which gets the master's earliest period.
-
- Fixes: http://tracker.ceph.com/issues/18064
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit 4ca18df7198a9f0ded8b0100a70b5db7187c3de4)
-
-commit 0a4734261bd2f02f8b1acfae8ae65daf6b54d7d7
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Dec 12 14:00:05 2016 +0100
-
- rgw: complete versioning enablement after sending it to meta master
-
- Fixes: http://tracker.ceph.com/issues/18003
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 2d8aafb9dbe64bd9dd2b7d5ed50c6e9550cbe1ab)
-
-commit 7e51bec0dd77bedc248a595e1ab63f87d7a30458
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Dec 25 12:36:34 2016 +0200
-
- rgw: clear master_zonegroup when reseting RGWPeriodMap
-
- Fixes: http://tracker.ceph.com/issues/17239
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit d8f42fe6be659c1d48bf04b30aa54ad616936145)
-
-commit 509de4d9a2d3ba95e9f9e0375bd13239280b0e66
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Jan 18 10:24:13 2017 -0800
-
- PrimaryLogPG::try_lock_for_read: give up if missing
-
- The only users calc_*_subsets might try to read_lock an object which is
- missing on the primary. Returning false in those cases is perfectly
- reasonable and avoids the problem.
-
- Fixes: http://tracker.ceph.com/issues/18583
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 3833440adea6f8bcb0093603c3a9d16360ed57ec)
-
-commit cedaecf88efd3e4807e764d023bb956f806051da
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Nov 23 15:41:13 2016 -0800
-
- ReplicatedBackend: take read locks for clone sources during recovery
-
- Otherwise, we run the risk of a clone source which hasn't actually
- come into existence yet being used if we grab a clone which *just*
- got added the the ssc, but has not yet actually had time to be
- created (can't rely on message ordering here since recovery messages
- don't necessarily order with client IO!).
-
- Fixes: http://tracker.ceph.com/issues/17831
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 68defc2b0561414711d4dd0a76bc5d0f46f8a3f8)
-
- Conflicts:
- src/osd/ReplicatedBackend.cc:
- PGBackend::failed_push() takes a single pg_shard_t in jewel
- src/osd/ReplicatedPG.h:
- trivial: get_obc() is not declared as override in jewel,
- no pgb_{set,clear}_object_snap_mapping() in jewel
-
-commit 6b4bcd388829d6c5b78a7acb6d75d6f905a60f53
-Merge: c9ece04 7b74238
-Author: vasukulkarni <vasu.kulkarni@gmail.com>
-Date: Sat Jan 28 17:58:45 2017 -0800
-
- Merge pull request #13166 from smithfarm/wip-drop-ext4-test
-
- tests: Remove ext4 option from rados:thrash tests
-
-commit 016b059fcf2993f721e97212d50b5e6da8180a03
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Sat Jan 28 14:17:10 2017 -0500
-
- rgw: fix interface compliance of RGWCivetWeb::write_data()
-
- Backport of (portions of) civet web error handling bugfixes.
-
- Adapted from 3a9f50c55e0be6733893a7ae1a5b4f504a3b0f61.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 15556389c3c3bf9d6855aaa4699545a787d9fe7a
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Mon Jan 9 18:31:21 2017 +0100
-
- librbd: metadata_set API operation should not change global config setting
-
- Fixes: http://tracker.ceph.com/issues/18465
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 27465b5916b55ac3c2846c74b89f4362ad17ff1e)
-
- Conflicts:
- src/librbd/Operations.cc (after jewel set_metadata migrated to Operations)
-
-commit 7b7423837ea4f400507cf775f609c676a4cf3c8e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 28 12:11:08 2017 +0100
-
- tests: Remove ext4 option from rados:thrash tests
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (manual cherry-pick from ceph-qa-suite 1fcc4457144278f77dd8462ecf34948a11dcb2a9)
-
-commit c9ece0444611994ddc1292a83e6c091f7773212f
-Merge: efcbcac 4e60be5
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Fri Jan 27 12:57:32 2017 -0800
-
- Merge pull request #13160 from ceph/revert-13068-jewel-rgw-multipart-upload-copy
-
- Revert "jewel: rgw: multipart upload copy"
-
- Reverting, will require further testing before merging. Some tests fail.
-
-commit 4e60be5867975b4ae5fe6f53aacd6abe128a18c3
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Jan 27 15:53:47 2017 -0500
-
- Revert "jewel: rgw: multipart upload copy"
-
-commit efcbcac34e034cd3f3bc542fb71d527d64e66688
-Merge: a632cc4 514e2ba
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Jan 27 13:04:46 2017 -0500
-
- Merge pull request #13068 from linuxbox2/jewel-rgw-multipart-upload-copy
-
- DNM: jewel:rgw: multipart upload copy
-
-commit 99bafc1bab8eb8349e44b601f5971af97c131bd9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 27 18:41:25 2017 +0100
-
- rbd: enabling/disabling rbd feature should report missing dependency
-
- Currently while enabling or disabling rbd feature command does not
- give missing dependency for eg: attempting to enable the journaling
- feature on an image that doesn't have the exclusive-lock feature
- enabled should give missing dependency error message.
-
- Fixes: http://tracker.ceph.com/issues/16985
-
- Reported-by: Jason Dillaman <dillaman@redhat.com>
- Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
- (manual cherry pick of bd023cfec8e9aaa8fb0095a8d9534c21b3209020)
-
-commit 16a2feca3523a4b0495769c2750dd1f5d70de25c
-Author: Dongsheng Yang <dongsheng.yang@easystack.cn>
-Date: Thu Dec 22 21:00:41 2016 -0500
-
- librbd: don't remove an image w/ incompatible features
-
- Fixes: http://tracker.ceph.com/issues/18315
- Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
- (cherry picked from commit f76127b5e617923d14adb62bfb836a635c14f209)
-
-commit dd1f4252ed3a89407063cd283eebdbdc7cf5653c
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jan 6 15:59:22 2017 -0500
-
- rbd-mirror: avoid processing new events after stop requested
-
- Fixes: http://tracker.ceph.com/issues/18441
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d30873b269441815b5fc7de14c7d9a1077a17d8d)
-
-commit de1ebc36943208057e1aa427f9fda631d0bd717d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 27 16:59:44 2017 +0100
-
- tests: explicitly use centos 7.3 in distros/supported
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 0133d6316fc83373977c132cdbaa6f99d4f1140e
-Author: Yuri Weinstein <yweinste@redhat.com>
-Date: Tue Jan 3 15:59:18 2017 -0800
-
- qa: fixed distros links
-
- Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
- (cherry picked from commit fbb560c90101937317380a6621a70564f10e0ae3)
-
-commit 1481c8fac899e395757ef81ae5b7baffe8e492ab
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 27 15:29:27 2017 +0100
-
- tests: upgrade: install firefly only on Ubuntu 14.04
-
- The upgrade:hammer-x/f-h-x-offline test installs firefly, but firefly does not
- build on CentOS anymore, just Ubuntu 14.04.
-
- References: http://tracker.ceph.com/issues/18089
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 514e2ba64f2babdf6f58c57a7e8e1263abbf187c
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:44:08 2016 -0700
-
- rgw: minor optimization
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4919dc9987c6376d3d4e143702c26417449524c5)
-
-commit 7f76bb1229f40c4b535d97f163f26ee642798e2b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:43:00 2016 -0700
-
- rgw: rgw_obj_key use adjustment in multipart copy part
-
- This fixes a case where objects start with double underscore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 29fece3545cc1df404a25eec46706b16f893a5df)
-
-commit f99ead1570a23a9050e396383006deb2e7e1d9f8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:43:35 2016 -0700
-
- rgw: multipart copy-part handle versionId
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 53521efffb1cb92e5f5ce992d4127bf9498d7c33)
-
-commit 679348947910a92bf9bb7920c071142536272b19
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:24:13 2016 -0700
-
- rgw: multipart copy part minor parsing cleanup
-
- no need for range.size()
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6e9b824d5d4017239d58b4752ebc43bfad8f698d)
-
-commit 2ca1bcdacc37e74cb61c2ed9855150b4cc9537e9
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:11:43 2016 -0700
-
- rgw: multipart copy, check for empty bucket, improve logging
-
- also reduce log level for non critical user errors.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2bcb3d286b230ef917d5ba96c8276a942f544689)
-
-commit e5ac1204c26a26b29b146d350ff5034bfd9fc798
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:07:14 2016 -0700
-
- rgw: multipart copy part, chunked read
-
- Don't read the entire range from source object, read it in parts.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4049e47a0cfc1eef6efd502590b68ba7234589d3)
-
-commit a54a7ada65fafc88251897b2739b364bf59be128
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Tue Jul 26 14:56:50 2016 +0200
-
- rgw: doc: add multipart uploads copy part feature as supported
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 8a7ebeee2ff3f10ceb23b7fa43e43c3c450efe22)
-
-commit 987b42561e4c98c54963055f357955d243881238
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Tue Jul 26 14:53:44 2016 +0200
-
- rgw: multipart uploads copy part support
-
- Add multipart uploads copy part feature.
-
- Fixes: http://tracker.ceph.com/issues/12790
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 949480c2e9760855ed6a0501d364d5e766c8207d)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 21622c13468d85f017d139a376097267943ea328
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Nov 21 12:10:05 2016 +0000
-
- src/mds: fix MDSMap upgrade decoding
-
- Hammer MDSMonitors did not validate the state in beacons
- and would apply anything to the mds_info_t for a standby,
- such as setting it to down:dne. We must handle this
- case during upgrade.
-
- Fixes: http://tracker.ceph.com/issues/17837
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit a977c9029ff80b4eb4f3b128965693694b729425)
-
-commit be8bc1195270b87bdc0840b36684863d990404df
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Fri Jul 15 23:40:17 2016 -0400
-
- mds: use FSMap::insert to add to standby_daemons
-
- This reduces the number of code sites which modify standby_daemons.
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 9566ae27b33dd4d266ee9223dc73738922b6eceb)
-
-commit 649b1d4253a1753c3f4d783a8e2d7b48f861db08
-Author: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
-Date: Tue Jan 10 15:25:13 2017 +0100
-
- rbd: bench-write should return error if io-size >= 4G
-
- Currently if user perform bench-write with io-size > 4G
- then its crashing because currently during memory allocation
- bufferptr taking size of buffer as a unsigned and io-size > 4G
- will overflow with unsigned. so during memset operation it will
- try to set io_size size of memory area pointed by bufferptr,
- (bufferptr area is: (4G - io_size)), so it will cause
- segmentation fault.
-
- Fix is to return error if io-size >= 4G
-
- Fixes: http://tracker.ceph.com/issues/18422
-
- Reported-by: Jason Dillaman <dillaman@redhat.com>
- Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
- (cherry picked from commit 6ab73e5f420e89e19b52e39dab28fa4c94e00197)
-
- Conflicts:
- src/tools/rbd/action/BenchWrite.cc - jewel has rbd_bencher b(&image)
- while in master this has become rbd_bencher b(&image, io_type,
- io_size)
-
-commit c2f86a461ea556cc5f9d93a7143cd80fb3e7dc96
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Jan 20 14:26:43 2017 -0500
-
- journal: don't hold future lock during assignment
-
- It's possible that the future raced with its owner and reaches
- an empty reference count. This was resulting in the future being
- destructed while its lock was still held.
-
- Fixes: http://tracker.ceph.com/issues/18618
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0f21ceef8336e35ca16148a9d58f511037911418)
-
-commit 5eda4aac77200b858371ebab50d8779f70fe0dca
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Nov 18 21:11:54 2016 +0000
-
- mds: fix dropping events in standby replay
-
- Ensure that we never drop the last segment during
- standby replay -- this avoids the case where we
- start ignoring events because we think we're
- still waiting to see a subtreemap.
-
- Fixes: http://tracker.ceph.com/issues/17954
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit e3f2fa356f419cbac8d72bd068313f64769ef3af)
-
-commit df4558c9d5779ac8916811ea63d1106c2390638f
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Thu Nov 17 18:01:22 2016 +0800
-
- cephfs: fix missing ll_get for ll_walk
-
- Fixs: http://tracker.ceph.com/issues/18086
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit ad846d10d5fbab2ded5fddc47475b95a788c223c)
-
- Conflicts:
- src/client/Client.cc - jewel has fill_stat(in, attr) instead of
- fill_statx(in, mask, stx) in master
-
-commit fef3de88d0381322d49ce7842f777454b0b40b63
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Dec 8 16:49:04 2016 +0000
-
- mon/MDSMonitor: fix iterating over mutated map
-
- If a standby is promoted, this was modifying the
- standby_daemons map that we were iterating over
- in maybe_promote_standby.
-
- Fixes: http://tracker.ceph.com/issues/18166
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit db3deb80d6e4a8e8ca7a2cf6278d5d5cb24eb616)
-
-commit 05916271c17050fd4c1ad2351b6da17d3b89fc15
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Thu Jul 7 19:09:56 2016 -0400
-
- mon: use clearer code structure
-
- The failed map is not changed in the first if, so the second if should be an
- else.
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit adba77e34c3fbf983d221729dd340afcc942778b)
-
-commit bc9b7792e4d44c199b526c2d5b17916d948b0354
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jan 10 17:16:40 2017 +0800
-
- client: fix Client::handle_cap_flushsnap_ack() crash
-
- Struct CapSnap holds a reference to its parent inode. So erasing
- struct CapSnap from Inode::cap_snaps may drop inode's last reference.
- The inode gets freed in the middle of erasing struct CapSnap
-
- Fixes: http://tracker.ceph.com/issues/18460
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 525c52fd491ed1ced385c8047872e3f557f8423f)
-
- Conflicts:
- src/client/Client.cc (jewel does in->cap_snaps.erase(follows), master
- does not; put it after the tmp_ref assignment)
-
-commit b14702209f5bad7d3aa65d3acba89b7757f725dd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jan 11 15:50:52 2017 +0800
-
- qa/tasks: add test_open_ino_errors
-
- Validate that errors encountered during opening inos are properly
- propagated
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 6526ecc084733b34129aa1f21085fa41fb53b785)
-
-commit 3385419e8f41d0af986dc088e1c9ce83b569eb19
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jan 3 11:11:12 2017 +0800
-
- mds: propagate error encountered during opening inode by number
-
- Fixes: http://tracker.ceph.com/issues/18179
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 2213cc2dcc0e8fb01bcae3863d0d8a4a1fd8873f)
-
-commit 5c4fffa878c6ea881cc29b0ee4f99cde5e0e4ea8
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Wed Dec 14 16:29:08 2016 +1000
-
- librados: Memory leaks in object_list_begin and object_list_end
-
- We allocate a cursor in the constructor but simply reassign it in these
- functions without cleaning up the original. We have a utility setter that
- handles this exact case so we should use it.
-
- Fixes: http://tracker.ceph.com/issues/18252
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 8d9d84bce923a009054ad2b223a97d7eb00e6774)
-
-commit 7bbb5a8918c7828d925f4796d2c25a583c8323e3
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 7 09:50:26 2016 -0500
-
- mon/OSDMonitor: only show interesting flags in health warning
-
- Also add PAUSEREC flag into the list.
-
- Fixes: http://tracker.ceph.com/issues/18175
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 26220f0608f5ed4a7d97fb8d10d0d12a0fcf5583)
-
-commit 336c3515043f89494e452266069f778d7d8fe821
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 29 12:08:28 2016 -0500
-
- mon/OSDMonitor: set last_force_op_resend on overlay pool too
-
- We currently set the last_force_op_resend field on the
- base pool when we set or clear the overlay. Set it on
- the cache/overlay pool too. The Objecter should resend
- even with a change only to the base pool, but the OSD
- needs to see the change on the overlay pool to correctly
- discard the op.
-
- Fixes: http://tracker.ceph.com/issues/18366
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 08c3618771b852840aa88cff1ca98d980d802941)
-
-commit 874220371890a59b8459bb6306a5db047e32563e
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue Jan 10 11:16:47 2017 +0800
-
- mds: finish clientreplay requests before requesting active state
-
- All clientreplay requests' finish contexts should be executed
- before MDCache::export_remaining_imported_caps(). Otherwise
- MDCache::try_reconnect_cap() may fail to reconnect client caps.
-
- Fixes: http://tracker.ceph.com/issues/18461
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 80dae314ee90e79d60e2cfee301e43a435c10801)
-
-commit b3599351225bd8f6299121e84b62a582f698199b
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 7 13:48:51 2017 +0100
-
- tests: subst repo and branch in qemu test urls
-
- References: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 2484a5546160560a4050d35400a6edce37ae48ad)
-
- Conflicts:
- qa/suites/rbd/qemu/workloads/#qemu_xfstests.yaml#
- (file does not exist in jewel)
-
-commit f66bd81d7082af3c1e28cfee19e46906a35835ee
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 7 13:45:10 2017 +0100
-
- tests: subst branch and repo in qa/tasks/qemu.py
-
- References: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 74689df754561e11a3377998840efcea9e780755)
-
-commit 69a0efa7a689b5ec80d44119858cdcf86ca85588
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 6 21:09:23 2017 +0100
-
- tests: subst repo name in krbd/unmap/tasks/unmap.yaml
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit ed0e8be0b2c4d7a3e6e0716a0211d19e8b93f125)
-
-commit 2931aefc952ca0592eca26606864cbfa724b4c07
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jan 6 21:06:11 2017 +0100
-
- tests: subst repo name in qa/tasks/cram.py
-
- Inspired by bcbe45d948f1c4da02e27b3be5f29a8b52745e28
-
- Fixes: http://tracker.ceph.com/issues/18440
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 56e37e41f4dddd289dd3c1886b192cd328ed311b)
-
-commit 205403b02156e4ed6b2b53a2b21189b5122162f8
-Author: Venky Shankar <vshankar@redhat.com>
-Date: Fri Dec 9 15:11:49 2016 +0530
-
- cram: support fetching from sha1 branch, tag, commit hash
-
- Signed-off-by: Venky Shankar <vshankar@redhat.com>
- (cherry picked from commit d2f0d745987a2e2eee4e1822146aad8da5d42708)
-
- Conflicts:
- suites/rbd/singleton/all/formatted-output.yaml (has been moved
- under qa/)
-
-commit a632cc41755be4393a12dd768726ade86a49bbc9
-Merge: e55b84e ea65450
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 25 10:40:25 2017 -0500
-
- Merge pull request #13103 from dillaman/wip-18672
-
- jewel: qa/workunits/rbd: use more recent qemu-iotests that support Xenial
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ea65450c49083f186781a3cbffe6cd24ed3c7a00
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 5 13:46:02 2016 -0500
-
- qa/workunits/rbd: use more recent qemu-iotests that support Xenial
-
- Fixes: http://tracker.ceph.com/issues/18149
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4314cb945a9c2296e2f7cd357b09015777f233c0)
-
-commit f449e3d1745ffd09e32058ea66342b486090d394
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 7 09:59:39 2016 -0500
-
- qa/workunits/rbd: removed qemu-iotest case 077
-
- The test case is not stable due to racing console output. This
- results in spurious failures.
-
- Fixes: http://tracker.ceph.com/issues/10773
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2c70df978d605a45ff81971b86f5afbefbdaabb6)
-
-commit 61e1b0caddfbc3721cd9fa2de5b90b2f65740f79
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Wed Aug 31 19:30:19 2016 +0200
-
- tasks/rbd_fio: unmap rbd devices on cleanup
-
- Not doing so leads to issues and can interfere with subsequent jobs.
- One example is the invocation of vgs(8) during the inital test setup:
- it will issue a read to the left-behind rbd device(s) whose backing
- cluster is long gone, locking up the job.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit 15be2d29be3e42644b0c541f5c70461f1874f24f)
-
-commit 5fcfa32f21709054f054bcda719df090777f52d5
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Wed Aug 31 19:05:25 2016 +0200
-
- tasks/rbd_fio: don't use sudo unnecessarily
-
- Creating and cloning images doesn't require sudo.
-
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit ec97445740bbf7848488fbb6213e74d50a355547)
-
-commit e55b84e4cdb13839d8466cf162adb001d4134687
-Merge: ce3e387 ea9665b
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:57:17 2017 +0100
-
- Merge pull request #12137 from jcsp/wip-17974
-
- jewel: client: fix stale entries in command table
-
-commit ce3e387766f2d6839798dfac96eacbf6334e4674
-Merge: 9dd1251 d0b0d41
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:56:24 2017 +0100
-
- Merge pull request #12686 from SUSE/wip-18272-jewel
-
- jewel: tests: Workunits needlessly wget from git.ceph.com
-
-commit 9dd1251efdcd20ec9ce3467118b16b4d10a5360e
-Merge: a9c1fe0 85fbddd
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:56:03 2017 +0100
-
- Merge pull request #12836 from SUSE/wip-18462-jewel
-
- jewel: Decode errors on backtrace will crash MDS
-
-commit a9c1fe0f693020d5e01aad5f7c2264939591cbf4
-Merge: 0bcd904 bf873a7
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:55:46 2017 +0100
-
- Merge pull request #13023 from SUSE/wip-18603-jewel
-
- jewel: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa)
-
-commit 0bcd9049b469d4afcc547169ee1f9585557d3e0d
-Merge: 966bdbd 05e5a5a
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:55:28 2017 +0100
-
- Merge pull request #12155 from dachary/wip-17956-jewel
-
- jewel: Clients without pool-changing caps shouldn't be allowed to change pool_namespace
-
-commit 966bdbd7a1ef7fbe1023b6e7bde0f78c2eb4ab7a
-Merge: d276861 e725605
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:55:11 2017 +0100
-
- Merge pull request #12325 from dachary/wip-18026-jewel
-
- jewel: ceph_volume_client.py : Error: Can't handle arrays of non-strings
-
-commit d276861915979e6a82662e7b4eba0b399c6ddca8
-Merge: dd703bc 50a3fa1
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:54:51 2017 +0100
-
- Merge pull request #13060 from asheplyakov/jewel-bp-18615
-
- jewel: mds: fix null pointer dereference in Locker::handle_client_caps
-
-commit dd703bc028eeb9c58dc1ef39ae506c73642ea948
-Merge: 347f71d 36186d0
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:54:35 2017 +0100
-
- Merge pull request #11656 from ajarr/wip-17705-jewel
-
- jewel: ceph_volume_client: fix recovery from partial auth update
-
-commit 347f71dc21c51d61ea42269236568756c7d0742a
-Merge: e90396f 6efad69
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:54:06 2017 +0100
-
- Merge pull request #12154 from dachary/wip-18008-jewel
-
- jewel: Cannot create deep directories when caps contain path=/somepath
-
-commit e90396f16c495df0ac74acff841703b919e596b9
-Merge: 72b24f0 89dcd8b
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jan 25 14:53:45 2017 +0100
-
- Merge pull request #13085 from jcsp/wip-18361-jewel
-
- jewel: client: populate metadata during mount
-
-commit 85fbddd4f68ab159425c9198740c0d5787adc739
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jan 24 15:49:24 2017 +0100
-
- qa/tasks/cephfs/filesystem.py: backport _write_data_xattr() function
-
- This is a partial manual backport of 5f77f09b019b607b84e6a8f89ce19065383ca108
-
- It is needed by test_corrupt_backtrace() in qa/tasks/cephfs/test_damage.py
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 89dcd8b6287da7d97af0e7cad45ee023a5a39811
-Author: John Spray <john.spray@redhat.com>
-Date: Fri Jan 13 00:30:28 2017 +0000
-
- client: populate metadata during mount
-
- This way we avoid having to over-write the "root"
- metadata during mount, and any user-set overrides (such
- as bad values injected by tests) will survive.
-
- Because Client instances may also open sessions without
- mounting to send commands, add a call into populate_metadata
- from mds_command as well.
-
- Fixes: http://tracker.ceph.com/issues/18361
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 1dbff09ad553f9ff07f4f4217ba7ece6c2cdc5d2)
-
-commit ff9168803ebb2e3e0c4b42268765cd4b53e50d68
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 17:18:08 2016 -0500
-
- msg/simple: clear_pipe when wait() is mopping up pipes
-
- When wait is mopping up connections it may hit one that
- is in the process of accepting. It will unregister it
- whilst the accept() thread is trying to set it up,
- aborting the accept and getting it reaped. However,
- the pipe mop-up does not clear_pipe() the way that
- mark_down(), mark_down_all(), and fault() do, which
- leads to this assert.
-
- Pipe is accepting...
-
- -161> 2016-12-22 17:31:45.460613 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=0 pgs=0 cs=0 l=1 c=0x3e2a6f40).accept: setting up session_security.
- -160> 2016-12-22 17:31:45.460733 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=0 pgs=0 cs=0 l=1 c=0x3e2a6f40).accept new session
- -159> 2016-12-22 17:31:45.460846 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=2 pgs=7 cs=1 l=1 c=0x3e2a6f40).accept success, connect_seq = 1, sending READY
- -158> 2016-12-22 17:31:45.460959 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=2 pgs=7 cs=1 l=1 c=0x3e2a6f40).accept features 1152921504336314367
-
- wait() is shutting down...
-
- -156> 2016-12-22 17:31:45.461882 9506ac0 20 -- 172.21.15.14:6804/20738 wait: stopping accepter thread
- -155> 2016-12-22 17:31:45.462994 9506ac0 10 accepter.stop accept listening on: 15
- ...
- -116> 2016-12-22 17:31:45.482137 9506ac0 10 -- 172.21.15.14:6804/20738 wait: closing pipes
- -115> 2016-12-22 17:31:45.482850 9506ac0 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=2 pgs=7 cs=1 l=1 c=0x3e2a6f40).unregister_pipe
- -114> 2016-12-22 17:31:45.483421 9506ac0 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=2 pgs=7 cs=1 l=1 c=0x3e2a6f40).stop
-
- ...which interrupts the accept()...
-
- -113> 2016-12-22 17:31:45.484164 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=4 pgs=7 cs=1 l=1 c=0x3e2a6f40).accept fault after register
-
- and makes accept() return failure, and reader() to exit
- and reap...
-
- -110> 2016-12-22 17:31:45.486103 9506ac0 10 -- 172.21.15.14:6804/20738 wait: waiting for pipes 0x3e2a5c20 to close
- -109> 2016-12-22 17:31:45.487146 37353700 10 -- 172.21.15.14:6804/20738 queue_reap 0x3e2a5c20
- -108> 2016-12-22 17:31:45.487658 9506ac0 10 -- 172.21.15.14:6804/20738 reaper
- -107> 2016-12-22 17:31:45.487722 9506ac0 10 -- 172.21.15.14:6804/20738 reaper reaping pipe 0x3e2a5c20 172.21.15.35:0/146098963
- -106> 2016-12-22 17:31:45.487816 9506ac0 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=4 pgs=7 cs=1 l=1 c=0x3e2a6f40).discard_queue
- -105> 2016-12-22 17:31:45.494742 37353700 10 -- 172.21.15.14:6804/20738 >> 172.21.15.35:0/146098963 pipe(0x3e2a5c20 sd=31 :6804 s=4 pgs=7 cs=1 l=1 c=0x3e2a6f40).reader done
- ...
- -92> 2016-12-22 17:31:45.527589 9506ac0 -1 /mnt/jenkins/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos7/DIST/centos7/MACHINE_SIZE/huge/release/11.1.0-6151-ge1781dd/rpm/el7/BUILD/ceph-11.1.0-6151-ge1781dd/src/msg/simple/SimpleMessenger.cc: In function 'void SimpleMessenger::reaper()' thread 9506ac0 time 2016-12-22 17:31:45.488264
- /mnt/jenkins/workspace/ceph-dev-new-build/ARCH/x86_64/AVAILABLE_ARCH/x86_64/AVAILABLE_DIST/centos7/DIST/centos7/MACHINE_SIZE/huge/release/11.1.0-6151-ge1781dd/rpm/el7/BUILD/ceph-11.1.0-6151-ge1781dd/src/msg/simple/SimpleMessenger.cc: 235: FAILED assert(!cleared)
-
- Fixes: http://tracker.ceph.com/issues/15784
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 948f97b3bdd39269a38277238a61f24e5fec6196)
-
-commit 50a3fa1ba1ab94ab736abf73830762afc0d05352
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Jan 6 15:42:52 2017 +0800
-
- mds: fix null pointer dereference in Locker::handle_client_caps
-
- Locker::handle_client_caps delays processing cap message if the
- corresponding inode is freezing or frozen. When the message gets
- processed, client can have already closed the session.
-
- Fixes: http://tracker.ceph.com/issues/18306
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit e281a0b9c1fdeaf09f1b01f34cecd62e4f49d02e)
-
-commit 20e75023d6c9498ac19d3ee55e556063e94ea6e6
-Author: Wido den Hollander <wido@42on.com>
-Date: Mon Jan 23 08:18:27 2017 +0100
-
- systemd: Restart Mon after 10s in case of failure
-
- In some situations the IP address the Monitor wants to bind to
- might not be available yet.
-
- This might for example be a IPv6 Address which is still performing
- DAD or waiting for a Router Advertisement to be send by the Router(s).
-
- Have systemd wait for 10s before starting the Mon and increase the amount
- of times it does so to 5.
-
- This allows the system to bring up IP Addresses in the mean time while
- systemd waits with restarting the Mon.
-
- Fixes: #18635
-
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit e73eb8cc1e0d45af1f0b7852c551f2ddfb82a520)
-
-commit aa0e45040f8b02c38a97670c41b8993742171cfb
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 17:19:42 2016 -0500
-
- qa/distros: centos_7.yaml -> centos.yaml
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 004ef2c648c0c70a2efcd9b5f211369a2eb14f1d)
-
-commit b0c1e8863d84cbd04c74c54e6141a6a8355a3dee
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 15:41:25 2016 -0500
-
- qa/suites: centos_7.2.yaml -> centos_7.yaml
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit e9f119bda70554b79ca7f344571902c936c92f49)
-
- Conflicts:
- qa/suites/upgrade/jewel-x/point-to-point-x/distros (this directory used
- to be a symlink to distros/supported)
-
-commit 8a98f06f25951a0113f2044ce2c062500eaea2e5
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 15:39:41 2016 -0500
-
- qa/distros: add centos 7.3
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c168ce92aa1c1d834adecfe8fe32fe442ea7d21c)
-
-commit a45ad83c8f057da7054892d8ebc9767fc9238611
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 15:39:35 2016 -0500
-
- qa/distros: add centos 7 yaml; use that instead
-
- No need to be picky about the point release here.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 6e7db2329b917cf179390bd87937098f153aa513)
-
-commit 23680e080758be00a950e15594235b88b1e55b01
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Oct 6 19:39:20 2016 +0200
-
- doc: document hostname constraints for rados bench
-
- Fixes: http://tracker.ceph.com/issues/17526
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 1d7e8188b9067f4f51958a13a23da1e105d89c63)
-
-commit 67e7a904373ee0863ca21eaa7da6edd559bb463d
-Author: Boris Ranto <branto@redhat.com>
-Date: Thu Sep 29 12:08:39 2016 +0200
-
- selinux: Allow ceph to manage tmp files
-
- Two new denials showed up in testing that relate to ceph trying to
- manage (rename and unlink) tmp files. This commit allows ceph to manage
- the files.
-
- Fixes: http://tracker.ceph.com/issues/17436
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit f8a0e201ee54759695ef44f7ed98b3b9705fafe3)
-
-commit 35e10a010f58fe50d9f236ae57db46e96b0ffed3
-Author: Mingxin Liu <mingxin@xsky.com>
-Date: Mon Jan 2 13:20:10 2017 +0800
-
- mon: do not send duplicated osdmap msg to not sync'ed osd
-
- prior to this change:
- a peon may forward the pgstats to leader, and record it locally, but leader will
- check if osd has the latest map before process, if not, will use a route op to
- indicate peon to send it, then poen will delete routed op when fininaly send
- out which make peon cannot send pgstatack when leader has processed the
- pgstat update. so osd will always track it util reach a threshold block pgstats
- sending, at worst, reopen mon session.
- also, both leader and peon will send out the osdmap message to the osd.
-
- after this change:
- only the peon will send out the osdmap message. and the pgstatack message
- will be routed to the osd as expected. so the osd will not keep track of the
- "acked" pg stats in its queue forever before times out.
-
- Fixes: http://tracker.ceph.com/issues/18458
- Signed-off-by: Mingxin Liu <mingxin@xsky.com>
- (cherry picked from commit 57274488c072ec6912b700288ce5b1ea8372d162)
-
-commit bcd4698115011810e7a8370ef04a5c3f0b9a3fb0
-Author: Ronak Jain <ronakjain@outlook.in>
-Date: Fri Jan 13 16:57:45 2017 +0530
-
- Doc: Fixes Python Swift client commands
-
- Fixes: http://tracker.ceph.com/issues/17746
- Signed-off-by: Ronak Jain <ronakjain@outlook.in>
- (cherry picked from commit 8c79959557d60f619adf1a3ed1b5bd1112ceaabb)
-
-commit c2bbf7ff4f929a63e0c7d6f70bb66e906a6c6cab
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Jan 21 14:24:25 2017 +0100
-
- tests: run fs/thrash on xfs instead of btrfs
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 7a341a8886c93a8c4f266f8035784dd2e9528e3f
-Author: Michal Jarzabek <stiopa@gmail.com>
-Date: Thu Jan 12 21:22:20 2017 +0000
-
- client/Client.cc: prevent segfaulting
-
- The segfaulting in the rmdir function is caused by calling
- filepath::last_dentry() function.
- last_dentry() function assumes that the bits vector has always at
- least one element, which is not the case for the the filepath object
- created with "/" input.
- This commit also fixes other functions affected by this bug:
- link, unlink, rename, mkdir, mknod and symlink.
-
- Fixes: http://tracker.ceph.com/issues/9935
- Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
- (cherry picked from commit 6ed7f2364ae5507bab14c60b582929aa7b0ba400)
-
- Conflicts:
- src/client/Client.cc (Client.cc - path_walk(), may_create(), and
- _link() take fewer parameters in jewel)
- src/test/libcephfs/test.cc (preceding tests are missing in jewel)
-
-commit 173ea7f9856e37ee4febc5d1c13709bb81a4f37b
-Author: Samuel Matzek <smatzek@us.ibm.com>
-Date: Mon Jan 16 11:11:31 2017 -0600
-
- Ceph-disk to use correct user in check_journal_req
-
- The ceph-disk tool calls ceph-osd to check the journal requirements
- using OSD id 0. This creates a log file for osd-0 on the system
- using the current user/group for file permissions. When ceph-disk
- is run as root this makes the file owned by root which makes
- the osd daemon for osd.0 unable to write to its own log file.
-
- This commit changes the journal reqs calls of ceph-osd to pass
- the ceph user and group so ceph-osd creates the log file with the
- appropriate permissions.
-
- Fixes: http://tracker.ceph.com/issues/18538
-
- Signed-off-by: Samuel Matzek <smatzek@us.ibm.com>
- (cherry picked from commit bcf7514bf53693ec61e482341787c80494589faf)
-
-commit bf873a73cc3ee7e0fa5d7a1d2280fc3e3dd26ab0
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Jan 17 17:12:46 2017 +0100
-
- qa: update remaining ceph.com to download.ceph.com
-
- Fixes: http://tracker.ceph.com/issues/18574
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 549d993d3fd8ffffa280ed4a64aca41d1c6f2da1)
-
- Conflicts:
- qa/tasks/cram.py (trivial resolution)
-
-commit 72b24f0f47bebaed793d7b75ce0eacc3c1533ab5
-Merge: 174ed80 95edad2
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jan 20 15:50:16 2017 +0100
-
- Merge pull request #12766 from jtlayton/wip-18408-jewel
-
- client: Fix lookup of "/.." in jewel
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
- Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
-
-commit 174ed80fb77b172b6a7d3edb7c97cb49afe98ae8
-Merge: 01ff675 bee7e3a
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 20 12:31:26 2017 +0100
-
- Merge pull request #12147 from dachary/wip-18007-jewel
-
- jewel: ceph-disk: ceph-disk@.service races with ceph-osd@.service
-
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
-
-commit e8f55f65cc908cb43fe44c271866ed7672773f1f
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jan 5 16:06:45 2017 -0500
-
- rgw: RGWAsyncRadosRequest drops notifier ref on cancel
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 1d586f76a11fed937fc7bb0f7cf6a44ca0506881)
-
-commit 3f509aac28fc81c464d3fc2a0b4c011260533e93
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon Nov 7 10:58:50 2016 -0500
-
- rgw: remove circular reference in RGWAsyncRadosRequest
-
- RGWAsyncRadosRequest does not need a reference to its calling coroutine,
- it only needs the completion notifier. this eliminates a circular
- reference between RGWAsyncRadosRequest and the coroutines that create
- them
-
- Fixes: http://tracker.ceph.com/issues/17792
- Fixes: http://tracker.ceph.com/issues/17793
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 7f670c0ea5de7c6969e1d332824d80c55c8d6af0)
-
-commit 0ef1bdf973ae94e982c1e678862645f87ea85bdd
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jan 4 11:36:00 2017 -0500
-
- rgw: release RGWAioCompletionNotifier refs on destruction
-
- Fixes: http://tracker.ceph.com/issues/18407
- Fixes: http://tracker.ceph.com/issues/18414
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 7a4975adba8b890e211d47662896e445a9822970)
-
-commit c21622d31d830d59278808805238e11888d39350
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Jan 6 12:30:42 2017 -0500
-
- rgw_rados: add guard assert in add_io()
-
- Use the iterator-returning insert operation in std::map, check
- assert the insert case. As a side effect, this makes use of the
- inserted object record more clear.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit d10c37adf925d8b34daa81b419463ea376ec27aa)
-
-commit 585eb484956c1666bfb870e67a9c506a8154294e
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Jan 6 15:16:32 2017 -0500
-
- rgw_rados: sanitize dout print in GWRados::get_obj_iterate_cb(...)
-
- We cannot assume pbl may be deferenced. Per review, move the dout
- print into the r < 0 condition--since it's now an error, make it's
- trace level 0.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit c0233c4abb9f99304e3d82272bbb4385086bbfc0)
-
-commit 01ff6751e1705094fe1c8057685fa7216bd56118
-Merge: 25a9e5f e2eaae4
-Author: vasukulkarni <vasu.kulkarni@gmail.com>
-Date: Wed Jan 18 12:43:34 2017 -0800
-
- Merge pull request #12983 from ceph/wip-cherry-pick-4vasu
-
- qa: Wip cherry pick https://github.com/ceph/ceph/pull/12969
-
-commit e2eaae4b4260df473cb5b7d9a467d5e4ca82d417
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Mon Jan 9 16:45:01 2017 -0800
-
- Add ceph-create-keys to explicitly create admin/bootstrap keys
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit 68f9b7eb3c0548c88650f67fb72c6ff9bc0f3ead)
-
-commit 2adc0ee858062a646380c8f594fa6a6207da29a3
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Mon Jan 9 17:59:20 2017 -0800
-
- Remove debug overrides
-
- the high level of debug for mon/osd is causing remoto to hang during get key
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit f7dcc74cd3f119a2f65584fdb544c08d115f8c39)
-
-commit 8f36e23b49191f5a37184f9ee9b670025eecc4eb
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Tue Jan 10 15:43:12 2017 -0800
-
- use the create option during instantiation
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit be836bb30960000468c79e08fb416ceefd79d7db)
-
-commit 25a9e5f526d2758543357d7072dbdc2ec9031e5f
-Merge: 601fb96 0ab5b7a
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Jan 18 17:12:54 2017 +0100
-
- Merge pull request #12210 from ddiss/tracker18049_ceph_disk_trigger_flock_timeout_jewel
-
- jewel: systemd/ceph-disk: reduce ceph-disk flock contention
-
- Reviewed-by: Nathan Cutler <ncutler@suse.cz>
-
-commit 601fb96599ebcb07017951542ddc58b2ab2abfd4
-Merge: de70003 1ea9de2
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 17 08:41:25 2017 -0500
-
- Merge pull request #12959 from SUSE/wip-18545-jewel
-
- jewel: [teuthology] update Ubuntu image url after ceph.com refactor
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1ea9de2c14ebf6a4683cb0b796e92f86a58f3d59
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 16 22:12:51 2017 -0500
-
- qa/tasks/qemu: update default image url after ceph.com redesign
-
- Fixes: http://tracker.ceph.com/issues/18542
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6d17befb3bbc3d83c9d23d763ad95e1e7b2e4be0)
-
-commit 36186d03ebd5c6eb14a720a0fca3a5bbeb49c0a9
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Oct 11 14:18:29 2016 +0530
-
- test_volume_client: remove superfluous arguments
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit bb60e01904187db417e8c7d6e57401823a0072fd)
-
-commit 75496812dc3d35a1737bc091b588ea7ad533ca54
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Oct 11 13:40:43 2016 +0530
-
- test_volume_client: check volume size
-
- Check that the total size shown by the df output of a mounted volume
- is same as the volume size and the quota set on the volume.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 91c74f4778ce5433968226345ffe26e876eb56a7)
-
-commit 3e3ffcf7362a9a6c8fc8eebcc527e92330cf5a5e
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Sep 6 17:31:04 2016 +0530
-
- tasks/cephfs: test recovery of partial auth update
-
- ... in ceph_volume_client.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit f0134a3db576282ed05d4b94b969b9593297669d)
-
-commit 3320ef1944a10cc5835510ee752750237cbefc7a
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Oct 4 13:55:46 2016 +0530
-
- ceph_volume_client: fix partial auth recovery
-
- ... for volumes whose group_id is None.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 0ab8badcf3ffe685135af17dc28b238f6e686922)
-
-commit 5115c217bb9070aa9d0f0ea15a84cfb7862345b3
-Author: Ramana Raja <rraja@redhat.com>
-Date: Wed Sep 28 14:06:54 2016 +0530
-
- ceph_volume_client: check if volume metadata is empty
-
- ... when recovering from partial auth updates.
-
- Auth update happens in the following order:
- auth metadata update, volume metadata update, and then Ceph auth
- update.
-
- A partial auth update can happen such that auth metadata is updated,
- but the volume metadata isn't updated and is empty, and the auth
- update did not propogate to Ceph. When recovering from such a
- scenario, check if volume metadata is empty and if so remove the
- partial auth update info in auth metadata.
-
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit a95de7882cdf70e04e3c918ff41fc690d0d9bda3)
-
-commit bf33cd52a395b99453f72af016ea8f559ad3a13a
-Author: Ramana Raja <rraja@redhat.com>
-Date: Tue Oct 4 16:50:13 2016 +0530
-
- ceph_volume_client: fix _recover_auth_meta() method
-
- It needs to be an instance method.
-
- Fixes: http://tracker.ceph.com/issues/17216
- Signed-off-by: Ramana Raja <rraja@redhat.com>
- (cherry picked from commit 675cb91b68c1b54698708d604253ab9d1b2abdec)
-
-commit 84044262635cd8674dbda79b9b6a7ab29cb554c8
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Tue Jan 10 19:11:08 2017 -0700
-
- mds/server: skip unwanted dn in handle_client_readdir
-
- We can skip unwanted dn which < (offset_key, snap) via map.lower_bound, rather than
- iterate across them.
-
- Previously we iterate and skip dn which < (offset_key, dn->last), as dn->last >= snap
- means (offset_key, dn->last) >= (offset_key, snap), and such iterate_and_skip logic
- still keep, so this commit doesnt change code logic but an optimization.
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit 52fe52baf920c672ac7f63a3087dcd31137891b6)
-
-commit de70003fda092d3fdf86b3323ab5a42038139c11
-Merge: 15c081c 06e40eb
-Author: Loic Dachary <loic@dachary.org>
-Date: Fri Jan 13 11:10:39 2017 +0100
-
- Merge pull request #12745 from SUSE/wip-18386-jewel
-
- jewel: tests: use ceph-jewel branch for s3tests
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit a0ee8b930a41b56cd964b232e7230859d8d3b4aa
-Author: Pan Liu <pan.liu@istuary.com>
-Date: Sun Jan 1 17:32:39 2017 +0800
-
- jewel: fix compile error for dencode test case when --with-radosgw=no
-
- If cannot disable radosgw, the user has to always compile radosgw part,
- even only want to use block device or file storage. Cherry-pick cannot
- be done because ceph master doesn't have Makefile.am any more.
-
- Fixes: http://tracker.ceph.com/issues/18512
- Signed-off-by: Pan Liu <pan.liu@istuary.com>
-
-commit 5e6c72946374895dca65f25d590615428ab3d8ef
-Author: Pan Liu <pan.liu@istuary.com>
-Date: Sun Jan 1 17:19:35 2017 +0800
-
- jewel: fixed compile error when --with-radosgw=no
-
- If cannot disable radosgw, the user has to always compile radosgw part,
- even only want to use block device or file storage. Cherry-pick cannot
- be done because ceph master doesn't have Makefile.am any more.
-
- Fixes: http://tracker.ceph.com/issues/18512
- Signed-off-by: Pan Liu <pan.liu@istuary.com>
-
-commit cdd6cbfdfe5a77008ba298667bb7add8c236027a
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Dec 9 09:39:39 2016 -0500
-
- librbd: block concurrent in-flight object map updates for the same object
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 7d743bfce61c6ede0a34fc0982e52be1d367d772)
-
-commit 15c081c6433e9ee4b6dd7c145e8e6aaddf334e69
-Merge: 988cd95 04cee05
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Thu Jan 12 13:58:42 2017 -0800
-
- Merge pull request #12912 from liewegas/wip-workunits-jewel
-
- qa/tasks/workunits: backport misc fixes to jewel
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 04cee0521681a49eca733d196011be3213c34682
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 13:05:22 2016 -0500
-
- qa/tasks/workunit: clear clone dir before retrying checkout
-
- If we checkout ceph-ci.git, and don't find a branch,
- we'll try again from ceph.git. But the checkout will
- already exist and the clone will fail, so we'll still
- fail to find the branch.
-
- The same can happen if a previous workunit task already
- checked out the repo.
-
- Fix by removing the repo before checkout (the first and
- second times). Note that this may break if there are
- multiple workunit tasks running in parallel on the same
- role. That is already racy, so if it's happening, we'll
- want to switch to using a truly unique clonedir for each
- instantiation.
-
- Fixes: http://tracker.ceph.com/issues/18336
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2a7013cd5a033c5be43350505d75f088e831e201)
-
-commit 1a98850578577dfe8a20df84be5e1638dc682e8b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 16 15:06:16 2016 -0500
-
- qa/tasks/workunit: retry on ceph.git if checkout fails
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 72d73b8c8836ae35c518fa09f44805a74038f02a)
-
-commit c101fba58b97015e77e5362d2db4112f8a8586fc
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:26:14 2016 -0500
-
- qa/tasks/workunit.py: add CEPH_BASE env var
-
- Root of git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 27b8eac24922f8b4bd065e6e7f0bc8e2ba37b5d5)
-
-commit c7b74cda893e651750dc744185f009e46d115c0e
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:25:23 2016 -0500
-
- qa/tasks/workunit: leave workunits inside git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4602884ab8f5a256d13091f7239d938990482d95)
-
-commit 384e5c05b4986e19a0ca45173d23da7d573d894a
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Dec 8 10:11:42 2016 -0500
-
- rgw: add 'rgw log http headers' gloss to config-ref.rst
-
- Explain the option for upstream doc.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 04bf0f8ca1dfb949bc912b93a4ff84bf8bac57aa)
-
-commit 9fd29b440990c3458e4e65f22733d9da0c2606bc
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Dec 14 16:31:19 2016 -0500
-
- use std::map
-
- (adaptation commit for #7639)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 8838bcbabcd2c9b3d7aec2403cad0bad4ad9a057
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Feb 12 17:02:53 2016 -0500
-
- rgw: add rgw_log_http_headers option
-
- Tracks headers that should be handled conditionally (currently,
- can only log, so using minimal structure to represent the
- mapping).
-
- Adds map of custom headers to rgw_log_entry, and populate it with
- headers pre-selected for custom logging in RGWREST. Added to encoder
- and Formatter output.
-
- Some additional optimization possible.
-
- (cherry picked from commit b82919a152217b3cd49afdc28bb890f329c2742a)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 87557754f591607a1667fecfc8dabc7e52bbbca0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 7 22:38:47 2016 -0500
-
- librbd: new block guard helper to prevent concurrent IO to blocks
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b1d624b43ec159d4a07616e86557ea48f089b7a1)
-
- Conflicts:
- src/librbd/BlockGuard.h: fixed compile issue
- src/librbd/Makefile.am: added BlockGuard
- src/test/Makefile-client.am: added BlockGuard test
- src/test/librbd/CMakeLists.txt: trivial resolution
-
-commit 5d306fd015d3e6d0aa35f368d3ca6cde6e7ca77b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Dec 8 18:27:33 2016 -0500
-
- librbd: convert ObjectMap to template for unit testing
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ea7b30a4fb105e052603c55ac2dc2aca11e66545)
-
- Conflicts:
- src/librbd/image/CreateRequest.cc: not in jewel
- src/librbd/internal.cc: trivial resolution
- src/librbd/object_map/CreateRequest.cc: not in jewel
- src/librbd/object_map/RemoveRequest.cc: not in jewel
- src/test/librbd/test_ObjectMap.cc: trivial resolution
-
-commit c53df3780dd9221cfe602c09651eeee06046ebeb
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 7 22:41:56 2016 -0500
-
- librbd: clean up object map update interface
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 477ae54a568bd1081fd2c77b570b04dd1b983cd9)
-
- Conflicts:
- src/librbd/AioObjectRequest.cc: trivial resolution
- src/librbd/ObjectMap.cc: trivial resolution
- src/librbd/operation/TrimRequest.cc: removed optimizations
- src/tools/rbd_mirror/image_sync/ObjectCopyRequest.cc: trivial resolution
-
-commit 6fe9be8de391aa239fc82f5483508d762a44cb99
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 7 16:28:22 2016 -0500
-
- librbd: update in-memory object map after on-disk update committed
-
- Concurrent IO to the same object would previously result in the first
- IO pausing to update the object map while the other IO would proceed
- to directly update the object before the object map state was properly
- updated.
-
- Fixes: http://tracker.ceph.com/issues/16176
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 378b810cbaadb1a12a7f0d21ed9a33e2a9640f55)
-
- Conflicts:
- test/librbd/object_map/test_mock_UpdateRequest.cc: resize op signature
-
-commit 988cd95d84be7973f774a4dae2d09faf4dbc30c3
-Merge: d4b1341 895ab24
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 12 07:29:34 2017 +0100
-
- Merge pull request #12791 from athanatos/wip-15943-jewel
-
- jewel: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas (part 2)
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f24c3fffc0ee26fddbc416620bbb9c0b353a0cf2
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 30 17:28:59 2016 -0500
-
- osd/PG: publish PG stats when backfill-related states change
-
- These frequently get flushed because other updates
- happen, but we should explicitly ensure that the mon
- sees these state changes.
-
- Fixes: http://tracker.ceph.com/issues/18369
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit d4adeb7500a113097fdd717ada0231f68badafbb)
-
- Conflicts:
- src/osd/PG.cc: trivial - PG::RecoveryState::Recovering::Recovering()
- hunk fails to apply since there's no PG::queue_recovery(),
- it's pg->osd->queue_for_recovery(pg) in jewel
-
- Fixes: http://tracker.ceph.com/issues/18485
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit d4b1341cf38f430f047f7263d713c0161b44730f
-Merge: 5b402f8 182babf
-Author: Samuel Just <sjust@redhat.com>
-Date: Tue Jan 10 16:25:18 2017 -0800
-
- Merge pull request #12868 from athanatos/wip-17899-jewel
-
- OSDMonitor: only reject MOSDBoot based on up_from if inst matches
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit fe753dbc9b4bd03d7a6063724edc59c2f860fccf
-Author: Jan Fajerski <jfajerski@suse.com>
-Date: Tue Jan 10 09:42:18 2017 +0100
-
- install-deps.sh: unify indentation in case statement
-
- Signed-off-by: Jan Fajerski <jfajerski@suse.com>
-
-commit 94ab8d85b59ff8bd8919930b9d912d1bf55eb9ed
-Author: Nitin A Kamble <Nitin.Kamble@Teradata.com>
-Date: Mon Oct 31 11:46:13 2016 -0700
-
- install-deps.sh: allow building on SLES systems
-
- Avoids this error on SLES systems:
-
- > ./install-deps.sh
- sles is unknown, dependencies will have to be installed manually.
-
- Signed-off-by: Nitin A Kamble <Nitin.Kamble@Teradata.com>
- (cherry picked from commit 266f4d4f20a1756e825ee54d79fe5f8d931d4b77)
-
- Conflict in install-deps.sh due to indentation. Trivial resolution.
-
-commit 7159265ac154ab798f64272b97aa5d7154d0b303
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Jan 5 13:40:41 2017 +0000
-
- qa/tasks: add test_corrupt_backtrace
-
- Validate that we get EIO and a damage table entry
- when seeing a decode error on a backtrace.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 5f6cdab80f6e2f09af5783c8f616d8ddd6d9f428)
-
-commit 893d4ab72fec1529550b28ee930be8de5a74ee2b
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Dec 20 18:04:47 2016 +0000
-
- mds: check for errors decoding backtraces
-
- Fixes: http://tracker.ceph.com/issues/18311
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 6f489c74ac0040631fde0ceb0926cbab24d3ad55)
-
-commit 895ab243fe5d3bd07bff0bd422d1dc9cb561f0a0
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Dec 12 10:35:38 2016 -0800
-
- PG: fix cached_removed_snaps bug in PGPool::update after map gap
-
- 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a actually made 15943 worse
- by always creating an out-of-date cached_removed_snaps value after
- a map gap rather than only in the case where the the first map after
- the gap did not remove any snapshots.
-
- Introduced: 5798fb3bf6d726d14a9c5cb99dc5902eba5b878a
- Fixes: http://tracker.ceph.com/issues/15943
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 5642e7e1b3bb6ffceddacd2f4030eb13a17fcccc)
-
-commit 299478a1e69c9da8dc902e2f102d5d272412fdc8
-Author: Samuel Just <sjust@redhat.com>
-Date: Wed Dec 14 15:48:59 2016 -0800
-
- qa/config/rados.yaml: enable osd_debug_verify_cached_snaps
-
- Also, make map gaps more likely.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit d4b6615a49e4635113f9ba900e9c57147b224357)
-
-commit b492c0089de858cfe2d7030eddd046acac6872ab
-Author: Samuel Just <sjust@redhat.com>
-Date: Mon Dec 12 10:33:13 2016 -0800
-
- PG::handle_advance_map: add debugging option to verify cached_removed_snaps
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit aeb8fef92469831d94f06db457a4ba15b5b0e3c5)
-
-commit 2296c87e2e8c885c5c6bee1ea1807aa7862f88fc
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Nov 24 18:23:43 2016 +0100
-
- osd: improve error message when FileStore op fails due to EPERM
-
- References: http://tracker.ceph.com/issues/18037
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit f7723e59b6e10e1aef35543639e0ea1fcac65574)
-
-commit 7819adb3b5f9af813d4df05d3483175ee54e10df
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Fri Aug 12 18:48:12 2016 -0400
-
- client: don't use special faked-up inode for /..
-
- The CEPH_INO_DOTDOT thing is quite strange. Under most OS (Linux
- included), the parent of the root is itself. IOW, at the root, '.' and
- '..' refer to the same inode.
-
- Change the ceph client to do the same, as this allows users to get
- valid stat info for '..', as well as elimnating some special-casing.
-
- Also in several places, we're checking dn_set.empty as an indicator
- of being the root. While that is true for the root, it's also true
- for unlinked directories.
-
- This patch has treats them the same. An unlinked directory will
- be reparented to itself, effectively acting as a root of its own.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 30d4ca01db0de9a1e12658793ba9bf9faf0331dd)
-
-commit 95edad2d058575231bb9b5468559f7b42667f40e
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Jan 3 12:56:51 2017 -0500
-
- client: don't use special faked-up inode for /..
-
- The CEPH_INO_DOTDOT thing is quite strange. Under most OS (Linux
- included), the parent of the root is itself. IOW, at the root, '.' and
- '..' refer to the same inode.
-
- Change the ceph client to do the same, as this allows users to get
- valid stat info for '..', as well as elimnating some special-casing.
-
- Also in several places, we're checking dn_set.empty as an indicator
- of being the root. While that is true for the root, it's also true
- for unlinked directories.
-
- This patch has treats them the same. An unlinked directory will
- be reparented to itself, effectively acting as a root of its own.
-
- Fixes: http://tracker.ceph.com/issues/18408
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 30d4ca01db0de9a1e12658793ba9bf9faf0331dd)
-
-commit 9a59ce946c4f73d200969d9352b7049c6690eaf4
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Sep 19 15:05:22 2016 +0200
-
- rgw: fix decoding of creation_time and last_update.
-
- Fixes: http://tracker.ceph.com/issues/17167
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 3afe715381ca63539bb20609b614f5e60561711a)
-
-commit bbf4c27cab6476e284feed1fa151cca8763cd442
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:35:02 2016 -0500
-
- qa/tasks/admin_socket: subst in repo name
-
- It is either ceph.git or ceph-ci.git.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit bcbe45d948f1c4da02e27b3be5f29a8b52745e28)
-
-commit 944ec0348e5b4cd69c8aedda833cf5e468a98dc9
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Dec 13 18:54:17 2016 +0200
-
- rbd-nbd: invalid error code for "failed to read nbd request" messages
-
- Fixes: http://tracker.ceph.com/issues/18242
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 42c2514fe22d34e1bd5a5d2686e06f7e01b7c0c3)
-
-commit fcdd5e75c3a3107e4b8c8562036fd54e8ea40ddf
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Dec 2 13:36:35 2016 -0500
-
- rados: optionally support reading omap key from file
-
- Fixes: http://tracker.ceph.com/issues/18123
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 286ceb1e035f060cc564c1ef7400382331893101)
-
-commit d313e42db210e3ab04b5e7e513f7f2660ba1aa1d
-Author: runsisi <runsisi@zte.com.cn>
-Date: Wed Dec 14 15:18:18 2016 +0800
-
- librbd: ignore error when object map is already locked by current client
-
- otherwise when using rbd cli to rollback image with object-map feature
- enabled, the following error message will be printed out on the screen,
- which is confusing to users:
- librbd::object_map::LockRequest: failed to lock object map: (17) File exists
-
- Fixes: http://tracker.ceph.com/issues/16179
-
- Signed-off-by: runsisi <runsisi@zte.com.cn>
- (cherry picked from commit 711da4e2396a8967cd457133a847d40cb46b0a5a)
-
-commit d0b0d4114bb5933bbc6b707e781f1a9262b56fd5
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jan 2 22:49:13 2017 +0100
-
- tests: rbd/test_lock_fence.sh: fix rbdrw.py relative path
-
- This commit fixes a regression introduced by
- cf294777ea92f0911813a7132068584d4f73a65a
-
- Fixes: http://tracker.ceph.com/issues/18388
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 91231de16dbe4d0e493ec617165a2b38078d122b)
-
-commit 06e40eb27f65df861b8f9992f0706fbc464d3f39
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Mon Jan 4 10:03:08 2016 +0100
-
- tests: use ceph-jewel branch for s3tests
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 8877ee4d48b025c6dc171f3ba6064c72b9171ddc
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Fri Dec 16 12:50:50 2016 +0200
-
- rbd: fix json formatting for image and journal status output
-
- Fixes: http://tracker.ceph.com/issues/18261
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 4c2659a0f49ff5f709a8275d6adaa817daf8f76a)
-
-commit 9c84a657e25ccb32be7f775fef3d4c563d4e95b9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 14 20:49:46 2016 -0500
-
- journal: prevent repetitive error messages after being blacklisted
-
- Fixes: http://tracker.ceph.com/issues/18243
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 60f1b1a2f2a96cfe72acfc6855b9cc26b480732d)
-
-commit d069464be70c3a6286cb7918eb83d555e1d52759
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Dec 13 14:40:23 2016 -0500
-
- journal: avoid logging an error when a watch is blacklisted
-
- Fixes: http://tracker.ceph.com/issues/18243
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b82a1c1d1fc43e13aa6e76f5468f43a1f779f7fa)
-
-commit 9a1258de21d4ee2b965b3cdeb65bd71ceac573c1
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon Dec 12 16:42:15 2016 -0500
-
- rgw: use explicit flag to cancel RGWCoroutinesManager::run()
-
- RGWCoroutinesManager::run() was setting ret = -ECANCELED to break out of
- the loop when it sees going_down. coroutines that failed with -ECANCELED
- were confusing this logic and leading to coroutine deadlock assertions
- below. when we hit the going_down case, set a 'canceled' flag, and check
- that flag when deciding whether to break out of the loop
-
- Fixes: http://tracker.ceph.com/issues/17465
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 73cd8df887fb5e45f2d49275cedfeab31809ddc8)
-
-commit a67dca4a45cf68625b6f673b251e101fe713e5b5
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 22 13:05:22 2016 -0500
-
- qa/tasks/workunit: clear clone dir before retrying checkout
-
- If we checkout ceph-ci.git, and don't find a branch,
- we'll try again from ceph.git. But the checkout will
- already exist and the clone will fail, so we'll still
- fail to find the branch.
-
- The same can happen if a previous workunit task already
- checked out the repo.
-
- Fix by removing the repo before checkout (the first and
- second times). Note that this may break if there are
- multiple workunit tasks running in parallel on the same
- role. That is already racy, so if it's happening, we'll
- want to switch to using a truly unique clonedir for each
- instantiation.
-
- Fixes: http://tracker.ceph.com/issues/18336
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 2a7013cd5a033c5be43350505d75f088e831e201)
-
-commit e5c81c34bb766d94d2ef21b407d70d2d089c425b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Dec 16 15:06:16 2016 -0500
-
- qa/tasks/workunit: retry on ceph.git if checkout fails
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 72d73b8c8836ae35c518fa09f44805a74038f02a)
-
-commit efaedb355dbc4697a3f9c3147053a5c92642e785
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Dec 19 14:08:11 2016 -0500
-
- qa/workunits: include extension for nose tests
-
- When you have a relative path you have to include the extension.
- Weird.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 5666fd61d6dbd40be1d79354227cabd562e829ea)
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
- Conflicts:
- qa/workunits/rados/test_python.sh (nosetests instead of nose)
-
-commit de15912c3bb714f9ff48ad8e10b8b4dd6961069e
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 15:10:28 2016 -0500
-
- qa/workunits: use relative path instead of wget from git
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit cf294777ea92f0911813a7132068584d4f73a65a)
-
- Conflicts:
- qa/workunits/rados/test_python.sh (nosetests instead of nose)
-
-commit 74aac99ce20462de0aca042b6128ea479d17bb4b
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:26:14 2016 -0500
-
- qa/tasks/workunit.py: add CEPH_BASE env var
-
- Root of git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 27b8eac24922f8b4bd065e6e7f0bc8e2ba37b5d5)
-
-commit 117d38e2382bc0016729387aba1dfaae9bb7a684
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Dec 15 13:25:23 2016 -0500
-
- qa/tasks/workunit: leave workunits inside git checkout
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4602884ab8f5a256d13091f7239d938990482d95)
-
-commit 5aa9387555c98666a83f909646b62c8688ac24d7
-Author: Weibing Zhang <atheism.zhang@gmail.com>
-Date: Thu Dec 22 14:38:27 2016 +0800
-
- rgw: ldap: simple_bind() should set ldap option on tldap
-
- ldap_set_option() should set option for "tldap" other than "ldap".
- The current code will lead to "Protocol error" as the ldap version
- of tldap is not set.
-
- Signed-off-by: Weibing Zhang <zhangweibing@unitedstack.com>
- (cherry picked from commit 96cf7fa06a1192293b24c823ad9d08456f81ac8a)
-
-commit dcc9483cbd605997876983ec65f6fb80d5da8a52
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Thu Apr 7 16:43:17 2016 +0800
-
- mon: OSDMonitor: trigger an immediate propose if any newly down osd is detected during tick()
-
- Currently we rely on OSDs to watch over each other and perform failure detection
- and report to OSDMonitor. Before we can safely and undoubtedly mark an OSD as down,
- enough reports from a certain number of different reporters must have been collected.
- Also, the victimed OSD has to be declared failed long enough before we make any final
- decision in order to avoid temperary problems such as network failure, network traffic jam etc.,
- which if handled carelessly, may cause even serious problem such as flapping.
-
- Form the above analysis, even if we have gathered enough witnesses, we have to wait long
- enough to sentence the guilty OSD to death. Therefore we rely on the tick() thread to
- do such an hourglass job. However, the problem here is currently the tick() thread is
- unable to trigger a propose even if it has witnessed such a memont, and this is our goal
- to solve such an embrassing situation.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit a80d6c500ab247013a1c068c457c1b9bfbc750b2)
-
-commit 64c0caeab21f1f764bb48c0355b24f24dda2cfe2
-Author: Xiaoxi Chen <xiaoxchen@ebay.com>
-Date: Fri Dec 9 02:40:03 2016 +0800
-
- librbd/diff_iterator: use proper snap to query parent overlap
-
- If no snapshot has been made, we will use CEPH_NOSNAP instead of 0,
- to query the parent overlap.
-
- Fixes bug http://tracker.ceph.com/issues/18200
-
- Signed-off-by: Xiaoxi Chen <xiaoxchen@ebay.com>
- (cherry picked from commit a88ceff2767761483aee73590767c412116a7489)
-
-commit d584f9e124cfd1da1b8d8dbfa1a0d370185c6835
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Mon May 9 11:41:19 2016 +0200
-
- rgw: log name instead of id for SystemMetaObj on failure
-
- Currently if we fail to read a SystemMetaObj we try to log the
- MetaObject id, however this will not be set mostly as read_id has
- failed, so we end up logging an empty id, changing this to log
- the object name instead
-
- Fixes: http://tracker.ceph.com/issues/15776
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit e9f896a9efea74c42d56dd5a7feb8b8710d6becc)
-
-commit 1a0becf4e45e753503d27719540b966d74fdafff
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Mon May 9 14:05:06 2016 +0200
-
- rgw: drop unnecessary spacing in rgw zg init log
-
- Dropping unneeded space when we're printing the failed reading zg info
- message
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- Signed-off-by: Wido den Hollander <wido@42on.com>
- (cherry picked from commit a43ac6e56857ac9b2bf7d6aa2956b7bcc045d5ce)
-
-commit 5b402f8a7b5a763852e93cd0a5decd34572f4518
-Merge: e565d89 3dbf0c9
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Dec 22 00:18:11 2016 +0100
-
- Merge remote-tracking branch 'ceph/jewel-next' into jewel
-
-commit e565d8924241ba0520a836fc96040de41582906f
-Merge: f97b399 5799d5f
-Author: jtlayton <jlayton@redhat.com>
-Date: Wed Dec 21 09:18:18 2016 -0500
-
- Merge pull request #12591 from jtlayton/wip-18308-jewel
-
- Clear setuid bits on ownership changes
-
-commit 5799d5fdba9b890634a9b3d6fa038dfde3818779
-Merge: a0ae9a8 f97b399
-Author: jtlayton <jlayton@redhat.com>
-Date: Tue Dec 20 15:36:39 2016 -0500
-
- Merge branch 'jewel' into wip-18308-jewel
-
-commit f97b399896261612aa0b8bab2c720446d908a644
-Merge: c067b58 f15c8da
-Author: jtlayton <jlayton@redhat.com>
-Date: Tue Dec 20 15:35:54 2016 -0500
-
- Merge pull request #12592 from jtlayton/wip-18307-jewel
-
- Fix mount root for ceph_mount users and change tarball format
-
-commit f15c8dafbcc15982265f072aeddb9d5dfc7166d6
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Dec 20 14:44:04 2016 -0500
-
- ceph_disk: fix a jewel checkin test break
-
- Silly python:
-
- ceph_disk/main.py:173:1: E305 expected 2 blank lines after class or function definition, found 1
- ceph_disk/main.py:5011:1: E305 expected 2 blank lines after class or function definition, found 1
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
-
-commit 8e0cffdd435eeb24f4ea3658cf1db9973759dd29
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Dec 20 11:54:25 2016 -0500
-
- automake: convert to tar-pax
-
- We hit some recent build issues with the merge of ceph-qa-suite into
- the main repo. The ustar format barfs on >100 character symlink
- paths.
-
- Convert to using "tar-pax" which should make it use the posix format.
- Any build machine that we're reasonably targeting should support it.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
-
-commit a0ae9a83df222fce75f41d3b5a3e3d0396dd748a
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Dec 20 08:17:21 2016 -0500
-
- client: drop setuid/setgid bits on ownership change
-
- When we hold exclusive auth caps, then the client is responsible for
- handling changes to the mode. Make sure we remove any setuid/setgid
- bits on an ownership change.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 18d2499d6c85a10b4b54f3b8c335cddf86c4588f)
-
-commit d49e628361a17cca65f31f85350468228a0ec2d7
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Dec 20 08:16:43 2016 -0500
-
- mds: clear setuid/setgid bits on ownership changes
-
- If we get a ownership change, POSIX mandates that you clear the
- setuid and setgid bits unless you are "appropriately privileged", in
- which case the OS is allowed to leave them intact.
-
- Linux however always clears those bits, regardless of the process
- privileges, as that makes it simpler to close some potential races.
- Have ceph do the same.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 6da72500882d9749cb2be6eaa2568e6fe6e5ff4d)
-
-commit f2dfc200dbf93927ca1059ae203c8242b23eeb40
-Author: Jeff Layton <jlayton@redhat.com>
-Date: Tue Dec 20 08:07:23 2016 -0500
-
- client: set metadata["root"] from mount method when it's called with a pathname
-
- Currently, we only set the root properly config file or the
- --client_metadata command line option. If a userland client program
- tries to call ceph_mount with a pathname, it's not being properly
- set.
-
- Since we already hold the mutex, we can just update it directly.
-
- Signed-off-by: Jeff Layton <jlayton@redhat.com>
- (cherry picked from commit 9f8810008c82eebe6e354e7e321e33a3dcba8407)
-
-commit 87a2a95ad1103cecf4b710776d35182920e72823
-Author: Pritha Srivastava <prsrivas@redhat.com>
-Date: Mon Aug 29 14:32:42 2016 +0530
-
- rgw: Replacing '+' with "%20" in canonical uri for s3 v4 auth.
-
- s3cmd encodes space as "%20" while signature computation and
- encodes space as '+' while sending the canonical uri. This
- results in a SignatureMismatch Error in rgw, since rgw
- computes the signature based on the request received from
- the client (s3cmd in this case).
-
- Fixes http://tracker.ceph.com/issues/17076.
-
- Signed-off-by: Pritha Srivastava <prsrivas@redhat.com>
- (cherry picked from commit 20e5ff023ebad89c386a520d07613547d4836399)
-
-commit aa8e57d0d4fa855ec6b2201274dd78504ab9e5c9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 6 12:56:31 2016 -0400
-
- rbd: utilize new API methods for image id and block name prefix
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0a0a88c71552aa5858384fa802a3161da90e7c86)
-
- Conflicts:
- src/tools/rbd/action/Info.cc (jewel does not have
- 653bc453e3c8f1062cdbc4d0d8f77f623f48915b)
-
-commit 05295eff568aec5ff9f5d01bb73b7c7bd1dee581
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Oct 6 12:48:22 2016 -0400
-
- librbd: new API methods to retrieve image id and block name prefix
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 366e6075cab2748efab395cd23882eaee4ba402f)
-
-commit 240431bea219412edf9588490f6d72d16b1f01b6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Sep 5 15:40:33 2016 +0200
-
- build/ops: fix /etc/os-release parsing in install-deps.sh
-
- 85a370e35fc42031a7f7e24dea9e50a649c0f309 introduced the DISTRO variable whose
- value was obtained by parsing /etc/os-release like this:
-
- DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//")
-
- This unfortunately picks up the double-quotes, so on a CentOS system DISTRO
- will be equal to '"centos"'.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit fd37e87f6de0b8e272a2859ec52d6ceab277db7a)
-
-commit f6519509049362ec3f378e2178e577f761a72c42
-Author: Jan Fajerski <jfajerski@suse.com>
-Date: Wed Jun 29 09:40:07 2016 +0200
-
- install-deps.sh: initial distro detection based on /etc/os-release
-
- This avoids initial distribution detection (before lsb_release is available)
- based on the presence of a specific package manager. This caused an
- issue with openSUSE Tumbleweed before since both zypper and apt-get are
- available.
-
- Signed-off-by: Jan Fajerski <jfajerski@suse.com>
- (cherry picked from commit 85a370e35fc42031a7f7e24dea9e50a649c0f309)
-
-commit c067b589128fac3fb382f64ac91ade3be3c69a51
-Merge: c461ee1 d2380d7
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:39:56 2016 -0600
-
- Merge pull request #12454 from liewegas/qa-suite-jewel
-
- jewel: merge ceph-qa-suite
-
-commit d2380d7d1d4fd568b286e0fb90d8d192f361f7c9
-Merge: c461ee1 1c28e7f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:29:59 2016 -0600
-
- merge ceph-qa-suite
-
-commit 1c28e7f08d0e42a14e28b78e12b57a219ce8796c
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 11:29:55 2016 -0600
-
- move ceph-qa-suite dirs into qa/
-
-commit 282451d8cf8d98ca90502e29081aaf7c4a4c9508
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:27:58 2016 -0500
-
- Revert "tasks/workunit.py: depth 1 clone"
-
- This reverts commit e6f61ea9f19d0f1fad4a6547775fa80616eeeb89.
-
-commit e6f61ea9f19d0f1fad4a6547775fa80616eeeb89
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:19:44 2016 -0500
-
- tasks/workunit.py: depth 1 clone
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 4faf77a649cb3f8ddf497ca81937b3dbf63a18dc)
-
-commit 426f7cf2d151a1122cb603a2c9f224a25c9702a2
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 14 12:18:29 2016 -0500
-
- tasks/workunit: remove kludge to use git.ceph.com
-
- This was hard-coded to ceph.git (almost) and breaks when
- you specify --ceph-repo. Remove it entirely. We'll see if
- github.com is better at handling our load than it used to
- be!
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 159c455a0326eef2c017b3e3cf510f918b5ec76c)
-
-commit 1ba5995b7d9816bab936bc1ba557504821e94c89
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Dec 10 02:36:52 2016 +0800
-
- tasks/ceph: restore context of osd mount path before mkfs
-
- all newly created files and directories under the mount dir inherit the
- SELinux type of their parent directory. so we need to set it before
- mkfs.
-
- Fixes: http://tracker.ceph.com/issues/16800
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 53225d5272a1d35d4183fcfa55a139f55f77e122)
-
-commit 26c87fd1f1d105e5aa1c4c32c73f75414ea3d04f
-Author: Pan Liu <pan.liu@istuary.com>
-Date: Thu Dec 8 20:03:30 2016 +0800
-
- rbd: --max_part and --nbds_max options for nbd map
-
- Fixes: http://tracker.ceph.com/issues/18186
- Signed-off-by: Pan Liu <pan.liu@istuary.com>
- (cherry picked from commit 45ceb389b685a5ec7bc0b8ef9e180ce851646082)
-
- Conflicts:
- src/test/cli/rbd/help.t (no --exclusive in jewel-next)
- src/tools/rbd/action/Nbd.cc (no --exclusive in jewel-next)
-
-commit ddb5403605f843b4bc5abd1093b034e087c07f8b
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Nov 30 14:36:38 2016 -0500
-
- radosgw-admin: 'zone placement modify' doesnt require pool names
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit b59afea4dbb06454b1e14f03dd65ba2449674a15)
-
- Conflicts:
- src/rgw/rgw_admin.cc (jewel-next lacks --tier* options)
-
-commit 7cfc346cf1427e37be38ebb92ad9518afa982b83
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Nov 30 13:43:28 2016 -0500
-
- radosgw-admin: add 'zonegroup placement default' command
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 711cc132528f2dfeb6c1f8defb19493ffe7cb9be)
-
-commit dbc1b614add263fe80ef6fc0c09c0597fb9cddff
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Nov 30 13:08:38 2016 -0500
-
- radosgw-admin: fix 'placment' typos
-
- Fixes: http://tracker.ceph.com/issues/18078
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 0cf08985683820cd11492a9ad684d06565a04f34)
-
-commit 4f7147cb79aa0637e156a3a29739fcbadc37e62d
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Nov 29 14:55:52 2016 -0800
-
- rgw_admin: commands to manage placement targets
-
- Fixes: http://tracker.ceph.com/issues/18078
-
- added the following commands:
-
- radosgw-admin zone placement add
- radosgw-admin zone placement modify
- radosgw-admin zone placement rm
- radosgw-admin zone placement list
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit ead132ae84bf3b2738fa0443f4f9666d59edbb43)
-
- Conflicts:
- src/rgw/rgw_admin.cc (jewel-next lacks the --tier* and --sync-from* options)
- src/test/cli/radosgw-admin/help.t (jewel-next lacks the --tier* and --sync-from* options)
-
-commit 155641f9ce6a16ee1fdb3231d76bea0eafc89ff8
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Nov 29 14:15:09 2016 -0800
-
- rgw-admin: add commands to manage zonegroup placement fields
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a91c7b5cc699b2c37d449974d2ebf2eece9506a0)
-
- Conflicts:
- src/rgw/rgw_admin.cc (chose raw_storage_ops_list from master)
-
-commit bb9678bf44b8ed0dd8bb1f895da3c78edc792eeb
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Nov 29 14:05:27 2016 -0800
-
- rgw: use set for zonegroup placement target tags
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 12162d654ce24db0617e4bc3de24aebc28b50996)
diff --git a/src/ceph/doc/changelog/v10.2.7.txt b/src/ceph/doc/changelog/v10.2.7.txt
deleted file mode 100644
index 473f45e..0000000
--- a/src/ceph/doc/changelog/v10.2.7.txt
+++ /dev/null
@@ -1,1530 +0,0 @@
-commit 50e863e0f4bc8f4b9e31156de690d765af245185
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Mon Apr 10 11:43:44 2017 +0000
-
- 10.2.7
-
-commit a64d3e4b33e904aa6585464df8ffff6aafdec10c
-Merge: c92640a 6c2a40a
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:27:07 2017 -0600
-
- Merge pull request #14230 from linuxbox2/wip-jewel-expand-argv
-
- jewel: rgw_file: expand argv
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit c92640a113843a491678c11319d2352f14486f17
-Merge: 7c35658 fcc3ada
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:17:10 2017 -0600
-
- Merge pull request #14233 from ktdreyer/wip-19421-jewel
-
- jewel: librbd: possible race in ExclusiveLock handle_peer_notification
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 7c3565899af5f1f474d82d8802d15c6c216ea894
-Merge: 12467f6 eedb9f7
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:16:48 2017 -0600
-
- Merge pull request #14231 from linuxbox2/wip-jewel-fhcache
-
- jewel: rgw_fh: RGWFileHandle dtor must also cond-unlink from FHCache
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 12467f6c3f346072d81c444ed68eb206402d8c33
-Merge: 2d2521c 78c8be7
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:09:14 2017 -0600
-
- Merge pull request #14215 from mdw-at-linuxbox/wip-jewel-rgw-openssl-fix1
-
- rgw: fix openssl
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 2d2521c0300000421740c611a5133c82d2e4d0f6
-Merge: 0840cf8 7e4e290
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:07:48 2017 -0600
-
- Merge pull request #14206 from linuxbox2/wip-gui-jewel
-
- jewel: rgw_file: various fixes
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 0840cf86214c793794c6f913b63cc67e0ab3fc94
-Merge: 0bf6360 b24a8c2
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:07:03 2017 -0600
-
- Merge pull request #14205 from linuxbox2/wip-dir-orphan-jewel
-
- jewel: rgw_file: wip dir orphan
-
- Conflicts:
- src/rgw/rgw_file.cc (whitespace, trivial resolution)
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 0bf636057ba853d1d1a777147014a740d5149b17
-Merge: 83b5a7f fb85c68
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:05:40 2017 -0600
-
- Merge pull request #14169 from linuxbox2/wip-18650-jewel
-
- jewel: rgw: rgw_file: FHCache residence check should be exhaustive
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 83b5a7f1c589546645e0f377d5d5f7b1f7363a59
-Merge: 6a175f2 a969c44
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Fri Mar 31 10:02:58 2017 -0600
-
- Merge pull request #13869 from smithfarm/wip-19161-jewel
-
- jewel: rgw: rgw_file: fix marker computation
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit fb85c68dfbfcfb299cac3a7e6723067f216483ef
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Feb 28 15:49:06 2017 -0500
-
- rgw_file: use fh_hook::is_linked() to check residence
-
- Previously we assumed that !deleted handles were resident--there
- is an observed case where a !deleted handle is !linked. Since
- we currently use safe_link mode, an is_linked() check is
- available, and exhaustive.
-
- Fixes: http://tracker.ceph.com/issues/19111
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit c0aa515f8d8c57ec5ee09e3b60df3cac60453c40)
-
-commit fcc3ada733bac74a642ccd0f1ed6301ad7318a30
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Mar 28 15:55:11 2017 +0200
-
- jewel: librbd: possible race in ExclusiveLock handle_peer_notification
-
- This is a cherry-pick from kraken -- the master diverged after
- ManagedLock refactoring and is not affected.
-
- Fix: http://tracker.ceph.com/issues/19368
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit df59d6d5f7deb586cf14a6ef6984e6847db08852)
-
-commit eedb9f7d2d2a4047b473f23c5a6956c40a3da126
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Feb 28 20:24:12 2017 -0500
-
- rgw_file: RGWFileHandle dtor must also cond-unlink from FHCache
-
- Formerly masked in part by the reclaim() action, direct-delete now
- substitutes for reclaim() iff its LRU lane is over its high-water
- mark, and in particular, like reclaim() the destructor is certain
- to see handles still interned on the FHcache when nfs-ganesha is
- recycling objects from its own LRU.
-
- Fixes: http://tracker.ceph.com/issues/19112
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit d51a3b1224ba62bb53c6c2c7751fcf7853c35a4b)
-
-commit 6c2a40a800277ded302f3183ac6c68b01ca3ed41
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Jan 17 11:23:45 2017 -0500
-
- rgw_file: split last argv on ws, if provided
-
- This is intended to allow an "extra" unparsed argument string
- containing various cmdline options to be passed as the last argument
- in the argv array of librgw_create(), which nfs-ganesha is
- expecting to happen.
-
- While at it, hook env_args() too.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit fbc19e4effc736c98cc1cc283e5c7b131a0fa766)
-
-commit d2ca03b391340c6944ba453b106f3e1c45b75f1d
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 12 20:18:26 2017 -0500
-
- rgw_file: fix hiwat behavior
-
- Removed logic to skip reclaim processing conditionally on hiwat,
- this probably meant to be related to a lowat value, which does
- not exist.
-
- Having exercised the hiwat reclaim behavior, noticed that the
- path which moves unreachable objects to LRU, could and probably
- should remove them altogether when q.size exceeds hiwat. Now
- the max unreachable float is lane hiwat, for all lanes.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit b8791b2217e9ca87b2d17b51f283fa14bd68b581)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 166cb7f85c240eeaffc70968abf5352d9cd45bd9
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 12 18:20:43 2017 -0500
-
- rgw_file: refcnt bugfixes
-
- This change includes 3 related changes:
-
- 1. add required lock flags for FHCache updates--this is a crash
- bug under concurrent update/lookup
-
- 2. omit to inc/dec refcnt on root filehandles in 2 places--the
- root handle current is not on the lru list, so it's not
- valid to do so
-
- 3. based on observation of LRU behavior during creates/deletes,
- update (cohort) LRU unref to move objects to LRU when their
- refcount falls to SENTINEL_REFCNT--this cheaply primes the
- current reclaim() mechanism, so very significanty improves
- space use (e.g., after deletes) in the absence of scans
- (which is common due to nfs-ganesha caching)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit beaeff059375b44188160dbde8a81dd4f4f8c6eb)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 31a71be9c9f24e22cf7e6eb390d3b39811ee3577
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sat Feb 11 16:38:05 2017 -0500
-
- rgw_file: add refcount dout traces at debuglevel 17
-
- These are helpful for checking RGWFileHandle refcnt invariants.
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 462034e17f919fb783ee33e2c9fa8089f93fd97d)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 1d6c72fe9a59561fb8f33889895b6708342b2856
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Feb 10 17:14:16 2017 -0500
-
- rgw_file: add pretty-print for RGWFileHandle
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit ef330f385d3407af5f470b5093145f59cc4dcc79)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit a969c449272ce88ddcbbd509432134f19520c8c3
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Feb 20 15:05:18 2017 -0500
-
- rgw_file: fix marker computation
-
- Fixes: http://tracker.ceph.com/issues/19018
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4454765e7dd08535c50d24205858e18dba4b454c)
-
-commit a70e83c90eb42439ba194ca197f507f972a18c3c
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 19 20:34:31 2017 -0500
-
- rgw_file: rgw_readdir can't list multi-segment dirs
-
- This issue has one root cause in librgw, namely that the marker
- argument to these requests was incorrectly formatted (though the
- marker cache was working as intended).
-
- Secondarily, for nfs-ganesha users, there is a compounding issue
- that the RGW fsal was required by "temporary" convention to
- populate the entire dirent cache for a directory on a single
- readdir() invocation--the cache_inode/mdcache implementations
- invariantly pass (before future 2.5 changesets, currently in
- progress) a null pointer for the start cookie offset, intended
- to convey this.
-
- Fixes: http://tracker.ceph.com/issues/18991
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 2cd60ee9712291b906123aca1704288b18a9742b)
-
-commit 209987e1c764cac7574bf0bb969e93fcf55b4361
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 19 18:21:06 2017 -0500
-
- rgw_file: allow setattr on placeholder directories
-
- When a POSIX path <bucket>/foo/ is known only as an implicit path
- segment from other objects (e.g., <bucket>/foo/bar.txt), a case
- that would usually arise from S3 upload of such an object, an
- RGWFileHandle object representing "<bucket>/foo/" will be constructed
- as needed, with no backing in RGW.
-
- This is by design, but subsequently, if a setattr is performed on
- such a handle, we must be ready to create the object inline with
- storing the attributes.
-
- Fixes: http://tracker.ceph.com/issues/18989
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 55eec1c0a0e136736961423b7b6244d0f3693c1a)
-
-commit 6a175f27961bd4f0fda8f94c200458f17865c9f9
-Merge: d32ae21 f3face6
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:36:35 2017 -0600
-
- Merge pull request #14140 from smithfarm/wip-19341-jewel
-
- jewel: 'period update' does not remove short_zone_ids of deleted zones
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit d32ae21128d664370f7d07ed14427b75e10da7f8
-Merge: 4dfeed9 0be4e89
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:35:16 2017 -0600
-
- Merge pull request #13886 from cbodley/wip-17786
-
- jewel: rgw: clear data_sync_cr if RGWDataSyncControlCR fails
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 4dfeed949655a5b5041f612b868225c234e86bba
-Merge: d69c54a 1985662
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:34:57 2017 -0600
-
- Merge pull request #13867 from smithfarm/wip-19159-jewel
-
- jewel: rgw: multisite: RGWMetaSyncShardControlCR gives up on EIO
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit d69c54aca9dde3d64b56e5ee72f1cd29057a80c6
-Merge: 0830135 dfaaec0
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:34:24 2017 -0600
-
- Merge pull request #13858 from smithfarm/wip-19152-jewel
-
- jewel: rgw_file: restore (corrected) fix for dir partial match (return of FLAG_EXACT_MATCH)
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 0830135f40ac37ac9027bece65b8aac64c2c7ec9
-Merge: 4dd3a9f 97fed01
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:33:18 2017 -0600
-
- Merge pull request #13848 from smithfarm/wip-19150-jewel
-
- jewel: rgw_file: avoid interning .. in FHCache table and don't ref for them
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 4dd3a9f628053784cff2aa5849ab3c4cdb2acf4e
-Merge: 5eeba9c d333add
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:29:30 2017 -0600
-
- Merge pull request #13844 from smithfarm/wip-19148-jewel
-
- jewel: rgw: DUMPABLE flag is cleared by setuid preventing coredumps
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 5eeba9cb85e9111ef124acd36dccf77c6f00b3e4
-Merge: ae632b0 f7ce5df
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:26:48 2017 -0600
-
- Merge pull request #13823 from asheplyakov/19176-bp-jewel
-
- jewel: rgw: fix swift cannot disable object versioning with empty X-Versions-Location
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit ae632b0da6cc90a993fcae31b56f97c834d15aa1
-Merge: 874120f e8041f6
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:22:23 2017 -0600
-
- Merge pull request #13778 from smithfarm/wip-18811-jewel
-
- jewel: librgw: RGWLibFS::setattr fails on directories
-
- Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 874120f627f509c75b28d1be699812fce881f4bb
-Merge: b0108ea e475bfa
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:21:44 2017 -0600
-
- Merge pull request #13717 from asheplyakov/19115-bp-jewel
-
- jewel: rgw_file: ensure valid_s3_object_name for directories, too
-
- Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit b0108ea3bae1662e90c7fb9a911257f45193798c
-Merge: 6518d70 db928d6
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:19:03 2017 -0600
-
- Merge pull request #13596 from dillaman/wip-19038-jewel
-
- jewel: rbd-mirror: deleting a snapshot during sync can result in read errors
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
-
-commit 6518d70b89686b9a4e8854a4c6290381fbcdd8c3
-Merge: db50938 8941881
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:10:43 2017 -0600
-
- Merge pull request #13583 from asheplyakov/jewel-bp-18901
-
- jewel: rgw_file: interned RGWFileHandle objects need parent refs
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit db50938013f0b1c1fe8a23247c91bbfc38d36a8c
-Merge: 7536871 d44263f
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 16:02:43 2017 -0600
-
- Merge pull request #13503 from linuxbox2/wip-jewel-10156
-
- jewel: rgw: make sending Content-Length in 204 and 304 controllable
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
-commit 75368712aafc51b062b674b263354cca2dd4b49a
-Merge: 250071e 2f20328
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 15:53:49 2017 -0600
-
- Merge pull request #13232 from ovh/wip-rework-recovery-priorities-jewel
-
- jewel: osd: Increase priority for inactive PGs backfill
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 250071eb8dc744237acfed01df2cf04f2d88bc85
-Merge: 6f57a77 9910eac
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 15:51:46 2017 -0600
-
- Merge pull request #13219 from linuxbox2/jewel-rgw-multipart-upload-copy-4
-
- jewel: rgw: multipart uploads copy part support
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 6f57a775301edce7a1039a4aa4479bbd8883cbf6
-Merge: 8c02e54 3fce77a
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Mar 28 15:51:24 2017 -0600
-
- Merge pull request #13108 from vumrao/wip-vumrao-jewel-18657
-
- jewel: osd: fix OSD network address in OSD heartbeat_check log message
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit b24a8c2f3890b6fcc60f3b52cba93d573b9d45a2
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Thu Mar 2 17:21:57 2017 +0800
-
- rgw_file: posix style atime,ctime,mtime
-
- As an ganesha FSAL backend, rgw_file should properly maintain
- the atime,ctime,mtime properly against operations such as:
- (read,write) for file
- (create,unlink,mkdir,rmdir,rename) for dir
- (setattr) for file and dir
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit ac25da2479b9be876cbdb820560ac46a6e2b17d7)
-
-commit b6181833be925b7eb11afffff7f03486bdde2d25
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Feb 20 15:05:18 2017 -0500
-
- rgw_file: fix marker computation
-
- Fixes: http://tracker.ceph.com/issues/19018
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4454765e7dd08535c50d24205858e18dba4b454c)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit ed9308cba2af227991a50a9535df30cf9bb18a82
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 19 20:34:31 2017 -0500
-
- rgw_file: rgw_readdir can't list multi-segment dirs
-
- This issue has one root cause in librgw, namely that the marker
- argument to these requests was incorrectly formatted (though the
- marker cache was working as intended).
-
- Secondarily, for nfs-ganesha users, there is a compounding issue
- that the RGW fsal was required by "temporary" convention to
- populate the entire dirent cache for a directory on a single
- readdir() invocation--the cache_inode/mdcache implementations
- invariantly pass (before future 2.5 changesets, currently in
- progress) a null pointer for the start cookie offset, intended
- to convey this.
-
- Fixes: http://tracker.ceph.com/issues/18991
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 2cd60ee9712291b906123aca1704288b18a9742b)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 26a38e2e1525714978feda018c03698d7af65129
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 19 18:21:06 2017 -0500
-
- rgw_file: allow setattr on placeholder directories
-
- When a POSIX path <bucket>/foo/ is known only as an implicit path
- segment from other objects (e.g., <bucket>/foo/bar.txt), a case
- that would usually arise from S3 upload of such an object, an
- RGWFileHandle object representing "<bucket>/foo/" will be constructed
- as needed, with no backing in RGW.
-
- This is by design, but subsequently, if a setattr is performed on
- such a handle, we must be ready to create the object inline with
- storing the attributes.
-
- Fixes: http://tracker.ceph.com/issues/18989
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 55eec1c0a0e136736961423b7b6244d0f3693c1a)
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 7e4e29038bd820e171d007360cf383c85f67879b
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Wed Mar 8 16:23:11 2017 +0800
-
- rgw_file: fix reversed return value of getattr
-
- When ::getattr returns -ESTALE, rgw_getattr returns ESTALE,
- which is a not expected postive.
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit 39203cf872b8f4af86eb0e4a0f96dffd9cc92b41)
-
-commit 3c02ee4fe9ae70f30328a7b015f5cac4a1804c67
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Mon Mar 20 10:53:46 2017 +0800
-
- rgw_file: fix non-negative return code for open operation
-
- The nfs-ganesha expects a negative retcode for errors.
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit b5f70ef7b066f9ff44770cc8a50ccadaa02f4691)
-
-commit e9a4903c6e77caae6f161056e8aaa5ba10ae5ef2
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Wed Mar 15 15:01:05 2017 +0800
-
- rgw_file: fix double unref on rgw_fh for rename
-
- Skip unref after unlink to fix the problem.
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit bff228734c73b536d2482e2e2fa4ad38b206ebff)
-
-commit 9910eac98474930369d694b236c06ffd627fee04
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 22:20:10 2016 -0700
-
- rgw: multipart part copy, fix regression
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 66fbe9384703c004c01783eb664f55895d310439)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit a3fdf0e246637ef4145b6b5ba1f4b114ec7ebc62
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:44:08 2016 -0700
-
- rgw: minor optimization
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4919dc9987c6376d3d4e143702c26417449524c5)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 2161376baf413acfbf02df07e404d2918729bfcc
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:43:00 2016 -0700
-
- rgw: rgw_obj_key use adjustment in multipart copy part
-
- This fixes a case where objects start with double underscore.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 29fece3545cc1df404a25eec46706b16f893a5df)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 135f84d860d10a2961f430708983113a87ddf899
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 17:43:35 2016 -0700
-
- rgw: multipart copy-part handle versionId
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 53521efffb1cb92e5f5ce992d4127bf9498d7c33)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 9ab65f5501fb59aac17cfdde57371b00af03d84b
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:24:13 2016 -0700
-
- rgw: multipart copy part minor parsing cleanup
-
- no need for range.size()
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 6e9b824d5d4017239d58b4752ebc43bfad8f698d)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 3eb9dc96ff8e655415500a3595a78cab80739826
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:11:43 2016 -0700
-
- rgw: multipart copy, check for empty bucket, improve logging
-
- also reduce log level for non critical user errors.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2bcb3d286b230ef917d5ba96c8276a942f544689)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 2588e95d9d422d3b33fd710de1f5884873465483
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Sep 29 14:07:14 2016 -0700
-
- rgw: multipart copy part, chunked read
-
- Don't read the entire range from source object, read it in parts.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4049e47a0cfc1eef6efd502590b68ba7234589d3)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit bd118b556562176ce2390a935b3bb8c25a62d0c4
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Tue Jul 26 14:56:50 2016 +0200
-
- rgw: doc: add multipart uploads copy part feature as supported
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 8a7ebeee2ff3f10ceb23b7fa43e43c3c450efe22)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit b56b719299becc38ec36d427a36b8c29f2416c08
-Author: Javier M. Mellid <jmunhoz@igalia.com>
-Date: Tue Jul 26 14:53:44 2016 +0200
-
- rgw: multipart uploads copy part support
-
- Add multipart uploads copy part feature.
-
- Fixes: http://tracker.ceph.com/issues/12790
-
- Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
- (cherry picked from commit 949480c2e9760855ed6a0501d364d5e766c8207d)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit d44263fc91da12ea0ad4fec0cd2877b36ddb9e9f
-Author: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-Date: Fri Feb 17 00:56:34 2017 +0100
-
- rgw: make sending Content-Length in 204 and 304 controllable
-
- This commit introduces a new configurable "rgw print prohibited
- content length" to let operator decide whether RadosGW complies
- to RFC 7230 (a part of the HTTP specification) or violates it
- but follows the Swift's behavior.
-
- Fixes: http://tracker.ceph.com/issues/16602
- Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
- (cherry picked from commit d8e3e64ec97a3c222a56bb6f510e5e23d7858615)
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit f3face61351a61f3b71dfb8268a4b645c4d92da2
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Mar 9 15:24:08 2017 -0500
-
- rgw: clear old zone short ids on period update
-
- the short ids of old, removed zones were being kept in the period to
- guard against hash collisions with new zones
-
- but for a hash collision to cause a wrong object to sync, that object
- would have to be uploaded simultaneously to two different zones that had
- the same short id
-
- to avoid this, we just have to prevent the period from containing two
- colliding zones at the same time - we don't have to remember old zone
- short ids forever
-
- Fixes: http://tracker.ceph.com/issues/15618
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 9c45633c836c966ab1f75ea2b1ad3fa0a4886600)
-
-commit 8c02e54a747644d24feb98dbc15a15cdd55d1afd
-Merge: 9d222b9 952f34f
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 24 08:13:02 2017 -0700
-
- Merge pull request #13146 from dzafman/wip-18502-jewel-zafman
-
- jewel: osd: Scrub improvements and other fixes
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 9d222b943217a2ec022678e50b34766d231004ce
-Merge: ce2e989 cb9fae5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Mar 23 16:49:13 2017 +0100
-
- Merge pull request #14100 from smithfarm/wip-18781
-
- Manually merge PR#13143 which was mistakenly merged to jewel-next
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit cb9fae56ebdfda28b0606ee89631deb60e5f7de7
-Merge: ce2e989 ee3c67c
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Mar 23 09:46:53 2017 +0100
-
- Merge branch 'jewel-next' into jewel
-
- Branch "jewel-next" was merged to jewel on Dec 22 (5b402f8a7b), and then PR
- https://github.com/ceph/ceph/pull/13143 merged to jewel-next much later (Feb
- 1st), and then jewel-next was never merged to jewel again before we tagged
- v10.2.6.
-
- This merge brings in a single commit, i.e. the one from
- https://github.com/ceph/ceph/pull/13143
-
- Reported-by: Ken Dreyer <kdreyer@redhat.com>
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit ce2e9897c08775cfbe318f637d61e07eb5433df5
-Merge: 656b5b6 d0a0d2f
-Author: Zack Cerza <zack@cerza.org>
-Date: Tue Mar 14 09:19:28 2017 -0600
-
- Merge pull request #13952 from smithfarm/wip-fix-merge-error
-
- tests: fix merge error in rgw/singleton/all/radosgw-admin.yaml
-
-commit 0be4e89419f2083d081ac784891e4653290cd530
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Oct 11 15:21:42 2016 -0400
-
- rgw: hold a reference on data_sync_cr over run()
-
- run() will drop its reference to data_sync_cr, so we need to hold a
- reference until we can reacquire the lock
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 4cf0d2a768e7402e71280ca16b47353ca2a68505)
-
-commit 18ffdb7baf4aff1fd7f894af1054081f3ee61d28
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Oct 11 15:19:37 2016 -0400
-
- rgw: clear data_sync_cr if RGWDataSyncControlCR fails
-
- async notifications will still try to call wakeup() on RGWDataSyncControlCR
- if it fails, leading to segfault
-
- Fixes: http://tracker.ceph.com/issues/17569
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 5cc599b9bf2dde31de16a5b2831baf06851d69d5)
-
- Conflicts:
- src/rgw/rgw_data_sync.cc: declaration of 'int r'
-
-commit d0a0d2f4bf1dacf7c1f38b968be84a5e905554a8
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Mar 14 01:26:23 2017 +0100
-
- tests: fix merge error in rgw/singleton/all/radosgw-admin.yaml
-
- Introduced by 94d5888c
-
- Reported-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 19856624cd5ea8cb82bc5b46e062beb39674bd34
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon Feb 20 16:00:01 2017 -0500
-
- rgw: RGWMetaSyncShardControlCR retries with backoff on all error codes
-
- RGWBackoffControlCR only treats EBUSY and EAGAIN as 'temporary' error
- codes, with all other errors being fatal when exit_on_error is set
-
- to RGWMetaSyncShardControlCR, a 'fatal' error means that no further sync
- is possible on that shard until the gateway restarts
-
- this changes RGWMetaSyncShardControlCR to set exit_on_error to false, so
- that it will continue to retry with backoff no matter what error code it
- gets
-
- Fixes: http://tracker.ceph.com/issues/19019
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 3e4059557fd6cad5d31014327f60832b36d04a6c)
-
-commit dfaaec0446c3db458bffe1d725518ab4f7cc2fa8
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Feb 23 10:21:38 2017 -0500
-
- rgw_file: return of RGWFileHandle::FLAG_EXACT_MATCH
-
- Allow callers of rgw_lookup() on objects attested in an
- rgw_readdir() callback the ability to bypass exact match in
- RGWLibFS::stat_leaf() case 2, but restore exact match enforcement
- for general lookups.
-
- This preserves required common_prefix namespace behavior, but
- prevents clients from eerily permitting things like "cd sara0" via
- partial name match on "sara01."
-
- Fixes: http://tracker.ceph.com/issues/19059
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 70ef7d45e0abf2661bd4e23161d4e70cf5178079)
-
-commit 9b3784d924112d9ba42b2088d5fb2656ef74fadc
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sun Feb 19 17:43:17 2017 -0500
-
- rgw_file: invalid use of RGWFileHandle::FLAG_EXACT_MATCH
-
- The change which introduced this flag also caused it to be
- given as the flags argument to RGWLibFS::stat_leaf() when called
- from rgw_lookup().
-
- This was incorrect: in particular, when a directory is known only
- as a common prefix of other objects, the AWS namespace mapping
- convention requires lookup("foo") to match a non-materialized
- instance of "foo/" (case 2 in RGWLibFS::stat_leaf's stat loop).
-
- Fixes: http://tracker.ceph.com/issues/18992
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit e31e9eb980f958640150e8d7f17de1b9e5478b1e)
-
-commit 7761376c92eb38a2dd3d19f0b3d81895a4b1167c
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Feb 22 14:57:59 2017 -0500
-
- rgw_file: rgw_lookup: don't ref for "/" or ".."
-
- These refs won't be returned by nfs-ganesha, and are sufficiently
- magical that other consumers should be persuaded to understand
- their specialness.
-
- Fixes: http://tracker.ceph.com/issues/19060
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit dea8d1ee373399a21851690a9753388b659b8ede)
-
-commit 97fed013f66a89c404bac5145080e5d556ff5c42
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Feb 22 10:24:29 2017 -0500
-
- rgw_file: avoid stranding invalid-name bucket handles in fhcache
-
- To avoid a string copy in the common mkdir path, handles for
- proposed buckets currently are staged in the handle table, before
- being rejected. They need to be destaged, not just marked deleted
- (because deleted objects are now assumed not to be linked, as of
- beaeff059375b44188160dbde8a81dd4f4f8c6eb).
-
- This triggered an unhandled Boost assert when deleting staged
- handles, as current safe_link mode requires first removing from
- the FHCache.
-
- Fixes: http://tracker.ceph.com/issues/19036
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 6cde812c92e5bba9f85fbf8486ebe69b55952370)
-
-commit d333addb71a0a92fbac5a7b922dbd69fc9e0604e
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon Feb 27 13:06:59 2017 +1000
-
- rgw: set dumpable flag after setuid post ff0e521
-
- ff0e521 resolved the issue for the other daemons but not for rgw since
- it calls setuid (via civetweb) after the new code sets PR_SET_DUMPABLE.
- Add another prctl call before wait_shutdown.
-
- Fixes: http://tracker.ceph.com/issues/19089
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit bc458d39630b599e0e1ca9fe25ad7455fcffdd10)
-
-commit f7ce5df4064e5538156cb44f9525d7552a0dd098
-Author: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
-Date: Wed Feb 8 15:07:43 2017 +0800
-
- rgw: fix swift cannot disable object versioning with empty X-Versions-Location
-
- we should be able to disable object verioning by removing its X-Versions-Location
- metadata header by sending an empty key value. this description can be found at
- No.8 in http://docs.openstack.org/user-guide/cli-swift-set-object-versions.html.
-
- Fixes: http://tracker.ceph.com/issues/18852
- Signed-off-by: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
- (cherry picked from commit 17c5a0edd2227703cec867f0f588d4eae36dfe1c)
-
-commit 2f2032814189a4ecbf8dc01b59bebfae8ab3f524
-Author: Bartłomiej Święcki <bartlomiej.swiecki@corp.ovh.com>
-Date: Fri Dec 2 16:54:46 2016 +0100
-
- osd: Increase priority for inactive PGs backfill
-
- This change does prioritize backfill of PGs which don't
- have min_size active copies. Such PGs would cause IO stalls
- for clients and would increase throttlers usage.
-
- This change also fixes few subtlle out-of-bounds bugs.
-
- Signed-off-by: Bartłomiej Święcki <bartlomiej.swiecki@corp.ovh.com>
- (cherry picked from commit 6a76adcdb1f92c136841d960aa7cd4e5b94addec)
-
- Conflicts:
- PendingReleaseNotes (removed version number, merged conflicts)
-
-commit e8041f627c6a05a59dba29819ed610ea0896f4dd
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Feb 3 13:44:45 2017 -0500
-
- rgw_file: fix RGWLibFS::setattr for directory objects
-
- Fixes: http://tracker.ceph.com/issues/18808
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 4ad5a9226852d6d564baf2e63278ed6c4c185ecb)
-
-commit e475bfaf7d3a1b0e54172083a92546560219665a
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Thu Feb 23 16:02:07 2017 -0500
-
- rgw_file: ensure valid_s3_object_name for directories, too
-
- The logic in RGWLibFS::mkdir() validated bucket names, but not
- object names (though RGWLibFS::create() did so).
-
- The negative side effect of this was not creating illegal objects
- (we won't), but in a) failing with -EIO and b) more importantly,
- not removing up the proposed object from FHCache, which produced a
- boost assert when recycled.
-
- Fixes: http://tracker.ceph.com/issues/19066
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit eb1cd3b30c0504385f05bf2d2dd5e2251b7efed7)
-
-commit 78c8be7a0df3d1c669f8a2a8fd7a5676d0823209
-Author: Marcus Watts <mdw@linuxbox.com>
-Date: Thu Feb 23 02:30:52 2017 -0500
-
- rgw/openssl fix: xenial autoconf logic problem: gcc/ld got too smart...
-
- On xenial, cc -o foo -lssl -lcrypto doesn't always
- record libssl.so libcrypto.so as runtime library dependencies.
- It is necessary to actually *use* a function from the library before
- it gets recorded. The ld(1) options "--as-needed" and "no-as-needed"
- control this. Evidently the default has changed in xenial.
- That caused my smart "soname" detecting logic for openssl to
- stop working. To make it work, the test program has to
- actually reference routines or variables inside the library.
-
- This is a quick fix for xenial / autoconf. There needs to be
- a better fix for cmake and master.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
-
-commit db928d6b3f983b3a1ccc07440fcd3680700a1188
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Feb 21 15:33:01 2017 -0500
-
- rbd-mirror: retry object copy after -ENOENT error
-
- Fixes: http://tracker.ceph.com/issues/18990
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b4f36d5dc3f4f3cbb23f61cbb945b222248a50df)
-
- Conflicts:
- src/test/librados_test_stub/MockTestMemIoCtxImpl.h: sparse reads not supported
- src/test/rbd_mirror/image_sync/test_mock_ObjectCopyRequest.cc: sparse reads not supported
-
-commit a643fa80e03b41edcc720ff77b69ebaf24a23f3e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Feb 21 13:09:39 2017 -0500
-
- rbd-mirror: object copy should always reference valid snapshots
-
- If a remote snapshot is deleted while an image sync is in-progress,
- associate the read request against the most recent, valid remote
- snapshot for a given snapshot object clone.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9a91efc3047963364944f8be91cee8e8f6afc49a)
-
-commit 37bbc95d56f73e4ec9c6e13ddbae199b14b104b4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Feb 21 11:52:00 2017 -0500
-
- rbd-mirror: replace complex object op tuple with struct
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0c181527c0e151784a0f7c466aaa70b0772f91b1)
-
- Conflicts:
- src/tools/rbd_mirror/image_sync/ObjectCopyRequest.cc: sparse reads not supported
- src/tools/rbd_mirror/image_sync/ObjectCopyRequest.h: sparse reads not supported
-
-commit 8941881e8986af0b2871c15d188d94d49e95dc02
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Dec 30 23:30:16 2016 -0500
-
- rgw_file: interned RGWFileHandle objects need parent refs
-
- RGW NFS fhcache/RGWFileHandle operators assume existence of the
- full chain of parents from any object to the its fs_root--this is
- a consequence of the weakly-connected namespace design goal, and
- not a defect.
-
- This change ensures the invariant by taking a parent ref when
- objects are interned (when a parent ref is guaranteed). Parent
- refs are returned when objects are destroyed--essentially by the
- invariant, such a ref must exist.
-
- The extra ref is omitted when parent->is_root(), as that node is
- not in the LRU cache.
-
- Fixes: http://tracker.ceph.com/issues/18650
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 0e5299f3f43e633a5d8a9360893b4b11f6217d81)
-
-commit 952f34f39cdd0438e4a4fb369ea8ca20b26488a8
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Dec 12 15:53:25 2016 -0800
-
- test: Update for new error message when doing scrub with deep-scrub errors
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 85e0774a7dded4aa6c67f237416041e25a7680bc)
-
-commit b655b98e48989ae954dc150fcb3d8976978cd90d
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 9 12:14:06 2016 -0800
-
- osd: Add "trigger_scrub" admin socket command
-
- This allows testing to fake a schedule scrub (must_scrub not set)
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c8dc945260ee2ee841aca00fbc802d41036033d6)
-
-commit 94c958d2c9570e55305384ac86185e328746d2ff
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 8 23:00:13 2016 -0800
-
- test: Add test for keeping deep-scrub information
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 64a7012e986ec88994c073b738fd08e8958395c3)
-
-commit 42eb24f18d5114410bd2a3e84e9219584d9e165e
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 1 16:39:42 2016 -0800
-
- osd: When deep-scrub errors present upgrade regular scrubs
-
- Previously, if a weekly deep-scrub found errors the next daily scrub
- would cause the deep-scrub information to be removed.
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 532a759dca466181f37a329f86045c34f1a2506f)
-
-commit 76a457aa7c411dc5ed22f171954b8ed3c4661845
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 19 17:10:29 2016 -0700
-
- tasks/scrub_test.py: Make test deterministic by updating digests
-
- ceph_test_rados: Get coverage of digest updates in deep-scrub/repair
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e000ab2f46b7b98a223176a2a25bb7195e601af6)
-
-commit bd1f1983129d6e1787b8b5eb4884c5e908f7b274
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Oct 19 17:10:07 2016 -0700
-
- repair_test, scrub_test: Fix whitelists for scrub changes
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5fe8522df47f56842d227e08b2912623504afe24)
-
-commit 28106f06404407df7d05b35f9f570a80e785e635
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Aug 31 12:02:31 2016 -0700
-
- scrub_test: Fix for list-inconsistent-obj output changes
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5ae0f5c75a8236d4a026f9ddcb5ff59964d90579)
-
-commit abcefc1395f76e5b05a988b970457a7f6dac6e8e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 30 12:11:44 2016 -0700
-
- doc, test: Add schemas for list-inconsistent-* rados command output
-
- If jsonschema cmd is available use it to test output against schema
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit eb73dd473600fbbb45fad00194f7c46b565d6b81)
-
-commit 2fa2b64676555a91883a5aabb4e4237124308629
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 30 12:22:55 2016 -0700
-
- test: Update testing for new list-inconsistent-obj output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b7bacd219b000869b9c93e21edba4f8a3ace60d9)
-
- Adapted for difference in Jewel object_info
-
-commit 304f697ff1106695188b572e0da2415437040a6c
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 30 12:22:29 2016 -0700
-
- rados, osd: Improve attrs output of list-inconsistent-obj
-
- Persist the user_version and shard id of scrubbed obj
- Rados command dump inconsistent obj's version and shard-id
- so they can be passed to repair command
- Rados list-inconsistent-obj output of attrs
- Make attrs an array since there are more than one
- Use base64 encode for values with non-printable chars
- Add indication if base64 encoding used
- Add checking for ss_attr_missing and ss_attr_corrupted
- Rename attr errors to attr_key_mismatch and attr_value_mismatch
- Add missing size_mismatch_oi scrub checking
- For erasure coded pools add ec_size_error and ec_hash_error not just read_error
- Use oi_attr_missing and oi_attr_corrupted just like list-inconsistent-snap does
- Pick an object info based on version and use that to find specific shards in error
- Check for object info inconsistency which should be rare
- Make all errors based on comparing shards to each other object errors
- We don't want give the impression that we've picked the correct one
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit df3ff6dafeadb3822b35c424a890db9a14d7f60f)
-
-commit ea52f527e530b111b1bb26d10824c0230d662c4a
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Sep 1 14:45:01 2016 -0700
-
- osd: Fix logging to help with diagnostics
-
- These messages were not outputing the intended information
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b39001ec6ff0996860bcb5a3578bc2c66355c781)
-
-commit 5e8f8a2288aa1a9f1de86d3f7d0f9c66c795113e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jun 21 18:05:25 2016 -0700
-
- test: Fix use of wait_for_clean()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit d0503a52d0fe5505bdb38dfd613c03a20500c05d)
-
-commit 2230e6adc66ca3e5dbe81aecccdb4a435e93e256
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 30 10:56:06 2016 -0700
-
- common: Change cleanbin() to use base64 encoding, update ceph-objectstore-tool
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 92e982c71995b863466d83671468f84761cb1793)
-
-commit 83ea077ee560d31a5c302a62b55451a2571fda8d
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Aug 30 11:05:16 2016 -0700
-
- common: Move cleanbin() function to common/util.cc
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5c79074ffaee34b2956d9dfc67b1eff9f39b47f3)
-
- Conflicts:
- src/tools/CMakeLists.txt (changes goes in src/CMakeLists.txt)
-
-commit ba84ca9fa391d963d1d4e46fbf27ce3dbff397be
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Jun 8 09:48:00 2016 -0700
-
- test: Add test support for deep-scrub
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 907e79e2b77835d1aca9e8ba2fae5fa2fd437e5a)
-
-commit 6a421d19d0be4d59beed5c69bb0aa4477d65a14e
-Author: David Zafman <dzafman@redhat.com>
-Date: Sat Jun 18 17:58:36 2016 -0700
-
- common: Fix indentation
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit a74418a29e4e469117fc0c4edd80f78b62944c98)
-
-commit c7c3e070336dc898460d4338b4d78b8963467c8a
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Aug 12 12:06:31 2016 -0700
-
- osd: Handle corrupt attributes in get_object_context()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 30f8b0d6593718dd10bcf6ff459c95b4bb68c05c)
-
-commit 8006ba7e86ebb8201a040c427cc95197901064be
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Nov 11 21:37:50 2016 +0800
-
- ReplicatedPG::failed_push: release read lock on failure
-
- and requeue the blocked ops.
-
- Fixes: http://tracker.ceph.com/issues/17857
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit b3224a18f6acc7ed54c2162b140a33b6146a16be)
-
-commit 5ca69d57dbe2ee7acc64d28ca35bb390bf463199
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Oct 14 16:17:55 2016 -0700
-
- test.sh: Make check for flags more robust
-
- Low space broke test, saw "flags nearfull,pauserd,pausewr...."
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b4c080b1b4378d659c1ca8a17811cd6f84595166)
-
-commit 1be38e5ebd2d01d5d527b05e64b026df955ffe69
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Jul 21 17:36:34 2016 -0700
-
- test: Remove extra objectstore_tool call which causes a recovery
-
- Caused by: 70e000a9a42c50eda48f5d3b9e432ffc3a70f75b
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 6904529d1b53993304de2927500937ba0d493e9e)
-
-commit 026f181e72f2e09e769a8821dfe2c99f6213e6a3
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Jun 14 20:09:15 2016 -0700
-
- test: Handle object removals in a non-racey way
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit bfe3ebd94fdc1ef36ebe6e8f9d38acea322eca22)
-
-commit c5ef385c25086dc1582ebe5343481d05283b0cc6
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu May 26 22:09:42 2016 -0700
-
- osd: Fix hang on unfound object after mark_unfound_lost is done
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 73a27533beba3587f8447b4d41d200427c45042b)
-
- Conflicts:
- src/osd/ReplicatedPG.cc (trivial)
-
-commit 6284f745157458439699c76e8616455c50d1eb71
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 20 15:20:18 2016 -0700
-
- osd: Handle recovery read errors
-
- Fixes: http://tracker.ceph.com/issues/13937
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit c51d70e1e837c972e42ddd5fa66f7ca4477b95cc)
-
- Conflicts:
- src/osd/ReplicatedPG.h (trivial)
-
-commit 27393a8c05d4656f342ecd32817307e558a2e400
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 20 18:19:42 2016 -0700
-
- osd: Fix log messages
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit b40ec3fe890679b4c73778815e1bedd492cb264b)
-
-commit cbf66f3b16f194dd0c67b46e0fec247e02e84134
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri May 20 13:58:32 2016 -0700
-
- osd: CLEANUP: Remove unused pending_read member
-
- Remove unused struct
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 36fd68c96653e83f87767feb08530a9fc6e841b0)
-
-commit 228b91d72a15b62adc10591604c4e8a849df53d5
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Oct 11 18:08:12 2016 -0700
-
- test/osd-scrub-repair.sh: Use test case specific object names to help with diagnostics
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0bf4da589155ee50969812492cfbc66368efb54c)
-
-commit ee3c67c9cbfdeeb3e628bac34b708cf150b3862e
-Merge: 3dbf0c9 39848e4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Feb 1 23:28:22 2017 +0100
-
- Merge pull request #13143 from linuxbox2/jewel-mdw-rgw-lf
-
- jewel: rgw: radosgw/swift: clean up flush / newline behavior.
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 39848e41b7c517cc5faab1ccf77c2804fd7d2628
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Wed Jan 11 00:06:15 2017 -0500
-
- radosgw/swift: clean up flush / newline behavior.
-
- The current code emits a newline after swift errors, but fails
- to account for it when it calculates 'content-length'. This results in
- some clients (go github.com/ncw/swift) producing complaints about the
- unsolicited newline such as this,
- Unsolicited response received on idle HTTP channel starting with "\n"; err=<nil>
-
- This logic eliminates the newline on flush. This makes the content length
- calculation correct and eliminates the stray newline.
-
- There was already existing separator logic in the rgw plain formatter
- that can emit a newline at the correct point. It had been checking
- "len" to decide if previous data had been emitted, but that's reset to 0
- by flush(). So, this logic adds a new per-instance variable to separately
- track state that it emitted a previous item (and should emit a newline).
-
- Fixes: http://tracker.ceph.com/issues/18473
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 5f229d6a33eae4906f22cdb90941835e47ee9f02)
-
-commit 3fce77ab3662496368e25cbbf6d1b37d3c140db9
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Wed Jan 25 21:54:27 2017 +0530
-
- osd: jewel fix OSD network address in OSD heartbeat_check log message
-
- Fixes: http://tracker.ceph.com/issues/18657
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
-
-commit 14a6aabe22f68436ea3297ce0851700f86ee5b12
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Wed Aug 3 17:36:55 2016 -0400
-
- rgw: Handle multiple listening addreses w/ optional ssl "correctly" with civetweb.
-
- For civetweb: accept a range of port numbers joined with '+'.
- Port numbers may include an ipaddress: prefix and 's' suffix.
- Additionally, use "mg_get_local_addr" to correctly deduce host port per
- incoming connection.
-
- civetweb can accept connections on multiple ports, some of which
- might have SSL turned on and some not. Both s3 and swift have various
- authorization protocols in which the port number matters. In the generic
- radosgw frontend process, each frontend only has one port number, but
- we should want to have both ssl and non-ssl connections managed within
- one rgw frontend, because the thread pool is also per front-end, and
- that *is* a scarce resource.
-
- So, this patch enables the use of multiple ports with a single civetweb
- frontend. To indicate https: append an 's' to portno. To use multiple
- ports, use +. So 80+443s indicates use of the usual default http ports.
- The parsed port is not stored in the frontend structure,
-
- So instead, this patch adds logic to use the results of
- mg_get_local_addr() on a per-connection basis insetad of the generic
- front-end port number. This will affect "v4" s3 authorization, and also
- affect swift pre-signed URLs.
-
- mg_get_local_addr() is a new customization to civetweb; that submodule
- was updated (in a temporary repository) by the previous commit to this.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 8bc6decc0774fae9ac881f91e73da55deebe3360)
-
-commit 698250563ccc4c69e5ca5aebf65dc352d80a8bdd
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Tue Dec 20 00:22:02 2016 -0500
-
- rgw: s3: secure_port should override port, also apply ssl default right.
-
- Without https, only port is set. With https, secure_port and port are
- both set to the same value. The previous logic looked at port first and
- had overly simplified conditional logic which was liable to try to apply
- both non-default cases. The correct behavior is: look secure_port first,
- and if secure_port is set, then only check to see if it's a non-default
- port.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit a113cf5ff5a642d2ee4cc83f5c7001b4bfe0a5df)
-
-commit 28f2841c8b9a832e486b9f89c574a4591bf3d448
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Wed Nov 2 00:18:48 2016 -0400
-
- rgw: Get civetweb ssl enhancement: wip-listen3 = mg_get_local_addr
-
- The logic inside of radosgw that computes aws v4 signatures wants to know
- what server port the client connected. The patch to civetweb patch adds a
- call mg_get_local_addr() which will permit that code to actually find out
- on what address a connection was received, rather than merely guessing
- based on configuration as it previously did.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 46ced9ddd2795f00f014e22e5637070b49e7a6d5)
-
-commit 8d83dfb4176ede7490d0cab589e9566bc7d4e387
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Wed Mar 23 17:32:14 2016 -0400
-
- rgw: Document that radosgw now supports SSL.
-
- This includes information on file format and configuration file syntax.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit d4e72dfed30274b3cfbad4ac58c0746a98c0148b)
-
-commit e3f80c9d0ed6762a39fc242561f5ea26f0f26546
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Fri Jan 13 03:39:57 2017 -0500
-
- rgw: civetweb/openssl: automagic: load libssl.so and libcrypto.so by soname.
-
- If building with radosgw, always look for openssl library (even when
- building with nss). Then, use objdump to fetch SONAME from the copies
- of libssl and libcrypto that were found. When building civetweb; pass
- the library soname values in as the libraries to load with "dlopen".
-
- The issue reported here against master
- http://tracker.ceph.com/issues/16535
- reflects stuff that doesn't seem to have made it into jewel
- (which had: -lssl -lcrypto hard-wired into it.)
- Still, since people were pretty riled about making that change,
- this puts things in congruence to the final result in master.
- (which is: runtime shared object load of ssl crypto by soname.)
-
- Fixes: http://tracker.ceph.com/issues/11239
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (inspired by commit 7caa0bd002110b62514da83a37a2a3deb841267a)
-
-commit 045551485415309ba9bad77e1aee28a0008881ca
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Mon Jul 11 17:54:07 2016 -0400
-
- rgw: civetweb/openssl: Load libssl.so and libcrypto.so by soname.
-
- If building with radosgw, always look for openssl library (even when
- building with nss). Then, use objdump to fetch SONAME from the copies
- of libssl and libcrypto that were found. When building civetweb; pass
- the library soname values in as the libraries to load with "dlopen".
-
- This is a problem that went away for a bit, but came back with some
- changes for
- http://tracker.ceph.com/issues/16535
-
- Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1341775
- Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1258961
-
- Fixes: http://tracker.ceph.com/issues/11239
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 7caa0bd002110b62514da83a37a2a3deb841267a)
-
-commit 386640865dee30d38f17e55fc87535e419bc3cb5
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Thu Nov 3 23:33:44 2016 -0400
-
- rgw: cmake: remove useless civetweb include path side effect.
-
- For 'target_include_directories" for the cmake object library
- 'civetweb_common_objs', change from PUBLIC to PRIVATE. This doesn't
- break anything, so it wasn't doing anything useful. If it has it
- any effect, it would be to cause everything that linked against this
- "library" to also use the indictated include path. Which would be great
- except everything in ceph wants to include "civetweb/civetweb.h" and
- not "civetweb.h". We already make separate arrangements elsewhere for
- that to work. Additionally, static object libraries in cmake aren't
- really libraries, so I'm not entirely sure this even does anything.
- So: making this public is not useful, and could be harmful. Making it
- private makes this only take effect for building civetweb.c itself,
- exactly the effect we we require, and no more.
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 8308a13b0257c9460fd2a721c20b0c37cb9e7c57)
diff --git a/src/ceph/doc/changelog/v10.2.8.txt b/src/ceph/doc/changelog/v10.2.8.txt
deleted file mode 100644
index 575a7b0..0000000
--- a/src/ceph/doc/changelog/v10.2.8.txt
+++ /dev/null
@@ -1,5435 +0,0 @@
-commit f5b1f1fd7c0be0506ba73502a675de9d048b744e
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Thu Jul 6 14:56:18 2017 +0000
-
- 10.2.8
-
-commit 66dbf9beef04988dbd3653591e51afa6d84e3990
-Merge: 2f491b2e5e f46ccf2cb4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jul 4 17:43:57 2017 +0200
-
- Merge pull request #14710 from smithfarm/wip-start-race
-
- tests: rados: sleep before ceph tell osd.0 flush_pg_stats after restart
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 2f491b2e5e8b1f340b28415c3bd3d9628603c377
-Merge: 552a573f84 a372b4eca1
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Tue Jul 4 07:31:50 2017 -0700
-
- Merge pull request #16089 from ceph/wip_fix_point_jewel
-
- qa/Fixed upgrade sequence to 10.2.0 -> 10.2.7 -> latest -x (10.2.8)
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 552a573f8426ecfec1a0df21a6c3941afd4e460c
-Merge: 53a3be7261 55eeaadfc4
-Author: Yuri Weinstein <yuri.weinstein@gmail.com>
-Date: Mon Jul 3 17:23:43 2017 -0700
-
- Merge pull request #16088 from smithfarm/wip-fix-client-upgrade-centos
-
- tests: run upgrade/client-upgrade on latest CentOS 7.3
-
- Reviewed-by: Yuri Weinstein <yweins@redhat.com>
-
-commit a372b4eca1f25647541943918ae737f20783db11
-Author: Yuri Weinstein <yweinste@redhat.com>
-Date: Mon Jul 3 14:18:14 2017 -0700
-
- Fixed upgrade sequence to 10.2.0 -> 10.2.7 -> latest -x (10.2.8)
-
- Signed-off-by: Yuri Weinstein <yweinste@redhat.com>
-
-commit 55eeaadfc4025c83cb63c951265710868df0325f
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Mon Jul 3 22:55:21 2017 +0200
-
- tests: run upgrade/client-upgrade on latest CentOS 7.3
-
- Before this patch, all centos jobs were failing because there are no longer any
- CentOS 7.2 machines in Sepia.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 53a3be7261cfeb12445fbdba8238eefa40ed09f5
-Merge: 84bd162978 d33b30cdb0
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Jun 30 16:43:38 2017 +0200
-
- Merge pull request #15504 from Vicente-Cheng/wip-20151-jewel
-
- jewel: ceph-disk: do not setup_statedir on trigger
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 84bd162978e48eead40335bcbd92e4ab18e9c590
-Merge: c710689109 8e0e4a0ce7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 28 10:20:23 2017 +0200
-
- Merge pull request #15904 from smithfarm/wip-20413-jewel
-
- jewel: tests: upgrade:hammer-x/stress-split-erasure-code-x86_64 fails in 10.2.8 integration testing
-
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit c7106891096c895f0cc5c2cef438078ea48de95d
-Merge: 5c6cb14806 9d3110c276
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 28 08:16:33 2017 +0200
-
- Merge pull request #14930 from smithfarm/wip-19829-jewel
-
- jewel: tests: New upgrade test for #14930
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 5c6cb1480699f5ce464e25b9cacdda770ce3660d
-Merge: bdc085d02a d43e19d886
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 28 08:16:04 2017 +0200
-
- Merge pull request #14392 from asheplyakov/19508-jewel
-
- jewel: osd: pg_pool_t::encode(): be compatible with Hammer <= 0.94.6
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 9d3110c276917055b078cd14c181b2bda2625821
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jun 25 10:32:16 2017 +0200
-
- tests: upgrade/hammer-x/v0-94-6-mon-overload: tweak packages list
-
- Include some hammer dependencies that aren't in the jewel default packages
- list, and exclude some java packages that may not be in the hammer repo and are
- not needed for the upgrade test in any case.
-
- N.B.: This cannot be cherry-picked from master because upgrade/hammer-x was
- dropped in master.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 6a64f8901bb3b218a8dc58b11d6c13033d45f067
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed May 3 11:39:27 2017 +0200
-
- tests: upgrade/hammer-x: new v0-94-6-mon-overload subsuite
-
- This is not a cherry-pick from master because direct upgrades
- from hammer to kraken+ are not supported.
-
- Fixes: http://tracker.ceph.com/issues/19829
- References: http://tracker.ceph.com/issues/19508
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit bdc085d02ab9723f6b90b6a3047bc51cf224b930
-Merge: e41ae4a7b1 d2d4b7202d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jun 27 12:41:59 2017 +0200
-
- Merge pull request #15936 from batrick/i20412
-
- qa: enable quotas for pre-luminous quota tests
-
- Reviewed-by: John Spray <john.spray@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit d2d4b7202d77e5696eb18c4da4f7d614116ced36
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Mon Jun 26 19:04:48 2017 -0700
-
- qa: enable quotas for pre-luminous quota tests
-
- This cannot be cherry-picked from master because the config option is removed
- since 0f250a889dba2100d3afcea0a18e4f6a8d086b86.
-
- Fixes: http://tracker.ceph.com/issues/20412
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
-
-commit e41ae4a7b1b9cc4394473e21f6e6d6ef9cab1d59
-Merge: a21af3b7a1 682b4d717c
-Author: Sage Weil <sage@newdream.net>
-Date: Mon Jun 26 21:24:11 2017 -0500
-
- Merge pull request #15933 from smithfarm/wip-hammer-jewel-x
-
- jewel: tests: drop upgrade/hammer-jewel-x
-
-commit 682b4d717c96b516c315a01b1174af3503dedba6
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jun 27 02:27:22 2017 +0200
-
- tests: drop upgrade/hammer-jewel-x
-
- This suite doesn't have any test logic in it. Its existence in the jewel branch
- appears to be an oversight.
-
- This cannot be cherry-picked from master because the upgrade/hammer-jewel-x
- suite is present (and justified) in master and is not currently being dropped
- there.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit a21af3b7a1ea5abfa4f344800e413d6249824204
-Merge: 615a6ab9b7 a744340790
-Author: John Spray <jspray@redhat.com>
-Date: Mon Jun 26 16:25:12 2017 -0400
-
- Merge pull request #15438 from Vicente-Cheng/wip-20027-jewel
-
- jewel: mds: issue new caps when sending reply to client
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 615a6ab9b723d204c6de567750fe9450742fcedb
-Merge: 9b13b48b3e 8ac0e5c363
-Author: John Spray <jspray@redhat.com>
-Date: Mon Jun 26 16:23:48 2017 -0400
-
- Merge pull request #15000 from jan--f/wip-19846-jewel
-
- jewel: cephfs: normalize file open flags internally used by cephfs
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 9b13b48b3ed919340789a41d065eb4a9a27110de
-Merge: d217da1742 b429fa1807
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jun 26 18:25:03 2017 +0200
-
- Merge pull request #15383 from asheplyakov/20014-bp-jewel
-
- jewel: cls/rgw: list_plain_entries() stops before bi_log entries
-
- Reviewed-by: Orit Wasserman <owasserm@redhat.com>
-
-commit d217da174252f9126d530868aa472230ecba31ca
-Merge: e520040ece 4028774122
-Author: Zack Cerza <zack@cerza.org>
-Date: Mon Jun 26 10:17:03 2017 -0600
-
- Merge pull request #15870 from smithfarm/wip-swift-task-move-jewel
-
- tests: move swift.py task from teuthology to ceph, phase one (jewel)
-
-commit e520040ecec756ce181f716dad1c0bad41c77a7d
-Merge: dde8656e6b 1c0c9093ab
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jun 26 09:24:04 2017 +0200
-
- Merge pull request #15842 from smithfarm/wip-sortbitwise-jewel
-
- qa/suites/upgrade/hammer-x: set "sortbitwise" for jewel clusters
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit dde8656e6b5e7ffe66a6fd695cbc17dfb18fb43e
-Merge: 498c96e66a 06cf9f3650
-Author: John Spray <jspray@redhat.com>
-Date: Sun Jun 25 19:59:40 2017 -0400
-
- Merge pull request #15468 from smithfarm/wip-20140-jewel
-
- jewel: cephfs: Journaler may execute on_safe contexts prematurely
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 4028774122954023265d7825fbf9e91dc526fdee
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jun 25 12:42:36 2017 +0200
-
- tests: swift.py: tweak imports
-
- The ".." form only works within the teuthology repo. With swift.py now in the
- Ceph repo, we have to be explicit.
-
- Error message was: "ValueError: Attempted relative import beyond toplevel
- package
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 8e0e4a0ce7489542f47522e0a5161a5bf123c744
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jun 25 10:27:58 2017 +0200
-
- tests: upgrade/hammer-x/stress-split: tweak packages list
-
- Include some hammer dependencies that aren't in the jewel default packages
- list, and exclude some java packages that may not be in the hammer repo and are
- not needed for the upgrade test in any case.
-
- N.B.: This cannot be cherry-picked from master because upgrade/hammer-x was
- dropped in master.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit a86ce728954a765797ce634025d43650d990e480
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jun 25 09:27:47 2017 +0200
-
- tests: swift.py: clone the ceph-jewel branch
-
- The master branch of ceph/swift.git contains tests that are incompatible with
- Jewel and Hammer. The ceph-jewel branch omits these tests.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 498c96e66a91edc8bd614cfc8fc5a14b3d210a76
-Merge: 38af498f9f cda721bbbf
-Author: John Spray <jspray@redhat.com>
-Date: Fri Jun 23 08:02:48 2017 -0400
-
- Merge pull request #15472 from smithfarm/wip-20148-jewel
-
- jewel: mds: Too many stat ops when trying to probe a large file
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 3d5b489369bb2cecccb1f36347654c0a37069d1c
-Merge: 38af498f9f 7b58ac97e9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jun 23 08:35:27 2017 +0200
-
- Merge branch 'master' of /home/smithfarm/src/ceph/upstream/teuthology into wip-swift-task-move-jewel
-
-commit 7b58ac97e9dd195f4170e9e0ea00bae76d1f3ccd
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Jun 23 08:27:42 2017 +0200
-
- tests: move swift.py task to qa/tasks
-
- In preparation for moving this task from ceph/teuthology.git into ceph/ceph.git
-
- The move is necessary because jewel-specific changes are needed, yet teuthology
- does not maintain a separate branch for jewel. Also, swift.py is a
- Ceph-specific task so it makes more sense to have it in Ceph.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 38af498f9f7b62f9f851364ae7f2691832423198
-Merge: d0ae1de51f aa0cd461df
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Jun 22 22:07:23 2017 +0200
-
- Merge pull request #15529 from badone/wip-async-sleep-timer-fix-jewel
-
- jewel: osd: Implement asynchronous scrub sleep
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 1c0c9093ab913a82c1dc5656a54b4009bdc35c9c
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Jun 22 11:32:42 2017 +0200
-
- qa/suites/upgrade/hammer-x: set "sortbitwise" for jewel clusters
-
- Inspired by 3734280522a913ca8340ebc98b80978f63bade6f
-
- This cannot be cherry-picked from master because master does not have
- qa/suites/upgrade/hammer-x
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit d0ae1de51f5faf26a2f4b0d5b7f494a4923f870d
-Merge: 64c011a8c4 de76fdbb9f
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Thu Jun 22 11:59:51 2017 +0800
-
- Merge pull request #15824 from tchaikov/jewel
-
- qa/workunits/rados/test-upgrade-*: whitelist tests the right way
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit de76fdbb9f435652e2c15326d00b01d26ab007a7
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Jun 22 08:06:43 2017 +0800
-
- qa/workunits/rados/test-upgrade-*: whitelist tests the right way
-
- --gtest_filter=POSTIVE_PATTERNS[-NEGATIVE_PATTERNS], so we cannot add
- multiple exclusive patterns using -pattern:-pattern, instead, we should
- use: -pattern:pattern
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Conflicts:
- qa/workunits/rados/test-upgrade-v11.0.0.sh: this change is not
- cherry-picked from master, because the clone-range op was removed
- from master. and only supported in pre-luminous releases.
-
-commit 64c011a8c4af27dc095b1a9190ccf1ca76d2cc8f
-Merge: e8da5e376f ab78cd040f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Jun 20 22:54:00 2017 +0200
-
- Merge pull request #14661 from smithfarm/wip-19575-jewel
-
- jewel: rgw: unsafe access in RGWListBucket_ObjStore_SWIFT::send_response()
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit e8da5e376fc426f85fcab84a5ae71b3c17ed0068
-Merge: 5a1e849ecf 1af6781d3c
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Tue Jun 20 22:42:47 2017 +0800
-
- Merge pull request #15778 from tchaikov/wip-upgrade-without-clone-range-jewel
-
- qa/workunits/rados/test-upgrade-*: whitelist tests for master
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit d43e19d88692bd318f0569559867df919c26d8db
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Fri Apr 7 12:34:20 2017 +0400
-
- jewel: osd: pg_pool_t::encode(): be compatible with Hammer <= 0.94.6
-
- This patch is necessary for Jewel only since direct upgrades from Hammer
- to Kraken and newer are not supported.
-
- Fixes: http://tracker.ceph.com/issues/19508
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit 1af6781d3c60421930087d31124e62cae530ca24
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Jun 20 19:49:14 2017 +0800
-
- qa/workunits/rados/test-upgrade-*: whitelist tests for master
-
- The jewel-x upgrade test now runs this script against a mixed cluster on
- a machine with code from master installed. That means we have to
- skip any new tests that will fail on a mixed cluster. CloneRange was
- removed in 0d7b0b7.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Conflicts:
- qa/workunits/rados/test-upgrade-v11.0.0.sh: this change is not
- cherry-picked from master, because the clone-range op was removed from
- master. and only supported in pre-luminous releases.
-
-commit a74434079088129244b7aae6ccc6df7094282eba
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Sat Apr 22 12:27:12 2017 +0800
-
- mds: issue new caps when sending reply to client
-
- After Locker::issue_new_caps() adds new Capability data struct,
- do not issue caps immediately. Let CInode::encode_inodestate()
- do the job instead. This can avoid various races that early reply
- is not allowed, caps that haven't been sent to client gets revoked.
-
- Fixes: http://tracker.ceph.com/issues/19635
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 799703a4acb49db0b6cc99a23e4326767e694c3a)
-
-commit d33b30cdb019937ff88f9724599f52f4e00d37cf
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Jun 1 11:37:20 2017 +0200
-
- ceph-disk: do not setup_statedir on trigger
-
- trigger may run when statedir is unavailable and does not use it.
-
- Fixes: http://tracker.ceph.com/issues/19941
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 16bfbdd3d9988523bba31aace516c303057daa58)
-
-commit f46ccf2cb4701cd93cd9b15a4e57b5b97798b947
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Apr 21 11:05:05 2017 +0200
-
- tests: rados: sleep before ceph tell osd.0 flush_pg_stats after restart
-
- Even though we wait for HEALTH_OK after restarting the daemons, they are not
- ready to respond to flush_pg_stats.
-
- The reason why the osd is not ready for "tell" command after "ceph health"
- shows that the cluster is "HEALTH_OK" is that the monitor fails to be notified
- that the osd in question is not up in "heatbeat_interval". Because infernalis
- does not have the osd_fast_fail_on_connection_refused support, the monitor
- needs longer to detect that an osd is down, and osd_heartbeat_grace is used to
- determine if an osd is down.
-
- References: http://tracker.ceph.com/issues/16239
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
-commit ab78cd040f6d3946ed40b6638ebcf52969a7cbb6
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Wed Mar 8 14:52:34 2017 -0800
-
- rgw: fix crash when listing objects via swift
-
- Fixes: http://tracker.ceph.com/issues/19249
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a9ec5e8ce184e19c009863db4d3519f9d8af91bd)
-
- Conflicts:
- src/rgw/rgw_rest_swift.cc ("key" element of RGWObjEnt struct
- is not a reference; fix)
-
- (cherry picked from commit 92b35155ff7b7492f3c50bf4f2ff0ffef2ca1c55)
-
-commit 5a1e849ecf215d82e31b9bdd0970cb04200de2c9
-Merge: 2469085d57 66c3db7aee
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Jun 19 22:46:47 2017 +0200
-
- Merge pull request #14752 from cbodley/wip-19474
-
- jewel: rgw: allow system users to read SLO parts
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit cda721bbbfae00ec4244718ae20cbd9ae914c630
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri May 19 09:37:15 2017 +0800
-
- client: update the 'approaching max_size' code
-
- The old 'approaching max_size' code expects MDS set max_size to
- '2 x reported_size'. This is no longer true. The new code reports
- file size when half of previous max_size increment has been used.
-
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 9316b0442c6f828dcf8da952e4c7a63c4db1398d)
-
- Conflicts:
- src/client/Client.cc - in jewel, second argument to check_caps() is
- a bool (see 0df562a8e13 which is not in jewel)
-
-commit 439f39128ec278ce78139d4b96ed098c68efa3f5
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed May 17 19:08:37 2017 +0800
-
- mds: limit client writable range increment
-
- For very large file, setting the writable range to '2 * file_size'
- causes file recovery to run a long time. To recover a 1T file, Filer
- needs to probe 2T~1T range.
-
- Fixes: http://tracker.ceph.com/issues/19955
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 538f35bef944b18e9bca2b15ed7f4e8807ef0554)
-
- Conflicts:
- src/mds/Locker.h - in jewel, file_update_finish() has different
- arguments than it does in master
-
-commit 06cf9f365033f7913051bdf4060f0bc6fc0444d7
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Tue May 23 21:46:54 2017 +0800
-
- osdc/Journaler: avoid executing on_safe contexts prematurely
-
- Journaler::_do_flush() can skip flushing some data when prezered
- journal space isn't enough. Before updating Journaler::next_safe_pos,
- we need to check if Journaler::_do_flush() has flushed enough data.
-
- Fixes: http://tracker.ceph.com/issues/20055
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 6511e7a9e35a14216c03cd6921ca4d232274f953)
-
-commit 2e299b50de4a297fee2aec21290632336d239857
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Apr 12 16:00:18 2017 +0800
-
- osdc/Journaler: make header write_pos align to boundary of flushed entry
-
- This can speed up the process that detects and drops partial written
- entry in the log tail.
-
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 8ae2962b79903e217fda83cea4140af64b5d6883)
-
- Conflicts:
- src/osdc/Journaler.cc - 8d4f6b92cba is not being backported to jewel
- src/osdc/Journaler.h - Journaler::Journaler initializer list is different in jewel, compared to master
-
-commit 2469085d57a05933589165f6f99a67b2e28c7022
-Merge: 42c3fbc129 d57437e338
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 10:01:27 2017 -0400
-
- Merge pull request #14672 from smithfarm/wip-19334-jewel
-
- jewel: MDS heartbeat timeout during rejoin, when working with large amount of caps/inodes
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 8ac0e5c363bd6439071d26874b6714cf2376736f
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri May 12 10:38:51 2017 +0800
-
- pybind: fix cephfs.OSError initialization
-
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- File "cephfs.pyx", line 672, in cephfs.LibCephFS.open (/home/zhyan/Ceph/ceph-2/build/src/pybind/cephfs/pyrex/cephfs.c:10160)
- File "cephfs.pyx", line 155, in cephfs.OSError.__init__ (/home/zhyan/Ceph/ceph-2/build/src/pybind/cephfs/pyrex/cephfs.c:1889)
- TypeError: __init__() takes exactly 3 positional arguments (2 given)
-
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit e6493f64ba4592b8dca54ece4464efa6c7f331a7)
-
-commit 09b9410c2e69a466b001d92fc14eb44d768009f1
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed May 10 08:13:52 2017 +0800
-
- pybind: fix open flags calculation
-
- (O_WRONLY | O_RDWR) is invaild open flags
-
- Fixes: http://tracker.ceph.com/issues/19890
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 2c25c99cb4572ffae97555a56b24a4c4097dcdec)
-
-commit 42c3fbc129cbb60d447c1a6b0402a9def1656446
-Merge: 71d45e1905 7347f11939
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:43:05 2017 -0400
-
- Merge pull request #14677 from smithfarm/wip-19665-jewel
-
- jewel: mds: C_MDSInternalNoop::complete doesn't free itself
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 71d45e190528124a8ff7e4674f7bfb7c340f80ee
-Merge: 27c915f5d2 e6daee8a9f
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:35:08 2017 -0400
-
- Merge pull request #15466 from smithfarm/wip-19762-jewel
-
- jewel: cephfs: non-local quota changes not visible until some IO is done
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 27c915f5d21bd84502e35eb269d955fafc47de0b
-Merge: a76357622a db053da618
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:32:47 2017 -0400
-
- Merge pull request #14700 from smithfarm/wip-19709-jewel
-
- jewel: mds: enable start when session ino info is corrupt
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit a76357622a2773850153aa1f6ea02b1737942c4b
-Merge: 85aab833f7 db86a24e79
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:31:22 2017 -0400
-
- Merge pull request #14685 from smithfarm/wip-19675-jewel
-
- jewel: cephfs: Test failure: test_data_isolated (tasks.cephfs.test_volume_client.TestVolumeClient)
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 85aab833f7f66ac81d8b12f4203fa215787f8d2a
-Merge: f6b395115e 7b9283beec
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:30:53 2017 -0400
-
- Merge pull request #14684 from smithfarm/wip-19673-jewel
-
- jewel: cephfs: mds is crushed, after I set about 400 64KB xattr kv pairs to a file
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit f6b395115e4de15d73269ff6b96f2ee0fd0ea9c3
-Merge: ff60fceb5f b52c508861
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:30:13 2017 -0400
-
- Merge pull request #14683 from smithfarm/wip-19671-jewel
-
- jewel: cephfs: MDS assert failed when shutting down
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit ff60fceb5f5f7f9df4a48da4ad8bd863b9a04e2d
-Merge: 6a6d57d2de 96e801fb53
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:29:50 2017 -0400
-
- Merge pull request #14682 from smithfarm/wip-19668-jewel
-
- jewel: cephfs: MDS goes readonly writing backtrace for a file whose data pool has been removed
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 6a6d57d2de674c5a971e999cb2731b2d8ae1b523
-Merge: 8260669efa f34489dd52
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:27:13 2017 -0400
-
- Merge pull request #14679 from smithfarm/wip-19666-jewel
-
- jewel: cephfs: The mount point break off when mds switch hanppened.
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 8260669efa74f41d3b1b1039fb7b34e070951c34
-Merge: 013529b61f 824b19a9a6
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:26:40 2017 -0400
-
- Merge pull request #14676 from smithfarm/wip-19619-jewel
-
- jewel: cephfs: MDS server crashes due to inconsistent metadata.
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 013529b61fc4fbf02656f7c6cb0baa1bc6004758
-Merge: b518522f64 eab56dae67
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:24:38 2017 -0400
-
- Merge pull request #14674 from smithfarm/wip-19482-jewel
-
- jewel: cephfs: No output for ceph mds rmfailed 0 --yes-i-really-mean-it command
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit b518522f64b66f4a14618a9345b6314ca0f2c54c
-Merge: 388e0d1bc3 63f41d543f
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:23:27 2017 -0400
-
- Merge pull request #14671 from smithfarm/wip-19044-jewel
-
- jewel: tests: buffer overflow in test LibCephFS.DirLs
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 388e0d1bc35985a6916d3eb1ca5184a0907b6e8b
-Merge: d7c7ce7ebb 7146816065
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:23:13 2017 -0400
-
- Merge pull request #14670 from smithfarm/wip-18949-jewel
-
- jewel: mds: avoid reusing deleted inode in StrayManager::_purge_stray_logged
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit d7c7ce7ebbb663dab0dfa8058c845d494d7615cc
-Merge: d717ef73bc d8b139b584
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:22:28 2017 -0400
-
- Merge pull request #14669 from smithfarm/wip-18900-jewel
-
- jewel: cephfs: Test failure: test_open_inode
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit d717ef73bc0d5ef24551ec9157385c8b0521380b
-Merge: c2a3b7567f 36c86f71ef
-Author: John Spray <jspray@redhat.com>
-Date: Wed Jun 14 09:21:43 2017 -0400
-
- Merge pull request #14668 from smithfarm/wip-18705-jewel
-
- jewel: mds: fragment space check can cause replayed request fail
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit c2a3b7567fbe0b2f62bcd38cd9bb9a5a2a238743
-Merge: fd9256b770 5b56214519
-Author: John Spray <jspray@redhat.com>
-Date: Tue Jun 13 19:05:55 2017 +0100
-
- Merge pull request #14698 from smithfarm/wip-19677-jewel
-
- jewel: cephfs: ceph-fuse does not recover after lost connection to MDS
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit fd9256b77010066c934fd0016eb6d3f9c1fb54e1
-Merge: 26ada59c81 c49b114e8d
-Author: Abhishek L <abhishek.lekshmanan@gmail.com>
-Date: Fri Jun 9 19:39:17 2017 +0200
-
- Merge pull request #14766 from smithfarm/wip-19757-jewel
-
- jewel: rgw: fix failed to create bucket if a non-master zonegroup has a single zone
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 26ada59c810bfda5c16f2d935a2b98711e7b2c76
-Merge: fdd25c2bdb e552d91f73
-Author: Abhishek L <abhishek.lekshmanan@gmail.com>
-Date: Fri Jun 9 19:38:46 2017 +0200
-
- Merge pull request #14787 from linuxbox2/jewel-rgw-shard-limit-ck
-
- jewel: rgw: add bucket size limit check to radosgw-admin
-
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit fdd25c2bdb9ec6bb8e3061088b8782bfb2331bc4
-Merge: cfd6750416 fb3ee2efcc
-Author: Abhishek L <abhishek.lekshmanan@gmail.com>
-Date: Fri Jun 9 19:38:23 2017 +0200
-
- Merge pull request #14789 from mdw-at-linuxbox/wip-jewel-rgw-rvk
-
- jewel: rgw: swift: disable revocation thread if sleep == 0 || cache_size == 0
-
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit cfd6750416baeb2bbd3836bc7dc55d83fc214c20
-Merge: ce1fc3492e 86980a045b
-Author: Abhishek L <abhishek.lekshmanan@gmail.com>
-Date: Fri Jun 9 19:36:02 2017 +0200
-
- Merge pull request #14815 from smithfarm/wip-19786-jewel
-
- jewel: rgw: failure to create s3 type subuser from admin rest api
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit ce1fc3492e87c669f7059c2047a3bed077418a89
-Merge: 7ca0252560 aa99558934
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 7 20:13:15 2017 +0200
-
- Merge pull request #15312 from theanalyst/wip-20078
-
- jewel: rgw: only append zonegroups to rest params if not empty
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 7ca0252560d1ff23384afb50a9c2ae2aad2ce85c
-Merge: 62c500f522 59bd6711a4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Jun 7 13:48:06 2017 +0200
-
- Merge pull request #15382 from theanalyst/wip-mem-leak2
-
- jewel: rgw:fix memory leaks in data/md sync
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit aa0cd461df5fee6d143bc07440ec6de829761cef
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon May 22 13:21:25 2017 +1000
-
- osd: Move scrub sleep timer to osdservice
-
- PR 14886 erroneously creates a scrub sleep timer for every pg resulting
- in a proliferation of threads. Move the timer to the osd service so
- there can be only one.
-
- Fixes: http://tracker.ceph.com/issues/19986
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit f110a82437df79dc20207d296e8229fc0e9ce18b)
-
- Conflicts:
- src/osd/PG.cc - ceph_clock_now requires a CephContext argmunent
- in Jewel
-
-commit c47bd0562b1187ffb0b1b2c1ef5f105aa7951d10
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon Apr 24 14:10:47 2017 +1000
-
- osd: Implement asynchronous scrub sleep
-
- Rather than blocking the main op queue just do an async sleep.
-
- Fixes: http://tracker.ceph.com/issues/19497
-
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 7af3e86c2e4992db35637864b83832535c94d0e6)
-
-commit e6daee8a9fbc576da2a03550a81056d093a516c9
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Jun 4 20:39:58 2017 +0200
-
- Client.cc: adjust Client::_getattr calls
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit a2c7a2262ac8ecbea78f09e6e8e6a37498568d57
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 15 19:36:08 2017 +0000
-
- qa/cephfs: use getfattr/setfattr helpers
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit dd43d3bc646aeab88486b0963fc83de0b18800c4)
-
- Conflicts:
- qa/tasks/cephfs/test_data_scan.py: difference in the
- self._mount.run_shell() call in NonDefaultLayout::write (which is
- being dropped by this commit) - in jewel it has "sudo", and in
- master it doesn't
-
-commit 12aa35a6d50f612df77199ac4f35c7baeed0583e
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Jun 22 13:00:44 2016 +0100
-
- tasks/cephfs: fix race while mounting
-
- This could fail if the mount hadn't finished
- coming up.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit adfb757c898a80f18c15dafd02e29840c5931c87)
-
-commit a7b699269b65c76361fcb1d10593812be40c7612
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 15 19:26:30 2017 +0000
-
- qa: add test for reading quotas from different clients
-
- Fixes: http://tracker.ceph.com/issues/17939
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 61617f8f10a6322603a9add77980865cd972ef97)
-
-commit 8b8ee392b8093b9b140dbbe895691f69ae40440f
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 15 17:51:44 2017 +0000
-
- client: _getattr on quota_root before using in statfs
-
- ...so that after someone adjusts the quota settings
- on an inode that another client is using as its mount root,
- the change is visible immediately on the other client.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 3d25941aadd223669448d0f5d3c0bd1fefa72308)
-
-commit dd7d59a08141d6a24b172c22f5e27c8962e25fb9
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 15 15:32:47 2017 +0000
-
- client: getattr before read on ceph.* xattrs
-
- Previously we were returning values for quota, layout
- xattrs without any kind of update -- the user just got
- whatever happened to be in our cache.
-
- Clearly this extra round trip has a cost, but reads of
- these xattrs are fairly rare, happening on admin
- intervention rather than in normal operation.
-
- Fixes: http://tracker.ceph.com/issues/17939
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 532dc4b68e538c189ef828f67cecd0d647a62250)
-
-commit 62c500f52240eaa5faadd3795bd9ec84bdcbc6c7
-Merge: 2badc2416c 8dd93cabd5
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Jun 2 09:54:22 2017 -0700
-
- Merge pull request #15416 from dzafman/wip-20126
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8dd93cabd52cbafc29a47862f343431eb6f1cfe3
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed May 31 15:39:19 2017 -0700
-
- osd: Object level shard errors are tracked and used if no auth available
-
- Shards with object mismatch are tracked to mark them inconsistent
- Fix test because storing omap_digest in object_info not behaving as before
-
- Fixes: http://tracker.ceph.com/issues/20089
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
-
- (cherry picked from commit 1cacbea763c7aabfeaaf4bd5e878301044184117)
-
- Conflicts:
- src/test/osd/osd-scrub-repair.sh (no alloc_hint in object_info)
-
-commit 59bd6711a47c354117a612dd4ef033d70d449383
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Wed Jun 1 17:20:49 2016 +0800
-
- rgw:fix memory leaks
-
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit 73e5be2b6133cf4caa0e5e5c8c9eae748b785dbf)
-
-commit b429fa1807062716c9705ddcf316ed9b2741cc43
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri May 5 14:56:40 2017 -0400
-
- cls/rgw: list_plain_entries() stops before bi_log entries
-
- list_plain_entries() was using encode_obj_versioned_data_key() to set
- its end_key, which gives a prefix of BI_BUCKET_OBJ_INSTANCE_INDEX[=2]
-
- that range between start_key and end_key would not only span the
- BI_BUCKET_OBJS_INDEX[=0] prefixes, but BI_BUCKET_LOG_INDEX[=1] prefixes
- as well. this can result in list_plain_entries() trying and failing to
- decode a rgw_bi_log_entry as a rgw_bucket_dir_entry
-
- Fixes: http://tracker.ceph.com/issues/19876
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit b29a1633a57abf443d5790c13d680d2917f86037)
-
-commit 2badc2416c9e16babbc91364502dcb03877e88bf
-Merge: 5d2a68eb90 1f895c2403
-Author: Sage Weil <sage@newdream.net>
-Date: Tue May 30 09:39:47 2017 -0500
-
- Merge pull request #15360 from liewegas/wip-jewel-master-mixed
-
- qa/workunits/rados/test-upgrade-*: whitelist tests for master
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 1f895c24030b79ae9f2eae16b09582fc72928b6a
-Author: Sage Weil <sage@redhat.com>
-Date: Tue May 30 09:58:09 2017 -0400
-
- qa/workunits/rados/test-upgrade-*: whitelist tests for master
-
- The jewel-x upgrade test now runs this script against a mixed cluster on
- a machine with code from master installed. That means we have to skip
- any new tests that will fail on a mixed cluster.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit 5d2a68eb903f533689d1a1cbc410ca940baeaff3
-Merge: 998d1ee4f5 81e35b9416
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat May 27 09:21:44 2017 +0200
-
- Merge pull request #15208 from liewegas/wip-sortbitwise-jewel
-
- mon: fix 'sortbitwise' warning on jewel
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 998d1ee4f503cb4875283fe8d2140f3b10a26643
-Merge: 54bc1e13ea 99c65bbc18
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Sat May 27 02:46:55 2017 +0200
-
- Merge pull request #14851 from yehudasa/wip-rgw-support-ragweed-jewel
-
- jewel: rgw: add apis to support ragweed suite
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit aa99558934c6143cb35e722148b87f35ccecc397
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Tue Aug 23 10:22:42 2016 -0700
-
- rgw: rest conn functions cleanup, only append zonegroup if not empty
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 4e41af19846db75081cb0ddb7b33dc2bb9321ace)
-
-commit 5d90798432a6446636699fc03b2f548010b1212f
-Author: Karol Mroz <kmroz@suse.com>
-Date: Thu Mar 17 10:32:14 2016 +0100
-
- rgw: rest and http client code to use param vectors
-
- Replaces param/header lists with vectors. In these cases, we're only ever
- adding to the back of the list, so a vector should be more efficient.
- Also moves param_pair_t/param_vec_t higher up the include chain for
- cleaner function signatures.
-
- Signed-off-by: Karol Mroz <kmroz@suse.com>
- (cherry picked from commit d4a2527872e0f5c3ae2874bb7d0ff459ae83cfd4)
-
- Conflicts:
- src/rgw/rgw_http_client.cc
- trivial ws conflict on rebase
-
-commit 54bc1e13ea19642c8d5893f29e96ee5c053f9c59
-Merge: 966f222917 43327f83ef
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Thu May 25 12:45:30 2017 -0400
-
- Merge pull request #14765 from smithfarm/wip-18972-jewel
-
- jewel: ceph-disk does not support cluster names different than 'ceph'
-
- Reviewed-by: Alfredo Deza <adeza@redhat.com>
-
-commit 81e35b941659a0f6dff8a935c27c7dd6d5cc4213
-Author: Sage Weil <sage@redhat.com>
-Date: Wed May 24 09:48:11 2017 -0400
-
- qa/suites/rados/singleton-nomsgr/*: set sortbitwise after upgrade
-
- Signed-off-by: Sage Weil <sage@redhat.com>
-
-commit f2814e4dbb2821a415310559fce405c2eab23947
-Author: huanwen ren <ren.huanwen@zte.com.cn>
-Date: Tue Dec 27 10:54:45 2016 +0000
-
- mon/OSDMonitor: fixup sortbitwise flag warning
-
- "ceph -s" does not report warning when using
- command "ceph osd unset sortbitwise" to drop
- sortbitwise flag.
- we should use "osdmap.get_up_osd_features() &
- CEPH_FEATURE_OSD_BITWISE_HOBJ_SORT"
- instead of "(osdmap.get_features(CEPH_ENTITY_TYPE_OSD, NULL) &
- CEPH_FEATURE_OSD_BITWISE_HOBJ_SORT)",
- because osdmap.get_features only get local "features"
-
- Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
- (cherry picked from commit c25ee187e28724846d0011cd8145e16956d3636e)
-
-commit 02617188688eebde759c375a2257e076e4538491
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Nov 1 12:09:57 2016 -0400
-
- mon: remove config option to disable no sortbitwise warning
-
- We'll require this soon.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 04e3319e8aecde9ca58ccb7c89016f9079c7d657)
-
-commit 966f2229178c5d72722982d0f6a40f4d01210d9a
-Merge: 6537fc741c 4ceaa7cce9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 17 09:29:21 2017 +0200
-
- Merge pull request #13450 from dreamhost/wip-18887-jewel
-
- jewel: msg: IPv6 Heartbeat packets are not marked with DSCP QoS - simple messenger
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit bb79663490468b4ac2832aa9e3cbac019c1f712d
-Author: Jan Fajerski <jfajerski@suse.com>
-Date: Thu Apr 20 18:38:43 2017 +0200
-
- fs: normalize file open flags internally used by cephfs
-
- The file open flags (O_foo) are platform specific. Normalize these flags
- before they are send to the MDS. For processing of client messages the
- MDS should only compare to these normalized flags.
- Otherwise this can lead to bogus flags getting transmitted on ppc64.
-
- Signed-off-by: Jan Fajerski <jfajerski@suse.com>
- (cherry picked from commit 88d2da5e93198e69435e288ce00d216d5fe27f80)
-
- Conflicts:
- src/client/Client.cc
- Conflicts can be resolved by choosing changes from HEAD and
- adding a call to ceph_flags_sys2wire where flags are logged.
- src/mds/Server.cc
- Conflicts can be resolved by choosing changes from HEAD and
- while making sure that the MDS compares request O_ flags the
- the CEPH_O_ flags, since all wire O_ flags are normalized.
-
-commit 4ceaa7cce9c9132d47564d79204b48b1d02e531c
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Wed May 3 22:31:40 2017 -0700
-
- msg/simple/Pipe: manual backport of fix in PR#14795
-
- Manual backport of errno fixup from PR#14795
- (6f1037e22c2a304795895498cdc955e0ef80f8e3), as noted by
- https://github.com/ceph/ceph/pull/13450#discussion_r114696885.
-
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit 6537fc741c3267472e607e581c002854d8eafd46
-Merge: af31b453f4 82ea0971b3
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 3 13:04:27 2017 +0200
-
- Merge pull request #14667 from smithfarm/wip-18699-jewel
-
- jewel: client: fix the cross-quota rename boundary check conditions
-
- Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
-
-commit af31b453f404cb73ee7bdb8b6b02d71ad8aab7e7
-Merge: 472034cbe0 335258f975
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 3 10:33:24 2017 +0200
-
- Merge pull request #14332 from shinobu-x/wip-19396-jewel
-
- jewel: Objecter::epoch_barrier isn't respected in _op_submit()
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 472034cbe0735131f3419205e9f7e6530377bfba
-Merge: afe98ba074 acf608a903
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 3 10:32:37 2017 +0200
-
- Merge pull request #14204 from dzafman/wip-18533-jewel
-
- jewel: core: two instances of omap_digest mismatch
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit afe98ba07436ea105f4c9c42a52795ce3757419e
-Merge: 0353a91bfd 043d70461c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 3 10:31:38 2017 +0200
-
- Merge pull request #13884 from shinobu-x/wip-19119-jewel
-
- jewel: pre-jewel "osd rm" incrementals are misinterpreted
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 0353a91bfd799077ddd87de901e8a07f5da6a13d
-Merge: 460b12c259 608785a007
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed May 3 10:30:32 2017 +0200
-
- Merge pull request #13647 from mslovy/wip-19083-jewel
-
- jewel: osd: preserve allocation hint attribute during recovery
-
- Reviewed-by: Gregory Farnum <gfarnum@redhat.com>
-
-commit 460b12c259f5563d9d1b2477149fe79486ba5bcd
-Merge: 630cfca36c 905c4acb99
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Apr 28 10:24:35 2017 +0200
-
- Merge pull request #14791 from smithfarm/wip-19774-jewel
-
- jewel: osd: promote throttle parameters are reversed
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 630cfca36c5a42a58882966c5598752aac9ff54e
-Merge: 013e781b45 3ec1a9bf16
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Apr 28 10:23:45 2017 +0200
-
- Merge pull request #14763 from smithfarm/wip-19562-jewel
-
- jewel: api_misc: [ FAILED ] LibRadosMiscConnectFailure.ConnectFailure
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 99c65bbc1899663d0b23e2cec3d6e516d0e95ad7
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Jan 9 13:04:43 2017 -0800
-
- rgw: new rest api to retrieve object layout
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 2768583dc486109e49d209243675b99fdd39e92c)
-
-commit 33745a342433716ad8a07ef846dbea9b57de5017
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Thu Jan 5 13:47:24 2017 -0800
-
- rgw: rest api to read zone config params
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit a220a2efbfd675e6abf14ae33c21005bcbf6dadf)
-
-commit 013e781b45e28af15da4ddc32025aad713f128e8
-Merge: d144d99f00 b698d1fa4c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 27 21:46:41 2017 +0200
-
- Merge pull request #14481 from dillaman/wip-19468-jewel
-
- jewel: librbd: is_exclusive_lock_owner API should ping OSD
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit d144d99f008776dc02c5838feb5a9eb9b84a400b
-Merge: 0f0cd82eda dbe90c79b8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 27 21:05:11 2017 +0200
-
- Merge pull request #14666 from smithfarm/wip-19612-jewel
-
- jewel: librbd: Issues with C API image metadata retrieval functions
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 0f0cd82edabcb2feb0b29793e5b45eb424f1c42d
-Merge: eba821ce9c 216156b5d4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 27 21:04:27 2017 +0200
-
- Merge pull request #14664 from smithfarm/wip-19325-jewel
-
- jewel: rbd: [api] temporarily restrict (rbd_)mirror_peer_add from adding multiple peers
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit eba821ce9c61bcb197895e6949ce30a5c07097fa
-Merge: 25e29c9215 b8fd297eb6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 27 20:46:08 2017 +0200
-
- Merge pull request #14694 from ceph/wip-bp-systemd
-
- [backport] qa/tasks: systemd test backport to jewel
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 25e29c921557883da4bf48ff2496bcec6448e6ec
-Merge: d7b63e21ca 7c6c3c753c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 27 08:44:26 2017 +0200
-
- Merge pull request #13544 from shinobu-x/wip-18932-jewel
-
- jewel: tests: 'ceph auth import -i' overwrites caps, should alert user before overwrite
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit acf608a9034e915e38ccea6002ee808c46620433
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Mar 20 17:28:45 2017 -0700
-
- filestore, tools: Fix logging of DBObjectMap check() repairs
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1704f62c0831e6b07138f7dd14a89fef3c9ed2c1)
-
-commit fecc52338b2a58bf1730f7b7a3e4a293e45160d2
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Mar 3 15:04:02 2017 -0800
-
- osd: Simplify DBObjectMap by no longer creating complete tables
-
- Bump the version for new maps to 3
- Make clone less efficient but simpler
- Add rename operation (use instead of clone/unlink)
- For now keep code that understands version 2 maps
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 738156a99ed1caf61e5a8230eb8048360056c08e)
-
- No ghobject_t::operator>() so use Kraken cmp_bitwise() instead
- Need to use MIN_GHOBJ/MAX_GHOBJ instead of std::min/std::max
-
-commit 6902c3141eeaefaacd92f33877cf319872f626c7
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 15 16:17:32 2017 -0800
-
- ceph-osdomap-tool: Fix seg fault with large amount of check error output
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 1dda0411f4fbb14ce1e0062da9f14ec3af505d39)
-
-commit 4a3e4bcf40cd004fc53e7be467a29084dedc3e1c
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 15 15:02:33 2017 -0800
-
- osd: Add automatic repair for DBObjectMap bug
-
- Add repair command to ceph-osdomap-tool too
-
- Under some situations the previous rm_keys() code would
- generated a corrupt complete table. There is no way to
- figure out what the table should look like now. By removing
- the entries we fix the corruption and aren't much worse off
- because the corruption caused some deleted keys to re-appear.
-
- This doesn't breaking the parent/child relationship during
- repair because some of the keys may still be contained
- in the parent.
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 4cd3c74c928a32e065ed9543d6c91d8718a6ae3d)
-
- Conflicts:
- src/os/filestore/DBObjectMap.h (trivial)
-
-commit d4f0ac0a405266f638b25ec475c0110741e3c431
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 15 14:59:40 2017 -0800
-
- ceph-osdomap-tool: Fix tool exit status
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 666f14ed90655a2d1bedde8561949625db7a9e6c)
-
-commit 5f36c319cd7fa4be15efd27b8aabbebc99d8999c
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 10 15:51:42 2017 -0800
-
- DBObjectMap: rewrite rm_keys and merge_new_complete
-
- Leverage the updated in_complete_region and needs_parent to simplify
- these methods.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit c4dffb68eaafe724f7fdae93a4285a7f8003ea29)
-
-commit 1fe4b856a37b29c85a9317e514c7f15f8e4905d5
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 10 15:50:57 2017 -0800
-
- DBObjectMap: strengthen in_complete_region post condition
-
- Previously, in_complete_region didn't guarantee anything about
- where it left complete_iter pointing. It will be handy for
- complete_iter to be pointing at the lowest interval which ends
- after to_test. Make it so.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 97b35f4d7d4862da4b6f50ecaef0d292a671fd04)
-
-commit 85f2151fec991e5db13d8e6f44b27e092605fb35
-Author: Samuel Just <sjust@redhat.com>
-Date: Fri Feb 10 15:48:57 2017 -0800
-
- DBObjectMap: fix next_parent()
-
- The previous implementation assumed that
- lower_bound(parent_iter->key()) always leaves the iterator
- on_parent(). There isn't any guarantee, however, that that
- key isn't present on the child as well.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 74a7631d0938d7b44894f022224eab10a90d5cec)
-
-commit 484ccda5c53a8ee151b9f97687edd160ad7ebbd7
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Feb 9 10:47:59 2017 -0800
-
- test_object_map: add tests to trigger some bugs related to 18533
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit f131dbcf5bb17107c029f942a57e9bf4432a26ee)
-
-commit cdeb690869bf6dd52226476c21514cf03ff37d6e
-Author: David Zafman <dzafman@redhat.com>
-Date: Tue Feb 14 12:40:33 2017 -0800
-
- test: Add ceph_test_object_map to make check tests
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 0e97a01bd7291458881ee53cece2d887f6333669)
-
-commit cf5d588d39498c8d65bc64bd2935aecac8546e40
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 8 18:56:27 2017 -0800
-
- ceph-osdomap-tool: Add --debug and only show internal logging if enabled
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 5fb2b2d13953979e5da9f571ab8c4b0b510b8368)
-
-commit 4c4a06ff525d9fa2271099db73701c7994054d36
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 8 18:55:48 2017 -0800
-
- osd: DBOjectMap::check: Dump complete mapping when inconsistency found
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit fcf1e17c645e8fad5216c3e59627c817e5c858c7)
-
-commit 6c128ff8c6944e57059008959f49bd03635c5417
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 8 15:38:51 2017 -0800
-
- test_object_map: Use ASSERT_EQ() for check() so failure doesn't stop testing
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 053a273cbc02d6902a4bb1f11db1ea946498df3a)
-
-commit aa769a9d08ac7490f5063bb44c3a44c77a5d7232
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 8 10:02:40 2017 -0800
-
- tools: Check for overlaps in internal "complete" table for DBObjectMap
-
- Changed check to return an error count and fix tool error message
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e5e8eb962db6187ea19b96ba29ac83469c90b4ea)
-
- Conflicts:
- src/os/filestore/DBObjectMap.h (trivial)
-
-commit 761ee7c6af8802ab6b668a0b7ccaa819b2764456
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Feb 8 09:40:49 2017 -0800
-
- tools: Add dump-headers command to ceph-osdomap-tool
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit f4101591ad701a62fe027c4744ca8ea505f44bdc)
-
- Conflicts:
- src/os/filestore/DBObjectMap.h (trivial)
-
-commit 117db1c6d6952d181614f4fe22f0b1866eed6f10
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 6 21:09:42 2017 -0800
-
- tools: Add --oid option to ceph-osdomap-tool
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 2d94889e9ee3359017b1efd560f3557ce03ccee6)
-
-commit 4d8120d3b3975ce101f6272240e5e43bcfe0e742
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Feb 6 21:31:18 2017 -0800
-
- osd: Remove unnecessary assert and assignment in DBObjectMap
-
- Fix and add comment(s)
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 937e6a03ea4692cc44d53faa0615f8e808c9eb03)
-
-commit 86980a045b7176428062a19758d145e38e515b40
-Author: snakeAngel2015 <li.jieA@h3c.com>
-Date: Mon Jul 18 14:51:37 2016 +0800
-
- rgw: add suport for creating S3 type subuser of admin rest api
-
- Fixes: http://tracker.ceph.com/issues/16682
-
- The original code cannot support create s3 type subuser of admin rest api as when i execute the following command:
-
- ./s3curl.pl --id=personal --put -- http://radosgw.h3c.com:8000/admin/user?subuser\&uid=yrf2\&subuser=yrf2:yrf1\&key-type=s3 -v
-
- it would return msg as follows :
-
- < HTTP/1.1 403 Forbidden
- < Date: Thu, 14 Jul 2016 07:04:40 GMT
- * Server Apache/2.4.7 (Ubuntu) is not blacklisted
- < Server: Apache/2.4.7 (Ubuntu)
- < x-amz-request-id: tx00000000000000006608f-0057873988-8551-slave
- < Accept-Ranges: bytes
- < Content-Length: 114
- < Content-Type: application/json
- <
- * Connection #0 to host slave.com left intact
- {"Code":"InvalidAccessKeyId","RequestId":"tx00000000000000006608f-0057873988-8551-slave","HostId":"8551-slave-us"}
-
- But i have modified the codes for support it ,and it will return actual msg as follows :
-
- "subusers": [
- {
- "id": "yrf2:yrf1",
- "permissions": "<none>"
- }
- ],
- "keys": [
- {
- "user": "yrf2",
- "access_key": "B46PXYFEWUX0IMHGKP8C",
- "secret_key": "2JYxywXizqwiiMd74UXrJdSJMPNlBtYwF5z8rNvh"
- },
- {
- "user": "yrf2:yrf1",
- "access_key": "INO55WXJ7JQ1ZZGSAB6B",
- "secret_key": "GgCKEfF9hArV2hglunbO7KtvKZnbhmsDpqjSj5DL"
- }
- ],
-
- Please check it ,thanks .
-
- Signed-off-by: snakeAngel2015 <li.jieA@h3c.com>
- (cherry picked from commit 6535f6ad2137ee55bf5531e865c05aa10bd39bd0)
-
-commit d7b63e21ca9818e21afeb2945b882e24b7a9b10b
-Merge: a3fae531cd f32b5c613a
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 26 21:32:31 2017 +0200
-
- Merge pull request #14809 from tchaikov/wip-18193-jewel
-
- jewel: tests: test/librados/tmap_migrate: g_ceph_context->put() upon return
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a3fae531cdb8c2c64c66d38c947ca139f4ede83d
-Merge: 89d6ddb1f5 6c4826606d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 26 21:32:09 2017 +0200
-
- Merge pull request #14701 from smithfarm/wip-18193-jewel
-
- jewel: core: transient jerasure unit test failures
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 89d6ddb1f5ee08b0f019dfaadc5857a788c92a09
-Merge: c5f1fce21d be9e83281b
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Apr 26 14:28:29 2017 -0400
-
- Merge pull request #14776 from linuxbox2/jewel-pullup-civet-chunked
-
- [DNM] jewel: pullup civet chunked
-
-commit c5f1fce21d0996cce751b6bcca5e57da2cafc135
-Merge: 4d97e0ba8e 97cd21afc5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 26 19:32:07 2017 +0200
-
- Merge pull request #14416 from smithfarm/wip-19557-jewel
-
- jewel: tests: upgrade/hammer-x failing with OSD has the store locked when Thrasher runs ceph-objectstore-tool on down PG
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit be9e83281b8c765cd111d5687a516fcd3ca521a5
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Apr 25 09:44:39 2017 -0400
-
- civetweb: pullup chunked encoding by Marcus
-
- Fixes: http://tracker.ceph.com/issues/19736
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 608785a0079f807ff860c56d96b1b67bf6a2ed74
-Author: yaoning <yaoning@unitedstack.com>
-Date: Fri Jun 24 09:51:07 2016 +0800
-
- os: make zero values noops for set_alloc_hint() in FileStore
-
- Signed-off-by: yaoning <yaoning@unitedstack.com>
- (cherry picked from commit e2ec24f61b55457caccefecd56f9f08b98264802)
-
-commit f32b5c613a8acd50e32747c3581131d28d209efa
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Apr 26 22:58:30 2017 +0800
-
- test/librados/tmap_migrate: g_ceph_context->put() upon return
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Conflict: test/librados/tmap_migrate.cc
- this change is not cherry-picked from master, because tmap_migrate was
- removed in master. so we are applying the same change in
- cb1cda96713b2ec0f6418c4cbe3d964c2020729c to this test.
-
-commit 905c4acb99f9ea78ff615034dae969ab089bda06
-Author: Mark Nelson <mnelson@redhat.com>
-Date: Tue May 3 09:56:47 2016 -0500
-
- Fix reveresed promote throttle default parameters.
-
- Signed-off-by: Mark Nelson <mnelson@redhat.com>
- (cherry picked from commit 793ceac2f3d5a2c404ac50569c44a21de6001b62)
-
-commit fb3ee2efcc13c37db90faa1bc8bad584bab22efa
-Author: Marcus Watts <mwatts@redhat.com>
-Date: Thu Apr 13 05:33:55 2017 -0400
-
- rgw: swift: disable revocation thread if sleep == 0 || cache_size == 0
-
- Keystone tokens can be revoked. This causes them to fail
- validation. However, in ceph, we cache them. As long as
- they're in the cache we trust them. To find revoked tokens
- there's a call OSI-PKI/revoked but that's only useful for
- pki tokens. Installations using fernet/uuid may not even
- have the proper credentials to support the call, in which
- case the call blows up in various ways filling up logs
- with complaints.
-
- This code makes the revocation thread optional; by disabling it,
- the complaints go away. A further fix is in the works
- to use other more modern calls available in modern keystone
- installations to properly deal with non-PKI/PKIZ tokens.
-
- (NB: jewel has this logic in src/rgw/rgw_swift.cc not in src/rgw/rgw_keystone.h)
-
- To disable the revocation thread, use at least one of these:
- rgw_keystone_token_cache_size = 0
- using this will cause tokens to be validated on every call.
- You may instead want to set
- rgw_keystone_revocation_interval = 0
- using just this will disable the revocation thread,
- but leaves the cache in use. That avoids the extra
- validation overhead, but means token revocation won't
- work very well.
-
- Fixes: http://tracker.ceph.com/issues/9493
- Fixes: http://tracker.ceph.com/issues/19499
-
- Signed-off-by: Marcus Watts <mwatts@redhat.com>
- (cherry picked from commit 003291a8cbca455c0e8731f66759395a0bb1f555)
-
-commit 4d97e0ba8ebc89b7797b0936a9e046ef59cc3899
-Merge: cc820a0d4c c2efeb4b62
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 21:06:26 2017 +0200
-
- Merge pull request #14686 from smithfarm/wip-19686-jewel
-
- jewel: osd: Give requested scrubs a higher priority
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit e552d91f73d996c44821f5fbfb28cfc3e5cddc9a
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Sat Nov 5 13:13:47 2016 -0400
-
- rgw: add bucket size limit check to radosgw-admin
-
- The change adds a new list of all buckets x all users, with
- fields for bucket name, tenant name, current num_objects,
- current num_shards, current objects per shard, and the
- corresponding fill_status--the latter consisting of 'OK',
- 'WARN <n>%', or 'OVER <n>%.'
-
- The warning check is relative to two new tunables. The threshold
- max objects per shard is set as rgw_bucket_safe_max_objects_per_shard,
- which defaults to 100K. The value rgw_bucket_warning_threshold is
- a percent of the current safe max at which to warn (defaults to
- 90% of full).
-
- From review:
-
- * fix indentation (rgw_admin)
- * if user a user_id is provided, check only buckets for that user
- * update shard warn pct to be pct-of-fill (not 100 - pct-of-fill)
- * print only buckets near or over per-shard limit, if --warnings-only
- * s/bucket limitcheck/bucket limit check */
- * sanity shard limit should be 90, not 10 (because that changed)
- * fixes for memleaks and other points found by cbodley
-
- Fixes: http://tracker.ceph.com/issues/17925
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 7bc144ce36fedc16a3dedc54598b0d75fb8c68bc)
-
-commit cc820a0d4c2676799383aeaf49a9269e104853ce
-Merge: 5ee54cfe8f d079b91479
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 17:38:21 2017 +0200
-
- Merge pull request #14605 from asheplyakov/19476-jewel
-
- jewel: rgw: don't return skew time in pre-signed url
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 5ee54cfe8f0a955b11edb4819a652ee420f43e5d
-Merge: 37254aee6c c05bd1cb1f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 17:37:16 2017 +0200
-
- Merge pull request #14660 from smithfarm/wip-19478-jewel
-
- jewel: rgw: zonegroupmap set does not work
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 37254aee6c3f725cf60deb5c7a3fc28405c51216
-Merge: 09919f938f faeb8088ac
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 17:36:23 2017 +0200
-
- Merge pull request #14607 from asheplyakov/19607-jewel
-
- jewel: rgw: multisite: fetch_remote_obj() gets wrong version when copying from remote
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 09919f938f3c1e9e81963f676a9dd13114d54e73
-Merge: d5e1345a2a 527911fab7
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 15:50:26 2017 +0200
-
- Merge pull request #14587 from asheplyakov/19617-jewel
-
- jewel: mon/MonClient: make get_mon_log_message() atomic
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 6c4826606dc81fdd847959a49454c69a958bb1d8
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Dec 5 20:23:21 2016 +0800
-
- test/ceph_crypto: do not read ceph.conf in global_init()
-
- ForkDeathTest.MD5 expect an empty output while global_init() complains
- if ceph.conf is missing if 0 is passed in as the `flags`. this test
- passes if ceph.conf is in current working directory, but jenkins does
- not prepare this file for this test.
-
- Fixes: http://tracker.ceph.com/issues/18128
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c72a2271a8012a66d7bbccf5766a73da5bb878d6)
-
- Conflicts:
- src/test/ceph_crypto.cc - jewel does not have
- 5af29540675b674c1985ff98b28a783ed124acf6
-
-commit aca2659952528aa1b40b02828293342128657194
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Dec 8 12:40:42 2016 +0100
-
- tests: fix erasure-code premature deallocation of cct
-
- The setup function returns before the run function, the cct variable
- must be a data member, not a local variable that gets de-allocated
- before run() starts.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit efa1e54362423d4cfd1541fb8c68237b7b9ebbe3)
-
-commit 8bddd427d9a4bca75a352ca333847dbd6d2c369c
-Author: Pan Liu <pan.liu@istuary.com>
-Date: Thu Feb 16 22:17:52 2017 +0800
-
- rbd-nbd: no need create asok file for unmap and list-mapped commands.
-
- Fixes: http://tracker.ceph.com/issues/17951
- Signed-off-by: Pan Liu <liupan1111@gmail.com>
- (cherry picked from commit 72352653d585ef89043a4ece371b5c0cb3f6f32a)
-
-commit 328bfbd25c63b1b0e253865abedada7a9e5858e4
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Nov 29 12:36:00 2016 -0500
-
- rbd-nbd: restart parent process logger after forking
-
- Fixes: http://tracker.ceph.com/issues/18070
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 29baf254d72cc593572b5a6215360ba51e3be198)
-
-commit 192e7bcdcd1bc02b40b29eff86a335cc8919f663
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Nov 23 19:45:57 2016 +0800
-
- crushtool: do not release g_ceph_context at exit
-
- it is but a work around of occasionally timeout.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d305cc51b18cbf4b2757bbacb5d43324461306a9)
-
-commit 8a2f27cc632c26d7c2b8e8528b4d459b1d78705b
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Nov 15 14:21:03 2016 +0800
-
- common,test: g_ceph_context->put() upon return
-
- prior to this change, global_init() could create a new CephContext
- and assign it to g_ceph_context. it's our responsibilty to release
- the CephContext explicitly using cct->put() before the application
- quits. but sometimes, we fail to do so.
-
- in this change, global_init() will return an intrusive_ptr<CephContext>,
- which calls `g_ceph_context->put()` in its dtor. this ensures that
- the CephContext is always destroyed before main() returns. so the
- log is flushed before _log_exp_length is destroyed.
-
- there are two cases where global_pre_init() is called directly.
- - ceph_conf.cc: g_ceph_context->put() will be called by an intrusive_ptr<>
- deleter.
- - rgw_main.cc: global_init() is called later on on the success code
- path, so it will be taken care of.
-
- Fixes: http://tracker.ceph.com/issues/17762
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit cb1cda96713b2ec0f6418c4cbe3d964c2020729c)
-
- Conflicts:
- src/ceph_fuse.cc
- src/ceph_mgr.cc
- src/global/global_init.cc
- src/rgw/rgw_main.cc
- src/test/compressor/test_compression.cc
- src/test/compressor/test_compression_plugin.cc
- src/test/compressor/test_compression_plugin_snappy.cc
- src/test/compressor/test_compression_plugin_zlib.cc
- src/test/compressor/test_compression_snappy.cc
- src/test/compressor/test_compression_zlib.cc
- src/test/erasure-code/TestErasureCode.cc
- src/test/erasure-code/TestErasureCodeExample.cc
- src/test/erasure-code/TestErasureCodeIsa.cc
- src/test/erasure-code/TestErasureCodeJerasure.cc
- src/test/erasure-code/TestErasureCodeLrc.cc
- src/test/erasure-code/TestErasureCodePlugin.cc
- src/test/erasure-code/TestErasureCodePluginIsa.cc
- src/test/erasure-code/TestErasureCodePluginJerasure.cc
- src/test/erasure-code/TestErasureCodePluginLrc.cc
- src/test/erasure-code/TestErasureCodePluginShec.cc
- src/test/erasure-code/TestErasureCodeShec.cc
- src/test/erasure-code/TestErasureCodeShec_thread.cc
- src/test/fio/fio_ceph_objectstore.cc
- src/test/librados/misc.cc
- src/test/mon/PGMap.cc
- src/test/msgr/test_async_networkstack.cc
- src/test/msgr/test_userspace_event.cc
- src/test/objectstore/Allocator_test.cc
- src/test/objectstore/BitAllocator_test.cc
- src/test/objectstore/test_bluefs.cc
- src/test/objectstore/test_bluestore_types.cc
- src/test/objectstore/test_memstore_clone.cc
- src/test/osd/TestPGLog.cc
- src/test/rgw/test_http_manager.cc
- src/test/rgw/test_rgw_compression.cc
- src/test/test_mempool.cc
- src/tools/rados/rados.cc
-
-commit d5e1345a2a6bd8456417db6bb60d61871165e6bd
-Merge: 256f48f463 5096fc9c7c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 15:42:43 2017 +0200
-
- Merge pull request #14665 from smithfarm/wip-19610-jewel
-
- jewel: [librados_test_stub] cls_cxx_map_get_XYZ methods don't return correct value
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 256f48f46354f11a2f238f24fa9d890b55f4f4fc
-Merge: 4f67da1b9d 21a83e1276
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 09:20:19 2017 +0200
-
- Merge pull request #14653 from smithfarm/wip-19662-jewel
-
- jewel: rgw_file: fix event expire check, don't expire directories being read
-
- Reviewed-by: Matt Benjamin <mbenjamin@redhat.com>
-
-commit 4f67da1b9d554a1a5371665573b1f56d3f903de3
-Merge: c2452c5364 33af18e592
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Apr 25 09:17:33 2017 +0200
-
- Merge pull request #14635 from smithfarm/wip-19690-jewel
-
- jewel: doc: Improvements to crushtool manpage
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 040ff013d5c8aded8beedc59bbc4f5afccc64e46
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Nov 16 11:56:09 2016 +0800
-
- crushtool: s/exit(EXIT_FAILURE)/return EXIT_FAILURE/
-
- so the destructor(s) can be called.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e01b89ed6be6b99fec5c725f4bc5769b42468cac)
-
- Conflicts:
- src/tools/crushtool.cc - jewel does not have 17feefbcb3105553b763cb7ce123b20b77b95857
-
-commit 8e993e6e43ecd6e2b444961d1e6c945081b64207
-Author: Kefu Chai <kchai@redhat.com>
-Date: Wed Nov 16 11:19:04 2016 +0800
-
- global/signal_handler: reset injected segv after test
-
- ~CephContext() => ~TypedSingletonWrapper() => ~MempoolObs =>
- unregister_command() => ldout() << "unregister_command" =>
- Log::submit_entry() => *(volatile int *)(0) = 0xdead;
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit d932c8f2f23263924103a900714db82ee87f6eef)
-
- Conflicts:
- src/log/Log.cc - jewel has "namespace log" instead of "namespace
- logging" (trivial resolution)
-
-commit f1c0042b831826e5bd72ada79a4918a9c26bda24
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Nov 15 14:42:35 2016 +0800
-
- test_cors.cc: fix the mem leak
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit c8a3777203482cabf6739a8ba69b127df8697628)
-
-commit c49b114e8dde6c3f3c5a5b663bd8299b4f2feafb
-Author: weiqiaomiao <wei.qiaomiao@zte.com.cn>
-Date: Tue Sep 6 16:34:52 2016 +0800
-
- rgw: fix failed to create bucket if a non-master zonegroup has a single zone
-
- If a non-master zonegroup has a single zone, the metadata sync thread not running and
- the non-master zonegroup can't sync user from master zonegroup,
- so we can't create bucket(or other metadata update) in it
- because the authenticated user not found in the zone of non-master zonegroup.
-
- Signed-off-by: weiqiaomiao <wei.qiaomiao@zte.com.cn>
- (cherry picked from commit 949af79b21098e6410bc29274cf36eae2d89faea)
-
- Conflicts:
- src/rgw/rgw_rados.cc - retain d32654b7cd60ccc4e23d3f05b9e4385a697bacd6
- which was merged after this commit
-
-commit 43327f83efcbc5ce54be866a30da8dd1e58d6707
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Feb 22 01:49:12 2017 +0100
-
- ceph-disk: dmcrypt activate must use the same cluster as prepare
-
- When dmcrypt is used, the fsid cannot be retrieved from the data
- partition because it is encrypted. Store the fsid in the lockbox to
- enable dmcrypt activation using the same logic as regular activation.
-
- The fsid is used to retrive the cluster name that was used during
- prepare, reason why activation does not and must not have a --cluster
- argument.
-
- Fixes: http://tracker.ceph.com/issues/17821
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 7f66672b675abbc0262769d32a38112c781fefac)
-
- Conflicts:
- src/ceph-disk/ceph_disk/main.py - in master, self.create_key() takes an
- argument (self.args.cluster) but in jewel it takes no argument
-
-commit c2452c53641fca416268c2e31c774b8b7e609c88
-Merge: 82b8c89e47 01d04e28db
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Tue Apr 25 07:20:41 2017 +0200
-
- Merge pull request #13608 from smithfarm/wip-19063-jewel
-
- jewel: tests: eliminate race condition in Thrasher constructor
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 3ec1a9bf16e2c305096e11223aaa8db94dc4084d
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Mar 31 10:06:42 2017 -0400
-
- ceph_test_librados_api_misc: fix stupid LibRadosMiscConnectFailure.ConnectFailure test
-
- Sometimes the cond doesn't time out and it wakes up instead. Just repeat
- the test many times to ensure that at least once it times out (usually
- it doesn't; it's pretty infrequent that it doesn't).
-
- Fixes: http://tracker.ceph.com/issues/15368
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 8bc197400d94ee2716d3f2fa454247379a676cf9)
-
-commit 82b8c89e477610641a6e21123b7c929e9c560729
-Merge: 28c7ce595a 30c9527353
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:27:33 2017 +0200
-
- Merge pull request #14195 from cbodley/wip-19353
-
- jewel: rgw: use separate http_manager for read_sync_status
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 28c7ce595ab8fef7c0076f091f249f6b3548ad54
-Merge: c05ecff3f0 2e50fe1684
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:26:50 2017 +0200
-
- Merge pull request #14066 from asheplyakov/19321-bp-jewel
-
- jewel: rgw: fix break inside of yield in RGWFetchAllMetaCR
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit c05ecff3f0cb5af2f3aa52b68188742796335ddb
-Merge: 3240cbf4ef dc4e7a1a86
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:26:14 2017 +0200
-
- Merge pull request #14064 from asheplyakov/19211-bp-jewel
-
- jewel: rgw: "cluster [WRN] bad locator @X on object @X...." in cluster log
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 3240cbf4ef60733f55800039051e85f2a7ace61d
-Merge: d4672acbb8 85fbb00f6e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:25:21 2017 +0200
-
- Merge pull request #13842 from smithfarm/wip-19145-jewel
-
- jewel: rgw: a few cases where rgw_obj is incorrectly initialized
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit d4672acbb82daf81eaf259e659dd627ec9f3bc79
-Merge: 61ed719d75 ec0668c201
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:24:29 2017 +0200
-
- Merge pull request #13837 from smithfarm/wip-19048-jewel
-
- jewel: rgw: multisite: some yields in RGWMetaSyncShardCR::full_sync() resume in incremental_sync()
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 61ed719d75bf3606fa9e3ae8c8ed776aa2ee4313
-Merge: f5e51db564 ced799f9c6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Mon Apr 24 22:23:24 2017 +0200
-
- Merge pull request #13724 from asheplyakov/18626-bp-jewel
-
- jewel: rgw: Use decoded URI when verifying TempURL
-
- Reviewed-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit 66c3db7aee5b53f83e87ee8c8f081ab9b0336177
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Mar 8 16:31:34 2017 -0500
-
- rgw: data sync skips slo data when syncing the manifest object
-
- Fixes: http://tracker.ceph.com/issues/19027
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 8b69847d7b3e92c70090d1dddf7cea5c44fb6b20)
-
- Conflicts: bucket cleanup, overrides
-
-commit 303a62f7f15c69413165ed604869909587714a94
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Mon Mar 13 11:33:02 2017 -0400
-
- rgw: RGWGetObj applies skip_manifest flag to SLO
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 987377ae34382e107e1d54f0bfc1121fcedb4513)
-
-commit f3d99ae8aafaa65e91cd233b5ce8054678d8fa11
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Feb 21 10:27:13 2017 -0500
-
- rgw: allow system users to read SLO parts
-
- multisite data sync relies on fetching the object as the system user
-
- Fixes: http://tracker.ceph.com/issues/19027
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit d50d18c500fd5dd89e7cada1162cf453b36df370)
-
- Conflicts: auth rework
-
-commit f5e51db5644d4eafdbe3b2d541582a17febed139
-Merge: c90cfb7a32 eac0e27193
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Apr 21 22:51:59 2017 +0200
-
- Merge pull request #14643 from smithfarm/wip-revert-14427
-
- Wip revert 14427
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit db053da61807e26876d97786550a769295c7955a
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Mar 27 12:56:31 2017 +0100
-
- mds: validate prealloc_inos on sessions after load
-
- Mitigates http://tracker.ceph.com/issues/16842
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit c39aaf90ed1b23343eba2b341bb8ee6a50a4ea74)
-
- Conflicts:
- src/mds/InoTable.cc - no 5259683e7819c22c14b21b1dd678a33e14574f21 in jewel
- src/mds/InoTable.h - no 5259683e7819c22c14b21b1dd678a33e14574f21 in jewel
-
-commit 2b5eb8fa141fa8bd9173dee206ec3530d702fc3a
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Mar 27 12:33:59 2017 +0100
-
- mds: operator<< for Session
-
- Use this to get a nice human readable name
- when available (also including the session id in
- parentheses)
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 0f89787d8312f132ebb621f16c44e950b17a395a)
-
-commit 5b562145197833c6a6f48f006dfb13b6e38f9084
-Author: Henrik Korkuc <henrik@uber.com>
-Date: Sun Feb 19 11:44:20 2017 +0200
-
- client/Client.cc: add feature to reconnect client after MDS reset
-
- Client.cc marks session as stale instead of reconecting after received
- reset from MDS. On MDS side session is closed so MDS is ignoring cap
- renew. This adds option to reconnect stale client sessions instead of
- just marking sessions stale.
-
- Fixes: http://tracker.ceph.com/issues/18757
-
- Signed-off-by: Henrik Korkuc <henrik@kirneh.eu>
- (cherry picked from commit e0bbc704676ef4aed510daff075ef63c9e73b7b3)
-
-commit 8f21038d30097622e319ab986631b03f87f5d907
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Mar 21 12:49:45 2017 +0800
-
- doc: cephfs: fix the unexpected indent warning
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit e423f0b59711422b40c4b3de0bdc73b0947c04d3)
-
-commit f9a1954e113e807b5f9ee6fd56351adc2841730a
-Author: Barbora AnÄincová <bancinco@redhat.com>
-Date: Thu Feb 16 10:45:36 2017 +0100
-
- doc: additional edits in FUSE client config
-
- Signed-off-by: Bara Ancincova (bara@redhat.com)
- (cherry picked from commit b6cad3364c020abd3acf906643fa0b6cbb862a0a)
-
-commit 018649f8a4628881c706a6df9b3eef48403fe91e
-Author: Barbora AnÄincová <bancinco@redhat.com>
-Date: Thu Jan 26 12:23:34 2017 +0100
-
- doc: Dirty data are not the same as corrupted data
-
- Signed-off-by: Bara Ancincova (bara@redhat.com)
- (cherry picked from commit 80db40f8559128baadad42b925ae813e51a31409)
-
-commit 1d8a5b6d64a26a36fb3a227c52908631d95bef79
-Author: Barbora AnÄincová <bancinco@redhat.com>
-Date: Mon Jan 23 16:34:55 2017 +0100
-
- doc: minor changes in fuse client config reference
-
- Signed-off-by: Bara Ancincova (bara@redhat.com)
- (cherry picked from commit e57605681f10436f4b2c85e95179a2904b8c80da)
-
-commit 1ae46b2b94280b8b4a1db89b2cbed8f12bcbcc53
-Author: Patrick Donnelly <pdonnell@redhat.com>
-Date: Sun Jul 24 23:21:29 2016 -0400
-
- doc: add client config ref
-
- Fixes: http://tracker.ceph.com/issues/16743
-
- Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
- (cherry picked from commit 9ad2ccf29830d5309336fc7de877b6926e5dbacd)
-
-commit b8fd297eb64cd29c58596d0a5b0be8fbe9d94a72
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Tue Apr 11 13:51:47 2017 -0700
-
- use sudo to check check health
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit 7af157ad4ce7f7e2b8de97ee10eeaf64b9099bc0)
-
-commit 1b91ffc0fbe76c5475f17d4e15ea295ee3680688
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Wed Mar 29 09:27:20 2017 -0700
-
- Add reboot case for systemd test
-
- test systemd units restart after reboot
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit 7b587304a54d9b21041ffdfbc85fad8d87859c49)
-
-commit 3d8d1dad8a698a9fb45be7b31c92f8b71ee67720
-Author: Vasu Kulkarni <vasu@redhat.com>
-Date: Wed Mar 29 09:56:11 2017 -0700
-
- Fix distro's, point to latest version
-
- Signed-off-by: Vasu Kulkarni <vasu@redhat.com>
- (cherry picked from commit 1947648669971c1bd1ca189870ed9b25bbd48d3a)
-
-commit c90cfb7a327fcbb9508e617c2353becb7e5cb45f
-Merge: 327276cf3d 9b77b16b88
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 22:05:57 2017 +0200
-
- Merge pull request #14602 from asheplyakov/19646-jewel
-
- jewel: ceph-disk: enable directory backed OSD at boot time
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 327276cf3d4fb7a2558620a8a7d9cc90e5d6e5c5
-Merge: 7008c64c51 25e43ac256
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 22:04:41 2017 +0200
-
- Merge pull request #14449 from smithfarm/wip-test-doc-oversight
-
- tests: fix oversight in yaml comment
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit f34489dd52f07aeb88e1dbf361ead63f09bb9c65
-Author: YunfeiGuan <yunfei.guan@xtaotech.com>
-Date: Mon Apr 10 05:48:47 2017 +0000
-
- cephfs: fix mount point break off problem after mds switch occured
-
- The hot-standby become active as we expected but the mount piont broken strangely
- when the active mds is down. The root reason is the new mds use last_cap_renews
- decoded from ESesson::replay in find_idle_sessions and wrongly killed the session.
- Maybe we should reset session->last_cap_renew to the current time when server send
- OPEN to client in reconnect stage.
-
- Fixes: http://tracker.ceph.com/issues/19437
- Signed-off-by: Guan yunfei <yunfei.guan@xtaotech.com>
- (cherry picked from commit 4ef830c5d6f22bf0d4f82a8624c772ecbbda44a6)
-
- Conflicts:
- src/mds/Server.cc (leave '\n' in because jewel does not have
- 693132eb00b1803d5e97a79908521d5a6903e9f8; jewel ceph_clock_now takes a
- CephContext object)
-
-commit 7008c64c5143a3ea19d6679a3e521897f74ff69a
-Merge: d62644abcd f8aa6be06c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 19:26:52 2017 +0200
-
- Merge pull request #13606 from smithfarm/wip-19062-jewel
-
- jewel: build/ops: enable build of ceph-resource-agents package on rpm-based os
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit d62644abcde0fd99da24922ce7638d173952ceb4
-Merge: 8df8960553 482bd1adab
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 18:18:05 2017 +0200
-
- Merge pull request #14654 from smithfarm/wip-19461-jewel
-
- jewel: admin ops: fix the quota section
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit c2efeb4b62e6dc4e6975561eb8b20cfca66f7237
-Author: David Zafman <dzafman@redhat.com>
-Date: Mon Apr 17 14:58:02 2017 -0700
-
- osd: Give requested scrub work a higher priority
-
- Once started we now queue scrub work at higher priority than
- scheduled scrubs.
-
- Fixes: http://tracker.ceph.com/issues/15789
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit ebab8b1f4f67fbdec1e147c580329c1e2b5cf7cd)
-
- Conflicts:
- src/osd/OSD.h - in jewel, the PGScrub() call is enclosed within
- op_wq.queue(make_pair(...)) instead of enqueue_back()
-
-commit db86a24e7906ca7c70c60b1752f1230d56361bcd
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Feb 22 17:33:05 2017 +0800
-
- client: wait for lastest osdmap when handling set file/dir layout
-
- Fixes: http://tracker.ceph.com/issues/18914
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 76f5eb86cdd61dde4e6c7cfeb5cf34f0c0334f21)
-
- Conflicts:
- src/client/Client.cc (jewel does not have 201c56039)
- src/client/Client.h (jewel does not have 201c56039)
-
-commit 7b9283beec0c4bf8e2067558fc4e03e336849b77
-Author: Yang Honggang <joseph.yang@xtaotech.com>
-Date: Thu Apr 13 20:09:07 2017 +0800
-
- cephfs: fix write_buf's _len overflow problem
-
- After I have set about 400 64KB xattr kv pair to a file,
- mds is crashed. Every time I try to start mds, it will crash again.
- The root reason is write_buf._len overflowed when doing
- Journaler::append_entry().
-
- This patch try to fix this problem through the following changes:
-
- 1. limit file/dir's xattr size
- 2. throttle journal entry append operations
-
- Fixes: http://tracker.ceph.com/issues/19033
- Signed-off-by: Yang Honggang joseph.yang@xtaotech.com
- (cherry picked from commit eb915d0eeccbe523f8f70f6571880003ff459459)
-
-commit b52c5088618011a569f157616c5c667c2fc1e9fe
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 8 12:13:46 2017 +0000
-
- mds: shut down finisher before objecter
-
- Some of the finisher contexts would try to call into Objecter.
- We mostly are protected from this by mds_lock+the stopping
- flag, but at the Filer level there's no mds_lock, so in the
- case of file size probing we have a problem.
-
- Fixes: http://tracker.ceph.com/issues/19204
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 177a97d5c55ee6a2d5dcd3cf0893546190b10f7a)
-
- Conflicts:
- src/mds/MDSRank.cc (no purge_queue.shutdown() in jewel because jewel
- does not have 8ebf7d95a9071de24bb1e56a6423c505169cb4de)
-
-commit 96e801fb53941214c669ac01c1804a4d1f27086c
-Author: John Spray <john.spray@redhat.com>
-Date: Tue Mar 28 14:13:33 2017 -0400
-
- mds: ignore ENOENT on writing backtrace
-
- We get ENOENT when a pool doesn't exist. This can
- happen because we don't prevent people deleting
- former cephfs data pools whose files may not have
- had their metadata flushed yet.
-
- http://tracker.ceph.com/issues/19401
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 3fccc2372f2715d075b05e459140360cf6e7ca96)
-
-commit 8df896055366d777ca309dd4a7840f2a2a5a72cc
-Merge: da888fa871 7468689314
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 14:53:30 2017 +0200
-
- Merge pull request #14680 from smithfarm/wip-19711-jewel
-
- jewel: [test] test_notify.py: rbd.InvalidArgument: error updating features for image test_notify_clone2
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 74686893147f2d7e1fd1287de37587554fea96c6
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 19 09:26:31 2017 -0400
-
- test: rbd master/slave notify test should test active features
-
- Fixes: http://tracker.ceph.com/issues/19692
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0dcba41cba96566d0b8da54cf0316d523b88ded2)
-
-commit 7347f1193963666ce07ff9163064aeb0cf343d38
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Apr 5 21:29:10 2017 +0800
-
- mds: make C_MDSInternalNoop::complete() delete 'this'
-
- Fixes: http://tracker.ceph.com/issues/19501
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 424e0c6744e7f63459ca0ff7deab751726aa30cd)
-
- Conflicts:
- src/mds/MDSContext.h (omit "override" because jewel does not have
- 1a91aeab987870b3ccbcf2f1e476fac8b534d449)
-
-commit 824b19a9a66261a90c4e4de64e877a42438febd2
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Mar 29 19:38:37 2017 +0100
-
- tools/cephfs: set dir_layout when injecting inodes
-
- When we left this as zero, the MDS would interpret it was HASH_LINUX
- rather than the default HASH_RJENKINS. Potentially that
- could cause problems if there perhaps were already dirfrags in
- the metadata pool that were set up using rjenkins. Mainly
- it just seems more appropriate to explicitly set this field
- rather than hit the fallback behaviour.
-
- Related: http://tracker.ceph.com/issues/19406
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 7d6d542885bd29b71214f9ca52bd26e9183c5d01)
-
-commit eab56dae6714706cf9650dff172b20a764f5481c
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Mar 9 13:15:46 2017 +0000
-
- mon: fix hiding mdsmonitor informative strings
-
- Local `stringstream ss` declarations were hiding
- the real variable used to feed back to the user.
-
- Fixes: http://tracker.ceph.com/issues/16709
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 00404ae9bd4cce0518a44d36d2d6a5612f4f9d04)
-
-commit da888fa8713178cc23c1069ce2651e02c98aad05
-Merge: 8068b546af 2271cd8128
-Author: Kefu Chai <tchaikov@gmail.com>
-Date: Thu Apr 20 19:10:33 2017 +0800
-
- Merge pull request #14402 from shinobu-x/wip-17331-jewel
-
- jewel: ceph-disk: ceph-disk list reports mount error for OSD having mount options with SELinux context
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 8068b546afbe8e774c9d699205a32215e38c5d4f
-Merge: 118ccad0ba 754b4a482c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 13:06:33 2017 +0200
-
- Merge pull request #13865 from smithfarm/wip-19158-jewel
-
- jewel: rgw: health check errors out incorrectly
-
- Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
-commit d57437e338984c5db84f9d16387e082ada5a0a33
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Mar 6 11:51:31 2017 +0000
-
- mds: reset heartbeat in export_remaining_imported_caps
-
- This loop can be very long.
-
- Fixes: http://tracker.ceph.com/issues/19118
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 85071f1509beba4a390730e6a3a4332484646d63)
-
-commit 6adf1904ed7209b70328b20f248a701fbdd3127c
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Mar 6 11:24:50 2017 +0000
-
- mds: heartbeat_reset in dispatch
-
- Previously we only heartbeated in tick. However, our locking is
- not guaranteed to be fair, so on a super-busy dispatch queue it may be
- possible for the heartbeat to time out while the tick() function
- is waiting for mds_lock.
-
- Fixes: http://tracker.ceph.com/issues/19118
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 819394549af10532419d88742fae3a69d2ea487d)
-
-commit 63f41d543f8a5f1f55a12612d39c6a2a1cf9c114
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Feb 15 11:45:26 2017 +0800
-
- test/libcephfs: avoid buffer overflow when testing ceph_getdents()
-
- The buffer size should be at least "2 * sizeof(struct dirent)".
- Otherwise, the code that checks dentry '..' overflow.
-
- Fixes: http://tracker.ceph.com/issues/18941
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit fa6671345b8f3a82dcd232f99e55a982b0a641f1)
-
-commit 7146816065bea55b4e3fec59048a459bcff50f55
-Author: Zhi Zhang <willzzhang@tencent.com>
-Date: Fri Feb 10 10:56:46 2017 +0800
-
- mds/StrayManager: aviod reusing deleted inode in StrayManager::_purge_stray_logged
-
- Signed-off-by: Zhi Zhang <zhangz.david@outlook.com>
- (cherry picked from commit 4978e57419482384279d7e784a625f5e5c10961a)
-
-commit d8b139b5847cb46aa13486ee85e26f26421f36d6
-Author: John Spray <john.spray@redhat.com>
-Date: Wed Feb 1 00:38:08 2017 +0000
-
- tasks/cephfs: switch open vs. write in test_open_inode
-
- Do the write after opening the file, so that we get good
- behaviour wrt the change in Mount.open_background that uses
- file existence to confirm that the open happened.
-
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit a027dba78fc8bc84ae39d7998b386ce21c01e1bf)
-
-commit e8ae80fc8721e500782c7e87a7cb89128c2a9687
-Author: John Spray <john.spray@redhat.com>
-Date: Thu Jan 26 16:48:58 2017 +0000
-
- qa: fix race in Mount.open_background
-
- Previously a later remote call could end up executing
- before the remote python program in open_background
- had actually got as far as opening the file.
-
- Fixes: http://tracker.ceph.com/issues/18661
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit c6d91dd91252e703d08b8ac62ac6a47ee82c0bed)
-
-commit 36c86f71efc10f9a651aedf01dc6fb9d1bfed703
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jan 25 15:28:23 2017 +0800
-
- mds: don't purge strays when mds is in clientreplay state
-
- MDS does not trim log when it's in clientreplay state. If mds hang
- at clientreplay state (due to bug), purging strays can submit lots
- of log events and create very large mds log.
-
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit 86bbc7fff02668077f27d0924ba3efe6544b77f6)
-
-commit 8b01cf33575783661a1e1151c8214d327a08b6f9
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Wed Jan 25 11:03:45 2017 +0800
-
- mds: skip fragment space check for replayed request
-
- when handling replayed request, stray directory can be different
- from the stray directory used by the original request. The fragment
- space check for stray directory can fail.
-
- Fixes: http://tracker.ceph.com/issues/18660
- Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
- (cherry picked from commit afe889cbc5baab196567c2aad01f49fe90901fda)
-
-commit 82ea0971b3cb07c32ec837cb85de63d4068a70d7
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Wed Dec 14 12:09:44 2016 -0800
-
- client: fix the cross-quota rename boundary check conditions
-
- We were previously rejecting a rename if either of the involved directories
- was a quota root, even if the other directory was part of the same quota
- "tree". What we really want to do is identify the correct quota root
- (whether local or ancestral) for each directory and compare them. So
- now we do.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 8e8892aa46accb519faa4bb9fecf66618f1b11b2)
-
- Conflicts:
- src/client/Client.cc (do not pass perm to get_quota_root() because
- jewel does not have 3caa4d233633fb7a67747f2c79c4a0ab89112294)
-
-commit dbe90c79b86743c7d143d33eb5389fcee0ac76ef
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Tue Apr 11 22:31:43 2017 +0200
-
- librbd: fix rbd_metadata_list and rbd_metadata_get
-
- - properly check for val_len in rbd_metadata_list
- - don't expect output buffers are zero pre-filled
-
- Fixes: http://tracker.ceph.com/issues/19588
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 75afc74ea681402e22b6dec8b83276d145fc786b)
-
-commit 5096fc9c7c62e3043a9a0638eb2516792526fdd7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Apr 12 10:47:28 2017 -0400
-
- test/librados_test_stub: fixed cls_cxx_map_get_keys/vals return value
-
- Fixes: http://tracker.ceph.com/issues/19597
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 9ffd464dac102f684d6dfa78e58d2cb45e165ed6)
-
-commit 216156b5d4e2666ca592eaab2211940028422bc0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Mar 10 10:56:38 2017 -0500
-
- rbd: prevent adding multiple mirror peers to a single pool
-
- The rbd-mirror daemon does not currently support replication
- from multiple peers. Until that is supported, add a temporary
- restriction to prevent confusion.
-
- Fixes: http://tracker.ceph.com/issues/19256
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit c0c9d1014d57b3d5b95e7513fcc38d04b9ea5165)
-
-commit c05bd1cb1f570c42b1999fbc70c86b0a72a7fcb3
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Wed Apr 5 13:31:08 2017 +0300
-
- radosgw-admin: use zone id when creating a zone
-
- Fixes: http://tracker.ceph.com/issues/19498
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 3fea36d635fcba8ca584a1c0ec9f07840009402c)
-
-commit ba81cbbdee1ccf95ceff56eef0a1b2b06be4024a
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Mar 14 15:43:13 2017 -0400
-
- qa: rgw task uses period instead of region-map
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e3e3a71d1f1fb43bb4172ce2dfac9a28ca89df0f)
-
-commit a755c95262e10fac774716e460e2ba2eaee9df70
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Mar 14 14:18:15 2017 -0400
-
- rgw-admin: remove deprecated regionmap commands
-
- Fixes: http://tracker.ceph.com/issues/18725
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 5830c1849a0c0110d17c37784808e456e6dcb7b3)
-
- Conflicts:
- src/rgw/rgw_admin.cc (trivial resolution)
-
-commit 482bd1adabf6f54c8f2bd73090d2e4c02d07f8a3
-Author: hrchu <petertc@gmail.com>
-Date: Wed Mar 29 02:17:04 2017 +0000
-
- doc: rgw: correct the quota section
-
- Add the missing option and fix typo.
-
- Fixes: http://tracker.ceph.com/issues/19397
-
- Signed-off-by: Chu, Hua-Rong <hrchu@cht.com.tw>
- (cherry picked from commit 51a88267f0d7f51aeb62092949b66b9f6c062e15)
-
-commit 21a83e1276e415e98a3780d0374bb9d4feb191d9
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Mar 15 16:35:16 2017 -0400
-
- rgw_file: remove unused rgw_key variable
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 1100a1c26e76485569cfebcf863b18cf908f6161)
-
-commit ebad040b3ab62e702afc52edd9d99d984b24cdc1
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Fri Apr 14 15:56:37 2017 -0400
-
- rgw_file: fix readdir after dirent-change
-
- Also, fixes link count computation off-by-one, update of state.nlink
- after computation, link computation reset at start, and a time print
- in debug log.
-
- Fixes: http://tracker.ceph.com/issues/19634
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
-
- link count
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit e0f80266ecd424bf9466579b3edc03911a7c5719)
-
-commit dd9833cacaec20e5bd1a70ec46a427a7352eb5d6
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Apr 11 06:42:07 2017 -0400
-
- rgw_file: don't expire directories being read
-
- If a readdir expire event turns out to be older than last_readdir,
- just reschedule it (but actually, we should just discard it, as
- another expire event must be in queue.
-
- Fixes: http://tracker.ceph.com/issues/19625
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 007b7451c26716c51207c161dc347e9a00da53f1)
-
-commit 30a5e857aade2474c5bd621c57938dfe333c3ae5
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Wed Mar 15 16:40:35 2017 -0400
-
- rgw_file: rgw_readdir: return dot-dirs only when *offset is 0
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 61482c2b85a07519f2256b1a3f2b6d8aa99d5f06)
-
-commit fe836bfb7a286c87c57576d29d6862be2514ada5
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Apr 11 05:56:13 2017 -0400
-
- rgw_file: chunked readdir
-
- Adjust readdir callback path for new nfs-ganesha chunked readdir,
- including changes to respect the result of callback to not
- continue.
-
- Pending introduction of offset name hint, our caller will just be
- completely enumerating, so it is possible to remove the offset map
- and just keep a last offset.
-
- Fixes: http://tracker.ceph.com/issues/19624
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit e0191d74e3aef06bf300df045a53a3952a71f651)
-
-commit 16eeb8c2acc8a1f843fa87967c2ee4c0ed2cd8bd
-Author: Gui Hecheng <guihecheng@cmss.chinamobile.com>
-Date: Fri Mar 31 10:42:40 2017 +0800
-
- rgw_file: fix missing unlock in unlink
-
- Fixes: http://tracker.ceph.com/issues/19435
-
- Signed-off-by: Gui Hecheng <guihecheng@cmss.chinamobile.com>
- (cherry picked from commit cb6808a6366a70f54d0cc16437d16aa1b7819c84)
-
-commit 8c7cb8227c39b09060cdca4e11dec75cf7f2336c
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Mon Mar 13 21:52:08 2017 -0400
-
- rgw_file: implement reliable has-children check (unlink dir)
-
- Bug report and discussion provided by
- Gui Hecheng <guihecheng@cmss.chinamobile.com> in nfs-ganesha upstream
- github. Briefly, while a reliable check is potentially costly,
- it is necessary.
-
- Fixes: http://tracker.ceph.com/issues/19270
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit b05f1c6d61aa4501a971e87de6dcaf3e58c3d9b4)
-
-commit 18f14dd86400b50f46930a9ef56666d82035507e
-Author: Matt Benjamin <mbenjamin@redhat.com>
-Date: Tue Apr 4 20:16:13 2017 -0400
-
- rgw_file: introduce rgw_lookup type hints
-
- The new type hints optimize object type deduction, when the
- rgw_lookup is called from an rgw_readdir callback.
-
- Fixes: http://tracker.ceph.com/issues/19623
-
- Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
- (cherry picked from commit 2e66c7a7cc763c5c0d6f5db04855f60f2b2ceed3)
-
-commit 118ccad0ba763b98c9ee3de225a947be5372dc0d
-Merge: bf30ecd7cb 65465356b5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 11:08:45 2017 +0200
-
- Merge pull request #14383 from smithfarm/wip-19547-jewel
-
- jewel: build/ops: rbdmap.service not included in debian packaging (jewel-only)
-
- Reviewed-by: Ken Dreyer <kdreyer@redhat.com>
-
-commit bf30ecd7cb8dea43a9d55cb1b02c72bfda6bad09
-Merge: 376c5e4753 9e123e6d6c
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 11:02:39 2017 +0200
-
- Merge pull request #14143 from smithfarm/wip-19355-jewel
-
- jewel: rgw: when converting region_map we need to use rgw_zone_root_pool
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 376c5e47531a2803ac9b7ea236b989c528268a9f
-Merge: da306df4de e2ee70a8ad
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 11:01:49 2017 +0200
-
- Merge pull request #14136 from smithfarm/wip-19330-jewel
-
- jewel: rgw: upgrade to multisite v2 fails if there is a zone without zone info
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit da306df4deaaa782c0bad72539affd3ee1ec7efc
-Merge: 57b210da41 5ee8feaba4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 11:00:35 2017 +0200
-
- Merge pull request #13872 from smithfarm/wip-19163-jewel
-
- jewel: doc: radosgw-admin: add the 'object stat' command to usage
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit 57b210da4185d624524d05bcd9ad01c2df16ca76
-Merge: db92019e9a 9cd7dd8490
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 10:59:33 2017 +0200
-
- Merge pull request #13863 from smithfarm/wip-19155-jewel
-
- jewel: rgw: typo in rgw_admin.cc
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit db92019e9af43c2367fdf7865c0fab8cb38453e6
-Merge: 6dcd5fa847 6add2a457e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 20 10:56:35 2017 +0200
-
- Merge pull request #13779 from smithfarm/wip-18866-jewel
-
- jewel: rgw: 'radosgw-admin sync status' on master zone of non-master zonegroup
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
-
-commit eac0e27193c67ffca60b5e7c61e7769ad8ace6aa
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Apr 19 16:53:57 2017 +0200
-
- Revert "osdc/Objecter: If osd full, it should pause read op which w/ rwordered flag."
-
- This reverts commit 2d68822c784eb4d62d3b0198ed4ec04404dbffb3.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 0efe16d2566f0d6040f61fafd38c6661f08da1cd
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Apr 19 16:53:49 2017 +0200
-
- Revert "osdc/Objecter: resend RWORDERED ops on full"
-
- This reverts commit f2474042ecd6560323673170c13f2cb964406e70.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 33af18e59298926d9636023faf871a191d582c1a
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 18 08:06:01 2017 +0200
-
- doc: mention --show-mappings in crushtool manpage
-
- Fixes: http://tracker.ceph.com/issues/19649
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b48b6f4ed8b5f5b5852cbbfd5b3d5b650efb7f1b)
-
-commit 6dcd5fa8474c3a43ffca2394557b11f4906ee1ff
-Merge: 7c006fc164 68fcb01211
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Wed Apr 19 02:47:27 2017 -0400
-
- Merge pull request #14596 from gregsfortytwo/wip-17916-divergent
-
- Wip 17916 divergent
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 97cd21afc54efe3afb482b041f9c34ab6cdc682e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sun Apr 9 20:11:27 2017 +0200
-
- tests: Thrasher: handle "OSD has the store locked" gracefully
-
- On slower machines (VPS, OVH) it takes time for the OSD to go down.
-
- Fixes: http://tracker.ceph.com/issues/19556
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit a5b19d2d73540b730392f8001c8601f2cecc1b51)
-
-commit faeb8088ac3bd16bc04a1e5a55fec50285a7253f
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Apr 5 16:19:57 2017 -0400
-
- rgw: fix for null version_id in fetch_remote_obj()
-
- commit 8b43c9781206c22d9aedb4beb8d669bf1e23169f fixed the wrong use of
- the dest_obj's version, but removed the check for "null" version
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 915370776df5b964c2ee8d9f9329562919eef8d5)
-
-commit 6180fcb4ec33bdade37f5693193712f8016b2560
-Author: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
-Date: Fri Mar 17 16:26:56 2017 +0800
-
- rgw: version id doesn't work in fetch_remote_obj
-
- Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
- (cherry picked from commit 8b43c9781206c22d9aedb4beb8d669bf1e23169f)
-
- Conflicts:
- src/rgw/rgw_rados.cc: trivial: dest_obj.key.instance in master
- versus dest_obj.get_instance() in Jewel
-
-commit d079b91479abfb474fad4fafe54c119f009ea572
-Author: liuchang0812 <liuchang0812@gmail.com>
-Date: Fri Feb 10 18:02:03 2017 +0800
-
- rgw: don't return skew time in pre-signed url
-
- Fixes: http://tracker.ceph.com/issues/18828
-
- Signed-off-by: liuchang0812 <liuchang0812@gmail.com>
- (cherry picked from commit dd8b348f4aad0124e8a4457117bf3f5f76af7bdb)
-
-commit 9b77b16b888b8efbf7d50d333e1880a6ec70d87a
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Apr 13 23:49:50 2017 +0200
-
- ceph-disk: enable directory backed OSD at boot time
-
- https://github.com/ceph/ceph/commit/539385b143feee3905dceaf7a8faaced42f2d3c6
- introduced a regression preventing directory backed OSD from starting at
- boot time.
-
- For device backed OSD the boot sequence starts with ceph-disk@.service
- and proceeds to
-
- systemctl enable --runtime ceph-osd@.service
-
- where the --runtime ensure ceph-osd@12 is removed when the machine
- reboots so that it does not compete with the ceph-disk@/dev/sdb1 unit at
- boot time.
-
- However directory backed OSD solely rely on the ceph-osd@.service unit
- to start at boot time and will therefore fail to boot.
-
- The --runtime flag is selectively set for device backed OSD only.
-
- Fixes: http://tracker.ceph.com/issues/19628
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit f425a127b7487d2093c8c943f0bcdec3d673d601)
-
- Conflicts:
- src/ceph-disk/ceph_disk/main.py: trivial: Jewel does not support
- OpenRC and other inits, hence no corresponding 'elif'
-
-commit 68fcb01211e064f0d200cc9c9576254e9a6b949c
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Mon Apr 17 18:09:55 2017 -0700
-
- pglog: require users set a config option before ignoring divergent_priors
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit b9477303b010b3653934f77fa533df01aeff1c3c
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Fri Apr 7 14:33:20 2017 -0700
-
- osd: pglog: clean up divergent_priors off disk when running; don't assert on startup
-
- Fixes: http://tracker.ceph.com/issues/17916
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 7c006fc1640d2f6b9dc9002bfd994ecdf25510ee
-Merge: e31a540dce 721b2083cd
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Apr 17 17:41:19 2017 -0400
-
- Merge pull request #14492 from gregsfortytwo/wip-jewel-snaptrim
-
- Backport snap trimming improvements to Jewel
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 721b2083cd2ed8567d41aba6b17caf30b678e6b3
-Merge: a84dc8fe74 e31a540dce
-Author: Gregory Farnum <greg@gregs42.com>
-Date: Mon Apr 17 17:39:59 2017 -0400
-
- Merge branch 'jewel' into wip-jewel-snaptrim
-
-commit a84dc8fe747d1e17c7910c9857f7f5d3d56e2dff
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Mon Apr 17 14:32:38 2017 -0700
-
- PendingReleaseNotes: discuss snap trim improvements
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 360a9d9af003c650cdf00534909d6488c702c413
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Wed Apr 12 16:30:55 2017 -0700
-
- PrimaryLogPG: reimplement osd_snap_trim_sleep within the state machine
-
- Rather than blocking the main op queue, just pause for that amount of
- time between state machine cycles.
-
- Also, add osd_snap_trim_sleep to a few of the thrasher yamls.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 2ed7759cfeb03e71f0fbd98fe7c2db2bb741861c)
-
- Conflicts:
- src/osd/PrimaryLogPG.cc
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 67336454a4cee66522bc0ca01b2c58b8960f75ec)
-
- Conflicts:
- qa/suites/rados/thrash/thrashers/default.yaml
- qa/suites/rados/thrash/thrashers/pggrow.yaml
- src/osd/OSD.h
- src/osd/ReplicatedPG.cc
- src/osd/ReplicatedPG.h
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 18dbf6a0245e35dbbdb5ddb760182795b37983c0
-Author: Samuel Just <sjust@redhat.com>
-Date: Thu Jan 26 15:41:21 2017 -0800
-
- rados: check that pool is done trimming before removing it
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 4aebf59d906fa3e03d21bdac182f89fe3cd4c802)
- (cherry picked from commit 34398c29b3c57f00d932cf96570f882dce64a82b)
-
-commit 7f78450bd184335ba0098f3ded0fefa2c79a5dd5
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Tue Apr 11 14:04:19 2017 -0700
-
- osd/ReplicatedPG: limit the number of concurrently trimming pgs
-
- This patch introduces an AsyncReserver for snap trimming to limit the
- number of pgs on any single OSD which can be trimming, as with backfill.
- Unlike backfill, we don't take remote reservations on the assumption
- that the set of pgs with trimming work to do is already well
- distributed, so it doesn't seem worth the implementation overhead to get
- reservations from the peers as well.
-
- Signed-off-by: Samuel Just <sjust@redhat.com>
- (cherry picked from commit 21cc515adfb225ba70f1d80b1b76f0345c214c22)
-
- Conflicts:
- src/osd/PrimaryLogPG.cc
- src/osd/PrimaryLogPG.h
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
- (cherry picked from commit 68ea24396ca6450d4d8042a7c5f51306b7d199fa)
- (cherry picked from commit c7176b869898c870b56b1762958652d801af4c4c)
-
- Conflicts: Many. As evidenced by involving two distinct patches
- in this one commit, it wasn't a clean backport.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
-
-commit 527911fab78b4752313a4a2a5d3ab0ae736bc50f
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Apr 10 14:53:46 2017 +0800
-
- mon/MonClient: make get_mon_log_message() atomic
-
- * LogClient: move reset_session() into get_mon_log_message() and add a
- "flush" param to the latter. so it can get_mon_log_message()
- atomically. otherwise another call changing the log queue could sneak
- in between reset_session() and get_mon_log_message().
- * MonClient: add a "flush" param to do_send() so we can reset the
- LogClient session once we are connected to a monitor.
-
- Fixes: http://tracker.ceph.com/issues/19427
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 5215e291da2b527d85e129eda86043490843178e)
-
- Conflicts:
- src/mon/MonClient.cc: handle_auth: replaced 'log_client->reset_session();
- send_log();' sequence with newly introduced 'send_log(true);' like
- the original patch does
-
-commit e31a540dcea96b3d5b4f7ecd20e2d54e81a68e2b
-Merge: 7c36d1650f 06916a8798
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Apr 14 22:28:51 2017 +0200
-
- Merge pull request #13834 from smithfarm/wip-18969-jewel
-
- jewel: rgw: Change loglevel to 20 for 'System already converted' message
-
- Reviewed-by: Casey Bodley <cbodley@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 7c36d1650fdb7a357ff724b37cf59b4da413f76b
-Merge: 0e3aa2cb01 4c1f302f7d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Fri Apr 14 22:26:51 2017 +0200
-
- Merge pull request #13833 from smithfarm/wip-18908-jewel
-
- jewel: rgw: the swift container acl does not support field .ref
-
- Reviewed-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
-
-commit b698d1fa4ce4aca5e392eeec600e3357c3cf71a9
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Mar 16 12:28:41 2017 -0400
-
- librbd: is_exclusive_lock_owner API should ping OSD
-
- This is required to detect if a peer has been silently blacklisted
- and is therefore no longer the lock owner.
-
- Fixes: http://tracker.ceph.com/issues/19287
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit e15db05960a284bdf3701256722299d553cfd5aa)
-
- Conflicts:
- src/librbd/ManagedLock.[h|cc]: logic moved to ExclusiveLock
-
- (cherry picked from commit 7e30b630e2806c73ea503871599f958b58df7934)
-
-commit 0e3aa2cb011be8a2af69040b94ee240ea6c1e663
-Merge: 8d5a5ddfec 419c9926d9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 13 11:09:27 2017 +0200
-
- Merge pull request #13214 from ovh/bp-osd-updateable-throttles-jewel
-
- jewel: osd: allow client throttler to be adjusted on-fly, without restart
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8d5a5ddfecc7c020eeb8aeb927e007bc04885534
-Merge: 091aaa2ab7 bcd3c906e5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Apr 13 10:44:23 2017 +0200
-
- Merge pull request #14326 from shinobu-x/wip-15025-jewel
-
- jewel: osd: new added OSD always down when full flag is set
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit d311eea6bc5b2c88984cfc16340970ea1459b74a
-Author: Robin H. Johnson <robin.johnson@dreamhost.com>
-Date: Sat Feb 11 10:32:53 2017 -0800
-
- msg/simple/Pipe: support IPv6 QoS.
-
- Extend DSCP marking for heartbeat packets to IPv6, as commit
- 9b9a682fe035c985e416ee1c112fa58f9045a27c only implemented
- support for IPv4.
-
- Conflicts: Cherry-picked 91a29bc490fdfbbef0875fa620c7ba1a1a6492ae from master to avoid conflict.
- Backport: jewel, luminious
- Fixes: http://tracker.ceph.com/issues/18887
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
- (cherry picked from commit 2d6021fbf7a728f73c2998be17e9224f14b83a30)
-
-commit 332b5174c769f395074255e075de8d2cc1ee4021
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Mar 16 12:27:08 2017 -0400
-
- pybind: fix incorrect exception format strings
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 68617455f534a612ade1331f43b032ab524704ae)
-
-commit 091aaa2ab768858e840e2d05e0896c229ce69984
-Merge: 3f2e4cd2d5 d30c4d55ad
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 11:38:48 2017 +0200
-
- Merge pull request #13874 from smithfarm/wip-19171-jewel
-
- jewel: doc: rgw S3 create bucket should not do response in json
-
- Reviewed-by: Abhishek Lekshmanan <abhishek@suse.com>
-
-commit 3f2e4cd2d53f1cbdbdb1fc8687c5ffe0d46b346b
-Merge: ea0bc6c553 0e11a938c5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 11:06:40 2017 +0200
-
- Merge pull request #13492 from shinobu-x/wip-18516-jewel
-
- jewel: build/ops: "osd marked itself down" will not recognised if host runs mon + osd on shutdown/reboot
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit ea0bc6c553454f7641a2594013412aee142fbd11
-Merge: 845972f4de d012c381e8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 11:01:23 2017 +0200
-
- Merge pull request #13254 from shinobu-x/wip-14609-jewel
-
- jewel: common: radosstriper: protect aio_write API from calls with 0 bytes
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 845972f4de1d803aa4dab0e1afaed693bbba088f
-Merge: a3deef997f cfa37d6a16
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:52:10 2017 +0200
-
- Merge pull request #13489 from shinobu-x/wip-18955-jewel
-
- jewel: ceph-disk: bluestore --setgroup incorrectly set with user
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit a3deef997ff0800b9e3e2d141cfc6fdc73cac837
-Merge: 702edb5519 39aab763a4
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:51:42 2017 +0200
-
- Merge pull request #14070 from smithfarm/wip-19339-jewel
-
- jewel: tests: dummy suite fails in OpenStack
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 702edb5519e67bc5f8c5b65c6f63c9635cd758cf
-Merge: f509ccc4b7 a20d2b89ee
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:51:12 2017 +0200
-
- Merge pull request #14329 from smithfarm/wip-19493-jewel
-
- jewel: ceph-disk: Racing between partition creation & device node creation
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Sébastien Han <seb@redhat.com>
-
-commit f509ccc4b734697267cec35ff57dd7f1c5aaaddb
-Merge: c8c4bff2af f2474042ec
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:48:29 2017 +0200
-
- Merge pull request #14427 from smithfarm/wip-19140-jewel
-
- jewel: osdc/Objecter: If osd full, it should pause read op which w/ rwordered flag
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit c8c4bff2afa7fe0339a97f32e69bb9d0546f1318
-Merge: 349baea1a4 b5b441abaa
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:48:08 2017 +0200
-
- Merge pull request #14324 from shinobu-x/wip-19371-jewel
-
- jewel: common: monitor creation with IPv6 public network segfaults
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit 349baea1a4486e475e0381a6b316d64a6ce0139c
-Merge: dd466b7d9a 72e2476a13
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:45:35 2017 +0200
-
- Merge pull request #14112 from shinobu-x/wip-19192-jewel
-
- jewel: tools: brag fails to count "in" mds
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit dd466b7d9acb03c8830bdd83b3b73602c68083c2
-Merge: b8f8bd0a94 ee06517547
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:45:11 2017 +0200
-
- Merge pull request #14150 from smithfarm/wip-18823-jewel
-
- jewel: tests: run-rbd-unit-tests.sh assert in lockdep_will_lock, TestLibRBD.ObjectMapConsistentSnap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit b8f8bd0a949c917b119eca91aec95c6a971a1fb4
-Merge: 222916a375 1cc8d0d085
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:44:47 2017 +0200
-
- Merge pull request #14152 from smithfarm/wip-18893-jewel
-
- jewel: librbd: Incomplete declaration for ContextWQ in librbd/Journal.h
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 222916a3758b0253bcb851b5e955f6970f171306
-Merge: 49f84b1a14 b85677397e
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:44:25 2017 +0200
-
- Merge pull request #14154 from smithfarm/wip-18948-jewel
-
- jewel: tests: additional rbd-mirror test stability improvements
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 49f84b1a14295e80ef35204ed691b3131c5f744c
-Merge: 2a232d43a1 f6489d01ca
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:44:04 2017 +0200
-
- Merge pull request #14148 from smithfarm/wip-18778-jewel
-
- jewel: rbd: rbd --pool=x rename y z does not work
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2a232d43a18b47399f96abeac3ac800f204a9eaf
-Merge: 413ac584d6 8bed107b84
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:43:41 2017 +0200
-
- Merge pull request #14083 from smithfarm/wip-19357-jewel
-
- jewel: rbd: systemctl stop rbdmap unmaps all rbds and not just the ones in /etc/ceph/rbdmap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 413ac584d63fd469ea28defa68c39538444d01b1
-Merge: 23d595b1b0 547e867628
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:43:21 2017 +0200
-
- Merge pull request #13154 from smithfarm/wip-18496-jewel
-
- jewel: librbd: Possible deadlock performing a synchronous API action while refresh in-progress
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 23d595b1b0fb874adfd1507d86db261cf6a193a9
-Merge: 4add6f5580 915dbace5d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:42:54 2017 +0200
-
- Merge pull request #13244 from smithfarm/wip-18775-jewel
-
- jewel: rbd: qemu crash triggered by network issues
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 4add6f5580b7d65571bc426e95fac35be7150ff4
-Merge: 37ab19cc29 1a4e1e09b1
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:42:23 2017 +0200
-
- Merge pull request #13809 from asheplyakov/18321-bp-jewel
-
- jewel: librbd: remove image header lock assertions
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 37ab19cc29d61970e08af1b4627137cfcaa99474
-Merge: f7c04e3ca6 8d0140a9ed
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:41:56 2017 +0200
-
- Merge pull request #13107 from smithfarm/wip-18669-jewel
-
- jewel: tests: [ FAILED ] TestLibRBD.ImagePollIO in upgrade:client-upgrade-kraken-distro-basic-smithi
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit f7c04e3ca69c7fc134b267e825277eccea228c9b
-Merge: d2909bdb4c a18a2dd108
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 10:39:26 2017 +0200
-
- Merge pull request #13585 from asheplyakov/jewel-bp-16585
-
- jewel: msg: set close on exec flag
-
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit d2909bdb4cf135de850cc865f735cc61eb3d4ea6
-Merge: cd748603da 6d47615c11
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:56:22 2017 +0200
-
- Merge pull request #14371 from tchaikov/wip-19429-jewel
-
- jewel: tests: clone workunit using the branch specified by task
-
- Nathan Cutler <ncutler@suse.com>
-
-commit cd748603da43c0b7377b5ef07aff618711b4879c
-Merge: 1a20c12355 dd25a8f36b
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:54:11 2017 +0200
-
- Merge pull request #14325 from shinobu-x/wip-18619-jewel
-
- jewel: osd: degraded and misplaced status output inaccurate
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 1a20c123556e2f566af7e87ab3da6fc2ca328bb9
-Merge: 4838c4db4c 7fdf4d41c5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:53:25 2017 +0200
-
- Merge pull request #14236 from smithfarm/wip-19392-jewel
-
- jewel: mon: remove bad rocksdb option
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 4838c4db4c610926edc599677cb7e74f3bdc3077
-Merge: e26b7033eb 3860ccf16d
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:52:41 2017 +0200
-
- Merge pull request #14181 from mslovy/wip-19394-jewel
-
- jewel: osd: bypass readonly ops when osd full
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e26b7033ebd4a09210d482a54677806fe2c03505
-Merge: 389150bcc3 819af9e413
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:49:49 2017 +0200
-
- Merge pull request #14113 from shinobu-x/wip-19319-jewel
-
- jewel: cli: RadosImport::import should return an error if Rados::connect fails
-
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
- Reviewed-by: David Zafman <dzafman@redhat.com>
-
-commit 389150bcc376702022cf15c0c79dbe856a97dffa
-Merge: a8b10082f5 90de64bd81
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:45:33 2017 +0200
-
- Merge pull request #14047 from asheplyakov/reindex-on-pg-split
-
- jewel: osd: reindex properly on pg log split
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit a8b10082f5761ea1132b85bd916a84f87e0276e2
-Merge: 32ed9b7897 ae498e84ff
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:45:15 2017 +0200
-
- Merge pull request #14044 from mslovy/wip-19311-jewel
-
- jewel: core: os/filestore: fix clang static check warn use-after-free
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 32ed9b789733e21a2d597c7016eabf95763e50ae
-Merge: 6705e911a2 335b5fa4a9
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:44:25 2017 +0200
-
- Merge pull request #13932 from asheplyakov/18911-bp-jewel
-
- jewel: rbd-nbd: check /sys/block/nbdX/size to ensure kernel mapped correctly
-
- Reviewed-by: Mykola Golub <mgolub@mirantis.com>
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 6705e911a229cee50d5ac992c7dd9af834f2400d
-Merge: 3d21a0080d 714eb863c3
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:42:13 2017 +0200
-
- Merge pull request #13831 from jan--f/wip-19206-jewel
-
- jewel: fs: Invalid error code returned by MDS is causing a kernel client WARNING
-
- Reviewed-by: John Spray <john.spray@redhat.com>
-
-commit 3d21a0080dfd00c0b89ed23fd8049e46c3041af4
-Merge: 8a6d64331b 6b5322c5f6
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:41:36 2017 +0200
-
- Merge pull request #13827 from tchaikov/wip-19185-jewel
-
- jewel: osd: ReplicatedPG: try with pool's use-gmt setting if hitset archive not found
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 8a6d64331b73a4a24a59f4dcdb6771f1dc638879
-Merge: f96392a589 cebba011e5
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:40:09 2017 +0200
-
- Merge pull request #13788 from shinobu-x/wip-18235-jewel
-
- jewel: core: os/filestore/HashIndex: be loud about splits
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit f96392a58970ab1e81653d5657d3d680120a02b6
-Merge: 8fe6ffcfef 1d054c3856
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:39:27 2017 +0200
-
- Merge pull request #13786 from shinobu-x/wip-19129-jewel
-
- jewel: build/ops: ceph-base package missing dependency for psmisc
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 8fe6ffcfef8918fd8634e87255ad3fe7a544aa16
-Merge: 6f589a159e b249fd5bd8
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:38:34 2017 +0200
-
- Merge pull request #13732 from liewegas/wip-19119-jewel
-
- jewel: doc: PendingReleaseNotes: note about 19119
-
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 6f589a159e4eb5f6c96634a742acaf6cd6e174c2
-Merge: b8f2d35884 8c7a1df251
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:36:21 2017 +0200
-
- Merge pull request #13541 from shinobu-x/wip-18929-jewel
-
- jewel: osd: restrict want_acting to up+acting on recovery completion
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit b8f2d35884a52586a28f1ff4eaf99c8c3ba1c43f
-Merge: 40d1443d68 2d17092fab
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:34:54 2017 +0200
-
- Merge pull request #13477 from asheplyakov/jewel-bp-18951
-
- jewel: osd: --flush-journal: sporadic segfaults on exit
-
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 40d1443d68b788737f83c10db3811bc37dbe8dda
-Merge: 50e863e0f4 07501dec6f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Wed Apr 12 03:33:25 2017 +0200
-
- Merge pull request #13261 from shinobu-x/wip-18587-jewel
-
- jewel: mon: OSDMonitor: make 'osd crush move ...' work on osds
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
- Reviewed-by: Nathan Cutler <ncutler@suse.com>
-
-commit 25e43ac25619d883d5a04e2df1cf6f57fea73fd0
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Apr 11 08:23:23 2017 +0200
-
- tests: fix oversight in yaml comment
-
- When the file was copied from the hammer version, the word "hammer"
- was not changed to "infernalis".
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
- This cannot be cherry-picked from master because the test has been dropped.
-
-commit f2474042ecd6560323673170c13f2cb964406e70
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Mar 2 21:20:08 2017 -0600
-
- osdc/Objecter: resend RWORDERED ops on full
-
- Our condition for respecting the FULL flag is complex, and involves
- the WRITE | RWORDERED flags vs the FULL_FORCE | FULL_TRY flags. Previously,
- we could block a read bc of RWORDRED but not resend it later.
-
- Fix by capturing the complex condition in a respects_full() bool and using
- it both for the blocking-on-send and resending-on-possibly-notfull-later
- checks.
-
- Fixes: http://tracker.ceph.com/issues/19133
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit c4b73f19a7be13ff412eef804efcd8c18ed4dae6)
-
-commit 2d68822c784eb4d62d3b0198ed4ec04404dbffb3
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu May 5 23:44:57 2016 +0800
-
- osdc/Objecter: If osd full, it should pause read op which w/ rwordered flag.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit 07b2a22210e26eac1b2825c30629788da05e5e12)
-
-commit 2271cd81282f3f026316134cbab630f3e4f47782
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon Apr 3 13:37:17 2017 +1000
-
- ceph-disk: Populate mount options when running "list"
-
- Also tidy up by moving duplicated code into a function
-
- Fixes: http://tracker.ceph.com/issues/17331
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 7943ab2e01e24f2dfc5b6f1d3ffdc8a49e01af45)
-
-commit 65465356b5e7cb6cba67f8cbb81259d21e888dfb
-Author: Ken Dreyer <kdreyer@redhat.com>
-Date: Tue Feb 16 12:56:34 2016 -0700
-
- debian: replace SysV rbdmap with systemd service
-
- Stop shipping /etc/init.d/rbdmap in the Debian packages. Ship the
- rbdmap.service systemd unit file instead.
-
- The corresponding change has already been made for RPMs, in
- 9224ac2ad25f7d017916f58b642c0ea25305c3e5.
-
- For Upstart-based systems (eg Ubuntu Trusty), the Debian packages
- already contain rbdmap.conf.
-
- (This gets us a tiny bit closer to being able to remove the rbdmap SysV
- script from our tree entirely.)
-
- Signed-off-by: Ken Dreyer <kdreyer@redhat.com>
- (cherry picked from commit 839807118dda2fb4d57ed9d50ec46e3ee0e2820a)
-
- Conflicts:
- debian/ceph-common.install (retain /etc/init.d/rbdmap so jewel users can choose sysvinit or systemd)
- debian/rules (retain /etc/init.d/rbdmap so jewel users can choose sysvinit or systemd)
-
-commit 6d47615c11a216733ba368f0dbd9a0a1b9c8fd35
-Author: Kefu Chai <kchai@redhat.com>
-Date: Sat Apr 1 23:04:22 2017 +0800
-
- qa/tasks/workunit.py: use "overrides" as the default settings of workunit
-
- otherwise the settings in "workunit" tasks are always overridden by the
- settings in template config. so we'd better follow the way of how
- "install" task updates itself with the "overrides" settings: it uses the
- "overrides" as the *defaults*.
-
- Fixes: http://tracker.ceph.com/issues/19429
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit 47080150a17d238f38d9da824d227393ad767aad)
-
-commit fdc71e75cd6361be49c4c20e77d3bdff017b38bf
-Author: Kefu Chai <kchai@redhat.com>
-Date: Thu Mar 30 12:37:01 2017 +0800
-
- tasks/workunit.py: specify the branch name when cloning a branch
-
- c1309fb failed to specify a branch when cloning using --depth=1, which
- by default clones the HEAD. and we can not "git checkout" a specific
- sha1 if it is not HEAD, after cloning using '--depth=1', so in this
- change, we dispatch "tag", "branch", "HEAD" using three Refspec classes.
-
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit 9ca7ccf5f1739f731da8bf31260594aea3a2932d)
-
- Conflicts:
- qa/tasks/workunit.py (trivial resolution)
-
-commit 6c14a803894d71bae858705855551a44bdf9bf67
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Tue Mar 28 20:08:13 2017 -0700
-
- tasks/workunit.py: when cloning, use --depth=1
-
- Help avoid killing git.ceph.com. A depth 1 clone takes about
- 7 seconds, whereas a full one takes about 3:40 (much of it
- waiting for the server to create a huge compressed pack)
-
- Signed-off-by: Dan Mick <dan.mick@redhat.com>
- (cherry picked from commit c1309fbef300a062138ac40eb5d3e5081b833072)
-
-commit f8aa6be06cc628b1cf64c9196c30045d020d657e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Apr 7 06:59:13 2017 +0200
-
- build/ops: rpm: move $CEPH_EXTRA_CONFIGURE_ARGS to right place
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit bb3eb4284fe74cbf78e4a406c7b5f67a8e3c84b3
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Fri Apr 7 06:48:51 2017 +0200
-
- build/ops: rpm: explicitly provide --with-ocf to configure
-
- Fixes: http://tracker.ceph.com/issues/19546
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
- (Note: This cannot be cherry-picked because master uses cmake, but
- the fix does bring the jewel spec file into better alignment its master
- counterpart, at least as far as this one little bit is concerned.)
-
-commit 30c952735327d05b6049e9364c1a053ebf651751
-Author: lu.shasha <lu.shasha@eisoo.com>
-Date: Mon Feb 27 15:52:43 2017 +0800
-
- rgw: use separate http_manager for read_sync_status
-
- concurrent users of read_sync_status() use different cr managers, when get_resource must
- use http_manager related to the cr manager.
-
- Fixes: http://tracker.ceph.com/issues/19236
-
- Signed-off-by: Shasha Lu <lu.shasha@eisoo.com>
- (cherry picked from commit c412024889f8995d98096ac863bafee71624bd70)
-
-commit 87cb8474f523be1b281882c46a8a3597977a51c9
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jul 28 20:20:29 2016 -0400
-
- rgw: pass cr registry to managers
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit ef4d7eab11fb5d2a41c9c28b9eb8b075aaff0d05)
-
- Conflicts:
- src/rgw/rgw_rados.cc: removed ref to RGWSyncLogTrimThread (not backported)
-
-commit 1a6d7c0506d4bcda775dda05bb357d4d5695dabb
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Jul 22 11:00:16 2016 -0400
-
- rgw: use separate cr manager for read_sync_status
-
- RGWCoroutinesManager::run() is not reentrant, so concurrent users of
- read_sync_status() must use different managers
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 6b1e40d7a21c549b55e6576ec56973c8d3c092d1)
-
-commit c466adee9c8f7a97ff7e99bee56da8ce51bf0f00
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Jul 21 23:46:20 2016 -0400
-
- rgw: change read_sync_status interface
-
- RGWDataSyncStatusManager::read_sync_status() now operates on the given
- parameter, rather than its internal member variable. this allows
- multiple concurrent readers, which is needed for the rest interface
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit b7cd4e0e8b879b5e528de75bea3307585b96cbf2)
-
-commit 36921a3f3d01547508dc6270f6b19f2576e067d9
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Wed Jun 8 11:24:11 2016 -0400
-
- rgw: don't ignore ENOENT in RGWRemoteDataLog::read_sync_status()
-
- rest handlers for sync status need to return ENOENT errors. the only
- other callers are in radosgw-admin, so the ENOENT errors are ignored at
- those call sites instead
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 2cc533b30c0f23c0750ea8d02c51b3b3d3b4821a)
-
-commit b249fd5bd816a63b445db12c8f846cfda199c8b8
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Mar 1 13:18:44 2017 -0600
-
- PendingReleaseNotes: warning about 'osd rm ...' and #19119
-
- See http://tracker.ceph.com/issues/19119
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit be96003c464481d8e84825178d600234a0d64d22)
-
-commit 335258f975a8e8539774e8cb22690d746ec90d9f
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Tue Mar 28 11:49:08 2017 +0200
-
- osdc/Objecter: respect epoch barrier in _op_submit()
-
- Epoch barrier instructs us to avoid sending (i.e. pause) any OSD ops
- until we see a barrier epoch. The only thing epoch_barrier check in
- target_should_be_paused() does is keep already paused ops paused. We
- need to actually pause incoming OSD ops in _op_submit().
-
- Fixes: http://tracker.ceph.com/issues/19396
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit f8e8efc0a53d7bd807cc0c2178aef7c4bed62ab7)
-
-commit a20d2b89ee13e311cf1038c54ecadae79b68abd5
-Author: Erwan Velu <erwan@redhat.com>
-Date: Fri Mar 31 14:54:33 2017 +0200
-
- ceph-disk: Adding retry loop in get_partition_dev()
-
- There is very rare cases where get_partition_dev() is called before the actual partition is available in /sys/block/<device>.
-
- It appear that waiting a very short is usually enough to get the partition beein populated.
-
- Analysis:
- update_partition() is supposed to be enough to avoid any racing between events sent by parted/sgdisk/partprobe and
- the actual creation on the /sys/block/<device>/* entrypoint.
- On our CI that race occurs pretty often but trying to reproduce it locally never been possible.
-
- This patch is almost a workaround rather than a fix to the real problem.
- It offer retrying after a very short to be make a chance the device to appear.
- This approach have been succesful on the CI.
-
- Note his patch is not changing the timing when the device is perfectly created on time and just differ by a 1/5th up to 2 seconds when the bug occurs.
-
- A typical output from the build running on a CI with that code.
- command_check_call: Running command: /usr/bin/udevadm settle --timeout=600
- get_dm_uuid: get_dm_uuid /dev/sda uuid path is /sys/dev/block/8:0/dm/uuid
- get_partition_dev: Try 1/10 : partition 2 for /dev/sda does not in /sys/block/sda
- get_partition_dev: Found partition 2 for /dev/sda after 1 tries
- get_dm_uuid: get_dm_uuid /dev/sda uuid path is /sys/dev/block/8:0/dm/uuid
- get_dm_uuid: get_dm_uuid /dev/sda2 uuid path is /sys/dev/block/8:2/dm/uuid
-
- fixes: #19428
-
- Signed-off-by: Erwan Velu <erwan@redhat.com>
- (cherry picked from commit 93e7b95ed8b4c78daebf7866bb1f0826d7199075)
-
-commit 2d5d0aec60ec9689d44a53233268e9b9dd25df95
-Author: Erwan Velu <erwan@redhat.com>
-Date: Wed Mar 22 10:11:44 2017 +0100
-
- ceph-disk: Reporting /sys directory in get_partition_dev()
-
- When get_partition_dev() fails, it reports the following message :
- ceph_disk.main.Error: Error: partition 2 for /dev/sdb does not appear to exist
- The code search for a directory inside the /sys/block/get_dev_name(os.path.realpath(dev)).
-
- The issue here is the error message doesn't report that path when failing while it might be involved in.
-
- This patch is about reporting where the code was looking at when trying to estimate if the partition was available.
-
- Signed-off-by: Erwan Velu <erwan@redhat.com>
- (cherry picked from commit 413c9fcfbe8e6ab33d73b8428090ccacc33c5d15)
-
-commit bcd3c906e5b57e7f44df1963c6e11b78ff89482c
-Author: Mingxin Liu <mingxin@xsky.com>
-Date: Mon Mar 13 23:41:58 2017 +0800
-
- osd: don't share osdmap with objecter when preboot
-
- Signed-off-by: Mingxin Liu <mingxin@xsky.com>
- (cherry picked from commit a5a3644eecc49b4eea890c6999fe87536495dcbe)
-
-commit dd25a8f36bef1901f3ce6193cfcbdaf7ab2424a1
-Author: David Zafman <dzafman@redhat.com>
-Date: Wed Jan 18 08:33:40 2017 -0800
-
- osd: Calculate degraded and misplaced more accurately
-
- Calculate num_object_copies based on the larger of pool size,
- up set size and acting set size.
-
- Calculate num_objects_degraded as the difference between num_object_copies
- and all copies found on acting set and backfilling up set OSDs.
-
- Calculate num_objects_misplaced as all copies on acting set OSDs not in up set
- less copies that have been backfilled to up set OSDs.
-
- Fixes: http://tracker.ceph.com/issues/18619
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 8423bc40759cca137f61e7b755411719a84369d4)
-
-commit b5b441abaa852e85ddefd8b22835c9b85898cc06
-Author: Fabian Grünbichler <f.gruenbichler@proxmox.com>
-Date: Wed Mar 22 16:13:50 2017 +0100
-
- common: fix segfault in public IPv6 addr picking
-
- sockaddr is only 16 bytes big, so declaring net as sockaddr
- and then casting to sockaddr_in6 in case of IPv6 cannot
- work.
-
- using sockaddr_storage works for both IPv4 and IPv6, and is
- used in other code parts as well.
-
- note that the tests did not find this issue as they declared
- the bigger structs and casted the references to (sockaddr *)
-
- Fixes: http://tracker.ceph.com/issues/19371
- Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
- (cherry picked from commit ae2ee3d3835fe25b35eeb1a841ee5234cd69eb65)
-
-commit 7fdf4d41c5bef14269cb302301a08d5a3a57a768
-Author: Sage Weil <sage@redhat.com>
-Date: Mon May 2 15:29:12 2016 -0400
-
- mon: remove bad rocksdb option
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 0ac671ece258e509f71a05253e62a9878e279840)
-
-commit 3860ccf16d7dfb137face9886c3d7f29cd527835
-Author: Jianpeng Ma <jianpeng.ma@intel.com>
-Date: Thu May 5 23:07:06 2016 +0800
-
- osd: bypass readonly ops when osd full.
-
- Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
- (cherry picked from commit e2a0ae8e88e6b7354b14adb503fd8ba8525bee39)
- See: http://tracker.ceph.com/issues/19394
-
- Signed-off-by: yaoning <yaoning@unitedstack.com>
-
-commit b85677397ef9a3fe16c087e67d3f752851bbe070
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 21 15:31:43 2016 -0500
-
- qa/workunits/rbd: resolve potential rbd-mirror race conditions
-
- Fixes: http://tracker.ceph.com/issues/18935
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 63eae97afc1a92412525468263fb8696a243ebac)
-
-commit 1cc8d0d08560af4e8785d7c4c6a925b1fc9f988e
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed Feb 8 23:47:57 2017 +0100
-
- librbd: Include WorkQueue.h since we use it
-
- We use m_work_queue of type ContextWQ in handle_update function but we
- do not include common/WorkQueue.h that defines ContextWQ. This results
- in dereference of an incomplete type and causes build error in latest
- Fedora rawhide (future 26).
-
- Fixes: http://tracker.ceph.com/issues/18862
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 480f82847ad1fc7959f1fe5a90761a5a24550993)
-
-commit ee06517547ae174472d739f966c0a27d3a97d742
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 18 20:54:22 2017 -0500
-
- librbd: avoid possible recursive lock when racing acquire lock
-
- Fixes: http://tracker.ceph.com/issues/17447
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5e46e8eb664f573bd70ae7c96a6d9a98b0deb09e)
-
-commit f6489d01ca41d6979b5de28e3cde6b43fcaa8edb
-Author: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
-Date: Mon Jan 30 13:03:20 2017 +0100
-
- rbd: destination pool should be source pool if it is not specified
-
- Currently if user perform image rename operation and user give pool
- name as a optional parameter (--pool=<pool_name>) then currently
- its taking this optional pool name for source pool and making
- destination pool name default pool name.
- With this fix if user provide pool name as a optional pool name
- parameter then it will consider both soruce and destination pool
- name as optional parameter pool name.
-
- Fixes: http://tracker.ceph.com/issues/18326
-
- Reported-by: ÐœÐРК КОРЕÐБЕРГ <socketpair@gmail.com>
- Signed-off-by: Gaurav Kumar Garg <garg.gaurav52@gmail.com>
- (cherry picked from commit 01f23aa99fb694da326ab408e75b33c640ce660b)
-
-commit 9e123e6d6c8bbd54514b498df5a22d961f0cefbb
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Sun Mar 12 12:11:28 2017 +0200
-
- rgw: use rgw_zone_root_pool for region_map like is done in hammer
-
- Fixes: http://tracker.ceph.com/issues/19195
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit c91dd6d9efd148e0fe0f027dde537e977de9aa26)
-
-commit e2ee70a8ad51992bbd763d2465f6d8a01dad6a31
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Mar 9 13:03:24 2017 +0200
-
- rgw: skip conversion of zones without any zoneparams
-
- Fixes: http://tracker.ceph.com/issues/19231
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit 36cf5a5c8179c6313346b2e29286c537c6fefce8)
-
-commit c7d292bf6714d7aaf10412e5109badb90f5dc208
-Author: Orit Wasserman <owasserm@redhat.com>
-Date: Thu Mar 9 11:16:26 2017 +0200
-
- rgw: better debug information for upgrade
-
- Signed-off-by: Orit Wasserman <owasserm@redhat.com>
- (cherry picked from commit e9f3bf8eab1dd46a92f54b0f7afe1f4c0e4204db)
-
-commit 11f5c841c7698e6239017478fa05f742b7c0ab1c
-Author: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
-Date: Tue Jan 31 18:01:32 2017 +0100
-
- rgw/rgw_rados.cc: prefer ++operator for non-primitive iterators
-
- Signed-off-by: Danny Al-Gaaf <danny.al-gaaf@bisect.de>
- (cherry picked from commit 7086cf9a73f2ec1eb96c0e752beb1b74fca18570)
-
-commit 819af9e4139997cd845dc24a137d43218d8a40a8
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Tue Mar 21 12:22:20 2017 +1000
-
- tools/rados: Check return value of connect
-
- Fail gracefully if Rados::connect returns an error.
-
- Fixes: http://tracker.ceph.com/issues/19319
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit c119091ef0844e4a1ddd790a8bfef8f06bb57d58)
-
-commit 72e2476a130e14abcd541ff61328454cb69ad9c3
-Author: Kefu Chai <kchai@redhat.com>
-Date: Mon Mar 6 11:33:27 2017 +0800
-
- brag: count the number of mds in fsmap not in mdsmap
-
- this change was introduced in 4e9b953
-
- Fixes: http://tracker.ceph.com/issues/19192
- Signed-off-by: Peng Zhang <zphj1987@gmail.com>
- (cherry picked from commit 2d25a9c0c760664d3de33ecca0e0272c1031cd46)
-
-commit 3cb192779a1c3662d27bba7715eb31c5f7b6a5b7
-Author: Oleh Prypin <oleh@pryp.in>
-Date: Thu Jun 30 00:51:50 2016 +0300
-
- brag: Assume there are 0 MDS instead of crashing when data is missing
-
- Signed-off-by: Oleh Prypin <oleh@pryp.in>
-
-commit 8bed107b84efdc8c735245cdfb51bfd8d07da13b
-Author: David Disseldorp <ddiss@suse.de>
-Date: Fri Feb 10 19:19:46 2017 +0100
-
- doc: update description of rbdmap unmap[-all] behaviour
-
- Fixes: http://tracker.ceph.com/issues/18884
-
- Signed-off-by: David Disseldorp <ddiss@suse.de>
- (cherry picked from commit f987396e126d5e61240a6645ffed439f79b072b4)
-
-commit da4e0b56c60f4bc2c67daa5dfe4d5255ab8bfc03
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Dec 15 18:23:41 2016 +0100
-
- doc: add verbiage to rbdmap manpage
-
- Fixes: http://tracker.ceph.com/issues/18262
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit fbac4a081547d83bb2436cd60b0b7ee7250f8a6c)
-
-commit 167d4fd7ccf0cdac536f95250bbfa3e9879ab769
-Author: David Disseldorp <ddiss@suse.de>
-Date: Fri Feb 10 17:50:12 2017 +0100
-
- rbdmap: unmap RBDMAPFILE images unless called with unmap-all
-
- When called with a "map" parameter, the rbdmap script iterates the list
- of images present in RBDMAPFILE (/etc/ceph/rbdmap), and maps each entry.
- When called with "unmap", rbdmap currently iterates *all* mapped RBD
- images and unmaps each one, regardless of whether it's listed in the
- RBDMAPFILE or not.
-
- This commit adds functionality such that only RBD images listed in the
- configuration file are unmapped. This behaviour is the new default for
- "rbdmap unmap". A new "unmap-all" parameter is added to offer the old
- unmap-all-rbd-images behaviour, which is used by the systemd service.
-
- Fixes: http://tracker.ceph.com/issues/18884
-
- Signed-off-by: David Disseldorp <ddiss@suse.de>
- (cherry picked from commit e58413abf408cbe254232e563f3e30d2dc0d707c)
-
-commit 39aab763a44e45e025c311cdfff95116df11a4c4
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Dec 15 13:01:02 2016 +0100
-
- Revert "dummy: reduce run time, run user.yaml playbook"
-
- This reverts commit d4e3cec1851ae35889127b90912e133178085bc6.
-
- Fixes: http://tracker.ceph.com/issues/18259
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit a8a2a8c3e68b910dbaeb3186576898bf9f89f9fd)
-
-commit 2e50fe1684f73ebe96969c341242b6f20c8470a0
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Thu Oct 20 15:01:01 2016 -0400
-
- rgw: fix break inside of yield in RGWFetchAllMetaCR
-
- the yield macro is implemented with for/switch, so the breaks in
- RGWFetchAllMetaCR weren't being applied to the for loop as expected -
- so any of these breaks send RGWFetchAllMetaCR into an infinite loop
-
- removed the yield {} block, so that breaks will apply to the for loop as
- intended, then added a single yield; statement to allow the
- entries_index consumer to run one per iteration
-
- Fixes: http://tracker.ceph.com/issues/17655
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 190bd385a7be52867d65740c410884f5c8cbc21f)
-
-commit dc4e7a1a865ea0ae7362c1b6a7a542aa5f72107d
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Mar 3 12:10:40 2017 -0500
-
- rgw: delete_system_obj() fails on empty object name
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 67401193f871db95a6045915fa59dce8c5dd1012)
-
-commit e9a577c8c535702d1eb285429978bdbb395e2d5c
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Fri Mar 3 11:42:45 2017 -0500
-
- rgw: if user.email is empty, dont try to delete
-
- Fixes: http://tracker.ceph.com/issues/18980
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 022ecf0fcc8e44912c8758ee1d9a452dc23cbbce)
-
-commit 90de64bd81fedcb9540e40d50420e169a4a81248
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Mon Mar 20 14:05:17 2017 +0400
-
- jewel: osd/PGLog: reindex properly on pg log split
-
- When PGLog::IndexedLog::split_into runs it builds the list, which means
- the old indices are wrong (point to bad memory), but index() will not
- rebuild them because ever since b858e86 we won't rebuild them if they
- are already built. Fix that by calling unindex() before the split.
-
- Based on 643ae42cf27f16dd6ed4e1402acc0483bb9fca74. Notice that both
- the child and the parent log are re-indexed in Jewel, so the only
- problem is missing unindex().
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit ae498e84ffcff7424721f0d2704ec739d1cc092d
-Author: liuchang0812 <liuchang0812@gmail.com>
-Date: Tue Dec 20 13:21:40 2016 +0800
-
- os/filestore: fix clang static check warn use-after-free
-
- Signed-off-by: liuchang0812 <liuchang0812@gmail.com>
- (cherry picked from commit 1d359455b3dd6abb383542ba596a03f14ac54dbd)
- See: http://tracker.ceph.com/issues/19311
-
- Signed-off-by: yaoning <yaoning@unitedstack.com>
-
-commit 335b5fa4a9694620546422f9a02bdcc16549d7cc
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Feb 2 11:11:35 2017 +0100
-
- rbd-nbd: check /sys/block/nbdX/size to ensure kernel mapped correctly
-
- Fixes: http://tracker.ceph.com/issues/18335
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit 596e5ea8a5df72002672eef0a6d20572ca6f60f0)
-
- Conflicts:
- qa/workunits/rbd/rbd-nbd.sh: the original commit removes
- TOO_LARGE_IMAGE test, do the same thing
- src/tools/rbd_nbd/rbd-nbd.cc: help git to add
- "include/stringify.h"
-
- Other changes:
- src/tools/rbd_nbd/rbd-nbd.cc: #include <fstream> so
- the code compiles
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit ced799f9c6558482d538f8dec854c62162685ad0
-Author: Michal Koutný <mkoutny@suse.com>
-Date: Thu Jan 26 16:08:09 2017 -0500
-
- rgw: Use decoded URI when verifying TempURL
-
- Instead of calliing url_decode directly, we reuse s->decoded_uri that is
- initialized in RGWREST::preprocess().
-
- Fixes: http://tracker.ceph.com/issues/18590
-
- Adapted from 4e1318f4dcbfd64c3ec94f4addf6e38ddd6c013a. Cherry-picking
- that patch requires a quite a number of unrelated changes, hence this
- patch does s/s->info.request_uri/s->decoded_uri/ to keep the fix as
- minimal as possible.
-
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
-
-commit 043d70461c1eb874d9185f9bd671930fad05ff65
-Author: Ilya Dryomov <idryomov@gmail.com>
-Date: Wed Mar 1 17:19:04 2017 +0100
-
- osd/OSDMap: don't set weight to IN when OSD is destroyed
-
- Since commit 4e28f9e63644 ("osd/OSDMap: clear osd_info, osd_xinfo on
- osd deletion"), weight is set to IN when OSD is deleted. This changes
- the result of applying an incremental for clients, not just OSDs.
- Because CRUSH computations are obviously affected, pre-4e28f9e63644
- servers disagree with post-4e28f9e63644 clients on object placement,
- resulting in misdirected requests.
-
- Fixes: http://tracker.ceph.com/issues/19119
- Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
- (cherry picked from commit a6009d1039a55e2c77f431662b3d6cc5a8e8e63f)
-
-commit 6b5322c5f62f4b90c4206c6ddcc70d090fa7eeb9
-Author: Kefu Chai <kchai@redhat.com>
-Date: Tue Mar 7 18:49:46 2017 +0800
-
- osd/ReplicatedPG: try with pool's use-gmt setting if hitset archive not found
-
- due to http://tracker.ceph.com/issues/19185, a hammer OSD could store
- pg_hit_set_info_t with "use-gmt = true" even the pool setting is false.
- so we use the pool setting as a fallback if the hitset archive is not
- found locally and the pool.use_gmt does not match with hitset.use_gmt.
-
- Fixes: http://tracker.ceph.com/issues/19185
- Signed-off-by: Kefu Chai <kchai@redhat.com>
-
- Conflicts:
- osd/ReplicatedPG.cc: This cannot be cherry-picked from master
- because: hammer should upgrade to jewel first before moving to a
- higher version. so there is no necessary to include this workaround
- in releases later than jewel.
-
-commit d30c4d55ad52e2b63fdbd06ce256d92fc3fd36c9
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Thu Feb 16 17:40:50 2017 +0100
-
- doc: rgw: make a note abt system users vs normal users
-
- Mention that system users don't behave like normal users in context of
- normal rest operations
-
- Fixes: http://tracker.ceph.com/issues/18889
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- (cherry picked from commit a47bcf70c9f51a6601b809cba219f5615b204d34)
-
- Conflicts:
- doc/radosgw/multisite.rst (trivial whitespace difference)
-
-commit 5ee8feaba469886f9e3bd3909475ffef62ba261d
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Tue Feb 7 14:37:36 2017 +0530
-
- rgw: Let the object stat command be shown in the usage
-
- Fixes: http://tracker.ceph.com/issues/19013
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
- (cherry picked from commit 0fe76f83d19be098ef54fb0492a376fef3aa9e23)
-
-commit 754b4a482cb0369215beed58103a1e241231cf77
-Author: root <root@ceph-node1.homeoffice.wal-mart.com>
-Date: Tue Feb 21 16:33:29 2017 +0530
-
- rgw: Correct the return codes for the health check feature
- Fixes: http://tracker.ceph.com/issues/19025
- Signed-off-by: Pavan Rallabhandi <PRallabhandi@walmartlabs.com>
-
- (cherry picked from commit 4da2bf310f6d43423554c32e43ebf90ad2c3f3a9)
-
-commit 9cd7dd84909abdb9e603ff3aeb9958cdab8c70ad
-Author: Ronak Jain <ronakjain@outlook.in>
-Date: Wed Feb 22 12:03:46 2017 +0530
-
- rgw: Fixes typo in rgw_admin.cc
-
- Issue: http://tracker.ceph.com/issues/19026
- Signed-off-by: Ronak Jain <ronakjain@outlook.in>
- (cherry picked from commit 58837ef6ce8cbcfc2cac29d5f833b2cf62d8737a)
-
-commit 85fbb00f6ef5f11bc5d615ccd8e2202ce3896fd1
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Feb 27 10:35:01 2017 -0800
-
- rgw: don't init rgw_obj from rgw_obj_key when it's incorrect to do so
-
- Fixes: http://tracker.ceph.com/issues/19096
-
- rgw_obj_key currently deals with the bucket index key, and not
- representing a (name, instance, ns) tupple. Need to initialize
- it in two steps.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 392c5d9dae6ba699014ffe6e1e67818fa62d7e41)
-
-commit ec0668c201a71b4a17ef0ab3c5908f57229aa6ef
-Author: Casey Bodley <cbodley@redhat.com>
-Date: Tue Nov 29 11:29:41 2016 -0500
-
- rgw: fix for broken yields in RGWMetaSyncShardCR
-
- Fixes: http://tracker.ceph.com/issues/18076
-
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit e62d48a9bf2e309eab1a863f167af5267ebcc371)
-
-commit 6afe3efa4b636ede1cd77086cb2e70ed09fa2e95
-Author: Abhishek Lekshmanan <abhishek@suse.com>
-Date: Mon Jul 25 11:21:11 2016 +0200
-
- rgw: kill a compile warning for rgw_sync
-
- killing the compile warning for
-
- ```
- /ceph/src/rgw/rgw_sync.cc:1462:12:
- warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wparentheses]
- if (can_adjust_marker) yield {
- ^
- ```
-
- Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
- Signed-off-by: Casey Bodley <cbodley@redhat.com>
- (cherry picked from commit 831640bb46621a6f003ad562cef7928ffa9a7ad3)
-
-commit 06916a8798439ec033294d791749ce7381d92f51
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Mon Feb 13 23:07:25 2017 +0530
-
- rgw: change log level to 20 for 'System already converted' message
-
- Fixes: http://tracker.ceph.com/issues/18919
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 55b567c767830170d04de4cdc8f10aba30a3f379)
-
-commit 4c1f302f7d71bedb0dead220f17eeb84e7e3f737
-Author: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
-Date: Wed Jan 11 05:28:43 2017 +0800
-
- rgw: the swift container acl should support field .ref
-
- On the openstack-swift. The container acl supports .ref, which is ignored on ceph swift.
-
- Fixes: http://tracker.ceph.com/issues/18484
- Signed-off-by: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
- (cherry picked from commit b06f9cd9f0900db7b0d0fbcaea69cdd0d4b10132)
-
- Conflicts:
- src/rgw/rgw_acl_swift.cc - no extract_referer_urlspec() in jewel
- see https://github.com/ceph/ceph/pull/8657
-
-commit 714eb863c30df4e653068e6ea16630504e58b704
-Author: xie xingguo <xie.xingguo@zte.com.cn>
-Date: Tue Jun 14 19:32:01 2016 +0800
-
- server: negative error code when responding to client
-
- As the comment suggests. Also a zero or positive return code
- shall indicates a success, which does not match our intention here.
-
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 26931f888ce4661765cca106b3a3dc66702266df)
- Signed-off-by: Jan Fajerski <jfajerski@suse.com>
-
-commit 1a4e1e09b1e562bf97cfe96f5cb9f937b6987165
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Dec 13 14:10:58 2016 -0500
-
- librbd: remove image header lock assertions
-
- This assertions can sporadically fail if the watch is lost and
- recovered in the background. Upon a true loss of the lock, the
- client would either be blacklisted or it would have completed
- all in-flight ops before releasing.
-
- Fixes: http://tracker.ceph.com/issues/18244
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit ce4f2a52ec0a794d89e7576b59c9b9aefe3db288)
-
- Conflicts:
- src/librbd/operation/SnapshotCreateRequest.cc: rbd class
- does not support the snapshot namespaces in Jewel, skip
- the corresponding argument
-
-commit cebba011e502f7009208bbddc295eb17f88f1bb9
-Author: Dan van der Ster <daniel.vanderster@cern.ch>
-Date: Fri Dec 9 22:06:26 2016 +0100
-
- os/filestore/HashIndex: be loud about splits
-
- Filestore splits are a rare yet important enough event that an
- OSD should visibly report when they happen.
-
- Without this reporting an operator could spend hours trying to
- understand the cause of any split-induced slow requests.
-
- Fixes: http://tracker.ceph.com/issues/18235
- Signed-off-by: Dan van der Ster <daniel.vanderster@cern.ch>
- (cherry picked from commit 61c47acd3a1f3e01f0106d4a541bb7f28a1301d8)
-
-commit 1d054c3856a63ceebe44f66ff83fda691c374f71
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Mar 2 12:41:07 2017 +0100
-
- build/ops: add psmisc dependency to ceph-base (deb and rpm)
-
- Fixes: http://tracker.ceph.com/issues/19129
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 769b695465162bc8424abf8e2f259e6765b5bbff)
-
- Conflicts:
- debian/control (jewel does not have f11acf2b 7e71cd2c)
-
-commit 6add2a457e2826b71c0e9e82c6f6686cecbc4584
-Author: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
-Date: Fri Nov 25 21:31:22 2016 +0800
-
- rgw: metadata sync info should be shown at master zone of slave zonegroup
-
- When executing 'radosgw-admin sync status', the metadata sync info should be shown on the srceen at master zone of slave zonegroup.
-
- Using the function store->is_meta_master() instead of 'zonegroup.is_master && zone.id == zonegroup.master_zone'
-
- Fixes: http://tracker.ceph.com/issues/18091
- Signed-off-by: Jing Wenjun <jingwenjun@cmss.chinamobile.com>
- (cherry picked from commit c12d0af2f98b246a73cc3ee027449a22192795b3)
-
-commit 0e11a938c5c9acd8a50efa9a154ea3bf21bcafc5
-Author: Boris Ranto <branto@redhat.com>
-Date: Wed Jan 25 12:39:40 2017 +0100
-
- systemd: Start OSDs after MONs
-
- Currently, we start/stop OSDs and MONs simultaneously. This may cause
- problems especially when we are shutting down the system. Once the mon
- goes down it causes a re-election and the MONs can miss the message
- from the OSD that is going down.
-
- Resolves: http://tracker.ceph.com/issues/18516
-
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 7f4acf45dd0d86e7d9992a8c30e5876fb57b1914)
-
- Conflicts:
- systemd/ceph-osd@.service (jewel does not have 4179aa8d)
-
-commit 3bdd4398f1dcad0b7e22f1750ca524b97feca15a
-Author: yaoning <yaoning@unitedstack.com>
-Date: Mon Jun 6 13:31:52 2016 +0800
-
- osd: preserve allocation hint attribute during recovery
-
- Signed-off-by: yaoning <yaoning@unitedstack.com>
- (cherry picked from commit e15be792960da6bac2bd469acf7d30007be61781)
-
- Conflicts:
- src/osd/ReplicatedBackend.cc (in master, it contains alloc_hint_flags for set_alloc_hint)
- src/osd/ReplicatedPG.cc (in master, it contains alloc_hint_flags in object_info_t struct)
- src/osd/osd_types.cc (in master, it contains alloc_hint_flags in message serialization)
- alloc_hint_flags is used in master bluestore, filestore does not use alloc_hint_flags.
- therefore, remove alloc_hint_flags here in jewel
-
- Signed-off-by: yaoning <yaoning@unitedstack.com>
-
-commit 8d0140a9eda814beadf1f59c9b4205f30a1d2e35
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 24 09:24:52 2017 -0500
-
- librbd: improve debug logging for lock / watch state machines
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit cc046597983bd491cc66081cc33d9046264fe24b)
-
- Conflicts:
- NOTE: cherry-picked from kraken commit to avoid conflicts
-
-commit 62ce3461c3b205eaa9062113526cf572184d0a27
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Jan 23 21:24:41 2017 -0500
-
- test: use librados API to retrieve config params
-
- The CephContext object is not ABI-stable, so it is necessary to
- use the "conf_get" librados methods to safely retrieve a setting.
-
- Fixes: http://tracker.ceph.com/issues/18617
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 2ed02f3cd56bf89984c3538ac3f21ec2321cd3b7)
-
- Conflicts:
- src/test/librbd/test_librbd.cc (jewel does not have
- 006138e2d80b779d8c15b141002bb4b3852f6c4a or
- cb3712e08cdc2c37a983b479f4692bbdfe83b220)
-
-commit 01d04e28db7c2969b86df5b38a20b9eb156cf393
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Thu Feb 2 23:23:54 2017 +0100
-
- tests: Thrasher: eliminate a race between kill_osd and __init__
-
- If Thrasher.__init__() spawns the do_thrash thread before initializing the
- ceph_objectstore_tool property, do_thrash races with the rest
- of Thrasher.__init__() and in some cases do_thrash can call kill_osd() before
- Trasher.__init__() progresses much further. This can lead to an exception
- ("AttributeError: Thrasher instance has no attribute 'ceph_objectstore_tool'")
- being thrown in kill_osd().
-
- This commit eliminates the race by making sure the ceph_objectstore_tool
- attribute is initialized before the do_thrash thread is spawned.
-
- Fixes: http://tracker.ceph.com/issues/18799
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit b519d38fb1967628ad8a1c46fcfb3f984de58790)
-
- Conflicts:
- qa/tasks/ceph_manager.py (jewel has only one if statement after
- "self.thread = gevent.spawn(self.do_thrash)" while master has four;
- jewel lacks 66836c957ffd974dec136997e23261ec7de2f0aa which disables
- ceph-objectstore-tool testing in master)
-
-commit 08a667883b68ccc72e3a4bc3013856deef1df93d
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Sat Feb 18 14:33:25 2017 +0100
-
- rpm: build ceph-resource-agents by default
-
- To align with debian build
-
- Fixes: http://tracker.ceph.com/issues/17613
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
- (cherry picked from commit 3e157bf16c3020ac11cb26df5df3ed331faf3c25)
-
-commit d22becab0f2c541584ce891d392760a5c4f1d153
-Author: Yan Jun <yan.jun8@zte.com.cn>
-Date: Thu Jul 14 19:10:29 2016 +0800
-
- msg/simple: cleanups
-
- should save the `errno` which may be changed by `ldout` and/or `<<` operator
-
- Signed-off-by: Yan Jun <yan.jun8@zte.com.cn>
- (cherry picked from commit 91a29bc490fdfbbef0875fa620c7ba1a1a6492ae)
- Signed-off-by: Robin H. Johnson <robin.johnson@dreamhost.com>
-
-commit a18a2dd108678d2e4b57e08b559c1f9a262d6923
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jun 17 13:58:55 2016 +0800
-
- msg/simple: set close on exec on server sockets
-
- mds execv() when handling the "respawn" command, to avoid fd leakage,
- and enormous CLOSE_WAIT connections after respawning, we need to set
- FD_CLOEXEC flag for the socket fds.
-
- Fixes: http://tracker.ceph.com/issues/16390
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit f019ad563ce90f5aea0d8dd8b7b98688441596e0)
-
-commit 91a968b8fc7b363cae351b8648259211a1e71d18
-Author: Kefu Chai <kchai@redhat.com>
-Date: Fri Jun 17 01:17:05 2016 +0800
-
- msg/async: set close on exec on server sockets
-
- mds execv() when handling the "respawn" command, to avoid fd leakage,
- and enormous CLOSE_WAIT connections after respawning, we need to set
- FD_CLOEXEC flag for the socket fds.
-
- Fixes: http://tracker.ceph.com/issues/16390
- Signed-off-by: Kefu Chai <kchai@redhat.com>
- (cherry picked from commit eaf68c724144d07f9506037a14d9192cb9f16d70)
-
- Conflicts:
- src/msg/async/AsyncMessenger.cc: Processor::accept(): applied
- the hunk manually (invoke set_close_on_exec on a socket
- returned by accept)
-
-commit 547e867628975c7144590e9332aa62b0ef82a433
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 5 12:12:57 2017 -0500
-
- librbd: possible deadlock with flush if refresh in-progress
-
- Fixes: http://tracker.ceph.com/issues/18419
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b95f92a5572d3035c20eba07e76d2c825a9853f7)
-
- Conflicts:
- src/librbd/ImageState.h (master commit just adds a function
- declaration, so just add it to jewel as well)
-
-commit 07501dec6f1c70afd4e4c2a50d7f874c39f2220b
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Jan 18 17:02:54 2017 -0600
-
- mon/OSDMonitor: make 'osd crush move ...' work on osds
-
- Currently it only allows you to move buckets, which is annoying and much
- less useful. To move an OSD you need to use create-or-move, which is
- harder to use.
-
- Fixes: http://tracker.ceph.com/issues/18587
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 47956475dea8bb8e07331dd76344a60b776b5158)
-
- Conflicts:
- qa/workunits/mon/crush_ops.sh: adapted "ceph osd find" to jewel syntax
-
-commit 7c6c3c753ccdd3baea834338e1a761f05b4e0a12
-Author: Vikhyat Umrao <vumrao@redhat.com>
-Date: Thu Feb 16 23:51:11 2017 +0530
-
- auth: 'ceph auth import -i' overwrites caps, if caps are not specified
- in given keyring file, should alert user and should not allow this import.
- Because in 'ceph auth list' we keep all the keyrings with caps and importing
- 'client.admin' user keyring without caps locks the cluster with error[1]
- because admin keyring caps are missing in 'ceph auth'.
-
- [1] Error connecting to cluster: PermissionDeniedError
-
- Fixes: http://tracker.ceph.com/issues/18932
-
- Signed-off-by: Vikhyat Umrao <vumrao@redhat.com>
- (cherry picked from commit 90144aa64c11a685b6a7cb3aafea75d427f569be)
-
-commit 8c7a1df251e8289e7cf2df5b3096b91d8640695d
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Feb 14 15:00:09 2017 -0500
-
- osd/PG: restrict want_acting to up+acting on recovery completion
-
- On recovery completion we recalculate want_acting to see if we
- should add recently backfilled osds into acting. However, at
- this point we may have gotten infos from others OSDs outside
- of up/acting that could be used for want_acting. We currently
- assert that only up/acting osds are used in
- PG::RecoveryState::Active::react(const AdvMap&), so we must
- restrict want_acting to up/acting here.
-
- We could remove this restriction, but it would mean
-
- 1) checking on every map change that want_acting hasn't been
- invalidated, and if so, recalculating want_acting and requesting
- a new pg_temp. Also, presumably
-
- 2) on each new info, checking whether we can construct a better
- want_acting, and if so, doing it.
-
- That would be a good thing, but is a more complicated change. In
- reality this case comes up very rarely, so simply make our
- post-recovery want_acting calculation limit itself to up+acting.
-
- See 1db67c443d84dc5d1ff53cc820fdfd4a2128b680 for the assertion.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 0f2dee9aa48a00a7f2f809cd4d20e98df771da81)
-
-commit cfa37d6a1674e3f6f8eef4d8519823a7af70df01
-Author: craigchi <craig10624@gmail.com>
-Date: Thu Feb 16 19:21:48 2017 +0800
-
- ceph-disk: Fix getting wrong group name when --setgroup in bluestore
-
- ceph-disk prepare --setgroup <GROUP NAME> will be wrong when using with
- bluestore
-
- Signed-off-by: craigchi <craig10624@gmail.com>
- (cherry picked from commit a8c0870e7370a0948e8e7fd53d3376b85bf9c649)
-
-commit 2d17092fab8080f819369d74d4c76d8ae58d899b
-Author: Alexey Sheplyakov <asheplyakov@mirantis.com>
-Date: Tue Feb 7 16:47:45 2017 +0400
-
- ceph-osd: --flush-journal: sporadic segfaults on exit
-
- FileStore holds a number of recources like op thread pool and work
- queue, key/value DB threads, etc. These should be properly stopped
- (released) before exiting to avoid segfaults on exit.
-
- Note: more code paths (mkfs, dump_journal, etc) need similar fixes,
- these will be submitted as separate patches.
-
- Fixes: http://tracker.ceph.com/issues/18820
- Signed-off-by: Alexey Sheplyakov <asheplyakov@mirantis.com>
- (cherry picked from commit 00184814c156f6194a6ba4b696073ca1c18a3f8f)
-
- Adjustments:
- - release g_ceph_context in the same way as the main code path does
-
-commit d012c381e8c59994ea9a40dc006d23f1bdd6a026
-Author: Sebastien Ponce <sebastien.ponce@cern.ch>
-Date: Tue May 10 11:27:59 2016 +0200
-
- radosstriper : protect aio_write API from calls with 0 bytes
-
- an assertion was failing so far, while we only have to return without doing anything
-
- Signed-off-by: Sebastien Ponce <sebastien.ponce@cern.ch>
- (cherry picked from commit 7cce1e8c51640f466d8bb37a21c0d5f1b00db8ab)
-
-commit 915dbace5ddea69fff29f7965f213229b6fbc0ac
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jan 17 11:55:00 2017 -0500
-
- osdc: cache should ignore error bhs during trim
-
- A read error (such as injecting a timeout into an OSD op) might result
- in a bh in an error state. These should be trimable by the cache.
-
- Fixes: http://tracker.ceph.com/issues/18436
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5910ed9de9856b5821488a1836487bbbd3d6460e)
-
-commit 419c9926d9ed57cb60228bc95956a9a1471b92cb
-Author: Piotr Dałek <piotr.dalek@corp.ovh.com>
-Date: Tue Jan 31 16:07:18 2017 +0100
-
- OSD: allow client throttler to be adjusted on-fly, without restart
-
- This patch allows the osd_client_message_cap and
- osd_client_message_size_cap to be adjusted on-fly, using admin socket
- functionality.
-
- Fixes: http://tracker.ceph.com/issues/18791
- Signed-off-by: Piotr Dałek <piotr.dalek@corp.ovh.com>
- (cherry picked from commit 64c309d7e18a975931b526e6f5d6f610c3a0d632)
-
- Conflicts:
- src/osd/OSD.cc (suppressed post-jewel option)
-
-commit 957c19b844fb44cde78ad59f872815f82bbf23b8
-Author: Ali Maredia <amaredia@redhat.com>
-Date: Thu Nov 10 13:58:35 2016 -0500
-
- swift: added "--cluster" to rgw-admin command for multisite support
-
- Signed-off-by: Ali Maredia <amaredia@redhat.com>
-
-commit 8423bc1eefa45366bdd215a17c61701c9b05dfdd
-Merge: 6dc30c4140 c078534376
-Author: Andrew Schoen <andrew.schoen@gmail.com>
-Date: Thu Apr 23 14:49:30 2015 -0500
-
- Merge pull request #470 from ceph/wip-remote
-
- Add timeouts to Remote connection functions
-
-commit 6dc30c4140a833fd6cd126f8b5c1eceebad90510
-Merge: d55484f9e5 c078534376
-Author: Andrew Schoen <andrew.schoen@gmail.com>
-Date: Mon Apr 20 12:38:29 2015 -0500
-
- Merge pull request #466 from ceph/wip-11426
-
- Log stderr in get_latest_image_version_deb()
-
-commit d55484f9e562779e7d47a8f63ff029337dc01eef
-Merge: c078534376 cd72cf2b31
-Author: Dan Mick <dan.mick@redhat.com>
-Date: Wed Apr 15 10:30:46 2015 -0700
-
- Merge pull request #462 from ceph/wip-ssh-keys
-
- When modifying authorized_keys, store a backup
-
-commit c078534376d594aa3bf70d1d2e5dfc09ca8ae248
-Merge: cd72cf2b31 fce2ed683f
-Author: Zack Cerza <zack@cerza.org>
-Date: Tue Apr 14 11:38:15 2015 -0600
-
- Merge pull request #460 from zhouyuan/mkdir_p
-
- Make parent directories as needed
-
-commit cd72cf2b3132e7c6371aa4dbfe7564ad3ad0509e
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Nov 24 09:59:30 2014 -0800
-
- swift: set full access to subusers creation
-
- Default subuser permissions are 'none'.
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
-
-commit fce2ed683fcd3798db968a40200f8e8f215595fa
-Author: Zack Cerza <zack.cerza@inktank.com>
-Date: Wed Aug 6 10:06:34 2014 -0600
-
- Remove most ceph-specific tasks. They are in ceph-qa-suite now.
-
- Signed-off-by: Zack Cerza <zack.cerza@inktank.com>
-
-commit fac452ae55594aea482db5c13a0bd0207b6ecff6
-Author: Zack Cerza <zack@cerza.org>
-Date: Thu Mar 27 11:35:28 2014 -0500
-
- Revert "Lines formerly of the form '(remote,) = ctx.cluster.only(role).remotes.keys()'"
-
- This reverts commit d693b3f8950ffd1f2492a4db0f8234fee31f00f0.
-
-commit e98b107302e06fa5c3c628a7ab0e7455de9ab568
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Fri Feb 28 19:13:40 2014 -0800
-
- Lines formerly of the form '(remote,) = ctx.cluster.only(role).remotes.keys()'
- and '(remote,) = ctx.cluster.only(role).remotes.iterkeys()' would fail with
- ValueError and no message if there were less than 0 or more than 1 key.
- Now a new function, get_single_remote_value() is called which prints out
- more understandable messages.
-
- Fixes: 7510
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
-
-commit e5fe884edfec66cc7e520938bd520aa8f1344f85
-Merge: 8e2cdbf5ed f8bf53c4fe
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Wed Feb 19 16:40:17 2014 -0500
-
- Merge pull request #186 from ceph/wip-7369
-
- Fix #7369: "sed expression must be raw string"
-
-commit 8e2cdbf5ede871ebde260e6bdaec13daae03cfc5
-Merge: 132f3e8ae6 f8bf53c4fe
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 14 14:59:04 2014 -0600
-
- Merge pull request #188 from ceph/wip-calamari-onefile
-
- Add Calamari test tasks, test script
-
-commit 132f3e8ae664a35cad89896b7300be13b5c604ec
-Merge: 24363351c3 7b63876676
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 14 11:50:55 2014 -0600
-
- Merge pull request #192 from ceph/wip-6537-wusui
-
- Readjust the indentation of mon_clock_skew_check.py and mon_thrash.py.
-
-commit 24363351c3b1d23a8d6ef4e3f952855415f97ba8
-Merge: 4eb147291f 7b63876676
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 14 11:45:51 2014 -0600
-
- Merge pull request #194 from ceph/wip-6534-wusui
-
- Add docstrings to internal.py
-
-commit 4eb147291fccdb2164a46e977ee43dbf50894e5a
-Merge: ad9aaf8fa3 f4284b520a
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 14 11:45:19 2014 -0600
-
- Merge pull request #193 from ceph/wip-6538-wusui
-
- Add doc strings to Swift tests
-
-commit ad9aaf8fa35d49c33373fa69df7b38d3aca6abc5
-Merge: 7b63876676 f8bf53c4fe
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Feb 14 11:43:15 2014 -0600
-
- Merge pull request #187 from ceph/wip-better-debug
-
- Debug output improvements
-
-commit f4284b520a554b1cbe130731741e53a7fcf4e35f
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Thu Feb 13 21:11:34 2014 -0800
-
- Add doc strings to Swift tests
-
- Fixes: 6538
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
-
-commit 7b63876676f1a6845ba3b9147cf7bb2348ef2468
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Tue Feb 11 20:21:06 2014 -0800
-
- Add docstrings to s3 related tasks.
-
- Fixes: 6536
- Signed-off-by: Warren Usui <warren.usui@inktank.com>
-
-commit f8bf53c4fe52009abdf730b05e2cb2ddbb412dea
-Author: Zack Cerza <zack@cerza.org>
-Date: Tue Sep 24 14:19:24 2013 -0500
-
- Fix namespace collision
-
-commit db6efe3e0ba7446ca42baf2a50eef18a10cf4a10
-Merge: 611733c8b5 66555a4039
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Tue Sep 24 08:17:22 2013 -0700
-
- Merge pull request #106 from ceph/wip-mirror
-
- Remove lots of ceph.com hardcoding; default to upstream sources
-
-commit 66555a4039c61db9b96d6eecf8d2f298c98b6bad
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Sep 20 15:53:58 2013 -0500
-
- Don't hardcode the git://ceph.com/git/ mirror
-
- Default to https://github.com/ceph/ but add a ~/teuthology.yaml option
-
-commit 611733c8b5ea55206df50c122efac612cb146c2f
-Merge: 2346f1d735 6e8a3807c7
-Author: Sage Weil <sage@inktank.com>
-Date: Fri Sep 6 13:24:34 2013 -0700
-
- Merge pull request #78 from ceph/wip-6247
-
- Move helper scripts to /usr/local/bin to clean up logs.
-
-commit 6e8a3807c766f728027c3099eebfa24cdc645bd1
-Author: Zack Cerza <zack@cerza.org>
-Date: Fri Sep 6 15:08:01 2013 -0500
-
- Helper scripts live in /usr/local/bin now!
-
-commit 2346f1d735ccb40d00b8ff61d4acb446f684b3b2
-Author: Joe Buck <jbbuck@gmail.com>
-Date: Fri Aug 23 19:54:53 2013 -0700
-
- s3tests: extend for multi-region tests
-
- Added code to the s3tests task to extract
- multi-region info so that that data
- can be added to the S3TEST_CONF file
- used to run S3 tests.
-
- Signed-off-by: Joe Buck <jbbuck@gmail.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit d3b6d633e161bc422f4781c7be5011f8a7ed8a32
-Merge: 442a36c57c 09b01b27a3
-Author: Alfredo Deza <alfredo@deza.pe>
-Date: Mon Aug 19 14:10:18 2013 -0700
-
- Merge pull request #41 from ceph/wip-3791
-
- Various usability and documentation fixes
-
-commit 442a36c57c3173b36ce17e5f85a49abf7e80ea93
-Merge: 09b01b27a3 9b2c4fa4ad
-Author: wusui <warren.usui@inktank.com>
-Date: Fri Aug 16 14:47:59 2013 -0700
-
- Merge pull request #40 from ceph/wip-teutharm-wusui
-
- Wip teutharm wusui
-
-commit 09b01b27a3a1310d4257133def60896ad37fb575
-Author: Zack Cerza <zack@cerza.org>
-Date: Thu Aug 15 08:49:35 2013 -0500
-
- Fix some instances where print is being used instead of log
-
-commit 9b2c4fa4ad4c4258b26526afb0c16c71ce47f593
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed Jul 31 13:32:58 2013 -0700
-
- s3/swift tests: call radosgw-admin as the right client
-
- This allows the right region and zone info to be read from ceph.conf
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 3b3816df58a3ba1f2f850faf8969ad070aa0046e
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Thu Jul 25 16:47:34 2013 -0700
-
- s3tests: clone correct branch
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit f5170fb460a2183aed33122b4e6d0117a4220fec
-Merge: 7207a31e58 bd56af707a
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Thu Jul 25 19:50:39 2013 -0700
-
- Merge branch 'master' of github.com:ceph/teuthology
-
-commit 7207a31e5812dd0b29f2d6378360015622ddf4aa
-Merge: bd56af707a 3da945512e
-Author: Sandon Van Ness <sandon@inktank.com>
-Date: Thu Jul 25 19:50:02 2013 -0700
-
- Merge remote-tracking branch 'origin/wip-sandon-vm'
-
- Conflicts:
- teuthology/lock.py
- teuthology/misc.py
- teuthology/task/install.py
-
-commit bd56af707ae50c98ec46344cf57eb333061847b1
-Merge: 3da945512e 343a42c0d8
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Fri Jul 19 14:44:51 2013 -0700
-
- Merge branch 'wip-centos-rgw'
-
-commit 343a42c0d86af5b8630a30716c03fc84ba22f944
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Jul 9 18:50:52 2013 -0700
-
- s3tests: fix client configurations that aren't dictionaries
-
- They're always used as dictionaries later on.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 3da945512ed78081be5dbe9ba59c836a311e1973
-Merge: 2c34d1971f 253cc98d98
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Jun 24 16:18:36 2013 -0700
-
- Merge pull request #15 from ceph/wip-ulimits
-
- Reviewed-by: Warren Usui <warren.usui@inktank.com>
-
-commit 253cc98d98855d65be7ebcdd46a39aa1004f8e67
-Author: Sage Weil <sage@inktank.com>
-Date: Sun Jun 23 09:15:28 2013 -0700
-
- enable-coredump -> adjust-ulimits
-
- and set max_files to be big, too!
-
-commit 2c34d1971f1e82311b364bf8efe60b223158d676
-Merge: 61dba20d1f b366ad334a
-Author: Warren Usui <warren.usui@inktank.com>
-Date: Tue May 7 19:27:51 2013 -0700
-
- Merge branch 'wip-teuth4768a-wusui'
-
- Conflicts:
- teuthology/task/install.py
-
-commit 61dba20d1fce774eac5b56f0d61d4229460875c0
-Merge: a9f3eb6310 5a7267f85c
-Author: Sage Weil <sage@inktank.com>
-Date: Mon May 6 21:31:36 2013 -0700
-
- Merge branch 'next'
-
-commit a9f3eb631064931cbdde7ef218c16e154bdb9991
-Author: Sage Weil <sage@inktank.com>
-Date: Thu May 2 13:47:46 2013 -0700
-
- s3tests: add force-branch with higher precdence than 'branch'
-
- This way we can force a branch despite something in overrides.
-
- Signed-off-by: Sage Weil <sage@inktank.com>
-
-commit b366ad334af55867ba781e22c8f87b6ac7775bf2
-Merge: 2a51e32891 5a7267f85c
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Wed May 1 09:52:02 2013 -0700
-
- Merge remote branch 'origin/next'
-
-commit 5a7267f85c80f88aca1b0081b07de1de3909f2e7
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 30 17:07:53 2013 -0700
-
- fix some errors found by pyflakes
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit f866037f045887ccc5da15404935ce3361a74a08
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 30 13:23:22 2013 -0700
-
- s3tests: revert useless portion of 1c50db6a4630d07e72144dafd985c397f8a42dc5
-
- Perhaps it was attempting to debug something, but it shouldn't have been committed.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 2dcce57c00264b85cfb906223dfb89db9cc61ba5
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 30 16:49:04 2013 -0700
-
- rgw tests: remove users after each test
-
- These should all be cleanup up at some point. They're
- almost all the same code.
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 3c604251d9014dba45f3adbb2008bac16ff6346d
-Author: Josh Durgin <josh.durgin@inktank.com>
-Date: Tue Apr 30 16:47:34 2013 -0700
-
- rgw tests: clean up immediately after the test
-
- There's no need for an explicit cleanup function, so move it back
- to where it came from (except in s3roundtrip, which did not have it).
-
- Instead, since these use a nested contextmanager, pass through
- and yield to the top-level run_tasks after the nested
- contextmanager has finished (and thus run all the cleanup steps
- in the subtasks for this test).
-
- Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 022bd4aa42312b80917169282cbfba655bbad6f1
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Tue Apr 30 07:06:03 2013 -0700
-
- swift, s3readwrite: add missing yield
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 820c72b8d0177b01f69887ec64d98702db37077c
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Apr 29 11:24:04 2013 -0700
-
- s3tests, s3readwrite, swift: cleanup explicitly
-
- Cleaning up test dir explicitly after run, so that
- consecutive runs don't fail.
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 2a51e328913f16917a881129b475a4aeeab24ed0
-Merge: cccadb9b03 617534e769
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Wed Feb 20 14:10:50 2013 -0800
-
- Merge remote-tracking branch 'origin/wip-3634'
-
-commit cccadb9b03ca4421a5fd841a61bf252c329e3649
-Merge: 3eb19c8107 fa1f89478a
-Author: Sage Weil <sage@inktank.com>
-Date: Tue Feb 19 21:04:24 2013 -0800
-
- Merge branch 'unstable'
-
- Conflicts:
- teuthology/task/workunit.py
-
-commit fa1f89478a76373cb33cf2524e2ebf68b3cd622c
-Author: Sander Pool <sander.pool@inktank.com>
-Date: Wed Feb 6 19:16:52 2013 +0000
-
- Install ceph debs and use installed debs
-
- The ceph task installs ceph using the debian
- packages now, and all invocations of binaries installed
- in {tmpdir}/binary/usr/local/bin/ are replace with
- the use of the binaries installed in standard locations
- by the debs.
-
- Author: Sander Pool <sander.pool@inktank.com>
- Signed-off-by: Sam Lang <sam.lang@inktank.com>
-
-commit 3eb19c810725b011baacdb8a6f5b172f4720a39a
-Author: Sam Lang <sam.lang@inktank.com>
-Date: Wed Jan 23 14:37:39 2013 -0600
-
- Replace /tmp/cephtest/ with configurable path
-
- Teuthology uses /tmp/cephtest/ as the scratch test directory for
- a run. This patch replaces /tmp/cephtest/ everywhere with a
- per-run directory: {basedir}/{rundir} where {basedir} is a directory
- configured in .teuthology.yaml (/tmp/cephtest if not specified),
- and {rundir} is the name of the run, as given in --name. If no name
- is specified, {user}-{timestamp} is used.
-
- To get the old behavior (/tmp/cephtest), set test_path: /tmp/cephtest
- in .teuthology.yaml.
-
- This change was modivated by #3782, which requires a test dir that
- survives across reboots, but also resolves #3767.
-
- Signed-off-by: Sam Lang <sam.lang@inktank.com>
- Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-
-commit 2f829870e140c87b30e5b7aa3ad237a90dcb2179
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Fri Dec 21 10:20:02 2012 -0800
-
- task/swift: change upstream repository url
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 334d6386753510c312898552c6f92313942786ef
-Merge: b8e6ce4db9 26df886d82
-Author: Joao Eduardo Luis <jecluis@gmail.com>
-Date: Thu Nov 29 00:53:59 2012 +0000
-
- Merge branch 'wip-mon-thrasher'
-
-commit b8e6ce4db9a603ce3523b1759c65eeadee55daa7
-Author: Sage Weil <sage@inktank.com>
-Date: Thu Nov 22 13:59:58 2012 -0800
-
- s3tests: fix typo
-
-commit 26df886d825e28c25b630887b8dcc1c8c6d687d8
-Author: Yehuda Sadeh <yehuda@inktank.com>
-Date: Mon Nov 19 16:19:06 2012 -0800
-
- rgw-logsocket: a task to verify opslog socket works
-
- Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
-
-commit 617534e76978acb09a9f925f18bba475a65a7dd2
-Author: Sage Weil <sage@inktank.com>
-Date: Mon Sep 10 11:08:57 2012 -0700
-
- s3tests: run against arbitrary branch/sha1 of s3-tests.git
-
-commit 7d5c7ee8c6f2bfedd193a8d3b7102b4cfe0bf74f
-Author: Sage Weil <sage@newdream.net>
-Date: Wed Jun 6 16:00:55 2012 -0700
-
- pull s3-tests.git using git, not http
-
-commit ce951cf4caffd5d6883cc8dcd24372bcdf03690a
-Author: Sage Weil <sage@newdream.net>
-Date: Sat May 5 09:30:41 2012 -0700
-
- ceph.newdream.net -> ceph.com
-
-commit 2b879905fcfd660e242ed1a804d1c8301d17ab84
-Merge: 1ac4bb10fc 1970713a2f
-Author: Mark Nelson <nhm@clusterfaq.org>
-Date: Wed Mar 14 15:32:23 2012 -0500
-
- Merge branch 'master' of github.com:ceph/teuthology
-
-commit 1970713a2fc43e3afae376712356ca93a65d9e1f
-Author: Sage Weil <sage@newdream.net>
-Date: Fri Mar 2 10:55:19 2012 -0800
-
- github.com/NewDreamNetwork -> github.com/ceph
-
-commit 1ac4bb10fc4b7d8d07c44b0e92b1627c721ab925
-Author: Josh Durgin <josh.durgin@dreamhost.com>
-Date: Tue Feb 21 14:54:33 2012 -0800
-
- Add necessary imports for s3 tasks, and keep them alphabetical.
-
-commit 92110e5a4460281139233dcea3f629d01182d398
-Author: Yehuda Sadeh <yehuda.sadeh@dreamhost.com>
-Date: Tue Feb 21 12:12:03 2012 -0800
-
- rgw: access key uses url safe chars
-
- Signed-off-by: Yehuda Sadeh <yehuda.sadeh@dreamhost.com>
-
-commit 709d9441127fec93da74c7702cafa54a47e10e8f
-Author: Sage Weil <sage@newdream.net>
-Date: Sun Jan 15 22:48:33 2012 -0800
-
- use local mirrors for (most) github urls
-
- A cronjob on ceph.newdream.net updates these every 15 minutes. Sigh.
-
-commit 9598e47949ba65030c722947dc433e38875b1bd6
-Author: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-Date: Mon Dec 5 10:07:25 2011 -0800
-
- Rename "testrados" and "testswift" tasks to not begin with "test".
-
- Anything "test*" looks like a unit test, and shouldn't be used for
- actual code.
-
-commit 6236e7db22edac7b51fc6329188b6afa74f3fc78
-Author: Yehuda Sadeh <yehuda.sadeh@dreamhost.com>
-Date: Thu Nov 17 16:53:21 2011 -0800
-
- testswift: fix config
-
-commit 1dd607cabb07126769b4beb1ba6677e21c448719
-Author: Yehuda Sadeh <yehuda.sadeh@dreamhost.com>
-Date: Wed Nov 16 16:00:01 2011 -0800
-
- rgw: add swift task
-
- still not completely working (for some reason it skips all the tests)
-
-commit cb425c158085568cd92c239a071e282c74eddf1a
-Author: Greg Farnum <gregory.farnum@dreamhost.com>
-Date: Fri Sep 30 09:26:42 2011 -0700
-
- s3-tests: use radosgw-admin instead of radosgw_admin
-
- Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
-
-commit 37d7d515345ab04c333d6fada722e432e5816eb3
-Author: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-Date: Fri Sep 16 11:09:45 2011 -0700
-
- s3tests: Clone repository from github.
-
- Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-
-commit 29a242d97dd4a5a9110710027cdddb244b8b0e29
-Author: Tommi Virtanen <tv@eagain.net>
-Date: Tue Sep 13 14:53:02 2011 -0700
-
- Move orchestra to teuthology.orchestra so there's just one top-level package.
-
-commit ec49a5f263f71aa473257e3fd49d86e475fe9456
-Author: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-Date: Fri Sep 9 13:22:03 2011 -0700
-
- Callers of task s3tests.create_users don't need to provide dummy "fixtures" dict.
-
-commit d7d995e82b45e6077040b467c8ef9a82a573faf7
-Author: Stephon Striplin <stephon.striplin@dreamhost.com>
-Date: Tue Aug 9 13:43:46 2011 -0700
-
- allow s3tests.create_users defaults be overridden
-
-commit 0086109767d5bfbbc370ca13d3fe91895b207821
-Author: Josh Durgin <josh.durgin@dreamhost.com>
-Date: Thu Jul 14 16:47:29 2011 -0700
-
- Make targets a dictionary mapping hosts to ssh host keys.
-
-commit 1b2c96416f554c0890b2690291b9a2dc8a6dc17a
-Author: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-Date: Wed Jul 6 14:17:24 2011 -0700
-
- Skip s3-tests marked fails_on_rgw, they will fail anyway.
-
-commit 06fb9b95e39985630d89e1635dcd12510686d9cd
-Author: Tommi Virtanen <tommi.virtanen@dreamhost.com>
-Date: Tue Jul 5 09:27:28 2011 -0700
-
- The shell exits after the command, hence there is no need for pushd/popd.
-
-commit cd524a6904bf8254edc73a9148308f642638e33d
-Author: Josh Durgin <josh.durgin@dreamhost.com>
-Date: Fri Jun 24 17:09:47 2011 -0700
-
- Add s3tests task.
diff --git a/src/ceph/doc/changelog/v10.2.9.txt b/src/ceph/doc/changelog/v10.2.9.txt
deleted file mode 100644
index 551f268..0000000
--- a/src/ceph/doc/changelog/v10.2.9.txt
+++ /dev/null
@@ -1,63 +0,0 @@
-commit 2ee413f77150c0f375ff6f10edd6c8f9c7d060d0
-Author: Jenkins Build Slave User <ceph-release-team@redhat.com>
-Date: Thu Jul 13 13:04:57 2017 +0000
-
- 10.2.9
-
-commit 9295f588535c45431d19b9601b4063c8de88752d
-Merge: 7b10d629ae fef1c8718f
-Author: Nathan Cutler <presnypreklad@gmail.com>
-Date: Thu Jul 13 10:31:31 2017 +0200
-
- Merge pull request #16282 from smithfarm/wip-20599-jewel
-
- jewel: cephfs: Damaged MDS with 10.2.8
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit fef1c8718f77c190a0908d353f38b16b7c3832ab
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 12 08:40:20 2017 +0200
-
- Revert "osdc/Journaler: make header write_pos align to boundary of flushed entry"
-
- This reverts commit 2e299b50de4a297fee2aec21290632336d239857.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 3f89971e9edb88e313e1c190f7d05a83b52e6d91
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Wed Jul 12 08:40:13 2017 +0200
-
- Revert "osdc/Journaler: avoid executing on_safe contexts prematurely"
-
- This reverts commit 06cf9f365033f7913051bdf4060f0bc6fc0444d7.
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 7b10d629ae32122b267486fe9e176f5cd0e330cf
-Merge: f5b1f1fd7c 6b479c275a
-Author: Sage Weil <sage@newdream.net>
-Date: Tue Jul 11 15:58:04 2017 -0500
-
- Merge pull request #16273 from smithfarm/wip-jewel-pending-release-notes
-
- jewel: doc: clarify status of jewel PendingReleaseNotes
-
-commit 6b479c275a24451c278074d81758a385eca12869
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jul 11 22:53:56 2017 +0200
-
- doc: zero PendingReleaseNotes in preparation for v10.2.9
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
-
-commit 55de93f9d711e13980168cc884dcb04d8849708e
-Author: Nathan Cutler <ncutler@suse.com>
-Date: Tue Jul 11 22:27:33 2017 +0200
-
- doc: clarify status of jewel PendingReleaseNotes
-
- Status as of 10.2.8 release
-
- Signed-off-by: Nathan Cutler <ncutler@suse.com>
diff --git a/src/ceph/doc/changelog/v9.2.1.txt b/src/ceph/doc/changelog/v9.2.1.txt
deleted file mode 100644
index cdd9e95..0000000
--- a/src/ceph/doc/changelog/v9.2.1.txt
+++ /dev/null
@@ -1,1637 +0,0 @@
-commit 752b6a3020c3de74e07d2a8b4c5e48dab5a6b6fd (tag: refs/tags/v9.2.1)
-Author: Jenkins Build Slave User <jenkins-build@jenkins-slave-wheezy.localdomain>
-Date: Wed Feb 24 22:07:26 2016 +0000
-
- 9.2.1
-
-commit 71f380a81c6870466e11a74a597f847494ba23e9
-Merge: 8350215 b0c9176
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 11 22:32:53 2016 +0700
-
- Merge pull request #7484 from dillaman/wip-14610-infernalis
-
- librbd: flattening an rbd image with active IO can lead to hang
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 83502159f5b94139784b908dd4e4bdf1d420e62a
-Merge: f5e33cd 46ed443
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 11 22:32:41 2016 +0700
-
- Merge pull request #7406 from dillaman/wip-14542-infernalis
-
- librbd: ImageWatcher shouldn't block the notification thread
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit f5e33cd348532b4ed911f49240a5da0c6859a9ad
-Merge: a474c09 389ed34
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 11 22:32:25 2016 +0700
-
- Merge pull request #6981 from dillaman/wip-14062-infernalis
-
- librbd: fix merge-diff for >2GB diff-files
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit b0c91768d4ac81baaf9b5edec92adad91ade9b64
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 23 12:06:50 2015 -0500
-
- librbd: ensure librados callbacks are flushed prior to destroying image
-
- Fixes: #14092
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 98157ab3274bd960e4487e34f5a83e9c921a6ac8)
-
-commit f3987367920368cbce865533cf11a1eb207fb9c7
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jul 30 22:31:55 2015 -0400
-
- librbd: simplify IO flush handling
-
- Add a new convenience method to ImageCtx for handling flush
- requests and cleanup flush handling with dealing with the cache.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (based on commit ee7c6f73992d3b09c6b401fbb782b2151f2399c7)
-
-commit da772fa88db47703d491ebaa9bd709e62858b3b0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Aug 14 13:28:13 2015 -0400
-
- WorkQueue: PointerWQ drain no longer waits for other queues
-
- If another (independent) queue was processing, drain could
- block waiting. Instead, allow drain to exit quickly if
- no items are being processed and the queue is empty for
- the current WQ.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit b118d7df1e34387b6e5649a5b205cf061598d0d4)
-
-commit 5593e57c1b1c198e95a636ffdda4922259582a5f
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Feb 2 10:54:53 2016 -0500
-
- test: new librbd flatten test case
-
- AIO operations after a flatten operation were previously
- hanging during the close of the parent image.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5b3a4d2cbca51e5c6795ba7d1189920c7d9af806)
-
-commit 46ed443bf674c50a04705597f1caa4882c1ca5b3
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 14:38:20 2016 -0500
-
- librbd: ImageWatcher shouldn't block the notification thread
-
- Blocking the notification thread will also result in librados async
- callbacks becoming blocked (since they use the same thread).
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 6f94bde44500cc4592ac9a842cbb150b8cabf96b)
-
- Conflicts:
- src/librbd/ImageWatcher.[cc|h]: fewer RPC messages and synchronous
- snapshot actions
-
-commit 2be722a3e944436deff7a8ae513e22b02fd31237
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 14:35:54 2016 -0500
-
- librados_test_stub: watch/notify now behaves similar to librados
-
- Notifications are executed via the same librados AIO callback
- thread, so it's now possible to catch deadlock.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 0a3822f1559ba3fe3def6a65883b9c6c7c5a33fe)
-
-commit 8990ee87c9d943f01de68e772da213dc7aad9011
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Thu Jan 28 12:40:18 2016 -0500
-
- tests: simulate writeback flush during snap create
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 5e564ea9f869b987f3ada2465edfbe5edf9f6435)
-
-commit 389ed3462f6377d48d87a0e0952061585b0ea106
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Dec 18 15:22:13 2015 -0500
-
- librbd: fix merge-diff for >2GB diff-files
-
- Fixes: #14062
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (derived from commit 68125dd01349edf93cfa1af5028c2d438b5ae089)
-
-commit a474c096a3084ef9f8453e76cebff49e4649d4ea
-Merge: 4c04050 0f50439
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Feb 11 13:59:30 2016 +0700
-
- Merge pull request #6629 from Abhishekvrshny/wip-13733-infernalis
-
- rbd: misdirected op in rbd balance-reads test
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 4c04050379e5d8d8512dc51df6b0ecbd1e37dcd7
-Merge: 1aa60f6 29d30ec
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 10 13:00:23 2016 +0700
-
- Merge pull request #7431 from Abhishekvrshny/wip-14067-infernalis
-
- infernalis : Ceph file system is not freeing space
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit 1aa60f6680195a557ce81eeabc6794b4c84d87b1
-Merge: 4dc9791 7fd56ea
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 10 12:59:30 2016 +0700
-
- Merge pull request #7429 from Abhishekvrshny/wip-14490-infernalis
-
- infernalis: fsx failed to compile
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 4dc97912b6003069bc1582caf18bbc702a8864be
-Merge: 2bfc75a a2644ed
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 10 12:57:48 2016 +0700
-
- Merge pull request #6853 from Abhishekvrshny/wip-13889-infernalis
-
- infernalis: Segmentation fault accessing file using fuse mount
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit 2bfc75a0c32685f1151c923a2d84a29549b89ec9
-Merge: e71d062 6c68971
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 10 12:57:09 2016 +0700
-
- Merge pull request #6752 from ukernel/infernalis-11482
-
- mds: fix client capabilities during reconnect (client.XXXX isn't responding to mclientcaps warning)
-
- Reviewed-by: Yan, Zheng <zyan@redhat.com>
-
-commit e71d0629caaf0d639efdc9f081bcc2aa8ce156e1
-Merge: 6552eeb 58b43e6
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Feb 10 12:53:34 2016 +0700
-
- Merge pull request #6628 from Abhishekvrshny/wip-13792-infernalis
-
- rbd-replay-* moved from ceph-test-dbg to ceph-common-dbg as well
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 6552eeb2c687e5c7eb8ffbed942f6d99b1c969f9
-Merge: e507a5f 7a44714
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Feb 9 11:58:19 2016 +0700
-
- Merge pull request #7079 from Abhishekvrshny/wip-14199-infernalis
-
- infernalis: [ FAILED ] TestLibRBD.SnapRemoveViaLockOwner
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit e507a5f90f5ec857359a985b28c64d3cb6366bc4
-Merge: 930ef94 83bba36
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Feb 9 11:58:01 2016 +0700
-
- Merge pull request #7080 from Abhishekvrshny/wip-14142-infernalis
-
- infernalis: Verify self-managed snapshot functionality on image create
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 930ef9462ad1d5a92225f2b83ef797b37e22aeba
-Merge: 1061db6 8175e16
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Feb 9 11:57:37 2016 +0700
-
- Merge pull request #7428 from Abhishekvrshny/wip-14321-infernalis
-
- infernalis: cls_rbd: object_map_save should enable checksums
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 1061db6ba16955ef2f3fa49dfed461872b970614
-Merge: 2de6016 2c5b90a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 22:23:18 2016 +0700
-
- Merge pull request #7427 from Abhishekvrshny/wip-14465-infernalis
-
- infernalis: rbd-replay does not check for EOF and goes to endless loop
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 2de60165dd76ece7dc84326e2721d61cde05e004
-Merge: a8d147e f870ba9
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 22:23:01 2016 +0700
-
- Merge pull request #7426 from Abhishekvrshny/wip-14552-infernalis
-
- infernalis: rbd: TaskFinisher::cancel should remove event from SafeTimer
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit a8d147e813d157855f65e271569cedb0ac95a72d
-Merge: 77a26d8 fde4ec6
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:49:41 2016 -0500
-
- Merge pull request #6397 from SUSE/wip-13615-infernalis
-
- OSD::build_past_intervals_parallel() shall reset primary and up_primary when begin a new past_interval.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 77a26d8e7bdb4f351c90a61e8ac87b251294a461
-Merge: cea356a af2ced5
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:49:17 2016 -0500
-
- Merge pull request #6840 from SUSE/wip-13791-infernalis
-
- Objecter: potential null pointer access when do pool_snap_list.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit cea356a959ed410a6094140c9d03852e968ab7a8
-Merge: 5469e99 5ef86d7
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:48:49 2016 -0500
-
- Merge pull request #6851 from Abhishekvrshny/wip-14018-infernalis
-
- infernalis: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started)
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5469e9904ccc170d282d061308f6694e20ef8946
-Merge: ba4583f 7ac5b15
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:48:25 2016 -0500
-
- Merge pull request #6849 from Abhishekvrshny/wip-13979-infernalis
-
- osd: call on_new_interval on newly split child PG
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit ba4583f3a25a0d01d31e82cdfcd2be414a5648ae
-Merge: fbd96c8 b211686
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:48:03 2016 -0500
-
- Merge pull request #6907 from Abhishekvrshny/wip-13929-infernalis
-
- infernalis: Ceph Pools' MAX AVAIL is 0 if some OSDs' weight is 0
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit fbd96c8a49548a4cd6598c700111ac8b1be7b1d3
-Merge: cef8fc3 73564ac
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:47:36 2016 -0500
-
- Merge pull request #7421 from Abhishekvrshny/wip-14494-infernalis
-
- infernalis: pgs stuck inconsistent after infernalis upgrade
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit cef8fc305e2c52a09b4af9e5a54c3c4117325453
-Merge: 15c27ce 2647c20
-Author: Sage Weil <sage@redhat.com>
-Date: Mon Feb 8 08:46:25 2016 -0500
-
- Merge pull request #6627 from Abhishekvrshny/wip-13771-infernalis
-
- Objecter: pool op callback may hang forever.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 15c27ce7328baf92ca904e1b92aa8e21b8452263
-Merge: d1da031 2b6d817
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 18:18:07 2016 +0700
-
- Merge pull request #7543 from SUSE/wip-14676-infernalis
-
- infernalis: rgw: radosgw-admin --help doesn't show the orphans find command
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit d1da03131acf735946c3a0deab72d8f7da9e44d8
-Merge: 22e0c6a 1665f81
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:22:28 2016 +0700
-
- Merge pull request #6993 from badone/wip-13993-infernalis
-
- log: Log.cc: Assign LOG_DEBUG priority to syslog calls
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 22e0c6a7388af5e3b3a085ef7f3e2ad162d2c0f8
-Merge: 489a13d e102e5a
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:21:11 2016 +0700
-
- Merge pull request #6882 from dachary/wip-13988-reuse-osd-id-infernalis
-
- tests: verify it is possible to reuse an OSD id
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 489a13d4dd4483937dd7bd7798cb6e7d1dbd240c
-Merge: de01ba4 7d90c01
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:18:35 2016 +0700
-
- Merge pull request #6852 from Abhishekvrshny/wip-14013-infernalis
-
- infernalis: systemd/ceph-disk@.service assumes /bin/flock
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit de01ba4ea2df67e5b732d6e71cdf324642becbd2
-Merge: b5427f4 5d1e6ae
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:16:23 2016 +0700
-
- Merge pull request #6846 from Abhishekvrshny/wip-13638-infernalis
-
- FileStore: potential memory leak if getattrs fails.
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit b5427f466eb8507dc865d80d0e3293652452f558
-Merge: 5dbd998 ac31f7f
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:14:18 2016 +0700
-
- Merge pull request #6836 from SUSE/wip-13891-infernalis
-
- infernalis: auth/cephx: large amounts of log are produced by osd
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 5dbd9984e09f3c520c69a406f98577bfdcd9b220
-Merge: 2016468 c968a40
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:12:47 2016 +0700
-
- Merge pull request #6833 from SUSE/wip-13935-infernalis
-
- infernalis: Ceph daemon failed to start, because the service name was already used.
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 201646882e2c05d2e2436f62b7bfb50a6466aa54
-Merge: b09670f edde13c
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:12:00 2016 +0700
-
- Merge pull request #6694 from xiexingguo/xxg-wip-13869
-
- osd: fix race condition during send_failures
-
- Reviewed-by: David Zafman <dzafman@redhat.com>
- Reviewed-by: Sage Weil <sage@redhat.com>
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
- Reviewed-by: Kefu Chai <kchai@redhat.com>
-
-commit b09670fea2ff844333c654fb73046dd1596fb2e3
-Merge: 59df52d 4d2a135
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:09:30 2016 +0700
-
- Merge pull request #6626 from Abhishekvrshny/wip-13655-infernalis
-
- crush: crash if we see CRUSH_ITEM_NONE in early rule step
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 59df52df1697ee8dccb39430940e683a7bdab275
-Merge: f8f36b6 0eb2ddb
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Feb 8 11:06:41 2016 +0700
-
- Merge pull request #6449 from dachary/wip-13671-infernalis
-
- tests: testprofile must be removed before it is re-created
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit 2b6d817187265686d21de76db14870ff22d549de
-Author: Yehuda Sadeh <yehuda@redhat.com>
-Date: Mon Feb 1 16:33:55 2016 -0800
-
- rgw-admin: document orphans commands in usage
-
- Fixes: #14516
-
- Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
- (cherry picked from commit 105a76bf542e05b739d5a03ca8ae55432350f107)
-
-commit f8f36b6877c0d0d356d1c53a171d5a1a0be423b0
-Merge: 7ffe6ff 399b7c5
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Feb 4 16:23:51 2016 -0500
-
- Merge pull request #6880 from dachary/wip-14044-infernalis
-
- infernalis: ceph-disk list fails on /dev/cciss!c0d0
-
-commit 7ffe6ff4e26db538335b8069ce4fd14fe4cdd76c
-Merge: a8fd5ba 8707b0b
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 29 09:05:14 2016 -0500
-
- Merge pull request #6392 from SUSE/wip-13589-infernalis
-
- mon: should not set isvalid = true when cephx_verify_authorizer retur…
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit a8fd5ba7764b941aeb8a8ec2867a7e212159c84d
-Merge: 1296c2b 1bfb6f7
-Author: Sage Weil <sage@redhat.com>
-Date: Fri Jan 29 08:55:45 2016 -0500
-
- Merge pull request #6500 from SUSE/wip-13678-infernalis
-
- systemd: no rbdmap systemd unit file
-
-commit 29d30ecd4667567a58a7f92641a8a7618e88fd44
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Thu Nov 12 21:57:27 2015 +0800
-
- mds: properly set STATE_STRAY/STATE_ORPHAN for stray dentry/inode
-
- Fixes: #13777
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 460c74a0b872336a7279f0b40b17ed672b6e15a1)
-
-commit 5f54671e0715781146044e2d38ba79ad03634a64
-Author: John Spray <john.spray@redhat.com>
-Date: Mon Nov 16 10:57:56 2015 +0000
-
- mon: don't require OSD W for MRemoveSnaps
-
- Use ability to execute "osd pool rmsnap" command
- as a signal that the client should be permitted
- to send MRemoveSnaps too.
-
- Note that we don't also require the W ability,
- unlike Monitor::_allowed_command -- this is slightly
- more permissive handling, but anyone crafting caps
- that explicitly permit "osd pool rmsnap" needs to
- know what they are doing.
-
- Fixes: #13777
- Signed-off-by: John Spray <john.spray@redhat.com>
- (cherry picked from commit 0b474c52abd3d528c041544f73b1d27d7d1b1320)
-
-commit 7fd56eaf215753156bdb6481835f399ad303faf0
-Author: Greg Farnum <gfarnum@redhat.com>
-Date: Wed Jan 13 13:17:53 2016 -0800
-
- fsx: checkout old version until it compiles properly on miras
-
- I sent a patch to xfstests upstream at
- http://article.gmane.org/gmane.comp.file-systems.fstests/1665, but
- until that's fixed we need a version that works in our test lab.
-
- Signed-off-by: Greg Farnum <gfarnum@redhat.com>
- (cherry picked from commit 7d52372ae74878ebd001036ff0a7aad525eb15b6)
-
-commit 8175e163fceb2bdc49ca291e183c08575e6c5d18
-Author: Douglas Fuller <dfuller@redhat.com>
-Date: Thu Jan 7 11:01:19 2016 -0800
-
- cls_rbd: enable object map checksums for object_map_save
-
- object_map_save disables CRCs when an object map footer isn't provided.
- Unconditionally re-enable object map CRCs before re-encoding the new object
- map.
-
- Fixes: #14280
- Signed-off-by: Douglas Fuller <dfuller@redhat.com>
- (cherry picked from commit d5c02f3ed26edec095d45d7a7f26ff26d1b5aacc)
-
-commit 2c5b90a268ebcdcd8c806ef72c08184cc4e0417a
-Author: Mykola Golub <mgolub@mirantis.com>
-Date: Thu Jan 21 13:45:42 2016 +0200
-
- rbd-replay: handle EOF gracefully
-
- Fixes: #14452
- Signed-off-by: Mykola Golub <mgolub@mirantis.com>
- (cherry picked from commit c59b84c3e2c9bbda68219e4d2288a889dd9ca6cb)
-
-commit f870ba9ab41cac127d182a52f435c7adc628de71
-Author: Douglas Fuller <dfuller@redhat.com>
-Date: Fri Jan 22 11:18:40 2016 -0800
-
- rbd: remove canceled tasks from timer thread
-
- When canceling scheduled tasks using the timer thread, TaskFinisher::cancel
- does not call SafeTimer::cancel_event, so events fire anyway. Add this call.
-
- Fixes: #14476
- Signed-off-by: Douglas Fuller <dfuller@redhat.com>
- (cherry picked from commit 2aa0f318c862dbe3027d74d345671506605778eb)
-
-commit 73564ac22319d158d4bade9ab1a3832a9669d099
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Sep 24 11:38:41 2015 -0400
-
- osd/PG: For performance start scrub scan at pool to skip temp objects
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 05d79faa512210b0f0a91640d18db33b887a6e73)
-
-commit 2480fca93beb700aa9a963f5b568ab6bf8915e0f
-Author: David Zafman <dzafman@redhat.com>
-Date: Fri Dec 18 09:08:19 2015 -0800
-
- osd/OSD: clear_temp_objects() include removal of Hammer temp objects
-
- Fixes: #13862
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 10b4a0825d9917b6fdd0d6450640238b78ba05d4)
-
-commit 9ff90acc3efdb1c5bdd23c8658e8692f2879231e
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 17 18:04:08 2015 -0800
-
- osd: Improve log message which isn't about a particular shard
-
- Remove redundant dout()
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit e85907fcc582922925609f595f68c597a88c39dc)
-
-commit 1296c2baef3412f462ee2124af747a892ea8b7a9
-Merge: 9dc5e6c d4c41d0
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Jan 13 17:15:41 2016 -0800
-
- Merge pull request #7225 from dillaman/wip-13810-infernalis
-
- tests: notification slave needs to wait for master
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit d4c41d041b7b176723ccd548102a9d2edf91956e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Jan 13 12:44:01 2016 -0500
-
- tests: notification slave needs to wait for master
-
- If the slave instance starts before the master, race
- conditions are possible.
-
- Fixes: #13810
- Backport: infernalis, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3992d6fe67bbf82322cedc1582406caaf6d4de60)
-
-commit e102e5a0e261f407913c5d47991c2549f6664ffc
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Dec 10 15:20:32 2015 +0100
-
- tests: verify it is possible to reuse an OSD id
-
- When an OSD id is removed via ceph osd rm, it will be reused by the next
- ceph osd create command. Verify that and OSD reusing such an id
- successfully comes up.
-
- http://tracker.ceph.com/issues/13988 Refs: #13988
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7324615bdb829f77928fa10d4e988c6422945937)
-
-commit 399b7c5409d9801aa7f38533dd8b7c19c726a594
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jan 5 17:33:45 2016 +0100
-
- ceph-disk: list accepts absolute dev names
-
- The ceph-disk list subcommand now accepts /dev/sda as well as sda.
- The filtering is done on the full list of devices instead of restricting
- the number of devices explored. Always obtaining the full list of
- devices makes things simpler when trying to match a dmcrypted device to
- the corresponding raw device.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 591d581c84cfd72d7c655ac88b0911a318b96e95)
-
- Conflicts:
- src/ceph-disk: as part of the implementation of deactivate /
- destroy in master, the prototype of list_device was changed
- to take a list of paths instead of the all arguments (args).
-
-commit e222d7bce218b732025ce094ed2d1bb31af0d6f6
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jan 5 14:25:51 2016 +0100
-
- ceph-disk: display OSD details when listing dmcrypt devices
-
- The details about a device that mapped via dmcrypt are directly
- available. Do not try to fetch them from the device entry describing the
- devicemapper entry.
-
- http://tracker.ceph.com/issues/14230 Fixes: #14230
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 7aab4ed6f108ddc7bc90300f1999a38f30da3a57)
-
- Conflicts:
- src/ceph-disk: an incorrect attempt was made to fix the same
- problem. It was not backported and does not
- need to be. It is entirely contained in the
- code block removed and is the reason for the
- conflict.
-
-commit 87db693eb7d52ad297e8d265ffffa0d7e1125478
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 9 16:52:10 2015 +0100
-
- tests: limit ceph-disk unit tests to test dir
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 499c80db606fe3926a8a603e03fdba6967d66003)
-
-commit 2c0d7ef2c72b7570a1304cad927a0b612ea3d4a8
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jan 5 17:38:59 2016 +0100
-
- ceph-disk: factorize duplicated dmcrypt mapping
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 35a0c94c4cd3a57cfc382c64eaa9cfb9306dd2e6)
-
-commit 22881b1686dc040d8af01c66f59a935065bb680a
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Jan 5 17:42:11 2016 +0100
-
- ceph-disk: fix regression in cciss devices names
-
- The cciss driver has device paths such as /dev/cciss/c0d1 with a
- matching /sys/block/cciss!c0d1. The general case is that whenever a
- device name is found in /sys/block, the / is replaced by the !.
-
- When refactoring the ceph-disk list subcommand, this conversion was
- overlooked in a few places. All explicit concatenation of /dev with a
- device name are replaced with a call to get_dev_name which does the same
- but also converts all ! in /.
-
- http://tracker.ceph.com/issues/13970 Fixes: #13970
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit a2fd3a535e66b3a2b694cda9c6add33383ccfa4a)
-
- Conflicts:
- src/ceph-disk : trivial resolution
-
-commit 9dc5e6cbf85681d0fb9ab249c571672456eb6556
-Merge: 64fab4f 5798d1e
-Author: Loic Dachary <loic@dachary.org>
-Date: Thu Jan 7 15:06:32 2016 +0100
-
- Merge pull request #7001 from dachary/wip-14145-infernalis
-
- infernalis: ceph-disk: use blkid instead of sgdisk -i
-
-
- On CentOS 7.1 and other operating systems with a version of udev greater or equal to 214,
- running ceph-disk prepare triggered unexpected removal and addition of partitions on
- the disk being prepared. That created problems ranging from the OSD not being activated
- to failures because /dev/sdb1 does not exist although it should.
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit 5798d1e76c380182472d08ec6f62ebe0f1a9897e
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Jan 6 23:36:57 2016 +0100
-
- tests: ceph-disk cryptsetup close must try harder
-
- Similar to how it's done in dmcrpyt_unmap in master (
- 132e56615805cba0395898cf165b32b88600d633 ), the infernalis tests helper
- that were deprecated by the addition of the deactivate / destroy
- ceph-disk subcommand must try cryptsetup close a few times in some
- contexts.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
-
-commit 379bbe0613e8dbe2f4d38f4f9ee23a10ed39a64d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Sat Dec 19 00:53:03 2015 +0100
-
- ceph-disk: protect deactivate with activate lock
-
- When ceph-disk prepares the disk, it triggers udev events and each of
- them ceph-disk activate. If systemctl stop ceph-osd@2 happens while
- there still are ceph-disk activate in flight, the systemctl stop may be
- cancelled by the systemctl enable issued by one of the pending ceph-disk
- activate.
-
- This only matters in a test environment where disks are destroyed
- shortly after they are activated.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 6395bf856b4d4511f0758174ef915ebcafbe3777)
-
- Conflicts:
-
- src/ceph-disk: ceph-disk deactivate does not exist in ceph-disk
- on infernalis. But the same feature is implemented in
- ceph-test-disk.py for test purposes and has the same
- problem. The patch is adapted to ceph-test-disk.py.
-
-commit 4da2f9494dbd72e84d381cc12125c61931a27628
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Jan 6 11:15:19 2016 +0100
-
- ceph-disk: retry cryptsetup remove
-
- Retry a cryptsetup remove ten times. After the ceph-osd terminates, the
- device is released asyncrhonously and an attempt to cryptsetup remove
- will may fail because it is considered busy. Although a few attempts are
- made before giving up, the number of attempts / the duration of the
- attempts cannot be controlled with a cryptsetup option. The workaround
- is to increase this by trying a few times.
-
- If cryptsetup remove fails for a reason that is unrelated to timeout,
- the error will be repeated a few times. There is no undesirable side
- effect. It will not hide a problem.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 132e56615805cba0395898cf165b32b88600d633)
-
-commit 676a4b42267133a9242a81503f7dd0eaeb0afd33
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Dec 18 17:03:21 2015 +0100
-
- ceph-disk: use blkid instead of sgdisk -i
-
- sgdisk -i 1 /dev/vdb opens /dev/vdb in write mode which indirectly
- triggers a BLKRRPART ioctl from udev (starting version 214 and up) when
- the device is closed (see below for the udev release note). The
- implementation of this ioctl by the kernel (even old kernels) removes
- all partitions and adds them again (similar to what partprobe does
- explicitly).
-
- The side effects of partitions disappearing while ceph-disk is running
- are devastating.
-
- sgdisk is replaced by blkid which only opens the device in read mode and
- will not trigger this unexpected behavior.
-
- The problem does not show on Ubuntu 14.04 because it is running udev <
- 214 but shows on CentOS 7 which is running udev > 214.
-
- git clone git://anonscm.debian.org/pkg-systemd/systemd.git
- systemd/NEWS:
- CHANGES WITH 214:
-
- * As an experimental feature, udev now tries to lock the
- disk device node (flock(LOCK_SH|LOCK_NB)) while it
- executes events for the disk or any of its partitions.
- Applications like partitioning programs can lock the
- disk device node (flock(LOCK_EX)) and claim temporary
- device ownership that way; udev will entirely skip all event
- handling for this disk and its partitions. If the disk
- was opened for writing, the close will trigger a partition
- table rescan in udev's "watch" facility, and if needed
- synthesize "change" events for the disk and all its partitions.
- This is now unconditionally enabled, and if it turns out to
- cause major problems, we might turn it on only for specific
- devices, or might need to disable it entirely. Device Mapper
- devices are excluded from this logic.
-
- http://tracker.ceph.com/issues/14080 Fixes: #14080
-
- Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 9dce05a8cdfc564c5162885bbb67a04ad7b95c5a)
-
-commit bb8d53636d3a433bb7752e3a291a86a8af058215
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 16 15:57:03 2015 +0100
-
- ceph-disk: dereference symlinks in destroy and zap
-
- The behavior of partprobe or sgdisk may be subtly different if given a
- symbolic link to a device instead of an actual device. The debug output
- is also more confusing when the symlink shows instead of the device it
- points to.
-
- Always dereference the symlink before running destroy and zap.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit fe71647bc9bd0f9ddc6d470ee7bee1e6b0983e2b)
-
- Conflicts:
- src/ceph-disk
- trivial, because destroy is not implemented
- in infernalis
-
-commit 74c27423f4925c7a31d6675851ffa3d2f5265ef1
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 16 12:33:25 2015 +0100
-
- ceph-disk: increase partprobe / udevadm settle timeouts
-
- The default of 120 seconds may be exceeded when the disk is very slow
- which can happen in cloud environments. Increase it to 600 seconds
- instead.
-
- The partprobe command may fail for the same reason but it does not have
- a timeout parameter. Instead, try a few times before failing.
-
- The udevadm settle guarding partprobe are not necessary because
- partprobe already does the same. However, partprobe does not provide a
- way to control the timeout. Having a udevadm settle after another is
- going to be a noop most of the time and not add any delay. It matters
- when the udevadm settle run by partprobe fails with a timeout because
- partprobe will silentely ignores the failure.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 730b5d62d3cda7de4076bafa6e9e35f1eb8e2190)
-
-commit 263eb579ac7179a19157004ed2de294085dc4a63
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 16 12:36:47 2015 +0100
-
- tests: ceph-disk workunit increase verbosity
-
- So that reading the teuthology log is enough in most cases to figure out
- the cause of the error.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit fd7fe8c4977658f66651dad5efb0d816ae71b38b)
-
- Conflicts:
- qa/workunits/ceph-disk/ceph-disk-test.py:
- trivial, because destroy/deactivate are not implemented
- in infernalis. The existing destroy_osd function
- has to be modified so the id returned by sh() does
- not have a trailing newline.
-
-commit 936dda76ce11baa9f2b7cce882b655550188a731
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 16 12:30:20 2015 +0100
-
- ceph-disk: log parted output
-
- Should parted output fail to parse, it is useful to get the full output
- when running in verbose mode.
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit f5d36b9ac299e9f6d52cc32d540cc1c3342de6e7)
-
-commit db26cc4b7fbd5b6f2a3da58fb7ac7736fc058065
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Wed Dec 16 12:29:17 2015 +0100
-
- ceph-disk: do not discard stderr
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 5fa35ba10e10b56262757afc43929ab8ee4164f2)
-
- Conflicts:
- src/ceph-disk : trivial, because destroy/deactivate
- are not implemented in infernalis
-
-commit 83bba36afbae58ebe7cea2b0fb8ff51edb475fff
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 14 17:49:55 2015 -0500
-
- tests: new integration test for validating new RBD pools
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 00cfe4efacd664032f700afe9701d41bacf8700a)
-
-commit 96cb5e2888e698879f3d3663dfa6f556e983a555
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Dec 14 17:41:49 2015 -0500
-
- librbd: optionally validate RBD pool configuration (snapshot support)
-
- Fixes: #13633
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 1fea4dadc60e13518e9ee55d136fbc4e9d3a621e)
-
-commit 7a44714b66218cf39aa6e1673059a13729c7c39e
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 23 13:26:39 2015 -0500
-
- librbd: properly handle replay of snap remove RPC message
-
- Fixes: #14164
- Backport: infernalis
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit bc309d9d7612f005a3d50ecf099ddf9b706a1bf6)
-
-commit 64fab4f080c5b7d79b51b8db8c71428b507efec5
-Merge: f480cea 7676343
-Author: Josh Durgin <jdurgin@redhat.com>
-Date: Wed Dec 23 10:47:30 2015 -0800
-
- Merge pull request #7038 from dillaman/wip-14121-infernalis
-
- tests: rebuild exclusive lock test should acquire exclusive lock
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 7676343c781e9c15e18c5960d221a29840835332
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Wed Dec 23 10:31:07 2015 -0500
-
- tests: rebuild exclusive lock test should acquire exclusive lock
-
- Starting with Jewel, the object map will not be loaded until the
- exclusive lock is acquired since it might be updated by the
- lock owner.
-
- Fixes: #14121
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 1665f8187b16c9b47238743a7a94f0850160eb71
-Author: Brad Hubbard <bhubbard@redhat.com>
-Date: Mon Dec 7 11:31:28 2015 +1000
-
- log: Log.cc: Assign LOG_DEBUG priority to syslog calls
-
- Fixes: #13993
- Signed-off-by: Brad Hubbard <bhubbard@redhat.com>
- (cherry picked from commit 8e93f3f45db681f82633ca695a7dc4e7bd030584)
-
-commit b211686dddf35d990c07ea50b868b98ac3abf8d3
-Author: Chengyuan Li <chengyli@ebay.com>
-Date: Thu Nov 19 22:29:39 2015 -0700
-
- mon/PGMonitor: MAX AVAIL is 0 if some OSDs' weight is 0
-
- In get_rule_avail(), even p->second is 0, it's possible to be used
- as divisor and quotient is infinity, then is converted to an integer
- which is negative value.
- So we should check p->second value before calculation.
-
- It fixes BUG #13840.
-
- Signed-off-by: Chengyuan Li <chengyli@ebay.com>
- (cherry picked from commit 18713e60edd1fe16ab571f7c83e6de026db483ca)
-
-commit f480cea217008fa7b1e476d30dcb13023e6431d1
-Merge: d3aaeae 34d0b69
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Wed Dec 9 11:22:26 2015 +0530
-
- Merge pull request #6395 from SUSE/wip-13593-infernalis
-
- Ceph-fuse won't start correctly when the option log_max_new in ceph.conf set to zero
-
- Reviewed-by: Greg Farnum <gfarnum@redhat.com>
-
-commit d3aaeae1884a26b6a069c6926ebe9cea62625850
-Merge: 476af49 ebc5e4e
-Author: Loic Dachary <loic@dachary.org>
-Date: Wed Dec 9 00:06:33 2015 +0100
-
- Merge pull request #6828 from dachary/wip-ceph-disk-augeas
-
- tests: ceph-disk workunit uses configobj
-
- Reviewed-by: Loic Dachary <ldachary@redhat.com>
-
-commit ebc5e4ee46dce9ab17208cdebc31ae5cc8c7e828
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Oct 22 01:48:31 2015 +0200
-
- tests: ceph-disk workunit uses the ceph task
-
- The ceph-disk workunit deploy keys that are not deployed by default by
- the ceph teuthology task.
-
- The OSD created by the ceph task are removed from the default
- bucket (via osd rm) so they do not interfere with the tests.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 163de5b0f8f46695ab41b3f2288e9b5c1feaedab)
-
-commit 0afaeb243448819dfce0de2778c27015a46e195a
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Thu Oct 22 00:21:49 2015 +0200
-
- tests: ceph-disk workunit uses configobj
-
- Instead of using augtool to modify the configuration file, use
- configobj. It is also used by the install teuthology task. The .ini
- lens (puppet lens really) is unable to read ini files created by
- configobj.
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit f4906a124cc194dccd855679a04a5c7ffc125a44)
-
-commit a2644ed52c4b8a075919866af9d333fa1f703644
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Mon Nov 9 11:37:02 2015 +0800
-
- client: use null snapc to check pool permission
-
- snap inodes' ->snaprealm can be NULL, so dereferencing it in
- check_pool_perm() can cause segment fault. The pool permission
- check does not write any data, so it's safe to use null snapc.
-
- Fixes: #13714
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit fad3772fb7731272d47cbfd9e81f22f5df3701a2)
-
-commit 476af491ba03843e953dd257ad972f09c64dd816
-Merge: af86215 54c8af8
-Author: Loic Dachary <loic@dachary.org>
-Date: Tue Dec 8 09:34:39 2015 +0100
-
- Merge pull request #6845 from dachary/wip-14019-infernalis
-
- infernalis: libunwind package missing on CentOS 7
-
- Reviewed-by: Brad Hubbard <bhubbard@redhat.com>
-
-commit 7d90c018e5cfec982f96ce6dd45b6f89218f441d
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Dec 4 21:11:09 2015 +0100
-
- build/ops: systemd ceph-disk unit must not assume /bin/flock
-
- The flock command may be installed elsewhere, depending on the
- system. Let the PATH search figure that out.
-
- http://tracker.ceph.com/issues/13975 Fixes: #13975
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit c8f7d44c935bd097db7d131b785bdab78a7a650c)
-
-commit 5ef86d78f86c8feeae5bade408ce03bd3b86573c
-Author: David Zafman <dzafman@redhat.com>
-Date: Thu Dec 3 14:52:24 2015 -0800
-
- osd: Test osd_find_best_info_ignore_history_les config in another assert
-
- Signed-off-by: David Zafman <dzafman@redhat.com>
- (cherry picked from commit 02a9a41f151a3d968bf8066749658659dc6e3ac4)
-
-commit 7ac5b151224f618e2f81387f74b1b7c3159c2b43
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Dec 2 14:50:28 2015 -0500
-
- osd: call on_new_interval on newly split child PG
-
- We must call on_new_interval() on any interval change *and* on the
- creation of the PG. Currently we call it from PG::init() and
- PG::start_peering_interval(). However, PG::split_into() did not
- do so for the child PG, which meant that the new child feature
- bits were not properly initialized and the bitwise/nibblewise
- debug bit was not correctly set. That, in turn, could lead to
- various misbehaviors, the most obvious of which is scrub errors
- due to the sort order mismatch.
-
- Fixes: #13962
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit fb120d7b2da5715e7f7d1baa65bfa70d2e5d807a)
-
-commit 5d1e6ae408ee0d9e2972b3de9f81b6a95e86a0a3
-Author: xiexingguo <258156334@qq.com>
-Date: Mon Oct 26 18:38:01 2015 +0800
-
- FileStore: potential memory leak if _fgetattrs fails
-
- Memory leak happens if _fgetattrs encounters some error and simply returns.
- Fixes: #13597
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit ace7dd096b58a88e25ce16f011aed09269f2a2b4)
-
-commit 54c8af80c6e253d13993931d55720c8da99a2b2c
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Dec 8 08:02:56 2015 +0100
-
- build/ops: enable CR in CentOS 7
-
- To get libunwind from the CR repositories until CentOS 7.2.1511 is released.
-
- http://tracker.ceph.com/issues/13997 Fixes: #13997
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit 247ee6084b58861da601d349bdba739b252d96de)
-
-commit af2ced594699f95f2dcafd82fa15ca480fa844eb
-Author: xiexingguo <258156334@qq.com>
-Date: Mon Nov 2 21:46:11 2015 +0800
-
- Objecter: remove redundant result-check of _calc_target in _map_session.
-
- Result-code check is currently redundant since _calc_target never returns a negative value.
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit 5a6117e667024f51e65847f73f7589467b6cb762)
-
-commit 43dede3144f98de16f8373f376e716f2f73b6f82
-Author: xiexingguo <258156334@qq.com>
-Date: Thu Oct 29 17:32:50 2015 +0800
-
- Objecter: potential null pointer access when do pool_snap_list.
-
- Objecter: potential null pointer access when do pool_snap_list. Shall check pool existence first.
- Fixes: #13639
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
- (cherry picked from commit 865541605b6c32f03e188ec33d079b44be42fa4a)
-
-commit ac31f7f8ac168e27b5a33093832aab3bfc97f667
-Author: qiankunzheng <zheng.qiankun@h3c.com>
-Date: Thu Nov 5 07:29:49 2015 -0500
-
- auth/cephx: large amounts of log are produced by osd
- if the auth of osd is deleted when the osd is running, the osd will produce large amounts of log.
-
- Fixes:#13610
- Signed-off-by: Qiankun Zheng <zheng.qiankun@h3c.com>
- (cherry picked from commit 102f0b19326836e3b0754b4d32da89eb2bc0b03c)
-
-commit c968a40dfb0a0412d1feb7f8f085c8293b42bf4d
-Author: wangchaunhong <root@A22832429.(none)>
-Date: Tue Oct 20 18:40:23 2015 +0800
-
- init-ceph: fix systemd-run cant't start ceph daemon sometimes
-
- Fixes: #13474
- Signed-off-by: Chuanhong Wang <wang.chuanhong@zte.com.cn>
- (cherry picked from commit 2f36909e1e08bac993e77d1781a777b386335669)
-
-commit 0eb2ddb0adf39ef167012e85317e3cfdddf34598
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Tue Nov 3 00:21:51 2015 +0100
-
- tests: test/librados/test.cc must create profile
-
- Now that the create_one_ec_pool function removes the testprofile each
- time it is called, it must create the testprofile erasure code profile
- again for the test to use.
-
- http://tracker.ceph.com/issues/13664 Refs: #13664
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit a60342942b5a42ee04d59af77a6b904ce62eefc4)
-
-commit 26adf7a3536d7fe5b3a04866e37a4e6afac08509
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Nov 2 20:24:51 2015 +0100
-
- tests: destroy testprofile before creating one
-
- The testprofile erasure code profile is destroyed before creating a new
- one so that it does not fail when another testprofile erasure code
- profile already exists with different parameters.
-
- This must be done when creating erasure coded pools with the C++
- interface, in the same way it's done with the C interface.
-
- http://tracker.ceph.com/issues/13664 Fixes: #13664
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit 47abab9a6f182aa0abe5047c04402850379bcd6d)
-
-commit c3619f4c1ba16e3d0959c78865ee4218e911da39
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Mon Nov 2 20:23:52 2015 +0100
-
- tests: add destroy_ec_profile{,_pp} helpers
-
- Signed-off-by: Loic Dachary <ldachary@redhat.com>
- (cherry picked from commit ab46d79bc09fc711fa35302f49eecac81a98519b)
-
-commit 1bfb6f767357fcd7ea424fc17b799fb2c171cf80
-Author: Boris Ranto <branto@redhat.com>
-Date: Mon Nov 2 14:07:47 2015 +0100
-
- rbdmap: systemd support
-
- Fixes: #13374
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit 9224ac2ad25f7d017916f58b642c0ea25305c3e5)
-
-commit 4eded389eea931fd9cdb0b9700c022088e8825ec
-Author: Boris Ranto <branto@redhat.com>
-Date: Fri Oct 30 18:33:36 2015 +0100
-
- rbdmap: Move do_map and do_unmap shell functions to rbdmap script
-
- This patch creates rbdmap shell script that is called from init-rbdmap
- init script. The patch also renames src/rbdmap configuration file to
- src/etc-rbdmap so that rbdmap shell script can be installed via build
- system directly. Finally, the patch accomodates these changes in spec
- file and build system.
-
- Fixes: #13374
- Signed-off-by: Boris Ranto <branto@redhat.com>
- (cherry picked from commit c0980af3c72f01e6f99fd1e7e91c446934d6d856)
-
- Conflicts:
- src/init-rbdmap
- Trivial resolution.
-
-commit 6c68971d1cfc27d30f92a83119e922180b389b43
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Oct 30 21:04:04 2015 +0800
-
- mds: consider client's flushing caps when choosing lock states
-
- Client may flush and drop caps at the same time. If client need to
- send cap reconnect before the caps get flushed. The issued caps in
- the cap reconnect does not include the flushing caps. When choosing
- lock states, MDS only consider the issued caps in cap reconnect, it
- may choose wrong states.
-
- Fixes: #11482
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit ce9a596dcaf95dd4af0a3a9e28871462a6bcb930)
-
-commit 3fcf905dd65d6db514d403e2829b039df7bd9645
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Oct 30 17:28:02 2015 +0800
-
- client: cancel revoking caps when reconnecting the mds
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 9ab61b2779740d9038b169da0de616b89b07b813)
-
-commit 7e8706bada034ce428716963a5e3151723f83126
-Author: Yan, Zheng <zyan@redhat.com>
-Date: Fri Oct 30 17:21:11 2015 +0800
-
- mds: choose EXCL state for filelock when client has Fb capability
-
- Signed-off-by: Yan, Zheng <zyan@redhat.com>
- (cherry picked from commit 655ae79dd266dfd488aff67642aceab4ab383d01)
-
-commit af86215e0b178340055ff6ec7c8ec3b3c0bd1acf
-Merge: 899ff61 497c1f0
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Tue Dec 1 17:44:24 2015 +0530
-
- Merge pull request #6634 from Abhishekvrshny/wip-13761-infernalis
-
- unknown argument --quiet in udevadm settle
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 899ff6160a289dfeb5c287afa8d9b168e11382ed
-Merge: f2b323a fdb5dbd
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:56:40 2015 +0530
-
- Merge pull request #6650 from Abhishekvrshny/wip-13830-infernalis
-
- init script reload doesn't work on EL7
-
- Reviewed-by: Boris Ranto <branto@redhat.com>
-
-commit f2b323a69bb54ee99743bf53043d6a4e21e2a0bb
-Merge: 5c02e2b effaf26
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:55:55 2015 +0530
-
- Merge pull request #6477 from SUSE/wip-13705-infernalis
-
- rbd : enable feature objectmap
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit 5c02e2bd78782f1ea19836806d3773748be66ed1
-Merge: ed8ac03 c2e7fe9
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:55:22 2015 +0530
-
- Merge pull request #6474 from SUSE/wip-13619-infernalis
-
- rbd clone issue
-
- Reviewed-by: Jason Dillaman <dillaman@redhat.com>
-
-commit ed8ac030a979ca9fb2cbf340c316c4432e54cd0d
-Merge: 1551c1b ad84753
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:54:44 2015 +0530
-
- Merge pull request #6633 from Abhishekvrshny/wip-13759-infernalis
-
- rbd: pure virtual method called
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit 1551c1be297cfc73457819c7c983b113ac9c86f6
-Merge: b8000d6 83c3880
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:54:18 2015 +0530
-
- Merge pull request #6632 from Abhishekvrshny/wip-13756-infernalis
-
- QEMU hangs after creating snapshot and stopping VM
-
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit b8000d6f489af3e13c4996b46363c3884ccfd0de
-Merge: fc6f21a 74cb593
-Author: Abhishek Varshney <Abhishekvrshny@users.noreply.github.com>
-Date: Mon Nov 30 21:50:40 2015 +0530
-
- Merge pull request #6630 from Abhishekvrshny/wip-13754-infernalis
-
- Avoid re-writing old-format image header on resize
- Reviewed-by: Josh Durgin <jdurgin@redhat.com>
-
-commit fc6f21a1d3ff34b4ff522ef03b368b3ad4570a1c
-Merge: bb2ecea a2c6a21
-Author: Loic Dachary <loic@dachary.org>
-Date: Mon Nov 30 15:01:23 2015 +0100
-
- Merge pull request #6396 from SUSE/wip-13342-infernalis
-
- ceph upstart script rbdmap.conf incorrectly processes parameters
-
- Reviewed-by: Sage Weil <sage@redhat.com>
-
-commit edde13ce55d0789523a3101e5f435fc61bef5d69
-Author: Sage Weil <sage@redhat.com>
-Date: Thu Sep 17 21:42:53 2015 -0400
-
- osd: fix send_failures() locking
-
- It is unsafe to check failure_queue.empty() without the lock.
- Fixes: #13869
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit b3ca828ae8ebc9068073494c46faf3e8e1443ada)
-
-commit 0f5043975dbde75036b9f9e8be757494b8cdc73b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Oct 23 14:17:06 2015 -0400
-
- osd: move misdirected op check from OSD thread to PG thread
-
- The op message isn't fully decoded until after the start of the PG
- op handling. Therefore, checking for misdirected ops needs to wait
- until after the RWM flags have been initialized.
-
- Fixes: #13491
- Backport: infernalis
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 56ba90f5e49d499ea9f6bda9665031ce90abdc32)
-
- Conflicts:
- src/osd/ReplicatedPG.cc
- In ReplicatedPG::do_op, resolved conflicts caused by afcfb050930e2e4086d631119022fd2dee9feb21 and 818d790f7d424520bc96c651571f2c86e94caf1e
-
-commit a2c6a212fbb8002fa95270c0f37c02496447624f
-Author: Sage Weil <sage@redhat.com>
-Date: Wed Sep 30 08:29:05 2015 -0400
-
- init-rbdmap: fix CMDPARAMS
-
- Fixes: #13214
- Reported-by: Wyllys Ingersoll <wyllys.ingersoll@keepertech.com>
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 02113ac449cd7631f1c9a3840c94bbf253c052bd)
-
-commit fdb5dbd744a6cfa4f7497e3a98aed13ab8daf4d9
-Author: Herve Rousseau <hroussea@cern.ch>
-Date: Fri Nov 6 09:52:28 2015 +0100
-
- rgw: fix reload on non Debian systems.
-
- When using reload in non-debian systems, /bin/sh's kill is used to send the HUP signal to the radosgw process.
- This kill version doesn't understand -SIGHUP as a valid signal, using -HUP does work.
-
- Fix: #13709
- Backport: hammer
- Signed-off-by: Hervé Rousseau <hroussea@cern.ch>
- (cherry picked from commit 1b000abac3a02d1e788bf25eead4b6873133f5d2)
-
-commit 497c1f06a2e221631626ffb66bece310406a7491
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 27 10:13:27 2015 -0400
-
- krbd: remove deprecated --quiet param from udevadm
-
- This parameter has been removed since systemd 213, so this
- effects Fedora 21+, Debian Jessie, and potentially future
- releases of RHEL 7.
-
- Fixes: #13560
- Backport: hammer, infernalis
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 4300f2a9fe29627eea580564ff2d576de3647467)
-
-commit d0536f9d2f5f54791daa476a9b951fcef9488a50
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Oct 27 10:12:34 2015 -0400
-
- run_cmd: close parent process console file descriptors
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit f46f7dc94139c0bafe10361622416d7dc343d31f)
-
-commit ad84753ad2d2bfb9ef572a7d21cacb47be6eec1b
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Tue Jul 7 12:11:13 2015 -0400
-
- WorkQueue: new PointerWQ base class for ContextWQ
-
- The existing work queues do not properly function if added to a running
- thread pool. librbd uses a singleton thread pool which requires
- dynamically adding/removing work queues as images are opened and closed.
-
- Fixes: #13636
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 3e78b18b09d75626ca2599bac3b9f9c9889507a5)
-
-commit 83c38802a2be16faf7be4ac5ac3c589de8b2dbb0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 9 11:22:24 2015 -0500
-
- librbd: fixed deadlock while attempting to flush AIO requests
-
- In-flight AIO requests might force a flush if a snapshot was created
- out-of-band. The flush completion was previously invoked asynchronously,
- potentially via the same thread worker handling the AIO request. This
- resulted in the flush operation deadlocking since it can't complete.
-
- Fixes: #13726
- Backport: infernalis, hammer
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit bfeb90e5fe24347648c72345881fd3d932243c98)
-
-commit 0b21b3f0dc2a9676f3fb2b19141ce75324f53c72
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 9 10:48:10 2015 -0500
-
- tests: new test case to catch deadlock on RBD image refresh
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit a9729d9553e7fb925509cad8d388cf52a9fede9c)
-
-commit 74cb593a3d29a5549cbe89a974aaa4814d35b8e0
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Mon Nov 2 16:50:19 2015 -0500
-
- librbd: resize should only update image size within header
-
- Previously, the whole RBD image format 1 header struct was
- re-written to disk on a resize operation.
-
- Fixes: #13674
- Backport: infernalis, hammer, firefly
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit d5be20b6d4646284571568ab28cbf45b0729390b)
-
-commit 6750cab2d6f2c5f928f9c2d2c356047f93e9ce30
-Author: Jason Dillaman <dillaman@redhat.com>
-Date: Fri Oct 23 14:15:54 2015 -0400
-
- osd: ensure op rwm flags are checked before they are initialized
-
- These flags are now lazy-initialized within the PG thread at the
- start of op processing instead of once the message is received.
-
- Signed-off-by: Jason Dillaman <dillaman@redhat.com>
- (cherry picked from commit 652856321b0f14293cd885c865552d5b7e787f9a)
-
-commit 58b43e656cd9278667af2b7ac4fee72f50a03caa
-Author: Loic Dachary <ldachary@redhat.com>
-Date: Fri Nov 13 19:10:28 2015 +0100
-
- build/ops: rbd-replay moved from ceph-test-dbg to ceph-common-dbg
-
- http://tracker.ceph.com/issues/13785 Fixes: #13785
-
- Signed-off-by: Loic Dachary <loic@dachary.org>
- (cherry picked from commit a0204dc47acc0c50223e449fd23a2fc97bfd111a)
-
-commit 2647c20cee7ed5738c711a0c435e35938c7739bd
-Author: xiexingguo <258156334@qq.com>
-Date: Thu Oct 29 20:04:11 2015 +0800
-
- Objecter: pool_op callback may hang forever.
-
- pool_op callback may hang forever due to osdmap update during reply handling.
- Fixes: #13642
- Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
-
- (cherry picked from commit 00c6fa9e31975a935ed2bb33a099e2b4f02ad7f2)
-
-commit 4d2a135c042039e0c48302ffd667dc88d024eed9
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 13 09:55:01 2015 -0400
-
- crush/mapper: ensure take bucket value is valid
-
- Ensure that the take argument is a valid bucket ID before indexing the
- buckets array.
-
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 93ec538e8a667699876b72459b8ad78966d89c61)
-
-commit ecb6aa232180e3226d56bc8fe0cb643c90f5101b
-Author: Sage Weil <sage@redhat.com>
-Date: Tue Oct 27 20:55:26 2015 -0400
-
- crush/mapper: ensure bucket id is valid before indexing buckets array
-
- We were indexing the buckets array without verifying the index was within
- the [0,max_buckets) range. This could happen because a multistep rule
- does not have enough buckets and has CRUSH_ITEM_NONE
- for an intermediate result, which would feed in CRUSH_ITEM_NONE and
- make us crash.
-
- Fixes: #13477
- Signed-off-by: Sage Weil <sage@redhat.com>
- (cherry picked from commit 976a24a326da8931e689ee22fce35feab5b67b76)
-
-commit effaf26acccf81675b74277eb0a75368668b0677
-Author: xinxin shu <xinxin.shu@intel.com>
-Date: Wed Oct 21 19:01:21 2015 +0800
-
- librbd : fix enable objectmap feature issue
-
- Fixes: #13558
-
- Signed-off-by: xinxin shu <xinxin.shu@intel.com>
- (cherry picked from commit b0536ebab4e1f34e1ed87fe5efbb00d0f7b48abb)
-
-commit c2e7fe98738cd31c0886d594920c50a53cbf9bf4
-Author: xinxin shu <xinxin.shu@intel.com>
-Date: Wed Oct 21 14:56:17 2015 +0800
-
- rbd: fix clone issue when we specify image feature
-
- Fixes: #13553
-
- Signed-off-by: xinxin shu <xinxin.shu@intel.com>
- (cherry picked from commit da48dbb8f8c9417343d2ca7819c58b7c46ef7ad0)
-
-commit fde4ec62888ba0aee97ce714bb15d191625b736f
-Author: xiexingguo <258156334@qq.com>
-Date: Tue Oct 13 14:04:20 2015 +0800
-
- OSD:shall reset primary and up_primary fields when beginning a new past_interval.
-
- Shall reset primary and up_primary fields when we start over a new past_interval in OSD::build_past_intervals_parallel().
- Fixes: #13471
- Signed-off-by: xie.xingguo@zte.com.cn
- (cherry picked from commit 65064ca05bc7f8b6ef424806d1fd14b87add62a4)
-
-commit 34d0b692cf1b9c0c2ea508b81d252b901fe1f52b
-Author: wenjunhuang <wenjunhuang@tencent.com>
-Date: Sat Oct 10 14:30:56 2015 +0800
-
- ceph-fuse.cc: While starting ceph-fuse, start the log thread first
-
- http://tracker.ceph.com/issues/13443 Fixes: #13443
-
- Signed-off-by: Wenjun Huang <wenjunhuang@tencent.com>
- (cherry picked from commit f2763085754462610730a23bb5652237714abc2a)
-
-commit 8707b0b083e7a7732d1e3563b00d3adf3e09807b
-Author: yangruifeng <yangruifeng.09209@h3c.com>
-Date: Mon Oct 19 08:08:12 2015 -0400
-
- mon: should not set isvalid = true when cephx_verify_authorizer return false
-
- Fixes: #13525
- Signed-off-by: Ruifeng Yang <yangruifeng.09209@h3c.com>
- (cherry picked from commit c7f75b8f7c0a773148ec16141941efd00ee76626)
diff --git a/src/ceph/doc/conf.py b/src/ceph/doc/conf.py
deleted file mode 100644
index a1968bb..0000000
--- a/src/ceph/doc/conf.py
+++ /dev/null
@@ -1,68 +0,0 @@
-import sys
-import os
-
-project = u'Ceph'
-copyright = u'2016, Red Hat, Inc, and contributors. Licensed under Creative Commons BY-SA'
-version = 'dev'
-release = 'dev'
-
-templates_path = ['_templates']
-source_suffix = '.rst'
-master_doc = 'index'
-exclude_patterns = ['**/.#*', '**/*~', 'start/quick-common.rst']
-if tags.has('man'):
- exclude_patterns += ['architecture.rst', 'glossary.rst', 'release*.rst',
- 'api/*',
- 'cephfs/*',
- 'dev/*',
- 'install/*',
- 'mon/*',
- 'rados/*',
- 'mgr/*',
- 'ceph-volume/*',
- 'radosgw/*',
- 'rbd/*',
- 'start/*']
-
-pygments_style = 'sphinx'
-
-html_theme = 'ceph'
-html_theme_path = ['_themes']
-html_title = "Ceph Documentation"
-html_logo = 'logo.png'
-html_favicon = 'favicon.ico'
-html_use_smartypants = True
-html_show_sphinx = False
-html_sidebars = {
- '**': ['smarttoc.html', 'searchbox.html'],
- }
-
-extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.graphviz',
- 'sphinx.ext.todo',
- 'sphinxcontrib.ditaa',
- 'breathe',
- ]
-ditaa = 'ditaa'
-todo_include_todos = True
-
-top_level = os.path.dirname(
- os.path.dirname(
- os.path.abspath(__file__)
- )
-)
-
-breathe_default_project = "Ceph"
-# see $(top_srcdir)/Doxyfile
-
-breathe_build_directory = os.path.join(top_level, "build-doc")
-breathe_projects = {"Ceph": os.path.join(top_level, breathe_build_directory)}
-breathe_projects_source = {
- "Ceph": (os.path.join(top_level, "src/include/rados"),
- ["rados_types.h", "librados.h"])
-}
-breathe_domain_by_extension = {'py': 'py', 'c': 'c', 'h': 'c', 'cc': 'cxx', 'hpp': 'cxx'}
-pybind = os.path.join(top_level, 'src/pybind')
-if pybind not in sys.path:
- sys.path.insert(0, pybind)
diff --git a/src/ceph/doc/dev/PlanningImplementation.txt b/src/ceph/doc/dev/PlanningImplementation.txt
deleted file mode 100644
index 871eb5f..0000000
--- a/src/ceph/doc/dev/PlanningImplementation.txt
+++ /dev/null
@@ -1,43 +0,0 @@
- <big>About this Document</big>
-This document contains planning and implementation procedures for Ceph. The audience for this document includes technical support personnel, installation engineers, system administrators, and quality assurance.
-<B>Prerequisites<b>
-Users of this document must be familiar with Linux command line options. They must also be familiar with the overall Ceph product.
-Before You Begin
-Before implementing a new Ceph System, first answer the questions in the Ceph Getting Started Guide to determine your configuration needs. Once you have determined your hardware and configuration needs, the following decisions must be made:
-• Determine what level of technical support you need. Pick from the Ceph Technical Support options in the next section.
-• Determine how much and what level of training your organization needs.
-Ceph Technical Support Options
-The Ceph Technical support model provides 4 tiers of technical support options:
-1st – This option is for brand new customers that need installation, configuration, and setup on their production environment.
-2nd – This level of support requires a trouble ticket to be generated on a case by case basis as customer difficulties arise. Customers can choose between two maintenance options; they can either purchase a yearly maintenance contract, or pay for each trouble resolution as it occurs.
-3rd – This option comes with our bundled packages for customers who have also purchased our hosting plans. In this case, the customer is a service provider. The Help Desk can generally provide this level of incident resolution. (NEED MORE INFO)
-4th – This level of support requires a Service Level Agreement (SLA) between the customer and Dreamhost. This level is used for handling the most difficult or advanced problems.
-Planning a Ceph Cluster Configuration
-The following section contains guidelines for planning the deployment for a Ceph cluster configuration. A Ceph cluster consists of the following core components:
-• Monitors – These must be an odd number, such as one, three, or five. Three is the preferred configuration.
-• Object Storage Devices (OSD) – used as storage nodes
-• Metadata Servers (MDS)
-For redundancy, you should employ several of these components.
-Monitors
-The monitors handle central cluster management, configuration, and state.
-Hardware Requirements:
-• A few gigs of local disk space
-• A fixed network address
- Warning: Never configure 2 monitors per cluster. If you do, they will both have to be up all of the time, which will greatly degrade system performance.
-Object Storage Devices
-The OSDs store the actual data on the disks. A minimum of two is required.
-Hardware Requirements:
-• As many disks as possible for faster performance and scalability
-• An SSD or NVRAM for a journal, or a RAID controller with a battery-backed NVRAM.
-• Ample RAM for better file system caching
-• Fast network
- Metadata Servers
-The metadata server daemon commands act as a distributed, coherent cache of file system metadata. They do not store data locally; all metadata is stored on disk via the storage nodes.
-Metadata servers can be added into the cluster on an as-needed basis. The load is automatically balanced. The max_mds parameter controls how many cmds instances are active. Any additional running instances are put in standby mode and can be activated if one of the active daemons becomes unresponsive.
-Hardware Requirements:
-• Large amount of RAM
-• Fast CPU
-• Fast (low latency) network
-• At least two servers for redundancy and load balancing
-TIPS: If you have just a few nodes, put cmon, cmds, and cosd on the same node. For moderate node configurations, put cmon and cmds together, and cosd on the disk nodes. For large node configurations, put cmon, cmds, and cosd each on their own dedicated machine.
-
diff --git a/src/ceph/doc/dev/blkin.rst b/src/ceph/doc/dev/blkin.rst
deleted file mode 100644
index 8e0320f..0000000
--- a/src/ceph/doc/dev/blkin.rst
+++ /dev/null
@@ -1,167 +0,0 @@
-=========================
- Tracing Ceph With BlkKin
-=========================
-
-Ceph can use Blkin, a library created by Marios Kogias and others,
-which enables tracking a specific request from the time it enters
-the system at higher levels till it is finally served by RADOS.
-
-In general, Blkin implements the Dapper_ tracing semantics
-in order to show the causal relationships between the different
-processing phases that an IO request may trigger. The goal is an
-end-to-end visualisation of the request's route in the system,
-accompanied by information concerning latencies in each processing
-phase. Thanks to LTTng this can happen with a minimal overhead and
-in realtime. The LTTng traces can then be visualized with Twitter's
-Zipkin_.
-
-.. _Dapper: http://static.googleusercontent.com/media/research.google.com/el//pubs/archive/36356.pdf
-.. _Zipkin: http://zipkin.io/
-
-
-Installing Blkin
-================
-
-You can install Markos Kogias' upstream Blkin_ by hand.::
-
- cd blkin/
- make && make install
-
-or build distribution packages using DistroReadyBlkin_, which also comes with
-pkgconfig support. If you choose the latter, then you must generate the
-configure and make files first.::
-
- cd blkin
- autoreconf -i
-
-.. _Blkin: https://github.com/marioskogias/blkin
-.. _DistroReadyBlkin: https://github.com/agshew/blkin
-
-
-Configuring Ceph with Blkin
-===========================
-
-If you built and installed Blkin by hand, rather than building and
-installing packages, then set these variables before configuring
-Ceph.::
-
- export BLKIN_CFLAGS=-Iblkin/
- export BLKIN_LIBS=-lzipkin-cpp
-
-Since there are separate lttng and blkin changes to Ceph, you may
-want to configure with something like::
-
- ./configure --with-blkin --without-lttng --with-debug
-
-
-Testing Blkin
-=============
-
-It's easy to test Ceph's Blkin tracing. Let's assume you don't have
-Ceph already running, and you compiled Ceph with Blkin support but
-you did't install it. Then launch Ceph with the ``vstart.sh`` script
-in Ceph's src directgory so you can see the possible tracepoints.::
-
- cd src
- OSD=3 MON=3 RGW=1 ./vstart.sh -n
- lttng list --userspace
-
-You'll see something like the following:::
-
- UST events:
- -------------
- PID: 8987 - Name: ./ceph-osd
- zipkin:timestamp (loglevel: TRACE_WARNING (4)) (type: tracepoint)
- zipkin:keyval (loglevel: TRACE_WARNING (4)) (type: tracepoint)
- ust_baddr_statedump:soinfo (loglevel: TRACE_DEBUG_LINE (13)) (type: tracepoint)
-
- PID: 8407 - Name: ./ceph-mon
- zipkin:timestamp (loglevel: TRACE_WARNING (4)) (type: tracepoint)
- zipkin:keyval (loglevel: TRACE_WARNING (4)) (type: tracepoint)
- ust_baddr_statedump:soinfo (loglevel: TRACE_DEBUG_LINE (13)) (type: tracepoint)
-
- ...
-
-Next, stop Ceph so that the tracepoints can be enabled.::
-
- ./stop.sh
-
-Start up an LTTng session and enable the tracepoints.::
-
- lttng create blkin-test
- lttng enable-event --userspace zipkin:timestamp
- lttng enable-event --userspace zipkin:keyval
- lttng start
-
-Then start up Ceph again.::
-
- OSD=3 MON=3 RGW=1 ./vstart.sh -n
-
-You may want to check that ceph is up.::
-
- ./ceph status
-
-Now put something in usin rados, check that it made it, get it back, and remove it.::
-
- ./rados mkpool test-blkin
- ./rados put test-object-1 ./vstart.sh --pool=test-blkin
- ./rados -p test-blkin ls
- ./ceph osd map test-blkin test-object-1
- ./rados get test-object-1 ./vstart-copy.sh --pool=test-blkin
- md5sum vstart*
- ./rados rm test-object-1 --pool=test-blkin
-
-You could also use the example in ``examples/librados/`` or ``rados bench``.
-
-Then stop the LTTng session and see what was collected.::
-
- lttng stop
- lttng view
-
-You'll see something like:::
-
- [13:09:07.755054973] (+?.?????????) scruffy zipkin:timestamp: { cpu_id = 5 }, { trace_name = "Main", service_name = "MOSDOp", port_no = 0, ip = "0.0.0.0", trace_id = 7492589359882233221, span_id = 2694140257089376129, parent_span_id = 0, event = "Message allocated" }
- [13:09:07.755071569] (+0.000016596) scruffy zipkin:keyval: { cpu_id = 5 }, { trace_name = "Main", service_name = "MOSDOp", port_no = 0, ip = "0.0.0.0", trace_id = 7492589359882233221, span_id = 2694140257089376129, parent_span_id = 0, key = "Type", val = "MOSDOp" }
- [13:09:07.755074217] (+0.000002648) scruffy zipkin:keyval: { cpu_id = 5 }, { trace_name = "Main", service_name = "MOSDOp", port_no = 0, ip = "0.0.0.0", trace_id = 7492589359882233221, span_id = 2694140257089376129, parent_span_id = 0, key = "Reqid", val = "client.4126.0:1" }
- ...
-
-
-Install Zipkin
-===============
-One of the points of using Blkin is so that you can look at the traces
-using Zipkin. Users should run Zipkin as a tracepoints collector and
-also a web service, which means users need to run three services,
-zipkin-collector, zipkin-query and zipkin-web.
-
-Download Zipkin Package::
-
- wget https://github.com/twitter/zipkin/archive/1.1.0.tar.gz
- tar zxf 1.1.0.tar.gz
- cd zipkin-1.1.0
- bin/collector cassandra &
- bin/query cassandra &
- bin/web &
-
-Check Zipkin::
-
- bin/test
- Browse http://${zipkin-web-ip}:8080
-
-
-Show Ceph's Blkin Traces in Zipkin-web
-======================================
-Blkin provides a script which translates lttng result to Zipkin
-(Dapper) semantics.
-
-Send lttng data to Zipkin::
-
- python3 babeltrace_zipkin.py ${lttng-traces-dir}/${blkin-test}/ust/uid/0/64-bit/ -p ${zipkin-collector-port(9410 by default)} -s ${zipkin-collector-ip}
-
-Example::
-
- python3 babeltrace_zipkin.py ~/lttng-traces-dir/blkin-test-20150225-160222/ust/uid/0/64-bit/ -p 9410 -s 127.0.0.1
-
-Check Ceph traces on webpage::
-
- Browse http://${zipkin-web-ip}:8080
- Click "Find traces"
diff --git a/src/ceph/doc/dev/bluestore.rst b/src/ceph/doc/dev/bluestore.rst
deleted file mode 100644
index 91d71d0..0000000
--- a/src/ceph/doc/dev/bluestore.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-===================
-BlueStore Internals
-===================
-
-
-Small write strategies
-----------------------
-
-* *U*: Uncompressed write of a complete, new blob.
-
- - write to new blob
- - kv commit
-
-* *P*: Uncompressed partial write to unused region of an existing
- blob.
-
- - write to unused chunk(s) of existing blob
- - kv commit
-
-* *W*: WAL overwrite: commit intent to overwrite, then overwrite
- async. Must be chunk_size = MAX(block_size, csum_block_size)
- aligned.
-
- - kv commit
- - wal overwrite (chunk-aligned) of existing blob
-
-* *N*: Uncompressed partial write to a new blob. Initially sparsely
- utilized. Future writes will either be *P* or *W*.
-
- - write into a new (sparse) blob
- - kv commit
-
-* *R+W*: Read partial chunk, then to WAL overwrite.
-
- - read (out to chunk boundaries)
- - kv commit
- - wal overwrite (chunk-aligned) of existing blob
-
-* *C*: Compress data, write to new blob.
-
- - compress and write to new blob
- - kv commit
-
-Possible future modes
----------------------
-
-* *F*: Fragment lextent space by writing small piece of data into a
- piecemeal blob (that collects random, noncontiguous bits of data we
- need to write).
-
- - write to a piecemeal blob (min_alloc_size or larger, but we use just one block of it)
- - kv commit
-
-* *X*: WAL read/modify/write on a single block (like legacy
- bluestore). No checksum.
-
- - kv commit
- - wal read/modify/write
-
-Mapping
--------
-
-This very roughly maps the type of write onto what we do when we
-encounter a given blob. In practice it's a bit more complicated since there
-might be several blobs to consider (e.g., we might be able to *W* into one or
-*P* into another), but it should communicate a rough idea of strategy.
-
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| | raw | raw (cached) | csum (4 KB) | csum (16 KB) | comp (128 KB) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 128+ KB (over)write | U | U | U | U | C |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 64 KB (over)write | U | U | U | U | U or C |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 4 KB overwrite | W | P | W | P | W | P | R+W | P | N (F?) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 100 byte overwrite | R+W | P | W | P | R+W | P | R+W | P | N (F?) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 100 byte append | R+W | P | W | P | R+W | P | R+W | P | N (F?) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 4 KB clone overwrite | P | N | P | N | P | N | P | N | N (F?) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
-| 100 byte clone overwrite | P | N | P | N | P | N | P | N | N (F?) |
-+--------------------------+--------+--------------+-------------+--------------+---------------+
diff --git a/src/ceph/doc/dev/cache-pool.rst b/src/ceph/doc/dev/cache-pool.rst
deleted file mode 100644
index 7dc71c8..0000000
--- a/src/ceph/doc/dev/cache-pool.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-Cache pool
-==========
-
-Purpose
--------
-
-Use a pool of fast storage devices (probably SSDs) and use it as a
-cache for an existing slower and larger pool.
-
-Use a replicated pool as a front-end to service most I/O, and destage
-cold data to a separate erasure coded pool that does not currently (and
-cannot efficiently) handle the workload.
-
-We should be able to create and add a cache pool to an existing pool
-of data, and later remove it, without disrupting service or migrating
-data around.
-
-Use cases
----------
-
-Read-write pool, writeback
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-We have an existing data pool and put a fast cache pool "in front" of
-it. Writes will go to the cache pool and immediately ack. We flush
-them back to the data pool based on the defined policy.
-
-Read-only pool, weak consistency
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-We have an existing data pool and add one or more read-only cache
-pools. We copy data to the cache pool(s) on read. Writes are
-forwarded to the original data pool. Stale data is expired from the
-cache pools based on the defined policy.
-
-This is likely only useful for specific applications with specific
-data access patterns. It may be a match for rgw, for example.
-
-
-Interface
----------
-
-Set up a read/write cache pool foo-hot for pool foo::
-
- ceph osd tier add foo foo-hot
- ceph osd tier cache-mode foo-hot writeback
-
-Direct all traffic for foo to foo-hot::
-
- ceph osd tier set-overlay foo foo-hot
-
-Set the target size and enable the tiering agent for foo-hot::
-
- ceph osd pool set foo-hot hit_set_type bloom
- ceph osd pool set foo-hot hit_set_count 1
- ceph osd pool set foo-hot hit_set_period 3600 # 1 hour
- ceph osd pool set foo-hot target_max_bytes 1000000000000 # 1 TB
- ceph osd pool set foo-hot min_read_recency_for_promote 1
- ceph osd pool set foo-hot min_write_recency_for_promote 1
-
-Drain the cache in preparation for turning it off::
-
- ceph osd tier cache-mode foo-hot forward
- rados -p foo-hot cache-flush-evict-all
-
-When cache pool is finally empty, disable it::
-
- ceph osd tier remove-overlay foo
- ceph osd tier remove foo foo-hot
-
-Read-only pools with lazy consistency::
-
- ceph osd tier add foo foo-east
- ceph osd tier cache-mode foo-east readonly
- ceph osd tier add foo foo-west
- ceph osd tier cache-mode foo-west readonly
-
-
-
-Tiering agent
--------------
-
-The tiering policy is defined as properties on the cache pool itself.
-
-HitSet metadata
-~~~~~~~~~~~~~~~
-
-First, the agent requires HitSet information to be tracked on the
-cache pool in order to determine which objects in the pool are being
-accessed. This is enabled with::
-
- ceph osd pool set foo-hot hit_set_type bloom
- ceph osd pool set foo-hot hit_set_count 1
- ceph osd pool set foo-hot hit_set_period 3600 # 1 hour
-
-The supported HitSet types include 'bloom' (a bloom filter, the
-default), 'explicit_hash', and 'explicit_object'. The latter two
-explicitly enumerate accessed objects and are less memory efficient.
-They are there primarily for debugging and to demonstrate pluggability
-for the infrastructure. For the bloom filter type, you can additionally
-define the false positive probability for the bloom filter (default is 0.05)::
-
- ceph osd pool set foo-hot hit_set_fpp 0.15
-
-The hit_set_count and hit_set_period define how much time each HitSet
-should cover, and how many such HitSets to store. Binning accesses
-over time allows Ceph to independently determine whether an object was
-accessed at least once and whether it was accessed more than once over
-some time period ("age" vs "temperature").
-
-The ``min_read_recency_for_promote`` defines how many HitSets to check for the
-existence of an object when handling a read operation. The checking result is
-used to decide whether to promote the object asynchronously. Its value should be
-between 0 and ``hit_set_count``. If it's set to 0, the object is always promoted.
-If it's set to 1, the current HitSet is checked. And if this object is in the
-current HitSet, it's promoted. Otherwise not. For the other values, the exact
-number of archive HitSets are checked. The object is promoted if the object is
-found in any of the most recent ``min_read_recency_for_promote`` HitSets.
-
-A similar parameter can be set for the write operation, which is
-``min_write_recency_for_promote``. ::
-
- ceph osd pool set {cachepool} min_read_recency_for_promote 1
- ceph osd pool set {cachepool} min_write_recency_for_promote 1
-
-Note that the longer the ``hit_set_period`` and the higher the
-``min_read_recency_for_promote``/``min_write_recency_for_promote`` the more RAM
-will be consumed by the ceph-osd process. In particular, when the agent is active
-to flush or evict cache objects, all hit_set_count HitSets are loaded into RAM.
-
-Cache mode
-~~~~~~~~~~
-
-The most important policy is the cache mode:
-
- ceph osd pool set foo-hot cache-mode writeback
-
-The supported modes are 'none', 'writeback', 'forward', and
-'readonly'. Most installations want 'writeback', which will write
-into the cache tier and only later flush updates back to the base
-tier. Similarly, any object that is read will be promoted into the
-cache tier.
-
-The 'forward' mode is intended for when the cache is being disabled
-and needs to be drained. No new objects will be promoted or written
-to the cache pool unless they are already present. A background
-operation can then do something like::
-
- rados -p foo-hot cache-try-flush-evict-all
- rados -p foo-hot cache-flush-evict-all
-
-to force all data to be flushed back to the base tier.
-
-The 'readonly' mode is intended for read-only workloads that do not
-require consistency to be enforced by the storage system. Writes will
-be forwarded to the base tier, but objects that are read will get
-promoted to the cache. No attempt is made by Ceph to ensure that the
-contents of the cache tier(s) are consistent in the presence of object
-updates.
-
-Cache sizing
-~~~~~~~~~~~~
-
-The agent performs two basic functions: flushing (writing 'dirty'
-cache objects back to the base tier) and evicting (removing cold and
-clean objects from the cache).
-
-The thresholds at which Ceph will flush or evict objects is specified
-relative to a 'target size' of the pool. For example::
-
- ceph osd pool set foo-hot cache_target_dirty_ratio .4
- ceph osd pool set foo-hot cache_target_dirty_high_ratio .6
- ceph osd pool set foo-hot cache_target_full_ratio .8
-
-will begin flushing dirty objects when 40% of the pool is dirty and begin
-evicting clean objects when we reach 80% of the target size.
-
-The target size can be specified either in terms of objects or bytes::
-
- ceph osd pool set foo-hot target_max_bytes 1000000000000 # 1 TB
- ceph osd pool set foo-hot target_max_objects 1000000 # 1 million objects
-
-Note that if both limits are specified, Ceph will begin flushing or
-evicting when either threshold is triggered.
-
-Other tunables
-~~~~~~~~~~~~~~
-
-You can specify a minimum object age before a recently updated object is
-flushed to the base tier::
-
- ceph osd pool set foo-hot cache_min_flush_age 600 # 10 minutes
-
-You can specify the minimum age of an object before it will be evicted from
-the cache tier::
-
- ceph osd pool set foo-hot cache_min_evict_age 1800 # 30 minutes
-
-
-
diff --git a/src/ceph/doc/dev/ceph-disk.rst b/src/ceph/doc/dev/ceph-disk.rst
deleted file mode 100644
index a4008aa..0000000
--- a/src/ceph/doc/dev/ceph-disk.rst
+++ /dev/null
@@ -1,61 +0,0 @@
-=========
-ceph-disk
-=========
-
-
-device-mapper crypt
-===================
-
-Settings
---------
-
-``osd_dmcrypt_type``
-
-:Description: this option specifies the mode in which ``cryptsetup`` works. It can be ``luks`` or ``plain``. It kicks in only if the ``--dmcrypt`` option is passed to ``ceph-disk``. See also `cryptsetup document <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt#configuration-using-cryptsetup>`_ for more details.
-
-:Type: String
-:Default: ``luks``
-
-
-``osd_dmcrypt_key_size``
-
-:Description: the size of the random string in bytes used as the LUKS key. The string is read from ``/dev/urandom`` and then encoded using base64. It will be stored with the key of ``dm-crypt/osd/$uuid/luks`` using config-key.
-
-:Type: String
-:Default: 1024 if ``osd_dmcrypt_type`` is ``luks``, 256 otherwise.
-
-lockbox
--------
-
-``ceph-disk`` supports dmcrypt (device-mapper crypt). If dmcrypt is enabled, the partitions will be encrypted using this machinary. For each OSD device, a lockbox is introduced for holding the information regarding how the dmcrypt key is stored. To prepare a lockbox, ``ceph-disk``
-
-#. creates a dedicated lockbox partition on device, and
-#. populates it with a tiny filesystem, then
-#. automounts it at ``/var/lib/ceph/osd-lockbox/$uuid``, read-only. where the ``uuid`` is the lockbox's uuid.
-
-under which, settings are stored using plain files:
-
-- key-management-mode: ``ceph-mon v1``
-- osd-uuid: the OSD's uuid
-- ceph_fsid: the fsid of the cluster
-- keyring: the lockbox's allowing one to fetch the LUKS key
-- block_uuid: the partition uuid for the block device
-- journal_uuid: the partition uuid for the journal device
-- block.db_uuid: the partition uuid for the block.db device
-- block.wal_uuid: the partition uuid for the block.wal device
-- magic: a magic string indicating that this partition is a lockbox. It's not used currently.
-- ``${space_uuid}``: symbolic links named after the uuid of space partitions pointing to ``/var/lib/ceph/osd-lockbox/$uuid``. in the case of FileStore, the space partitions are ``data`` and ``journal`` partitions, for BlueStore, they are ``data``, ``block.db`` and ``block.wal``.
-
-Currently, ``ceph-mon v1`` is the only supported key-management-mode. In that case, the LUKS key is stored using the config-key in the monitor store with the key of ``dm-crypt/osd/$uuid/luks``.
-
-
-partitions
-==========
-
-``ceph-disk`` creates partitions for preparing a device for OSD deployment. Their partition numbers are hardcoded. For instance, data partition's partition number is always *1* :
-
-1. data partition
-2. journal partition, if co-located with data
-3. block.db for BlueStore, if co-located with data
-4. block.wal for BlueStore, if co-located with data
-5. lockbox
diff --git a/src/ceph/doc/dev/ceph-volume/index.rst b/src/ceph/doc/dev/ceph-volume/index.rst
deleted file mode 100644
index b6f9dc0..0000000
--- a/src/ceph/doc/dev/ceph-volume/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-===================================
-ceph-volume developer documentation
-===================================
-
-.. rubric:: Contents
-
-.. toctree::
- :maxdepth: 1
-
-
- plugins
- lvm
- systemd
diff --git a/src/ceph/doc/dev/ceph-volume/lvm.rst b/src/ceph/doc/dev/ceph-volume/lvm.rst
deleted file mode 100644
index f89424a..0000000
--- a/src/ceph/doc/dev/ceph-volume/lvm.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-
-.. _ceph-volume-lvm-api:
-
-LVM
-===
-The backend of ``ceph-volume lvm`` is LVM, it relies heavily on the usage of
-tags, which is a way for LVM to allow extending its volume metadata. These
-values can later be queried against devices and it is how they get discovered
-later.
-
-.. warning:: These APIs are not meant to be public, but are documented so that
- it is clear what the tool is doing behind the scenes. Do not alter
- any of these values.
-
-
-.. _ceph-volume-lvm-tag-api:
-
-Tag API
--------
-The process of identifying logical volumes as part of Ceph relies on applying
-tags on all volumes. It follows a naming convention for the namespace that
-looks like::
-
- ceph.<tag name>=<tag value>
-
-All tags are prefixed by the ``ceph`` keyword do claim ownership of that
-namespace and make it easily identifiable. This is how the OSD ID would be used
-in the context of lvm tags::
-
- ceph.osd_id=0
-
-
-.. _ceph-volume-lvm-tags:
-
-Metadata
---------
-The following describes all the metadata from Ceph OSDs that is stored on an
-LVM volume:
-
-
-``type``
---------
-Describes if the device is a an OSD or Journal, with the ability to expand to
-other types when supported (for example a lockbox)
-
-Example::
-
- ceph.type=osd
-
-
-``cluster_fsid``
-----------------
-Example::
-
- ceph.cluster_fsid=7146B649-AE00-4157-9F5D-1DBFF1D52C26
-
-``data_device``
----------------
-Example::
-
- ceph.data_device=/dev/ceph/data-0
-
-``journal_device``
-------------------
-Example::
-
- ceph.journal_device=/dev/ceph/journal-0
-
-``encrypted``
--------------
-Example for enabled encryption with ``luks``::
-
- ceph.encrypted=luks
-
-For plain dmcrypt::
-
- ceph.encrypted=dmcrypt
-
-For disabled encryption::
-
- ceph.encrypted=0
-
-``osd_fsid``
-------------
-Example::
-
- ceph.osd_fsid=88ab9018-f84b-4d62-90b4-ce7c076728ff
-
-``osd_id``
-----------
-Example::
-
- ceph.osd_id=1
-
-``block``
----------
-Just used on :term:`bluestore` backends.
-
-Example::
-
- ceph.block=/dev/mapper/vg-block-0
-
-``db``
-------
-Just used on :term:`bluestore` backends.
-
-Example::
-
- ceph.db=/dev/mapper/vg-db-0
-
-``wal``
--------
-Just used on :term:`bluestore` backends.
-
-Example::
-
- ceph.wal=/dev/mapper/vg-wal-0
-
-
-``lockbox_device``
-------------------
-Only used when encryption is enabled, to store keys in an unencrypted
-volume.
-
-Example::
-
- ceph.lockbox_device=/dev/mapper/vg-lockbox-0
diff --git a/src/ceph/doc/dev/ceph-volume/plugins.rst b/src/ceph/doc/dev/ceph-volume/plugins.rst
deleted file mode 100644
index 95bc761..0000000
--- a/src/ceph/doc/dev/ceph-volume/plugins.rst
+++ /dev/null
@@ -1,65 +0,0 @@
-.. _ceph-volume-plugins:
-
-Plugins
-=======
-``ceph-volume`` started initially to provide support for using ``lvm`` as
-the underlying system for an OSD. It is included as part of the tool but it is
-treated like a plugin.
-
-This modularity, allows for other device or device-like technologies to be able
-to consume and re-use the utilities and workflows provided.
-
-Adding Plugins
---------------
-As a Python tool, plugins ``setuptools`` entry points. For a new plugin to be
-available, it should have an entry similar to this in its ``setup.py`` file:
-
-.. code-block:: python
-
- setup(
- ...
- entry_points = dict(
- ceph_volume_handlers = [
- 'my_command = my_package.my_module:MyClass',
- ],
- ),
-
-The ``MyClass`` should be a class that accepts ``sys.argv`` as its argument,
-``ceph-volume`` will pass that in at instantiation and call them ``main``
-method.
-
-This is how a plugin for ``ZFS`` could look like for example:
-
-.. code-block:: python
-
- class ZFS(object):
-
- help_menu = 'Deploy OSDs with ZFS'
- _help = """
- Use ZFS as the underlying technology for OSDs
-
- --verbose Increase the verbosity level
- """
-
- def __init__(self, argv):
- self.argv = argv
-
- def main(self):
- parser = argparse.ArgumentParser()
- args = parser.parse_args(self.argv)
- ...
-
-And its entry point (via ``setuptools``) in ``setup.py`` would looke like:
-
-.. code-block:: python
-
- entry_points = {
- 'ceph_volume_handlers': [
- 'zfs = ceph_volume_zfs.zfs:ZFS',
- ],
- },
-
-After installation, the ``zfs`` subcommand would be listed and could be used
-as::
-
- ceph-volume zfs
diff --git a/src/ceph/doc/dev/ceph-volume/systemd.rst b/src/ceph/doc/dev/ceph-volume/systemd.rst
deleted file mode 100644
index 8553430..0000000
--- a/src/ceph/doc/dev/ceph-volume/systemd.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-.. _ceph-volume-systemd-api:
-
-systemd
-=======
-The workflow to *"activate"* an OSD is by relying on systemd unit files and its
-ability to persist information as a suffix to the instance name.
-
-``ceph-volume`` exposes the following convention for unit files::
-
- ceph-volume@<sub command>-<extra metadata>
-
-For example, this is how enabling an OSD could look like for the
-:ref:`ceph-volume-lvm` sub command::
-
- systemctl enable ceph-volume@lvm-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-
-These 3 pieces of persisted information are needed by the sub-command so that
-it understands what OSD it needs to activate.
-
-Since ``lvm`` is not the only subcommand that will be supported, this
-is how it will allow other device types to be defined.
-
-At some point for example, for plain disks, it could be::
-
- systemctl enable ceph-volume@disk-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-At startup, the systemd unit will execute a helper script that will parse the
-suffix and will end up calling ``ceph-volume`` back. Using the previous
-example for lvm, that call will look like::
-
- ceph-volume lvm activate 0 8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-
-.. warning:: These workflows are not meant to be public, but are documented so that
- it is clear what the tool is doing behind the scenes. Do not alter
- any of these values.
diff --git a/src/ceph/doc/dev/cephfs-snapshots.rst b/src/ceph/doc/dev/cephfs-snapshots.rst
deleted file mode 100644
index 7954f66..0000000
--- a/src/ceph/doc/dev/cephfs-snapshots.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-CephFS Snapshots
-================
-
-CephFS supports snapshots, generally created by invoking mkdir against the
-(hidden, special) .snap directory.
-
-Overview
------------
-
-Generally, snapshots do what they sound like: they create an immutable view
-of the filesystem at the point in time they're taken. There are some headline
-features that make CephFS snapshots different from what you might expect:
-
-* Arbitrary subtrees. Snapshots are created within any directory you choose,
- and cover all data in the filesystem under that directory.
-* Asynchronous. If you create a snapshot, buffered data is flushed out lazily,
- including from other clients. As a result, "creating" the snapshot is
- very fast.
-
-Important Data Structures
--------------------------
-* SnapRealm: A `SnapRealm` is created whenever you create a snapshot at a new
- point in the hierarchy (or, when a snapshotted inode is moved outside of its
- parent snapshot). SnapRealms contain an `sr_t srnode`, links to `past_parents`
- and `past_children`, and all `inodes_with_caps` that are part of the snapshot.
- Clients also have a SnapRealm concept that maintains less data but is used to
- associate a `SnapContext` with each open file for writing.
-* sr_t: An `sr_t` is the on-disk snapshot metadata. It is part of the containing
- directory and contains sequence counters, timestamps, the list of associated
- snapshot IDs, and `past_parents`.
-* snaplink_t: `past_parents` et al are stored on-disk as a `snaplink_t`, holding
- the inode number and first `snapid` of the inode/snapshot referenced.
-
-Creating a snapshot
--------------------
-To make a snapshot on directory "/1/2/3/foo", the client invokes "mkdir" on
-"/1/2/3/foo/.snaps" directory. This is transmitted to the MDS Server as a
-CEPH_MDS_OP_MKSNAP-tagged `MClientRequest`, and initially handled in
-Server::handle_client_mksnap(). It allocates a `snapid` from the `SnapServer`,
-projects a new inode with the new SnapRealm, and commits it to the MDLog as
-usual. When committed, it invokes
-`MDCache::do_realm_invalidate_and_update_notify()`, which triggers most of the
-real work of the snapshot.
-
-If there were already snapshots above directory "foo" (rooted at "/1", say),
-the new SnapRealm adds its most immediate ancestor as a `past_parent` on
-creation. After committing to the MDLog, all clients with caps on files in
-"/1/2/3/foo/" are notified (MDCache::send_snaps()) of the new SnapRealm, and
-update the `SnapContext` they are using with that data. Note that this
-*is not* a synchronous part of the snapshot creation!
-
-Updating a snapshot
--------------------
-If you delete a snapshot, or move data out of the parent snapshot's hierarchy,
-a similar process is followed. Extra code paths check to see if we can break
-the `past_parent` links between SnapRealms, or eliminate them entirely.
-
-Generating a SnapContext
-------------------------
-A RADOS `SnapContext` consists of a snapshot sequence ID (`snapid`) and all
-the snapshot IDs that an object is already part of. To generate that list, we
-generate a list of all `snapids` associated with the SnapRealm and all its
-`past_parents`.
-
-Storing snapshot data
----------------------
-File data is stored in RADOS "self-managed" snapshots. Clients are careful to
-use the correct `SnapContext` when writing file data to the OSDs.
-
-Storing snapshot metadata
--------------------------
-Snapshotted dentries (and their inodes) are stored in-line as part of the
-directory they were in at the time of the snapshot. *All dentries* include a
-`first` and `last` snapid for which they are valid. (Non-snapshotted dentries
-will have their `last` set to CEPH_NOSNAP).
-
-Snapshot writeback
-------------------
-There is a great deal of code to handle writeback efficiently. When a Client
-receives an `MClientSnap` message, it updates the local `SnapRealm`
-representation and its links to specific `Inodes`, and generates a `CapSnap`
-for the `Inode`. The `CapSnap` is flushed out as part of capability writeback,
-and if there is dirty data the `CapSnap` is used to block fresh data writes
-until the snapshot is completely flushed to the OSDs.
-
-In the MDS, we generate snapshot-representing dentries as part of the regular
-process for flushing them. Dentries with outstanding `CapSnap` data is kept
-pinned and in the journal.
-
-Deleting snapshots
-------------------
-Snapshots are deleted by invoking "rmdir" on the ".snaps" directory they are
-rooted in. (Attempts to delete a directory which roots snapshots *will fail*;
-you must delete the snapshots first.) Once deleted, they are entered into the
-`OSDMap` list of deleted snapshots and the file data is removed by the OSDs.
-Metadata is cleaned up as the directory objects are read in and written back
-out again.
-
-Hard links
-----------
-Hard links do not interact well with snapshots. A file is snapshotted when its
-primary link is part of a SnapRealm; other links *will not* preserve data.
-Generally the location where a file was first created will be its primary link,
-but if the original link has been deleted it is not easy (nor always
-determnistic) to find which link is now the primary.
-
-Multi-FS
----------
-Snapshots and multiiple filesystems don't interact well. Specifically, each
-MDS cluster allocates `snapids` independently; if you have multiple filesystems
-sharing a single pool (via namespaces), their snapshots *will* collide and
-deleting one will result in missing file data for others. (This may even be
-invisible, not throwing errors to the user.) If each FS gets its own
-pool things probably work, but this isn't tested and may not be true.
diff --git a/src/ceph/doc/dev/cephx_protocol.rst b/src/ceph/doc/dev/cephx_protocol.rst
deleted file mode 100644
index 45c7440..0000000
--- a/src/ceph/doc/dev/cephx_protocol.rst
+++ /dev/null
@@ -1,335 +0,0 @@
-============================================================
-A Detailed Description of the Cephx Authentication Protocol
-============================================================
-Peter Reiher
-7/13/12
-
-This document provides deeper detail on the Cephx authorization protocol whose high level flow
-is described in the memo by Yehuda (12/19/09). Because this memo discusses details of
-routines called and variables used, it represents a snapshot. The code might be changed
-subsequent to the creation of this document, and the document is not likely to be updated in
-lockstep. With luck, code comments will indicate major changes in the way the protocol is
-implemented.
-
-Introduction
--------------
-
-The basic idea of the protocol is based on Kerberos. A client wishes to obtain something from
-a server. The server will only offer the requested service to authorized clients. Rather
-than requiring each server to deal with authentication and authorization issues, the system
-uses an authorization server. Thus, the client must first communicate with the authorization
-server to authenticate itself and to obtain credentials that will grant it access to the
-service it wants.
-
-Authorization is not the same as authentication. Authentication provides evidence that some
-party is who it claims to be. Authorization provides evidence that a particular party is
-allowed to do something. Generally, secure authorization implies secure authentication
-(since without authentication, you may authorize something for an imposter), but the reverse
-is not necessarily true. One can authenticate without authorizing. The purpose
-of this protocol is to authorize.
-
-The basic approach is to use symmetric cryptography throughout. Each client C has its own
-secret key, known only to itself and the authorization server A. Each server S has its own
-secret key, known only to itself and the authorization server A. Authorization information
-will be passed in tickets, encrypted with the secret key of the entity that offers the service.
-There will be a ticket that A gives to C, which permits C to ask A for other tickets. This
-ticket will be encrypted with A's key, since A is the one who needs to check it. There will
-later be tickets that A issues that allow C to communicate with S to ask for service. These
-tickets will be encrypted with S's key, since S needs to check them. Since we wish to provide
-security of the communications, as well, session keys are set up along with the tickets.
-Currently, those session keys are only used for authentication purposes during this protocol
-and the handshake between the client C and the server S, when the client provides its service
-ticket. They could be used for authentication or secrecy throughout, with some changes to
-the system.
-
-Several parties need to prove something to each other if this protocol is to achieve its
-desired security effects.
-
-1. The client C must prove to the authenticator A that it really is C. Since everything
-is being done via messages, the client must also prove that the message proving authenticity
-is fresh, and is not being replayed by an attacker.
-
-2. The authenticator A must prove to client C that it really is the authenticator. Again,
-proof that replay is not occurring is also required.
-
-3. A and C must securely share a session key to be used for distribution of later
-authorization material between them. Again, no replay is allowable, and the key must be
-known only to A and C.
-
-4. A must receive evidence from C that allows A to look up C's authorized operations with
-server S.
-
-5. C must receive a ticket from A that will prove to S that C can perform its authorized
-operations. This ticket must be usable only by C.
-
-6. C must receive from A a session key to protect the communications between C and S. The
-session key must be fresh and not the result of a replay.
-
-Getting Started With Authorization
------------------------------------
-
-When the client first needs to get service, it contacts the monitor. At the moment, it has
-no tickets. Therefore, it uses the "unknown" protocol to talk to the monitor. This protocol
-is specified as ``CEPH_AUTH_UNKNOWN``. The monitor also takes on the authentication server
-role, A. The remainder of the communications will use the cephx protocol (most of whose code
-will be found in files in ``auth/cephx``). This protocol is responsible for creating and
-communicating the tickets spoken of above.
-
-Currently, this document does not follow the pre-cephx protocol flow. It starts up at the
-point where the client has contacted the server and is ready to start the cephx protocol itself.
-
-Once we are in the cephx protocol, we can get the tickets. First, C needs a ticket that
-allows secure communications with A. This ticket can then be used to obtain other tickets.
-This is phase I of the protocol, and consists of a send from C to A and a response from A to C.
-Then, C needs a ticket to allow it to talk to S to get services. This is phase II of the
-protocol, and consists of a send from C to A and a response from A to C.
-
-Phase I:
---------
-
-The client is set up to know that it needs certain things, using a variable called ``need``,
-which is part of the ``AuthClientHandler`` class, which the ``CephxClientHandler`` inherits
-from. At this point, one thing that's encoded in the ``need`` variable is
-``CEPH_ENTITY_TYPE_AUTH``, indicating that we need to start the authentication protocol
-from scratch. Since we're always talking to the same authorization server, if we've gone
-through this step of the protocol before (and the resulting ticket/session hasn't timed out),
-we can skip this step and just ask for client tickets. But it must be done initially, and
-we'll assume that we are in that state.
-
-The message C sends to A in phase I is build in ``CephxClientHandler::build_request()`` (in
-``auth/cephx/CephxClientHandler.cc``). This routine is used for more than one purpose.
-In this case, we first call ``validate_tickets()`` (from routine
-``CephXTicektManager::validate_tickets()`` which lives in ``auth/cephx/CephxProtocol.h``).
-This code runs through the list of possible tickets to determine what we need, setting values
-in the ``need`` flag as necessary. Then we call ``ticket.get_handler()``. This routine
-(in ``CephxProtocol.h``) finds a ticket of the specified type (a ticket to perform
-authorization) in the ticket map, creates a ticket handler object for it, and puts the
-handler into the right place in the map. Then we hit specialized code to deal with individual
-cases. The case here is when we still need to authenticate to A (the
-``if (need & CEPH_ENTITY_TYPE_AUTH)`` branch).
-
-We now create a message of type ``CEPH_AUTH_UNKNOWN``. We need to authenticate
-this message with C's secret key, so we fetch that from the local key repository. (It's
-called a key server in the code, but it's not really a separate machine or processing entity.
-It's more like the place where locally used keys are kept.) We create a
-random challenge, whose purpose is to prevent replays. We encrypt that challenge. We already
-have a server challenge (a similar set of random bytes, but created by the server and sent to
-the client) from our pre-cephx stage. We take both challenges and our secret key and
-produce a combined encrypted challenge value, which goes into ``req.key``.
-
-If we have an old ticket, we store it in ``req.old_ticket``. We're about to get a new one.
-
-The entire ``req`` structure, including the old ticket and the cryptographic hash of the two
-challenges, gets put into the message. Then we return from this function, and the
-message is sent.
-
-We now switch over to the authenticator side, A. The server receives the message that was
-sent, of type ``CEPH_AUTH_UNKNOWN``. The message gets handled in ``prep_auth()``,
-in ``mon/AuthMonitor.cc``, which calls ``handle_request()`` is ``CephxServiceHandler.cc`` to
-do most of the work. This routine, also, handles multiple cases.
-
-The control flow is determined by the ``request_type`` in the ``cephx_header`` associated
-with the message. Our case here is ``CEPH_AUTH_UNKNOWN``. We need the
-secret key A shares with C, so we call ``get_secret()`` from out local key repository to get
-it. We should have set up a server challenge already with this client, so we make sure
-we really do have one. (This variable is specific to a ``CephxServiceHandler``, so there
-is a different one for each such structure we create, presumably one per client A is
-dealing with.) If there is no challenge, we'll need to start over, since we need to
-check the client's crypto hash, which depends on a server challenge, in part.
-
-We now call the same routine the client used to calculate the hash, based on the same values:
-the client challenge (which is in the incoming message), the server challenge (which we saved),
-and the client's key (which we just obtained). We check to see if the client sent the same
-thing we expected. If so, we know we're talking to the right client. We know the session is
-fresh, because it used the challenge we sent it to calculate its crypto hash. So we can
-give it an authentication ticket.
-
-We fetch C's ``eauth`` structure. This contains an ID, a key, and a set of caps (capabilities).
-
-The client sent us its old ticket in the message, if it had one. If so, we set a flag,
-``should_enc_ticket``, to true and set the global ID to the global ID in that old ticket.
-If the attempt to decode its old ticket fails (most probably because it didn't have one),
-``should_enc_ticket`` remains false. Now we set up the new ticket, filling in timestamps,
-the name of C, the global ID provided in the method call (unless there was an old ticket), and
-his ``auid``, obtained from the ``eauth`` structure obtained above. We need a new session key
-to help the client communicate securely with us, not using its permanent key. We set the
-service ID to ``CEPH_ENTITY_TYPE_AUTH``, which will tell the client C what to do with the
-message we send it. We build a cephx response header and call
-``cephx_build_service_ticket_reply()``.
-
-``cephx_build_service_ticket_reply()`` is in ``auth/cephx/CephxProtocol.cc``. This
-routine will build up the response message. Much of it copies data from its parameters to
-a message structure. Part of that information (the session key and the validity period)
-gets encrypted with C's permanent key. If the ``should_encrypt_ticket`` flag is set,
-encrypt it using the old ticket's key. Otherwise, there was no old ticket key, so the
-new ticket is not encrypted. (It is, of course, already encrypted with A's permanent key.)
-Presumably the point of this second encryption is to expose less material encrypted with
-permanent keys.
-
-Then we call the key server's ``get_service_caps()`` routine on the entity name, with a
-flag ``CEPH_ENTITY_TYPE_MON``, and capabilities, which will be filled in by this routine.
-The use of that constant flag means we're going to get the client's caps for A, not for some
-other data server. The ticket here is to access the authorizer A, not the service S. The
-result of this call is that the caps variable (a parameter to the routine we're in) is
-filled in with the monitor capabilities that will allow C to access A's authorization services.
-
-``handle_request()`` itself does not send the response message. It builds up the
-``result_bl``, which basically holds that message's contents, and the capabilities structure,
-but it doesn't send the message. We go back to ``prep_auth()``, in ``mon/AuthMonitor.cc``,
-for that. This routine does some fiddling around with the caps structure that just got
-filled in. There's a global ID that comes up as a result of this fiddling that is put into
-the reply message. The reply message is built here (mostly from the ``response_bl`` buffer)
-and sent off.
-
-This completes Phase I of the protocol. At this point, C has authenticated itself to A, and A has generated a new session key and ticket allowing C to obtain server tickets from A.
-
-Phase II
---------
-
-This phase starts when C receives the message from A containing a new ticket and session key.
-The goal of this phase is to provide C with a session key and ticket allowing it to
-communicate with S.
-
-The message A sent to C is dispatched to ``build_request()`` in ``CephxClientHandler.cc``,
-the same routine that was used early in Phase I to build the first message in the protocol.
-This time, when ``validate_tickets()`` is called, the ``need`` variable will not contain
-``CEPH_ENTITY_TYPE_AUTH``, so a different branch through the bulk of the routine will be
-used. This is the branch indicated by ``if (need)``. We have a ticket for the authorizer,
-but we still need service tickets.
-
-We must send another message to A to obtain the tickets (and session key) for the server
-S. We set the ``request_type`` of the message to ``CEPHX_GET_PRINCIPAL_SESSION_KEY`` and
-call ``ticket_handler.build_authorizer()`` to obtain an authorizer. This routine is in
-``CephxProtocol.cc``. We set the key for this authorizer to be the session key we just got
-from A,and create a new nonce. We put the global ID, the service ID, and the ticket into a
-message buffer that is part of the authorizer. Then we create a new ``CephXAuthorize``
-structure. The nonce we just created goes there. We encrypt this ``CephXAuthorize``
-structure with the current session key and stuff it into the authorizer's buffer. We
-return the authorizer.
-
-Back in ``build_request()``, we take the part of the authorizer that was just built (its
-buffer, not the session key or anything else) and shove it into the buffer we're creating
-for the message that will go to A. Then we delete the authorizer. We put the requirements
-for what we want in ``req.keys``, and we put ``req`` into the buffer. Then we return, and
-the message gets sent.
-
-The authorizer A receives this message which is of type ``CEPHX_GET_PRINCIPAL_SESSION_KEY``.
-The message gets handled in ``prep_auth()``, in ``mon/AuthMonitor.cc``, which again calls
-``handle_request()`` in ``CephxServiceHandler.cc`` to do most of the work.
-
-In this case, ``handle_request()`` will take the ``CEPHX_GET_PRINCIPAL_SESSION_KEY`` case.
-It will call ``cephx_verify_authorizer()`` in ``CephxProtocol.cc``. Here, we will grab
-a bunch of data out of the input buffer, including the global and service IDs and the ticket
-for A. The ticket contains a ``secret_id``, indicating which key is being used for it.
-If the secret ID pulled out of the ticket was -1, the ticket does not specify which secret
-key A should use. In this case, A should use the key for the specific entity that C wants
-to contact, rather than a rotating key shared by all server entities of the same type.
-To get that key, A must consult the key repository to find the right key. Otherwise,
-there's already a structure obtained from the key repository to hold the necessary secret.
-Server secrets rotate on a time expiration basis (key rotation is not covered in this
-document), so run through that structure to find its current secret. Either way, A now
-knows the secret key used to create this ticket. Now decrypt the encrypted part of the
-ticket, using this key. It should be a ticket for A.
-
-The ticket also contains a session key that C should have used to encrypt other parts of
-this message. Use that session key to decrypt the rest of the message.
-
-Create a ``CephXAuthorizeReply`` to hold our reply. Extract the nonce (which was in the stuff
-we just decrypted), add 1 to it, and put the result in the reply. Encrypt the reply and
-put it in the buffer provided in the call to ``cephx_verify_authorizer()`` and return
-to ``handle_request()``. This will be used to prove to C that A (rather than an attacker)
-created this response.
-
-Having verified that the message is valid and from C, now we need to build it a ticket for S.
-We need to know what S it wants to communicate with and what services it wants. Pull the
-ticket request that describes those things out of its message. Now run through the ticket
-request to see what it wanted. (He could potentially be asking for multiple different
-services in the same request, but we will assume it's just one, for this discussion.) Once we
-know which service ID it's after, call ``build_session_auth_info()``.
-
-``build_session_auth_info()`` is in ``CephxKeyServer.cc``. It checks to see if the
-secret for the ``service_ID`` of S is available and puts it into the subfield of one of
-the parameters, and calls the similarly named ``_build_session_auth_info()``, located in
-the same file. This routine loads up the new ``auth_info`` structure with the
-ID of S, a ticket, and some timestamps for that ticket. It generates a new session key
-and puts it in the structure. It then calls ``get_caps()`` to fill in the
-``info.ticket`` caps field. ``get_caps()`` is also in ``CephxKeyServer.cc``. It fills the
-``caps_info`` structure it is provided with caps for S allowed to C.
-
-Once ``build_session_auth_info()`` returns, A has a list of the capabilities allowed to
-C for S. We put a validity period based on the current TTL for this context into the info
-structure, and put it into the ``info_vec`` structure we are preparing in response to the
-message.
-
-Now call ``build_cephx_response_header()``, also in ``CephxServiceHandler.cc``. Fill in
-the ``request_type``, which is ``CEPHX_GET_PRINCIPAL_SESSION_KEY``, a status of 0,
-and the result buffer.
-
-Now call ``cephx_build_service_ticket_reply()``, which is in ``CephxProtocol.cc``. The
-same routine was used towards the end of A's handling of its response in phase I. Here,
-the session key (now a session key to talk to S, not A) and the validity period for that
-key will be encrypted with the existing session key shared between C and A.
-The ``should_encrypt_ticket`` parameter is false here, and no key is provided for that
-encryption. The ticket in question, destined for S once C sends it there, is already
-encrypted with S's secret. So, essentially, this routine will put ID information,
-the encrypted session key, and the ticket allowing C to talk to S into the buffer to
-be sent to C.
-
-After this routine returns, we exit from ``handle_request()``, going back to ``prep_auth()``
-and ultimately to the underlying message send code.
-
-The client receives this message. The nonce is checked as the message passes through
-``Pipe::connect()``, which is in ``msg/SimpleMessager.cc``. In a lengthy ``while(1)`` loop in
-the middle of this routine, it gets an authorizer. If the get was successful, eventually
-it will call ``verify_reply()``, which checks the nonce. ``connect()`` never explicitly
-checks to see if it got an authorizer, which would suggest that failure to provide an
-authorizer would allow an attacker to skip checking of the nonce. However, in many places,
-if there is no authorizer, important connection fields will get set to zero, which will
-ultimately cause the connection to fail to provide data. It would be worth testing, but
-it looks like failure to provide an authorizer, which contains the nonce, would not be helpful
-to an attacker.
-
-The message eventually makes its way through to ``handle_response()``, in
-``CephxClientHandler.cc``. In this routine, we call ``get_handler()`` to get a ticket
-handler to hold the ticket we have just received. This routine is embedded in the definition
-for a ``CephXTicketManager`` structure. It takes a type (``CEPH_ENTITY_TYPE_AUTH``, in
-this case) and looks through the ``tickets_map`` to find that type. There should be one, and
-it should have the session key of the session between C and A in its entry. This key will
-be used to decrypt the information provided by A, particularly the new session key allowing
-C to talk to S.
-
-We then call ``verify_service_ticket_reply()``, in ``CephxProtocol.cc``. This routine
-needs to determine if the ticket is OK and also obtain the session key associated with this
-ticket. It decrypts the encrypted portion of the message buffer, using the session key
-shared with A. This ticket was not encrypted (well, not twice - tickets are always encrypted,
-but sometimes double encrypted, which this one isn't). So it can be stored in a service
-ticket buffer directly. We now grab the ticket out of that buffer.
-
-The stuff we decrypted with the session key shared between C and A included the new session
-key. That's our current session key for this ticket, so set it. Check validity and
-set the expiration times. Now return true, if we got this far.
-
-Back in ``handle_response()``, we now call ``validate_tickets()`` to adjust what we think
-we need, since we now have a ticket we didn't have before. If we've taken care of
-everything we need, we'll return 0.
-
-This ends phase II of the protocol. We have now successfully set up a ticket and session key
-for client C to talk to server S. S will know that C is who it claims to be, since A will
-verify it. C will know it is S it's talking to, again because A verified it. The only
-copies of the session key for C and S to communicate were sent encrypted under the permanent
-keys of C and S, respectively, so no other party (excepting A, who is trusted by all) knows
-that session key. The ticket will securely indicate to S what C is allowed to do, attested
-to by A. The nonces passed back and forth between A and C ensure that they have not been
-subject to a replay attack. C has not yet actually talked to S, but it is ready to.
-
-Much of the security here falls apart if one of the permanent keys is compromised. Compromise
-of C's key means that the attacker can pose as C and obtain all of C's privileges, and can
-eavesdrop on C's legitimate conversations. He can also pretend to be A, but only in
-conversations with C. Since it does not (by hypothesis) have keys for any services, he
-cannot generate any new tickets for services, though it can replay old tickets and session
-keys until S's permanent key is changed or the old tickets time out.
-
-Compromise of S's key means that the attacker can pose as S to anyone, and can eavesdrop on
-any user's conversation with S. Unless some client's key is also compromised, the attacker
-cannot generate new fake client tickets for S, since doing so requires it to authenticate
-himself as A, using the client key it doesn't know.
diff --git a/src/ceph/doc/dev/config.rst b/src/ceph/doc/dev/config.rst
deleted file mode 100644
index 572ba8d..0000000
--- a/src/ceph/doc/dev/config.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-=================================
- Configuration Management System
-=================================
-
-The configuration management system exists to provide every daemon with the
-proper configuration information. The configuration can be viewed as a set of
-key-value pairs.
-
-How can the configuration be set? Well, there are several sources:
- - the ceph configuration file, usually named ceph.conf
- - command line arguments::
- --debug-ms=1
- --debug-pg=10
- etc.
- - arguments injected at runtime by using injectargs
-
-
-The Configuration File
-======================
-
-Most configuration settings originate in the Ceph configuration file.
-
-How do we find the configuration file? Well, in order, we check:
- - the default locations
- - the environment variable CEPH_CONF
- - the command line argument -c
-
-Each stanza of the configuration file describes the key-value pairs that will be in
-effect for a particular subset of the daemons. The "global" stanza applies to
-everything. The "mon", "osd", and "mds" stanzas specify settings to take effect
-for all monitors, all OSDs, and all mds servers, respectively. A stanza of the
-form mon.$name, osd.$name, or mds.$name gives settings for the monitor, OSD, or
-MDS of that name, respectively. Configuration values that appear later in the
-file win over earlier ones.
-
-A sample configuration file can be found in src/sample.ceph.conf.
-
-
-Metavariables
-=============
-
-The configuration system allows any configuration value to be
-substituted into another value using the ``$varname`` syntax, similar
-to how bash shell expansion works.
-
-A few additional special metavariables are also defined:
- - $host: expands to the current hostname
- - $type: expands to one of "mds", "osd", "mon", or "client"
- - $id: expands to the daemon identifier. For ``osd.0``, this would be ``0``; for ``mds.a``, it would be ``a``; for ``client.admin``, it would be ``admin``.
- - $num: same as $id
- - $name: expands to $type.$id
-
-
-Reading configuration values
-====================================================
-
-There are two ways for Ceph code to get configuration values. One way is to
-read it directly from a variable named "g_conf," or equivalently,
-"g_ceph_ctx->_conf." The other is to register an observer that will be called
-every time the relevant configuration values changes. This observer will be
-called soon after the initial configuration is read, and every time after that
-when one of the relevant values changes. Each observer tracks a set of keys
-and is invoked only when one of the relevant keys changes.
-
-The interface to implement is found in common/config_obs.h.
-
-The observer method should be preferred in new code because
- - It is more flexible, allowing the code to do whatever reinitialization needs
- to be done to implement the new configuration value.
- - It is the only way to create a std::string configuration variable that can
- be changed by injectargs.
- - Even for int-valued configuration options, changing the values in one thread
- while another thread is reading them can lead to subtle and
- impossible-to-diagnose bugs.
-
-For these reasons, reading directly from g_conf should be considered deprecated
-and not done in new code. Do not ever alter g_conf.
-
-Changing configuration values
-====================================================
-
-Configuration values can be changed by calling g_conf->set_val. After changing
-the configuration, you should call g_conf->apply_changes to re-run all the
-affected configuration observers. For convenience, you can call
-g_conf->set_val_or_die to make a configuration change which you think should
-never fail.
-
-Injectargs, parse_argv, and parse_env are three other functions which modify
-the configuration. Just like with set_val, you should call apply_changes after
-calling these functions to make sure your changes get applied.
-
-
-Defining config options
-=======================
-
-New-style config options are defined in common/options.cc. All new config
-options should go here (and not into legacy_config_opts.h).
-
-Levels
-------
-
-The Option constructor takes a "level" value:
-
-* *LEVEL_BASIC* is for basic config options that a normal operator is likely to adjust.
-* *LEVEL_ADVANCED* is for options that an operator *can* adjust, but should not touch unless they understand what they are doing. Adjusting advanced options poorly can lead to problems (performance or even data loss) if done incorrectly.
-* *LEVEL_DEV* is for options in place for use by developers only, either for testing purposes, or to describe constants that no user should adjust but we prefer not to compile into the code.
-
-Description and long description
---------------------------------
-
-Short description of the option. Sentence fragment. e.g.::
-
- .set_description("Default checksum algorithm to use")
-
-The long description is complete sentences, perhaps even multiple
-paragraphs, and may include other detailed information or notes.::
-
- .set_long_description("crc32c, xxhash32, and xxhash64 are available. The _16 and _8 variants use only a subset of the bits for more compact (but less reliable) checksumming.")
-
-Default values
---------------
-
-There is a default value for every config option. In some cases, there may
-also be a *daemon default* that only applies to code that declares itself
-as a daemon (in thise case, the regular default only applies to non-daemons).
-
-Safety
-------
-
-If an option can be safely changed at runtime::
-
- .set_safe()
-
-Service
--------
-
-Service is a component name, like "common", "osd", "rgw", "mds", etc. It may
-be a list of components, like::
-
- .add_service("mon mds osd mgr")
-
-For example, the rocksdb options affect both the osd and mon.
-
-Tags
-----
-
-Tags identify options across services that relate in some way. Example include;
-
- - network -- options affecting network configuration
- - mkfs -- options that only matter at mkfs time
-
-Enums
------
-
-For options with a defined set of allowed values::
-
- .set_enum_allowed({"none", "crc32c", "crc32c_16", "crc32c_8", "xxhash32", "xxhash64"})
diff --git a/src/ceph/doc/dev/confusing.txt b/src/ceph/doc/dev/confusing.txt
deleted file mode 100644
index a860c25..0000000
--- a/src/ceph/doc/dev/confusing.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-About this Document
-This document contains procedures for a new customer to configure a Ceph System.
-Before You Begin
-Before you begin configuring your system for Ceph, use the following checklist to decide what type of system you need.
-1. Identify the amount of storage that you need based on your current data, network traffic, workload, and other parameters
-2. Identify the growth potential for your business so that you can project ahead for future storage needs.
-3. Plan ahead for redundancy and replacement options.
-4. Study market forecasts and how they affect your business.
-Preparing a Ceph Cluster
-A Ceph cluster consists of the following core components:
-1. Monitors – These must be an odd number, such as one, three, or five. Three is the preferred configuration.
-2. Object Storage Devices (OSD) – used as storage nodes
-3. Metadata Servers (MDS)
-Although Ceph is extremely scalable, and nodes can be added any time on an as-needed basis, it is important to first determine the base needs of your configuration prior to setting up your system. This will save time and money in the long run. The following table offers a guideline on how many components your business should obtain prior to configuring your Ceph Cluster.
-Size/Workload Monitors OSD MDS Bandwidth
-Small/low 1 10 0-1 ???
-Small/average 3 23 1-3 ???
-Small/high 3 or more 30 3-5 ???
-Medium/low 3 20 1 ???
-Medium/average 3 30 1-3 ???
-Medium/high 3 or more 1000 3-5 ???
-Large/low 3 30 1 ???
-Large/average 3 or more 50 1-3 ???
-Large/high 3 or more 2000 3-10 ???
- Warning: If you are using a low bandwidth system, and are connecting to the cluster over the internet, you must use the librados object level interface, and your OSDs must be located in the same data center.
-Sample Configuration
-The figure below shows a sample Ceph Configuration.
-img cephconfig.jpg
-
-Related Documentation
-Once you have determined your configuration needs, make sure you have access to the following documents:
-• Ceph Installation and Configuration Guide
-• Ceph System Administration Guide
-• Ceph Troubleshooting Manual
-
-
diff --git a/src/ceph/doc/dev/context.rst b/src/ceph/doc/dev/context.rst
deleted file mode 100644
index 1a2b2cb..0000000
--- a/src/ceph/doc/dev/context.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-=============
- CephContext
-=============
-
-A CephContext represents a single view of the Ceph cluster. It comes complete
-with a configuration, a set of performance counters (PerfCounters), and a
-heartbeat map. You can find more information about CephContext in
-src/common/ceph_context.h.
-
-Generally, you will have only one CephContext in your application, called
-g_ceph_context. However, in library code, it is possible that the library user
-will initialize multiple CephContexts. For example, this would happen if he
-called rados_create more than once.
-
-A ceph context is required to issue log messages. Why is this? Well, without
-the CephContext, we would not know which log messages were disabled and which
-were enabled. The dout() macro implicitly references g_ceph_context, so it
-can't be used in library code. It is fine to use dout and derr in daemons, but
-in library code, you must use ldout and lderr, and pass in your own CephContext
-object. The compiler will enforce this restriction.
diff --git a/src/ceph/doc/dev/corpus.rst b/src/ceph/doc/dev/corpus.rst
deleted file mode 100644
index 76fa43d..0000000
--- a/src/ceph/doc/dev/corpus.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-
-Corpus structure
-================
-
-ceph.git/ceph-object-corpus is a submodule.::
-
- bin/ # misc scripts
- archive/$version/objects/$type/$hash # a sample of encoded objects from a specific version
-
-You can also mark known or deliberate incompatibilities between versions with::
-
- archive/$version/forward_incompat/$type
-
-The presence of a file indicates that new versions of code cannot
-decode old objects across that $version (this is normally the case).
-
-
-How to generate an object corpus
---------------------------------
-
-We can generate an object corpus for a particular version of ceph like so.
-
-#. Checkout a clean repo (best not to do this where you normally work)::
-
- git clone ceph.git
- cd ceph
- git submodule update --init --recursive
-
-#. Build with flag to dump objects to /tmp/foo::
-
- rm -rf /tmp/foo ; mkdir /tmp/foo
- ./do_autogen.sh -e /tmp/foo
- make
-
-#. Start via vstart::
-
- cd src
- MON=3 OSD=3 MDS=3 RGW=1 ./vstart.sh -n -x
-
-#. Use as much functionality of the cluster as you can, to exercise as many object encoder methods as possible::
-
- ./rados -p rbd bench 10 write -b 123
- ./ceph osd out 0
- ./init-ceph stop osd.1
- for f in ../qa/workunits/cls/*.sh ; do PATH=".:$PATH" $f ; done
- ../qa/workunits/rados/test.sh
- ./ceph_test_librbd
- ./ceph_test_libcephfs
- ./init-ceph restart mds.a
-
-Do some more stuff with rgw if you know how.
-
-#. Stop::
-
- ./stop.sh
-
-#. Import the corpus (this will take a few minutes)::
-
- test/encoding/import.sh /tmp/foo `./ceph-dencoder version` ../ceph-object-corpus/archive
- test/encoding/import-generated.sh ../ceph-object-corpus/archive
-
-#. Prune it! There will be a bazillion copies of various objects, and we only want a representative sample.::
-
- pushd ../ceph-object-corpus
- bin/prune-archive.sh
- popd
-
-#. Verify the tests pass::
-
- make check-local
-
-#. Commit it to the corpus repo and push::
-
- pushd ../ceph-object-corpus
- git checkout -b wip-new
- git add archive/`../src/ceph-dencoder version`
- git commit -m `../src/ceph-dencoder version`
- git remote add cc ceph.com:/git/ceph-object-corpus.git
- git push cc wip-new
- popd
-
-#. Go test it out::
-
- cd my/regular/tree
- cd ceph-object-corpus
- git fetch origin
- git checkout wip-new
- cd ../src
- make check-local
-
-#. If everything looks good, update the submodule master branch, and commit the submodule in ceph.git.
-
-
-
-
diff --git a/src/ceph/doc/dev/cpu-profiler.rst b/src/ceph/doc/dev/cpu-profiler.rst
deleted file mode 100644
index d7a77fe..0000000
--- a/src/ceph/doc/dev/cpu-profiler.rst
+++ /dev/null
@@ -1,54 +0,0 @@
-=====================
- Installing Oprofile
-=====================
-
-The easiest way to profile Ceph's CPU consumption is to use the `oprofile`_
-system-wide profiler.
-
-.. _oprofile: http://oprofile.sourceforge.net/about/
-
-Installation
-============
-
-If you are using a Debian/Ubuntu distribution, you can install ``oprofile`` by
-executing the following::
-
- sudo apt-get install oprofile oprofile-gui
-
-
-Compiling Ceph for Profiling
-============================
-
-To compile Ceph for profiling, first clean everything. ::
-
- make distclean
-
-Then, export the following settings so that you can see callgraph output. ::
-
- export CFLAGS="-fno=omit-frame-pointer -O2 -g"
-
-Finally, compile Ceph. ::
-
- ./autogen.sh
- ./configure
- make
-
-You can use ``make -j`` to execute multiple jobs depending upon your system. For
-example::
-
- make -j4
-
-
-Ceph Configuration
-==================
-
-Ensure that you disable ``lockdep``. Consider setting logging to
-levels appropriate for a production cluster. See `Ceph Logging and Debugging`_
-for details.
-
-.. _Ceph Logging and Debugging: ../../rados/troubleshooting/log-and-debug
-
-See the `CPU Profiling`_ section of the RADOS Troubleshooting documentation for details on using Oprofile.
-
-
-.. _CPU Profiling: ../../rados/troubleshooting/cpu-profiling \ No newline at end of file
diff --git a/src/ceph/doc/dev/delayed-delete.rst b/src/ceph/doc/dev/delayed-delete.rst
deleted file mode 100644
index bf5f65a..0000000
--- a/src/ceph/doc/dev/delayed-delete.rst
+++ /dev/null
@@ -1,12 +0,0 @@
-=========================
- CephFS delayed deletion
-=========================
-
-When you delete a file, the data is not immediately removed. Each
-object in the file needs to be removed independently, and sending
-``size_of_file / stripe_size * replication_count`` messages would slow
-the client down too much, and use a too much of the clients
-bandwidth. Additionally, snapshots may mean some objects should not be
-deleted.
-
-Instead, the file is marked as deleted on the MDS, and deleted lazily.
diff --git a/src/ceph/doc/dev/dev_cluster_deployement.rst b/src/ceph/doc/dev/dev_cluster_deployement.rst
deleted file mode 100644
index 0e6244e..0000000
--- a/src/ceph/doc/dev/dev_cluster_deployement.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-=================================
- Deploying a development cluster
-=================================
-
-In order to develop on ceph, a Ceph utility,
-*vstart.sh*, allows you to deploy fake local cluster for development purpose.
-
-Usage
-=====
-
-It allows to deploy a fake local cluster on your machine for development purpose. It starts rgw, mon, osd and/or mds, or all of them if not specified.
-
-To start your development cluster, type the following::
-
- vstart.sh [OPTIONS]...
-
-In order to stop the cluster, you can type::
-
- ./stop.sh
-
-Options
-=======
-
-.. option:: -i ip_address
-
- Bind to the specified *ip_address* instead of guessing and resolve from hostname.
-
-.. option:: -k
-
- Keep old configuration files instead of overwritting theses.
-
-.. option:: -l, --localhost
-
- Use localhost instead of hostanme.
-
-.. option:: -m ip[:port]
-
- Specifies monitor *ip* address and *port*.
-
-.. option:: -n, --new
-
- Create a new cluster.
-
-.. option:: -o config
-
- Add *config* to all sections in the ceph configuration.
-
-.. option:: --nodaemon
-
- Use ceph-run as wrapper for mon/osd/mds.
-
-.. option:: --smallmds
-
- Configure mds with small limit cache size.
-
-.. option:: -x
-
- Enable Cephx (on by default).
-
-.. option:: -X
-
- Disable Cephx.
-
-.. option:: -d, --debug
-
- Launch in debug mode
-
-.. option:: --valgrind[_{osd,mds,mon}] 'valgrind_toolname [args...]'
-
- Launch the osd/mds/mon/all the ceph binaries using valgrind with the specified tool and arguments.
-
-.. option:: --bluestore
-
- Use bluestore as the objectstore backend for osds
-
-.. option:: --memstore
-
- Use memstore as the objectstore backend for osds
-
-.. option:: --cache <pool>
-
- Set a cache-tier for the specified pool
-
-
-Environment variables
-=====================
-
-{OSD,MDS,MON,RGW}
-
-Theses environment variables will contains the number of instances of the desired ceph process you want to start.
-
-Example: ::
-
- OSD=3 MON=3 RGW=1 vstart.sh
-
-
-============================================================
- Deploying multiple development clusters on the same machine
-============================================================
-
-In order to bring up multiple ceph clusters on the same machine, *mstart.sh* a
-small wrapper around the above *vstart* can help.
-
-Usage
-=====
-
-To start multiple clusters, you would run mstart for each cluster you would want
-to deploy, and it will start monitors, rgws for each cluster on different ports
-allowing you to run multiple mons, rgws etc. on the same cluster. Invoke it in
-the following way::
-
- mstart.sh <cluster-name> <vstart options>
-
-For eg::
-
- ./mstart.sh cluster1 -n -r
-
-
-For stopping the cluster, you do::
-
- ./mstop.sh <cluster-name>
diff --git a/src/ceph/doc/dev/development-workflow.rst b/src/ceph/doc/dev/development-workflow.rst
deleted file mode 100644
index b2baea1..0000000
--- a/src/ceph/doc/dev/development-workflow.rst
+++ /dev/null
@@ -1,250 +0,0 @@
-=====================
-Development workflows
-=====================
-
-This page explains the workflows a developer is expected to follow to
-implement the goals that are part of the Ceph release cycle. It does not
-go into technical details and is designed to provide a high level view
-instead. Each chapter is about a given goal such as ``Merging bug
-fixes or features`` or ``Publishing point releases and backporting``.
-
-A key aspect of all workflows is that none of them blocks another. For
-instance, a bug fix can be backported and merged to a stable branch
-while the next point release is being published. For that specific
-example to work, a branch should be created to avoid any
-interference. In practice it is not necessary for Ceph because:
-
-* there are few people involved
-* the frequency of backports is not too high
-* the reviewers, who know a release is being published, are unlikely
- to merge anything that may cause issues
-
-This ad-hoc approach implies the workflows are changed on a regular
-basis to adapt. For instance, ``quality engineers`` were not involved
-in the workflow to publish ``dumpling`` point releases. The number of
-commits being backported to ``firefly`` made it impractical for developers
-tasked to write code or fix bugs to also run and verify the full suite
-of integration tests. Inserting ``quality engineers`` makes it
-possible for someone to participate in the workflow by analyzing test
-results.
-
-The workflows are not enforced when they impose an overhead that does
-not make sense. For instance, if the release notes for a point release
-were not written prior to checking all integration tests, they can be
-commited to the stable branch and the result sent for publication
-without going through another run of integration tests.
-
-Release Cycle
-=============
-
-::
-
- Ceph hammer infernalis
- Developer CDS CDS
- Summit | |
- | |
- development | |
- release | v0.88 v0.89 v0.90 ... | v9.0.0
- --v--^----^--v---^------^--v- ---v----^----^--- 2015
- | | | |
- stable giant | | hammer
- release v0.87 | | v0.94
- | |
- point firefly dumpling
- release v0.80.8 v0.67.12
-
-
-Four times a year, the development roadmap is discussed online during
-the `Ceph Developer Summit <http://tracker.ceph.com/projects/ceph/wiki/Planning#Ceph-Developer-Summit>`_. A
-new stable release (hammer, infernalis, jewel ...) is published at the same
-frequency. Every other release (firefly, hammer, jewel...) is a `Long Term
-Stable (LTS) <../../releases>`_. See `Understanding the release cycle
-<../../releases#understanding-the-release-cycle>`_ for more information.
-
-Merging bug fixes or features
-=============================
-
-The development branch is ``master`` and the workflow followed by all
-developers can be summarized as follows:
-
-* The developer prepares a series of commits
-* The developer submits the series of commits via a pull request
-* A reviewer is assigned the pull request
-* When the pull request looks good to the reviewer, it is merged into
- an integration branch by the tester
-* After a successful run of integration tests, the pull request is
- merged by the tester
-
-The ``developer`` is the author of a series of commits. The
-``reviewer`` is responsible for providing feedback to the developer on
-a regular basis and the developer is invited to ping the reviewer if
-nothing happened after a week. After the ``reviewer`` is satisfied
-with the pull request, (s)he passes it to the ``tester``. The
-``tester`` is responsible for running teuthology integration tests on
-the pull request. If nothing happens within a month the ``reviewer`` is
-invited to ping the ``tester``.
-
-Resolving bug reports and implementing features
-===============================================
-
-All bug reports and feature requests are in the `issue tracker
-<http://tracker.ceph.com>`_ and the workflow can be summarized as
-follows:
-
-* The reporter creates the issue with priority ``Normal``
-* A developer may pick the issue right away
-* During a bi-weekly bug scrub, the team goes over all new issue and
- assign them a priority
-* The bugs with higher priority are worked on first
-
-Each ``team`` is responsible for a project, managed by leads_.
-
-.. _leads: index#Leads
-
-The ``developer`` assigned to an issue is responsible for it. The
-status of an open issue can be:
-
-* ``New``: it is unclear if the issue needs work.
-* ``Verified``: the bug can be reproduced or showed up multiple times
-* ``In Progress``: the developer is working on it this week
-* ``Pending Backport``: the fix needs to be backported to the stable
- releases listed in the backport field
-
-For each ``Pending Backport`` issue, there exists at least one issue
-in the ``Backport`` tracker to record the work done to cherry pick the
-necessary commits from the master branch to the target stable branch.
-See `the backporter manual
-<http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO>`_ for more
-information.
-
-Running and interpreting teuthology integration tests
-=====================================================
-
-The :doc:`/dev/sepia` runs `teuthology
-<https://github.com/ceph/teuthology/>`_ integration tests `on a regular basis <http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO_monitor_the_automated_tests_AKA_nightlies#Automated-tests-AKA-nightlies>`_ and the
-results are posted on `pulpito <http://pulpito.ceph.com/>`_ and the
-`ceph-qa mailing list <https://ceph.com/irc/>`_.
-
-* The job failures are `analyzed by quality engineers and developers
- <http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO_monitor_the_automated_tests_AKA_nightlies#List-of-suites-and-watchers>`_
-* If the cause is environmental (e.g. network connectivity), an issue
- is created in the `sepia lab project
- <http://tracker.ceph.com/projects/lab/issues/new>`_
-* If the bug is known, a pulpito URL to the failed job is added to the issue
-* If the bug is new, an issue is created
-
-The ``quality engineer`` is either a developer or a member of the QE
-team. There is at least one integration test suite per project:
-
-* `rgw <https://github.com/ceph/ceph/tree/master/qa/suites/rgw>`_ suite
-* `CephFS <https://github.com/ceph/ceph/tree/master/qa/suites/fs>`_ suite
-* `rados <https://github.com/ceph/ceph/tree/master/qa/suites/rados>`_ suite
-* `rbd <https://github.com/ceph/ceph/tree/master/qa/suites/rbd>`_ suite
-
-and many others such as
-
-* `upgrade <https://github.com/ceph/ceph/tree/master/qa/suites/upgrade>`_ suites
-* `power-cyle <https://github.com/ceph/ceph/tree/master/qa/suites/powercycle>`_ suite
-* ...
-
-Preparing a new release
-=======================
-
-A release is prepared in a dedicated branch, different from the
-``master`` branch.
-
-* For a stable releases it is the branch matching the release code
- name (dumpling, firefly, etc.)
-* For a development release it is the ``next`` branch
-
-The workflow expected of all developers to stabilize the release
-candidate is the same as the normal development workflow with the
-following differences:
-
-* The pull requests must target the stable branch or next instead of
- master
-* The reviewer rejects pull requests that are not bug fixes
-* The ``Backport`` issues matching a teuthology test failure and set
- with priority ``Urgent`` must be fixed before the release
-
-Cutting a new stable release
-============================
-
-A new stable release can be cut when:
-
-* all ``Backport`` issues with priority ``Urgent`` are fixed
-* integration and upgrade tests run successfully
-
-Publishing a new stable release implies a risk of regression or
-discovering new bugs during the upgrade, no matter how carefully it is
-tested. The decision to cut a release must take this into account: it
-may not be wise to publish a stable release that only fixes a few
-minor bugs. For instance if only one commit has been backported to a
-stable release that is not a LTS, it is better to wait until there are
-more.
-
-When a stable release is to be retired, it may be safer to
-recommend an upgrade to the next LTS release instead of
-proposing a new point release to fix a problem. For instance, the
-``dumpling`` v0.67.11 release has bugs related to backfilling which have
-been fixed in ``firefly`` v0.80.x. A backport fixing these backfilling
-bugs has been tested in the draft point release ``dumpling`` v0.67.12 but
-they are large enough to introduce a risk of regression. As ``dumpling``
-is to be retired, users suffering from this bug can
-upgrade to ``firefly`` to fix it. Unless users manifest themselves and ask
-for ``dumpling`` v0.67.12, this draft release may never be published.
-
-* The ``Ceph lead`` decides a new stable release must be published
-* The ``release master`` gets approval from all leads
-* The ``release master`` writes and commits the release notes
-* The ``release master`` informs the ``quality engineer`` that the
- branch is ready for testing
-* The ``quality engineer`` runs additional integration tests
-* If the ``quality engineer`` discovers new bugs that require an
- ``Urgent Backport``, the release goes back to being prepared, it
- was not ready after all
-* The ``quality engineer`` informs the ``publisher`` that the branch
- is ready for release
-* The ``publisher`` `creates the packages and sets the release tag
- <../release-process>`_
-
-The person responsible for each role is:
-
-* Sage Weil is the ``Ceph lead``
-* Sage Weil is the ``release master`` for major stable releases
- (``firefly`` 0.80, ``hammer`` 0.94 etc.)
-* Loic Dachary is the ``release master`` for stable point releases
- (``firefly`` 0.80.10, ``hammer`` 0.94.1 etc.)
-* Yuri Weinstein is the ``quality engineer``
-* Alfredo Deza is the ``publisher``
-
-Cutting a new development release
-=================================
-
-The publication workflow of a development release is the same as
-preparing a new release and cutting it, with the following
-differences:
-
-* The ``next`` branch is reset to the tip of ``master`` after
- publication
-* The ``quality engineer`` is not required to run additional tests,
- the ``release master`` directly informs the ``publisher`` that the
- release is ready to be published.
-
-Publishing point releases and backporting
-=========================================
-
-The publication workflow of the point releases is the same as
-preparing a new release and cutting it, with the following
-differences:
-
-* The ``backport`` field of each issue contains the code name of the
- stable release
-* There is exactly one issue in the ``Backport`` tracker for each
- stable release to which the issue is backported
-* All commits are cherry-picked with ``git cherry-pick -x`` to
- reference the original commit
-
-See `the backporter manual
-<http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO>`_ for more
-information.
diff --git a/src/ceph/doc/dev/documenting.rst b/src/ceph/doc/dev/documenting.rst
deleted file mode 100644
index 63e1f19..0000000
--- a/src/ceph/doc/dev/documenting.rst
+++ /dev/null
@@ -1,132 +0,0 @@
-==================
- Documenting Ceph
-==================
-
-User documentation
-==================
-
-The documentation on docs.ceph.com is generated from the restructuredText
-sources in ``/doc/`` in the Ceph git repository.
-
-Please make sure that your changes are written in a way that is intended
-for end users of the software, unless you are making additions in
-``/doc/dev/``, which is the section for developers.
-
-All pull requests that modify user-facing functionality must
-include corresponding updates to documentation: see
-`Submitting Patches`_ for more detail.
-
-Check your .rst syntax is working as expected by using the "View"
-button in the github user interface when looking at a diff on
-an .rst file, or build the docs locally using the ``admin/build-doc``
-script.
-
-For more information about the Ceph documentation, see
-:doc:`/start/documenting-ceph`.
-
-Code Documentation
-==================
-
-C and C++ can be documented with Doxygen_, using the subset of Doxygen
-markup supported by Breathe_.
-
-.. _Doxygen: http://www.stack.nl/~dimitri/doxygen/
-.. _Breathe: https://github.com/michaeljones/breathe
-
-The general format for function documentation is::
-
- /**
- * Short description
- *
- * Detailed description when necessary
- *
- * preconditons, postconditions, warnings, bugs or other notes
- *
- * parameter reference
- * return value (if non-void)
- */
-
-This should be in the header where the function is declared, and
-functions should be grouped into logical categories. The `librados C
-API`_ provides a complete example. It is pulled into Sphinx by
-`librados.rst`_, which is rendered at :doc:`/rados/api/librados`.
-
-.. _`librados C API`: https://github.com/ceph/ceph/blob/master/src/include/rados/librados.h
-.. _`librados.rst`: https://github.com/ceph/ceph/raw/master/doc/rados/api/librados.rst
-
-Drawing diagrams
-================
-
-Graphviz
---------
-
-You can use Graphviz_, as explained in the `Graphviz extension documentation`_.
-
-.. _Graphviz: http://graphviz.org/
-.. _`Graphviz extension documentation`: http://sphinx.pocoo.org/ext/graphviz.html
-
-.. graphviz::
-
- digraph "example" {
- foo -> bar;
- bar -> baz;
- bar -> th
- }
-
-Most of the time, you'll want to put the actual DOT source in a
-separate file, like this::
-
- .. graphviz:: myfile.dot
-
-
-Ditaa
------
-
-You can use Ditaa_:
-
-.. _Ditaa: http://ditaa.sourceforge.net/
-
-.. ditaa::
-
- +--------------+ /=----\
- | hello, world |-->| hi! |
- +--------------+ \-----/
-
-
-Blockdiag
----------
-
-If a use arises, we can integrate Blockdiag_. It is a Graphviz-style
-declarative language for drawing things, and includes:
-
-- `block diagrams`_: boxes and arrows (automatic layout, as opposed to
- Ditaa_)
-- `sequence diagrams`_: timelines and messages between them
-- `activity diagrams`_: subsystems and activities in them
-- `network diagrams`_: hosts, LANs, IP addresses etc (with `Cisco
- icons`_ if wanted)
-
-.. _Blockdiag: http://blockdiag.com/
-.. _`Cisco icons`: http://pypi.python.org/pypi/blockdiagcontrib-cisco/
-.. _`block diagrams`: http://blockdiag.com/en/blockdiag/
-.. _`sequence diagrams`: http://blockdiag.com/en/seqdiag/index.html
-.. _`activity diagrams`: http://blockdiag.com/en/actdiag/index.html
-.. _`network diagrams`: http://blockdiag.com/en/nwdiag/
-
-
-Inkscape
---------
-
-You can use Inkscape to generate scalable vector graphics.
-http://inkscape.org for restructedText documents.
-
-If you generate diagrams with Inkscape, you should
-commit both the Scalable Vector Graphics (SVG) file and export a
-Portable Network Graphic (PNG) file. Reference the PNG file.
-
-By committing the SVG file, others will be able to update the
-SVG diagrams using Inkscape.
-
-HTML5 will support SVG inline.
-
-.. _Submitting Patches: /SubmittingPatches.rst
diff --git a/src/ceph/doc/dev/erasure-coded-pool.rst b/src/ceph/doc/dev/erasure-coded-pool.rst
deleted file mode 100644
index 4694a7a..0000000
--- a/src/ceph/doc/dev/erasure-coded-pool.rst
+++ /dev/null
@@ -1,137 +0,0 @@
-Erasure Coded pool
-==================
-
-Purpose
--------
-
-Erasure-coded pools require less storage space compared to replicated
-pools. The erasure-coding support has higher computational requirements and
-only supports a subset of the operations allowed on an object (for instance,
-partial write is not supported).
-
-Use cases
----------
-
-Cold storage
-~~~~~~~~~~~~
-
-An erasure-coded pool is created to store a large number of 1GB
-objects (imaging, genomics, etc.) and 10% of them are read per
-month. New objects are added every day and the objects are not
-modified after being written. On average there is one write for 10,000
-reads.
-
-A replicated pool is created and set as a cache tier for the
-erasure coded pool. An agent demotes objects (i.e. moves them from the
-replicated pool to the erasure-coded pool) if they have not been
-accessed in a week.
-
-The erasure-coded pool crush ruleset targets hardware designed for
-cold storage with high latency and slow access time. The replicated
-pool crush ruleset targets faster hardware to provide better response
-times.
-
-Cheap multidatacenter storage
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Ten datacenters are connected with dedicated network links. Each
-datacenter contains the same amount of storage with no power-supply
-backup and no air-cooling system.
-
-An erasure-coded pool is created with a crush map ruleset that will
-ensure no data loss if at most three datacenters fail
-simultaneously. The overhead is 50% with erasure code configured to
-split data in six (k=6) and create three coding chunks (m=3). With
-replication the overhead would be 400% (four replicas).
-
-Interface
----------
-
-Set up an erasure-coded pool::
-
- $ ceph osd pool create ecpool 12 12 erasure
-
-Set up an erasure-coded pool and the associated crush ruleset::
-
- $ ceph osd crush rule create-erasure ecruleset
- $ ceph osd pool create ecpool 12 12 erasure \
- default ecruleset
-
-Set the ruleset failure domain to osd (instead of the host which is the default)::
-
- $ ceph osd erasure-code-profile set myprofile \
- crush-failure-domain=osd
- $ ceph osd erasure-code-profile get myprofile
- k=2
- m=1
- plugin=jerasure
- technique=reed_sol_van
- crush-failure-domain=osd
- $ ceph osd pool create ecpool 12 12 erasure myprofile
-
-Control the parameters of the erasure code plugin::
-
- $ ceph osd erasure-code-profile set myprofile \
- k=3 m=1
- $ ceph osd erasure-code-profile get myprofile
- k=3
- m=1
- plugin=jerasure
- technique=reed_sol_van
- $ ceph osd pool create ecpool 12 12 erasure \
- myprofile
-
-Choose an alternate erasure code plugin::
-
- $ ceph osd erasure-code-profile set myprofile \
- plugin=example technique=xor
- $ ceph osd erasure-code-profile get myprofile
- k=2
- m=1
- plugin=example
- technique=xor
- $ ceph osd pool create ecpool 12 12 erasure \
- myprofile
-
-Display the default erasure code profile::
-
- $ ceph osd erasure-code-profile ls
- default
- $ ceph osd erasure-code-profile get default
- k=2
- m=1
- plugin=jerasure
- technique=reed_sol_van
-
-Create a profile to set the data to be distributed on six OSDs (k+m=6) and sustain the loss of three OSDs (m=3) without losing data::
-
- $ ceph osd erasure-code-profile set myprofile k=3 m=3
- $ ceph osd erasure-code-profile get myprofile
- k=3
- m=3
- plugin=jerasure
- technique=reed_sol_van
- $ ceph osd erasure-code-profile ls
- default
- myprofile
-
-Remove a profile that is no longer in use (otherwise it will fail with EBUSY)::
-
- $ ceph osd erasure-code-profile ls
- default
- myprofile
- $ ceph osd erasure-code-profile rm myprofile
- $ ceph osd erasure-code-profile ls
- default
-
-Set the ruleset to take ssd (instead of default)::
-
- $ ceph osd erasure-code-profile set myprofile \
- crush-root=ssd
- $ ceph osd erasure-code-profile get myprofile
- k=2
- m=1
- plugin=jerasure
- technique=reed_sol_van
- crush-root=ssd
-
diff --git a/src/ceph/doc/dev/file-striping.rst b/src/ceph/doc/dev/file-striping.rst
deleted file mode 100644
index 405c971..0000000
--- a/src/ceph/doc/dev/file-striping.rst
+++ /dev/null
@@ -1,161 +0,0 @@
-File striping
-=============
-
-The text below describes how files from Ceph file system clients are
-stored across objects stored in RADOS.
-
-ceph_file_layout
-----------------
-
-Ceph distributes (stripes) the data for a given file across a number
-of underlying objects. The way file data is mapped to those objects
-is defined by the ceph_file_layout structure. The data distribution
-is a modified RAID 0, where data is striped across a set of objects up
-to a (per-file) fixed size, at which point another set of objects
-holds the file's data. The second set also holds no more than the
-fixed amount of data, and then another set is used, and so on.
-
-Defining some terminology will go a long way toward explaining the
-way file data is laid out across Ceph objects.
-
-- file
- A collection of contiguous data, named from the perspective of
- the Ceph client (i.e., a file on a Linux system using Ceph
- storage). The data for a file is divided into fixed-size
- "stripe units," which are stored in ceph "objects."
-- stripe unit
- The size (in bytes) of a block of data used in the RAID 0
- distribution of a file. All stripe units for a file have equal
- size. The last stripe unit is typically incomplete--i.e. it
- represents the data at the end of the file as well as unused
- "space" beyond it up to the end of the fixed stripe unit size.
-- stripe count
- The number of consecutive stripe units that constitute a RAID 0
- "stripe" of file data.
-- stripe
- A contiguous range of file data, RAID 0 striped across "stripe
- count" objects in fixed-size "stripe unit" blocks.
-- object
- A collection of data maintained by Ceph storage. Objects are
- used to hold portions of Ceph client files.
-- object set
- A set of objects that together represent a contiguous portion of
- a file.
-
-Three fields in the ceph_file_layout structure define this mapping::
-
- u32 fl_stripe_unit;
- u32 fl_stripe_count;
- u32 fl_object_size;
-
-(They are actually maintained in their on-disk format, __le32.)
-
-The role of the first two fields should be clear from the
-definitions above.
-
-The third field is the maximum size (in bytes) of an object used to
-back file data. The object size is a multiple of the stripe unit.
-
-A file's data is blocked into stripe units, and consecutive stripe
-units are stored on objects in an object set. The number of objects
-in a set is the same as the stripe count. No object storing file
-data will exceed the file's designated object size, so after some
-fixed number of complete stripes, a new object set is used to store
-subsequent file data.
-
-Note that by default, Ceph uses a simple striping strategy in which
-object_size equals stripe_unit and stripe_count is 1. This simply
-puts one stripe_unit in each object.
-
-Here's a more complex example::
-
- file size = 1 trillion = 1000000000000 bytes
-
- fl_stripe_unit = 64KB = 65536 bytes
- fl_stripe_count = 5 stripe units per stripe
- fl_object_size = 64GB = 68719476736 bytes
-
-This means::
-
- file stripe size = 64KB * 5 = 320KB = 327680 bytes
- each object holds 64GB / 64KB = 1048576 stripe units
- file object set size = 64GB * 5 = 320GB = 343597383680 bytes
- (also 1048576 stripe units * 327680 bytes per stripe unit)
-
-So the file's 1 trillion bytes can be divided into complete object
-sets, then complete stripes, then complete stripe units, and finally
-a single incomplete stripe unit::
-
- - 1 trillion bytes / 320GB per object set = 2 complete object sets
- (with 312805232640 bytes remaining)
- - 312805232640 bytes / 320KB per stripe = 954605 complete stripes
- (with 266240 bytes remaining)
- - 266240 bytes / 64KB per stripe unit = 4 complete stripe units
- (with 4096 bytes remaining)
- - and the final incomplete stripe unit holds those 4096 bytes.
-
-The ASCII art below attempts to capture this::
-
- _________ _________ _________ _________ _________
- /object 0\ /object 1\ /object 2\ /object 3\ /object 4\
- +=========+ +=========+ +=========+ +=========+ +=========+
- | stripe | | stripe | | stripe | | stripe | | stripe |
- o | unit | | unit | | unit | | unit | | unit | stripe 0
- b | 0 | | 1 | | 2 | | 3 | | 4 |
- j |---------| |---------| |---------| |---------| |---------|
- e | stripe | | stripe | | stripe | | stripe | | stripe |
- c | unit | | unit | | unit | | unit | | unit | stripe 1
- t | 5 | | 6 | | 7 | | 8 | | 9 |
- |---------| |---------| |---------| |---------| |---------|
- s | . | | . | | . | | . | | . |
- e . . . . .
- t | . | | . | | . | | . | | . |
- |---------| |---------| |---------| |---------| |---------|
- 0 | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- | unit | | unit | | unit | | unit | | unit | 1048575
- | 5242875 | | 5242876 | | 5242877 | | 5242878 | | 5242879 |
- \=========/ \=========/ \=========/ \=========/ \=========/
-
- _________ _________ _________ _________ _________
- /object 5\ /object 6\ /object 7\ /object 8\ /object 9\
- +=========+ +=========+ +=========+ +=========+ +=========+
- | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- o | unit | | unit | | unit | | unit | | unit | 1048576
- b | 5242880 | | 5242881 | | 5242882 | | 5242883 | | 5242884 |
- j |---------| |---------| |---------| |---------| |---------|
- e | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- c | unit | | unit | | unit | | unit | | unit | 1048577
- t | 5242885 | | 5242886 | | 5242887 | | 5242888 | | 5242889 |
- |---------| |---------| |---------| |---------| |---------|
- s | . | | . | | . | | . | | . |
- e . . . . .
- t | . | | . | | . | | . | | . |
- |---------| |---------| |---------| |---------| |---------|
- 1 | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- | unit | | unit | | unit | | unit | | unit | 2097151
- | 10485755| | 10485756| | 10485757| | 10485758| | 10485759|
- \=========/ \=========/ \=========/ \=========/ \=========/
-
- _________ _________ _________ _________ _________
- /object 10\ /object 11\ /object 12\ /object 13\ /object 14\
- +=========+ +=========+ +=========+ +=========+ +=========+
- | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- o | unit | | unit | | unit | | unit | | unit | 2097152
- b | 10485760| | 10485761| | 10485762| | 10485763| | 10485764|
- j |---------| |---------| |---------| |---------| |---------|
- e | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- c | unit | | unit | | unit | | unit | | unit | 2097153
- t | 10485765| | 10485766| | 10485767| | 10485768| | 10485769|
- |---------| |---------| |---------| |---------| |---------|
- s | . | | . | | . | | . | | . |
- e . . . . .
- t | . | | . | | . | | . | | . |
- |---------| |---------| |---------| |---------| |---------|
- 2 | stripe | | stripe | | stripe | | stripe | | stripe | stripe
- | unit | | unit | | unit | | unit | | unit | 3051756
- | 15258780| | 15258781| | 15258782| | 15258783| | 15258784|
- |---------| |---------| |---------| |---------| |---------|
- | stripe | | stripe | | stripe | | stripe | | (partial| (partial
- | unit | | unit | | unit | | unit | | stripe | stripe
- | 15258785| | 15258786| | 15258787| | 15258788| | unit) | 3051757)
- \=========/ \=========/ \=========/ \=========/ \=========/
diff --git a/src/ceph/doc/dev/freebsd.rst b/src/ceph/doc/dev/freebsd.rst
deleted file mode 100644
index 5a401ee..0000000
--- a/src/ceph/doc/dev/freebsd.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-==============================
-FreeBSD Implementation details
-==============================
-
-
-Disk layout
------------
-
-Current implementation works on ZFS pools
-
-* created in /var/lib/ceph
-* One ZFS pool per OSD, like::
-
- gpart create -s GPT ada1
- gpart add -t freebsd-zfs -l osd1 ada1
- zpool create -o mountpoint=/var/lib/ceph/osd/osd.1 osd
-
-* Maybe add some cache and log (ZIL)? Assuming that ada2 is an SSD::
-
- gpart create -s GPT ada2
- gpart add -t freebsd-zfs -l osd1-log -s 1G ada2
- zpool add osd1 log gpt/osd1-log
- gpart add -t freebsd-zfs -l osd1-cache -s 10G ada2
- zpool add osd1 log gpt/osd1-cache
-
-* Note: *UFS2 does not allow large xattribs*
-
-
-Configuration
--------------
-
-As per FreeBSD default parts of extra software go into ``/usr/local/``. Which
-means that for ``/etc/ceph.conf`` the default location is
-``/usr/local/etc/ceph/ceph.conf``. Smartest thing to do is to create a softlink
-from ``/etc/ceph`` to ``/usr/local/etc/ceph``::
-
- ln -s /usr/local/etc/ceph /etc/ceph
-
-A sample file is provided in ``/usr/local/share/doc/ceph/sample.ceph.conf``
-
-
-MON creation
-------------
-
-Monitors are created by following the manual creation steps on::
-
- http://docs.ceph.com/docs/master/install/manual-deployment/
-
-
-OSD creation
-------------
-
-OSDs can be create with ``ceph-disk``::
-
- ceph-disk prepare /var/lib/ceph/osd/osd1
- ceph-disk activate /var/lib/ceph/osd/osd1
-
-And things should automagically work out.
diff --git a/src/ceph/doc/dev/generatedocs.rst b/src/ceph/doc/dev/generatedocs.rst
deleted file mode 100644
index 6badef0..0000000
--- a/src/ceph/doc/dev/generatedocs.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-Building Ceph Documentation
-===========================
-
-Ceph utilizes Python's Sphinx documentation tool. For details on
-the Sphinx documentation tool, refer to `The Sphinx Documentation Tool <http://sphinx.pocoo.org/>`_.
-
-To build the Ceph documentation set, you must:
-
-1. Clone the Ceph repository
-2. Install the required tools
-3. Build the documents
-
-Clone the Ceph Repository
--------------------------
-
-To clone the Ceph repository, you must have ``git`` installed
-on your local host. To install ``git``, execute::
-
- sudo apt-get install git
-
-To clone the Ceph repository, execute::
-
- git clone git://github.com/ceph/ceph
-
-You should have a full copy of the Ceph repository.
-
-
-Install the Required Tools
---------------------------
-
-To build the Ceph documentation, some dependencies are required.
-To know what packages are needed, you can launch this command::
-
- cd ceph
- admin/build-doc
-
-If dependencies are missing, the command above will fail
-with a message that suggests you a command to install all
-missing dependencies.
-
-
-Build the Documents
--------------------
-
-Once you have installed all the dependencies, execute the build (the
-same command as above)::
-
- cd ceph
- admin/build-doc
-
-Once you build the documentation set, you may navigate to the source directory to view it::
-
- cd build-doc/output
-
-There should be an ``html`` directory and a ``man`` directory containing documentation
-in HTML and manpage formats respectively.
diff --git a/src/ceph/doc/dev/index-old.rst b/src/ceph/doc/dev/index-old.rst
deleted file mode 100644
index 8192516..0000000
--- a/src/ceph/doc/dev/index-old.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-:orphan:
-
-==================================
- Internal developer documentation
-==================================
-
-.. note:: If you're looking for how to use Ceph as a library from your
- own software, please see :doc:`/api/index`.
-
-You can start a development mode Ceph cluster, after compiling the source, with::
-
- cd src
- install -d -m0755 out dev/osd0
- ./vstart.sh -n -x -l
- # check that it's there
- ./ceph health
-
-.. todo:: vstart is woefully undocumented and full of sharp sticks to poke yourself with.
-
-
-.. _mailing-list:
-
-.. rubric:: Mailing list
-
-The official development email list is ``ceph-devel@vger.kernel.org``. Subscribe by sending
-a message to ``majordomo@vger.kernel.org`` with the line::
-
- subscribe ceph-devel
-
-in the body of the message.
-
-
-.. rubric:: Contents
-
-.. toctree::
- :glob:
-
- *
- osd_internals/index*
- mds_internals/index*
- radosgw/index*
- ceph-volume/index*
diff --git a/src/ceph/doc/dev/index.rst b/src/ceph/doc/dev/index.rst
deleted file mode 100644
index b76f2f2..0000000
--- a/src/ceph/doc/dev/index.rst
+++ /dev/null
@@ -1,1558 +0,0 @@
-============================================
-Contributing to Ceph: A Guide for Developers
-============================================
-
-:Author: Loic Dachary
-:Author: Nathan Cutler
-:License: Creative Commons Attribution-ShareAlike (CC BY-SA)
-
-.. note:: The old (pre-2016) developer documentation has been moved to :doc:`/dev/index-old`.
-
-.. contents::
- :depth: 3
-
-Introduction
-============
-
-This guide has two aims. First, it should lower the barrier to entry for
-software developers who wish to get involved in the Ceph project. Second,
-it should serve as a reference for Ceph developers.
-
-We assume that readers are already familiar with Ceph (the distributed
-object store and file system designed to provide excellent performance,
-reliability and scalability). If not, please refer to the `project website`_
-and especially the `publications list`_.
-
-.. _`project website`: http://ceph.com
-.. _`publications list`: https://ceph.com/resources/publications/
-
-Since this document is to be consumed by developers, who are assumed to
-have Internet access, topics covered elsewhere, either within the Ceph
-documentation or elsewhere on the web, are treated by linking. If you
-notice that a link is broken or if you know of a better link, please
-`report it as a bug`_.
-
-.. _`report it as a bug`: http://tracker.ceph.com/projects/ceph/issues/new
-
-Essentials (tl;dr)
-==================
-
-This chapter presents essential information that every Ceph developer needs
-to know.
-
-Leads
------
-
-The Ceph project is led by Sage Weil. In addition, each major project
-component has its own lead. The following table shows all the leads and
-their nicks on `GitHub`_:
-
-.. _github: https://github.com/
-
-========= ================ =============
-Scope Lead GitHub nick
-========= ================ =============
-Ceph Sage Weil liewegas
-RADOS Samuel Just athanatos
-RGW Yehuda Sadeh yehudasa
-RBD Jason Dillaman dillaman
-CephFS Patrick Donnelly batrick
-Build/Ops Ken Dreyer ktdreyer
-========= ================ =============
-
-The Ceph-specific acronyms in the table are explained in
-:doc:`/architecture`.
-
-History
--------
-
-See the `History chapter of the Wikipedia article`_.
-
-.. _`History chapter of the Wikipedia article`: https://en.wikipedia.org/wiki/Ceph_%28software%29#History
-
-Licensing
----------
-
-Ceph is free software.
-
-Unless stated otherwise, the Ceph source code is distributed under the terms of
-the LGPL2.1. For full details, see `the file COPYING in the top-level
-directory of the source-code tree`_.
-
-.. _`the file COPYING in the top-level directory of the source-code tree`:
- https://github.com/ceph/ceph/blob/master/COPYING
-
-Source code repositories
-------------------------
-
-The source code of Ceph lives on `GitHub`_ in a number of repositories below
-the `Ceph "organization"`_.
-
-.. _`Ceph "organization"`: https://github.com/ceph
-
-To make a meaningful contribution to the project as a developer, a working
-knowledge of git_ is essential.
-
-.. _git: https://git-scm.com/documentation
-
-Although the `Ceph "organization"`_ includes several software repositories,
-this document covers only one: https://github.com/ceph/ceph.
-
-Redmine issue tracker
----------------------
-
-Although `GitHub`_ is used for code, Ceph-related issues (Bugs, Features,
-Backports, Documentation, etc.) are tracked at http://tracker.ceph.com,
-which is powered by `Redmine`_.
-
-.. _Redmine: http://www.redmine.org
-
-The tracker has a Ceph project with a number of subprojects loosely
-corresponding to the various architectural components (see
-:doc:`/architecture`).
-
-Mere `registration`_ in the tracker automatically grants permissions
-sufficient to open new issues and comment on existing ones.
-
-.. _registration: http://tracker.ceph.com/account/register
-
-To report a bug or propose a new feature, `jump to the Ceph project`_ and
-click on `New issue`_.
-
-.. _`jump to the Ceph project`: http://tracker.ceph.com/projects/ceph
-.. _`New issue`: http://tracker.ceph.com/projects/ceph/issues/new
-
-Mailing list
-------------
-
-Ceph development email discussions take place on the mailing list
-``ceph-devel@vger.kernel.org``. The list is open to all. Subscribe by
-sending a message to ``majordomo@vger.kernel.org`` with the line: ::
-
- subscribe ceph-devel
-
-in the body of the message.
-
-There are also `other Ceph-related mailing lists`_.
-
-.. _`other Ceph-related mailing lists`: https://ceph.com/irc/
-
-IRC
----
-
-In addition to mailing lists, the Ceph community also communicates in real
-time using `Internet Relay Chat`_.
-
-.. _`Internet Relay Chat`: http://www.irchelp.org/
-
-See https://ceph.com/irc/ for how to set up your IRC
-client and a list of channels.
-
-Submitting patches
-------------------
-
-The canonical instructions for submitting patches are contained in the
-`the file CONTRIBUTING.rst in the top-level directory of the source-code
-tree`_. There may be some overlap between this guide and that file.
-
-.. _`the file CONTRIBUTING.rst in the top-level directory of the source-code tree`:
- https://github.com/ceph/ceph/blob/master/CONTRIBUTING.rst
-
-All newcomers are encouraged to read that file carefully.
-
-Building from source
---------------------
-
-See instructions at :doc:`/install/build-ceph`.
-
-Using ccache to speed up local builds
--------------------------------------
-
-Rebuilds of the ceph source tree can benefit significantly from use of `ccache`_.
-Many a times while switching branches and such, one might see build failures for
-certain older branches mostly due to older build artifacts. These rebuilds can
-significantly benefit the use of ccache. For a full clean source tree, one could
-do ::
-
- $ make clean
-
- # note the following will nuke everything in the source tree that
- # isn't tracked by git, so make sure to backup any log files /conf options
-
- $ git clean -fdx; git submodule foreach git clean -fdx
-
-ccache is available as a package in most distros. To build ceph with ccache one
-can::
-
- $ cmake -DWITH_CCACHE=ON ..
-
-ccache can also be used for speeding up all builds in the system. for more
-details refer to the `run modes`_ of the ccache manual. The default settings of
-``ccache`` can be displayed with ``ccache -s``.
-
-.. note: It is recommended to override the ``max_size``, which is the size of
- cache, defaulting to 10G, to a larger size like 25G or so. Refer to the
- `configuration`_ section of ccache manual.
-
-.. _`ccache`: https://ccache.samba.org/
-.. _`run modes`: https://ccache.samba.org/manual.html#_run_modes
-.. _`configuration`: https://ccache.samba.org/manual.html#_configuration
-
-Development-mode cluster
-------------------------
-
-See :doc:`/dev/quick_guide`.
-
-Backporting
------------
-
-All bugfixes should be merged to the ``master`` branch before being backported.
-To flag a bugfix for backporting, make sure it has a `tracker issue`_
-associated with it and set the ``Backport`` field to a comma-separated list of
-previous releases (e.g. "hammer,jewel") that you think need the backport.
-The rest (including the actual backporting) will be taken care of by the
-`Stable Releases and Backports`_ team.
-
-.. _`tracker issue`: http://tracker.ceph.com/
-.. _`Stable Releases and Backports`: http://tracker.ceph.com/projects/ceph-releases/wiki
-
-Guidance for use of cluster log
--------------------------------
-
-If your patches emit messages to the Ceph cluster log, please consult
-this guidance: :doc:`/dev/logging`.
-
-
-What is merged where and when ?
-===============================
-
-Commits are merged into branches according to criteria that change
-during the lifecycle of a Ceph release. This chapter is the inventory
-of what can be merged in which branch at a given point in time.
-
-Development releases (i.e. x.0.z)
----------------------------------
-
-What ?
-^^^^^^
-
-* features
-* bug fixes
-
-Where ?
-^^^^^^^
-
-Features are merged to the master branch. Bug fixes should be merged
-to the corresponding named branch (e.g. "jewel" for 10.0.z, "kraken"
-for 11.0.z, etc.). However, this is not mandatory - bug fixes can be
-merged to the master branch as well, since the master branch is
-periodically merged to the named branch during the development
-releases phase. In either case, if the bugfix is important it can also
-be flagged for backport to one or more previous stable releases.
-
-When ?
-^^^^^^
-
-After the stable release candidates of the previous release enters
-phase 2 (see below). For example: the "jewel" named branch was
-created when the infernalis release candidates entered phase 2. From
-this point on, master was no longer associated with infernalis. As
-soon as the named branch of the next stable release is created, master
-starts getting periodically merged into it.
-
-Branch merges
-^^^^^^^^^^^^^
-
-* The branch of the stable release is merged periodically into master.
-* The master branch is merged periodically into the branch of the
- stable release.
-* The master is merged into the branch of the stable release
- immediately after each development x.0.z release.
-
-Stable release candidates (i.e. x.1.z) phase 1
-----------------------------------------------
-
-What ?
-^^^^^^
-
-* bug fixes only
-
-Where ?
-^^^^^^^
-
-The branch of the stable release (e.g. "jewel" for 10.0.z, "kraken"
-for 11.0.z, etc.) or master. Bug fixes should be merged to the named
-branch corresponding to the stable release candidate (e.g. "jewel" for
-10.1.z) or to master. During this phase, all commits to master will be
-merged to the named branch, and vice versa. In other words, it makes
-no difference whether a commit is merged to the named branch or to
-master - it will make it into the next release candidate either way.
-
-When ?
-^^^^^^
-
-After the first stable release candidate is published, i.e. after the
-x.1.0 tag is set in the release branch.
-
-Branch merges
-^^^^^^^^^^^^^
-
-* The branch of the stable release is merged periodically into master.
-* The master branch is merged periodically into the branch of the
- stable release.
-* The master is merged into the branch of the stable release
- immediately after each x.1.z release candidate.
-
-Stable release candidates (i.e. x.1.z) phase 2
-----------------------------------------------
-
-What ?
-^^^^^^
-
-* bug fixes only
-
-Where ?
-^^^^^^^
-
-The branch of the stable release (e.g. "jewel" for 10.0.z, "kraken"
-for 11.0.z, etc.). During this phase, all commits to the named branch
-will be merged into master. Cherry-picking to the named branch during
-release candidate phase 2 is done manually since the official
-backporting process only begins when the release is pronounced
-"stable".
-
-When ?
-^^^^^^
-
-After Sage Weil decides it is time for phase 2 to happen.
-
-Branch merges
-^^^^^^^^^^^^^
-
-* The branch of the stable release is merged periodically into master.
-
-Stable releases (i.e. x.2.z)
-----------------------------
-
-What ?
-^^^^^^
-
-* bug fixes
-* features are sometime accepted
-* commits should be cherry-picked from master when possible
-* commits that are not cherry-picked from master must be about a bug unique to the stable release
-* see also `the backport HOWTO`_
-
-.. _`the backport HOWTO`:
- http://tracker.ceph.com/projects/ceph-releases/wiki/HOWTO#HOWTO
-
-Where ?
-^^^^^^^
-
-The branch of the stable release (hammer for 0.94.x, infernalis for 9.2.x, etc.)
-
-When ?
-^^^^^^
-
-After the stable release is published, i.e. after the "vx.2.0" tag is
-set in the release branch.
-
-Branch merges
-^^^^^^^^^^^^^
-
-Never
-
-Issue tracker
-=============
-
-See `Redmine issue tracker`_ for a brief introduction to the Ceph Issue Tracker.
-
-Ceph developers use the issue tracker to
-
-1. keep track of issues - bugs, fix requests, feature requests, backport
-requests, etc.
-
-2. communicate with other developers and keep them informed as work
-on the issues progresses.
-
-Issue tracker conventions
--------------------------
-
-When you start working on an existing issue, it's nice to let the other
-developers know this - to avoid duplication of labor. Typically, this is
-done by changing the :code:`Assignee` field (to yourself) and changing the
-:code:`Status` to *In progress*. Newcomers to the Ceph community typically do not
-have sufficient privileges to update these fields, however: they can
-simply update the issue with a brief note.
-
-.. table:: Meanings of some commonly used statuses
-
- ================ ===========================================
- Status Meaning
- ================ ===========================================
- New Initial status
- In Progress Somebody is working on it
- Need Review Pull request is open with a fix
- Pending Backport Fix has been merged, backport(s) pending
- Resolved Fix and backports (if any) have been merged
- ================ ===========================================
-
-Basic workflow
-==============
-
-The following chart illustrates basic development workflow:
-
-.. ditaa::
-
- Upstream Code Your Local Environment
-
- /----------\ git clone /-------------\
- | Ceph | -------------------------> | ceph/master |
- \----------/ \-------------/
- ^ |
- | | git branch fix_1
- | git merge |
- | v
- /----------------\ git commit --amend /-------------\
- | make check |---------------------> | ceph/fix_1 |
- | ceph--qa--suite| \-------------/
- \----------------/ |
- ^ | fix changes
- | | test changes
- | review | git commit
- | |
- | v
- /--------------\ /-------------\
- | github |<---------------------- | ceph/fix_1 |
- | pull request | git push \-------------/
- \--------------/
-
-Below we present an explanation of this chart. The explanation is written
-with the assumption that you, the reader, are a beginning developer who
-has an idea for a bugfix, but do not know exactly how to proceed.
-
-Update the tracker
-------------------
-
-Before you start, you should know the `Issue tracker`_ number of the bug
-you intend to fix. If there is no tracker issue, now is the time to create
-one.
-
-The tracker is there to explain the issue (bug) to your fellow Ceph
-developers and keep them informed as you make progress toward resolution.
-To this end, then, provide a descriptive title as well as sufficient
-information and details in the description.
-
-If you have sufficient tracker permissions, assign the bug to yourself by
-changing the ``Assignee`` field. If your tracker permissions have not yet
-been elevated, simply add a comment to the issue with a short message like
-"I am working on this issue".
-
-Upstream code
--------------
-
-This section, and the ones that follow, correspond to the nodes in the
-above chart.
-
-The upstream code lives in https://github.com/ceph/ceph.git, which is
-sometimes referred to as the "upstream repo", or simply "upstream". As the
-chart illustrates, we will make a local copy of this code, modify it, test
-our modifications, and submit the modifications back to the upstream repo
-for review.
-
-A local copy of the upstream code is made by
-
-1. forking the upstream repo on GitHub, and
-2. cloning your fork to make a local working copy
-
-See the `the GitHub documentation
-<https://help.github.com/articles/fork-a-repo/#platform-linux>`_ for
-detailed instructions on forking. In short, if your GitHub username is
-"mygithubaccount", your fork of the upstream repo will show up at
-https://github.com/mygithubaccount/ceph. Once you have created your fork,
-you clone it by doing:
-
-.. code::
-
- $ git clone https://github.com/mygithubaccount/ceph
-
-While it is possible to clone the upstream repo directly, in this case you
-must fork it first. Forking is what enables us to open a `GitHub pull
-request`_.
-
-For more information on using GitHub, refer to `GitHub Help
-<https://help.github.com/>`_.
-
-Local environment
------------------
-
-In the local environment created in the previous step, you now have a
-copy of the ``master`` branch in ``remotes/origin/master``. Since the fork
-(https://github.com/mygithubaccount/ceph.git) is frozen in time and the
-upstream repo (https://github.com/ceph/ceph.git, typically abbreviated to
-``ceph/ceph.git``) is updated frequently by other developers, you will need
-to sync your fork periodically. To do this, first add the upstream repo as
-a "remote" and fetch it::
-
- $ git remote add ceph https://github.com/ceph/ceph.git
- $ git fetch ceph
-
-Fetching downloads all objects (commits, branches) that were added since
-the last sync. After running these commands, all the branches from
-``ceph/ceph.git`` are downloaded to the local git repo as
-``remotes/ceph/$BRANCH_NAME`` and can be referenced as
-``ceph/$BRANCH_NAME`` in certain git commands.
-
-For example, your local ``master`` branch can be reset to the upstream Ceph
-``master`` branch by doing::
-
- $ git fetch ceph
- $ git checkout master
- $ git reset --hard ceph/master
-
-Finally, the ``master`` branch of your fork can then be synced to upstream
-master by::
-
- $ git push -u origin master
-
-Bugfix branch
--------------
-
-Next, create a branch for the bugfix:
-
-.. code::
-
- $ git checkout master
- $ git checkout -b fix_1
- $ git push -u origin fix_1
-
-This creates a ``fix_1`` branch locally and in our GitHub fork. At this
-point, the ``fix_1`` branch is identical to the ``master`` branch, but not
-for long! You are now ready to modify the code.
-
-Fix bug locally
----------------
-
-At this point, change the status of the tracker issue to "In progress" to
-communicate to the other Ceph developers that you have begun working on a
-fix. If you don't have permission to change that field, your comment that
-you are working on the issue is sufficient.
-
-Possibly, your fix is very simple and requires only minimal testing.
-More likely, it will be an iterative process involving trial and error, not
-to mention skill. An explanation of how to fix bugs is beyond the
-scope of this document. Instead, we focus on the mechanics of the process
-in the context of the Ceph project.
-
-A detailed discussion of the tools available for validating your bugfixes,
-see the `Testing`_ chapter.
-
-For now, let us just assume that you have finished work on the bugfix and
-that you have tested it and believe it works. Commit the changes to your local
-branch using the ``--signoff`` option::
-
- $ git commit -as
-
-and push the changes to your fork::
-
- $ git push origin fix_1
-
-GitHub pull request
--------------------
-
-The next step is to open a GitHub pull request. The purpose of this step is
-to make your bugfix available to the community of Ceph developers. They
-will review it and may do additional testing on it.
-
-In short, this is the point where you "go public" with your modifications.
-Psychologically, you should be prepared to receive suggestions and
-constructive criticism. Don't worry! In our experience, the Ceph project is
-a friendly place!
-
-If you are uncertain how to use pull requests, you may read
-`this GitHub pull request tutorial`_.
-
-.. _`this GitHub pull request tutorial`:
- https://help.github.com/articles/using-pull-requests/
-
-For some ideas on what constitutes a "good" pull request, see
-the `Git Commit Good Practice`_ article at the `OpenStack Project Wiki`_.
-
-.. _`Git Commit Good Practice`: https://wiki.openstack.org/wiki/GitCommitMessages
-.. _`OpenStack Project Wiki`: https://wiki.openstack.org/wiki/Main_Page
-
-Once your pull request (PR) is opened, update the `Issue tracker`_ by
-adding a comment to the bug pointing the other developers to your PR. The
-update can be as simple as::
-
- *PR*: https://github.com/ceph/ceph/pull/$NUMBER_OF_YOUR_PULL_REQUEST
-
-Automated PR validation
------------------------
-
-When your PR hits GitHub, the Ceph project's `Continuous Integration (CI)
-<https://en.wikipedia.org/wiki/Continuous_integration>`_
-infrastructure will test it automatically. At the time of this writing
-(March 2016), the automated CI testing included a test to check that the
-commits in the PR are properly signed (see `Submitting patches`_) and a
-`make check`_ test.
-
-The latter, `make check`_, builds the PR and runs it through a battery of
-tests. These tests run on machines operated by the Ceph Continuous
-Integration (CI) team. When the tests complete, the result will be shown
-on GitHub in the pull request itself.
-
-You can (and should) also test your modifications before you open a PR.
-Refer to the `Testing`_ chapter for details.
-
-Notes on PR make check test
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The GitHub `make check`_ test is driven by a Jenkins instance.
-
-Jenkins merges the PR branch into the latest version of the base branch before
-starting the build, so you don't have to rebase the PR to pick up any fixes.
-
-You can trigger the PR tests at any time by adding a comment to the PR - the
-comment should contain the string "test this please". Since a human subscribed
-to the PR might interpret that as a request for him or her to test the PR, it's
-good to write the request as "Jenkins, test this please".
-
-The `make check`_ log is the place to go if there is a failure and you're not
-sure what caused it. To reach it, first click on "details" (next to the `make
-check`_ test in the PR) to get into the Jenkins web GUI, and then click on
-"Console Output" (on the left).
-
-Jenkins is set up to grep the log for strings known to have been associated
-with `make check`_ failures in the past. However, there is no guarantee that
-the strings are associated with any given `make check`_ failure. You have to
-dig into the log to be sure.
-
-Integration tests AKA ceph-qa-suite
------------------------------------
-
-Since Ceph is a complex beast, it may also be necessary to test your fix to
-see how it behaves on real clusters running either on real or virtual
-hardware. Tests designed for this purpose live in the `ceph/qa
-sub-directory`_ and are run via the `teuthology framework`_.
-
-.. _`ceph/qa sub-directory`: https://github.com/ceph/ceph/tree/master/qa/
-.. _`teuthology repository`: https://github.com/ceph/teuthology
-.. _`teuthology framework`: https://github.com/ceph/teuthology
-
-If you have access to an OpenStack tenant, you are encouraged to run the
-integration tests yourself using `ceph-workbench ceph-qa-suite`_,
-and to post the test results to the PR.
-
-.. _`ceph-workbench ceph-qa-suite`: http://ceph-workbench.readthedocs.org/
-
-The Ceph community has access to the `Sepia lab
-<http://ceph.github.io/sepia/>`_ where integration tests can be run on
-real hardware. Other developers may add tags like "needs-qa" to your PR.
-This allows PRs that need testing to be merged into a single branch and
-tested all at the same time. Since teuthology suites can take hours
-(even days in some cases) to run, this can save a lot of time.
-
-Integration testing is discussed in more detail in the `Testing`_ chapter.
-
-Code review
------------
-
-Once your bugfix has been thoroughly tested, or even during this process,
-it will be subjected to code review by other developers. This typically
-takes the form of correspondence in the PR itself, but can be supplemented
-by discussions on `IRC`_ and the `Mailing list`_.
-
-Amending your PR
-----------------
-
-While your PR is going through `Testing`_ and `Code review`_, you can
-modify it at any time by editing files in your local branch.
-
-After the changes are committed locally (to the ``fix_1`` branch in our
-example), they need to be pushed to GitHub so they appear in the PR.
-
-Modifying the PR is done by adding commits to the ``fix_1`` branch upon
-which it is based, often followed by rebasing to modify the branch's git
-history. See `this tutorial
-<https://www.atlassian.com/git/tutorials/rewriting-history>`_ for a good
-introduction to rebasing. When you are done with your modifications, you
-will need to force push your branch with:
-
-.. code::
-
- $ git push --force origin fix_1
-
-Merge
------
-
-The bugfixing process culminates when one of the project leads decides to
-merge your PR.
-
-When this happens, it is a signal for you (or the lead who merged the PR)
-to change the `Issue tracker`_ status to "Resolved". Some issues may be
-flagged for backporting, in which case the status should be changed to
-"Pending Backport" (see the `Backporting`_ chapter for details).
-
-
-Testing
-=======
-
-Ceph has two types of tests: `make check`_ tests and integration tests.
-The former are run via `GNU Make <https://www.gnu.org/software/make/>`,
-and the latter are run via the `teuthology framework`_. The following two
-chapters examine the `make check`_ and integration tests in detail.
-
-.. _`make check`:
-
-Testing - make check
-====================
-
-After compiling Ceph, the `make check`_ command can be used to run the
-code through a battery of tests covering various aspects of Ceph. For
-inclusion in `make check`_, a test must:
-
-* bind ports that do not conflict with other tests
-* not require root access
-* not require more than one machine to run
-* complete within a few minutes
-
-While it is possible to run `make check`_ directly, it can be tricky to
-correctly set up your environment. Fortunately, a script is provided to
-make it easier run `make check`_ on your code. It can be run from the
-top-level directory of the Ceph source tree by doing::
-
- $ ./run-make-check.sh
-
-You will need a minimum of 8GB of RAM and 32GB of free disk space for this
-command to complete successfully on x86_64 (other architectures may have
-different constraints). Depending on your hardware, it can take from 20
-minutes to three hours to complete, but it's worth the wait.
-
-Caveats
--------
-
-1. Unlike the various Ceph daemons and ``ceph-fuse``, the `make check`_ tests
- are linked against the default memory allocator (glibc) unless explicitly
- linked against something else. This enables tools like valgrind to be used
- in the tests.
-
-Testing - integration tests
-===========================
-
-When a test requires multiple machines, root access or lasts for a
-longer time (for example, to simulate a realistic Ceph deployment), it
-is deemed to be an integration test. Integration tests are organized into
-"suites", which are defined in the `ceph/qa sub-directory`_ and run with
-the ``teuthology-suite`` command.
-
-The ``teuthology-suite`` command is part of the `teuthology framework`_.
-In the sections that follow we attempt to provide a detailed introduction
-to that framework from the perspective of a beginning Ceph developer.
-
-Teuthology consumes packages
-----------------------------
-
-It may take some time to understand the significance of this fact, but it
-is `very` significant. It means that automated tests can be conducted on
-multiple platforms using the same packages (RPM, DEB) that can be
-installed on any machine running those platforms.
-
-Teuthology has a `list of platforms that it supports
-<https://github.com/ceph/ceph/tree/master/qa/distros/supported>`_ (as
-of March 2016 the list consisted of "CentOS 7.2" and "Ubuntu 14.04"). It
-expects to be provided pre-built Ceph packages for these platforms.
-Teuthology deploys these platforms on machines (bare-metal or
-cloud-provisioned), installs the packages on them, and deploys Ceph
-clusters on them - all as called for by the test.
-
-The nightlies
--------------
-
-A number of integration tests are run on a regular basis in the `Sepia
-lab`_ against the official Ceph repositories (on the ``master`` development
-branch and the stable branches). Traditionally, these tests are called "the
-nightlies" because the Ceph core developers used to live and work in
-the same time zone and from their perspective the tests were run overnight.
-
-The results of the nightlies are published at http://pulpito.ceph.com/ and
-http://pulpito.ovh.sepia.ceph.com:8081/. The developer nick shows in the
-test results URL and in the first column of the Pulpito dashboard. The
-results are also reported on the `ceph-qa mailing list
-<https://ceph.com/irc/>`_ for analysis.
-
-Suites inventory
-----------------
-
-The ``suites`` directory of the `ceph/qa sub-directory`_ contains
-all the integration tests, for all the Ceph components.
-
-`ceph-deploy <https://github.com/ceph/ceph/tree/master/qa/suites/ceph-deploy>`_
- install a Ceph cluster with ``ceph-deploy`` (`ceph-deploy man page`_)
-
-`ceph-disk <https://github.com/ceph/ceph/tree/master/qa/suites/ceph-disk>`_
- verify init scripts (upstart etc.) and udev integration with
- ``ceph-disk`` (`ceph-disk man page`_), with and without `dmcrypt
- <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt>`_ support.
-
-`dummy <https://github.com/ceph/ceph/tree/master/qa/suites/dummy>`_
- get a machine, do nothing and return success (commonly used to
- verify the integration testing infrastructure works as expected)
-
-`fs <https://github.com/ceph/ceph/tree/master/qa/suites/fs>`_
- test CephFS
-
-`kcephfs <https://github.com/ceph/ceph/tree/master/qa/suites/kcephfs>`_
- test the CephFS kernel module
-
-`krbd <https://github.com/ceph/ceph/tree/master/qa/suites/krbd>`_
- test the RBD kernel module
-
-`powercycle <https://github.com/ceph/ceph/tree/master/qa/suites/powercycle>`_
- verify the Ceph cluster behaves when machines are powered off
- and on again
-
-`rados <https://github.com/ceph/ceph/tree/master/qa/suites/rados>`_
- run Ceph clusters including OSDs and MONs, under various conditions of
- stress
-
-`rbd <https://github.com/ceph/ceph/tree/master/qa/suites/rbd>`_
- run RBD tests using actual Ceph clusters, with and without qemu
-
-`rgw <https://github.com/ceph/ceph/tree/master/qa/suites/rgw>`_
- run RGW tests using actual Ceph clusters
-
-`smoke <https://github.com/ceph/ceph/tree/master/qa/suites/smoke>`_
- run tests that exercise the Ceph API with an actual Ceph cluster
-
-`teuthology <https://github.com/ceph/ceph/tree/master/qa/suites/teuthology>`_
- verify that teuthology can run integration tests, with and without OpenStack
-
-`upgrade <https://github.com/ceph/ceph/tree/master/qa/suites/upgrade>`_
- for various versions of Ceph, verify that upgrades can happen
- without disrupting an ongoing workload
-
-.. _`ceph-deploy man page`: ../../man/8/ceph-deploy
-.. _`ceph-disk man page`: ../../man/8/ceph-disk
-
-teuthology-describe-tests
--------------------------
-
-In February 2016, a new feature called ``teuthology-describe-tests`` was
-added to the `teuthology framework`_ to facilitate documentation and better
-understanding of integration tests (`feature announcement
-<http://article.gmane.org/gmane.comp.file-systems.ceph.devel/29287>`_).
-
-The upshot is that tests can be documented by embedding ``meta:``
-annotations in the yaml files used to define the tests. The results can be
-seen in the `ceph-qa-suite wiki
-<http://tracker.ceph.com/projects/ceph-qa-suite/wiki/>`_.
-
-Since this is a new feature, many yaml files have yet to be annotated.
-Developers are encouraged to improve the documentation, in terms of both
-coverage and quality.
-
-How integration tests are run
------------------------------
-
-Given that - as a new Ceph developer - you will typically not have access
-to the `Sepia lab`_, you may rightly ask how you can run the integration
-tests in your own environment.
-
-One option is to set up a teuthology cluster on bare metal. Though this is
-a non-trivial task, it `is` possible. Here are `some notes
-<http://docs.ceph.com/teuthology/docs/LAB_SETUP.html>`_ to get you started
-if you decide to go this route.
-
-If you have access to an OpenStack tenant, you have another option: the
-`teuthology framework`_ has an OpenStack backend, which is documented `here
-<https://github.com/dachary/teuthology/tree/openstack#openstack-backend>`__.
-This OpenStack backend can build packages from a given git commit or
-branch, provision VMs, install the packages and run integration tests
-on those VMs. This process is controlled using a tool called
-`ceph-workbench ceph-qa-suite`_. This tool also automates publishing of
-test results at http://teuthology-logs.public.ceph.com.
-
-Running integration tests on your code contributions and publishing the
-results allows reviewers to verify that changes to the code base do not
-cause regressions, or to analyze test failures when they do occur.
-
-Every teuthology cluster, whether bare-metal or cloud-provisioned, has a
-so-called "teuthology machine" from which tests suites are triggered using the
-``teuthology-suite`` command.
-
-A detailed and up-to-date description of each `teuthology-suite`_ option is
-available by running the following command on the teuthology machine::
-
- $ teuthology-suite --help
-
-.. _teuthology-suite: http://docs.ceph.com/teuthology/docs/teuthology.suite.html
-
-How integration tests are defined
----------------------------------
-
-Integration tests are defined by yaml files found in the ``suites``
-subdirectory of the `ceph/qa sub-directory`_ and implemented by python
-code found in the ``tasks`` subdirectory. Some tests ("standalone tests")
-are defined in a single yaml file, while other tests are defined by a
-directory tree containing yaml files that are combined, at runtime, into a
-larger yaml file.
-
-Reading a standalone test
--------------------------
-
-Let us first examine a standalone test, or "singleton".
-
-Here is a commented example using the integration test
-`rados/singleton/all/admin-socket.yaml
-<https://github.com/ceph/ceph/blob/master/qa/suites/rados/singleton/all/admin-socket.yaml>`_
-::
-
- roles:
- - - mon.a
- - osd.0
- - osd.1
- tasks:
- - install:
- - ceph:
- - admin_socket:
- osd.0:
- version:
- git_version:
- help:
- config show:
- config set filestore_dump_file /tmp/foo:
- perf dump:
- perf schema:
-
-The ``roles`` array determines the composition of the cluster (how
-many MONs, OSDs, etc.) on which this test is designed to run, as well
-as how these roles will be distributed over the machines in the
-testing cluster. In this case, there is only one element in the
-top-level array: therefore, only one machine is allocated to the
-test. The nested array declares that this machine shall run a MON with
-id ``a`` (that is the ``mon.a`` in the list of roles) and two OSDs
-(``osd.0`` and ``osd.1``).
-
-The body of the test is in the ``tasks`` array: each element is
-evaluated in order, causing the corresponding python file found in the
-``tasks`` subdirectory of the `teuthology repository`_ or
-`ceph/qa sub-directory`_ to be run. "Running" in this case means calling
-the ``task()`` function defined in that file.
-
-In this case, the `install
-<https://github.com/ceph/teuthology/blob/master/teuthology/task/install/__init__.py>`_
-task comes first. It installs the Ceph packages on each machine (as
-defined by the ``roles`` array). A full description of the ``install``
-task is `found in the python file
-<https://github.com/ceph/teuthology/blob/master/teuthology/task/install/__init__.py>`_
-(search for "def task").
-
-The ``ceph`` task, which is documented `here
-<https://github.com/ceph/ceph/blob/master/qa/tasks/ceph.py>`__ (again,
-search for "def task"), starts OSDs and MONs (and possibly MDSs as well)
-as required by the ``roles`` array. In this example, it will start one MON
-(``mon.a``) and two OSDs (``osd.0`` and ``osd.1``), all on the same
-machine. Control moves to the next task when the Ceph cluster reaches
-``HEALTH_OK`` state.
-
-The next task is ``admin_socket`` (`source code
-<https://github.com/ceph/ceph/blob/master/qa/tasks/admin_socket.py>`_).
-The parameter of the ``admin_socket`` task (and any other task) is a
-structure which is interpreted as documented in the task. In this example
-the parameter is a set of commands to be sent to the admin socket of
-``osd.0``. The task verifies that each of them returns on success (i.e.
-exit code zero).
-
-This test can be run with::
-
- $ teuthology-suite --suite rados/singleton/all/admin-socket.yaml fs/ext4.yaml
-
-Test descriptions
------------------
-
-Each test has a "test description", which is similar to a directory path,
-but not the same. In the case of a standalone test, like the one in
-`Reading a standalone test`_, the test description is identical to the
-relative path (starting from the ``suites/`` directory of the
-`ceph/qa sub-directory`_) of the yaml file defining the test.
-
-Much more commonly, tests are defined not by a single yaml file, but by a
-`directory tree of yaml files`. At runtime, the tree is walked and all yaml
-files (facets) are combined into larger yaml "programs" that define the
-tests. A full listing of the yaml defining the test is included at the
-beginning of every test log.
-
-In these cases, the description of each test consists of the
-subdirectory under `suites/
-<https://github.com/ceph/ceph/tree/master/qa/suites>`_ containing the
-yaml facets, followed by an expression in curly braces (``{}``) consisting of
-a list of yaml facets in order of concatenation. For instance the
-test description::
-
- ceph-disk/basic/{distros/centos_7.0.yaml tasks/ceph-disk.yaml}
-
-signifies the concatenation of two files:
-
-* ceph-disk/basic/distros/centos_7.0.yaml
-* ceph-disk/basic/tasks/ceph-disk.yaml
-
-How are tests built from directories?
--------------------------------------
-
-As noted in the previous section, most tests are not defined in a single
-yaml file, but rather as a `combination` of files collected from a
-directory tree within the ``suites/`` subdirectory of the `ceph/qa sub-directory`_.
-
-The set of all tests defined by a given subdirectory of ``suites/`` is
-called an "integration test suite", or a "teuthology suite".
-
-Combination of yaml facets is controlled by special files (``%`` and
-``+``) that are placed within the directory tree and can be thought of as
-operators. The ``%`` file is the "convolution" operator and ``+``
-signifies concatenation.
-
-Convolution operator
---------------------
-
-The convolution operator, implemented as an empty file called ``%``, tells
-teuthology to construct a test matrix from yaml facets found in
-subdirectories below the directory containing the operator.
-
-For example, the `ceph-disk suite
-<https://github.com/ceph/ceph/tree/jewel/qa/suites/ceph-disk/>`_ is
-defined by the ``suites/ceph-disk/`` tree, which consists of the files and
-subdirectories in the following structure::
-
- directory: ceph-disk/basic
- file: %
- directory: distros
- file: centos_7.0.yaml
- file: ubuntu_14.04.yaml
- directory: tasks
- file: ceph-disk.yaml
-
-This is interpreted as a 2x1 matrix consisting of two tests:
-
-1. ceph-disk/basic/{distros/centos_7.0.yaml tasks/ceph-disk.yaml}
-2. ceph-disk/basic/{distros/ubuntu_14.04.yaml tasks/ceph-disk.yaml}
-
-i.e. the concatenation of centos_7.0.yaml and ceph-disk.yaml and
-the concatenation of ubuntu_14.04.yaml and ceph-disk.yaml, respectively.
-In human terms, this means that the task found in ``ceph-disk.yaml`` is
-intended to run on both CentOS 7.0 and Ubuntu 14.04.
-
-Without the file percent, the ``ceph-disk`` tree would be interpreted as
-three standalone tests:
-
-* ceph-disk/basic/distros/centos_7.0.yaml
-* ceph-disk/basic/distros/ubuntu_14.04.yaml
-* ceph-disk/basic/tasks/ceph-disk.yaml
-
-(which would of course be wrong in this case).
-
-Referring to the `ceph/qa sub-directory`_, you will notice that the
-``centos_7.0.yaml`` and ``ubuntu_14.04.yaml`` files in the
-``suites/ceph-disk/basic/distros/`` directory are implemented as symlinks.
-By using symlinks instead of copying, a single file can appear in multiple
-suites. This eases the maintenance of the test framework as a whole.
-
-All the tests generated from the ``suites/ceph-disk/`` directory tree
-(also known as the "ceph-disk suite") can be run with::
-
- $ teuthology-suite --suite ceph-disk
-
-An individual test from the `ceph-disk suite`_ can be run by adding the
-``--filter`` option::
-
- $ teuthology-suite \
- --suite ceph-disk/basic \
- --filter 'ceph-disk/basic/{distros/ubuntu_14.04.yaml tasks/ceph-disk.yaml}'
-
-.. note: To run a standalone test like the one in `Reading a standalone
- test`_, ``--suite`` alone is sufficient. If you want to run a single
- test from a suite that is defined as a directory tree, ``--suite`` must
- be combined with ``--filter``. This is because the ``--suite`` option
- understands POSIX relative paths only.
-
-Concatenation operator
-----------------------
-
-For even greater flexibility in sharing yaml files between suites, the
-special file plus (``+``) can be used to concatenate files within a
-directory. For instance, consider the `suites/rbd/thrash
-<https://github.com/ceph/ceph/tree/master/qa/suites/rbd/thrash>`_
-tree::
-
- directory: rbd/thrash
- file: %
- directory: clusters
- file: +
- file: fixed-2.yaml
- file: openstack.yaml
- directory: workloads
- file: rbd_api_tests_copy_on_read.yaml
- file: rbd_api_tests.yaml
-
-This creates two tests:
-
-* rbd/thrash/{clusters/fixed-2.yaml clusters/openstack.yaml workloads/rbd_api_tests_copy_on_read.yaml}
-* rbd/thrash/{clusters/fixed-2.yaml clusters/openstack.yaml workloads/rbd_api_tests.yaml}
-
-Because the ``clusters/`` subdirectory contains the special file plus
-(``+``), all the other files in that subdirectory (``fixed-2.yaml`` and
-``openstack.yaml`` in this case) are concatenated together
-and treated as a single file. Without the special file plus, they would
-have been convolved with the files from the workloads directory to create
-a 2x2 matrix:
-
-* rbd/thrash/{clusters/openstack.yaml workloads/rbd_api_tests_copy_on_read.yaml}
-* rbd/thrash/{clusters/openstack.yaml workloads/rbd_api_tests.yaml}
-* rbd/thrash/{clusters/fixed-2.yaml workloads/rbd_api_tests_copy_on_read.yaml}
-* rbd/thrash/{clusters/fixed-2.yaml workloads/rbd_api_tests.yaml}
-
-The ``clusters/fixed-2.yaml`` file is shared among many suites to
-define the following ``roles``::
-
- roles:
- - [mon.a, mon.c, osd.0, osd.1, osd.2, client.0]
- - [mon.b, osd.3, osd.4, osd.5, client.1]
-
-The ``rbd/thrash`` suite as defined above, consisting of two tests,
-can be run with::
-
- $ teuthology-suite --suite rbd/thrash
-
-A single test from the rbd/thrash suite can be run by adding the
-``--filter`` option::
-
- $ teuthology-suite \
- --suite rbd/thrash \
- --filter 'rbd/thrash/{clusters/fixed-2.yaml clusters/openstack.yaml workloads/rbd_api_tests_copy_on_read.yaml}'
-
-Filtering tests by their description
-------------------------------------
-
-When a few jobs fail and need to be run again, the ``--filter`` option
-can be used to select tests with a matching description. For instance, if the
-``rados`` suite fails the `all/peer.yaml <https://github.com/ceph/ceph/blob/master/qa/suites/rados/singleton/all/peer.yaml>`_ test, the following will only run the tests that contain this file::
-
- teuthology-suite --suite rados --filter all/peer.yaml
-
-The ``--filter-out`` option does the opposite (it matches tests that do
-`not` contain a given string), and can be combined with the ``--filter``
-option.
-
-Both ``--filter`` and ``--filter-out`` take a comma-separated list of strings (which
-means the comma character is implicitly forbidden in filenames found in the
-`ceph/qa sub-directory`_). For instance::
-
- teuthology-suite --suite rados --filter all/peer.yaml,all/rest-api.yaml
-
-will run tests that contain either
-`all/peer.yaml <https://github.com/ceph/ceph/blob/master/qa/suites/rados/singleton/all/peer.yaml>`_
-or
-`all/rest-api.yaml <https://github.com/ceph/ceph/blob/master/qa/suites/rados/singleton/all/rest-api.yaml>`_
-
-Each string is looked up anywhere in the test description and has to
-be an exact match: they are not regular expressions.
-
-Reducing the number of tests
-----------------------------
-
-The ``rados`` suite generates thousands of tests out of a few hundred
-files. This happens because teuthology constructs test matrices from
-subdirectories wherever it encounters a file named ``%``. For instance,
-all tests in the `rados/basic suite
-<https://github.com/ceph/ceph/tree/master/qa/suites/rados/basic>`_
-run with different messenger types: ``simple``, ``async`` and
-``random``, because they are combined (via the special file ``%``) with
-the `msgr directory
-<https://github.com/ceph/ceph/tree/master/qa/suites/rados/basic/msgr>`_
-
-All integration tests are required to be run before a Ceph release is published.
-When merely verifying whether a contribution can be merged without
-risking a trivial regression, it is enough to run a subset. The ``--subset`` option can be used to
-reduce the number of tests that are triggered. For instance::
-
- teuthology-suite --suite rados --subset 0/4000
-
-will run as few tests as possible. The tradeoff in this case is that
-not all combinations of test variations will together,
-but no matter how small a ratio is provided in the ``--subset``,
-teuthology will still ensure that all files in the suite are in at
-least one test. Understanding the actual logic that drives this
-requires reading the teuthology source code.
-
-The ``--limit`` option only runs the first ``N`` tests in the suite:
-this is rarely useful, however, because there is no way to control which
-test will be first.
-
-Testing in the cloud
-====================
-
-In this chapter, we will explain in detail how use an OpenStack
-tenant as an environment for Ceph integration testing.
-
-Assumptions and caveat
-----------------------
-
-We assume that:
-
-1. you are the only person using the tenant
-2. you have the credentials
-3. the tenant supports the ``nova`` and ``cinder`` APIs
-
-Caveat: be aware that, as of this writing (July 2016), testing in
-OpenStack clouds is a new feature. Things may not work as advertised.
-If you run into trouble, ask for help on `IRC`_ or the `Mailing list`_, or
-open a bug report at the `ceph-workbench bug tracker`_.
-
-.. _`ceph-workbench bug tracker`: http://ceph-workbench.dachary.org/root/ceph-workbench/issues
-
-Prepare tenant
---------------
-
-If you have not tried to use ``ceph-workbench`` with this tenant before,
-proceed to the next step.
-
-To start with a clean slate, login to your tenant via the Horizon dashboard and:
-
-* terminate the ``teuthology`` and ``packages-repository`` instances, if any
-* delete the ``teuthology`` and ``teuthology-worker`` security groups, if any
-* delete the ``teuthology`` and ``teuthology-myself`` key pairs, if any
-
-Also do the above if you ever get key-related errors ("invalid key", etc.) when
-trying to schedule suites.
-
-Getting ceph-workbench
-----------------------
-
-Since testing in the cloud is done using the `ceph-workbench
-ceph-qa-suite`_ tool, you will need to install that first. It is designed
-to be installed via Docker, so if you don't have Docker running on your
-development machine, take care of that first. You can follow `the official
-tutorial <https://docs.docker.com/engine/installation/>`_ to install if
-you have not installed yet.
-
-Once Docker is up and running, install ``ceph-workbench`` by following the
-`Installation instructions in the ceph-workbench documentation
-<http://ceph-workbench.readthedocs.org/en/latest/#installation>`_.
-
-Linking ceph-workbench with your OpenStack tenant
--------------------------------------------------
-
-Before you can trigger your first teuthology suite, you will need to link
-``ceph-workbench`` with your OpenStack account.
-
-First, download a ``openrc.sh`` file by clicking on the "Download OpenStack
-RC File" button, which can be found in the "API Access" tab of the "Access
-& Security" dialog of the OpenStack Horizon dashboard.
-
-Second, create a ``~/.ceph-workbench`` directory, set its permissions to
-700, and move the ``openrc.sh`` file into it. Make sure that the filename
-is exactly ``~/.ceph-workbench/openrc.sh``.
-
-Third, edit the file so it does not ask for your OpenStack password
-interactively. Comment out the relevant lines and replace them with
-something like::
-
- export OS_PASSWORD="aiVeth0aejee3eep8rogho3eep7Pha6ek"
-
-When `ceph-workbench ceph-qa-suite`_ connects to your OpenStack tenant for
-the first time, it will generate two keypairs: ``teuthology-myself`` and
-``teuthology``.
-
-.. If this is not the first time you have tried to use
-.. `ceph-workbench ceph-qa-suite`_ with this tenant, make sure to delete any
-.. stale keypairs with these names!
-
-Run the dummy suite
--------------------
-
-You are now ready to take your OpenStack teuthology setup for a test
-drive::
-
- $ ceph-workbench ceph-qa-suite --suite dummy
-
-Be forewarned that the first run of `ceph-workbench ceph-qa-suite`_ on a
-pristine tenant will take a long time to complete because it downloads a VM
-image and during this time the command may not produce any output.
-
-The images are cached in OpenStack, so they are only downloaded once.
-Subsequent runs of the same command will complete faster.
-
-Although ``dummy`` suite does not run any tests, in all other respects it
-behaves just like a teuthology suite and produces some of the same
-artifacts.
-
-The last bit of output should look something like this::
-
- pulpito web interface: http://149.202.168.201:8081/
- ssh access : ssh -i /home/smithfarm/.ceph-workbench/teuthology-myself.pem ubuntu@149.202.168.201 # logs in /usr/share/nginx/html
-
-What this means is that `ceph-workbench ceph-qa-suite`_ triggered the test
-suite run. It does not mean that the suite run has completed. To monitor
-progress of the run, check the Pulpito web interface URL periodically, or
-if you are impatient, ssh to the teuthology machine using the ssh command
-shown and do::
-
- $ tail -f /var/log/teuthology.*
-
-The `/usr/share/nginx/html` directory contains the complete logs of the
-test suite. If we had provided the ``--upload`` option to the
-`ceph-workbench ceph-qa-suite`_ command, these logs would have been
-uploaded to http://teuthology-logs.public.ceph.com.
-
-Run a standalone test
----------------------
-
-The standalone test explained in `Reading a standalone test`_ can be run
-with the following command::
-
- $ ceph-workbench ceph-qa-suite --suite rados/singleton/all/admin-socket.yaml
-
-This will run the suite shown on the current ``master`` branch of
-``ceph/ceph.git``. You can specify a different branch with the ``--ceph``
-option, and even a different git repo with the ``--ceph-git-url`` option. (Run
-``ceph-workbench ceph-qa-suite --help`` for an up-to-date list of available
-options.)
-
-The first run of a suite will also take a long time, because ceph packages
-have to be built, first. Again, the packages so built are cached and
-`ceph-workbench ceph-qa-suite`_ will not build identical packages a second
-time.
-
-Interrupt a running suite
--------------------------
-
-Teuthology suites take time to run. From time to time one may wish to
-interrupt a running suite. One obvious way to do this is::
-
- ceph-workbench ceph-qa-suite --teardown
-
-This destroys all VMs created by `ceph-workbench ceph-qa-suite`_ and
-returns the OpenStack tenant to a "clean slate".
-
-Sometimes you may wish to interrupt the running suite, but keep the logs,
-the teuthology VM, the packages-repository VM, etc. To do this, you can
-``ssh`` to the teuthology VM (using the ``ssh access`` command reported
-when you triggered the suite -- see `Run the dummy suite`_) and, once
-there::
-
- sudo /etc/init.d/teuthology restart
-
-This will keep the teuthology machine, the logs and the packages-repository
-instance but nuke everything else.
-
-Upload logs to archive server
------------------------------
-
-Since the teuthology instance in OpenStack is only semi-permanent, with limited
-space for storing logs, ``teuthology-openstack`` provides an ``--upload``
-option which, if included in the ``ceph-workbench ceph-qa-suite`` command,
-will cause logs from all failed jobs to be uploaded to the log archive server
-maintained by the Ceph project. The logs will appear at the URL::
-
- http://teuthology-logs.public.ceph.com/$RUN
-
-where ``$RUN`` is the name of the run. It will be a string like this::
-
- ubuntu-2016-07-23_16:08:12-rados-hammer-backports---basic-openstack
-
-Even if you don't providing the ``--upload`` option, however, all the logs can
-still be found on the teuthology machine in the directory
-``/usr/share/nginx/html``.
-
-Provision VMs ad hoc
---------------------
-
-From the teuthology VM, it is possible to provision machines on an "ad hoc"
-basis, to use however you like. The magic incantation is::
-
- teuthology-lock --lock-many $NUMBER_OF_MACHINES \
- --os-type $OPERATING_SYSTEM \
- --os-version $OS_VERSION \
- --machine-type openstack \
- --owner $EMAIL_ADDRESS
-
-The command must be issued from the ``~/teuthology`` directory. The possible
-values for ``OPERATING_SYSTEM`` AND ``OS_VERSION`` can be found by examining
-the contents of the directory ``teuthology/openstack/``. For example::
-
- teuthology-lock --lock-many 1 --os-type ubuntu --os-version 16.04 \
- --machine-type openstack --owner foo@example.com
-
-When you are finished with the machine, find it in the list of machines::
-
- openstack server list
-
-to determine the name or ID, and then terminate it with::
-
- openstack server delete $NAME_OR_ID
-
-Deploy a cluster for manual testing
------------------------------------
-
-The `teuthology framework`_ and `ceph-workbench ceph-qa-suite`_ are
-versatile tools that automatically provision Ceph clusters in the cloud and
-run various tests on them in an automated fashion. This enables a single
-engineer, in a matter of hours, to perform thousands of tests that would
-keep dozens of human testers occupied for days or weeks if conducted
-manually.
-
-However, there are times when the automated tests do not cover a particular
-scenario and manual testing is desired. It turns out that it is simple to
-adapt a test to stop and wait after the Ceph installation phase, and the
-engineer can then ssh into the running cluster. Simply add the following
-snippet in the desired place within the test YAML and schedule a run with the
-test::
-
- tasks:
- - exec:
- client.0:
- - sleep 1000000000 # forever
-
-(Make sure you have a ``client.0`` defined in your ``roles`` stanza or adapt
-accordingly.)
-
-The same effect can be achieved using the ``interactive`` task::
-
- tasks:
- - interactive
-
-By following the test log, you can determine when the test cluster has entered
-the "sleep forever" condition. At that point, you can ssh to the teuthology
-machine and from there to one of the target VMs (OpenStack) or teuthology
-worker machines machine (Sepia) where the test cluster is running.
-
-The VMs (or "instances" in OpenStack terminology) created by
-`ceph-workbench ceph-qa-suite`_ are named as follows:
-
-``teuthology`` - the teuthology machine
-
-``packages-repository`` - VM where packages are stored
-
-``ceph-*`` - VM where packages are built
-
-``target*`` - machines where tests are run
-
-The VMs named ``target*`` are used by tests. If you are monitoring the
-teuthology log for a given test, the hostnames of these target machines can
-be found out by searching for the string ``Locked targets``::
-
- 2016-03-20T11:39:06.166 INFO:teuthology.task.internal:Locked targets:
- target149202171058.teuthology: null
- target149202171059.teuthology: null
-
-The IP addresses of the target machines can be found by running ``openstack
-server list`` on the teuthology machine, but the target VM hostnames (e.g.
-``target149202171058.teuthology``) are resolvable within the teuthology
-cluster.
-
-
-Testing - how to run s3-tests locally
-=====================================
-
-RGW code can be tested by building Ceph locally from source, starting a vstart
-cluster, and running the "s3-tests" suite against it.
-
-The following instructions should work on jewel and above.
-
-Step 1 - build Ceph
--------------------
-
-Refer to :doc:`/install/build-ceph`.
-
-You can do step 2 separately while it is building.
-
-Step 2 - vstart
----------------
-
-When the build completes, and still in the top-level directory of the git
-clone where you built Ceph, do the following, for cmake builds::
-
- cd build/
- RGW=1 ../vstart.sh -n
-
-This will produce a lot of output as the vstart cluster is started up. At the
-end you should see a message like::
-
- started. stop.sh to stop. see out/* (e.g. 'tail -f out/????') for debug output.
-
-This means the cluster is running.
-
-
-Step 3 - run s3-tests
----------------------
-
-To run the s3tests suite do the following::
-
- $ ../qa/workunits/rgw/run-s3tests.sh
-
-.. WIP
-.. ===
-..
-.. Building RPM packages
-.. ---------------------
-..
-.. Ceph is regularly built and packaged for a number of major Linux
-.. distributions. At the time of this writing, these included CentOS, Debian,
-.. Fedora, openSUSE, and Ubuntu.
-..
-.. Architecture
-.. ============
-..
-.. Ceph is a collection of components built on top of RADOS and provide
-.. services (RBD, RGW, CephFS) and APIs (S3, Swift, POSIX) for the user to
-.. store and retrieve data.
-..
-.. See :doc:`/architecture` for an overview of Ceph architecture. The
-.. following sections treat each of the major architectural components
-.. in more detail, with links to code and tests.
-..
-.. FIXME The following are just stubs. These need to be developed into
-.. detailed descriptions of the various high-level components (RADOS, RGW,
-.. etc.) with breakdowns of their respective subcomponents.
-..
-.. FIXME Later, in the Testing chapter I would like to take another look
-.. at these components/subcomponents with a focus on how they are tested.
-..
-.. RADOS
-.. -----
-..
-.. RADOS stands for "Reliable, Autonomic Distributed Object Store". In a Ceph
-.. cluster, all data are stored in objects, and RADOS is the component responsible
-.. for that.
-..
-.. RADOS itself can be further broken down into Monitors, Object Storage Daemons
-.. (OSDs), and client APIs (librados). Monitors and OSDs are introduced at
-.. :doc:`/start/intro`. The client library is explained at
-.. :doc:`/rados/api/index`.
-..
-.. RGW
-.. ---
-..
-.. RGW stands for RADOS Gateway. Using the embedded HTTP server civetweb_ or
-.. Apache FastCGI, RGW provides a REST interface to RADOS objects.
-..
-.. .. _civetweb: https://github.com/civetweb/civetweb
-..
-.. A more thorough introduction to RGW can be found at :doc:`/radosgw/index`.
-..
-.. RBD
-.. ---
-..
-.. RBD stands for RADOS Block Device. It enables a Ceph cluster to store disk
-.. images, and includes in-kernel code enabling RBD images to be mounted.
-..
-.. To delve further into RBD, see :doc:`/rbd/rbd`.
-..
-.. CephFS
-.. ------
-..
-.. CephFS is a distributed file system that enables a Ceph cluster to be used as a NAS.
-..
-.. File system metadata is managed by Meta Data Server (MDS) daemons. The Ceph
-.. file system is explained in more detail at :doc:`/cephfs/index`.
-..
diff --git a/src/ceph/doc/dev/kernel-client-troubleshooting.rst b/src/ceph/doc/dev/kernel-client-troubleshooting.rst
deleted file mode 100644
index 59e4761..0000000
--- a/src/ceph/doc/dev/kernel-client-troubleshooting.rst
+++ /dev/null
@@ -1,17 +0,0 @@
-====================================
- Kernel client troubleshooting (FS)
-====================================
-
-If there is an issue with the cephfs kernel client, the most important thing is
-figuring out whether the problem is with the client or the MDS. Generally,
-this is easy to work out. If the kernel client broke directly, there
-will be output in dmesg. Collect it and any appropriate kernel state. If
-the problem is with the MDS, there will be hung requests that the client
-is waiting on. Look in ``/sys/kernel/debug/ceph/*/`` and cat the ``mdsc`` file to
-get a listing of requests in progress. If one of them remains there, the
-MDS has probably "forgotten" it.
-We can get hints about what's going on by dumping the MDS cache:
-ceph mds tell 0 dumpcache /tmp/dump.txt
-
-And if high logging levels are set on the MDS, that will almost certainly
-hold the information we need to diagnose and solve the issue.
diff --git a/src/ceph/doc/dev/libs.rst b/src/ceph/doc/dev/libs.rst
deleted file mode 100644
index 203dd38..0000000
--- a/src/ceph/doc/dev/libs.rst
+++ /dev/null
@@ -1,18 +0,0 @@
-======================
- Library architecture
-======================
-
-Ceph is structured into libraries which are built and then combined together to
-make executables and other libraries.
-
-- libcommon: a collection of utilities which are available to nearly every ceph
- library and executable. In general, libcommon should not contain global
- variables, because it is intended to be linked into libraries such as
- libcephfs.so.
-
-- libglobal: a collection of utilities focused on the needs of Ceph daemon
- programs. In here you will find pidfile management functions, signal
- handlers, and so forth.
-
-.. todo:: document other libraries
-
diff --git a/src/ceph/doc/dev/logging.rst b/src/ceph/doc/dev/logging.rst
deleted file mode 100644
index 9c2a6f3..0000000
--- a/src/ceph/doc/dev/logging.rst
+++ /dev/null
@@ -1,106 +0,0 @@
-
-Use of the cluster log
-======================
-
-(Note: none of this applies to the local "dout" logging. This is about
-the cluster log that we send through the mon daemons)
-
-Severity
---------
-
-Use ERR for situations where the cluster cannot do its job for some reason.
-For example: we tried to do a write, but it returned an error, or we tried
-to read something, but it's corrupt so we can't, or we scrubbed a PG but
-the data was inconsistent so we can't recover.
-
-Use WRN for incidents that the cluster can handle, but have some abnormal/negative
-aspect, such as a temporary degredation of service, or an unexpected internal
-value. For example, a metadata error that can be auto-fixed, or a slow operation.
-
-Use INFO for ordinary cluster operations that do not indicate a fault in
-Ceph. It is especially important that INFO level messages are clearly
-worded and do not cause confusion or alarm.
-
-Frequency
----------
-
-It is important that messages of all severities are not excessively
-frequent. Consumers may be using a rotating log buffer that contains
-messages of all severities, so even DEBUG messages could interfere
-with proper display of the latest INFO messages if the DEBUG messages
-are too frequent.
-
-Remember that if you have a bad state (as opposed to event), that is
-what health checks are for -- do not spam the cluster log to indicate
-a continuing unhealthy state.
-
-Do not emit cluster log messages for events that scale with
-the number of clients or level of activity on the system, or for
-events that occur regularly in normal operation. For example, it
-would be inappropriate to emit a INFO message about every
-new client that connects (scales with #clients), or to emit and INFO
-message about every CephFS subtree migration (occurs regularly).
-
-Language and formatting
------------------------
-
-(Note: these guidelines matter much less for DEBUG-level messages than
- for INFO and above. Concentrate your efforts on making INFO/WRN/ERR
- messages as readable as possible.)
-
-Use the passive voice. For example, use "Object xyz could not be read", rather
-than "I could not read the object xyz".
-
-Print long/big identifiers, such as inode numbers, as hex, prefixed
-with an 0x so that the user can tell it is hex. We do this because
-the 0x makes it unambiguous (no equivalent for decimal), and because
-the hex form is more likely to fit on the screen.
-
-Print size quantities as a human readable MB/GB/etc, including the unit
-at the end of the number. Exception: if you are specifying an offset,
-where precision is essential to the meaning, then you can specify
-the value in bytes (but print it as hex).
-
-Make a good faith effort to fit your message on a single line. It does
-not have to be guaranteed, but it should at least usually be
-the case. That means, generally, no printing of lists unless there
-are only a few items in the list.
-
-Use nouns that are meaningful to the user, and defined in the
-documentation. Common acronyms are OK -- don't waste screen space
-typing "Rados Object Gateway" instead of RGW. Do not use internal
-class names like "MDCache" or "Objecter". It is okay to mention
-internal structures if they are the direct subject of the message,
-for example in a corruption, but use plain english.
-Example: instead of "Objecter requests" say "OSD client requests"
-Example: it is okay to mention internal structure in the context
- of "Corrupt session table" (but don't say "Corrupt SessionTable")
-
-Where possible, describe the consequence for system availability, rather
-than only describing the underlying state. For example, rather than
-saying "MDS myfs.0 is replaying", say that "myfs is degraded, waiting
-for myfs.0 to finish starting".
-
-While common acronyms are fine, don't randomly truncate words. It's not
-"dir ino", it's "directory inode".
-
-If you're logging something that "should never happen", i.e. a situation
-where it would be an assertion, but we're helpfully not crashing, then
-make that clear in the language -- this is probably not a situation
-that the user can remediate themselves.
-
-Avoid UNIX/programmer jargon. Instead of "errno", just say "error" (or
-preferably give something more descriptive than the number!)
-
-Do not mention cluster map epochs unless they are essential to
-the meaning of the message. For example, "OSDMap epoch 123 is corrupt"
-would be okay (the epoch is the point of the message), but saying "OSD
-123 is down in OSDMap epoch 456" would not be (the osdmap and epoch
-concepts are an implementation detail, the down-ness of the OSD
-is the real message). Feel free to send additional detail to
-the daemon's local log (via `dout`/`derr`).
-
-If you log a problem that may go away in the future, make sure you
-also log when it goes away. Whatever priority you logged the original
-message at, log the "going away" message at INFO.
-
diff --git a/src/ceph/doc/dev/logs.rst b/src/ceph/doc/dev/logs.rst
deleted file mode 100644
index 7fda64f..0000000
--- a/src/ceph/doc/dev/logs.rst
+++ /dev/null
@@ -1,57 +0,0 @@
-============
- Debug logs
-============
-
-The main debugging tool for Ceph is the dout and derr logging functions.
-Collectively, these are referred to as "dout logging."
-
-Dout has several log faculties, which can be set at various log
-levels using the configuration management system. So it is possible to enable
-debugging just for the messenger, by setting debug_ms to 10, for example.
-
-Dout is implemented mainly in common/DoutStreambuf.cc
-
-The dout macro avoids even generating log messages which are not going to be
-used, by enclosing them in an "if" statement. What this means is that if you
-have the debug level set at 0, and you run this code::
-
- dout(20) << "myfoo() = " << myfoo() << dendl;
-
-
-myfoo() will not be called here.
-
-Unfortunately, the performance of debug logging is relatively low. This is
-because there is a single, process-wide mutex which every debug output
-statement takes, and every debug output statement leads to a write() system
-call or a call to syslog(). There is also a computational overhead to using C++
-streams to consider. So you will need to be parsimonious in your logging to get
-the best performance.
-
-Sometimes, enabling logging can hide race conditions and other bugs by changing
-the timing of events. Keep this in mind when debugging.
-
-Performance counters
-====================
-
-Ceph daemons use performance counters to track key statistics like number of
-inodes pinned. Performance counters are essentially sets of integers and floats
-which can be set, incremented, and read using the PerfCounters API.
-
-A PerfCounters object is usually associated with a single subsystem. It
-contains multiple counters. This object is thread-safe because it is protected
-by an internal mutex. You can create multiple PerfCounters objects.
-
-Currently, three types of performance counters are supported: u64 counters,
-float counters, and long-run floating-point average counters. These are created
-by PerfCountersBuilder::add_u64, PerfCountersBuilder::add_fl, and
-PerfCountersBuilder::add_fl_avg, respectively. u64 and float counters simply
-provide a single value which can be updated, incremented, and read atomically.
-floating-pointer average counters provide two values: the current total, and
-the number of times the total has been changed. This is intended to provide a
-long-run average value.
-
-Performance counter information can be read in JSON format from the
-administrative socket (admin_sock). This is implemented as a UNIX domain
-socket. The Ceph performance counter plugin for collectd shows an example of how
-to access this information. Another example can be found in the unit tests for
-the administrative sockets.
diff --git a/src/ceph/doc/dev/mds_internals/data-structures.rst b/src/ceph/doc/dev/mds_internals/data-structures.rst
deleted file mode 100644
index 1197b62..0000000
--- a/src/ceph/doc/dev/mds_internals/data-structures.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-MDS internal data structures
-==============================
-
-*CInode*
- CInode contains the metadata of a file, there is one CInode for each file.
- The CInode stores information like who owns the file, how big the file is.
-
-*CDentry*
- CDentry is the glue that holds inodes and files together by relating inode to
- file/directory names. A CDentry links to at most one CInode (it may not link
- to any CInode). A CInode may be linked by multiple CDentries.
-
-*CDir*
- CDir only exists for directory inode, it's used to link CDentries under the
- directory. A CInode can have multiple CDir when the directory is fragmented.
-
-These data structures are linked together as::
-
- CInode
- CDir
- | \
- | \
- | \
- CDentry CDentry
- CInode CInode
- CDir CDir
- | | \
- | | \
- | | \
- CDentry CDentry CDentry
- CInode CInode CInode
-
-As this doc is being written, size of CInode is about 1400 bytes, size of CDentry
-is about 400 bytes, size of CDir is about 700 bytes. These data structures are
-quite large. Please be careful if you want to add new fields to them.
-
diff --git a/src/ceph/doc/dev/mds_internals/exports.rst b/src/ceph/doc/dev/mds_internals/exports.rst
deleted file mode 100644
index c5b0e39..0000000
--- a/src/ceph/doc/dev/mds_internals/exports.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-
-===============
-Subtree exports
-===============
-
-Normal Migration
-----------------
-
-The exporter begins by doing some checks in export_dir() to verify
-that it is permissible to export the subtree at this time. In
-particular, the cluster must not be degraded, the subtree root may not
-be freezing or frozen (\ie already exporting, or nested beneath
-something that is exporting), and the path must be pinned (\ie not
-conflicted with a rename). If these conditions are met, the subtree
-freeze is initiated, and the exporter is committed to the subtree
-migration, barring an intervening failure of the importer or itself.
-
-The MExportDirDiscover serves simply to ensure that the base directory
-being exported is open on the destination node. It is pinned by the
-importer to prevent it from being trimmed. This occurs before the
-exporter completes the freeze of the subtree to ensure that the
-importer is able to replicate the necessary metadata. When the
-exporter receives the MExportDirDiscoverAck, it allows the freeze to proceed.
-
-The MExportDirPrep message then follows to populate a spanning tree that
-includes all dirs, inodes, and dentries necessary to reach any nested
-exports within the exported region. This replicates metadata as well,
-but it is pushed out by the exporter, avoiding deadlock with the
-regular discover and replication process. The importer is responsible
-for opening the bounding directories from any third parties before
-acknowledging. This ensures that the importer has correct dir_auth
-information about where authority is delegated for all points nested
-within the subtree being migrated. While processing the MExportDirPrep,
-the importer freezes the entire subtree region to prevent any new
-replication or cache expiration.
-
-The warning stage occurs only if the base subtree directory is open by
-nodes other than the importer and exporter. If so, then a
-MExportDirNotify message informs any bystanders that the authority for
-the region is temporarily ambiguous. In particular, bystanders who
-are trimming items from their cache must send MCacheExpire messages to
-both the old and new authorities. This is necessary to ensure that
-the surviving authority reliably receives all expirations even if the
-importer or exporter fails. While the subtree is frozen (on both the
-importer and exporter), expirations will not be immediately processed;
-instead, they will be queued until the region is unfrozen and it can
-be determined that the node is or is not authoritative for the region.
-
-The MExportDir message sends the actual subtree metadata to the importer.
-Upon receipt, the importer inserts the data into its cache, logs a
-copy in the EImportStart, and replies with an MExportDirAck. The exporter
-can now log an EExport, which ultimately specifies that
-the export was a success. In the presence of failures, it is the
-existence of the EExport that disambiguates authority during recovery.
-
-Once logged, the exporter will send an MExportDirNotify to any
-bystanders, informing them that the authority is no longer ambiguous
-and cache expirations should be sent only to the new authority (the
-importer). Once these are acknowledged, implicitly flushing the
-bystander to exporter message streams of any stray expiration notices,
-the exporter unfreezes the subtree, cleans up its state, and sends a
-final MExportDirFinish to the importer. Upon receipt, the importer logs
-an EImportFinish(true), unfreezes its subtree, and cleans up its
-state.
-
-
-PARTIAL FAILURE RECOVERY
-
-
-
-RECOVERY FROM JOURNAL
-
-
-
-
-
diff --git a/src/ceph/doc/dev/mds_internals/index.rst b/src/ceph/doc/dev/mds_internals/index.rst
deleted file mode 100644
index c8c82ad..0000000
--- a/src/ceph/doc/dev/mds_internals/index.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-==============================
-MDS developer documentation
-==============================
-
-.. rubric:: Contents
-
-.. toctree::
- :glob:
-
- *
diff --git a/src/ceph/doc/dev/messenger.rst b/src/ceph/doc/dev/messenger.rst
deleted file mode 100644
index 2b1a888..0000000
--- a/src/ceph/doc/dev/messenger.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-============================
- Messenger notes
-============================
-
-Messenger is the Ceph network layer implementation. Currently Ceph supports
-three messenger type "simple", "async" and "xio". The latter two are both
-experiment features and shouldn't use them in production environment.
-
-ceph_perf_msgr
-==============
-
-ceph_perf_msgr is used to do benchmark for messenger module only and can help
-to find the bottleneck or time consuming within messenger moduleIt just like
-"iperf", we need to start server-side program firstly:
-
-# ./ceph_perf_msgr_server 172.16.30.181:10001 0
-
-The first argument is ip:port pair which is telling the destination address the
-client need to specified. The second argument tells the "think time" when
-dispatching messages. After Giant, CEPH_OSD_OP message which is the actual client
-read/write io request is fast dispatched without queueing to Dispatcher, in order
-to achieve better performance. So CEPH_OSD_OP message will be processed inline,
-"think time" is used by mock this "inline process" process.
-
-# ./ceph_perf_msgr_client 172.16.30.181:10001 1 32 10000 10 4096
-
-The first argument is specified the server ip:port, and the second argument is
-used to specify client threads. The third argument specify the concurrency(the
-max inflight messages for each client thread), the fourth argument specify the
-io numbers will be issued to server per client thread. The fifth argument is
-used to indicate the "think time" for client thread when receiving messages,
-this is also used to mock the client fast dispatch process. The last argument
-specify the message data length to issue.
diff --git a/src/ceph/doc/dev/mon-bootstrap.rst b/src/ceph/doc/dev/mon-bootstrap.rst
deleted file mode 100644
index 75c8a5e..0000000
--- a/src/ceph/doc/dev/mon-bootstrap.rst
+++ /dev/null
@@ -1,199 +0,0 @@
-===================
- Monitor bootstrap
-===================
-
-Terminology:
-
-* ``cluster``: a set of monitors
-* ``quorum``: an active set of monitors consisting of a majority of the cluster
-
-In order to initialize a new monitor, it must always be fed:
-
-#. a logical name
-#. secret keys
-#. a cluster fsid (uuid)
-
-In addition, a monitor needs to know two things:
-
-#. what address to bind to
-#. who its peers are (if any)
-
-There are a range of ways to do both.
-
-Logical id
-==========
-
-The logical id should be unique across the cluster. It will be
-appended to ``mon.`` to logically describe the monitor in the Ceph
-cluster. For example, if the logical id is ``foo``, the monitor's
-name will be ``mon.foo``.
-
-For most users, there is no more than one monitor per host, which
-makes the short hostname logical choice.
-
-Secret keys
-===========
-
-The ``mon.`` secret key is stored a ``keyring`` file in the ``mon data`` directory. It can be generated
-with a command like::
-
- ceph-authtool --create-keyring /path/to/keyring --gen-key -n mon.
-
-When creating a new monitor cluster, the keyring should also contain a ``client.admin`` key that can be used
-to administer the system::
-
- ceph-authtool /path/to/keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow'
-
-The resulting keyring is fed to ``ceph-mon --mkfs`` with the ``--keyring <keyring>`` command-line argument.
-
-Cluster fsid
-============
-
-The cluster fsid is a normal uuid, like that generated by the ``uuidgen`` command. It
-can be provided to the monitor in two ways:
-
-#. via the ``--fsid <uuid>`` command-line argument (or config file option)
-#. via a monmap provided to the new monitor via the ``--monmap <path>`` command-line argument.
-
-Monitor address
-===============
-
-The monitor address can be provided in several ways.
-
-#. via the ``--public-addr <ip[:port]>`` command-line option (or config file option)
-#. via the ``--public-network <cidr>`` command-line option (or config file option)
-#. via the monmap provided via ``--monmap <path>``, if it includes a monitor with our name
-#. via the bootstrap monmap (provided via ``--inject-monmap <path>`` or generated from ``--mon-host <list>``) if it includes a monitor with no name (``noname-<something>``) and an address configured on the local host.
-
-Peers
-=====
-
-The monitor peers are provided in several ways:
-
-#. via the initial monmap, provided via ``--monmap <filename>``
-#. via the bootstrap monmap generated from ``--mon-host <list>``
-#. via the bootstrap monmap generated from ``[mon.*]`` sections with ``mon addr`` in the config file
-#. dynamically via the admin socket
-
-However, these methods are not completely interchangeable because of
-the complexity of creating a new monitor cluster without danger of
-races.
-
-Cluster creation
-================
-
-There are three basic approaches to creating a cluster:
-
-#. Create a new cluster by specifying the monitor names and addresses ahead of time.
-#. Create a new cluster by specifying the monitor names ahead of time, and dynamically setting the addresses as ``ceph-mon`` daemons configure themselves.
-#. Create a new cluster by specifying the monitor addresses ahead of time.
-
-
-Names and addresses
--------------------
-
-Generate a monmap using ``monmaptool`` with the names and addresses of the initial
-monitors. The generated monmap will also include a cluster fsid. Feed that monmap
-to each monitor daemon::
-
- ceph-mon --mkfs -i <name> --monmap <initial_monmap> --keyring <initial_keyring>
-
-When the daemons start, they will know exactly who they and their peers are.
-
-
-Addresses only
---------------
-
-The initial monitor addresses can be specified with the ``mon host`` configuration value,
-either via a config file or the command-line argument. This method has the advantage that
-a single global config file for the cluster can have a line like::
-
- mon host = a.foo.com, b.foo.com, c.foo.com
-
-and will also serve to inform any ceph clients or daemons who the monitors are.
-
-The ``ceph-mon`` daemons will need to be fed the initial keyring and cluster fsid to
-initialize themselves:
-
- ceph-mon --mkfs -i <name> --fsid <uuid> --keyring <initial_keyring>
-
-When the daemons first start up, they will share their names with each other and form a
-new cluster.
-
-Names only
-----------
-
-In dynamic "cloud" environments, the cluster creator may not (yet)
-know what the addresses of the monitors are going to be. Instead,
-they may want machines to configure and start themselves in parallel
-and, as they come up, form a new cluster on their own. The problem is
-that the monitor cluster relies on strict majorities to keep itself
-consistent, and in order to "create" a new cluster, it needs to know
-what the *initial* set of monitors will be.
-
-This can be done with the ``mon initial members`` config option, which
-should list the ids of the initial monitors that are allowed to create
-the cluster::
-
- mon initial members = foo, bar, baz
-
-The monitors can then be initialized by providing the other pieces of
-information (they keyring, cluster fsid, and a way of determining
-their own address). For example::
-
- ceph-mon --mkfs -i <name> --mon-initial-hosts 'foo,bar,baz' --keyring <initial_keyring> --public-addr <ip>
-
-When these daemons are started, they will know their own address, but
-not their peers. They can learn those addresses via the admin socket::
-
- ceph daemon mon.<id> add_bootstrap_peer_hint <peer ip>
-
-Once they learn enough of their peers from the initial member set,
-they will be able to create the cluster.
-
-
-Cluster expansion
-=================
-
-Cluster expansion is slightly less demanding than creation, because
-the creation of the initial quorum is not an issue and there is no
-worry about creating separately independent clusters.
-
-New nodes can be forced to join an existing cluster in two ways:
-
-#. by providing no initial monitor peers addresses, and feeding them dynamically.
-#. by specifying the ``mon initial members`` config option to prevent the new nodes from forming a new, independent cluster, and feeding some existing monitors via any available method.
-
-Initially peerless expansion
-----------------------------
-
-Create a new monitor and give it no peer addresses other than it's own. For
-example::
-
- ceph-mon --mkfs -i <myid> --fsid <fsid> --keyring <mon secret key> --public-addr <ip>
-
-Once the daemon starts, you can give it one or more peer addresses to join with::
-
- ceph daemon mon.<id> add_bootstrap_peer_hint <peer ip>
-
-This monitor will never participate in cluster creation; it can only join an existing
-cluster.
-
-Expanding with initial members
-------------------------------
-
-You can feed the new monitor some peer addresses initially and avoid badness by also
-setting ``mon initial members``. For example::
-
- ceph-mon --mkfs -i <myid> --fsid <fsid> --keyring <mon secret key> --public-addr <ip> --mon-host foo,bar,baz
-
-When the daemon is started, ``mon initial members`` must be set via the command line or config file::
-
- ceph-mon -i <myid> --mon-initial-members foo,bar,baz
-
-to prevent any risk of split-brain.
-
-
-
-
-
diff --git a/src/ceph/doc/dev/msgr2.rst b/src/ceph/doc/dev/msgr2.rst
deleted file mode 100644
index 584ce7d..0000000
--- a/src/ceph/doc/dev/msgr2.rst
+++ /dev/null
@@ -1,250 +0,0 @@
-msgr2 protocol
-==============
-
-This is a revision of the legacy Ceph on-wire protocol that was
-implemented by the SimpleMessenger. It addresses performance and
-security issues.
-
-Definitions
------------
-
-* *client* (C): the party initiating a (TCP) connection
-* *server* (S): the party accepting a (TCP) connection
-* *connection*: an instance of a (TCP) connection between two processes.
-* *entity*: a ceph entity instantiation, e.g. 'osd.0'. each entity
- has one or more unique entity_addr_t's by virtue of the 'nonce'
- field, which is typically a pid or random value.
-* *stream*: an exchange, passed over a connection, between two unique
- entities. in the future multiple entities may coexist within the
- same process.
-* *session*: a stateful session between two entities in which message
- exchange is ordered and lossless. A session might span multiple
- connections (and streams) if there is an interruption (TCP connection
- disconnect).
-* *frame*: a discrete message sent between the peers. Each frame
- consists of a tag (type code), stream id, payload, and (if signing
- or encryption is enabled) some other fields. See below for the
- structure.
-* *stream id*: a 32-bit value that uniquely identifies a stream within
- a given connection. the stream id implicitly instantiated when the send
- sends a frame using that id.
-* *tag*: a single-byte type code associated with a frame. The tag
- determines the structure of the payload.
-
-Phases
-------
-
-A connection has two distinct phases:
-
-#. banner
-#. frame exchange for one or more strams
-
-A stream has three distinct phases:
-
-#. authentication
-#. message flow handshake
-#. message exchange
-
-Banner
-------
-
-Both the client and server, upon connecting, send a banner::
-
- "ceph %x %x\n", protocol_features_suppored, protocol_features_required
-
-The protocol features are a new, distinct namespace. Initially no
-features are defined or required, so this will be "ceph 0 0\n".
-
-If the remote party advertises required features we don't support, we
-can disconnect.
-
-Frame format
-------------
-
-All further data sent or received is contained by a frame. Each frame has
-the form::
-
- stream_id (le32)
- frame_len (le32)
- tag (TAG_* byte)
- payload
- [payload padding -- only present after stream auth phase]
- [signature -- only present after stream auth phase]
-
-* frame_len includes everything after the frame_len le32 up to the end of the
- frame (all payloads, signatures, and padding).
-
-* The payload format and length is determined by the tag.
-
-* The signature portion is only present in a given stream if the
- authentication phase has completed (TAG_AUTH_DONE has been sent) and
- signatures are enabled.
-
-
-Authentication
---------------
-
-* TAG_AUTH_METHODS (server only): list authentication methods (none, cephx, ...)::
-
- __le32 num_methods;
- __le32 methods[num_methods]; // CEPH_AUTH_{NONE, CEPHX}
-
-* TAG_AUTH_SET_METHOD (client only): set auth method for this connection::
-
- __le32 method;
-
- - The selected auth method determines the sig_size and block_size in any
- subsequent messages (TAG_AUTH_DONE and non-auth messages).
-
-* TAG_AUTH_BAD_METHOD (server only): reject client-selected auth method::
-
- __le32 method
-
-* TAG_AUTH: client->server or server->client auth message::
-
- __le32 len;
- method specific payload
-
-* TAG_AUTH_DONE::
-
- confounder (block_size bytes of random garbage)
- __le64 flags
- FLAG_ENCRYPTED 1
- FLAG_SIGNED 2
- signature
-
- - The client first says AUTH_DONE, and the server replies to
- acknowledge it.
-
-
-Message frame format
---------------------
-
-The frame format is fixed (see above), but can take three different
-forms, depending on the AUTH_DONE flags:
-
-* If neither FLAG_SIGNED or FLAG_ENCRYPTED is specified, things are simple::
-
- stream_id
- frame_len
- tag
- payload
- payload_padding (out to auth block_size)
-
-* If FLAG_SIGNED has been specified::
-
- stream_id
- frame_len
- tag
- payload
- payload_padding (out to auth block_size)
- signature (sig_size bytes)
-
- Here the padding just makes life easier for the signature. It can be
- random data to add additional confounder. Note also that the
- signature input must include some state from the session key and the
- previous message.
-
-* If FLAG_ENCRYPTED has been specified::
-
- stream_id
- frame_len
- {
- payload_sig_length
- payload
- payload_padding (out to auth block_size)
- } ^ stream cipher
-
- Note that the padding ensures that the total frame is a multiple of
- the auth method's block_size so that the message can be sent out over
- the wire without waiting for the next frame in the stream.
-
-
-Message flow handshake
-----------------------
-
-In this phase the peers identify each other and (if desired) reconnect to
-an established session.
-
-* TAG_IDENT: identify ourselves::
-
- entity_addrvec_t addr(s)
- __u8 my type (CEPH_ENTITY_TYPE_*)
- __le32 protocol version
- __le64 features supported (CEPH_FEATURE_* bitmask)
- __le64 features required (CEPH_FEATURE_* bitmask)
- __le64 flags (CEPH_MSG_CONNECT_* bitmask)
- __le64 cookie (a client identifier, assigned by the sender. unique on the sender.)
-
- - client will send first, server will reply with same.
-
-* TAG_IDENT_MISSING_FEATURES (server only): complain about a TAG_IDENT with too few features::
-
- __le64 features we require that peer didn't advertise
-
-* TAG_IDENT_BAD_PROTOCOL (server only): complain about an old protocol version::
-
- __le32 protocol_version (our protocol version)
-
-* TAG_RECONNECT (client only): reconnect to an established session::
-
- __le64 cookie
- __le64 global_seq
- __le64 connect_seq
- __le64 msg_seq (the last msg seq received)
-
-* TAG_RECONNECT_OK (server only): acknowledge a reconnect attempt::
-
- __le64 msg_seq (last msg seq received)
-
-* TAG_RECONNECT_RETRY_SESSION (server only): fail reconnect due to stale connect_seq
-
-* TAG_RECONNECT_RETRY_GLOBAL (server only): fail reconnect due to stale global_seq
-
-* TAG_RECONNECT_WAIT (server only): fail reconnect due to connect race.
-
- - Indicates that the server is already connecting to the client, and
- that direction should win the race. The client should wait for that
- connection to complete.
-
-Message exchange
-----------------
-
-Once a session is stablished, we can exchange messages.
-
-* TAG_MSG: a message::
-
- ceph_msg_header2
- front
- middle
- data
-
- - The ceph_msg_header is modified in ceph_msg_header2 to include an
- ack_seq. This avoids the need for a TAG_ACK message most of the time.
-
-* TAG_ACK: acknowledge receipt of message(s)::
-
- __le64 seq
-
- - This is only used for stateful sessions.
-
-* TAG_KEEPALIVE2: check for connection liveness::
-
- ceph_timespec stamp
-
- - Time stamp is local to sender.
-
-* TAG_KEEPALIVE2_ACK: reply to a keepalive2::
-
- ceph_timestamp stamp
-
- - Time stamp is from the TAG_KEEPALIVE2 we are responding to.
-
-* TAG_CLOSE: terminate a stream
-
- Indicates that a stream should be terminated. This is equivalent to
- a hangup or reset (i.e., should trigger ms_handle_reset). It isn't
- strictly necessary or useful if there is only a single stream as we
- could just disconnect the TCP connection, although one could
- certainly use it creatively (e.g., reset the stream state and retry
- an authentication handshake).
diff --git a/src/ceph/doc/dev/network-encoding.rst b/src/ceph/doc/dev/network-encoding.rst
deleted file mode 100644
index 51d030e..0000000
--- a/src/ceph/doc/dev/network-encoding.rst
+++ /dev/null
@@ -1,214 +0,0 @@
-==================
- Network Encoding
-==================
-
-This describes the encoding used to serialize data. It doesn't cover specific
-objects/messages but focuses on the base types.
-
-The types are not self documenting in any way. They can not be decoded unless
-you know what they are.
-
-Conventions
-===========
-
-Integers
---------
-
-The integer types used will be named ``{signed}{size}{endian}``. For example
-``u16le`` is an unsigned 16 bit integer encoded in little endian byte order
-while ``s64be`` is a signed 64 bit integer in big endian. Additionally ``u8``
-and ``s8`` will represent signed and unsigned bytes respectively. Signed
-integers use two's complement encoding.
-
-Complex Types
--------------
-
-This document will use a c-like syntax for describing structures. The
-structure represents the data that will go over the wire. There will be no
-padding between the elements and the elements will be sent in the order they
-appear. For example::
-
- struct foo {
- u8 tag;
- u32le data;
- }
-
-When encoding the values ``0x05`` and ``0x12345678`` respectively will appear on
-the wire as ``05 78 56 34 12``.
-
-Variable Arrays
----------------
-
-Unlike c, length arrays can be used anywhere in structures and will be inline in
-the protocol. Furthermore the length may be described using an earlier item in
-the structure.
-
-::
-
- struct blob {
- u32le size;
- u8 data[size];
- u32le checksum;
- }
-
-This structure is encoded as a 32 bit size, followed by ``size`` data bytes,
-then a 32 bit checksum.
-
-Primitive Aliases
------------------
-
-These types are just aliases for primitive types.
-
-::
-
- // From /src/include/types.h
-
- typedef u32le epoch_t;
- typedef u32le ceph_seq_t;
- typedef u64le ceph_tid_t;
- typedef u64le version_t;
-
-
-Structures
-==========
-
-These are the way structures are encoded. Note that these structures don't
-actually exist in the source but are the way that different types are encoded.
-
-Optional
---------
-
-Optionals are represented as a presence byte, followed by the item if it exists.
-
-::
-
- struct ceph_optional<T> {
- u8 present;
- T element[present? 1 : 0]; // Only if present is non-zero.
- }
-
-Optionals are used to encode ``boost::optional``.
-
-Pair
-----
-
-Pairs are simply the first item followed by the second.
-
-::
-
- struct ceph_pair<A,B> {
- A a;
- B b;
- }
-
-Pairs are used to encode ``std::pair``.
-
-Triple
-------
-
-Triples are simply the tree elements one after another.
-
-::
-
- struct ceph_triple<A,B,C> {
- A a;
- B b;
- C c;
- }
-
-Triples are used to encode ``ceph::triple``.
-
-
-List
-----
-
-Lists are represented as an element count followed by that many elements.
-
-::
-
- struct ceph_list<T> {
- u32le length;
- T elements[length];
- }
-
-.. note::
- The size of the elements in the list are not necessarily uniform.
-
-Lists are used to encode ``std::list``, ``std::vector``, ``std::deque``,
-``std::set`` and ``ceph::unordered_set``.
-
-Blob
-----
-
-A Blob is simply a list of bytes.
-
-::
-
- struct ceph_string {
- ceph_list<u8>;
- }
-
- // AKA
-
- struct ceph_string {
- u32le size;
- u8 data[size];
- }
-
-Blobs are used to encode ``std::string``, ``const char *`` and ``bufferlist``.
-
-.. note::
- The content of a Blob is arbratrary binary data.
-
-Map
----
-
-Maps are a list of pairs.
-
-::
-
- struct ceph_map<K,V> {
- ceph_list<ceph_pair<K,V>>;
- }
-
- // AKA
-
- struct ceph_map<K,V> {
- u32le length;
- ceph_pair<K,V> entries[length];
- }
-
-Maps are used to encode ``std::map``, ``std::multimap`` and
-``ceph::unordered_map``.
-
-Complex Types
-=============
-
-These aren't hard to find in the source but the common ones are listed here for
-convenience.
-
-utime_t
--------
-
-::
-
- // From /src/include/utime.h
- struct utime_t {
- u32le tv_sec; // Seconds since epoch.
- u32le tv_nsec; // Nanoseconds since the last second.
- }
-
-ceph_entity_name
-----------------
-
-::
-
- // From /src/include/msgr.h
- struct ceph_entity_name {
- u8 type; // CEPH_ENTITY_TYPE_*
- u64le num;
- }
-
- // CEPH_ENTITY_TYPE_* defined in /src/include/msgr.h
-
-.. vi: textwidth=80 noexpandtab
diff --git a/src/ceph/doc/dev/network-protocol.rst b/src/ceph/doc/dev/network-protocol.rst
deleted file mode 100644
index 3a59b80..0000000
--- a/src/ceph/doc/dev/network-protocol.rst
+++ /dev/null
@@ -1,197 +0,0 @@
-==================
- Network Protocol
-==================
-
-This file describes the network protocol used by Ceph. In order to understand
-the way the structures are defined it is recommended to read the introduction
-of :doc:`/dev/network-encoding` first.
-
-Hello
-=====
-
-The protocol starts with a handshake that confirms that both nodes are talking
-ceph and shares some basic information.
-
-Banner
-------
-
-The first action is the server sending banner to the client. The banner is
-defined in ``CEPH_BANNER`` from ``src/include/msgr.h``. This is followed by
-the server's then client's address each encoded as a ``entity_addr_t``.
-
-Once the client verifies that the servers banner matches its own it replies with
-its banner and its address.
-
-Connect
--------
-
-Once the banners have been verified and the addresses exchanged the connection
-negotiation begins. First the client sends a ``ceph_msg_connect`` structure
-with its information.
-
-::
-
- // From src/include/msgr.h
- struct ceph_msg_connect {
- u64le features; // Supported features (CEPH_FEATURE_*)
- u32le host_type; // CEPH_ENTITY_TYPE_*
- u32le global_seq; // Number of connections initiated by this host.
- u32le connect_seq; // Number of connections initiated in this session.
- u32le protocol_version;
- u32le authorizer_protocol;
- u32le authorizer_len;
- u8 flags; // CEPH_MSG_CONNECT_*
- u8 authorizer[authorizer_len];
- }
-
-Connect Reply
--------------
-
-Once the connect has been sent the connection has effectively been opened,
-however the first message the server sends must be a connect reply message.
-
-::
-
- struct ceph_msg_connect_reply {
- u8 tag; // Tag indicating response code.
- u64le features;
- u32le global_seq;
- u32le connect_seq;
- u32le protocol_version;
- u32le authorizer_len;
- u8 flags;
- u8 authorizer[authorizer_len];
- }
-
-MSGR Protocol
-=============
-
-This is a low level protocol over which messages are delivered. The messages
-at this level consist of a tag byte, identifying the type of message, followed
-by the message data.
-
-::
-
- // Virtual structure.
- struct {
- u8 tag; // CEPH_MSGR_TAG_*
- u8 data[]; // Length depends on tag and data.
- }
-
-The length of ``data`` is determined by the tag byte and depending on the
-message type via information in the ``data`` array itself.
-
-.. note::
- There is no way to determine the length of the message if you do not
- understand the type of message.
-
-The message tags are defined in ``src/include/msgr.h`` and the current ones
-are listed below along with the data they include. Note that the defined
-structures don't exist in the source and are merely for representing the
-protocol.
-
-CEPH_MSGR_TAG_CLOSE (0x06)
---------------------------
-
-::
-
- struct ceph_msgr_close {
- u8 tag = 0x06;
- u8 data[0]; // No data.
- }
-
-The close message indicates that the connection is being closed.
-
-CEPH_MSGR_TAG_MSG (0x07)
-------------------------
-
-::
-
- struct ceph_msgr_msg {
- u8 tag = 0x07;
- ceph_msg_header header;
- u8 front [header.front_len ];
- u8 middle[header.middle_len];
- u8 data [header.data_len ];
- ceph_msg_footer footer;
- }
-
- // From src/include/msgr.h
- struct ceph_msg_header {
- u64le seq; // Sequence number.
- u64le tid; // Transaction ID.
- u16le type; // Message type (CEPH_MSG_* or MSG_*).
- u16le priority; // Priority (higher is more important).
- u16le version; // Version of message encoding.
-
- u32le front_len; // The size of the front section.
- u32le middle_len; // The size of the middle section.
- u32le data_len; // The size of the data section.
- u16le data_off; // The way data should be aligned by the reciever.
-
- ceph_entity_name src; // Information about the sender.
-
- u16le compat_version; // Oldest compatible encoding version.
- u16le reserved; // Unused.
- u32le crc; // CRC of header.
- }
-
- // From src/include/msgr.h
- struct ceph_msg_footer {
- u32le front_crc; // Checksums of the various sections.
- u32le middle_crc; //
- u32le data_crc; //
- u64le sig; // Crypographic signature.
- u8 flags;
- }
-
-Messages are the business logic of Ceph. They are what is used to send data and
-requests between nodes. The message header contains the length of the message
-so unknown messages can be handled gracefully.
-
-There are two names for the message type constants ``CEPH_MSG_*`` and ``MSG_*``.
-The only difference between the two is that the first are considered "public"
-while the second is for internal use only. There is no protocol-level
-difference.
-
-CEPH_MSGR_TAG_ACK (0x08)
-------------------------
-
-::
-
- struct ceph_msgr_ack {
- u8 tag = 0x08;
- u64le seq; // The sequence number of the message being acknowledged.
- }
-
-CEPH_MSGR_TAG_KEEPALIVE (0x09)
-------------------------------
-
-::
-
- struct ceph_msgr_keepalive {
- u8 tag = 0x09;
- u8 data[0]; // No data.
- }
-
-CEPH_MSGR_TAG_KEEPALIVE2 (0x0E)
--------------------------------
-
-::
-
- struct ceph_msgr_keepalive2 {
- u8 tag = 0x0E;
- utime_t timestamp;
- }
-
-CEPH_MSGR_TAG_KEEPALIVE2_ACK (0x0F)
------------------------------------
-
-::
-
- struct ceph_msgr_keepalive2_ack {
- u8 tag = 0x0F;
- utime_t timestamp;
- }
-
-.. vi: textwidth=80 noexpandtab
diff --git a/src/ceph/doc/dev/object-store.rst b/src/ceph/doc/dev/object-store.rst
deleted file mode 100644
index 355f515..0000000
--- a/src/ceph/doc/dev/object-store.rst
+++ /dev/null
@@ -1,70 +0,0 @@
-====================================
- Object Store Architecture Overview
-====================================
-
-.. graphviz::
-
- /*
- * Rough outline of object store module dependencies
- */
-
- digraph object_store {
- size="7,7";
- node [color=lightblue2, style=filled, fontname="Serif"];
-
- "testrados" -> "librados"
- "testradospp" -> "librados"
-
- "rbd" -> "librados"
-
- "radostool" -> "librados"
-
- "radosgw-admin" -> "radosgw"
-
- "radosgw" -> "librados"
-
- "radosacl" -> "librados"
-
- "librados" -> "objecter"
-
- "ObjectCacher" -> "Filer"
-
- "dumpjournal" -> "Journaler"
-
- "Journaler" -> "Filer"
-
- "SyntheticClient" -> "Filer"
- "SyntheticClient" -> "objecter"
-
- "Filer" -> "objecter"
-
- "objecter" -> "OSDMap"
-
- "ceph-osd" -> "PG"
- "ceph-osd" -> "ObjectStore"
-
- "crushtool" -> "CrushWrapper"
-
- "OSDMap" -> "CrushWrapper"
-
- "OSDMapTool" -> "OSDMap"
-
- "PG" -> "PrimaryLogPG"
- "PG" -> "ObjectStore"
- "PG" -> "OSDMap"
-
- "PrimaryLogPG" -> "ObjectStore"
- "PrimaryLogPG" -> "OSDMap"
-
- "ObjectStore" -> "FileStore"
- "ObjectStore" -> "BlueStore"
-
- "BlueStore" -> "rocksdb"
-
- "FileStore" -> "xfs"
- "FileStore" -> "btrfs"
- "FileStore" -> "ext4"
- }
-
-
-.. todo:: write more here
diff --git a/src/ceph/doc/dev/osd-class-path.rst b/src/ceph/doc/dev/osd-class-path.rst
deleted file mode 100644
index 6e209bc..0000000
--- a/src/ceph/doc/dev/osd-class-path.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-=======================
- OSD class path issues
-=======================
-
-::
-
- 2011-12-05 17:41:00.994075 7ffe8b5c3760 librbd: failed to assign a block name for image
- create error: error 5: Input/output error
-
-This usually happens because your OSDs can't find ``cls_rbd.so``. They
-search for it in ``osd_class_dir``, which may not be set correctly by
-default (http://tracker.newdream.net/issues/1722).
-
-Most likely it's looking in ``/usr/lib/rados-classes`` instead of
-``/usr/lib64/rados-classes`` - change ``osd_class_dir`` in your
-``ceph.conf`` and restart the OSDs to fix it.
diff --git a/src/ceph/doc/dev/osd_internals/backfill_reservation.rst b/src/ceph/doc/dev/osd_internals/backfill_reservation.rst
deleted file mode 100644
index cf9dab4..0000000
--- a/src/ceph/doc/dev/osd_internals/backfill_reservation.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-====================
-Backfill Reservation
-====================
-
-When a new osd joins a cluster, all pgs containing it must eventually backfill
-to it. If all of these backfills happen simultaneously, it would put excessive
-load on the osd. osd_max_backfills limits the number of outgoing or
-incoming backfills on a single node. The maximum number of outgoing backfills is
-osd_max_backfills. The maximum number of incoming backfills is
-osd_max_backfills. Therefore there can be a maximum of osd_max_backfills * 2
-simultaneous backfills on one osd.
-
-Each OSDService now has two AsyncReserver instances: one for backfills going
-from the osd (local_reserver) and one for backfills going to the osd
-(remote_reserver). An AsyncReserver (common/AsyncReserver.h) manages a queue
-by priority of waiting items and a set of current reservation holders. When a
-slot frees up, the AsyncReserver queues the Context* associated with the next
-item on the highest priority queue in the finisher provided to the constructor.
-
-For a primary to initiate a backfill, it must first obtain a reservation from
-its own local_reserver. Then, it must obtain a reservation from the backfill
-target's remote_reserver via a MBackfillReserve message. This process is
-managed by substates of Active and ReplicaActive (see the substates of Active
-in PG.h). The reservations are dropped either on the Backfilled event, which
-is sent on the primary before calling recovery_complete and on the replica on
-receipt of the BackfillComplete progress message), or upon leaving Active or
-ReplicaActive.
-
-It's important that we always grab the local reservation before the remote
-reservation in order to prevent a circular dependency.
-
-We want to minimize the risk of data loss by prioritizing the order in
-which PGs are recovered. The highest priority is log based recovery
-(OSD_RECOVERY_PRIORITY_MAX) since this must always complete before
-backfill can start. The next priority is backfill of degraded PGs and
-is a function of the degradation. A backfill for a PG missing two
-replicas will have a priority higher than a backfill for a PG missing
-one replica. The lowest priority is backfill of non-degraded PGs.
diff --git a/src/ceph/doc/dev/osd_internals/erasure_coding.rst b/src/ceph/doc/dev/osd_internals/erasure_coding.rst
deleted file mode 100644
index 7263cc3..0000000
--- a/src/ceph/doc/dev/osd_internals/erasure_coding.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-==============================
-Erasure Coded Placement Groups
-==============================
-
-Glossary
---------
-
-*chunk*
- when the encoding function is called, it returns chunks of the same
- size. Data chunks which can be concatenated to reconstruct the original
- object and coding chunks which can be used to rebuild a lost chunk.
-
-*chunk rank*
- the index of a chunk when returned by the encoding function. The
- rank of the first chunk is 0, the rank of the second chunk is 1
- etc.
-
-*stripe*
- when an object is too large to be encoded with a single call,
- each set of chunks created by a call to the encoding function is
- called a stripe.
-
-*shard|strip*
- an ordered sequence of chunks of the same rank from the same
- object. For a given placement group, each OSD contains shards of
- the same rank. When dealing with objects that are encoded with a
- single operation, *chunk* is sometime used instead of *shard*
- because the shard is made of a single chunk. The *chunks* in a
- *shard* are ordered according to the rank of the stripe they belong
- to.
-
-*K*
- the number of data *chunks*, i.e. the number of *chunks* in which the
- original object is divided. For instance if *K* = 2 a 10KB object
- will be divided into *K* objects of 5KB each.
-
-*M*
- the number of coding *chunks*, i.e. the number of additional *chunks*
- computed by the encoding functions. If there are 2 coding *chunks*,
- it means 2 OSDs can be out without losing data.
-
-*N*
- the number of data *chunks* plus the number of coding *chunks*,
- i.e. *K+M*.
-
-*rate*
- the proportion of the *chunks* that contains useful information, i.e. *K/N*.
- For instance, for *K* = 9 and *M* = 3 (i.e. *K+M* = *N* = 12) the rate is
- *K* = 9 / *N* = 12 = 0.75, i.e. 75% of the chunks contain useful information.
-
-The definitions are illustrated as follows (PG stands for placement group):
-::
-
- OSD 40 OSD 33
- +-------------------------+ +-------------------------+
- | shard 0 - PG 10 | | shard 1 - PG 10 |
- |+------ object O -------+| |+------ object O -------+|
- ||+---------------------+|| ||+---------------------+||
- stripe||| chunk 0 ||| ||| chunk 1 ||| ...
- 0 ||| stripe 0 ||| ||| stripe 0 |||
- ||+---------------------+|| ||+---------------------+||
- ||+---------------------+|| ||+---------------------+||
- stripe||| chunk 0 ||| ||| chunk 1 ||| ...
- 1 ||| stripe 1 ||| ||| stripe 1 |||
- ||+---------------------+|| ||+---------------------+||
- ||+---------------------+|| ||+---------------------+||
- stripe||| chunk 0 ||| ||| chunk 1 ||| ...
- 2 ||| stripe 2 ||| ||| stripe 2 |||
- ||+---------------------+|| ||+---------------------+||
- |+-----------------------+| |+-----------------------+|
- | ... | | ... |
- +-------------------------+ +-------------------------+
-
-Table of content
-----------------
-
-.. toctree::
- :maxdepth: 1
-
- Developer notes <erasure_coding/developer_notes>
- Jerasure plugin <erasure_coding/jerasure>
- High level design document <erasure_coding/ecbackend>
diff --git a/src/ceph/doc/dev/osd_internals/erasure_coding/developer_notes.rst b/src/ceph/doc/dev/osd_internals/erasure_coding/developer_notes.rst
deleted file mode 100644
index 770ff4a..0000000
--- a/src/ceph/doc/dev/osd_internals/erasure_coding/developer_notes.rst
+++ /dev/null
@@ -1,223 +0,0 @@
-============================
-Erasure Code developer notes
-============================
-
-Introduction
-------------
-
-Each chapter of this document explains an aspect of the implementation
-of the erasure code within Ceph. It is mostly based on examples being
-explained to demonstrate how things work.
-
-Reading and writing encoded chunks from and to OSDs
----------------------------------------------------
-
-An erasure coded pool stores each object as K+M chunks. It is divided
-into K data chunks and M coding chunks. The pool is configured to have
-a size of K+M so that each chunk is stored in an OSD in the acting
-set. The rank of the chunk is stored as an attribute of the object.
-
-Let's say an erasure coded pool is created to use five OSDs ( K+M =
-5 ) and sustain the loss of two of them ( M = 2 ).
-
-When the object *NYAN* containing *ABCDEFGHI* is written to it, the
-erasure encoding function splits the content in three data chunks,
-simply by dividing the content in three : the first contains *ABC*,
-the second *DEF* and the last *GHI*. The content will be padded if the
-content length is not a multiple of K. The function also creates two
-coding chunks : the fourth with *YXY* and the fifth with *GQC*. Each
-chunk is stored in an OSD in the acting set. The chunks are stored in
-objects that have the same name ( *NYAN* ) but reside on different
-OSDs. The order in which the chunks were created must be preserved and
-is stored as an attribute of the object ( shard_t ), in addition to its
-name. Chunk *1* contains *ABC* and is stored on *OSD5* while chunk *4*
-contains *YXY* and is stored on *OSD3*.
-
-::
-
- +-------------------+
- name | NYAN |
- +-------------------+
- content | ABCDEFGHI |
- +--------+----------+
- |
- |
- v
- +------+------+
- +---------------+ encode(3,2) +-----------+
- | +--+--+---+---+ |
- | | | | |
- | +-------+ | +-----+ |
- | | | | |
- +--v---+ +--v---+ +--v---+ +--v---+ +--v---+
- name | NYAN | | NYAN | | NYAN | | NYAN | | NYAN |
- +------+ +------+ +------+ +------+ +------+
- shard | 1 | | 2 | | 3 | | 4 | | 5 |
- +------+ +------+ +------+ +------+ +------+
- content | ABC | | DEF | | GHI | | YXY | | QGC |
- +--+---+ +--+---+ +--+---+ +--+---+ +--+---+
- | | | | |
- | | | | |
- | | +--+---+ | |
- | | | OSD1 | | |
- | | +------+ | |
- | | +------+ | |
- | +------>| OSD2 | | |
- | +------+ | |
- | +------+ | |
- | | OSD3 |<----+ |
- | +------+ |
- | +------+ |
- | | OSD4 |<--------------+
- | +------+
- | +------+
- +----------------->| OSD5 |
- +------+
-
-
-
-
-When the object *NYAN* is read from the erasure coded pool, the
-decoding function reads three chunks : chunk *1* containing *ABC*,
-chunk *3* containing *GHI* and chunk *4* containing *YXY* and rebuild
-the original content of the object *ABCDEFGHI*. The decoding function
-is informed that the chunks *2* and *5* are missing ( they are called
-*erasures* ). The chunk *5* could not be read because the *OSD4* is
-*out*.
-
-The decoding function could be called as soon as three chunks are
-read : *OSD2* was the slowest and its chunk does not need to be taken into
-account. This optimization is not implemented in Firefly.
-
-::
-
- +-------------------+
- name | NYAN |
- +-------------------+
- content | ABCDEFGHI |
- +--------+----------+
- ^
- |
- |
- +------+------+
- | decode(3,2) |
- | erasures 2,5|
- +-------------->| |
- | +-------------+
- | ^ ^
- | | +-----+
- | | |
- +--+---+ +------+ +--+---+ +--+---+
- name | NYAN | | NYAN | | NYAN | | NYAN |
- +------+ +------+ +------+ +------+
- shard | 1 | | 2 | | 3 | | 4 |
- +------+ +------+ +------+ +------+
- content | ABC | | DEF | | GHI | | YXY |
- +--+---+ +--+---+ +--+---+ +--+---+
- ^ . ^ ^
- | TOO . | |
- | SLOW . +--+---+ |
- | ^ | OSD1 | |
- | | +------+ |
- | | +------+ |
- | +-------| OSD2 | |
- | +------+ |
- | +------+ |
- | | OSD3 |-----+
- | +------+
- | +------+
- | | OSD4 | OUT
- | +------+
- | +------+
- +------------------| OSD5 |
- +------+
-
-
-Erasure code library
---------------------
-
-Using `Reed-Solomon <https://en.wikipedia.org/wiki/Reed_Solomon>`_,
-with parameters K+M, object O is encoded by dividing it into chunks O1,
-O2, ... OM and computing coding chunks P1, P2, ... PK. Any K chunks
-out of the available K+M chunks can be used to obtain the original
-object. If data chunk O2 or coding chunk P2 are lost, they can be
-repaired using any K chunks out of the K+M chunks. If more than M
-chunks are lost, it is not possible to recover the object.
-
-Reading the original content of object O can be a simple
-concatenation of O1, O2, ... OM, because the plugins are using
-`systematic codes
-<http://en.wikipedia.org/wiki/Systematic_code>`_. Otherwise the chunks
-must be given to the erasure code library *decode* method to retrieve
-the content of the object.
-
-Performance depend on the parameters to the encoding functions and
-is also influenced by the packet sizes used when calling the encoding
-functions ( for Cauchy or Liberation for instance ): smaller packets
-means more calls and more overhead.
-
-Although Reed-Solomon is provided as a default, Ceph uses it via an
-`abstract API <https://github.com/ceph/ceph/blob/v0.78/src/erasure-code/ErasureCodeInterface.h>`_ designed to
-allow each pool to choose the plugin that implements it using
-key=value pairs stored in an `erasure code profile`_.
-
-.. _erasure code profile: ../../../erasure-coded-pool
-
-::
-
- $ ceph osd erasure-code-profile set myprofile \
- crush-failure-domain=osd
- $ ceph osd erasure-code-profile get myprofile
- directory=/usr/lib/ceph/erasure-code
- k=2
- m=1
- plugin=jerasure
- technique=reed_sol_van
- crush-failure-domain=osd
- $ ceph osd pool create ecpool 12 12 erasure myprofile
-
-The *plugin* is dynamically loaded from *directory* and expected to
-implement the *int __erasure_code_init(char *plugin_name, char *directory)* function
-which is responsible for registering an object derived from *ErasureCodePlugin*
-in the registry. The `ErasureCodePluginExample <https://github.com/ceph/ceph/blob/v0.78/src/test/erasure-code/ErasureCodePluginExample.cc>`_ plugin reads:
-
-::
-
- ErasureCodePluginRegistry &instance =
- ErasureCodePluginRegistry::instance();
- instance.add(plugin_name, new ErasureCodePluginExample());
-
-The *ErasureCodePlugin* derived object must provide a factory method
-from which the concrete implementation of the *ErasureCodeInterface*
-object can be generated. The `ErasureCodePluginExample plugin <https://github.com/ceph/ceph/blob/v0.78/src/test/erasure-code/ErasureCodePluginExample.cc>`_ reads:
-
-::
-
- virtual int factory(const map<std::string,std::string> &parameters,
- ErasureCodeInterfaceRef *erasure_code) {
- *erasure_code = ErasureCodeInterfaceRef(new ErasureCodeExample(parameters));
- return 0;
- }
-
-The *parameters* argument is the list of *key=value* pairs that were
-set in the erasure code profile, before the pool was created.
-
-::
-
- ceph osd erasure-code-profile set myprofile \
- directory=<dir> \ # mandatory
- plugin=jerasure \ # mandatory
- m=10 \ # optional and plugin dependant
- k=3 \ # optional and plugin dependant
- technique=reed_sol_van \ # optional and plugin dependant
-
-Notes
------
-
-If the objects are large, it may be impractical to encode and decode
-them in memory. However, when using *RBD* a 1TB device is divided in
-many individual 4MB objects and *RGW* does the same.
-
-Encoding and decoding is implemented in the OSD. Although it could be
-implemented client side for read write, the OSD must be able to encode
-and decode on its own when scrubbing.
diff --git a/src/ceph/doc/dev/osd_internals/erasure_coding/ecbackend.rst b/src/ceph/doc/dev/osd_internals/erasure_coding/ecbackend.rst
deleted file mode 100644
index 624ec21..0000000
--- a/src/ceph/doc/dev/osd_internals/erasure_coding/ecbackend.rst
+++ /dev/null
@@ -1,207 +0,0 @@
-=================================
-ECBackend Implementation Strategy
-=================================
-
-Misc initial design notes
-=========================
-
-The initial (and still true for ec pools without the hacky ec
-overwrites debug flag enabled) design for ec pools restricted
-EC pools to operations which can be easily rolled back:
-
-- CEPH_OSD_OP_APPEND: We can roll back an append locally by
- including the previous object size as part of the PG log event.
-- CEPH_OSD_OP_DELETE: The possibility of rolling back a delete
- requires that we retain the deleted object until all replicas have
- persisted the deletion event. ErasureCoded backend will therefore
- need to store objects with the version at which they were created
- included in the key provided to the filestore. Old versions of an
- object can be pruned when all replicas have committed up to the log
- event deleting the object.
-- CEPH_OSD_OP_(SET|RM)ATTR: If we include the prior value of the attr
- to be set or removed, we can roll back these operations locally.
-
-Log entries contain a structure explaining how to locally undo the
-operation represented by the operation
-(see osd_types.h:TransactionInfo::LocalRollBack).
-
-PGTemp and Crush
-----------------
-
-Primaries are able to request a temp acting set mapping in order to
-allow an up-to-date OSD to serve requests while a new primary is
-backfilled (and for other reasons). An erasure coded pg needs to be
-able to designate a primary for these reasons without putting it in
-the first position of the acting set. It also needs to be able to
-leave holes in the requested acting set.
-
-Core Changes:
-
-- OSDMap::pg_to_*_osds needs to separately return a primary. For most
- cases, this can continue to be acting[0].
-- MOSDPGTemp (and related OSD structures) needs to be able to specify
- a primary as well as an acting set.
-- Much of the existing code base assumes that acting[0] is the primary
- and that all elements of acting are valid. This needs to be cleaned
- up since the acting set may contain holes.
-
-Distinguished acting set positions
-----------------------------------
-
-With the replicated strategy, all replicas of a PG are
-interchangeable. With erasure coding, different positions in the
-acting set have different pieces of the erasure coding scheme and are
-not interchangeable. Worse, crush might cause chunk 2 to be written
-to an OSD which happens already to contain an (old) copy of chunk 4.
-This means that the OSD and PG messages need to work in terms of a
-type like pair<shard_t, pg_t> in order to distinguish different pg
-chunks on a single OSD.
-
-Because the mapping of object name to object in the filestore must
-be 1-to-1, we must ensure that the objects in chunk 2 and the objects
-in chunk 4 have different names. To that end, the objectstore must
-include the chunk id in the object key.
-
-Core changes:
-
-- The objectstore `ghobject_t needs to also include a chunk id
- <https://github.com/ceph/ceph/blob/firefly/src/common/hobject.h#L241>`_ making it more like
- tuple<hobject_t, gen_t, shard_t>.
-- coll_t needs to include a shard_t.
-- The OSD pg_map and similar pg mappings need to work in terms of a
- spg_t (essentially
- pair<pg_t, shard_t>). Similarly, pg->pg messages need to include
- a shard_t
-- For client->PG messages, the OSD will need a way to know which PG
- chunk should get the message since the OSD may contain both a
- primary and non-primary chunk for the same pg
-
-Object Classes
---------------
-
-Reads from object classes will return ENOTSUP on ec pools by invoking
-a special SYNC read.
-
-Scrub
------
-
-The main catch, however, for ec pools is that sending a crc32 of the
-stored chunk on a replica isn't particularly helpful since the chunks
-on different replicas presumably store different data. Because we
-don't support overwrites except via DELETE, however, we have the
-option of maintaining a crc32 on each chunk through each append.
-Thus, each replica instead simply computes a crc32 of its own stored
-chunk and compares it with the locally stored checksum. The replica
-then reports to the primary whether the checksums match.
-
-With overwrites, all scrubs are disabled for now until we work out
-what to do (see doc/dev/osd_internals/erasure_coding/proposals.rst).
-
-Crush
------
-
-If crush is unable to generate a replacement for a down member of an
-acting set, the acting set should have a hole at that position rather
-than shifting the other elements of the acting set out of position.
-
-=========
-ECBackend
-=========
-
-MAIN OPERATION OVERVIEW
-=======================
-
-A RADOS put operation can span
-multiple stripes of a single object. There must be code that
-tessellates the application level write into a set of per-stripe write
-operations -- some whole-stripes and up to two partial
-stripes. Without loss of generality, for the remainder of this
-document we will focus exclusively on writing a single stripe (whole
-or partial). We will use the symbol "W" to represent the number of
-blocks within a stripe that are being written, i.e., W <= K.
-
-There are three data flows for handling a write into an EC stripe. The
-choice of which of the three data flows to choose is based on the size
-of the write operation and the arithmetic properties of the selected
-parity-generation algorithm.
-
-(1) whole stripe is written/overwritten
-(2) a read-modify-write operation is performed.
-
-WHOLE STRIPE WRITE
-------------------
-
-This is the simple case, and is already performed in the existing code
-(for appends, that is). The primary receives all of the data for the
-stripe in the RADOS request, computes the appropriate parity blocks
-and send the data and parity blocks to their destination shards which
-write them. This is essentially the current EC code.
-
-READ-MODIFY-WRITE
------------------
-
-The primary determines which of the K-W blocks are to be unmodified,
-and reads them from the shards. Once all of the data is received it is
-combined with the received new data and new parity blocks are
-computed. The modified blocks are sent to their respective shards and
-written. The RADOS operation is acknowledged.
-
-OSD Object Write and Consistency
---------------------------------
-
-Regardless of the algorithm chosen above, writing of the data is a two
-phase process: commit and rollforward. The primary sends the log
-entries with the operation described (see
-osd_types.h:TransactionInfo::(LocalRollForward|LocalRollBack).
-In all cases, the "commit" is performed in place, possibly leaving some
-information required for a rollback in a write-aside object. The
-rollforward phase occurs once all acting set replicas have committed
-the commit (sorry, overloaded term) and removes the rollback information.
-
-In the case of overwrites of exsting stripes, the rollback information
-has the form of a sparse object containing the old values of the
-overwritten extents populated using clone_range. This is essentially
-a place-holder implementation, in real life, bluestore will have an
-efficient primitive for this.
-
-The rollforward part can be delayed since we report the operation as
-committed once all replicas have committed. Currently, whenever we
-send a write, we also indicate that all previously committed
-operations should be rolled forward (see
-ECBackend::try_reads_to_commit). If there aren't any in the pipeline
-when we arrive at the waiting_rollforward queue, we start a dummy
-write to move things along (see the Pipeline section later on and
-ECBackend::try_finish_rmw).
-
-ExtentCache
------------
-
-It's pretty important to be able to pipeline writes on the same
-object. For this reason, there is a cache of extents written by
-cacheable operations. Each extent remains pinned until the operations
-referring to it are committed. The pipeline prevents rmw operations
-from running until uncacheable transactions (clones, etc) are flushed
-from the pipeline.
-
-See ExtentCache.h for a detailed explanation of how the cache
-states correspond to the higher level invariants about the conditions
-under which cuncurrent operations can refer to the same object.
-
-Pipeline
---------
-
-Reading src/osd/ExtentCache.h should have given a good idea of how
-operations might overlap. There are several states involved in
-processing a write operation and an important invariant which
-isn't enforced by PrimaryLogPG at a higher level which need to be
-managed by ECBackend. The important invariant is that we can't
-have uncacheable and rmw operations running at the same time
-on the same object. For simplicity, we simply enforce that any
-operation which contains an rmw operation must wait until
-all in-progress uncacheable operations complete.
-
-There are improvements to be made here in the future.
-
-For more details, see ECBackend::waiting_* and
-ECBackend::try_<from>_to_<to>.
-
diff --git a/src/ceph/doc/dev/osd_internals/erasure_coding/jerasure.rst b/src/ceph/doc/dev/osd_internals/erasure_coding/jerasure.rst
deleted file mode 100644
index 27669a0..0000000
--- a/src/ceph/doc/dev/osd_internals/erasure_coding/jerasure.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-===============
-jerasure plugin
-===============
-
-Introduction
-------------
-
-The parameters interpreted by the jerasure plugin are:
-
-::
-
- ceph osd erasure-code-profile set myprofile \
- directory=<dir> \ # plugin directory absolute path
- plugin=jerasure \ # plugin name (only jerasure)
- k=<k> \ # data chunks (default 2)
- m=<m> \ # coding chunks (default 2)
- technique=<technique> \ # coding technique
-
-The coding techniques can be chosen among *reed_sol_van*,
-*reed_sol_r6_op*, *cauchy_orig*, *cauchy_good*, *liberation*,
-*blaum_roth* and *liber8tion*.
-
-The *src/erasure-code/jerasure* directory contains the
-implementation. It is a wrapper around the code found at
-`https://github.com/ceph/jerasure <https://github.com/ceph/jerasure>`_
-and `https://github.com/ceph/gf-complete
-<https://github.com/ceph/gf-complete>`_ , pinned to the latest stable
-version in *.gitmodules*. These repositories are copies of the
-upstream repositories `http://jerasure.org/jerasure/jerasure
-<http://jerasure.org/jerasure/jerasure>`_ and
-`http://jerasure.org/jerasure/gf-complete
-<http://jerasure.org/jerasure/gf-complete>`_ . The difference
-between the two, if any, should match pull requests against upstream.
diff --git a/src/ceph/doc/dev/osd_internals/erasure_coding/proposals.rst b/src/ceph/doc/dev/osd_internals/erasure_coding/proposals.rst
deleted file mode 100644
index 52f98e8..0000000
--- a/src/ceph/doc/dev/osd_internals/erasure_coding/proposals.rst
+++ /dev/null
@@ -1,385 +0,0 @@
-:orphan:
-
-=================================
-Proposed Next Steps for ECBackend
-=================================
-
-PARITY-DELTA-WRITE
-------------------
-
-RMW operations current require 4 network hops (2 round trips). In
-principle, for some codes, we can reduce this to 3 by sending the
-update to the replicas holding the data blocks and having them
-compute a delta to forward onto the parity blocks.
-
-The primary reads the current values of the "W" blocks and then uses
-the new values of the "W" blocks to compute parity-deltas for each of
-the parity blocks. The W blocks and the parity delta-blocks are sent
-to their respective shards.
-
-The choice of whether to use a read-modify-write or a
-parity-delta-write is complex policy issue that is TBD in the details
-and is likely to be heavily dependant on the computational costs
-associated with a parity-delta vs. a regular parity-generation
-operation. However, it is believed that the parity-delta scheme is
-likely to be the preferred choice, when available.
-
-The internal interface to the erasure coding library plug-ins needs to
-be extended to support the ability to query if parity-delta
-computation is possible for a selected algorithm as well as an
-interface to the actual parity-delta computation algorithm when
-available.
-
-Stripe Cache
-------------
-
-It may be a good idea to extend the current ExtentCache usage to
-cache some data past when the pinning operation releases it.
-One application pattern that is important to optimize is the small
-block sequential write operation (think of the journal of a journaling
-file system or a database transaction log). Regardless of the chosen
-redundancy algorithm, it is advantageous for the primary to
-retain/buffer recently read/written portions of a stripe in order to
-reduce network traffic. The dynamic contents of this cache may be used
-in the determination of whether a read-modify-write or a
-parity-delta-write is performed. The sizing of this cache is TBD, but
-we should plan on allowing at least a few full stripes per active
-client. Limiting the cache occupancy on a per-client basis will reduce
-the noisy neighbor problem.
-
-Recovery and Rollback Details
-=============================
-
-Implementing a Rollback-able Prepare Operation
-----------------------------------------------
-
-The prepare operation is implemented at each OSD through a simulation
-of a versioning or copy-on-write capability for modifying a portion of
-an object.
-
-When a prepare operation is performed, the new data is written into a
-temporary object. The PG log for the
-operation will contain a reference to the temporary object so that it
-can be located for recovery purposes as well as a record of all of the
-shards which are involved in the operation.
-
-In order to avoid fragmentation (and hence, future read performance),
-creation of the temporary object needs special attention. The name of
-the temporary object affects its location within the KV store. Right
-now its unclear whether it's desirable for the name to locate near the
-base object or whether a separate subset of keyspace should be used
-for temporary objects. Sam believes that colocation with the base
-object is preferred (he suggests using the generation counter of the
-ghobject for temporaries). Whereas Allen believes that using a
-separate subset of keyspace is desirable since these keys are
-ephemeral and we don't want to actually colocate them with the base
-object keys. Perhaps some modeling here can help resolve this
-issue. The data of the temporary object wants to be located as close
-to the data of the base object as possible. This may be best performed
-by adding a new ObjectStore creation primitive that takes the base
-object as an addtional parameter that is a hint to the allocator.
-
-Sam: I think that the short lived thing may be a red herring. We'll
-be updating the donor and primary objects atomically, so it seems like
-we'd want them adjacent in the key space, regardless of the donor's
-lifecycle.
-
-The apply operation moves the data from the temporary object into the
-correct position within the base object and deletes the associated
-temporary object. This operation is done using a specialized
-ObjectStore primitive. In the current ObjectStore interface, this can
-be done using the clonerange function followed by a delete, but can be
-done more efficiently with a specialized move primitive.
-Implementation of the specialized primitive on FileStore can be done
-by copying the data. Some file systems have extensions that might also
-be able to implement this operation (like a defrag API that swaps
-chunks between files). It is expected that NewStore will be able to
-support this efficiently and natively (It has been noted that this
-sequence requires that temporary object allocations, which tend to be
-small, be efficiently converted into blocks for main objects and that
-blocks that were formerly inside of main objects must be reusable with
-minimal overhead)
-
-The prepare and apply operations can be separated arbitrarily in
-time. If a read operation accesses an object that has been altered by
-a prepare operation (but without a corresponding apply operation) it
-must return the data after the prepare operation. This is done by
-creating an in-memory database of objects which have had a prepare
-operation without a corresponding apply operation. All read operations
-must consult this in-memory data structure in order to get the correct
-data. It should explicitly recognized that it is likely that there
-will be multiple prepare operations against a single base object and
-the code must handle this case correctly. This code is implemented as
-a layer between ObjectStore and all existing readers. Annoyingly,
-we'll want to trash this state when the interval changes, so the first
-thing that needs to happen after activation is that the primary and
-replicas apply up to last_update so that the empty cache will be
-correct.
-
-During peering, it is now obvious that an unapplied prepare operation
-can easily be rolled back simply by deleting the associated temporary
-object and removing that entry from the in-memory data structure.
-
-Partial Application Peering/Recovery modifications
---------------------------------------------------
-
-Some writes will be small enough to not require updating all of the
-shards holding data blocks. For write amplification minization
-reasons, it would be best to avoid writing to those shards at all,
-and delay even sending the log entries until the next write which
-actually hits that shard.
-
-The delaying (buffering) of the transmission of the prepare and apply
-operations for witnessing OSDs creates new situations that peering
-must handle. In particular the logic for determining the authoritative
-last_update value (and hence the selection of the OSD which has the
-authoritative log) must be modified to account for the valid but
-missing (i.e., delayed/buffered) pglog entries to which the
-authoritative OSD was only a witness to.
-
-Because a partial write might complete without persisting a log entry
-on every replica, we have to do a bit more work to determine an
-authoritative last_update. The constraint (as with a replicated PG)
-is that last_update >= the most recent log entry for which a commit
-was sent to the client (call this actual_last_update). Secondarily,
-we want last_update to be as small as possible since any log entry
-past actual_last_update (we do not apply a log entry until we have
-sent the commit to the client) must be able to be rolled back. Thus,
-the smaller a last_update we choose, the less recovery will need to
-happen (we can always roll back, but rolling a replica forward may
-require an object rebuild). Thus, we will set last_update to 1 before
-the oldest log entry we can prove cannot have been committed. In
-current master, this is simply the last_update of the shortest log
-from that interval (because that log did not persist any entry past
-that point -- a precondition for sending a commit to the client). For
-this design, we must consider the possibility that any log is missing
-at its head log entries in which it did not participate. Thus, we
-must determine the most recent interval in which we went active
-(essentially, this is what find_best_info currently does). We then
-pull the log from each live osd from that interval back to the minimum
-last_update among them. Then, we extend all logs from the
-authoritative interval until each hits an entry in which it should
-have participated, but did not record. The shortest of these extended
-logs must therefore contain any log entry for which we sent a commit
-to the client -- and the last entry gives us our last_update.
-
-Deep scrub support
-------------------
-
-The simple answer here is probably our best bet. EC pools can't use
-the omap namespace at all right now. The simplest solution would be
-to take a prefix of the omap space and pack N M byte L bit checksums
-into each key/value. The prefixing seems like a sensible precaution
-against eventually wanting to store something else in the omap space.
-It seems like any write will need to read at least the blocks
-containing the modified range. However, with a code able to compute
-parity deltas, we may not need to read a whole stripe. Even without
-that, we don't want to have to write to blocks not participating in
-the write. Thus, each shard should store checksums only for itself.
-It seems like you'd be able to store checksums for all shards on the
-parity blocks, but there may not be distinguished parity blocks which
-are modified on all writes (LRC or shec provide two examples). L
-should probably have a fixed number of options (16, 32, 64?) and be
-configurable per-pool at pool creation. N, M should be likewise be
-configurable at pool creation with sensible defaults.
-
-We need to handle online upgrade. I think the right answer is that
-the first overwrite to an object with an append only checksum
-removes the append only checksum and writes in whatever stripe
-checksums actually got written. The next deep scrub then writes
-out the full checksum omap entries.
-
-RADOS Client Acknowledgement Generation Optimization
-====================================================
-
-Now that the recovery scheme is understood, we can discuss the
-generation of of the RADOS operation acknowledgement (ACK) by the
-primary ("sufficient" from above). It is NOT required that the primary
-wait for all shards to complete their respective prepare
-operations. Using our example where the RADOS operations writes only
-"W" chunks of the stripe, the primary will generate and send W+M
-prepare operations (possibly including a send-to-self). The primary
-need only wait for enough shards to be written to ensure recovery of
-the data, Thus after writing W + M chunks you can afford the lost of M
-chunks. Hence the primary can generate the RADOS ACK after W+M-M => W
-of those prepare operations are completed.
-
-Inconsistent object_info_t versions
-===================================
-
-A natural consequence of only writing the blocks which actually
-changed is that we don't want to update the object_info_t of the
-objects which didn't. I actually think it would pose a problem to do
-so: pg ghobject namespaces are generally large, and unless the osd is
-seeing a bunch of overwrites on a small set of objects, I'd expect
-each write to be far enough apart in the backing ghobject_t->data
-mapping to each constitute a random metadata update. Thus, we have to
-accept that not every shard will have the current version in its
-object_info_t. We can't even bound how old the version on a
-particular shard will happen to be. In particular, the primary does
-not necessarily have the current version. One could argue that the
-parity shards would always have the current version, but not every
-code necessarily has designated parity shards which see every write
-(certainly LRC, iirc shec, and even with a more pedestrian code, it
-might be desirable to rotate the shards based on object hash). Even
-if you chose to designate a shard as witnessing all writes, the pg
-might be degraded with that particular shard missing. This is a bit
-tricky, currently reads and writes implicitely return the most recent
-version of the object written. On reads, we'd have to read K shards
-to answer that question. We can get around that by adding a "don't
-tell me the current version" flag. Writes are more problematic: we
-need an object_info from the most recent write in order to form the
-new object_info and log_entry.
-
-A truly terrifying option would be to eliminate version and
-prior_version entirely from the object_info_t. There are a few
-specific purposes it serves:
-
-#. On OSD startup, we prime the missing set by scanning backwards
- from last_update to last_complete comparing the stored object's
- object_info_t to the version of most recent log entry.
-#. During backfill, we compare versions between primary and target
- to avoid some pushes. We use it elsewhere as well
-#. While pushing and pulling objects, we verify the version.
-#. We return it on reads and writes and allow the librados user to
- assert it atomically on writesto allow the user to deal with write
- races (used extensively by rbd).
-
-Case (3) isn't actually essential, just convenient. Oh well. (4)
-is more annoying. Writes are easy since we know the version. Reads
-are tricky because we may not need to read from all of the replicas.
-Simplest solution is to add a flag to rados operations to just not
-return the user version on read. We can also just not support the
-user version assert on ec for now (I think? Only user is rgw bucket
-indices iirc, and those will always be on replicated because they use
-omap).
-
-We can avoid (1) by maintaining the missing set explicitely. It's
-already possible for there to be a missing object without a
-corresponding log entry (Consider the case where the most recent write
-is to an object which has not been updated in weeks. If that write
-becomes divergent, the written object needs to be marked missing based
-on the prior_version which is not in the log.) THe PGLog already has
-a way of handling those edge cases (see divergent_priors). We'd
-simply expand that to contain the entire missing set and maintain it
-atomically with the log and the objects. This isn't really an
-unreasonable option, the addiitonal keys would be fewer than the
-existing log keys + divergent_priors and aren't updated in the fast
-write path anyway.
-
-The second case is a bit trickier. It's really an optimization for
-the case where a pg became not in the acting set long enough for the
-logs to no longer overlap but not long enough for the PG to have
-healed and removed the old copy. Unfortunately, this describes the
-case where a node was taken down for maintenance with noout set. It's
-probably not acceptable to re-backfill the whole OSD in such a case,
-so we need to be able to quickly determine whether a particular shard
-is up to date given a valid acting set of other shards.
-
-Let ordinary writes which do not change the object size not touch the
-object_info at all. That means that the object_info version won't
-match the pg log entry version. Include in the pg_log_entry_t the
-current object_info version as well as which shards participated (as
-mentioned above). In addition to the object_info_t attr, record on
-each shard s a vector recording for each other shard s' the most
-recent write which spanned both s and s'. Operationally, we maintain
-an attr on each shard containing that vector. A write touching S
-updates the version stamp entry for each shard in S on each shard in
-S's attribute (and leaves the rest alone). If we have a valid acting
-set during backfill, we must have a witness of every write which
-completed -- so taking the max of each entry over all of the acting
-set shards must give us the current version for each shard. During
-recovery, we set the attribute on the recovery target to that max
-vector (Question: with LRC, we may not need to touch much of the
-acting set to recover a particular shard -- can we just use the max of
-the shards we used to recovery, or do we need to grab the version
-vector from the rest of the acting set as well? I'm not sure, not a
-big deal anyway, I think).
-
-The above lets us perform blind writes without knowing the current
-object version (log entry version, that is) while still allowing us to
-avoid backfilling up to date objects. The only catch is that our
-backfill scans will can all replicas, not just the primary and the
-backfill targets.
-
-It would be worth adding into scrub the ability to check the
-consistency of the gathered version vectors -- probably by just
-taking 3 random valid subsets and verifying that they generate
-the same authoritative version vector.
-
-Implementation Strategy
-=======================
-
-It goes without saying that it would be unwise to attempt to do all of
-this in one massive PR. It's also not a good idea to merge code which
-isn't being tested. To that end, it's worth thinking a bit about
-which bits can be tested on their own (perhaps with a bit of temporary
-scaffolding).
-
-We can implement the overwrite friendly checksumming scheme easily
-enough with the current implementation. We'll want to enable it on a
-per-pool basis (probably using a flag which we'll later repurpose for
-actual overwrite support). We can enable it in some of the ec
-thrashing tests in the suite. We can also add a simple test
-validating the behavior of turning it on for an existing ec pool
-(later, we'll want to be able to convert append-only ec pools to
-overwrite ec pools, so that test will simply be expanded as we go).
-The flag should be gated by the experimental feature flag since we
-won't want to support this as a valid configuration -- testing only.
-We need to upgrade append only ones in place during deep scrub.
-
-Similarly, we can implement the unstable extent cache with the current
-implementation, it even lets us cut out the readable ack the replicas
-send to the primary after the commit which lets it release the lock.
-Same deal, implement, gate with experimental flag, add to some of the
-automated tests. I don't really see a reason not to use the same flag
-as above.
-
-We can certainly implement the move-range primitive with unit tests
-before there are any users. Adding coverage to the existing
-objectstore tests would suffice here.
-
-Explicit missing set can be implemented now, same deal as above --
-might as well even use the same feature bit.
-
-The TPC protocol outlined above can actually be implemented an append
-only EC pool. Same deal as above, can even use the same feature bit.
-
-The RADOS flag to suppress the read op user version return can be
-implemented immediately. Mostly just needs unit tests.
-
-The version vector problem is an interesting one. For append only EC
-pools, it would be pointless since all writes increase the size and
-therefore update the object_info. We could do it for replicated pools
-though. It's a bit silly since all "shards" see all writes, but it
-would still let us implement and partially test the augmented backfill
-code as well as the extra pg log entry fields -- this depends on the
-explicit pg log entry branch having already merged. It's not entirely
-clear to me that this one is worth doing seperately. It's enough code
-that I'd really prefer to get it done independently, but it's also a
-fair amount of scaffolding that will be later discarded.
-
-PGLog entries need to be able to record the participants and log
-comparison needs to be modified to extend logs with entries they
-wouldn't have witnessed. This logic should be abstracted behind
-PGLog so it can be unittested -- that would let us test it somewhat
-before the actual ec overwrites code merges.
-
-Whatever needs to happen to the ec plugin interface can probably be
-done independently of the rest of this (pending resolution of
-questions below).
-
-The actual nuts and bolts of performing the ec overwrite it seems to
-me can't be productively tested (and therefore implemented) until the
-above are complete, so best to get all of the supporting code in
-first.
-
-Open Questions
-==============
-
-Is there a code we should be using that would let us compute a parity
-delta without rereading and reencoding the full stripe? If so, is it
-the kind of thing we need to design for now, or can it be reasonably
-put off?
-
-What needs to happen to the EC plugin interface?
diff --git a/src/ceph/doc/dev/osd_internals/index.rst b/src/ceph/doc/dev/osd_internals/index.rst
deleted file mode 100644
index 7e82914..0000000
--- a/src/ceph/doc/dev/osd_internals/index.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-==============================
-OSD developer documentation
-==============================
-
-.. rubric:: Contents
-
-.. toctree::
- :glob:
-
- *
diff --git a/src/ceph/doc/dev/osd_internals/last_epoch_started.rst b/src/ceph/doc/dev/osd_internals/last_epoch_started.rst
deleted file mode 100644
index 9978bd3..0000000
--- a/src/ceph/doc/dev/osd_internals/last_epoch_started.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-======================
-last_epoch_started
-======================
-
-info.last_epoch_started records an activation epoch e for interval i
-such that all writes commited in i or earlier are reflected in the
-local info/log and no writes after i are reflected in the local
-info/log. Since no committed write is ever divergent, even if we
-get an authoritative log/info with an older info.last_epoch_started,
-we can leave our info.last_epoch_started alone since no writes could
-have commited in any intervening interval (See PG::proc_master_log).
-
-info.history.last_epoch_started records a lower bound on the most
-recent interval in which the pg as a whole went active and accepted
-writes. On a particular osd, it is also an upper bound on the
-activation epoch of intervals in which writes in the local pg log
-occurred (we update it before accepting writes). Because all
-committed writes are committed by all acting set osds, any
-non-divergent writes ensure that history.last_epoch_started was
-recorded by all acting set members in the interval. Once peering has
-queried one osd from each interval back to some seen
-history.last_epoch_started, it follows that no interval after the max
-history.last_epoch_started can have reported writes as committed
-(since we record it before recording client writes in an interval).
-Thus, the minimum last_update across all infos with
-info.last_epoch_started >= MAX(history.last_epoch_started) must be an
-upper bound on writes reported as committed to the client.
-
-We update info.last_epoch_started with the intial activation message,
-but we only update history.last_epoch_started after the new
-info.last_epoch_started is persisted (possibly along with the first
-write). This ensures that we do not require an osd with the most
-recent info.last_epoch_started until all acting set osds have recorded
-it.
-
-In find_best_info, we do include info.last_epoch_started values when
-calculating the max_last_epoch_started_found because we want to avoid
-designating a log entry divergent which in a prior interval would have
-been non-divergent since it might have been used to serve a read. In
-activate(), we use the peer's last_epoch_started value as a bound on
-how far back divergent log entries can be found.
-
-However, in a case like
-
-.. code::
-
- calc_acting osd.0 1.4e( v 473'302 (292'200,473'302] local-les=473 n=4 ec=5 les/c 473/473 556/556/556
- calc_acting osd.1 1.4e( v 473'302 (293'202,473'302] lb 0//0//-1 local-les=477 n=0 ec=5 les/c 473/473 556/556/556
- calc_acting osd.4 1.4e( v 473'302 (120'121,473'302] local-les=473 n=4 ec=5 les/c 473/473 556/556/556
- calc_acting osd.5 1.4e( empty local-les=0 n=0 ec=5 les/c 473/473 556/556/556
-
-since osd.1 is the only one which recorded info.les=477 while 4,0
-which were the acting set in that interval did not (4 restarted and 0
-did not get the message in time) the pg is marked incomplete when
-either 4 or 0 would have been valid choices. To avoid this, we do not
-consider info.les for incomplete peers when calculating
-min_last_epoch_started_found. It would not have been in the acting
-set, so we must have another osd from that interval anyway (if
-maybe_went_rw). If that osd does not remember that info.les, then we
-cannot have served reads.
diff --git a/src/ceph/doc/dev/osd_internals/log_based_pg.rst b/src/ceph/doc/dev/osd_internals/log_based_pg.rst
deleted file mode 100644
index 8b11012..0000000
--- a/src/ceph/doc/dev/osd_internals/log_based_pg.rst
+++ /dev/null
@@ -1,206 +0,0 @@
-============
-Log Based PG
-============
-
-Background
-==========
-
-Why PrimaryLogPG?
------------------
-
-Currently, consistency for all ceph pool types is ensured by primary
-log-based replication. This goes for both erasure-coded and
-replicated pools.
-
-Primary log-based replication
------------------------------
-
-Reads must return data written by any write which completed (where the
-client could possibly have received a commit message). There are lots
-of ways to handle this, but ceph's architecture makes it easy for
-everyone at any map epoch to know who the primary is. Thus, the easy
-answer is to route all writes for a particular pg through a single
-ordering primary and then out to the replicas. Though we only
-actually need to serialize writes on a single object (and even then,
-the partial ordering only really needs to provide an ordering between
-writes on overlapping regions), we might as well serialize writes on
-the whole PG since it lets us represent the current state of the PG
-using two numbers: the epoch of the map on the primary in which the
-most recent write started (this is a bit stranger than it might seem
-since map distribution itself is asyncronous -- see Peering and the
-concept of interval changes) and an increasing per-pg version number
--- this is referred to in the code with type eversion_t and stored as
-pg_info_t::last_update. Furthermore, we maintain a log of "recent"
-operations extending back at least far enough to include any
-*unstable* writes (writes which have been started but not committed)
-and objects which aren't uptodate locally (see recovery and
-backfill). In practice, the log will extend much further
-(osd_pg_min_log_entries when clean, osd_pg_max_log_entries when not
-clean) because it's handy for quickly performing recovery.
-
-Using this log, as long as we talk to a non-empty subset of the OSDs
-which must have accepted any completed writes from the most recent
-interval in which we accepted writes, we can determine a conservative
-log which must contain any write which has been reported to a client
-as committed. There is some freedom here, we can choose any log entry
-between the oldest head remembered by an element of that set (any
-newer cannot have completed without that log containing it) and the
-newest head remembered (clearly, all writes in the log were started,
-so it's fine for us to remember them) as the new head. This is the
-main point of divergence between replicated pools and ec pools in
-PG/PrimaryLogPG: replicated pools try to choose the newest valid
-option to avoid the client needing to replay those operations and
-instead recover the other copies. EC pools instead try to choose
-the *oldest* option available to them.
-
-The reason for this gets to the heart of the rest of the differences
-in implementation: one copy will not generally be enough to
-reconstruct an ec object. Indeed, there are encodings where some log
-combinations would leave unrecoverable objects (as with a 4+2 encoding
-where 3 of the replicas remember a write, but the other 3 do not -- we
-don't have 3 copies of either version). For this reason, log entries
-representing *unstable* writes (writes not yet committed to the
-client) must be rollbackable using only local information on ec pools.
-Log entries in general may therefore be rollbackable (and in that case,
-via a delayed application or via a set of instructions for rolling
-back an inplace update) or not. Replicated pool log entries are
-never able to be rolled back.
-
-For more details, see PGLog.h/cc, osd_types.h:pg_log_t,
-osd_types.h:pg_log_entry_t, and peering in general.
-
-ReplicatedBackend/ECBackend unification strategy
-================================================
-
-PGBackend
----------
-
-So, the fundamental difference between replication and erasure coding
-is that replication can do destructive updates while erasure coding
-cannot. It would be really annoying if we needed to have two entire
-implementations of PrimaryLogPG, one for each of the two, if there
-are really only a few fundamental differences:
-
-#. How reads work -- async only, requires remote reads for ec
-#. How writes work -- either restricted to append, or must write aside and do a
- tpc
-#. Whether we choose the oldest or newest possible head entry during peering
-#. A bit of extra information in the log entry to enable rollback
-
-and so many similarities
-
-#. All of the stats and metadata for objects
-#. The high level locking rules for mixing client IO with recovery and scrub
-#. The high level locking rules for mixing reads and writes without exposing
- uncommitted state (which might be rolled back or forgotten later)
-#. The process, metadata, and protocol needed to determine the set of osds
- which partcipated in the most recent interval in which we accepted writes
-#. etc.
-
-Instead, we choose a few abstractions (and a few kludges) to paper over the differences:
-
-#. PGBackend
-#. PGTransaction
-#. PG::choose_acting chooses between calc_replicated_acting and calc_ec_acting
-#. Various bits of the write pipeline disallow some operations based on pool
- type -- like omap operations, class operation reads, and writes which are
- not aligned appends (officially, so far) for ec
-#. Misc other kludges here and there
-
-PGBackend and PGTransaction enable abstraction of differences 1, 2,
-and the addition of 4 as needed to the log entries.
-
-The replicated implementation is in ReplicatedBackend.h/cc and doesn't
-require much explanation, I think. More detail on the ECBackend can be
-found in doc/dev/osd_internals/erasure_coding/ecbackend.rst.
-
-PGBackend Interface Explanation
-===============================
-
-Note: this is from a design document from before the original firefly
-and is probably out of date w.r.t. some of the method names.
-
-Readable vs Degraded
---------------------
-
-For a replicated pool, an object is readable iff it is present on
-the primary (at the right version). For an ec pool, we need at least
-M shards present to do a read, and we need it on the primary. For
-this reason, PGBackend needs to include some interfaces for determing
-when recovery is required to serve a read vs a write. This also
-changes the rules for when peering has enough logs to prove that it
-
-Core Changes:
-
-- | PGBackend needs to be able to return IsPG(Recoverable|Readable)Predicate
- | objects to allow the user to make these determinations.
-
-Client Reads
-------------
-
-Reads with the replicated strategy can always be satisfied
-synchronously out of the primary OSD. With an erasure coded strategy,
-the primary will need to request data from some number of replicas in
-order to satisfy a read. PGBackend will therefore need to provide
-seperate objects_read_sync and objects_read_async interfaces where
-the former won't be implemented by the ECBackend.
-
-PGBackend interfaces:
-
-- objects_read_sync
-- objects_read_async
-
-Scrub
------
-
-We currently have two scrub modes with different default frequencies:
-
-#. [shallow] scrub: compares the set of objects and metadata, but not
- the contents
-#. deep scrub: compares the set of objects, metadata, and a crc32 of
- the object contents (including omap)
-
-The primary requests a scrubmap from each replica for a particular
-range of objects. The replica fills out this scrubmap for the range
-of objects including, if the scrub is deep, a crc32 of the contents of
-each object. The primary gathers these scrubmaps from each replica
-and performs a comparison identifying inconsistent objects.
-
-Most of this can work essentially unchanged with erasure coded PG with
-the caveat that the PGBackend implementation must be in charge of
-actually doing the scan.
-
-
-PGBackend interfaces:
-
-- be_*
-
-Recovery
---------
-
-The logic for recovering an object depends on the backend. With
-the current replicated strategy, we first pull the object replica
-to the primary and then concurrently push it out to the replicas.
-With the erasure coded strategy, we probably want to read the
-minimum number of replica chunks required to reconstruct the object
-and push out the replacement chunks concurrently.
-
-Another difference is that objects in erasure coded pg may be
-unrecoverable without being unfound. The "unfound" concept
-should probably then be renamed to unrecoverable. Also, the
-PGBackend implementation will have to be able to direct the search
-for pg replicas with unrecoverable object chunks and to be able
-to determine whether a particular object is recoverable.
-
-
-Core changes:
-
-- s/unfound/unrecoverable
-
-PGBackend interfaces:
-
-- `on_local_recover_start <https://github.com/ceph/ceph/blob/firefly/src/osd/PGBackend.h#L60>`_
-- `on_local_recover <https://github.com/ceph/ceph/blob/firefly/src/osd/PGBackend.h#L66>`_
-- `on_global_recover <https://github.com/ceph/ceph/blob/firefly/src/osd/PGBackend.h#L78>`_
-- `on_peer_recover <https://github.com/ceph/ceph/blob/firefly/src/osd/PGBackend.h#L83>`_
-- `begin_peer_recover <https://github.com/ceph/ceph/blob/firefly/src/osd/PGBackend.h#L90>`_
diff --git a/src/ceph/doc/dev/osd_internals/map_message_handling.rst b/src/ceph/doc/dev/osd_internals/map_message_handling.rst
deleted file mode 100644
index a5013c2..0000000
--- a/src/ceph/doc/dev/osd_internals/map_message_handling.rst
+++ /dev/null
@@ -1,131 +0,0 @@
-===========================
-Map and PG Message handling
-===========================
-
-Overview
---------
-The OSD handles routing incoming messages to PGs, creating the PG if necessary
-in some cases.
-
-PG messages generally come in two varieties:
-
- 1. Peering Messages
- 2. Ops/SubOps
-
-There are several ways in which a message might be dropped or delayed. It is
-important that the message delaying does not result in a violation of certain
-message ordering requirements on the way to the relevant PG handling logic:
-
- 1. Ops referring to the same object must not be reordered.
- 2. Peering messages must not be reordered.
- 3. Subops must not be reordered.
-
-MOSDMap
--------
-MOSDMap messages may come from either monitors or other OSDs. Upon receipt, the
-OSD must perform several tasks:
-
- 1. Persist the new maps to the filestore.
- Several PG operations rely on having access to maps dating back to the last
- time the PG was clean.
- 2. Update and persist the superblock.
- 3. Update OSD state related to the current map.
- 4. Expose new maps to PG processes via *OSDService*.
- 5. Remove PGs due to pool removal.
- 6. Queue dummy events to trigger PG map catchup.
-
-Each PG asynchronously catches up to the currently published map during
-process_peering_events before processing the event. As a result, different
-PGs may have different views as to the "current" map.
-
-One consequence of this design is that messages containing submessages from
-multiple PGs (MOSDPGInfo, MOSDPGQuery, MOSDPGNotify) must tag each submessage
-with the PG's epoch as well as tagging the message as a whole with the OSD's
-current published epoch.
-
-MOSDPGOp/MOSDPGSubOp
---------------------
-See OSD::dispatch_op, OSD::handle_op, OSD::handle_sub_op
-
-MOSDPGOps are used by clients to initiate rados operations. MOSDSubOps are used
-between OSDs to coordinate most non peering activities including replicating
-MOSDPGOp operations.
-
-OSD::require_same_or_newer map checks that the current OSDMap is at least
-as new as the map epoch indicated on the message. If not, the message is
-queued in OSD::waiting_for_osdmap via OSD::wait_for_new_map. Note, this
-cannot violate the above conditions since any two messages will be queued
-in order of receipt and if a message is received with epoch e0, a later message
-from the same source must be at epoch at least e0. Note that two PGs from
-the same OSD count for these purposes as different sources for single PG
-messages. That is, messages from different PGs may be reordered.
-
-
-MOSDPGOps follow the following process:
-
- 1. OSD::handle_op: validates permissions and crush mapping.
- discard the request if they are not connected and the client cannot get the reply ( See OSD::op_is_discardable )
- See OSDService::handle_misdirected_op
- See PG::op_has_sufficient_caps
- See OSD::require_same_or_newer_map
- 2. OSD::enqueue_op
-
-MOSDSubOps follow the following process:
-
- 1. OSD::handle_sub_op checks that sender is an OSD
- 2. OSD::enqueue_op
-
-OSD::enqueue_op calls PG::queue_op which checks waiting_for_map before calling OpWQ::queue which adds the op to the queue of the PG responsible for handling it.
-
-OSD::dequeue_op is then eventually called, with a lock on the PG. At
-this time, the op is passed to PG::do_request, which checks that:
-
- 1. the PG map is new enough (PG::must_delay_op)
- 2. the client requesting the op has enough permissions (PG::op_has_sufficient_caps)
- 3. the op is not to be discarded (PG::can_discard_{request,op,subop,scan,backfill})
- 4. the PG is active (PG::flushed boolean)
- 5. the op is a CEPH_MSG_OSD_OP and the PG is in PG_STATE_ACTIVE state and not in PG_STATE_REPLAY
-
-If these conditions are not met, the op is either discarded or queued for later processing. If all conditions are met, the op is processed according to its type:
-
- 1. CEPH_MSG_OSD_OP is handled by PG::do_op
- 2. MSG_OSD_SUBOP is handled by PG::do_sub_op
- 3. MSG_OSD_SUBOPREPLY is handled by PG::do_sub_op_reply
- 4. MSG_OSD_PG_SCAN is handled by PG::do_scan
- 5. MSG_OSD_PG_BACKFILL is handled by PG::do_backfill
-
-CEPH_MSG_OSD_OP processing
---------------------------
-
-PrimaryLogPG::do_op handles CEPH_MSG_OSD_OP op and will queue it
-
- 1. in wait_for_all_missing if it is a CEPH_OSD_OP_PGLS for a designated snapid and some object updates are still missing
- 2. in waiting_for_active if the op may write but the scrubber is working
- 3. in waiting_for_missing_object if the op requires an object or a snapdir or a specific snap that is still missing
- 4. in waiting_for_degraded_object if the op may write an object or a snapdir that is degraded, or if another object blocks it ("blocked_by")
- 5. in waiting_for_backfill_pos if the op requires an object that will be available after the backfill is complete
- 6. in waiting_for_ack if an ack from another OSD is expected
- 7. in waiting_for_ondisk if the op is waiting for a write to complete
-
-Peering Messages
-----------------
-See OSD::handle_pg_(notify|info|log|query)
-
-Peering messages are tagged with two epochs:
-
- 1. epoch_sent: map epoch at which the message was sent
- 2. query_epoch: map epoch at which the message triggering the message was sent
-
-These are the same in cases where there was no triggering message. We discard
-a peering message if the message's query_epoch if the PG in question has entered
-a new epoch (See PG::old_peering_evt, PG::queue_peering_event). Notifies,
-infos, notifies, and logs are all handled as PG::RecoveryMachine events and
-are wrapped by PG::queue_* by PG::CephPeeringEvts, which include the created
-state machine event along with epoch_sent and query_epoch in order to
-generically check PG::old_peering_message upon insertion and removal from the
-queue.
-
-Note, notifies, logs, and infos can trigger the creation of a PG. See
-OSD::get_or_create_pg.
-
-
diff --git a/src/ceph/doc/dev/osd_internals/osd_overview.rst b/src/ceph/doc/dev/osd_internals/osd_overview.rst
deleted file mode 100644
index 192ddf8..0000000
--- a/src/ceph/doc/dev/osd_internals/osd_overview.rst
+++ /dev/null
@@ -1,106 +0,0 @@
-===
-OSD
-===
-
-Concepts
---------
-
-*Messenger*
- See src/msg/Messenger.h
-
- Handles sending and receipt of messages on behalf of the OSD. The OSD uses
- two messengers:
-
- 1. cluster_messenger - handles traffic to other OSDs, monitors
- 2. client_messenger - handles client traffic
-
- This division allows the OSD to be configured with different interfaces for
- client and cluster traffic.
-
-*Dispatcher*
- See src/msg/Dispatcher.h
-
- OSD implements the Dispatcher interface. Of particular note is ms_dispatch,
- which serves as the entry point for messages received via either the client
- or cluster messenger. Because there are two messengers, ms_dispatch may be
- called from at least two threads. The osd_lock is always held during
- ms_dispatch.
-
-*WorkQueue*
- See src/common/WorkQueue.h
-
- The WorkQueue class abstracts the process of queueing independent tasks
- for asynchronous execution. Each OSD process contains workqueues for
- distinct tasks:
-
- 1. OpWQ: handles ops (from clients) and subops (from other OSDs).
- Runs in the op_tp threadpool.
- 2. PeeringWQ: handles peering tasks and pg map advancement
- Runs in the op_tp threadpool.
- See Peering
- 3. CommandWQ: handles commands (pg query, etc)
- Runs in the command_tp threadpool.
- 4. RecoveryWQ: handles recovery tasks.
- Runs in the recovery_tp threadpool.
- 5. SnapTrimWQ: handles snap trimming
- Runs in the disk_tp threadpool.
- See SnapTrimmer
- 6. ScrubWQ: handles primary scrub path
- Runs in the disk_tp threadpool.
- See Scrub
- 7. ScrubFinalizeWQ: handles primary scrub finalize
- Runs in the disk_tp threadpool.
- See Scrub
- 8. RepScrubWQ: handles replica scrub path
- Runs in the disk_tp threadpool
- See Scrub
- 9. RemoveWQ: Asynchronously removes old pg directories
- Runs in the disk_tp threadpool
- See PGRemoval
-
-*ThreadPool*
- See src/common/WorkQueue.h
- See also above.
-
- There are 4 OSD threadpools:
-
- 1. op_tp: handles ops and subops
- 2. recovery_tp: handles recovery tasks
- 3. disk_tp: handles disk intensive tasks
- 4. command_tp: handles commands
-
-*OSDMap*
- See src/osd/OSDMap.h
-
- The crush algorithm takes two inputs: a picture of the cluster
- with status information about which nodes are up/down and in/out,
- and the pgid to place. The former is encapsulated by the OSDMap.
- Maps are numbered by *epoch* (epoch_t). These maps are passed around
- within the OSD as std::tr1::shared_ptr<const OSDMap>.
-
- See MapHandling
-
-*PG*
- See src/osd/PG.* src/osd/PrimaryLogPG.*
-
- Objects in rados are hashed into *PGs* and *PGs* are placed via crush onto
- OSDs. The PG structure is responsible for handling requests pertaining to
- a particular *PG* as well as for maintaining relevant metadata and controlling
- recovery.
-
-*OSDService*
- See src/osd/OSD.cc OSDService
-
- The OSDService acts as a broker between PG threads and OSD state which allows
- PGs to perform actions using OSD services such as workqueues and messengers.
- This is still a work in progress. Future cleanups will focus on moving such
- state entirely from the OSD into the OSDService.
-
-Overview
---------
- See src/ceph_osd.cc
-
- The OSD process represents one leaf device in the crush hierarchy. There
- might be one OSD process per physical machine, or more than one if, for
- example, the user configures one OSD instance per disk.
-
diff --git a/src/ceph/doc/dev/osd_internals/osd_throttles.rst b/src/ceph/doc/dev/osd_internals/osd_throttles.rst
deleted file mode 100644
index 6739bd9..0000000
--- a/src/ceph/doc/dev/osd_internals/osd_throttles.rst
+++ /dev/null
@@ -1,93 +0,0 @@
-=============
-OSD Throttles
-=============
-
-There are three significant throttles in the filestore: wbthrottle,
-op_queue_throttle, and a throttle based on journal usage.
-
-WBThrottle
-----------
-The WBThrottle is defined in src/os/filestore/WBThrottle.[h,cc] and
-included in FileStore as FileStore::wbthrottle. The intention is to
-bound the amount of outstanding IO we need to do to flush the journal.
-At the same time, we don't want to necessarily do it inline in case we
-might be able to combine several IOs on the same object close together
-in time. Thus, in FileStore::_write, we queue the fd for asyncronous
-flushing and block in FileStore::_do_op if we have exceeded any hard
-limits until the background flusher catches up.
-
-The relevant config options are filestore_wbthrottle*. There are
-different defaults for xfs and btrfs. Each set has hard and soft
-limits on bytes (total dirty bytes), ios (total dirty ios), and
-inodes (total dirty fds). The WBThrottle will begin flushing
-when any of these hits the soft limit and will block in throttle()
-while any has exceeded the hard limit.
-
-Tighter soft limits will cause writeback to happen more quickly,
-but may cause the OSD to miss oportunities for write coalescing.
-Tighter hard limits may cause a reduction in latency variance by
-reducing time spent flushing the journal, but may reduce writeback
-parallelism.
-
-op_queue_throttle
------------------
-The op queue throttle is intended to bound the amount of queued but
-uncompleted work in the filestore by delaying threads calling
-queue_transactions more and more based on how many ops and bytes are
-currently queued. The throttle is taken in queue_transactions and
-released when the op is applied to the filesystem. This period
-includes time spent in the journal queue, time spent writing to the
-journal, time spent in the actual op queue, time spent waiting for the
-wbthrottle to open up (thus, the wbthrottle can push back indirectly
-on the queue_transactions caller), and time spent actually applying
-the op to the filesystem. A BackoffThrottle is used to gradually
-delay the queueing thread after each throttle becomes more than
-filestore_queue_low_threshhold full (a ratio of
-filestore_queue_max_(bytes|ops)). The throttles will block once the
-max value is reached (filestore_queue_max_(bytes|ops)).
-
-The significant config options are:
-filestore_queue_low_threshhold
-filestore_queue_high_threshhold
-filestore_expected_throughput_ops
-filestore_expected_throughput_bytes
-filestore_queue_high_delay_multiple
-filestore_queue_max_delay_multiple
-
-While each throttle is at less than low_threshhold of the max,
-no delay happens. Between low and high, the throttle will
-inject a per-op delay (per op or byte) ramping from 0 at low to
-high_delay_multiple/expected_throughput at high. From high to
-1, the delay will ramp from high_delay_multiple/expected_throughput
-to max_delay_multiple/expected_throughput.
-
-filestore_queue_high_delay_multiple and
-filestore_queue_max_delay_multiple probably do not need to be
-changed.
-
-Setting these properly should help to smooth out op latencies by
-mostly avoiding the hard limit.
-
-See FileStore::throttle_ops and FileSTore::thottle_bytes.
-
-journal usage throttle
-----------------------
-See src/os/filestore/JournalThrottle.h/cc
-
-The intention of the journal usage throttle is to gradually slow
-down queue_transactions callers as the journal fills up in order
-to smooth out hiccup during filestore syncs. JournalThrottle
-wraps a BackoffThrottle and tracks journaled but not flushed
-journal entries so that the throttle can be released when the
-journal is flushed. The configs work very similarly to the
-op_queue_throttle.
-
-The significant config options are:
-journal_throttle_low_threshhold
-journal_throttle_high_threshhold
-filestore_expected_throughput_ops
-filestore_expected_throughput_bytes
-journal_throttle_high_multiple
-journal_throttle_max_multiple
-
-.. literalinclude:: osd_throttles.txt
diff --git a/src/ceph/doc/dev/osd_internals/osd_throttles.txt b/src/ceph/doc/dev/osd_internals/osd_throttles.txt
deleted file mode 100644
index 0332377..0000000
--- a/src/ceph/doc/dev/osd_internals/osd_throttles.txt
+++ /dev/null
@@ -1,21 +0,0 @@
- Messenger throttle (number and size)
- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
- FileStore op_queue throttle (number and size, includes a soft throttle based on filestore_expected_throughput_(ops|bytes))
- |--------------------------------------------------------|
- WBThrottle
- |---------------------------------------------------------------------------------------------------------|
- Journal (size, includes a soft throttle based on filestore_expected_throughput_bytes)
- |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
- |----------------------------------------------------------------------------------------------------> flushed ----------------> synced
- |
-Op: Read Header --DispatchQ--> OSD::_dispatch --OpWQ--> PG::do_request --journalq--> Journal --FileStore::OpWQ--> Apply Thread --Finisher--> op_applied -------------------------------------------------------------> Complete
- | |
-SubOp: --Messenger--> ReadHeader --DispatchQ--> OSD::_dispatch --OpWQ--> PG::do_request --journalq--> Journal --FileStore::OpWQ--> Apply Thread --Finisher--> sub_op_applied -
- |
- |-----------------------------> flushed ----------------> synced
- |------------------------------------------------------------------------------------------|
- Journal (size)
- |---------------------------------|
- WBThrottle
- |-----------------------------------------------------|
- FileStore op_queue throttle (number and size)
diff --git a/src/ceph/doc/dev/osd_internals/pg.rst b/src/ceph/doc/dev/osd_internals/pg.rst
deleted file mode 100644
index 4055363..0000000
--- a/src/ceph/doc/dev/osd_internals/pg.rst
+++ /dev/null
@@ -1,31 +0,0 @@
-====
-PG
-====
-
-Concepts
---------
-
-*Peering Interval*
- See PG::start_peering_interval.
- See PG::acting_up_affected
- See PG::RecoveryState::Reset
-
- A peering interval is a maximal set of contiguous map epochs in which the
- up and acting sets did not change. PG::RecoveryMachine represents a
- transition from one interval to another as passing through
- RecoveryState::Reset. On PG::RecoveryState::AdvMap PG::acting_up_affected can
- cause the pg to transition to Reset.
-
-
-Peering Details and Gotchas
----------------------------
-For an overview of peering, see `Peering <../../peering>`_.
-
- * PG::flushed defaults to false and is set to false in
- PG::start_peering_interval. Upon transitioning to PG::RecoveryState::Started
- we send a transaction through the pg op sequencer which, upon complete,
- sends a FlushedEvt which sets flushed to true. The primary cannot go
- active until this happens (See PG::RecoveryState::WaitFlushedPeering).
- Replicas can go active but cannot serve ops (writes or reads).
- This is necessary because we cannot read our ondisk state until unstable
- transactions from the previous interval have cleared.
diff --git a/src/ceph/doc/dev/osd_internals/pg_removal.rst b/src/ceph/doc/dev/osd_internals/pg_removal.rst
deleted file mode 100644
index d968ecc..0000000
--- a/src/ceph/doc/dev/osd_internals/pg_removal.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-==========
-PG Removal
-==========
-
-See OSD::_remove_pg, OSD::RemoveWQ
-
-There are two ways for a pg to be removed from an OSD:
-
- 1. MOSDPGRemove from the primary
- 2. OSD::advance_map finds that the pool has been removed
-
-In either case, our general strategy for removing the pg is to
-atomically set the metadata objects (pg->log_oid, pg->biginfo_oid) to
-backfill and asynronously remove the pg collections. We do not do
-this inline because scanning the collections to remove the objects is
-an expensive operation.
-
-OSDService::deleting_pgs tracks all pgs in the process of being
-deleted. Each DeletingState object in deleting_pgs lives while at
-least one reference to it remains. Each item in RemoveWQ carries a
-reference to the DeletingState for the relevant pg such that
-deleting_pgs.lookup(pgid) will return a null ref only if there are no
-collections currently being deleted for that pg.
-
-The DeletingState for a pg also carries information about the status
-of the current deletion and allows the deletion to be cancelled.
-The possible states are:
-
- 1. QUEUED: the PG is in the RemoveWQ
- 2. CLEARING_DIR: the PG's contents are being removed synchronously
- 3. DELETING_DIR: the PG's directories and metadata being queued for removal
- 4. DELETED_DIR: the final removal transaction has been queued
- 5. CANCELED: the deletion has been canceled
-
-In 1 and 2, the deletion can be canceled. Each state transition
-method (and check_canceled) returns false if deletion has been
-canceled and true if the state transition was successful. Similarly,
-try_stop_deletion() returns true if it succeeds in canceling the
-deletion. Additionally, try_stop_deletion() in the event that it
-fails to stop the deletion will not return until the final removal
-transaction is queued. This ensures that any operations queued after
-that point will be ordered after the pg deletion.
-
-OSD::_create_lock_pg must handle two cases:
-
- 1. Either there is no DeletingStateRef for the pg, or it failed to cancel
- 2. We succeeded in canceling the deletion.
-
-In case 1., we proceed as if there were no deletion occurring, except that
-we avoid writing to the PG until the deletion finishes. In case 2., we
-proceed as in case 1., except that we first mark the PG as backfilling.
-
-Similarly, OSD::osr_registry ensures that the OpSequencers for those
-pgs can be reused for a new pg if created before the old one is fully
-removed, ensuring that operations on the new pg are sequenced properly
-with respect to operations on the old one.
diff --git a/src/ceph/doc/dev/osd_internals/pgpool.rst b/src/ceph/doc/dev/osd_internals/pgpool.rst
deleted file mode 100644
index 45a252b..0000000
--- a/src/ceph/doc/dev/osd_internals/pgpool.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-==================
-PGPool
-==================
-
-PGPool is a structure used to manage and update the status of removed
-snapshots. It does this by maintaining two fields, cached_removed_snaps - the
-current removed snap set and newly_removed_snaps - newly removed snaps in the
-last epoch. In OSD::load_pgs the osd map is recovered from the pg's file store
-and passed down to OSD::_get_pool where a PGPool object is initialised with the
-map.
-
-With each new map we receive we call PGPool::update with the new map. In that
-function we build a list of newly removed snaps
-(pg_pool_t::build_removed_snaps) and merge that with our cached_removed_snaps.
-This function included checks to make sure we only do this update when things
-have changed or there has been a map gap.
-
-When we activate the pg we initialise the snap trim queue from
-cached_removed_snaps and subtract the purged_snaps we have already purged
-leaving us with the list of snaps that need to be trimmed. Trimming is later
-performed asynchronously by the snap_trim_wq.
-
diff --git a/src/ceph/doc/dev/osd_internals/recovery_reservation.rst b/src/ceph/doc/dev/osd_internals/recovery_reservation.rst
deleted file mode 100644
index 4ab0319..0000000
--- a/src/ceph/doc/dev/osd_internals/recovery_reservation.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-====================
-Recovery Reservation
-====================
-
-Recovery reservation extends and subsumes backfill reservation. The
-reservation system from backfill recovery is used for local and remote
-reservations.
-
-When a PG goes active, first it determines what type of recovery is
-necessary, if any. It may need log-based recovery, backfill recovery,
-both, or neither.
-
-In log-based recovery, the primary first acquires a local reservation
-from the OSDService's local_reserver. Then a MRemoteReservationRequest
-message is sent to each replica in order of OSD number. These requests
-will always be granted (i.e., cannot be rejected), but they may take
-some time to be granted if the remotes have already granted all their
-remote reservation slots.
-
-After all reservations are acquired, log-based recovery proceeds as it
-would without the reservation system.
-
-After log-based recovery completes, the primary releases all remote
-reservations. The local reservation remains held. The primary then
-determines whether backfill is necessary. If it is not necessary, the
-primary releases its local reservation and waits in the Recovered state
-for all OSDs to indicate that they are clean.
-
-If backfill recovery occurs after log-based recovery, the local
-reservation does not need to be reacquired since it is still held from
-before. If it occurs immediately after activation (log-based recovery
-not possible/necessary), the local reservation is acquired according to
-the typical process.
-
-Once the primary has its local reservation, it requests a remote
-reservation from the backfill target. This reservation CAN be rejected,
-for instance if the OSD is too full (backfillfull_ratio osd setting).
-If the reservation is rejected, the primary drops its local
-reservation, waits (osd_backfill_retry_interval), and then retries. It
-will retry indefinitely.
-
-Once the primary has the local and remote reservations, backfill
-proceeds as usual. After backfill completes the remote reservation is
-dropped.
-
-Finally, after backfill (or log-based recovery if backfill was not
-necessary), the primary drops the local reservation and enters the
-Recovered state. Once all the PGs have reported they are clean, the
-primary enters the Clean state and marks itself active+clean.
-
-
---------------
-Things to Note
---------------
-
-We always grab the local reservation first, to prevent a circular
-dependency. We grab remote reservations in order of OSD number for the
-same reason.
-
-The recovery reservation state chart controls the PG state as reported
-to the monitor. The state chart can set:
-
- - recovery_wait: waiting for local/remote reservations
- - recovering: recovering
- - recovery_toofull: recovery stopped, OSD(s) above full ratio
- - backfill_wait: waiting for remote backfill reservations
- - backfilling: backfilling
- - backfill_toofull: backfill stopped, OSD(s) above backfillfull ratio
-
-
---------
-See Also
---------
-
-The Active substate of the automatically generated OSD state diagram.
diff --git a/src/ceph/doc/dev/osd_internals/scrub.rst b/src/ceph/doc/dev/osd_internals/scrub.rst
deleted file mode 100644
index 3343b39..0000000
--- a/src/ceph/doc/dev/osd_internals/scrub.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-
-Scrubbing Behavior Table
-========================
-
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-| Flags | none | noscrub | nodeep_scrub | noscrub/nodeep_scrub |
-+=================================================+==========+===========+===============+======================+
-| Periodic tick | S | X | S | X |
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-| Periodic tick after osd_deep_scrub_interval | D | D | S | X |
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-| Initiated scrub | S | S | S | S |
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-| Initiated scrub after osd_deep_scrub_interval | D | D | S | S |
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-| Initiated deep scrub | D | D | D | D |
-+-------------------------------------------------+----------+-----------+---------------+----------------------+
-
-- X = Do nothing
-- S = Do regular scrub
-- D = Do deep scrub
-
-State variables
----------------
-
-- Periodic tick state is !must_scrub && !must_deep_scrub && !time_for_deep
-- Periodic tick after osd_deep_scrub_interval state is !must_scrub && !must_deep_scrub && time_for_deep
-- Initiated scrub state is must_scrub && !must_deep_scrub && !time_for_deep
-- Initiated scrub after osd_deep_scrub_interval state is must scrub && !must_deep_scrub && time_for_deep
-- Initiated deep scrub state is must_scrub && must_deep_scrub
diff --git a/src/ceph/doc/dev/osd_internals/snaps.rst b/src/ceph/doc/dev/osd_internals/snaps.rst
deleted file mode 100644
index e17378f..0000000
--- a/src/ceph/doc/dev/osd_internals/snaps.rst
+++ /dev/null
@@ -1,128 +0,0 @@
-======
-Snaps
-======
-
-Overview
---------
-Rados supports two related snapshotting mechanisms:
-
- 1. *pool snaps*: snapshots are implicitely applied to all objects
- in a pool
- 2. *self managed snaps*: the user must provide the current *SnapContext*
- on each write.
-
-These two are mutually exclusive, only one or the other can be used on
-a particular pool.
-
-The *SnapContext* is the set of snapshots currently defined for an object
-as well as the most recent snapshot (the *seq*) requested from the mon for
-sequencing purposes (a *SnapContext* with a newer *seq* is considered to
-be more recent).
-
-The difference between *pool snaps* and *self managed snaps* from the
-OSD's point of view lies in whether the *SnapContext* comes to the OSD
-via the client's MOSDOp or via the most recent OSDMap.
-
-See OSD::make_writeable
-
-Ondisk Structures
------------------
-Each object has in the pg collection a *head* object (or *snapdir*, which we
-will come to shortly) and possibly a set of *clone* objects.
-Each hobject_t has a snap field. For the *head* (the only writeable version
-of an object), the snap field is set to CEPH_NOSNAP. For the *clones*, the
-snap field is set to the *seq* of the *SnapContext* at their creation.
-When the OSD services a write, it first checks whether the most recent
-*clone* is tagged with a snapid prior to the most recent snap represented
-in the *SnapContext*. If so, at least one snapshot has occurred between
-the time of the write and the time of the last clone. Therefore, prior
-to performing the mutation, the OSD creates a new clone for servicing
-reads on snaps between the snapid of the last clone and the most recent
-snapid.
-
-The *head* object contains a *SnapSet* encoded in an attribute, which tracks
-
- 1. The full set of snaps defined for the object
- 2. The full set of clones which currently exist
- 3. Overlapping intervals between clones for tracking space usage
- 4. Clone size
-
-If the *head* is deleted while there are still clones, a *snapdir* object
-is created instead to house the *SnapSet*.
-
-Additionally, the *object_info_t* on each clone includes a vector of snaps
-for which clone is defined.
-
-Snap Removal
-------------
-To remove a snapshot, a request is made to the *Monitor* cluster to
-add the snapshot id to the list of purged snaps (or to remove it from
-the set of pool snaps in the case of *pool snaps*). In either case,
-the *PG* adds the snap to its *snap_trimq* for trimming.
-
-A clone can be removed when all of its snaps have been removed. In
-order to determine which clones might need to be removed upon snap
-removal, we maintain a mapping from snap to *hobject_t* using the
-*SnapMapper*.
-
-See PrimaryLogPG::SnapTrimmer, SnapMapper
-
-This trimming is performed asynchronously by the snap_trim_wq while the
-pg is clean and not scrubbing.
-
- #. The next snap in PG::snap_trimq is selected for trimming
- #. We determine the next object for trimming out of PG::snap_mapper.
- For each object, we create a log entry and repop updating the
- object info and the snap set (including adjusting the overlaps).
- If the object is a clone which no longer belongs to any live snapshots,
- it is removed here. (See PrimaryLogPG::trim_object() when new_snaps
- is empty.)
- #. We also locally update our *SnapMapper* instance with the object's
- new snaps.
- #. The log entry containing the modification of the object also
- contains the new set of snaps, which the replica uses to update
- its own *SnapMapper* instance.
- #. The primary shares the info with the replica, which persists
- the new set of purged_snaps along with the rest of the info.
-
-
-
-Recovery
---------
-Because the trim operations are implemented using repops and log entries,
-normal pg peering and recovery maintain the snap trimmer operations with
-the caveat that push and removal operations need to update the local
-*SnapMapper* instance. If the purged_snaps update is lost, we merely
-retrim a now empty snap.
-
-SnapMapper
-----------
-*SnapMapper* is implemented on top of map_cacher<string, bufferlist>,
-which provides an interface over a backing store such as the filesystem
-with async transactions. While transactions are incomplete, the map_cacher
-instance buffers unstable keys allowing consistent access without having
-to flush the filestore. *SnapMapper* provides two mappings:
-
- 1. hobject_t -> set<snapid_t>: stores the set of snaps for each clone
- object
- 2. snapid_t -> hobject_t: stores the set of hobjects with the snapshot
- as one of its snaps
-
-Assumption: there are lots of hobjects and relatively few snaps. The
-first encoding has a stringification of the object as the key and an
-encoding of the set of snaps as a value. The second mapping, because there
-might be many hobjects for a single snap, is stored as a collection of keys
-of the form stringify(snap)_stringify(object) such that stringify(snap)
-is constant length. These keys have a bufferlist encoding
-pair<snapid, hobject_t> as a value. Thus, creating or trimming a single
-object does not involve reading all objects for any snap. Additionally,
-upon construction, the *SnapMapper* is provided with a mask for filtering
-the objects in the single SnapMapper keyspace belonging to that pg.
-
-Split
------
-The snapid_t -> hobject_t key entries are arranged such that for any pg,
-up to 8 prefixes need to be checked to determine all hobjects in a particular
-snap for a particular pg. Upon split, the prefixes to check on the parent
-are adjusted such that only the objects remaining in the pg will be visible.
-The children will immediately have the correct mapping.
diff --git a/src/ceph/doc/dev/osd_internals/watch_notify.rst b/src/ceph/doc/dev/osd_internals/watch_notify.rst
deleted file mode 100644
index 8c2ce09..0000000
--- a/src/ceph/doc/dev/osd_internals/watch_notify.rst
+++ /dev/null
@@ -1,81 +0,0 @@
-============
-Watch Notify
-============
-
-See librados for the watch/notify interface.
-
-Overview
---------
-The object_info (See osd/osd_types.h) tracks the set of watchers for
-a particular object persistently in the object_info_t::watchers map.
-In order to track notify progress, we also maintain some ephemeral
-structures associated with the ObjectContext.
-
-Each Watch has an associated Watch object (See osd/Watch.h). The
-ObjectContext for a watched object will have a (strong) reference
-to one Watch object per watch, and each Watch object holds a
-reference to the corresponding ObjectContext. This circular reference
-is deliberate and is broken when the Watch state is discarded on
-a new peering interval or removed upon timeout expiration or an
-unwatch operation.
-
-A watch tracks the associated connection via a strong
-ConnectionRef Watch::conn. The associated connection has a
-WatchConState stashed in the OSD::Session for tracking associated
-Watches in order to be able to notify them upon ms_handle_reset()
-(via WatchConState::reset()).
-
-Each Watch object tracks the set of currently un-acked notifies.
-start_notify() on a Watch object adds a reference to a new in-progress
-Notify to the Watch and either:
-
-* if the Watch is *connected*, sends a Notify message to the client
-* if the Watch is *unconnected*, does nothing.
-
-When the Watch becomes connected (in PrimaryLogPG::do_osd_op_effects),
-Notifies are resent to all remaining tracked Notify objects.
-
-Each Notify object tracks the set of un-notified Watchers via
-calls to complete_watcher(). Once the remaining set is empty or the
-timeout expires (cb, registered in init()) a notify completion
-is sent to the client.
-
-Watch Lifecycle
----------------
-A watch may be in one of 5 states:
-
-1. Non existent.
-2. On disk, but not registered with an object context.
-3. Connected
-4. Disconnected, callback registered with timer
-5. Disconnected, callback in queue for scrub or is_degraded
-
-Case 2 occurs between when an OSD goes active and the ObjectContext
-for an object with watchers is loaded into memory due to an access.
-During Case 2, no state is registered for the watch. Case 2
-transitions to Case 4 in PrimaryLogPG::populate_obc_watchers() during
-PrimaryLogPG::find_object_context. Case 1 becomes case 3 via
-OSD::do_osd_op_effects due to a watch operation. Case 4,5 become case
-3 in the same way. Case 3 becomes case 4 when the connection resets
-on a watcher's session.
-
-Cases 4&5 can use some explanation. Normally, when a Watch enters Case
-4, a callback is registered with the OSDService::watch_timer to be
-called at timeout expiration. At the time that the callback is
-called, however, the pg might be in a state where it cannot write
-to the object in order to remove the watch (i.e., during a scrub
-or while the object is degraded). In that case, we use
-Watch::get_delayed_cb() to generate another Context for use from
-the callbacks_for_degraded_object and Scrubber::callbacks lists.
-In either case, Watch::unregister_cb() does the right thing
-(SafeTimer::cancel_event() is harmless for contexts not registered
-with the timer).
-
-Notify Lifecycle
-----------------
-The notify timeout is simpler: a timeout callback is registered when
-the notify is init()'d. If all watchers ack notifies before the
-timeout occurs, the timeout is canceled and the client is notified
-of the notify completion. Otherwise, the timeout fires, the Notify
-object pings each Watch via cancel_notify to remove itself, and
-sends the notify completion to the client early.
diff --git a/src/ceph/doc/dev/osd_internals/wbthrottle.rst b/src/ceph/doc/dev/osd_internals/wbthrottle.rst
deleted file mode 100644
index a3ae00d..0000000
--- a/src/ceph/doc/dev/osd_internals/wbthrottle.rst
+++ /dev/null
@@ -1,28 +0,0 @@
-==================
-Writeback Throttle
-==================
-
-Previously, the filestore had a problem when handling large numbers of
-small ios. We throttle dirty data implicitely via the journal, but
-a large number of inodes can be dirtied without filling the journal
-resulting in a very long sync time when the sync finally does happen.
-The flusher was not an adequate solution to this problem since it
-forced writeback of small writes too eagerly killing performance.
-
-WBThrottle tracks unflushed io per hobject_t and ::fsyncs in lru
-order once the start_flusher threshold is exceeded for any of
-dirty bytes, dirty ios, or dirty inodes. While any of these exceed
-the hard_limit, we block on throttle() in _do_op.
-
-See src/os/WBThrottle.h, src/osd/WBThrottle.cc
-
-To track the open FDs through the writeback process, there is now an
-fdcache to cache open fds. lfn_open now returns a cached FDRef which
-implicitely closes the fd once all references have expired.
-
-Filestore syncs have a sideeffect of flushing all outstanding objects
-in the wbthrottle.
-
-lfn_unlink clears the cached FDRef and wbthrottle entries for the
-unlinked object when the last link is removed and asserts that all
-outstanding FDRefs for that object are dead.
diff --git a/src/ceph/doc/dev/peering.rst b/src/ceph/doc/dev/peering.rst
deleted file mode 100644
index 7ee5deb..0000000
--- a/src/ceph/doc/dev/peering.rst
+++ /dev/null
@@ -1,259 +0,0 @@
-======================
-Peering
-======================
-
-Concepts
---------
-
-*Peering*
- the process of bringing all of the OSDs that store
- a Placement Group (PG) into agreement about the state
- of all of the objects (and their metadata) in that PG.
- Note that agreeing on the state does not mean that
- they all have the latest contents.
-
-*Acting set*
- the ordered list of OSDs who are (or were as of some epoch)
- responsible for a particular PG.
-
-*Up set*
- the ordered list of OSDs responsible for a particular PG for
- a particular epoch according to CRUSH. Normally this
- is the same as the *acting set*, except when the *acting set* has been
- explicitly overridden via *PG temp* in the OSDMap.
-
-*PG temp*
- a temporary placement group acting set used while backfilling the
- primary osd. Let say acting is [0,1,2] and we are
- active+clean. Something happens and acting is now [3,1,2]. osd 3 is
- empty and can't serve reads although it is the primary. osd.3 will
- see that and request a *PG temp* of [1,2,3] to the monitors using a
- MOSDPGTemp message so that osd.1 temporarily becomes the
- primary. It will select osd.3 as a backfill peer and continue to
- serve reads and writes while osd.3 is backfilled. When backfilling
- is complete, *PG temp* is discarded and the acting set changes back
- to [3,1,2] and osd.3 becomes the primary.
-
-*current interval* or *past interval*
- a sequence of OSD map epochs during which the *acting set* and *up
- set* for particular PG do not change
-
-*primary*
- the (by convention first) member of the *acting set*,
- who is responsible for coordination peering, and is
- the only OSD that will accept client initiated
- writes to objects in a placement group.
-
-*replica*
- a non-primary OSD in the *acting set* for a placement group
- (and who has been recognized as such and *activated* by the primary).
-
-*stray*
- an OSD who is not a member of the current *acting set*, but
- has not yet been told that it can delete its copies of a
- particular placement group.
-
-*recovery*
- ensuring that copies of all of the objects in a PG
- are on all of the OSDs in the *acting set*. Once
- *peering* has been performed, the primary can start
- accepting write operations, and *recovery* can proceed
- in the background.
-
-*PG info* basic metadata about the PG's creation epoch, the version
- for the most recent write to the PG, *last epoch started*, *last
- epoch clean*, and the beginning of the *current interval*. Any
- inter-OSD communication about PGs includes the *PG info*, such that
- any OSD that knows a PG exists (or once existed) also has a lower
- bound on *last epoch clean* or *last epoch started*.
-
-*PG log*
- a list of recent updates made to objects in a PG.
- Note that these logs can be truncated after all OSDs
- in the *acting set* have acknowledged up to a certain
- point.
-
-*missing set*
- Each OSD notes update log entries and if they imply updates to
- the contents of an object, adds that object to a list of needed
- updates. This list is called the *missing set* for that <OSD,PG>.
-
-*Authoritative History*
- a complete, and fully ordered set of operations that, if
- performed, would bring an OSD's copy of a Placement Group
- up to date.
-
-*epoch*
- a (monotonically increasing) OSD map version number
-
-*last epoch start*
- the last epoch at which all nodes in the *acting set*
- for a particular placement group agreed on an
- *authoritative history*. At this point, *peering* is
- deemed to have been successful.
-
-*up_thru*
- before a primary can successfully complete the *peering* process,
- it must inform a monitor that is alive through the current
- OSD map epoch by having the monitor set its *up_thru* in the osd
- map. This helps peering ignore previous *acting sets* for which
- peering never completed after certain sequences of failures, such as
- the second interval below:
-
- - *acting set* = [A,B]
- - *acting set* = [A]
- - *acting set* = [] very shortly after (e.g., simultaneous failure, but staggered detection)
- - *acting set* = [B] (B restarts, A does not)
-
-*last epoch clean*
- the last epoch at which all nodes in the *acting set*
- for a particular placement group were completely
- up to date (both PG logs and object contents).
- At this point, *recovery* is deemed to have been
- completed.
-
-Description of the Peering Process
-----------------------------------
-
-The *Golden Rule* is that no write operation to any PG
-is acknowledged to a client until it has been persisted
-by all members of the *acting set* for that PG. This means
-that if we can communicate with at least one member of
-each *acting set* since the last successful *peering*, someone
-will have a record of every (acknowledged) operation
-since the last successful *peering*.
-This means that it should be possible for the current
-primary to construct and disseminate a new *authoritative history*.
-
-It is also important to appreciate the role of the OSD map
-(list of all known OSDs and their states, as well as some
-information about the placement groups) in the *peering*
-process:
-
- When OSDs go up or down (or get added or removed)
- this has the potential to affect the *active sets*
- of many placement groups.
-
- Before a primary successfully completes the *peering*
- process, the OSD map must reflect that the OSD was alive
- and well as of the first epoch in the *current interval*.
-
- Changes can only be made after successful *peering*.
-
-Thus, a new primary can use the latest OSD map along with a recent
-history of past maps to generate a set of *past intervals* to
-determine which OSDs must be consulted before we can successfully
-*peer*. The set of past intervals is bounded by *last epoch started*,
-the most recent *past interval* for which we know *peering* completed.
-The process by which an OSD discovers a PG exists in the first place is
-by exchanging *PG info* messages, so the OSD always has some lower
-bound on *last epoch started*.
-
-The high level process is for the current PG primary to:
-
- 1. get a recent OSD map (to identify the members of the all
- interesting *acting sets*, and confirm that we are still the
- primary).
-
- #. generate a list of *past intervals* since *last epoch started*.
- Consider the subset of those for which *up_thru* was greater than
- the first interval epoch by the last interval epoch's OSD map; that is,
- the subset for which *peering* could have completed before the *acting
- set* changed to another set of OSDs.
-
- Successful *peering* will require that we be able to contact at
- least one OSD from each of *past interval*'s *acting set*.
-
- #. ask every node in that list for its *PG info*, which includes the most
- recent write made to the PG, and a value for *last epoch started*. If
- we learn about a *last epoch started* that is newer than our own, we can
- prune older *past intervals* and reduce the peer OSDs we need to contact.
-
- #. if anyone else has (in its PG log) operations that I do not have,
- instruct them to send me the missing log entries so that the primary's
- *PG log* is up to date (includes the newest write)..
-
- #. for each member of the current *acting set*:
-
- a. ask it for copies of all PG log entries since *last epoch start*
- so that I can verify that they agree with mine (or know what
- objects I will be telling it to delete).
-
- If the cluster failed before an operation was persisted by all
- members of the *acting set*, and the subsequent *peering* did not
- remember that operation, and a node that did remember that
- operation later rejoined, its logs would record a different
- (divergent) history than the *authoritative history* that was
- reconstructed in the *peering* after the failure.
-
- Since the *divergent* events were not recorded in other logs
- from that *acting set*, they were not acknowledged to the client,
- and there is no harm in discarding them (so that all OSDs agree
- on the *authoritative history*). But, we will have to instruct
- any OSD that stores data from a divergent update to delete the
- affected (and now deemed to be apocryphal) objects.
-
- #. ask it for its *missing set* (object updates recorded
- in its PG log, but for which it does not have the new data).
- This is the list of objects that must be fully replicated
- before we can accept writes.
-
- #. at this point, the primary's PG log contains an *authoritative history* of
- the placement group, and the OSD now has sufficient
- information to bring any other OSD in the *acting set* up to date.
-
- #. if the primary's *up_thru* value in the current OSD map is not greater than
- or equal to the first epoch in the *current interval*, send a request to the
- monitor to update it, and wait until receive an updated OSD map that reflects
- the change.
-
- #. for each member of the current *acting set*:
-
- a. send them log updates to bring their PG logs into agreement with
- my own (*authoritative history*) ... which may involve deciding
- to delete divergent objects.
-
- #. await acknowledgment that they have persisted the PG log entries.
-
- #. at this point all OSDs in the *acting set* agree on all of the meta-data,
- and would (in any future *peering*) return identical accounts of all
- updates.
-
- a. start accepting client write operations (because we have unanimous
- agreement on the state of the objects into which those updates are
- being accepted). Note, however, that if a client tries to write to an
- object it will be promoted to the front of the recovery queue, and the
- write willy be applied after it is fully replicated to the current *acting set*.
-
- #. update the *last epoch started* value in our local *PG info*, and instruct
- other *active set* OSDs to do the same.
-
- #. start pulling object data updates that other OSDs have, but I do not. We may
- need to query OSDs from additional *past intervals* prior to *last epoch started*
- (the last time *peering* completed) and following *last epoch clean* (the last epoch that
- recovery completed) in order to find copies of all objects.
-
- #. start pushing object data updates to other OSDs that do not yet have them.
-
- We push these updates from the primary (rather than having the replicas
- pull them) because this allows the primary to ensure that a replica has
- the current contents before sending it an update write. It also makes
- it possible for a single read (from the primary) to be used to write
- the data to multiple replicas. If each replica did its own pulls,
- the data might have to be read multiple times.
-
- #. once all replicas store the all copies of all objects (that
- existed prior to the start of this epoch) we can update *last
- epoch clean* in the *PG info*, and we can dismiss all of the
- *stray* replicas, allowing them to delete their copies of objects
- for which they are no longer in the *acting set*.
-
- We could not dismiss the *strays* prior to this because it was possible
- that one of those *strays* might hold the sole surviving copy of an
- old object (all of whose copies disappeared before they could be
- replicated on members of the current *acting set*).
-
-State Model
------------
-
-.. graphviz:: peering_graph.generated.dot
diff --git a/src/ceph/doc/dev/perf.rst b/src/ceph/doc/dev/perf.rst
deleted file mode 100644
index 5e42255..0000000
--- a/src/ceph/doc/dev/perf.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Using perf
-==========
-
-Top::
-
- sudo perf top -p `pidof ceph-osd`
-
-To capture some data with call graphs::
-
- sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
-
-To view by caller (where you can see what each top function calls)::
-
- sudo perf report --call-graph caller
-
-To view by callee (where you can see who calls each top function)::
-
- sudo perf report --call-graph callee
-
-:note: If the caller/callee views look the same you may be
- suffering from a kernel bug; upgrade to 4.8 or later.
-
-Flamegraphs
------------
-
-First, get things set up::
-
- cd ~/src
- git clone https://github.com/brendangregg/FlameGraph
-
-Run ceph, then record some perf data::
-
- sudo perf record -p `pidof ceph-osd` -F 99 --call-graph dwarf -- sleep 60
-
-Then generate the flamegraph::
-
- sudo perf script | ~/src/FlameGraph/stackcollapse-perf.pl > /tmp/folded
- ~/src/FlameGraph/flamegraph.pl /tmp/folded > /tmp/perf.svg
- firefox /tmp/perf.svg
diff --git a/src/ceph/doc/dev/perf_counters.rst b/src/ceph/doc/dev/perf_counters.rst
deleted file mode 100644
index 2f49f77..0000000
--- a/src/ceph/doc/dev/perf_counters.rst
+++ /dev/null
@@ -1,198 +0,0 @@
-===============
- Perf counters
-===============
-
-The perf counters provide generic internal infrastructure for gauges and counters. The counted values can be both integer and float. There is also an "average" type (normally float) that combines a sum and num counter which can be divided to provide an average.
-
-The intention is that this data will be collected and aggregated by a tool like ``collectd`` or ``statsd`` and fed into a tool like ``graphite`` for graphing and analysis. Also, note the :doc:`../mgr/prometheus`.
-
-Access
-------
-
-The perf counter data is accessed via the admin socket. For example::
-
- ceph daemon osd.0 perf schema
- ceph daemon osd.0 perf dump
-
-
-Collections
------------
-
-The values are grouped into named collections, normally representing a subsystem or an instance of a subsystem. For example, the internal ``throttle`` mechanism reports statistics on how it is throttling, and each instance is named something like::
-
-
- throttle-msgr_dispatch_throttler-hbserver
- throttle-msgr_dispatch_throttler-client
- throttle-filestore_bytes
- ...
-
-
-Schema
-------
-
-The ``perf schema`` command dumps a json description of which values are available, and what their type is. Each named value as a ``type`` bitfield, with the following bits defined.
-
-+------+-------------------------------------+
-| bit | meaning |
-+======+=====================================+
-| 1 | floating point value |
-+------+-------------------------------------+
-| 2 | unsigned 64-bit integer value |
-+------+-------------------------------------+
-| 4 | average (sum + count pair), where |
-+------+-------------------------------------+
-| 8 | counter (vs gauge) |
-+------+-------------------------------------+
-
-Every value will have either bit 1 or 2 set to indicate the type
-(float or integer).
-
-If bit 8 is set (counter), the value is monotonically increasing and
-the reader may want to subtract off the previously read value to get
-the delta during the previous interval.
-
-If bit 4 is set (average), there will be two values to read, a sum and
-a count. If it is a counter, the average for the previous interval
-would be sum delta (since the previous read) divided by the count
-delta. Alternatively, dividing the values outright would provide the
-lifetime average value. Normally these are used to measure latencies
-(number of requests and a sum of request latencies), and the average
-for the previous interval is what is interesting.
-
-Instead of interpreting the bit fields, the ``metric type`` has a
-value of either ``guage`` or ``counter``, and the ``value type``
-property will be one of ``real``, ``integer``, ``real-integer-pair``
-(for a sum + real count pair), or ``integer-integer-pair`` (for a
-sum + integer count pair).
-
-Here is an example of the schema output::
-
- {
- "throttle-bluestore_throttle_bytes": {
- "val": {
- "type": 2,
- "metric_type": "gauge",
- "value_type": "integer",
- "description": "Currently available throttle",
- "nick": ""
- },
- "max": {
- "type": 2,
- "metric_type": "gauge",
- "value_type": "integer",
- "description": "Max value for throttle",
- "nick": ""
- },
- "get_started": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Number of get calls, increased before wait",
- "nick": ""
- },
- "get": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Gets",
- "nick": ""
- },
- "get_sum": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Got data",
- "nick": ""
- },
- "get_or_fail_fail": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Get blocked during get_or_fail",
- "nick": ""
- },
- "get_or_fail_success": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Successful get during get_or_fail",
- "nick": ""
- },
- "take": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Takes",
- "nick": ""
- },
- "take_sum": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Taken data",
- "nick": ""
- },
- "put": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Puts",
- "nick": ""
- },
- "put_sum": {
- "type": 10,
- "metric_type": "counter",
- "value_type": "integer",
- "description": "Put data",
- "nick": ""
- },
- "wait": {
- "type": 5,
- "metric_type": "gauge",
- "value_type": "real-integer-pair",
- "description": "Waiting latency",
- "nick": ""
- }
- }
-
-
-Dump
-----
-
-The actual dump is similar to the schema, except that average values are grouped. For example::
-
- {
- "throttle-msgr_dispatch_throttler-hbserver" : {
- "get_or_fail_fail" : 0,
- "get_sum" : 0,
- "max" : 104857600,
- "put" : 0,
- "val" : 0,
- "take" : 0,
- "get_or_fail_success" : 0,
- "wait" : {
- "avgcount" : 0,
- "sum" : 0
- },
- "get" : 0,
- "take_sum" : 0,
- "put_sum" : 0
- },
- "throttle-msgr_dispatch_throttler-client" : {
- "get_or_fail_fail" : 0,
- "get_sum" : 82760,
- "max" : 104857600,
- "put" : 2637,
- "val" : 0,
- "take" : 0,
- "get_or_fail_success" : 0,
- "wait" : {
- "avgcount" : 0,
- "sum" : 0
- },
- "get" : 2637,
- "take_sum" : 0,
- "put_sum" : 82760
- }
- }
-
diff --git a/src/ceph/doc/dev/perf_histograms.rst b/src/ceph/doc/dev/perf_histograms.rst
deleted file mode 100644
index c277ac2..0000000
--- a/src/ceph/doc/dev/perf_histograms.rst
+++ /dev/null
@@ -1,677 +0,0 @@
-=================
- Perf histograms
-=================
-
-The perf histograms build on perf counters infrastructure. Histograms are built for a number of counters and simplify gathering data on which groups of counter values occur most often over time.
-Perf histograms are currently unsigned 64-bit integer counters, so they're mostly useful for time and sizes. Data dumped by perf histogram can then be feed into other analysis tools/scripts.
-
-Access
-------
-
-The perf histogram data are accessed via the admin socket. For example::
-
- ceph daemon osd.0 perf histogram schema
- ceph daemon osd.0 perf histogram dump
-
-
-Collections
------------
-
-The histograms are grouped into named collections, normally representing a subsystem or an instance of a subsystem. For example, the internal ``throttle`` mechanism reports statistics on how it is throttling, and each instance is named something like::
-
-
- op_r_latency_out_bytes_histogram
- op_rw_latency_in_bytes_histogram
- op_rw_latency_out_bytes_histogram
- ...
-
-
-Schema
-------
-
-The ``perf histogram schema`` command dumps a json description of which values are available, and what their type is. Each named value as a ``type`` bitfield, with the 5-th bit always set and following bits defined.
-
-+------+-------------------------------------+
-| bit | meaning |
-+======+=====================================+
-| 1 | floating point value |
-+------+-------------------------------------+
-| 2 | unsigned 64-bit integer value |
-+------+-------------------------------------+
-| 4 | average (sum + count pair) |
-+------+-------------------------------------+
-| 8 | counter (vs gauge) |
-+------+-------------------------------------+
-
-In other words, histogram of type "18" is a histogram of unsigned 64-bit integer values (16 + 2).
-
-Here is an example of the schema output::
-
- {
- "AsyncMessenger::Worker-0": {},
- "AsyncMessenger::Worker-1": {},
- "AsyncMessenger::Worker-2": {},
- "mutex-WBThrottle::lock": {},
- "objecter": {},
- "osd": {
- "op_r_latency_out_bytes_histogram": {
- "type": 18,
- "description": "Histogram of operation latency (including queue time) + da ta read",
- "nick": ""
- },
- "op_w_latency_in_bytes_histogram": {
- "type": 18,
- "description": "Histogram of operation latency (including queue time) + da ta written",
- "nick": ""
- },
- "op_rw_latency_in_bytes_histogram": {
- "type": 18,
- "description": "Histogram of rw operation latency (including queue time) + data written",
- "nick": ""
- },
- "op_rw_latency_out_bytes_histogram": {
- "type": 18,
- "description": "Histogram of rw operation latency (including queue time) + data read",
- "nick": ""
- }
- }
- }
-
-
-Dump
-----
-
-The actual dump is similar to the schema, except that there are actual value groups. For example::
-
- "osd": {
- "op_r_latency_out_bytes_histogram": {
- "axes": [
- {
- "name": "Latency (usec)",
- "min": 0,
- "quant_size": 100000,
- "buckets": 32,
- "scale_type": "log2",
- "ranges": [
- {
- "max": -1
- },
- {
- "min": 0,
- "max": 99999
- },
- {
- "min": 100000,
- "max": 199999
- },
- {
- "min": 200000,
- "max": 399999
- },
- {
- "min": 400000,
- "max": 799999
- },
- {
- "min": 800000,
- "max": 1599999
- },
- {
- "min": 1600000,
- "max": 3199999
- },
- {
- "min": 3200000,
- "max": 6399999
- },
- {
- "min": 6400000,
- "max": 12799999
- },
- {
- "min": 12800000,
- "max": 25599999
- },
- {
- "min": 25600000,
- "max": 51199999
- },
- {
- "min": 51200000,
- "max": 102399999
- },
- {
- "min": 102400000,
- "max": 204799999
- },
- {
- "min": 204800000,
- "max": 409599999
- },
- {
- "min": 409600000,
- "max": 819199999
- },
- {
- "min": 819200000,
- "max": 1638399999
- },
- {
- "min": 1638400000,
- "max": 3276799999
- },
- {
- "min": 3276800000,
- "max": 6553599999
- },
- {
- "min": 6553600000,
- "max": 13107199999
- },
- {
- "min": 13107200000,
- "max": 26214399999
- },
- {
- "min": 26214400000,
- "max": 52428799999
- },
- {
- "min": 52428800000,
- "max": 104857599999
- },
- {
- "min": 104857600000,
- "max": 209715199999
- },
- {
- "min": 209715200000,
- "max": 419430399999
- },
- {
- "min": 419430400000,
- "max": 838860799999
- },
- {
- "min": 838860800000,
- "max": 1677721599999
- },
- {
- "min": 1677721600000,
- "max": 3355443199999
- },
- {
- "min": 3355443200000,
- "max": 6710886399999
- },
- {
- "min": 6710886400000,
- "max": 13421772799999
- },
- {
- "min": 13421772800000,
- "max": 26843545599999
- },
- {
- "min": 26843545600000,
- "max": 53687091199999
- },
- },
- {
- "min": 53687091200000
- }
- ]
- },
- {
- "name": "Request size (bytes)",
- "min": 0,
- "quant_size": 512,
- "buckets": 32,
- "scale_type": "log2",
- "ranges": [
- {
- "max": -1
- },
- {
- "min": 0,
- "max": 511
- },
- {
- "min": 512,
- "max": 1023
- },
- {
- "min": 1024,
- "max": 2047
- },
- {
- "min": 2048,
- "max": 4095
- },
- {
- "min": 4096,
- "max": 8191
- },
- {
- "min": 8192,
- "max": 16383
- },
- {
- "min": 16384,
- "max": 32767
- },
- {
- "min": 32768,
- "max": 65535
- },
- {
- "min": 65536,
- "max": 131071
- },
- {
- "min": 131072,
- "max": 262143
- },
- {
- "min": 262144,
- "max": 524287
- },
- {
- "min": 524288,
- "max": 1048575
- },
- {
- "min": 1048576,
- "max": 2097151
- },
- {
- "min": 2097152,
- "max": 4194303
- },
- {
- "min": 4194304,
- "max": 8388607
- },
- {
- "min": 8388608,
- "max": 16777215
- },
- {
- "min": 16777216,
- "max": 33554431
- },
- {
- "min": 33554432,
- "max": 67108863
- },
- {
- "min": 67108864,
- "max": 134217727
- },
- {
- "min": 134217728,
- "max": 268435455
- },
- {
- "min": 268435456,
- "max": 536870911
- },
- {
- "min": 536870912,
- "max": 1073741823
- },
- {
- "min": 1073741824,
- "max": 2147483647
- },
- {
- "min": 2147483648,
- "max": 4294967295
- },
- {
- "min": 4294967296,
- "max": 8589934591
- },
- {
- "min": 8589934592,
- "max": 17179869183
- },
- {
- "min": 17179869184,
- "max": 34359738367
- },
- {
- "min": 34359738368,
- "max": 68719476735
- },
- {
- "min": 68719476736,
- "max": 137438953471
- },
- {
- "min": 137438953472,
- "max": 274877906943
- },
- {
- "min": 274877906944
- }
- ]
- }
- ],
- "values": [
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ],
- [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
- ]
- ]
- }
- },
-
-This represents the 2d histogram, consisting of 9 history entrires and 32 value groups per each history entry.
-"Ranges" element denote value bounds for each of value groups. "Buckets" denote amount of value groups ("buckets"),
-"Min" is a minimum accepted valaue, "quant_size" is quantization unit and "scale_type" is either "log2" (logarhitmic
-scale) or "linear" (linear scale).
-You can use histogram_dump.py tool (see src/tools/histogram_dump.py) for quick visualisation of existing histogram
-data.
diff --git a/src/ceph/doc/dev/placement-group.rst b/src/ceph/doc/dev/placement-group.rst
deleted file mode 100644
index 3c067ea..0000000
--- a/src/ceph/doc/dev/placement-group.rst
+++ /dev/null
@@ -1,151 +0,0 @@
-============================
- PG (Placement Group) notes
-============================
-
-Miscellaneous copy-pastes from emails, when this gets cleaned up it
-should move out of /dev.
-
-Overview
-========
-
-PG = "placement group". When placing data in the cluster, objects are
-mapped into PGs, and those PGs are mapped onto OSDs. We use the
-indirection so that we can group objects, which reduces the amount of
-per-object metadata we need to keep track of and processes we need to
-run (it would be prohibitively expensive to track eg the placement
-history on a per-object basis). Increasing the number of PGs can
-reduce the variance in per-OSD load across your cluster, but each PG
-requires a bit more CPU and memory on the OSDs that are storing it. We
-try and ballpark it at 100 PGs/OSD, although it can vary widely
-without ill effects depending on your cluster. You hit a bug in how we
-calculate the initial PG number from a cluster description.
-
-There are a couple of different categories of PGs; the 6 that exist
-(in the original emailer's ``ceph -s`` output) are "local" PGs which
-are tied to a specific OSD. However, those aren't actually used in a
-standard Ceph configuration.
-
-
-Mapping algorithm (simplified)
-==============================
-
-| > How does the Object->PG mapping look like, do you map more than one object on
-| > one PG, or do you sometimes map an object to more than one PG? How about the
-| > mapping of PGs to OSDs, does one PG belong to exactly one OSD?
-| >
-| > Does one PG represent a fixed amount of storage space?
-
-Many objects map to one PG.
-
-Each object maps to exactly one PG.
-
-One PG maps to a single list of OSDs, where the first one in the list
-is the primary and the rest are replicas.
-
-Many PGs can map to one OSD.
-
-A PG represents nothing but a grouping of objects; you configure the
-number of PGs you want, number of OSDs * 100 is a good starting point
-, and all of your stored objects are pseudo-randomly evenly distributed
-to the PGs. So a PG explicitly does NOT represent a fixed amount of
-storage; it represents 1/pg_num'th of the storage you happen to have
-on your OSDs.
-
-Ignoring the finer points of CRUSH and custom placement, it goes
-something like this in pseudocode::
-
- locator = object_name
- obj_hash = hash(locator)
- pg = obj_hash % num_pg
- OSDs_for_pg = crush(pg) # returns a list of OSDs
- primary = osds_for_pg[0]
- replicas = osds_for_pg[1:]
-
-If you want to understand the crush() part in the above, imagine a
-perfectly spherical datacenter in a vacuum ;) that is, if all OSDs
-have weight 1.0, and there is no topology to the data center (all OSDs
-are on the top level), and you use defaults, etc, it simplifies to
-consistent hashing; you can think of it as::
-
- def crush(pg):
- all_osds = ['osd.0', 'osd.1', 'osd.2', ...]
- result = []
- # size is the number of copies; primary+replicas
- while len(result) < size:
- r = hash(pg)
- chosen = all_osds[ r % len(all_osds) ]
- if chosen in result:
- # OSD can be picked only once
- continue
- result.append(chosen)
- return result
-
-User-visible PG States
-======================
-
-.. todo:: diagram of states and how they can overlap
-
-*creating*
- the PG is still being created
-
-*active*
- requests to the PG will be processed
-
-*clean*
- all objects in the PG are replicated the correct number of times
-
-*down*
- a replica with necessary data is down, so the pg is offline
-
-*replay*
- the PG is waiting for clients to replay operations after an OSD crashed
-
-*splitting*
- the PG is being split into multiple PGs (not functional as of 2012-02)
-
-*scrubbing*
- the PG is being checked for inconsistencies
-
-*degraded*
- some objects in the PG are not replicated enough times yet
-
-*inconsistent*
- replicas of the PG are not consistent (e.g. objects are
- the wrong size, objects are missing from one replica *after* recovery
- finished, etc.)
-
-*peering*
- the PG is undergoing the :doc:`/dev/peering` process
-
-*repair*
- the PG is being checked and any inconsistencies found will be repaired (if possible)
-
-*recovering*
- objects are being migrated/synchronized with replicas
-
-*recovery_wait*
- the PG is waiting for the local/remote recovery reservations
-
-*backfilling*
- a special case of recovery, in which the entire contents of
- the PG are scanned and synchronized, instead of inferring what
- needs to be transferred from the PG logs of recent operations
-
-*backfill_wait*
- the PG is waiting in line to start backfill
-
-*backfill_toofull*
- backfill reservation rejected, OSD too full
-
-*incomplete*
- a pg is missing a necessary period of history from its
- log. If you see this state, report a bug, and try to start any
- failed OSDs that may contain the needed information.
-
-*stale*
- the PG is in an unknown state - the monitors have not received
- an update for it since the PG mapping changed.
-
-*remapped*
- the PG is temporarily mapped to a different set of OSDs from what
- CRUSH specified
diff --git a/src/ceph/doc/dev/quick_guide.rst b/src/ceph/doc/dev/quick_guide.rst
deleted file mode 100644
index d9c6a53..0000000
--- a/src/ceph/doc/dev/quick_guide.rst
+++ /dev/null
@@ -1,131 +0,0 @@
-=================================
- Developer Guide (Quick)
-=================================
-
-This guide will describe how to build and test Ceph for development.
-
-Development
------------
-
-The ``run-make-check.sh`` script will install Ceph dependencies,
-compile everything in debug mode and run a number of tests to verify
-the result behaves as expected.
-
-.. code::
-
- $ ./run-make-check.sh
-
-
-Running a development deployment
---------------------------------
-Ceph contains a script called ``vstart.sh`` (see also :doc:`/dev/dev_cluster_deployement`) which allows developers to quickly test their code using
-a simple deployment on your development system. Once the build finishes successfully, start the ceph
-deployment using the following command:
-
-.. code::
-
- $ cd ceph/build # Assuming this is where you ran cmake
- $ make vstart
- $ ../src/vstart.sh -d -n -x
-
-You can also configure ``vstart.sh`` to use only one monitor and one metadata server by using the following:
-
-.. code::
-
- $ MON=1 MDS=1 ../src/vstart.sh -d -n -x
-
-The system creates two pools on startup: `cephfs_data_a` and `cephfs_metadata_a`. Let's get some stats on
-the current pools:
-
-.. code::
-
- $ bin/ceph osd pool stats
- *** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
- pool cephfs_data_a id 1
- nothing is going on
-
- pool cephfs_metadata_a id 2
- nothing is going on
-
- $ bin/ceph osd pool stats cephfs_data_a
- *** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
- pool cephfs_data_a id 1
- nothing is going on
-
- $ bin/rados df
- POOL_NAME USED OBJECTS CLONES COPIES MISSING_ON_PRIMARY UNFOUND DEGRADED RD_OPS RD WR_OPS WR
- cephfs_data_a 0 0 0 0 0 0 0 0 0 0 0
- cephfs_metadata_a 2246 21 0 63 0 0 0 0 0 42 8192
-
- total_objects 21
- total_used 244G
- total_space 1180G
-
-
-Make a pool and run some benchmarks against it:
-
-.. code::
-
- $ bin/rados mkpool mypool
- $ bin/rados -p mypool bench 10 write -b 123
-
-Place a file into the new pool:
-
-.. code::
-
- $ bin/rados -p mypool put objectone <somefile>
- $ bin/rados -p mypool put objecttwo <anotherfile>
-
-List the objects in the pool:
-
-.. code::
-
- $ bin/rados -p mypool ls
-
-Once you are done, type the following to stop the development ceph deployment:
-
-.. code::
-
- $ ../src/stop.sh
-
-Resetting your vstart environment
----------------------------------
-
-The vstart script creates out/ and dev/ directories which contain
-the cluster's state. If you want to quickly reset your environment,
-you might do something like this:
-
-.. code::
-
- [build]$ ../src/stop.sh
- [build]$ rm -rf out dev
- [build]$ MDS=1 MON=1 OSD=3 ../src/vstart.sh -n -d
-
-Running a RadosGW development environment
------------------------------------------
-
-Set the ``RGW`` environment variable when running vstart.sh to enable the RadosGW.
-
-.. code::
-
- $ cd build
- $ RGW=1 ../src/vstart.sh -d -n -x
-
-You can now use the swift python client to communicate with the RadosGW.
-
-.. code::
-
- $ swift -A http://localhost:8000/auth -U test:tester -K testing list
- $ swift -A http://localhost:8000/auth -U test:tester -K testing upload mycontainer ceph
- $ swift -A http://localhost:8000/auth -U test:tester -K testing list
-
-
-Run unit tests
---------------
-
-The tests are located in `src/tests`. To run them type:
-
-.. code::
-
- $ make check
-
diff --git a/src/ceph/doc/dev/rados-client-protocol.rst b/src/ceph/doc/dev/rados-client-protocol.rst
deleted file mode 100644
index b05e753..0000000
--- a/src/ceph/doc/dev/rados-client-protocol.rst
+++ /dev/null
@@ -1,117 +0,0 @@
-RADOS client protocol
-=====================
-
-This is very incomplete, but one must start somewhere.
-
-Basics
-------
-
-Requests are MOSDOp messages. Replies are MOSDOpReply messages.
-
-An object request is targetted at an hobject_t, which includes a pool,
-hash value, object name, placement key (usually empty), and snapid.
-
-The hash value is a 32-bit hash value, normally generated by hashing
-the object name. The hobject_t can be arbitrarily constructed,
-though, with any hash value and name. Note that in the MOSDOp these
-components are spread across several fields and not logically
-assembled in an actual hobject_t member (mainly historical reasons).
-
-A request can also target a PG. In this case, the *ps* value matches
-a specific PG, the object name is empty, and (hopefully) the ops in
-the request are PG ops.
-
-Either way, the request ultimately targets a PG, either by using the
-explicit pgid or by folding the hash value onto the current number of
-pgs in the pool. The client sends the request to the primary for the
-assocated PG.
-
-Each request is assigned a unique tid.
-
-Resends
--------
-
-If there is a connection drop, the client will resend any outstanding
-requets.
-
-Any time there is a PG mapping change such that the primary changes,
-the client is responsible for resending the request. Note that
-although there may be an interval change from the OSD's perspective
-(triggering PG peering), if the primary doesn't change then the client
-need not resend.
-
-There are a few exceptions to this rule:
-
- * There is a last_force_op_resend field in the pg_pool_t in the
- OSDMap. If this changes, then the clients are forced to resend any
- outstanding requests. (This happens when tiering is adjusted, for
- example.)
- * Some requests are such that they are resent on *any* PG interval
- change, as defined by pg_interval_t's is_new_interval() (the same
- criteria used by peering in the OSD).
- * If the PAUSE OSDMap flag is set and unset.
-
-Each time a request is sent to the OSD the *attempt* field is incremented. The
-first time it is 0, the next 1, etc.
-
-Backoff
--------
-
-Ordinarily the OSD will simply queue any requests it can't immeidately
-process in memory until such time as it can. This can become
-problematic because the OSD limits the total amount of RAM consumed by
-incoming messages: if either of the thresholds for the number of
-messages or the number of bytes is reached, new messages will not be
-read off the network socket, causing backpressure through the network.
-
-In some cases, though, the OSD knows or expects that a PG or object
-will be unavailable for some time and does not want to consume memory
-by queuing requests. In these cases it can send a MOSDBackoff message
-to the client.
-
-A backoff request has four properties:
-
-#. the op code (block, unblock, or ack-block)
-#. *id*, a unique id assigned within this session
-#. hobject_t begin
-#. hobject_t end
-
-There are two types of backoff: a *PG* backoff will plug all requests
-targetting an entire PG at the client, as described by a range of the
-hash/hobject_t space [begin,end), while an *object* backoff will plug
-all requests targetting a single object (begin == end).
-
-When the client receives a *block* backoff message, it is now
-responsible for *not* sending any requests for hobject_ts described by
-the backoff. The backoff remains in effect until the backoff is
-cleared (via an 'unblock' message) or the OSD session is closed. A
-*ack_block* message is sent back to the OSD immediately to acknowledge
-receipt of the backoff.
-
-When an unblock is
-received, it will reference a specific id that the client previous had
-blocked. However, the range described by the unblock may be smaller
-than the original range, as the PG may have split on the OSD. The unblock
-should *only* unblock the range specified in the unblock message. Any requests
-that fall within the unblock request range are reexamined and, if no other
-installed backoff applies, resent.
-
-On the OSD, Backoffs are also tracked across ranges of the hash space, and
-exist in three states:
-
-#. new
-#. acked
-#. deleting
-
-A newly installed backoff is set to *new* and a message is sent to the
-client. When the *ack-block* message is received it is changed to the
-*acked* state. The OSD may process other messages from the client that
-are covered by the backoff in the *new* state, but once the backoff is
-*acked* it should never see a blocked request unless there is a bug.
-
-If the OSD wants to a remove a backoff in the *acked* state it can
-simply remove it and notify the client. If the backoff is in the
-*new* state it must move it to the *deleting* state and continue to
-use it to discard client requests until the *ack-block* message is
-received, at which point it can finally be removed. This is necessary to
-preserve the order of operations processed by the OSD.
diff --git a/src/ceph/doc/dev/radosgw/admin/adminops_nonimplemented.rst b/src/ceph/doc/dev/radosgw/admin/adminops_nonimplemented.rst
deleted file mode 100644
index e579bd5..0000000
--- a/src/ceph/doc/dev/radosgw/admin/adminops_nonimplemented.rst
+++ /dev/null
@@ -1,495 +0,0 @@
-==================
- Admin Operations
-==================
-
-An admin API request will be done on a URI that starts with the configurable 'admin'
-resource entry point. Authorization for the admin API duplicates the S3 authorization
-mechanism. Some operations require that the user holds special administrative capabilities.
-The response entity type (XML or JSON) may be specified as the 'format' option in the
-request and defaults to JSON if not specified.
-
-Get Object
-==========
-
-Get an existing object. NOTE: Does not require owner to be non-suspended.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/bucket?object&format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket containing the object to be retrieved.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``object``
-
-:Description: The object to be retrieved.
-:Type: String
-:Example: ``foo.txt``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, returns the desired object.
-
-``object``
-
-:Description: The desired object.
-:Type: Object
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``NoSuchObject``
-
-:Description: Specified object does not exist.
-:Code: 404 Not Found
-
-Head Object
-===========
-
-Verify the existence of an object. If the object exists,
-metadata headers for the object will be returned.
-
-Syntax
-~~~~~~
-
-::
-
- HEAD /{admin}/bucket?object HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket containing the object to be retrieved.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``object``
-
-:Description: The object to be retrieved.
-:Type: String
-:Example: ``foo.txt``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``NoSuchObject``
-
-:Description: Specified object does not exist.
-:Code: 404 Not Found
-
-Get Zone Info
-=============
-
-Get cluster information.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/zone&format=json HTTP/1.1
- Host {fqdn}
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, returns cluster pool configuration.
-
-``zone``
-
-:Description: Contains current cluster pool configuration.
-:Type: Container
-
-``domain_root``
-
-:Description: root of all buckets.
-:Type: String
-:Parent: ``cluster``
-
-``control_pool``
-
-:Description:
-:Type: String
-:Parent: ``cluster``
-
-``gc_pool``
-
-:Description: Garbage collection pool.
-:Type: String
-:Parent: ``cluster``
-
-``log_pool``
-
-:Description: Log pool.
-:Type: String
-:Parent: ``cluster``
-
-``intent_log_pool``
-
-:Description: Intent log pool.
-:Type: String
-:Parent: ``cluster``
-
-``usage_log_pool``
-
-:Description: Usage log pool.
-:Type: String
-:Parent: ``cluster``
-
-``user_keys_pool``
-
-:Description: User key pool.
-:Type: String
-:Parent: ``cluster``
-
-``user_email_pool``
-
-:Description: User email pool.
-:Type: String
-:Parent: ``cluster``
-
-``user_swift_pool``
-
-:Description: Pool of swift users.
-:Type: String
-:Parent: ``cluster``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-None.
-
-Example Response
-~~~~~~~~~~~~~~~~
-
-::
-
- HTTP/1.1 200
- Content-Type: application/json
-
- {
- "domain_root": ".rgw",
- "control_pool": ".rgw.control",
- "gc_pool": ".rgw.gc",
- "log_pool": ".log",
- "intent_log_pool": ".intent-log",
- "usage_log_pool": ".usage",
- "user_keys_pool": ".users",
- "user_email_pool": ".users.email",
- "user_swift_pool": ".users.swift",
- "user_uid_pool ": ".users.uid"
- }
-
-
-
-Add Placement Pool
-==================
-
-Make a pool available for data placement.
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/pool?format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``pool``
-
-:Description: The pool to be made available for data placement.
-:Type: String
-:Example: ``foo_pool``
-:Required: Yes
-
-``create``
-
-:Description: Creates the data pool if it does not exist.
-:Type: Boolean
-:Example: False [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Remove Placement Pool
-=====================
-
-Make a pool unavailable for data placement.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/pool?format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``pool``
-
-:Description: The existing pool to be made available for data placement.
-:Type: String
-:Example: ``foo_pool``
-:Required: Yes
-
-``destroy``
-
-:Description: Destroys the pool after removing it from the active set.
-:Type: Boolean
-:Example: False [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-List Available Data Placement Pools
-===================================
-
-List current pools available for data placement.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/pool?format=json HTTP/1.1
- Host {fqdn}
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, returns a list of pools available for data placement.
-
-``pools``
-
-:Description: Contains currently available pools for data placement.
-:Type: Container
-
-
-
-List Expired Garbage Collection Items
-=====================================
-
-List objects scheduled for garbage collection.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/garbage?format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-None.
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If expired garbage collection items exist, a list of such objects
-will be returned.
-
-``garbage``
-
-:Description: Expired garbage collection items.
-:Type: Container
-
-``object``
-
-:Description: A container garbage collection object information.
-:Type: Container
-:Parent: ``garbage``
-
-``name``
-
-:Description: The name of the object.
-:Type: String
-:Parent: ``object``
-
-``expired``
-
-:Description: The date at which the object expired.
-:Type: String
-:Parent: ``object``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Manually Processes Garbage Collection Items
-===========================================
-
-List objects scheduled for garbage collection.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/garbage?format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-None.
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If expired garbage collection items exist, a list of removed objects
-will be returned.
-
-``garbage``
-
-:Description: Expired garbage collection items.
-:Type: Container
-
-``object``
-
-:Description: A container garbage collection object information.
-:Type: Container
-:Parent: ``garbage``
-
-``name``
-
-:Description: The name of the object.
-:Type: String
-:Parent: ``object``
-
-``expired``
-
-:Description: The date at which the object expired.
-:Type: String
-:Parent: ``object``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Show Log Objects
-================
-
-Show log objects
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/log?format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``object``
-
-:Description: The log object to return.
-:Type: String:
-:Example: ``2012-10-11-09-4165.2-foo_bucket``
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If no object is specified, returns the full list of log objects.
-
-``log-objects``
-
-:Description: A list of log objects.
-:Type: Container
-
-``object``
-
-:Description: The name of the log object.
-:Type: String
-
-``log``
-
-:Description: The contents of the log object.
-:Type: Container
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-None.
-
-Standard Error Responses
-========================
-
-``AccessDenied``
-
-:Description: Access denied.
-:Code: 403 Forbidden
-
-``InternalError``
-
-:Description: Internal server error.
-:Code: 500 Internal Server Error
-
-``NoSuchUser``
-
-:Description: User does not exist.
-:Code: 404 Not Found
-
-``NoSuchBucket``
-
-:Description: Bucket does not exist.
-:Code: 404 Not Found
-
-``NoSuchKey``
-
-:Description: No such access key.
-:Code: 404 Not Found
diff --git a/src/ceph/doc/dev/radosgw/index.rst b/src/ceph/doc/dev/radosgw/index.rst
deleted file mode 100644
index 5f77609..0000000
--- a/src/ceph/doc/dev/radosgw/index.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-=======================================
- RADOS Gateway developer documentation
-=======================================
-
-.. rubric:: Contents
-
-.. toctree::
- :maxdepth: 1
-
-
- usage
- Admin Ops Nonimplemented <admin/adminops_nonimplemented>
- s3_compliance
diff --git a/src/ceph/doc/dev/radosgw/s3_compliance.rst b/src/ceph/doc/dev/radosgw/s3_compliance.rst
deleted file mode 100644
index b6b0d85..0000000
--- a/src/ceph/doc/dev/radosgw/s3_compliance.rst
+++ /dev/null
@@ -1,304 +0,0 @@
-===============================
-Rados Gateway S3 API Compliance
-===============================
-
-.. warning::
- This document is a draft, it might not be accurate
-
-----------------------
-Naming code reference
-----------------------
-
-Here comes a BNF definition on how to name a feature in the code for referencing purpose : ::
-
- name ::= request_type "_" ( header | operation ) ( "_" header_option )?
-
- request_type ::= "req" | "res"
-
- header ::= string
-
- operation ::= method resource
-
- method ::= "GET" | "PUT" | "POST" | "DELETE" | "OPTIONS" | "HEAD"
-
- resource ::= string
-
- header_option ::= string
-
-----------------------
-Common Request Headers
-----------------------
-
-S3 Documentation reference : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
-
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Header | Supported? | Code Links | Tests links |
-+======================+============+=========================================================================================================+=============+
-| Authorization | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1962 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L2051 | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Content-Length | Yes | | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Content-Type | Yes | | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Content-MD5 | Yes | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1249 | |
-| | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1306 | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Date | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_auth_s3.cc#L164 | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Expect | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest.cc#L1227 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L802 | |
-| | | https://github.com/ceph/ceph/blob/76040d90f7eb9f9921a3b8dcd0f821ac2cd9c492/src/rgw/rgw_main.cc#L372 | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Host | ? | | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-date | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_auth_s3.cc#L169 | |
-| | | should take precedence over DATE as mentioned here -> | |
-| | | http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-security-token | No | | |
-+----------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-
------------------------
-Common Response Headers
------------------------
-
-S3 Documentation reference : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonResponseHeaders.html
-
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Header | Supported? | Code Links | Tests links |
-+=====================+============+=========================================================================================================+=============+
-| Content-Length | Yes | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Connection | ? | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Date | ? | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| ETag | Yes | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1312 | |
-| | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1436 | |
-| | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L2222 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L118 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L268 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L516 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1336 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1486 | |
-| | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1548 | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Server | No | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-delete-marker | No | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-id-2 | No | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-request-id | Yes | https://github.com/ceph/ceph/commit/b711e3124f8f73c17ebd19b38807a1b77f201e44 | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| x-amz-version-id | No | | |
-+---------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-
--------------------------
-Operations on the Service
--------------------------
-
-S3 Documentation reference : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTServiceOps.html
-
-+------+-----------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Type | Operation | Supported? | Code links | Tests links |
-+======+===========+============+=========================================================================================================+=============+
-| GET | Service | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L2094 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1676 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L185 | |
-+------+-----------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-
----------------------
-Operations on Buckets
----------------------
-
-S3 Documentation reference : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketOps.html
-
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| Type | Operation | Supported? | Code links | Tests links |
-+========+========================+============+============================================================================================================+=============+
-| DELETE | Bucket | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1728 | |
-| | | | https://github.com/ceph/ceph/blob/e91042171939b6bf82a56a1015c5cae792d228ad/src/rgw/rgw_rest_bucket.cc#L250 | |
-| | | | https://github.com/ceph/ceph/blob/e91042171939b6bf82a56a1015c5cae792d228ad/src/rgw/rgw_rest_bucket.cc#L212 | |
-| | | | https://github.com/ceph/ceph/blob/25948319c4d256c4aeb0137eb88947e54d14cc79/src/rgw/rgw_bucket.cc#L856 | |
-| | | | https://github.com/ceph/ceph/blob/25948319c4d256c4aeb0137eb88947e54d14cc79/src/rgw/rgw_bucket.cc#L513 | |
-| | | | https://github.com/ceph/ceph/blob/25948319c4d256c4aeb0137eb88947e54d14cc79/src/rgw/rgw_bucket.cc#L286 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L461 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Bucket cors | ? | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1731 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1916 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Bucket lifecycle | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Bucket policy | ? | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Bucket tagging | ? | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Bucket website | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1676 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L185 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket acl | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1697 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1728 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1344 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket cors | ? | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1698 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1845 | |
-| | | | https://github.com/ceph/ceph/blob/76040d90f7eb9f9921a3b8dcd0f821ac2cd9c492/src/rgw/rgw_main.cc#L345 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket lifecycle | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket location | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket policy | ? | https://github.com/ceph/ceph/blob/e91042171939b6bf82a56a1015c5cae792d228ad/src/rgw/rgw_rest_bucket.cc#L232 | |
-| | | | https://github.com/ceph/ceph/blob/e91042171939b6bf82a56a1015c5cae792d228ad/src/rgw/rgw_rest_bucket.cc#L58 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket logging | ? | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1695 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L287 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket notification | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket tagging | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket Object versions | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket requestPayment | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket versionning | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | Bucket website | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| GET | List Multipart uploads | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1701 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest.cc#L877 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L2355 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L2363 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| HEAD | Bucket | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1713 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1689 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L826 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L834 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1725 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L382 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L437 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L901 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L945 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket acl | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1721 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1354 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1373 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1739 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1753 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket cors | ? | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1723 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1398 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1858 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1866 | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket lifecycle | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket policy | ? | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket logging | ? | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket notification | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket tagging | ? | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket requestPayment | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket versionning | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Bucket website | No | | |
-+--------+------------------------+------------+------------------------------------------------------------------------------------------------------------+-------------+
-
----------------------
-Operations on Objects
----------------------
-
-S3 Documentation reference : http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html
-
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| Type | Operation | Supported? | Code links | Tests links |
-+=========+===========================+============+=========================================================================================================+=============+
-| DELETE | Object | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1796 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1516 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1524 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| DELETE | Multiple objects | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1739 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1616 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1626 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1641 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1667 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1516 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1524 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| GET | Object | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1767 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L71 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L397 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L424 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L497 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L562 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L626 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L641 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L706 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| GET | Object acl | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| GET | Object torrent | No | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| HEAD | Object | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1777 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L71 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L397 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L424 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L497 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L562 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L626 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L641 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L706 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| OPTIONS | Object | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1814 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1418 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1951 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1968 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1993 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| POST | Object | Yes | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1742 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L631 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L694 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L700 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L707 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L759 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L771 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L781 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L795 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L929 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1037 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1059 | |
-| | | | https://github.com/ceph/ceph/blob/8a2eb18494005aa968b71f18121da8ebab48e950/src/rgw/rgw_rest_s3.cc#L1134 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1344 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1360 | |
-| | | | https://github.com/ceph/ceph/blob/b139a7cd34b4e203ab164ada7a8fa590b50d8b13/src/rgw/rgw_op.cc#L1365 | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| POST | Object restore | ? | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Object | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Object acl | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Object copy | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Initate multipart upload | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Upload Part | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Upload Part copy | ? | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Complete multipart upload | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | Abort multipart upload | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
-| PUT | List parts | Yes | | |
-+---------+---------------------------+------------+---------------------------------------------------------------------------------------------------------+-------------+
diff --git a/src/ceph/doc/dev/radosgw/usage.rst b/src/ceph/doc/dev/radosgw/usage.rst
deleted file mode 100644
index 6c856fc..0000000
--- a/src/ceph/doc/dev/radosgw/usage.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-============================
-Usage Design Overview
-============================
-
-
-
-
-Testing
--------
-
-The current usage testing does the following:
-
-Following these operations:
-
- - Create a few buckets
- - Remove buckets
- - Create a bucket
- - Put object
- - Remove object
-
-Test:
-
-1. Verify that 'usage show' with delete_obj category isn't empty after no more than 45 seconds (wait to flush)
-2. Check the following
-
- - 'usage show'
-
- - does not error out
- - num of entries > 0
- - num of summary entries > 0
- - for every entry in categories check successful_ops > 0
- - check that correct uid in the user summary
-
-
- - 'usage show' with specified uid (--uid=<uid>')
-
- - num of entries > 0
- - num of summary entries > 0
- - for every entry in categories check successful_ops > 0
- - check that correct uid in the user summary
-
- - 'usage show' with specified uid and specified categories (create_bucket,
- put_obj, delete_obj, delete_bucket)
-
- - for each category:
- - does not error out
- - num of entries > 0
- - user in user summary is correct user
- - length of categories entries under user summary is exactly 1
- - name of category under user summary is correct name
- - successful ops for the category > 0
-
- - 'usage trim' with specified uid
- - does not error
- - check following 'usage show' shows complete usage info cleared for user
-
-
-Additional required testing:
-
- - test multiple users
-
- Do the same as in (2), with multiple users being set up.
-
- - test with multiple buckets (> 1000 * factor, e.g., 2000)
-
- Create multiple buckets, put objects in each. Account the number written data and verify
- that usage reports show the expected number (up to a certain delta).
-
- - verify usage show with a date/time range
-
- Take timestamp of the beginning of the test, and the end of the test. Round timestamps to the
- nearest hour (downward from start of test, upward from the end of test). List data starting
- at end-time, make sure that no data is being shown. List data ending at start-time, make sure
- that no data is shown. List data beginning at start-time, make sure that correct data is
- displayed. List data ending end end-time, make sure that correct data is displayed. List
- data beginning in begin-time, ending in end-time, make sure that correct data is displayed.
-
- - verify usage trim with a date/time range
-
- Take timestamp of the beginning of the test, and the end of the test. Round timestamps to the
- nearest hour (downward from start of test, upward from the end of test). Trim data starting
- at end-time, make sure that no data has been trimmed. Trim data ending at start-time, make sure
- that no data has been trimmed. Trim data beginning in begin-time, ending in end-time, make sure
- that all data has been trimmed.
diff --git a/src/ceph/doc/dev/rbd-diff.rst b/src/ceph/doc/dev/rbd-diff.rst
deleted file mode 100644
index 083c131..0000000
--- a/src/ceph/doc/dev/rbd-diff.rst
+++ /dev/null
@@ -1,146 +0,0 @@
-RBD Incremental Backup
-======================
-
-This is a simple streaming file format for representing a diff between
-two snapshots (or a snapshot and the head) of an RBD image.
-
-Header
-~~~~~~
-
-"rbd diff v1\\n"
-
-Metadata records
-~~~~~~~~~~~~~~~~
-
-Every record has a one byte "tag" that identifies the record type,
-followed by some other data.
-
-Metadata records come in the first part of the image. Order is not
-important, as long as all the metadata records come before the data
-records.
-
-From snap
----------
-
-- u8: 'f'
-- le32: snap name length
-- snap name
-
-To snap
--------
-
-- u8: 't'
-- le32: snap name length
-- snap name
-
-Size
-----
-
-- u8: 's'
-- le64: (ending) image size
-
-Data Records
-~~~~~~~~~~~~
-
-These records come in the second part of the sequence.
-
-Updated data
-------------
-
-- u8: 'w'
-- le64: offset
-- le64: length
-- length bytes of actual data
-
-Zero data
----------
-
-- u8: 'z'
-- le64: offset
-- le64: length
-
-
-Final Record
-~~~~~~~~~~~~
-
-End
----
-
-- u8: 'e'
-
-
-Header
-~~~~~~
-
-"rbd diff v2\\n"
-
-Metadata records
-~~~~~~~~~~~~~~~~
-
-Every record has a one byte "tag" that identifies the record type,
-followed by length of data, and then some other data.
-
-Metadata records come in the first part of the image. Order is not
-important, as long as all the metadata records come before the data
-records.
-
-In v2, we have the following metadata in each section:
-(1 Bytes) tag.
-(8 Bytes) length.
-(n Bytes) data.
-
-In this way, we can skip the unrecognized tag.
-
-From snap
----------
-
-- u8: 'f'
-- le64: length of appending data (4 + length)
-- le32: snap name length
-- snap name
-
-To snap
--------
-
-- u8: 't'
-- le64: length of appending data (4 + length)
-- le32: snap name length
-- snap name
-
-Size
-----
-
-- u8: 's'
-- le64: length of appending data (8)
-- le64: (ending) image size
-
-Data Records
-~~~~~~~~~~~~
-
-These records come in the second part of the sequence.
-
-Updated data
-------------
-
-- u8: 'w'
-- le64: length of appending data (8 + 8 + length)
-- le64: offset
-- le64: length
-- length bytes of actual data
-
-Zero data
----------
-
-- u8: 'z'
-- le64: length of appending data (8 + 8)
-- le64: offset
-- le64: length
-
-
-Final Record
-~~~~~~~~~~~~
-
-End
----
-
-- u8: 'e'
diff --git a/src/ceph/doc/dev/rbd-export.rst b/src/ceph/doc/dev/rbd-export.rst
deleted file mode 100644
index 0d34d61..0000000
--- a/src/ceph/doc/dev/rbd-export.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-RBD Export & Import
-===================
-
-This is a file format of an RBD image or snapshot. It's a sparse format
-for the full image. There are three recording sections in the file.
-
-(1) Header.
-(2) Metadata.
-(3) Diffs.
-
-Header
-~~~~~~
-
-"rbd image v2\\n"
-
-Metadata records
-~~~~~~~~~~~~~~~~
-
-Every record has a one byte "tag" that identifies the record type,
-followed by length of data, and then some other data.
-
-Metadata records come in the first part of the image. Order is not
-important, as long as all the metadata records come before the data
-records.
-
-In v2, we have the following metadata in each section:
-(1 Bytes) tag.
-(8 Bytes) length.
-(n Bytes) data.
-
-In this way, we can skip the unrecognized tag.
-
-Image order
------------
-
-- u8: 'O'
-- le64: length of appending data (8)
-- le64: image order
-
-Image format
-------------
-
-- u8: 'F'
-- le64: length of appending data (8)
-- le64: image format
-
-Image Features
---------------
-
-- u8: 'T'
-- le64: length of appending data (8)
-- le64: image features
-
-Image Stripe unit
------------------
-
-- u8: 'U'
-- le64: length of appending data (8)
-- le64: image striping unit
-
-Image Stripe count
-------------------
-
-- u8: 'C'
-- le64: length of appending data (8)
-- le64: image striping count
-
-Final Record
-~~~~~~~~~~~~
-
-End
----
-
-- u8: 'E'
-
-
-Diffs records
-~~~~~~~~~~~~~~~~~
-Record the all snapshots and the HEAD in this section.
-
-- le64: number of diffs
-- Diffs ...
-
-Detail please refer to rbd-diff.rst
diff --git a/src/ceph/doc/dev/rbd-layering.rst b/src/ceph/doc/dev/rbd-layering.rst
deleted file mode 100644
index e6e224c..0000000
--- a/src/ceph/doc/dev/rbd-layering.rst
+++ /dev/null
@@ -1,281 +0,0 @@
-============
-RBD Layering
-============
-
-RBD layering refers to the creation of copy-on-write clones of block
-devices. This allows for fast image creation, for example to clone a
-golden master image of a virtual machine into a new instance. To
-simplify the semantics, you can only create a clone of a snapshot -
-snapshots are always read-only, so the rest of the image is
-unaffected, and there's no possibility of writing to them
-accidentally.
-
-From a user's perspective, a clone is just like any other rbd image.
-You can take snapshots of them, read/write them, resize them, etc.
-There are no restrictions on clones from a user's viewpoint.
-
-Note: the terms `child` and `parent` below mean an rbd image created
-by cloning, and the rbd image snapshot a child was cloned from.
-
-Command line interface
-----------------------
-
-Before cloning a snapshot, you must mark it as protected, to prevent
-it from being deleted while child images refer to it:
-::
-
- $ rbd snap protect pool/image@snap
-
-Then you can perform the clone:
-::
-
- $ rbd clone [--parent] pool/parent@snap [--image] pool2/child1
-
-You can create a clone with different object sizes from the parent:
-::
-
- $ rbd clone --order 25 pool/parent@snap pool2/child2
-
-To delete the parent, you must first mark it unprotected, which checks
-that there are no children left:
-::
-
- $ rbd snap unprotect pool/image@snap
- Cannot unprotect: Still in use by pool2/image2
- $ rbd children pool/image@snap
- pool2/child1
- pool2/child2
- $ rbd flatten pool2/child1
- $ rbd rm pool2/child2
- $ rbd snap rm pool/image@snap
- Cannot remove a protected snapshot: pool/image@snap
- $ rbd snap unprotect pool/image@snap
-
-Then the snapshot can be deleted like normal:
-::
-
- $ rbd snap rm pool/image@snap
-
-Implementation
---------------
-
-Data Flow
-^^^^^^^^^
-
-In the initial implementation, called 'trivial layering', there will
-be no tracking of which objects exist in a clone. A read that hits a
-non-existent object will attempt to read from the parent snapshot, and
-this will continue recursively until an object exists or an image with
-no parent is found. This is done through the normal read path from
-the parent, so differing object sizes between parents and children
-do not matter.
-
-Before a write to an object is performed, the object is checked for
-existence. If it doesn't exist, a copy-up operation is performed,
-which means reading the relevant range of data from the parent
-snapshot and writing it (plus the original write) to the child
-image. To prevent races with multiple writes trying to copy-up the
-same object, this copy-up operation will include an atomic create. If
-the atomic create fails, the original write is done instead. This
-copy-up operation is implemented as a class method so that extra
-metadata can be stored by it in the future. In trivial layering, the
-copy-up operation copies the entire range needed to the child object
-(that is, the full size of the child object). A future optimization
-could make this copy-up more fine-grained.
-
-Another future optimization could be storing a bitmap of which objects
-actually exist in a child. This would obviate the check for existence
-before each write, and let reads go directly to the parent if needed.
-
-These optimizations are discussed in:
-
-http://marc.info/?l=ceph-devel&m=129867273303846
-
-Parent/Child relationships
-^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Children store a reference to their parent in their header, as a tuple
-of (pool id, image id, snapshot id). This is enough information to
-open the parent and read from it.
-
-In addition to knowing which parent a given image has, we want to be
-able to tell if a protected snapshot still has children. This is
-accomplished with a new per-pool object, `rbd_children`, which maps
-(parent pool id, parent image id, parent snapshot id) to a list of
-child image ids. This is stored in the same pool as the child image
-because the client creating a clone already has read/write access to
-everything in this pool, but may not have write access to the parent's
-pool. This lets a client with read-only access to one pool clone a
-snapshot from that pool into a pool they have full access to. It
-increases the cost of unprotecting an image, since this needs to check
-for children in every pool, but this is a rare operation. It would
-likely only be done before removing old images, which is already much
-more expensive because it involves deleting every data object in the
-image.
-
-Protection
-^^^^^^^^^^
-
-Internally, protection_state is a field in the header object that
-can be in three states. "protected", "unprotected", and
-"unprotecting". The first two are set as the result of "rbd
-protect/unprotect". The "unprotecting" state is set while the "rbd
-unprotect" command checks for any child images. Only snapshots in the
-"protected" state may be cloned, so the "unprotected" state prevents
-a race like:
-
-1. A: walk through all pools, look for clones, find none
-2. B: create a clone
-3. A: unprotect parent
-4. A: rbd snap rm pool/parent@snap
-
-Resizing
-^^^^^^^^
-
-Resizing an rbd image is like truncating a sparse file. New space is
-treated as zeroes, and shrinking an rbd image deletes the contents
-beyond the old bounds. This means that if you have a 10G image full of
-data, and you resize it down to 5G and then up to 10G again, the last
-5G is treated as zeroes (and any objects that held that data were
-removed when the image was shrunk).
-
-Layering complicates this because the absence of an object no longer
-implies it should be treated as zeroes - if the object is part of a
-clone, it may mean that some data needs to be read from the parent.
-
-To preserve the resizing behavior for clones, we need to keep track of
-which objects could be stored in the parent. We can track this as the
-amount of overlap the child has with the parent, since resizing only
-changes the end of an image. When a child is created, its overlap
-is the size of the parent snapshot. On each subsequent resize, the
-overlap is `min(overlap, new_size)`. That is, shrinking the image
-may shrinks the overlap, but increasing the image's size does not
-change the overlap.
-
-Objects that do not exist past the overlap are treated as zeroes.
-Objects that do not exist before that point fall back to reading
-from the parent.
-
-Since this overlap changes over time, we store it as part of the
-metadata for a snapshot as well.
-
-Renaming
-^^^^^^^^
-
-Currently the rbd header object (that stores all the metadata about an
-image) is named after the name of the image. This makes renaming
-disrupt clients who have the image open (such as children reading from
-a parent). To avoid this, we can name the header object by the
-id of the image, which does not change. That is, the name of the
-header object could be `rbd_header.$id`, where $id is a unique id for
-the image in the pool.
-
-When a client opens an image, all it knows is the name. There is
-already a per-pool `rbd_directory` object that maps image names to
-ids, but if we relied on it to get the id, we could not open any
-images in that pool if that single object was unavailable. To avoid
-this dependency, we can store the id of an image in an object called
-`rbd_id.$image_name`, where $image_name is the name of the image. The
-per-pool `rbd_directory` object is still useful for listing all images
-in a pool, however.
-
-Header changes
---------------
-
-The header needs a few new fields:
-
-* int64_t parent_pool_id
-* string parent_image_id
-* uint64_t parent_snap_id
-* uint64_t overlap (how much of the image may be referring to the parent)
-
-These are stored in a "parent" key, which is only present if the image
-has a parent.
-
-cls_rbd
-^^^^^^^
-
-Some new methods are needed:
-::
-
- /***************** methods on the rbd header *********************/
- /**
- * Sets the parent and overlap keys.
- * Fails if any of these keys exist, since the image already
- * had a parent.
- */
- set_parent(uint64_t pool_id, string image_id, uint64_t snap_id)
-
- /**
- * returns the parent pool id, image id, snap id, and overlap, or -ENOENT
- * if parent_pool_id does not exist or is -1
- */
- get_parent(uint64_t snapid)
-
- /**
- * Removes the parent key
- */
- remove_parent() // after all parent data is copied to the child
-
- /*************** methods on the rbd_children object *****************/
-
- add_child(uint64_t parent_pool_id, string parent_image_id,
- uint64_t parent_snap_id, string image_id);
- remove_child(uint64_t parent_pool_id, string parent_image_id,
- uint64_t parent_snap_id, string image_id);
- /**
- * List ids of a given parent
- */
- get_children(uint64_t parent_pool_id, string parent_image_id,
- uint64_t parent_snap_id, uint64_t max_return,
- string start);
- /**
- * list parent
- */
- get_parents(uint64_t max_return, uint64_t start_pool_id,
- string start_image_id, string start_snap_id);
-
-
- /************ methods on the rbd_id.$image_name object **************/
-
- set_id(string id)
- get_id()
-
- /************** methods on the rbd_directory object *****************/
-
- dir_get_id(string name);
- dir_get_name(string id);
- dir_list(string start_after, uint64_t max_return);
- dir_add_image(string name, string id);
- dir_remove_image(string name, string id);
- dir_rename_image(string src, string dest, string id);
-
-Two existing methods will change if the image supports
-layering:
-::
-
- snapshot_add - stores current overlap and has_parent with
- other snapshot metadata (images that don't have
- layering enabled aren't affected)
-
- set_size - will adjust the parent overlap down as needed.
-
-librbd
-^^^^^^
-
-Opening a child image opens its parent (and this will continue
-recursively as needed). This means that an ImageCtx will contain a
-pointer to the parent image context. Differing object sizes won't
-matter, since reading from the parent will go through the parent
-image context.
-
-Discard will need to change for layered images so that it only
-truncates objects, and does not remove them. If we removed objects, we
-could not tell if we needed to read them from the parent.
-
-A new clone method will be added, which takes the same arguments as
-create except size (size of the parent image is used).
-
-Instead of expanding the rbd_info struct, we will break the metadata
-retrieval into several API calls. Right now, the only users of
-rbd_stat() other than 'rbd info' only use it to retrieve image size.
diff --git a/src/ceph/doc/dev/release-process.rst b/src/ceph/doc/dev/release-process.rst
deleted file mode 100644
index f7e853b..0000000
--- a/src/ceph/doc/dev/release-process.rst
+++ /dev/null
@@ -1,173 +0,0 @@
-======================
- Ceph Release Process
-======================
-
-1. Build environment
-====================
-
-There are multiple build environments, debian based packages are built via pbuilder for multiple distributions. The build hosts are listed in the ``deb_hosts`` file, and the list of distributions are in ``deb_dist``. All distributions are build on each of the build hosts. Currently there is 1 64 bit and 1 32 bit build host.
-
-The RPM based packages are built natively, so one distribution per build host. The list of hosts is found in ``rpm_hosts``.
-
-Prior to building, it's necessary to update the pbuilder seed tarballs::
-
- ./update_all_pbuilders.sh
-
-2. Setup keyring for signing packages
-=====================================
-
-::
-
- export GNUPGHOME=<path to keyring dir>
-
- # verify it's accessible
- gpg --list-keys
-
-The release key should be present::
-
- pub 4096R/17ED316D 2012-05-20
- uid Ceph Release Key <sage@newdream.net>
-
-
-3. Set up build area
-====================
-
-Clone the ceph and ceph-build source trees::
-
- git clone http://github.com/ceph/ceph.git
- git clone http://github.com/ceph/ceph-build.git
-
-In the ceph source directory, checkout next branch (for point releases use the {codename} branch)::
-
- git checkout next
-
-Checkout the submodules::
-
- git submodule update --force --init --recursive
-
-4. Update Build version numbers
-================================
-
-Substitute the ceph release number where indicated below by the string ``0.xx``.
-
-Edit configure.ac and update the version number. Example diff::
-
- -AC_INIT([ceph], [0.54], [ceph-devel@vger.kernel.org])
- +AC_INIT([ceph], [0.55], [ceph-devel@vger.kernel.org])
-
-Update the version number in the debian change log::
-
- DEBEMAIL user@host dch -v 0.xx-1
-
-Commit the changes::
-
- git commit -a
-
-Tag the release::
-
- ../ceph-build/tag-release v0.xx
-
-
-5. Create Makefiles
-===================
-
-The actual configure options used to build packages are in the
-``ceph.spec.in`` and ``debian/rules`` files. At this point we just
-need to create a Makefile.::
-
- ./do_autogen.sh
-
-
-6. Run the release scripts
-==========================
-
-This creates tarballs and copies them, with other needed files to
-the build hosts listed in deb_hosts and rpm_hosts, runs a local build
-script, then rsyncs the results back to the specified release directory.::
-
- ../ceph-build/do_release.sh /tmp/release
-
-
-7. Create RPM Repo
-==================
-
-Copy the rpms to the destination repo::
-
- mkdir /tmp/rpm-repo
- ../ceph-build/push_to_rpm_repo.sh /tmp/release /tmp/rpm-repo 0.xx
-
-Next add any additional rpms to the repo that are needed such as leveldb and
-and ceph-deploy. See RPM Backports section
-
-Finally, sign the rpms and build the repo indexes::
-
- ../ceph-build/sign_and_index_rpm_repo.sh /tmp/release /tmp/rpm-repo 0.xx
-
-
-8. Create Debian repo
-=====================
-
-The key-id used below is the id of the ceph release key from step 2::
-
- mkdir /tmp/debian-repo
- ../ceph-build/gen_reprepro_conf.sh /tmp/debian-repo key-id
- ../ceph-build/push_to_deb_repo.sh /tmp/release /tmp/debian-repo 0.xx main
-
-
-Next add any addition debian packages that are needed such as leveldb and
-ceph-deploy. See the Debian Backports section below.
-
-Debian packages are signed when added to the repo, so no further action is
-needed.
-
-
-9. Push repos to ceph.org
-==========================
-
-For a development release::
-
- rcp ceph-0.xx.tar.bz2 ceph-0.xx.tar.gz \
- ceph_site@ceph.com:ceph.com/downloads/.
- rsync -av /tmp/rpm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-testing
- rsync -av /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-testing
-
-For a stable release, replace {CODENAME} with the release codename (e.g., ``argonaut`` or ``bobtail``)::
-
- rcp ceph-0.xx.tar.bz2 \
- ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx.tar.bz2
- rcp ceph-0.xx.tar.gz \
- ceph_site@ceph.com:ceph.com/downloads/ceph-0.xx.tar.gz
- rsync -av /tmp/rpm-repo/0.xx/ ceph_site@ceph.com:ceph.com/rpm-{CODENAME}
- rsync -auv /tmp/debian-repo/ ceph_site@ceph.com:ceph.com/debian-{CODENAME}
-
-10. Update Git
-==============
-
-Point release
--------------
-
-For point releases just push the version number update to the
-branch and the new tag::
-
- git push origin {codename}
- git push origin v0.xx
-
-Development and Stable releases
--------------------------------
-
-For a development release, update tags for ``ceph.git``::
-
- git push origin v0.xx
- git push origin HEAD:last
- git checkout master
- git merge next
- git push origin master
- git push origin HEAD:next
-
-Similarly, for a development release, for both ``teuthology.git`` and ``ceph-qa-suite.git``::
-
- git checkout master
- git reset --hard origin/master
- git branch -f last origin/next
- git push -f origin last
- git push -f origin master:next
diff --git a/src/ceph/doc/dev/repo-access.rst b/src/ceph/doc/dev/repo-access.rst
deleted file mode 100644
index 0196b0a..0000000
--- a/src/ceph/doc/dev/repo-access.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-Notes on Ceph repositories
-==========================
-
-Special branches
-----------------
-
-* ``master``: current tip (integration branch)
-* ``next``: pending release (feature frozen, bugfixes only)
-* ``last``: last/previous release
-* ``dumpling``, ``cuttlefish``, ``bobtail``, ``argonaut``, etc.: stable release branches
-* ``dumpling-next``: backports for stable release, pending testing
-
-Rules
------
-
-The source repos are all on github.
-
-* Any branch pushed to ceph.git will kick off builds that will either
- run unit tests or generate packages for gitbuilder.ceph.com. Try
- not to generate unnecessary load. For private, unreviewed work,
- only push to branches named ``wip-*``. This avoids colliding with
- any special branches.
-
-* Nothing should every reach a special branch unless it has been
- reviewed.
-
-* Preferred means of review is via github pull requests to capture any
- review discussion.
-
-* For multi-patch series, the pull request can be merged via github,
- and a Reviewed-by: ... line added to the merge commit.
-
-* For single- (or few-) patch merges, it is preferable to add the
- Reviewed-by: directly to the commit so that it is also visible when
- the patch is cherry-picked for backports.
-
-* All backports should use ``git cherry-pick -x`` to capture which
- commit they are cherry-picking from.
diff --git a/src/ceph/doc/dev/sepia.rst b/src/ceph/doc/dev/sepia.rst
deleted file mode 100644
index 6f83b2c..0000000
--- a/src/ceph/doc/dev/sepia.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-Sepia community test lab
-========================
-
-The Ceph community maintains a test lab that is open to active
-contributors to the Ceph project. Please see the `Sepia repository`_ for more
-information.
-
-.. _Sepia repository: https://github.com/ceph/sepia
-
diff --git a/src/ceph/doc/dev/session_authentication.rst b/src/ceph/doc/dev/session_authentication.rst
deleted file mode 100644
index e8a5059..0000000
--- a/src/ceph/doc/dev/session_authentication.rst
+++ /dev/null
@@ -1,160 +0,0 @@
-==============================================
-Session Authentication for the Cephx Protocol
-==============================================
-Peter Reiher
-7/30/12
-
-The original Cephx protocol authenticated the client to the authenticator and set up a session
-key used to authenticate the client to the server it needs to talk to. It did not, however,
-authenticate the ongoing messages between the client and server. Based on the fact that they
-share a secret key, these ongoing session messages can be easily authenticated by using the
-key to sign the messages.
-
-This document describes changes to the code that allow such ongoing session authentication.
-The changes allow for future changes that permit other authentication protocols (and the
-existing null NONE and UNKNOWN protocols) to handle signatures, but the only protocol that
-actually does signatures, at the time of the writing, is the Cephx protocol.
-
-Introduction
--------------
-
-This code comes into play after the Cephx protocol has completed. At this point, the client and
-server share a secret key. This key will be used for authentication. For other protocols, there
-may or may not be such a key in place, and perhaps the actual procedures used to perform
-signing will be different, so the code is written to be general.
-
-The "session" here is represented by an established pipe. For such pipes, there should be a
-``session\_security`` structure attached to the pipe. Whenever a message is to be sent on the
-pipe, code that handles the signature for this kind of session security will be called. On the
-other end of the pipe, code that checks this kind of session security's message signatures will
-be called. Messages that fail the signature check will not be processed further. That implies
-that the sender had better be in agreement with the receiver on the session security being used,
-since otherwise messages will be uniformly dropped between them.
-
-The code is also prepared to handle encryption and decryption of session messages, which would
-add secrecy to the integrity provided by the signatures. No protocol currently implemented
-encrypts the ongoing session messages, though.
-
-For this functionality to work, several steps are required. First, the sender and receiver must have
-a successful run of the cephx protocol to establish a shared key. They must store that key somewhere
-that the pipe can get at later, to permit messages to be signed with it. Sent messages must be
-signed, and received messages must have their signatures checked.
-
-The signature could be computed in a variety of ways, but currently its size is limited to 64 bits.
-A message's signature is placed in its footer, in a field called ``sig``.
-
-The signature code in Cephx can be turned on and off at runtime, using a Ceph boolean option called
-``cephx\_sign\_messages``. It is currently set to false, by default, so no messages will be signed. It
-must be changed to true to cause signatures to be calculated and checked.
-
-Storing the Key
----------------
-
-The key is needed to create signatures on the sending end and check signatures on the receiving end.
-In the future, if asymmetric crypto is an option, it's possible that two keys (a private one for
-this end of the pipe and a public one for the other end) would need to be stored. At this time,
-messages going in both directions will be signed with the same key, so only that key needs to be
-saved.
-
-The key is saved when the pipe is established. On the client side, this happens in ``connect()``,
-which is located in ``msg/Pipe.cc``. The key is obtained from a run of the Cephx protocol,
-which results in a successfully checked authorizer structure. If there is such an authorizer
-available, the code calls ``get\_auth\_session\_handler()`` to create a new authentication session handler
-and stores it in the pipe data structure. On the server side, a similar thing is done in
-``accept()`` after the authorizer provided by the client has been verified.
-
-Once these things are done on either end of the connection, session authentication can start.
-
-These routines (``connect()`` and ``accept()``) are also used to handle situations where a new
-session is being set up. At this stage, no authorizer has been created yet, so there's no key.
-Special cases in the code that calls the signature code skip these calls when the
-``CEPH\_AUTH\_UNKNOWN`` protocol is in use. This protocol label is on the pre-authorizer
-messages in a session, indicating that negotiation on an authentication protocol is ongoing and
-thus signature is not possible. There will be a reliable authentication operation later in this
-session before anything sensitive should be passed, so this is not a security problem.
-
-Signing Messages
-----------------
-
-Messages are signed in the ``write\_message`` call located in ``msg/Pipe.cc``. The actual
-signature process is to encrypt the CRCs for the message using the shared key. Thus, we must
-defer signing until all CRCs have been computed. The header CRC is computed last, so we
-call ``sign\_message()`` as soon as we've calculated that CRC.
-
-``sign\_message()`` is a virtual function defined in ``auth/AuthSessionHandler.h``. Thus,
-a specific version of it must be written for each authentication protocol supported. Currently,
-only UNKNOWN, NONE and CEPHX are supported. So there is a separate version of ``sign\_message()`` in
-``auth/unknown/AuthUnknownSessionHandler.h``, ``auth/none/AuthNoneSessionHandler.h`` and
-``auth/cephx/CephxSessionHandler.cc``. The UNKNOWN and NONE versions simply return 0, indicating
-success.
-
-The CEPHX version is more extensive. It is found in ``auth/cephx/CephxSessionHandler.cc``.
-The first thing done is to determine if the run time option to handle signatures (see above) is on.
-If not, the Cephx version of ``sign\_message()`` simply returns success without actually calculating
-a signature or inserting it into the message.
-
-If the run time option is enabled, ``sign\_message()`` copies all of the message's CRCs (one from the
-header and three from the footer) into a buffer. It calls ``encode\_encrypt()`` on the buffer,
-using the key obtained from the pipe's ``session\_security`` structure. 64 bits of the encrypted
-result are put into the message footer's signature field and a footer flag is set to indicate that
-the message was signed. (This flag is a sanity check. It is not regarded as definitive
-evidence that the message was signed. The presence of a ``session\_security`` structure at the
-receiving end requires a signature regardless of the value of this flag.) If this all goes well,
-``sign\_message()`` returns 0. If there is a problem anywhere along the line and no signature
-was computed, it returns ``SESSION\_SIGNATURE\_FAILURE``.
-
-Checking Signatures
--------------------
-
-The signature is checked by a routine called ``check\_message\_signature()``. This is also a
-virtual function, defined in ``auth/AuthSessionHandler.h``. So again there are specific versions
-for supported authentication protocols, such as UNKNOWN, NONE and CEPHX. Again, the UNKNOWN and
-NONE versions are stored in ``auth/unknown/AuthUnknownSessionHandler.h`` and
-``auth/none/AuthNoneSessionHandler.h``, respectively, and again they simply return 0, indicating
-success.
-
-The CEPHX version of ``check\_message\_signature()`` performs a real signature check. This routine
-(stored in ``auth/cephx/CephxSessionHandler.cc``) exits with success if the run time option has
-disabled signatures. Otherwise, it takes the CRCs from the header and footer, encrypts the result,
-and compares it to the signature stored in the footer. Since an earlier routine has checked that
-the CRCs actually match the contents of the message, it is unnecessary to recompute the CRCs
-on the raw data in the message. The encryption is performed with the same ``encode\_encrypt()``
-routine used on the sending end, using the key stored in the local ``session\_security``
-data structure.
-
-If everything checks out, the CEPHX routine returns 0, indicating succcess. If there is a
-problem, the routine returns ``SESSION\_SIGNATURE\_FAILURE``.
-
-Adding New Session Authentication Methods
------------------------------------------
-
-For the purpose of session authentication only (not the basic authentication of client and
-server currently performed by the Cephx protocol), in addition to adding a new protocol, that
-protocol must have a ``sign\_message()`` routine and a ``check\_message\_signature`` routine.
-These routines will take a message pointer as a parameter and return 0 on success. The procedure
-used to sign and check will be specific to the new method, but probably there will be a
-``session\_security`` structure attached to the pipe that contains a cryptographic key. This
-structure will be either an ``AuthSessionHandler`` (found in ``auth/AuthSessionHandler.h``)
-or a structure derived from that type.
-
-Adding Encryption to Sessions
------------------------------
-
-The existing code is partially, but not fully, set up to allow sessions to have their packets
-encrypted. Part of adding encryption would be similar to adding a new authentication method.
-But one would also need to add calls to the encryption and decryption routines in ``write\_message()``
-and ``read\_message()``. These calls would probably go near where the current calls for
-authentication are made. You should consider whether you want to replace the existing calls
-with something more general that does whatever the chosen form of session security requires,
-rather than explicitly saying ``sign`` or ``encrypt``.
-
-Session Security Statistics
----------------------------
-
-The existing Cephx authentication code keeps statistics on how many messages were signed, how
-many message signature were checked, and how many checks succeeded and failed. It is prepared
-to keep similar statistics on encryption and decryption. These statistics can be accessed through
-the call ``printAuthSessionHandlerStats`` in ``auth/AuthSessionHandler.cc``.
-
-If new authentication or encryption methods are added, they should include code that keeps these
-statistics.
diff --git a/src/ceph/doc/dev/versions.rst b/src/ceph/doc/dev/versions.rst
deleted file mode 100644
index 34ed747..0000000
--- a/src/ceph/doc/dev/versions.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-==================
-Public OSD Version
-==================
-
-We maintain two versions on disk: an eversion_t pg_log.head and a
-version_t info.user_version. Each object is tagged with both the pg
-version and user_version it was last modified with. The PG version is
-modified by manipulating OpContext::at_version and then persisting it
-to the pg log as transactions, and is incremented in all the places it
-used to be. The user_version is modified by manipulating the new
-OpContext::user_at_version and is also persisted via the pg log
-transactions.
-user_at_version is modified only in PrimaryLogPG::prepare_transaction
-when the op was a "user modify" (a non-watch write), and the durable
-user_version is updated according to the following rules:
-1) set user_at_version to the maximum of ctx->new_obs.oi.user_version+1
-and info.last_user_version+1.
-2) set user_at_version to the maximum of itself and
-ctx->at_version.version.
-3) ctx->new_obs.oi.user_version = ctx->user_at_version (to change the
-object's user_version)
-
-This set of update semantics mean that for traditional pools the
-user_version will be equal to the past reassert_version, while for
-caching pools the object and PG user-version will be able to cross
-pools without making a total mess of things.
-In order to support old clients, we keep the old reassert_version but
-rename it to "bad_replay_version"; we fill it in as before: for writes
-it is set to the at_version (and is the proper replay version); for
-watches it is set to our user version; for ENOENT replies it is set to
-the replay version's epoch but the user_version's version. We also now
-fill in the version_t portion of the bad_replay_version on read ops as
-well as write ops, which should be fine for all old clients.
-
-For new clients, we prevent them from reading bad_replay_version and
-add two proper members: user_version and replay_version; user_version
-is filled in on every operation (reads included) while replay_version
-is filled in for writes.
-
-The objclass function get_current_version() now always returns the
-pg->info.last_user_version, which means it is guaranteed to contain
-the version of the last user update in the PG (including on reads!).
diff --git a/src/ceph/doc/dev/wireshark.rst b/src/ceph/doc/dev/wireshark.rst
deleted file mode 100644
index e03b362..0000000
--- a/src/ceph/doc/dev/wireshark.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-=====================
- Wireshark Dissector
-=====================
-
-Wireshark has support for the Ceph protocol and it will be shipped in the 1.12.1
-release.
-
-Using
-=====
-
-To use the Wireshark dissector you must build it from `git`__, the process is
-outlined in great detail in the `Building and Installing`__ section of the
-`Wireshark Users Guide`__.
-
-__ `Wireshark git`_
-__ WSUG_BI_
-__ WSUG_
-
-Developing
-==========
-
-The Ceph dissector lives in `Wireshark git`_ at
-``epan/dissectors/packet-ceph.c``. At the top of that file there are some
-comments explaining how to insert new functionality or to update the encoding
-of existing types.
-
-Before you start hacking on Wireshark code you should look at the
-``doc/README.developer`` and ``doc/README.dissector`` documents as they explain
-the basics of writing dissectors. After reading those two documents you should
-be prepared to work on the Ceph dissector. `The Wireshark
-developers guide`__ also contains a lot of useful information but it is less
-directed and is more useful as a reference then an introduction.
-
-__ WSDG_
-
-.. _WSUG: https://www.wireshark.org/docs/wsug_html_chunked/
-.. _WSDG: https://www.wireshark.org/docs/wsdg_html_chunked/
-.. _WSUG_BI: https://www.wireshark.org/docs/wsug_html_chunked/ChapterBuildInstall.html
-.. _Wireshark git: https://www.wireshark.org/develop.html
-
-.. vi: textwidth=80 noexpandtab
diff --git a/src/ceph/doc/favicon.ico b/src/ceph/doc/favicon.ico
deleted file mode 100644
index 90e538b..0000000
--- a/src/ceph/doc/favicon.ico
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/glossary.rst b/src/ceph/doc/glossary.rst
deleted file mode 100644
index 8254640..0000000
--- a/src/ceph/doc/glossary.rst
+++ /dev/null
@@ -1,187 +0,0 @@
-===============
- Ceph Glossary
-===============
-
-Ceph is growing rapidly. As firms deploy Ceph, the technical terms such as
-"RADOS", "RBD," "RGW" and so forth require corresponding marketing terms
-that explain what each component does. The terms in this glossary are
-intended to complement the existing technical terminology.
-
-Sometimes more than one term applies to a definition. Generally, the first
-term reflects a term consistent with Ceph's marketing, and secondary terms
-reflect either technical terms or legacy ways of referring to Ceph systems.
-
-
-.. glossary::
-
- Ceph Project
- The aggregate term for the people, software, mission and infrastructure
- of Ceph.
-
- cephx
- The Ceph authentication protocol. Cephx operates like Kerberos, but it
- has no single point of failure.
-
- Ceph
- Ceph Platform
- All Ceph software, which includes any piece of code hosted at
- `http://github.com/ceph`_.
-
- Ceph System
- Ceph Stack
- A collection of two or more components of Ceph.
-
- Ceph Node
- Node
- Host
- Any single machine or server in a Ceph System.
-
- Ceph Storage Cluster
- Ceph Object Store
- RADOS
- RADOS Cluster
- Reliable Autonomic Distributed Object Store
- The core set of storage software which stores the user's data (MON+OSD).
-
- Ceph Cluster Map
- cluster map
- The set of maps comprising the monitor map, OSD map, PG map, MDS map and
- CRUSH map. See `Cluster Map`_ for details.
-
- Ceph Object Storage
- The object storage "product", service or capabilities, which consists
- essentially of a Ceph Storage Cluster and a Ceph Object Gateway.
-
- Ceph Object Gateway
- RADOS Gateway
- RGW
- The S3/Swift gateway component of Ceph.
-
- Ceph Block Device
- RBD
- The block storage component of Ceph.
-
- Ceph Block Storage
- The block storage "product," service or capabilities when used in
- conjunction with ``librbd``, a hypervisor such as QEMU or Xen, and a
- hypervisor abstraction layer such as ``libvirt``.
-
- Ceph Filesystem
- CephFS
- Ceph FS
- The POSIX filesystem components of Ceph.
-
- Cloud Platforms
- Cloud Stacks
- Third party cloud provisioning platforms such as OpenStack, CloudStack,
- OpenNebula, ProxMox, etc.
-
- Object Storage Device
- OSD
- A physical or logical storage unit (*e.g.*, LUN).
- Sometimes, Ceph users use the
- term "OSD" to refer to :term:`Ceph OSD Daemon`, though the
- proper term is "Ceph OSD".
-
- Ceph OSD Daemon
- Ceph OSD Daemons
- Ceph OSD
- The Ceph OSD software, which interacts with a logical
- disk (:term:`OSD`). Sometimes, Ceph users use the
- term "OSD" to refer to "Ceph OSD Daemon", though the
- proper term is "Ceph OSD".
-
- OSD id
- The integer that defines an OSD. It is generated by the monitors as part
- of the creation of a new OSD.
-
- OSD fsid
- This is a unique identifier used to further improve the uniqueness of an
- OSD and it is found in the OSD path in a file called ``osd_fsid``. This
- ``fsid`` term is used interchangeably with ``uuid``
-
- OSD uuid
- Just like the OSD fsid, this is the OSD unique identifer and is used
- interchangeably with ``fsid``
-
- bluestore
- OSD BlueStore is a new back end for OSD daemons (kraken and newer
- versions). Unlike :term:`filestore` it stores objects directly on the
- Ceph block devices without any file system interface.
-
- filestore
- A back end for OSD daemons, where a Journal is needed and files are
- written to the filesystem.
-
- Ceph Monitor
- MON
- The Ceph monitor software.
-
- Ceph Manager
- MGR
- The Ceph manager software, which collects all the state from the whole
- cluster in one place.
-
- Ceph Metadata Server
- MDS
- The Ceph metadata software.
-
- Ceph Clients
- Ceph Client
- The collection of Ceph components which can access a Ceph Storage
- Cluster. These include the Ceph Object Gateway, the Ceph Block Device,
- the Ceph Filesystem, and their corresponding libraries, kernel modules,
- and FUSEs.
-
- Ceph Kernel Modules
- The collection of kernel modules which can be used to interact with the
- Ceph System (e.g,. ``ceph.ko``, ``rbd.ko``).
-
- Ceph Client Libraries
- The collection of libraries that can be used to interact with components
- of the Ceph System.
-
- Ceph Release
- Any distinct numbered version of Ceph.
-
- Ceph Point Release
- Any ad-hoc release that includes only bug or security fixes.
-
- Ceph Interim Release
- Versions of Ceph that have not yet been put through quality assurance
- testing, but may contain new features.
-
- Ceph Release Candidate
- A major version of Ceph that has undergone initial quality assurance
- testing and is ready for beta testers.
-
- Ceph Stable Release
- A major version of Ceph where all features from the preceding interim
- releases have been put through quality assurance testing successfully.
-
- Ceph Test Framework
- Teuthology
- The collection of software that performs scripted tests on Ceph.
-
- CRUSH
- Controlled Replication Under Scalable Hashing. It is the algorithm
- Ceph uses to compute object storage locations.
-
- ruleset
- A set of CRUSH data placement rules that applies to a particular pool(s).
-
- Pool
- Pools
- Pools are logical partitions for storing objects.
-
- systemd oneshot
- A systemd ``type`` where a command is defined in ``ExecStart`` which will
- exit upon completion (it is not intended to daemonize)
-
- LVM tags
- Extensible metadata for LVM volumes and groups. It is used to store
- Ceph-specific information about devices and its relationship with
- OSDs.
-
-.. _http://github.com/ceph: http://github.com/ceph
-.. _Cluster Map: ../architecture#cluster-map
diff --git a/src/ceph/doc/images/CRUSH.jpg b/src/ceph/doc/images/CRUSH.jpg
deleted file mode 100644
index ac79759..0000000
--- a/src/ceph/doc/images/CRUSH.jpg
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/RADOS.jpg b/src/ceph/doc/images/RADOS.jpg
deleted file mode 100644
index 0793a8c..0000000
--- a/src/ceph/doc/images/RADOS.jpg
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/RBD.jpg b/src/ceph/doc/images/RBD.jpg
deleted file mode 100644
index c2a2b8f..0000000
--- a/src/ceph/doc/images/RBD.jpg
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/RDBSnapshots.jpg b/src/ceph/doc/images/RDBSnapshots.jpg
deleted file mode 100644
index 493d468..0000000
--- a/src/ceph/doc/images/RDBSnapshots.jpg
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/docreviewprocess.jpg b/src/ceph/doc/images/docreviewprocess.jpg
deleted file mode 100644
index 33f7163..0000000
--- a/src/ceph/doc/images/docreviewprocess.jpg
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_chap.png b/src/ceph/doc/images/esx_iscsi_chap.png
deleted file mode 100755
index 4372222..0000000
--- a/src/ceph/doc/images/esx_iscsi_chap.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_conf.png b/src/ceph/doc/images/esx_iscsi_conf.png
deleted file mode 100755
index b1b9388..0000000
--- a/src/ceph/doc/images/esx_iscsi_conf.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_disc.png b/src/ceph/doc/images/esx_iscsi_disc.png
deleted file mode 100755
index 338a1eb..0000000
--- a/src/ceph/doc/images/esx_iscsi_disc.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_general.png b/src/ceph/doc/images/esx_iscsi_general.png
deleted file mode 100755
index 75a5764..0000000
--- a/src/ceph/doc/images/esx_iscsi_general.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_rescan.png b/src/ceph/doc/images/esx_iscsi_rescan.png
deleted file mode 100755
index cc50c47..0000000
--- a/src/ceph/doc/images/esx_iscsi_rescan.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_select_device.png b/src/ceph/doc/images/esx_iscsi_select_device.png
deleted file mode 100755
index 192ab57..0000000
--- a/src/ceph/doc/images/esx_iscsi_select_device.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/esx_iscsi_select_mru.png b/src/ceph/doc/images/esx_iscsi_select_mru.png
deleted file mode 100755
index c3c9c47..0000000
--- a/src/ceph/doc/images/esx_iscsi_select_mru.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/region-sync.png b/src/ceph/doc/images/region-sync.png
deleted file mode 100644
index 7f889a0..0000000
--- a/src/ceph/doc/images/region-sync.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/region-sync.svg b/src/ceph/doc/images/region-sync.svg
deleted file mode 100644
index 93b66f3..0000000
--- a/src/ceph/doc/images/region-sync.svg
+++ /dev/null
@@ -1,30426 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="744.09448819"
- height="1052.3622047"
- id="svg104536"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="region-sync.svg"
- inkscape:export-filename="/home/john/Pictures/region-sync.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs104538">
- <linearGradient
- id="linearGradient126200"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202" />
- </linearGradient>
- <clipPath
- id="SVGID_4884_">
- <rect
- height="11.504"
- width="174.63"
- y="360.13901"
- x="-679.57202"
- id="use84863" />
- </clipPath>
- <clipPath
- id="SVGID_4886_">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use84873" />
- </clipPath>
- <clipPath
- id="SVGID_4888_">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use84881" />
- </clipPath>
- <clipPath
- id="SVGID_4890_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-535.73901"
- id="use84891" />
- </clipPath>
- <clipPath
- id="SVGID_4892_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-535.73901"
- id="use84899" />
- </clipPath>
- <clipPath
- id="clipPath99071">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99073" />
- </clipPath>
- <clipPath
- id="SVGID_4894_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-536.966"
- id="use84911" />
- </clipPath>
- <clipPath
- id="SVGID_4896_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-536.966"
- id="use84919" />
- </clipPath>
- <clipPath
- id="clipPath99079">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99081" />
- </clipPath>
- <clipPath
- id="SVGID_4898_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-538.19202"
- id="use84931" />
- </clipPath>
- <clipPath
- id="SVGID_4900_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-538.19202"
- id="use84939" />
- </clipPath>
- <clipPath
- id="clipPath99087">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99089" />
- </clipPath>
- <clipPath
- id="SVGID_4902_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-539.41901"
- id="use84951" />
- </clipPath>
- <clipPath
- id="SVGID_4904_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-539.41901"
- id="use84959" />
- </clipPath>
- <clipPath
- id="clipPath99095">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99097" />
- </clipPath>
- <clipPath
- id="SVGID_4906_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-540.646"
- id="use84971" />
- </clipPath>
- <clipPath
- id="SVGID_4908_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-540.646"
- id="use84979" />
- </clipPath>
- <clipPath
- id="clipPath99103">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99105" />
- </clipPath>
- <clipPath
- id="SVGID_4910_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-541.87299"
- id="use84991" />
- </clipPath>
- <clipPath
- id="SVGID_4912_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-541.87299"
- id="use84999" />
- </clipPath>
- <clipPath
- id="clipPath99111">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99113" />
- </clipPath>
- <clipPath
- id="SVGID_4914_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-543.099"
- id="use85011" />
- </clipPath>
- <clipPath
- id="SVGID_4916_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-543.099"
- id="use85019" />
- </clipPath>
- <clipPath
- id="clipPath99119">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99121" />
- </clipPath>
- <clipPath
- id="SVGID_4918_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-544.32599"
- id="use85031" />
- </clipPath>
- <clipPath
- id="SVGID_4920_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-544.32599"
- id="use85039" />
- </clipPath>
- <clipPath
- id="clipPath99127">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99129" />
- </clipPath>
- <clipPath
- id="SVGID_4922_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-545.55298"
- id="use85051" />
- </clipPath>
- <clipPath
- id="SVGID_4924_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-545.55298"
- id="use85059" />
- </clipPath>
- <clipPath
- id="clipPath99135">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99137" />
- </clipPath>
- <clipPath
- id="SVGID_4926_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-546.77899"
- id="use85071" />
- </clipPath>
- <clipPath
- id="SVGID_4928_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-546.77899"
- id="use85079" />
- </clipPath>
- <clipPath
- id="clipPath99143">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99145" />
- </clipPath>
- <clipPath
- id="SVGID_4930_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-548.00598"
- id="use85091" />
- </clipPath>
- <clipPath
- id="SVGID_4932_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-548.00598"
- id="use85099" />
- </clipPath>
- <clipPath
- id="clipPath99151">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99153" />
- </clipPath>
- <clipPath
- id="SVGID_4934_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-549.23297"
- id="use85111" />
- </clipPath>
- <clipPath
- id="SVGID_4936_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-549.23297"
- id="use85119" />
- </clipPath>
- <clipPath
- id="clipPath99159">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99161" />
- </clipPath>
- <clipPath
- id="SVGID_4938_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-550.46002"
- id="use85131" />
- </clipPath>
- <clipPath
- id="SVGID_4940_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-550.46002"
- id="use85139" />
- </clipPath>
- <clipPath
- id="clipPath99167">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99169" />
- </clipPath>
- <clipPath
- id="SVGID_4942_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-551.68597"
- id="use85151" />
- </clipPath>
- <clipPath
- id="SVGID_4944_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-551.68597"
- id="use85159" />
- </clipPath>
- <clipPath
- id="clipPath99175">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99177" />
- </clipPath>
- <clipPath
- id="SVGID_4946_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-552.91302"
- id="use85171" />
- </clipPath>
- <clipPath
- id="SVGID_4948_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-552.91302"
- id="use85179" />
- </clipPath>
- <clipPath
- id="clipPath99183">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99185" />
- </clipPath>
- <clipPath
- id="SVGID_4950_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-554.14001"
- id="use85191" />
- </clipPath>
- <clipPath
- id="SVGID_4952_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-554.14001"
- id="use85199" />
- </clipPath>
- <clipPath
- id="clipPath99191">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99193" />
- </clipPath>
- <clipPath
- id="SVGID_4954_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-555.367"
- id="use85211" />
- </clipPath>
- <clipPath
- id="SVGID_4956_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-555.367"
- id="use85219" />
- </clipPath>
- <clipPath
- id="clipPath99199">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99201" />
- </clipPath>
- <clipPath
- id="SVGID_4958_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-556.59302"
- id="use85231" />
- </clipPath>
- <clipPath
- id="SVGID_4960_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-556.59302"
- id="use85239" />
- </clipPath>
- <clipPath
- id="clipPath99207">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99209" />
- </clipPath>
- <clipPath
- id="SVGID_4962_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-557.82001"
- id="use85251" />
- </clipPath>
- <clipPath
- id="SVGID_4964_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-557.82001"
- id="use85259" />
- </clipPath>
- <clipPath
- id="clipPath99215">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99217" />
- </clipPath>
- <clipPath
- id="SVGID_4966_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-559.047"
- id="use85271" />
- </clipPath>
- <clipPath
- id="SVGID_4968_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-559.047"
- id="use85279" />
- </clipPath>
- <clipPath
- id="clipPath99223">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99225" />
- </clipPath>
- <clipPath
- id="SVGID_4970_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-560.27301"
- id="use85291" />
- </clipPath>
- <clipPath
- id="SVGID_4972_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-560.27301"
- id="use85299" />
- </clipPath>
- <clipPath
- id="clipPath99231">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99233" />
- </clipPath>
- <clipPath
- id="SVGID_4974_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-561.5"
- id="use85311" />
- </clipPath>
- <clipPath
- id="SVGID_4976_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-561.5"
- id="use85319" />
- </clipPath>
- <clipPath
- id="clipPath99239">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99241" />
- </clipPath>
- <clipPath
- id="SVGID_4978_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-562.72699"
- id="use85331" />
- </clipPath>
- <clipPath
- id="SVGID_4980_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-562.72699"
- id="use85339" />
- </clipPath>
- <clipPath
- id="clipPath99247">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99249" />
- </clipPath>
- <clipPath
- id="SVGID_4982_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-563.95398"
- id="use85351" />
- </clipPath>
- <clipPath
- id="SVGID_4984_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-563.95398"
- id="use85359" />
- </clipPath>
- <clipPath
- id="clipPath99255">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99257" />
- </clipPath>
- <clipPath
- id="SVGID_4986_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-565.17999"
- id="use85371" />
- </clipPath>
- <clipPath
- id="SVGID_4988_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-565.17999"
- id="use85379" />
- </clipPath>
- <clipPath
- id="clipPath99263">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99265" />
- </clipPath>
- <clipPath
- id="SVGID_4990_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-566.40698"
- id="use85391" />
- </clipPath>
- <clipPath
- id="SVGID_4992_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-566.40698"
- id="use85399" />
- </clipPath>
- <clipPath
- id="clipPath99271">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99273" />
- </clipPath>
- <clipPath
- id="SVGID_4994_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-567.63397"
- id="use85411" />
- </clipPath>
- <clipPath
- id="SVGID_4996_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-567.63397"
- id="use85419" />
- </clipPath>
- <clipPath
- id="clipPath99279">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99281" />
- </clipPath>
- <clipPath
- id="SVGID_4998_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-568.86102"
- id="use85431" />
- </clipPath>
- <clipPath
- id="SVGID_5000_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-568.86102"
- id="use85439" />
- </clipPath>
- <clipPath
- id="clipPath99287">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99289" />
- </clipPath>
- <clipPath
- id="SVGID_5002_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-570.08698"
- id="use85451" />
- </clipPath>
- <clipPath
- id="SVGID_5004_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-570.08698"
- id="use85459" />
- </clipPath>
- <clipPath
- id="clipPath99295">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99297" />
- </clipPath>
- <clipPath
- id="SVGID_5006_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-571.315"
- id="use85471" />
- </clipPath>
- <clipPath
- id="SVGID_5008_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-571.31403"
- id="use85479" />
- </clipPath>
- <clipPath
- id="clipPath99303">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99305" />
- </clipPath>
- <clipPath
- id="SVGID_5010_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-572.54102"
- id="use85491" />
- </clipPath>
- <clipPath
- id="SVGID_5012_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-572.54102"
- id="use85499" />
- </clipPath>
- <clipPath
- id="clipPath99311">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99313" />
- </clipPath>
- <clipPath
- id="SVGID_5014_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-573.76801"
- id="use85511" />
- </clipPath>
- <clipPath
- id="SVGID_5016_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-573.76801"
- id="use85519" />
- </clipPath>
- <clipPath
- id="clipPath99319">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99321" />
- </clipPath>
- <clipPath
- id="SVGID_5018_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-574.99402"
- id="use85531" />
- </clipPath>
- <clipPath
- id="SVGID_5020_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-574.99402"
- id="use85539" />
- </clipPath>
- <clipPath
- id="clipPath99327">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99329" />
- </clipPath>
- <clipPath
- id="SVGID_5022_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-576.22101"
- id="use85551" />
- </clipPath>
- <clipPath
- id="SVGID_5024_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-576.22101"
- id="use85559" />
- </clipPath>
- <clipPath
- id="clipPath99335">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99337" />
- </clipPath>
- <clipPath
- id="SVGID_5026_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-577.448"
- id="use85571" />
- </clipPath>
- <clipPath
- id="SVGID_5028_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-577.448"
- id="use85579" />
- </clipPath>
- <clipPath
- id="clipPath99343">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99345" />
- </clipPath>
- <clipPath
- id="SVGID_5030_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-578.67499"
- id="use85591" />
- </clipPath>
- <clipPath
- id="SVGID_5032_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-578.67499"
- id="use85599" />
- </clipPath>
- <clipPath
- id="clipPath99351">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99353" />
- </clipPath>
- <clipPath
- id="SVGID_5034_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-579.901"
- id="use85611" />
- </clipPath>
- <clipPath
- id="SVGID_5036_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-579.901"
- id="use85619" />
- </clipPath>
- <clipPath
- id="clipPath99359">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99361" />
- </clipPath>
- <clipPath
- id="SVGID_5038_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-581.12799"
- id="use85631" />
- </clipPath>
- <clipPath
- id="SVGID_5040_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-581.12799"
- id="use85639" />
- </clipPath>
- <clipPath
- id="clipPath99367">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99369" />
- </clipPath>
- <clipPath
- id="SVGID_5042_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-582.35498"
- id="use85651" />
- </clipPath>
- <clipPath
- id="SVGID_5044_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-582.35498"
- id="use85659" />
- </clipPath>
- <clipPath
- id="clipPath99375">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99377" />
- </clipPath>
- <clipPath
- id="SVGID_5046_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-583.58197"
- id="use85671" />
- </clipPath>
- <clipPath
- id="SVGID_5048_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-583.58197"
- id="use85679" />
- </clipPath>
- <clipPath
- id="clipPath99383">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99385" />
- </clipPath>
- <clipPath
- id="SVGID_5050_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-584.80798"
- id="use85691" />
- </clipPath>
- <clipPath
- id="SVGID_5052_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-584.80798"
- id="use85699" />
- </clipPath>
- <clipPath
- id="clipPath99391">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99393" />
- </clipPath>
- <clipPath
- id="SVGID_5054_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-586.03497"
- id="use85711" />
- </clipPath>
- <clipPath
- id="SVGID_5056_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-586.03497"
- id="use85719" />
- </clipPath>
- <clipPath
- id="clipPath99399">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99401" />
- </clipPath>
- <clipPath
- id="SVGID_5058_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-587.26202"
- id="use85731" />
- </clipPath>
- <clipPath
- id="SVGID_5060_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-587.26202"
- id="use85739" />
- </clipPath>
- <clipPath
- id="clipPath99407">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99409" />
- </clipPath>
- <clipPath
- id="SVGID_5062_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-588.48901"
- id="use85751" />
- </clipPath>
- <clipPath
- id="SVGID_5064_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-588.48901"
- id="use85759" />
- </clipPath>
- <clipPath
- id="clipPath99415">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99417" />
- </clipPath>
- <clipPath
- id="SVGID_5066_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-589.71503"
- id="use85771" />
- </clipPath>
- <clipPath
- id="SVGID_5068_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-589.71503"
- id="use85779" />
- </clipPath>
- <clipPath
- id="clipPath99423">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99425" />
- </clipPath>
- <clipPath
- id="SVGID_5070_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-590.94202"
- id="use85791" />
- </clipPath>
- <clipPath
- id="SVGID_5072_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-590.94202"
- id="use85799" />
- </clipPath>
- <clipPath
- id="clipPath99431">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99433" />
- </clipPath>
- <clipPath
- id="SVGID_5074_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-592.16901"
- id="use85811" />
- </clipPath>
- <clipPath
- id="SVGID_5076_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-592.16901"
- id="use85819" />
- </clipPath>
- <clipPath
- id="clipPath99439">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99441" />
- </clipPath>
- <clipPath
- id="SVGID_5078_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-593.396"
- id="use85831" />
- </clipPath>
- <clipPath
- id="SVGID_5080_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-593.396"
- id="use85839" />
- </clipPath>
- <clipPath
- id="clipPath99447">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99449" />
- </clipPath>
- <clipPath
- id="SVGID_5082_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-594.62299"
- id="use85851" />
- </clipPath>
- <clipPath
- id="SVGID_5084_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-594.62299"
- id="use85859" />
- </clipPath>
- <clipPath
- id="clipPath99455">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99457" />
- </clipPath>
- <clipPath
- id="SVGID_5086_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-595.849"
- id="use85871" />
- </clipPath>
- <clipPath
- id="SVGID_5088_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-595.849"
- id="use85879" />
- </clipPath>
- <clipPath
- id="clipPath99463">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99465" />
- </clipPath>
- <clipPath
- id="SVGID_5090_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-597.07599"
- id="use85891" />
- </clipPath>
- <clipPath
- id="SVGID_5092_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-597.07599"
- id="use85899" />
- </clipPath>
- <clipPath
- id="clipPath99471">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99473" />
- </clipPath>
- <clipPath
- id="SVGID_5094_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-598.30298"
- id="use85911" />
- </clipPath>
- <clipPath
- id="SVGID_5096_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-598.30298"
- id="use85919" />
- </clipPath>
- <clipPath
- id="clipPath99479">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99481" />
- </clipPath>
- <clipPath
- id="SVGID_5098_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-599.53003"
- id="use85931" />
- </clipPath>
- <clipPath
- id="SVGID_5100_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-599.53003"
- id="use85939" />
- </clipPath>
- <clipPath
- id="clipPath99487">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99489" />
- </clipPath>
- <clipPath
- id="SVGID_5102_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-600.75598"
- id="use85951" />
- </clipPath>
- <clipPath
- id="SVGID_5104_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-600.75598"
- id="use85959" />
- </clipPath>
- <clipPath
- id="SVGID_4873_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use84798" />
- </clipPath>
- <clipPath
- id="clipPath99497">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99499" />
- </clipPath>
- <clipPath
- id="SVGID_4875_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4874_"
- overflow="visible"
- id="use84810" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4876_"
- overflow="visible"
- id="use84818" />
- </clipPath>
- <clipPath
- id="clipPath99511">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99513" />
- </clipPath>
- <clipPath
- id="SVGID_4880_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4879_"
- overflow="visible"
- id="use84841" />
- </clipPath>
- <clipPath
- id="SVGID_4882_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4881_"
- overflow="visible"
- id="use84849" />
- </clipPath>
- <clipPath
- id="clipPath99519">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99521" />
- </clipPath>
- <clipPath
- id="clipPath99523">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99525" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_">
- <polygon
- points="-640.956,278.632 -640.956,273.567 -654.922,273.567 -656.715,276.108 -654.922,278.632 "
- id="use84771" />
- </clipPath>
- <clipPath
- id="SVGID_4868_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84759" />
- </clipPath>
- <clipPath
- id="clipPath99534">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99536" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4864_"
- overflow="visible"
- id="use84732" />
- </clipPath>
- <clipPath
- id="SVGID_4863_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use84720" />
- </clipPath>
- <clipPath
- id="clipPath99545">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use99547" />
- </clipPath>
- <linearGradient
- id="SVGID_4861_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205299"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84696" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84698" />
- </linearGradient>
- <clipPath
- id="SVGID_4860_">
- <polygon
- points="-521.64,278.632 -507.673,278.632 -507.673,273.567 -521.64,273.567 -523.432,276.108 "
- id="use84693" />
- </clipPath>
- <clipPath
- id="SVGID_4858_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84681" />
- </clipPath>
- <clipPath
- id="clipPath99556">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99558" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_">
- <polygon
- points="-521.64,208.524 -507.673,208.524 -507.673,203.458 -521.64,203.458 -523.432,206 "
- id="use84656" />
- </clipPath>
- <clipPath
- id="SVGID_4853_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84644" />
- </clipPath>
- <clipPath
- id="clipPath99567">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99569" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_">
- <polygon
- points="-588.288,203.458 -590.081,206 -588.288,208.524 -574.322,208.524 -574.322,203.458 "
- id="use84619" />
- </clipPath>
- <clipPath
- id="SVGID_4848_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607" />
- </clipPath>
- <clipPath
- id="clipPath99578">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99580" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_">
- <polygon
- points="-654.922,203.458 -656.715,206 -654.922,208.524 -640.956,208.524 -640.956,203.458 "
- id="use84582" />
- </clipPath>
- <clipPath
- id="SVGID_4843_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500" />
- </clipPath>
- <clipPath
- id="clipPath99589">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99591" />
- </clipPath>
- <clipPath
- id="clipPath99593">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99595" />
- </clipPath>
- <clipPath
- id="clipPath99597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99599" />
- </clipPath>
- <clipPath
- id="clipPath99601">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99603" />
- </clipPath>
- <clipPath
- id="clipPath99605">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99607" />
- </clipPath>
- <clipPath
- id="clipPath99609">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99611" />
- </clipPath>
- <clipPath
- id="clipPath99613">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99615" />
- </clipPath>
- <clipPath
- id="clipPath99617">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99619" />
- </clipPath>
- <clipPath
- id="clipPath99621">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99623" />
- </clipPath>
- <clipPath
- id="clipPath99625">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99627" />
- </clipPath>
- <clipPath
- id="clipPath99629">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99631" />
- </clipPath>
- <clipPath
- id="clipPath99633">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99635" />
- </clipPath>
- <clipPath
- id="clipPath99637">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99639" />
- </clipPath>
- <clipPath
- id="clipPath99641">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99643" />
- </clipPath>
- <clipPath
- id="clipPath99645">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99647" />
- </clipPath>
- <clipPath
- id="clipPath99649">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99651" />
- </clipPath>
- <clipPath
- id="clipPath99653">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99655" />
- </clipPath>
- <clipPath
- id="clipPath99657">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99659" />
- </clipPath>
- <clipPath
- id="clipPath99661">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99663" />
- </clipPath>
- <clipPath
- id="clipPath99665">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99667" />
- </clipPath>
- <clipPath
- id="clipPath99669">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99671" />
- </clipPath>
- <clipPath
- id="clipPath99673">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99675" />
- </clipPath>
- <clipPath
- id="clipPath99677">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99679" />
- </clipPath>
- <clipPath
- id="clipPath99681">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99683" />
- </clipPath>
- <clipPath
- id="clipPath99685">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99687" />
- </clipPath>
- <clipPath
- id="clipPath99689">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99691" />
- </clipPath>
- <clipPath
- id="clipPath99693">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99695" />
- </clipPath>
- <clipPath
- id="clipPath99697">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99699" />
- </clipPath>
- <clipPath
- id="clipPath99701">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99703" />
- </clipPath>
- <clipPath
- id="clipPath99705">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99707" />
- </clipPath>
- <clipPath
- id="clipPath99709">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99711" />
- </clipPath>
- <clipPath
- id="clipPath99713">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99715" />
- </clipPath>
- <clipPath
- id="clipPath99717">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99719" />
- </clipPath>
- <clipPath
- id="clipPath99721">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99723" />
- </clipPath>
- <clipPath
- id="clipPath99725">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99727" />
- </clipPath>
- <clipPath
- id="clipPath99729">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99731" />
- </clipPath>
- <linearGradient
- id="SVGID_4841_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,942.8785,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84478" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84480" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84482" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84484" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84486" />
- </linearGradient>
- <clipPath
- id="SVGID_4840_">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-531.92297"
- id="use84475" />
- </clipPath>
- <clipPath
- id="SVGID_4838_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445" />
- </clipPath>
- <clipPath
- id="clipPath99743">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99745" />
- </clipPath>
- <clipPath
- id="clipPath99747">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99749" />
- </clipPath>
- <clipPath
- id="clipPath99751">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99753" />
- </clipPath>
- <clipPath
- id="clipPath99755">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99757" />
- </clipPath>
- <clipPath
- id="clipPath99759">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99761" />
- </clipPath>
- <clipPath
- id="clipPath99763">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99765" />
- </clipPath>
- <clipPath
- id="clipPath99767">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99769" />
- </clipPath>
- <clipPath
- id="clipPath99771">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99773" />
- </clipPath>
- <clipPath
- id="clipPath99775">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99777" />
- </clipPath>
- <clipPath
- id="clipPath99779">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99781" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420" />
- </clipPath>
- <clipPath
- id="SVGID_4833_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390" />
- </clipPath>
- <clipPath
- id="clipPath99793">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99795" />
- </clipPath>
- <clipPath
- id="clipPath99797">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99799" />
- </clipPath>
- <clipPath
- id="clipPath99801">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99803" />
- </clipPath>
- <clipPath
- id="clipPath99805">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99807" />
- </clipPath>
- <clipPath
- id="clipPath99809">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99811" />
- </clipPath>
- <clipPath
- id="clipPath99813">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99815" />
- </clipPath>
- <clipPath
- id="clipPath99817">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99819" />
- </clipPath>
- <clipPath
- id="clipPath99821">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99823" />
- </clipPath>
- <clipPath
- id="clipPath99825">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99827" />
- </clipPath>
- <clipPath
- id="clipPath99829">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99831" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_">
- <polygon
- points="-636.358,231.934 -682.207,231.929 -682.208,251.221 -659.342,256.788 -636.356,251.283 "
- id="use84326" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4823_"
- overflow="visible"
- id="use84295" />
- </clipPath>
- <linearGradient
- id="SVGID_4822_"
- gradientUnits="userSpaceOnUse"
- x1="145.317"
- y1="2.8515"
- x2="146.317"
- y2="2.8515"
- gradientTransform="matrix(0.0299,24.8863,24.8863,-0.0299,-601.3687,-3384.4197)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84267" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84269" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84271" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84273" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84275" />
- </linearGradient>
- <clipPath
- id="SVGID_4821_">
- <polygon
- points="-503.122,251.283 -503.124,231.934 -548.973,231.929 -548.973,251.221 -526.108,256.788 "
- id="use84264" />
- </clipPath>
- <clipPath
- id="SVGID_4819_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84232" />
- </clipPath>
- <linearGradient
- id="SVGID_4817_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,284.9195,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84220" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84222" />
- </linearGradient>
- <clipPath
- id="SVGID_4816_">
- <path
- d="m -516.985,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84217"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4814_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84197" />
- </clipPath>
- <clipPath
- id="clipPath99874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99876" />
- </clipPath>
- <clipPath
- id="clipPath99878">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99880" />
- </clipPath>
- <clipPath
- id="clipPath99882">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99884" />
- </clipPath>
- <clipPath
- id="clipPath99886">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99888" />
- </clipPath>
- <clipPath
- id="clipPath99890">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99892" />
- </clipPath>
- <linearGradient
- id="SVGID_4812_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,272.9481,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84185" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84187" />
- </linearGradient>
- <clipPath
- id="SVGID_4811_">
- <path
- d="m -528.956,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84182"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4809_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84162" />
- </clipPath>
- <clipPath
- id="clipPath99901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99903" />
- </clipPath>
- <clipPath
- id="clipPath99905">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99907" />
- </clipPath>
- <clipPath
- id="clipPath99909">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99911" />
- </clipPath>
- <clipPath
- id="clipPath99913">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99915" />
- </clipPath>
- <clipPath
- id="clipPath99917">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99919" />
- </clipPath>
- <linearGradient
- id="SVGID_4807_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,260.9767,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84150" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84152" />
- </linearGradient>
- <clipPath
- id="SVGID_4806_">
- <path
- d="m -540.927,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84147"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4804_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84127" />
- </clipPath>
- <clipPath
- id="clipPath99928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99930" />
- </clipPath>
- <clipPath
- id="clipPath99932">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99934" />
- </clipPath>
- <clipPath
- id="clipPath99936">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99938" />
- </clipPath>
- <clipPath
- id="clipPath99940">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99942" />
- </clipPath>
- <clipPath
- id="clipPath99944">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99946" />
- </clipPath>
- <linearGradient
- id="SVGID_4802_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,249.0053,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84115" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84117" />
- </linearGradient>
- <clipPath
- id="SVGID_4801_">
- <path
- d="m -552.899,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use84112"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4799_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84092" />
- </clipPath>
- <clipPath
- id="clipPath99955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99957" />
- </clipPath>
- <clipPath
- id="clipPath99959">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99961" />
- </clipPath>
- <clipPath
- id="clipPath99963">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99965" />
- </clipPath>
- <clipPath
- id="clipPath99967">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99969" />
- </clipPath>
- <clipPath
- id="clipPath99971">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99973" />
- </clipPath>
- <linearGradient
- id="SVGID_4797_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,237.034,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84080" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84082" />
- </linearGradient>
- <clipPath
- id="SVGID_4796_">
- <path
- d="m -564.87,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84077"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4794_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84057" />
- </clipPath>
- <clipPath
- id="clipPath99982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99984" />
- </clipPath>
- <clipPath
- id="clipPath99986">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99988" />
- </clipPath>
- <clipPath
- id="clipPath99990">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99992" />
- </clipPath>
- <clipPath
- id="clipPath99994">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99996" />
- </clipPath>
- <clipPath
- id="clipPath99998">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100000" />
- </clipPath>
- <linearGradient
- id="SVGID_4792_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,225.0626,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84045" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84047" />
- </linearGradient>
- <clipPath
- id="SVGID_4791_">
- <path
- d="m -576.842,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use84042"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4789_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84022" />
- </clipPath>
- <clipPath
- id="clipPath100009">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100011" />
- </clipPath>
- <clipPath
- id="clipPath100013">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100015" />
- </clipPath>
- <clipPath
- id="clipPath100017">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100019" />
- </clipPath>
- <clipPath
- id="clipPath100021">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100023" />
- </clipPath>
- <clipPath
- id="clipPath100025">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100027" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4785_"
- overflow="visible"
- id="use84007" />
- </clipPath>
- <clipPath
- id="SVGID_4784_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use83987" />
- </clipPath>
- <clipPath
- id="clipPath100036">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100038" />
- </clipPath>
- <clipPath
- id="clipPath100040">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100042" />
- </clipPath>
- <clipPath
- id="clipPath100044">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100046" />
- </clipPath>
- <clipPath
- id="clipPath100048">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100050" />
- </clipPath>
- <clipPath
- id="clipPath100052">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100054" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4780_"
- overflow="visible"
- id="use83972" />
- </clipPath>
- <clipPath
- id="SVGID_4779_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use83952" />
- </clipPath>
- <clipPath
- id="clipPath100063">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100065" />
- </clipPath>
- <clipPath
- id="clipPath100067">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100069" />
- </clipPath>
- <clipPath
- id="clipPath100071">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100073" />
- </clipPath>
- <clipPath
- id="clipPath100075">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100077" />
- </clipPath>
- <clipPath
- id="clipPath100079">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100081" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4775_"
- overflow="visible"
- id="use83937" />
- </clipPath>
- <clipPath
- id="SVGID_4774_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use83917" />
- </clipPath>
- <clipPath
- id="clipPath100090">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100092" />
- </clipPath>
- <clipPath
- id="clipPath100094">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100096" />
- </clipPath>
- <clipPath
- id="clipPath100098">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100100" />
- </clipPath>
- <clipPath
- id="clipPath100102">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100104" />
- </clipPath>
- <clipPath
- id="clipPath100106">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100108" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4770_"
- overflow="visible"
- id="use83902" />
- </clipPath>
- <clipPath
- id="SVGID_4769_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use83882" />
- </clipPath>
- <clipPath
- id="clipPath100117">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100119" />
- </clipPath>
- <clipPath
- id="clipPath100121">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100123" />
- </clipPath>
- <clipPath
- id="clipPath100125">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100127" />
- </clipPath>
- <clipPath
- id="clipPath100129">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100131" />
- </clipPath>
- <clipPath
- id="clipPath100133">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100135" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4765_"
- overflow="visible"
- id="use83867" />
- </clipPath>
- <clipPath
- id="SVGID_4764_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use83847" />
- </clipPath>
- <clipPath
- id="clipPath100144">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100146" />
- </clipPath>
- <clipPath
- id="clipPath100148">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100150" />
- </clipPath>
- <clipPath
- id="clipPath100152">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100154" />
- </clipPath>
- <clipPath
- id="clipPath100156">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100158" />
- </clipPath>
- <clipPath
- id="clipPath100160">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100162" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4760_"
- overflow="visible"
- id="use83832" />
- </clipPath>
- <clipPath
- id="SVGID_4759_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use83812" />
- </clipPath>
- <clipPath
- id="clipPath100171">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100173" />
- </clipPath>
- <clipPath
- id="clipPath100175">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100177" />
- </clipPath>
- <clipPath
- id="clipPath100179">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100181" />
- </clipPath>
- <clipPath
- id="clipPath100183">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100185" />
- </clipPath>
- <clipPath
- id="clipPath100187">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100189" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4755_"
- overflow="visible"
- id="use83797" />
- </clipPath>
- <clipPath
- id="SVGID_4754_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use83777" />
- </clipPath>
- <clipPath
- id="clipPath100198">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100200" />
- </clipPath>
- <clipPath
- id="clipPath100202">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100204" />
- </clipPath>
- <clipPath
- id="clipPath100206">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100208" />
- </clipPath>
- <clipPath
- id="clipPath100210">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100212" />
- </clipPath>
- <clipPath
- id="clipPath100214">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100216" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4750_"
- overflow="visible"
- id="use83762" />
- </clipPath>
- <clipPath
- id="SVGID_4749_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use83742" />
- </clipPath>
- <clipPath
- id="clipPath100225">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100227" />
- </clipPath>
- <clipPath
- id="clipPath100229">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100231" />
- </clipPath>
- <clipPath
- id="clipPath100233">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100235" />
- </clipPath>
- <clipPath
- id="clipPath100237">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100239" />
- </clipPath>
- <clipPath
- id="clipPath100241">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100243" />
- </clipPath>
- <linearGradient
- id="SVGID_4747_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,284.9195,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83730" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83732" />
- </linearGradient>
- <clipPath
- id="SVGID_4746_">
- <path
- d="m -516.985,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83727"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4744_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83707" />
- </clipPath>
- <clipPath
- id="clipPath100252">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100254" />
- </clipPath>
- <clipPath
- id="clipPath100256">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100258" />
- </clipPath>
- <clipPath
- id="clipPath100260">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100262" />
- </clipPath>
- <clipPath
- id="clipPath100264">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100266" />
- </clipPath>
- <clipPath
- id="clipPath100268">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100270" />
- </clipPath>
- <linearGradient
- id="SVGID_4742_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,272.9481,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83695" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83697" />
- </linearGradient>
- <clipPath
- id="SVGID_4741_">
- <path
- d="m -528.956,334.666 c 0,1.488 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use83692"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4739_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83672" />
- </clipPath>
- <clipPath
- id="clipPath100279">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100281" />
- </clipPath>
- <clipPath
- id="clipPath100283">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100285" />
- </clipPath>
- <clipPath
- id="clipPath100287">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100289" />
- </clipPath>
- <clipPath
- id="clipPath100291">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100293" />
- </clipPath>
- <clipPath
- id="clipPath100295">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100297" />
- </clipPath>
- <linearGradient
- id="SVGID_4737_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,260.9767,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83660" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83662" />
- </linearGradient>
- <clipPath
- id="SVGID_4736_">
- <path
- d="m -540.927,334.666 c 0,1.488 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use83657"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4734_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83637" />
- </clipPath>
- <clipPath
- id="clipPath100306">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100308" />
- </clipPath>
- <clipPath
- id="clipPath100310">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100312" />
- </clipPath>
- <clipPath
- id="clipPath100314">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100316" />
- </clipPath>
- <clipPath
- id="clipPath100318">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100320" />
- </clipPath>
- <clipPath
- id="clipPath100322">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100324" />
- </clipPath>
- <linearGradient
- id="SVGID_4732_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,249.0053,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83625" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83627" />
- </linearGradient>
- <clipPath
- id="SVGID_4731_">
- <path
- d="m -552.899,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83622"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4729_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83602" />
- </clipPath>
- <clipPath
- id="clipPath100333">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100335" />
- </clipPath>
- <clipPath
- id="clipPath100337">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100339" />
- </clipPath>
- <clipPath
- id="clipPath100341">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100343" />
- </clipPath>
- <clipPath
- id="clipPath100345">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100347" />
- </clipPath>
- <clipPath
- id="clipPath100349">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100351" />
- </clipPath>
- <linearGradient
- id="SVGID_4727_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,225.0626,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83590" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83592" />
- </linearGradient>
- <clipPath
- id="SVGID_4726_">
- <path
- d="m -576.842,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83587"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4724_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83567" />
- </clipPath>
- <clipPath
- id="clipPath100360">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100362" />
- </clipPath>
- <clipPath
- id="clipPath100364">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100366" />
- </clipPath>
- <clipPath
- id="clipPath100368">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100370" />
- </clipPath>
- <clipPath
- id="clipPath100372">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100374" />
- </clipPath>
- <clipPath
- id="clipPath100376">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100378" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4720_"
- overflow="visible"
- id="use83552" />
- </clipPath>
- <clipPath
- id="SVGID_4719_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use83532" />
- </clipPath>
- <clipPath
- id="clipPath100387">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100389" />
- </clipPath>
- <clipPath
- id="clipPath100391">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100393" />
- </clipPath>
- <clipPath
- id="clipPath100395">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100397" />
- </clipPath>
- <clipPath
- id="clipPath100399">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100401" />
- </clipPath>
- <clipPath
- id="clipPath100403">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100405" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4715_"
- overflow="visible"
- id="use83517" />
- </clipPath>
- <clipPath
- id="SVGID_4714_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use83497" />
- </clipPath>
- <clipPath
- id="clipPath100414">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100416" />
- </clipPath>
- <clipPath
- id="clipPath100418">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100420" />
- </clipPath>
- <clipPath
- id="clipPath100422">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100424" />
- </clipPath>
- <clipPath
- id="clipPath100426">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100428" />
- </clipPath>
- <clipPath
- id="clipPath100430">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100432" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4710_"
- overflow="visible"
- id="use83482" />
- </clipPath>
- <clipPath
- id="SVGID_4709_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use83462" />
- </clipPath>
- <clipPath
- id="clipPath100441">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100443" />
- </clipPath>
- <clipPath
- id="clipPath100445">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100447" />
- </clipPath>
- <clipPath
- id="clipPath100449">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100451" />
- </clipPath>
- <clipPath
- id="clipPath100453">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100455" />
- </clipPath>
- <clipPath
- id="clipPath100457">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100459" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4705_"
- overflow="visible"
- id="use83447" />
- </clipPath>
- <clipPath
- id="SVGID_4704_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use83427" />
- </clipPath>
- <clipPath
- id="clipPath100468">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100470" />
- </clipPath>
- <clipPath
- id="clipPath100472">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100474" />
- </clipPath>
- <clipPath
- id="clipPath100476">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100478" />
- </clipPath>
- <clipPath
- id="clipPath100480">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100482" />
- </clipPath>
- <clipPath
- id="clipPath100484">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100486" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4700_"
- overflow="visible"
- id="use83412" />
- </clipPath>
- <clipPath
- id="SVGID_4699_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use83392" />
- </clipPath>
- <clipPath
- id="clipPath100495">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100497" />
- </clipPath>
- <clipPath
- id="clipPath100499">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100501" />
- </clipPath>
- <clipPath
- id="clipPath100503">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100505" />
- </clipPath>
- <clipPath
- id="clipPath100507">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100509" />
- </clipPath>
- <clipPath
- id="clipPath100511">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100513" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4695_"
- overflow="visible"
- id="use83377" />
- </clipPath>
- <clipPath
- id="SVGID_4694_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use83357" />
- </clipPath>
- <clipPath
- id="clipPath100522">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100524" />
- </clipPath>
- <clipPath
- id="clipPath100526">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100528" />
- </clipPath>
- <clipPath
- id="clipPath100530">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100532" />
- </clipPath>
- <clipPath
- id="clipPath100534">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100536" />
- </clipPath>
- <clipPath
- id="clipPath100538">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100540" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4690_"
- overflow="visible"
- id="use83342" />
- </clipPath>
- <clipPath
- id="SVGID_4689_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use83322" />
- </clipPath>
- <clipPath
- id="clipPath100549">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100551" />
- </clipPath>
- <clipPath
- id="clipPath100553">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100555" />
- </clipPath>
- <clipPath
- id="clipPath100557">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100559" />
- </clipPath>
- <clipPath
- id="clipPath100561">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100563" />
- </clipPath>
- <clipPath
- id="clipPath100565">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100567" />
- </clipPath>
- <linearGradient
- id="SVGID_4687_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,284.9569,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83310" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83312" />
- </linearGradient>
- <clipPath
- id="SVGID_4686_">
- <path
- d="m -516.985,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83307"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4684_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83287" />
- </clipPath>
- <clipPath
- id="clipPath100576">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100578" />
- </clipPath>
- <clipPath
- id="clipPath100580">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100582" />
- </clipPath>
- <clipPath
- id="clipPath100584">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100586" />
- </clipPath>
- <clipPath
- id="clipPath100588">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100590" />
- </clipPath>
- <clipPath
- id="clipPath100592">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100594" />
- </clipPath>
- <linearGradient
- id="SVGID_4682_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,272.9856,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83275" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83277" />
- </linearGradient>
- <clipPath
- id="SVGID_4681_">
- <path
- d="m -528.956,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83272"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4679_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83252" />
- </clipPath>
- <clipPath
- id="clipPath100603">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100605" />
- </clipPath>
- <clipPath
- id="clipPath100607">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100609" />
- </clipPath>
- <clipPath
- id="clipPath100611">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100613" />
- </clipPath>
- <clipPath
- id="clipPath100615">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100617" />
- </clipPath>
- <clipPath
- id="clipPath100619">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100621" />
- </clipPath>
- <linearGradient
- id="SVGID_4677_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,261.0142,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83240" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83242" />
- </linearGradient>
- <clipPath
- id="SVGID_4676_">
- <path
- d="m -540.927,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83237"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4674_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83217" />
- </clipPath>
- <clipPath
- id="clipPath100630">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100632" />
- </clipPath>
- <clipPath
- id="clipPath100634">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100636" />
- </clipPath>
- <clipPath
- id="clipPath100638">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100640" />
- </clipPath>
- <clipPath
- id="clipPath100642">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100644" />
- </clipPath>
- <clipPath
- id="clipPath100646">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100648" />
- </clipPath>
- <linearGradient
- id="SVGID_4672_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,249.0428,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83205" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83207" />
- </linearGradient>
- <clipPath
- id="SVGID_4671_">
- <path
- d="m -552.899,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83202"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4669_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83182" />
- </clipPath>
- <clipPath
- id="clipPath100657">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100659" />
- </clipPath>
- <clipPath
- id="clipPath100661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100663" />
- </clipPath>
- <clipPath
- id="clipPath100665">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100667" />
- </clipPath>
- <clipPath
- id="clipPath100669">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100671" />
- </clipPath>
- <clipPath
- id="clipPath100673">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100675" />
- </clipPath>
- <linearGradient
- id="SVGID_4667_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,237.0715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83170" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83172" />
- </linearGradient>
- <clipPath
- id="SVGID_4666_">
- <path
- d="m -564.87,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83167"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4664_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83147" />
- </clipPath>
- <clipPath
- id="clipPath100684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100686" />
- </clipPath>
- <clipPath
- id="clipPath100688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100690" />
- </clipPath>
- <clipPath
- id="clipPath100692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100694" />
- </clipPath>
- <clipPath
- id="clipPath100696">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100698" />
- </clipPath>
- <clipPath
- id="clipPath100700">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100702" />
- </clipPath>
- <linearGradient
- id="SVGID_4662_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,225.1001,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83135" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83137" />
- </linearGradient>
- <clipPath
- id="SVGID_4661_">
- <path
- d="m -576.842,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83132"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4659_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83112" />
- </clipPath>
- <clipPath
- id="clipPath100711">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100713" />
- </clipPath>
- <clipPath
- id="clipPath100715">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100717" />
- </clipPath>
- <clipPath
- id="clipPath100719">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100721" />
- </clipPath>
- <clipPath
- id="clipPath100723">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100725" />
- </clipPath>
- <clipPath
- id="clipPath100727">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100729" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_"
- overflow="visible"
- id="use83097" />
- </clipPath>
- <clipPath
- id="SVGID_4654_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use83077" />
- </clipPath>
- <clipPath
- id="clipPath100738">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100740" />
- </clipPath>
- <clipPath
- id="clipPath100742">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100744" />
- </clipPath>
- <clipPath
- id="clipPath100746">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100748" />
- </clipPath>
- <clipPath
- id="clipPath100750">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100752" />
- </clipPath>
- <clipPath
- id="clipPath100754">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100756" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4650_"
- overflow="visible"
- id="use83062" />
- </clipPath>
- <clipPath
- id="SVGID_4649_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use83042" />
- </clipPath>
- <clipPath
- id="clipPath100765">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100767" />
- </clipPath>
- <clipPath
- id="clipPath100769">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100771" />
- </clipPath>
- <clipPath
- id="clipPath100773">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100775" />
- </clipPath>
- <clipPath
- id="clipPath100777">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100779" />
- </clipPath>
- <clipPath
- id="clipPath100781">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100783" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4645_"
- overflow="visible"
- id="use83027" />
- </clipPath>
- <clipPath
- id="SVGID_4644_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use83007" />
- </clipPath>
- <clipPath
- id="clipPath100792">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100794" />
- </clipPath>
- <clipPath
- id="clipPath100796">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100798" />
- </clipPath>
- <clipPath
- id="clipPath100800">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100802" />
- </clipPath>
- <clipPath
- id="clipPath100804">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100806" />
- </clipPath>
- <clipPath
- id="clipPath100808">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100810" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4640_"
- overflow="visible"
- id="use82992" />
- </clipPath>
- <clipPath
- id="SVGID_4639_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use82972" />
- </clipPath>
- <clipPath
- id="clipPath100819">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100821" />
- </clipPath>
- <clipPath
- id="clipPath100823">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100825" />
- </clipPath>
- <clipPath
- id="clipPath100827">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100829" />
- </clipPath>
- <clipPath
- id="clipPath100831">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100833" />
- </clipPath>
- <clipPath
- id="clipPath100835">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100837" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4635_"
- overflow="visible"
- id="use82957" />
- </clipPath>
- <clipPath
- id="SVGID_4634_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use82937" />
- </clipPath>
- <clipPath
- id="clipPath100846">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100848" />
- </clipPath>
- <clipPath
- id="clipPath100850">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100852" />
- </clipPath>
- <clipPath
- id="clipPath100854">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100856" />
- </clipPath>
- <clipPath
- id="clipPath100858">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100860" />
- </clipPath>
- <clipPath
- id="clipPath100862">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100864" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4630_"
- overflow="visible"
- id="use82922" />
- </clipPath>
- <clipPath
- id="SVGID_4629_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use82902" />
- </clipPath>
- <clipPath
- id="clipPath100873">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100875" />
- </clipPath>
- <clipPath
- id="clipPath100877">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100879" />
- </clipPath>
- <clipPath
- id="clipPath100881">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100883" />
- </clipPath>
- <clipPath
- id="clipPath100885">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100887" />
- </clipPath>
- <clipPath
- id="clipPath100889">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100891" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4625_"
- overflow="visible"
- id="use82887" />
- </clipPath>
- <clipPath
- id="SVGID_4624_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use82867" />
- </clipPath>
- <clipPath
- id="clipPath100900">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100902" />
- </clipPath>
- <clipPath
- id="clipPath100904">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100906" />
- </clipPath>
- <clipPath
- id="clipPath100908">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100910" />
- </clipPath>
- <clipPath
- id="clipPath100912">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100914" />
- </clipPath>
- <clipPath
- id="clipPath100916">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100918" />
- </clipPath>
- <linearGradient
- id="SVGID_4622_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,284.9569,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82855" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82857" />
- </linearGradient>
- <clipPath
- id="SVGID_4621_">
- <path
- d="m -516.985,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82852"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4619_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82832" />
- </clipPath>
- <clipPath
- id="clipPath100927">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100929" />
- </clipPath>
- <clipPath
- id="clipPath100931">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100933" />
- </clipPath>
- <clipPath
- id="clipPath100935">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100937" />
- </clipPath>
- <clipPath
- id="clipPath100939">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100941" />
- </clipPath>
- <clipPath
- id="clipPath100943">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100945" />
- </clipPath>
- <linearGradient
- id="SVGID_4617_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,272.9856,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82820" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82822" />
- </linearGradient>
- <clipPath
- id="SVGID_4616_">
- <path
- d="m -528.956,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82817"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4614_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82797" />
- </clipPath>
- <clipPath
- id="clipPath100954">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100956" />
- </clipPath>
- <clipPath
- id="clipPath100958">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100960" />
- </clipPath>
- <clipPath
- id="clipPath100962">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100964" />
- </clipPath>
- <clipPath
- id="clipPath100966">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100968" />
- </clipPath>
- <clipPath
- id="clipPath100970">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100972" />
- </clipPath>
- <linearGradient
- id="SVGID_4612_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,261.0142,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82785" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82787" />
- </linearGradient>
- <clipPath
- id="SVGID_4611_">
- <path
- d="m -540.927,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82782"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4609_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82762" />
- </clipPath>
- <clipPath
- id="clipPath100981">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100983" />
- </clipPath>
- <clipPath
- id="clipPath100985">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100987" />
- </clipPath>
- <clipPath
- id="clipPath100989">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100991" />
- </clipPath>
- <clipPath
- id="clipPath100993">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100995" />
- </clipPath>
- <clipPath
- id="clipPath100997">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100999" />
- </clipPath>
- <linearGradient
- id="SVGID_4607_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,249.0428,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82750" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82752" />
- </linearGradient>
- <clipPath
- id="SVGID_4606_">
- <path
- d="m -552.899,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82747"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4604_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82727" />
- </clipPath>
- <clipPath
- id="clipPath101008">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101010" />
- </clipPath>
- <clipPath
- id="clipPath101012">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101014" />
- </clipPath>
- <clipPath
- id="clipPath101016">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101018" />
- </clipPath>
- <clipPath
- id="clipPath101020">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101022" />
- </clipPath>
- <clipPath
- id="clipPath101024">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101026" />
- </clipPath>
- <linearGradient
- id="SVGID_4602_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,237.0715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82715" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82717" />
- </linearGradient>
- <clipPath
- id="SVGID_4601_">
- <path
- d="m -564.87,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82712"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4599_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82692" />
- </clipPath>
- <clipPath
- id="clipPath101035">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101037" />
- </clipPath>
- <clipPath
- id="clipPath101039">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101041" />
- </clipPath>
- <clipPath
- id="clipPath101043">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101045" />
- </clipPath>
- <clipPath
- id="clipPath101047">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101049" />
- </clipPath>
- <clipPath
- id="clipPath101051">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101053" />
- </clipPath>
- <linearGradient
- id="SVGID_4597_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,225.1001,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82680" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82682" />
- </linearGradient>
- <clipPath
- id="SVGID_4596_">
- <path
- d="m -576.842,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82677"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4594_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82657" />
- </clipPath>
- <clipPath
- id="clipPath101062">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101064" />
- </clipPath>
- <clipPath
- id="clipPath101066">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101068" />
- </clipPath>
- <clipPath
- id="clipPath101070">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101072" />
- </clipPath>
- <clipPath
- id="clipPath101074">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101076" />
- </clipPath>
- <clipPath
- id="clipPath101078">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101080" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4590_"
- overflow="visible"
- id="use82642" />
- </clipPath>
- <clipPath
- id="SVGID_4589_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use82622" />
- </clipPath>
- <clipPath
- id="clipPath101089">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101091" />
- </clipPath>
- <clipPath
- id="clipPath101093">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101095" />
- </clipPath>
- <clipPath
- id="clipPath101097">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101099" />
- </clipPath>
- <clipPath
- id="clipPath101101">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101103" />
- </clipPath>
- <clipPath
- id="clipPath101105">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101107" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4585_"
- overflow="visible"
- id="use82607" />
- </clipPath>
- <clipPath
- id="SVGID_4584_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use82587" />
- </clipPath>
- <clipPath
- id="clipPath101116">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101118" />
- </clipPath>
- <clipPath
- id="clipPath101120">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101122" />
- </clipPath>
- <clipPath
- id="clipPath101124">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101126" />
- </clipPath>
- <clipPath
- id="clipPath101128">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101130" />
- </clipPath>
- <clipPath
- id="clipPath101132">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101134" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4580_"
- overflow="visible"
- id="use82572" />
- </clipPath>
- <clipPath
- id="SVGID_4579_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use82552" />
- </clipPath>
- <clipPath
- id="clipPath101143">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101145" />
- </clipPath>
- <clipPath
- id="clipPath101147">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101149" />
- </clipPath>
- <clipPath
- id="clipPath101151">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101153" />
- </clipPath>
- <clipPath
- id="clipPath101155">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101157" />
- </clipPath>
- <clipPath
- id="clipPath101159">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101161" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4575_"
- overflow="visible"
- id="use82537" />
- </clipPath>
- <clipPath
- id="SVGID_4574_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use82517" />
- </clipPath>
- <clipPath
- id="clipPath101170">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101172" />
- </clipPath>
- <clipPath
- id="clipPath101174">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101176" />
- </clipPath>
- <clipPath
- id="clipPath101178">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101180" />
- </clipPath>
- <clipPath
- id="clipPath101182">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101184" />
- </clipPath>
- <clipPath
- id="clipPath101186">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101188" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4570_"
- overflow="visible"
- id="use82502" />
- </clipPath>
- <clipPath
- id="SVGID_4569_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use82482" />
- </clipPath>
- <clipPath
- id="clipPath101197">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101199" />
- </clipPath>
- <clipPath
- id="clipPath101201">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101203" />
- </clipPath>
- <clipPath
- id="clipPath101205">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101207" />
- </clipPath>
- <clipPath
- id="clipPath101209">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101211" />
- </clipPath>
- <clipPath
- id="clipPath101213">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101215" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4565_"
- overflow="visible"
- id="use82467" />
- </clipPath>
- <clipPath
- id="SVGID_4564_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447" />
- </clipPath>
- <clipPath
- id="clipPath101224">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101226" />
- </clipPath>
- <clipPath
- id="clipPath101228">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101230" />
- </clipPath>
- <clipPath
- id="clipPath101232">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101234" />
- </clipPath>
- <clipPath
- id="clipPath101236">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101238" />
- </clipPath>
- <clipPath
- id="clipPath101240">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101242" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412" />
- </clipPath>
- <clipPath
- id="clipPath101251">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101253" />
- </clipPath>
- <clipPath
- id="clipPath101255">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101257" />
- </clipPath>
- <clipPath
- id="clipPath101259">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101261" />
- </clipPath>
- <clipPath
- id="clipPath101263">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101265" />
- </clipPath>
- <clipPath
- id="clipPath101267">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101269" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_"
- overflow="visible"
- id="use82397" />
- </clipPath>
- <clipPath
- id="SVGID_4554_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82373" />
- </clipPath>
- <clipPath
- id="clipPath101278">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101280" />
- </clipPath>
- <clipPath
- id="SVGID_4552_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_"
- overflow="visible"
- id="use82359" />
- </clipPath>
- <clipPath
- id="clipPath101284">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_"
- overflow="visible"
- id="use101286" />
- </clipPath>
- <clipPath
- id="SVGID_4550_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_"
- overflow="visible"
- id="use82345" />
- </clipPath>
- <clipPath
- id="clipPath101290">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_"
- overflow="visible"
- id="use101292" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_">
- <polygon
- points="-637.65,267.32 -637.642,253.133 -659.18,258.293 -679.997,253.224 -680.004,267.353 "
- id="use82316" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4543_"
- overflow="visible"
- id="use82287" />
- </clipPath>
- <linearGradient
- id="SVGID_4542_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1387.9897,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82261" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82263" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82265" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82267" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82269" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82271" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82273" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82275" />
- </linearGradient>
- <clipPath
- id="SVGID_4541_">
- <polygon
- points="-547.185,267.353 -504.831,267.32 -504.824,253.133 -526.362,258.293 -547.178,253.224 "
- id="use82258" />
- </clipPath>
- <clipPath
- id="SVGID_4525_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_"
- overflow="visible"
- id="use82164" />
- </clipPath>
- <clipPath
- id="SVGID_4527_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_"
- overflow="visible"
- id="use82174" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4528_"
- overflow="visible"
- id="use82182" />
- </clipPath>
- <clipPath
- id="clipPath101336">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_"
- overflow="visible"
- id="use101338" />
- </clipPath>
- <clipPath
- id="SVGID_4532_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4531_"
- overflow="visible"
- id="use82197" />
- </clipPath>
- <clipPath
- id="clipPath101342">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_"
- overflow="visible"
- id="use101344" />
- </clipPath>
- <clipPath
- id="SVGID_4534_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_"
- overflow="visible"
- id="use82209" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4535_"
- overflow="visible"
- id="use82217" />
- </clipPath>
- <clipPath
- id="clipPath101353">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_"
- overflow="visible"
- id="use101355" />
- </clipPath>
- <clipPath
- id="SVGID_4539_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4538_"
- overflow="visible"
- id="use82232" />
- </clipPath>
- <clipPath
- id="SVGID_4523_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82132" />
- </clipPath>
- <clipPath
- id="clipPath101361">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101363" />
- </clipPath>
- <clipPath
- id="clipPath101365">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101367" />
- </clipPath>
- <clipPath
- id="clipPath101369">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101371" />
- </clipPath>
- <clipPath
- id="clipPath101373">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101375" />
- </clipPath>
- <clipPath
- id="clipPath101377">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101379" />
- </clipPath>
- <clipPath
- id="clipPath101381">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101383" />
- </clipPath>
- <clipPath
- id="clipPath101385">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101387" />
- </clipPath>
- <linearGradient
- id="SVGID_4521_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_">
- <polygon
- points="-547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 -504.975,196.685 -504.975,188.287 -547.302,188.287 "
- id="use82113" />
- </clipPath>
- <clipPath
- id="SVGID_4518_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083" />
- </clipPath>
- <clipPath
- id="clipPath101398">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101400" />
- </clipPath>
- <clipPath
- id="clipPath101402">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101404" />
- </clipPath>
- <clipPath
- id="clipPath101406">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101408" />
- </clipPath>
- <clipPath
- id="clipPath101410">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101412" />
- </clipPath>
- <clipPath
- id="clipPath101414">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101416" />
- </clipPath>
- <clipPath
- id="clipPath101418">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101420" />
- </clipPath>
- <clipPath
- id="clipPath101422">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101424" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_">
- <polygon
- points="-590.704,196.685 -571.658,196.685 -571.658,188.287 -613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 "
- id="use82064" />
- </clipPath>
- <clipPath
- id="SVGID_4511_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010" />
- </clipPath>
- <clipPath
- id="clipPath101435">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101437" />
- </clipPath>
- <clipPath
- id="clipPath101439">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101441" />
- </clipPath>
- <clipPath
- id="clipPath101443">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101445" />
- </clipPath>
- <clipPath
- id="clipPath101447">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101449" />
- </clipPath>
- <clipPath
- id="clipPath101451">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101453" />
- </clipPath>
- <clipPath
- id="clipPath101455">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101457" />
- </clipPath>
- <clipPath
- id="clipPath101459">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101461" />
- </clipPath>
- <linearGradient
- id="SVGID_4509_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_">
- <polygon
- points="-657.048,196.685 -638.002,196.685 -638.002,188.287 -680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 "
- id="use81991" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534"
- xlink:href="#SVGID_4509_"
- inkscape:collect="always" />
- <defs
- id="defs84496">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4842_" />
- </defs>
- <clipPath
- id="clipPath103391">
- <use
- id="use103393"
- overflow="visible"
- xlink:href="#SVGID_4842_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <clipPath
- id="SVGID_4873_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84798-7" />
- </clipPath>
- <clipPath
- id="clipPath113428">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113430" />
- </clipPath>
- <clipPath
- id="SVGID_4875_-9">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84810-6" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_-8"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821-2" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823-4" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825-9" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827-7" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_-0">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84818-8" />
- </clipPath>
- <clipPath
- id="clipPath113442">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113444" />
- </clipPath>
- <clipPath
- id="SVGID_4880_-0">
- <rect
- height="10.152"
- width="174.94701"
- y="360.13901"
- x="-679.88898"
- id="use84841-6" />
- </clipPath>
- <clipPath
- id="SVGID_4882_-9">
- <rect
- height="10.153"
- width="174.94701"
- y="360.138"
- x="-679.88898"
- id="use84849-6" />
- </clipPath>
- <clipPath
- id="clipPath113450">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113452" />
- </clipPath>
- <clipPath
- id="clipPath113454">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113456" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_-1"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_-6">
- <polygon
- points="-654.922,273.567 -656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 "
- id="use84771-5" />
- </clipPath>
- <clipPath
- id="SVGID_4868_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84759-4" />
- </clipPath>
- <clipPath
- id="clipPath113465">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113467" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_-6"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735-4" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_-6">
- <polygon
- points="-588.288,273.567 -590.081,276.108 -588.288,278.632 -574.322,278.632 -574.322,273.567 "
- id="use84732-8" />
- </clipPath>
- <clipPath
- id="SVGID_4863_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84720-4" />
- </clipPath>
- <clipPath
- id="clipPath113476">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113478" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_-2"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622-4" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_-1">
- <polygon
- points="-588.288,203.458 -590.081,206 -588.288,208.524 -574.322,208.524 -574.322,203.458 "
- id="use84619-3" />
- </clipPath>
- <clipPath
- id="SVGID_4848_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607-5" />
- </clipPath>
- <clipPath
- id="clipPath113487">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113489" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_-9"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585-1" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_-3">
- <polygon
- points="-654.922,203.458 -656.715,206 -654.922,208.524 -640.956,208.524 -640.956,203.458 "
- id="use84582-2" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-5" />
- </clipPath>
- <clipPath
- id="clipPath113498">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113500" />
- </clipPath>
- <clipPath
- id="clipPath113502">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113504" />
- </clipPath>
- <clipPath
- id="clipPath113506">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113508" />
- </clipPath>
- <clipPath
- id="clipPath113510">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113512" />
- </clipPath>
- <clipPath
- id="clipPath113514">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113516" />
- </clipPath>
- <clipPath
- id="clipPath113518">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113520" />
- </clipPath>
- <clipPath
- id="clipPath113522">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113524" />
- </clipPath>
- <clipPath
- id="SVGID_4838_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445-2" />
- </clipPath>
- <clipPath
- id="clipPath113528">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113530" />
- </clipPath>
- <clipPath
- id="clipPath113532">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113534" />
- </clipPath>
- <clipPath
- id="clipPath113536">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113538" />
- </clipPath>
- <clipPath
- id="clipPath113540">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113542" />
- </clipPath>
- <clipPath
- id="clipPath113544">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113546" />
- </clipPath>
- <clipPath
- id="clipPath113548">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113550" />
- </clipPath>
- <clipPath
- id="clipPath113552">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113554" />
- </clipPath>
- <clipPath
- id="clipPath113556">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113558" />
- </clipPath>
- <clipPath
- id="clipPath113560">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113562" />
- </clipPath>
- <clipPath
- id="clipPath113564">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113566" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_-2"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423-1" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425-8" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427-7" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429-9" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_-5">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420-5" />
- </clipPath>
- <clipPath
- id="SVGID_4833_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390-9" />
- </clipPath>
- <clipPath
- id="clipPath113578">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113580" />
- </clipPath>
- <clipPath
- id="clipPath113582">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113584" />
- </clipPath>
- <clipPath
- id="clipPath113586">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113588" />
- </clipPath>
- <clipPath
- id="clipPath113590">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113592" />
- </clipPath>
- <clipPath
- id="clipPath113594">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113596" />
- </clipPath>
- <clipPath
- id="clipPath113598">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113600" />
- </clipPath>
- <clipPath
- id="clipPath113602">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113604" />
- </clipPath>
- <clipPath
- id="clipPath113606">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113608" />
- </clipPath>
- <clipPath
- id="clipPath113610">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113612" />
- </clipPath>
- <clipPath
- id="clipPath113614">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113616" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_-5"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368-9" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370-7" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372-0" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374-4" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_-7">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_-5"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329-2" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331-0" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333-0" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335-1" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_-3">
- <polygon
- points="-682.208,251.221 -659.342,256.788 -636.356,251.283 -636.358,231.934 -682.207,231.929 "
- id="use84326-6" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_-6"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298-6" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300-1" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302-6" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304-9" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_-9">
- <polygon
- points="-615.653,251.221 -592.788,256.788 -569.802,251.283 -569.804,231.934 -615.653,231.929 "
- id="use84295-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-8">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84007-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4784_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83987-7" />
- </clipPath>
- <clipPath
- id="clipPath113649">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113651" />
- </clipPath>
- <clipPath
- id="clipPath113653">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113655" />
- </clipPath>
- <clipPath
- id="clipPath113657">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113659" />
- </clipPath>
- <clipPath
- id="clipPath113661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113663" />
- </clipPath>
- <clipPath
- id="clipPath113665">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113667" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_-3">
- <path
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83972-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4779_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83952-2" />
- </clipPath>
- <clipPath
- id="clipPath113676">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113678" />
- </clipPath>
- <clipPath
- id="clipPath113680">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113682" />
- </clipPath>
- <clipPath
- id="clipPath113684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113686" />
- </clipPath>
- <clipPath
- id="clipPath113688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113690" />
- </clipPath>
- <clipPath
- id="clipPath113692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113694" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_-4">
- <path
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83937-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4774_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83917-6" />
- </clipPath>
- <clipPath
- id="clipPath113703">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113705" />
- </clipPath>
- <clipPath
- id="clipPath113707">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113709" />
- </clipPath>
- <clipPath
- id="clipPath113711">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113713" />
- </clipPath>
- <clipPath
- id="clipPath113715">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113717" />
- </clipPath>
- <clipPath
- id="clipPath113719">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113721" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_-5">
- <path
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692"
- id="use83902-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4769_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83882-6" />
- </clipPath>
- <clipPath
- id="clipPath113730">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113732" />
- </clipPath>
- <clipPath
- id="clipPath113734">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113736" />
- </clipPath>
- <clipPath
- id="clipPath113738">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113740" />
- </clipPath>
- <clipPath
- id="clipPath113742">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113744" />
- </clipPath>
- <clipPath
- id="clipPath113746">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113748" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_-5">
- <path
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83867-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4764_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83847-5" />
- </clipPath>
- <clipPath
- id="clipPath113757">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113759" />
- </clipPath>
- <clipPath
- id="clipPath113761">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113763" />
- </clipPath>
- <clipPath
- id="clipPath113765">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113767" />
- </clipPath>
- <clipPath
- id="clipPath113769">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113771" />
- </clipPath>
- <clipPath
- id="clipPath113773">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113775" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_-9">
- <path
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83832-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4759_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83812-4" />
- </clipPath>
- <clipPath
- id="clipPath113784">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113786" />
- </clipPath>
- <clipPath
- id="clipPath113788">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113790" />
- </clipPath>
- <clipPath
- id="clipPath113792">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113794" />
- </clipPath>
- <clipPath
- id="clipPath113796">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113798" />
- </clipPath>
- <clipPath
- id="clipPath113800">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113802" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-5">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83797-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83777-2" />
- </clipPath>
- <clipPath
- id="clipPath113811">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113813" />
- </clipPath>
- <clipPath
- id="clipPath113815">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113817" />
- </clipPath>
- <clipPath
- id="clipPath113819">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113821" />
- </clipPath>
- <clipPath
- id="clipPath113823">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113825" />
- </clipPath>
- <clipPath
- id="clipPath113827">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113829" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-0">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83762-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-5">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83552-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4719_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83532-5" />
- </clipPath>
- <clipPath
- id="clipPath113843">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113845" />
- </clipPath>
- <clipPath
- id="clipPath113847">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113849" />
- </clipPath>
- <clipPath
- id="clipPath113851">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113853" />
- </clipPath>
- <clipPath
- id="clipPath113855">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113857" />
- </clipPath>
- <clipPath
- id="clipPath113859">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113861" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_-1">
- <path
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83517-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4714_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83497-9" />
- </clipPath>
- <clipPath
- id="clipPath113870">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113872" />
- </clipPath>
- <clipPath
- id="clipPath113874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113876" />
- </clipPath>
- <clipPath
- id="clipPath113878">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113880" />
- </clipPath>
- <clipPath
- id="clipPath113882">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113884" />
- </clipPath>
- <clipPath
- id="clipPath113886">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113888" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_-6">
- <path
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83482-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4709_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83462-9" />
- </clipPath>
- <clipPath
- id="clipPath113897">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113899" />
- </clipPath>
- <clipPath
- id="clipPath113901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113903" />
- </clipPath>
- <clipPath
- id="clipPath113905">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113907" />
- </clipPath>
- <clipPath
- id="clipPath113909">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113911" />
- </clipPath>
- <clipPath
- id="clipPath113913">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113915" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_-5">
- <path
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83447-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4704_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83427-8" />
- </clipPath>
- <clipPath
- id="clipPath113924">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113926" />
- </clipPath>
- <clipPath
- id="clipPath113928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113930" />
- </clipPath>
- <clipPath
- id="clipPath113932">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113934" />
- </clipPath>
- <clipPath
- id="clipPath113936">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113938" />
- </clipPath>
- <clipPath
- id="clipPath113940">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113942" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_-3">
- <path
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83412-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4699_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83392-0" />
- </clipPath>
- <clipPath
- id="clipPath113951">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113953" />
- </clipPath>
- <clipPath
- id="clipPath113955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113957" />
- </clipPath>
- <clipPath
- id="clipPath113959">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113961" />
- </clipPath>
- <clipPath
- id="clipPath113963">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113965" />
- </clipPath>
- <clipPath
- id="clipPath113967">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113969" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-2">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83377-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83357-4" />
- </clipPath>
- <clipPath
- id="clipPath113978">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113980" />
- </clipPath>
- <clipPath
- id="clipPath113982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113984" />
- </clipPath>
- <clipPath
- id="clipPath113986">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113988" />
- </clipPath>
- <clipPath
- id="clipPath113990">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113992" />
- </clipPath>
- <clipPath
- id="clipPath113994">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113996" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-2">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83342-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-1">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83097-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4654_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83077-9" />
- </clipPath>
- <clipPath
- id="clipPath114010">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114012" />
- </clipPath>
- <clipPath
- id="clipPath114014">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114016" />
- </clipPath>
- <clipPath
- id="clipPath114018">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114020" />
- </clipPath>
- <clipPath
- id="clipPath114022">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114024" />
- </clipPath>
- <clipPath
- id="clipPath114026">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114028" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_-4">
- <path
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83062-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4649_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83042-4" />
- </clipPath>
- <clipPath
- id="clipPath114037">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114039" />
- </clipPath>
- <clipPath
- id="clipPath114041">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114043" />
- </clipPath>
- <clipPath
- id="clipPath114045">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114047" />
- </clipPath>
- <clipPath
- id="clipPath114049">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114051" />
- </clipPath>
- <clipPath
- id="clipPath114053">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114055" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_-1">
- <path
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69"
- id="use83027-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4644_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83007-1" />
- </clipPath>
- <clipPath
- id="clipPath114064">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114066" />
- </clipPath>
- <clipPath
- id="clipPath114068">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114070" />
- </clipPath>
- <clipPath
- id="clipPath114072">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114074" />
- </clipPath>
- <clipPath
- id="clipPath114076">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114078" />
- </clipPath>
- <clipPath
- id="clipPath114080">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114082" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_-8">
- <path
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82992-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4639_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82972-9" />
- </clipPath>
- <clipPath
- id="clipPath114091">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114093" />
- </clipPath>
- <clipPath
- id="clipPath114095">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114097" />
- </clipPath>
- <clipPath
- id="clipPath114099">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114101" />
- </clipPath>
- <clipPath
- id="clipPath114103">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114105" />
- </clipPath>
- <clipPath
- id="clipPath114107">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114109" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_-6">
- <path
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82957-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4634_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82937-8" />
- </clipPath>
- <clipPath
- id="clipPath114118">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114120" />
- </clipPath>
- <clipPath
- id="clipPath114122">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114124" />
- </clipPath>
- <clipPath
- id="clipPath114126">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114128" />
- </clipPath>
- <clipPath
- id="clipPath114130">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114132" />
- </clipPath>
- <clipPath
- id="clipPath114134">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114136" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-1">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82922-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82902-5" />
- </clipPath>
- <clipPath
- id="clipPath114145">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114147" />
- </clipPath>
- <clipPath
- id="clipPath114149">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114151" />
- </clipPath>
- <clipPath
- id="clipPath114153">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114155" />
- </clipPath>
- <clipPath
- id="clipPath114157">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114159" />
- </clipPath>
- <clipPath
- id="clipPath114161">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114163" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-6">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_-6">
- <path
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82642-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4589_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82622-2" />
- </clipPath>
- <clipPath
- id="clipPath114177">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114179" />
- </clipPath>
- <clipPath
- id="clipPath114181">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114183" />
- </clipPath>
- <clipPath
- id="clipPath114185">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114187" />
- </clipPath>
- <clipPath
- id="clipPath114189">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114191" />
- </clipPath>
- <clipPath
- id="clipPath114193">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114195" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_-0">
- <path
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82607-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4584_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82587-5" />
- </clipPath>
- <clipPath
- id="clipPath114204">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114206" />
- </clipPath>
- <clipPath
- id="clipPath114208">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114210" />
- </clipPath>
- <clipPath
- id="clipPath114212">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114214" />
- </clipPath>
- <clipPath
- id="clipPath114216">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114218" />
- </clipPath>
- <clipPath
- id="clipPath114220">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114222" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_-6">
- <path
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82572-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4579_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82552-5" />
- </clipPath>
- <clipPath
- id="clipPath114231">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114233" />
- </clipPath>
- <clipPath
- id="clipPath114235">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114237" />
- </clipPath>
- <clipPath
- id="clipPath114239">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114241" />
- </clipPath>
- <clipPath
- id="clipPath114243">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114245" />
- </clipPath>
- <clipPath
- id="clipPath114247">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114249" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_-2">
- <path
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69"
- id="use82537-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4574_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82517-2" />
- </clipPath>
- <clipPath
- id="clipPath114258">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114260" />
- </clipPath>
- <clipPath
- id="clipPath114262">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114264" />
- </clipPath>
- <clipPath
- id="clipPath114266">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114268" />
- </clipPath>
- <clipPath
- id="clipPath114270">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114272" />
- </clipPath>
- <clipPath
- id="clipPath114274">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114276" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_-1">
- <path
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82502-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4569_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82482-9" />
- </clipPath>
- <clipPath
- id="clipPath114285">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114287" />
- </clipPath>
- <clipPath
- id="clipPath114289">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114291" />
- </clipPath>
- <clipPath
- id="clipPath114293">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114295" />
- </clipPath>
- <clipPath
- id="clipPath114297">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114299" />
- </clipPath>
- <clipPath
- id="clipPath114301">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114303" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_-1">
- <path
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82467-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82447-3" />
- </clipPath>
- <clipPath
- id="clipPath114312">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114314" />
- </clipPath>
- <clipPath
- id="clipPath114316">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114318" />
- </clipPath>
- <clipPath
- id="clipPath114320">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114322" />
- </clipPath>
- <clipPath
- id="clipPath114324">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114326" />
- </clipPath>
- <clipPath
- id="clipPath114328">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114330" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_-1">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-0" />
- </clipPath>
- <clipPath
- id="clipPath114339">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114341" />
- </clipPath>
- <clipPath
- id="clipPath114343">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114345" />
- </clipPath>
- <clipPath
- id="clipPath114347">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114349" />
- </clipPath>
- <clipPath
- id="clipPath114351">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114353" />
- </clipPath>
- <clipPath
- id="clipPath114355">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114357" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-5">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82397-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4552_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82359-9" />
- </clipPath>
- <clipPath
- id="clipPath114366">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114368" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-2" />
- </clipPath>
- <clipPath
- id="clipPath114372">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114374" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_-2"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319-4" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321-6" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323-0" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325-7" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327-0" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329-5" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_-4">
- <polygon
- points="-659.18,258.293 -679.997,253.224 -680.004,267.353 -637.65,267.32 -637.642,253.133 "
- id="use82316-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_-9"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290-3" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292-3" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294-2" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296-5" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298-7" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300-2" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_-2">
- <polygon
- points="-593.085,258.293 -613.901,253.224 -613.908,267.353 -571.554,267.32 -571.547,253.133 "
- id="use82287-1" />
- </clipPath>
- <clipPath
- id="SVGID_4525_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82164-1" />
- </clipPath>
- <clipPath
- id="SVGID_4527_-8">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82174-4" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_-6"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185-5" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_-6">
- <rect
- height="64.037003"
- width="174.953"
- y="293.367"
- x="-679.57202"
- id="use82182-7" />
- </clipPath>
- <clipPath
- id="clipPath114407">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use114409" />
- </clipPath>
- <clipPath
- id="SVGID_4532_-7">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82197-2" />
- </clipPath>
- <clipPath
- id="clipPath114413">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114415" />
- </clipPath>
- <clipPath
- id="SVGID_4534_-4">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82209-7" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_-9"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_-8">
- <rect
- height="64.037003"
- width="45.659"
- y="293.367"
- x="-441.45999"
- id="use82217-2" />
- </clipPath>
- <clipPath
- id="clipPath114424">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use114426" />
- </clipPath>
- <clipPath
- id="SVGID_4539_-9">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82232-6" />
- </clipPath>
- <clipPath
- id="SVGID_4518_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083-2" />
- </clipPath>
- <clipPath
- id="clipPath114432">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114434" />
- </clipPath>
- <clipPath
- id="clipPath114436">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114438" />
- </clipPath>
- <clipPath
- id="clipPath114440">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114442" />
- </clipPath>
- <clipPath
- id="clipPath114444">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114446" />
- </clipPath>
- <clipPath
- id="clipPath114448">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114450" />
- </clipPath>
- <clipPath
- id="clipPath114452">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114454" />
- </clipPath>
- <clipPath
- id="clipPath114456">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114458" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_-9"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067-5" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069-0" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071-8" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_-1">
- <polygon
- points="-613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 -590.704,196.685 -571.658,196.685 -571.658,188.287 "
- id="use82064-3" />
- </clipPath>
- <clipPath
- id="SVGID_4511_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010-2" />
- </clipPath>
- <clipPath
- id="clipPath114469">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114471" />
- </clipPath>
- <clipPath
- id="clipPath114473">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114475" />
- </clipPath>
- <clipPath
- id="clipPath114477">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114479" />
- </clipPath>
- <clipPath
- id="clipPath114481">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114483" />
- </clipPath>
- <clipPath
- id="clipPath114485">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114487" />
- </clipPath>
- <clipPath
- id="clipPath114489">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114491" />
- </clipPath>
- <clipPath
- id="clipPath114493">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114495" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534-0"
- xlink:href="#SVGID_4509_-4"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4509_-4"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994-0" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996-4" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998-3" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_-0">
- <polygon
- points="-680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 -657.048,196.685 -638.002,196.685 -638.002,188.287 "
- id="use81991-1" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient115446"
- xlink:href="#SVGID_4509_-4"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4657_-1-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-8-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-8-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-1-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_-2-7"
- overflow="visible"
- id="use83097-8-0" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-0-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-2-6" />
- </clipPath>
- <clipPath
- id="clipPath118798">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use118800" />
- </clipPath>
- <defs
- id="defs83093-1-3">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4655_-2-7"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102313-6-0">
- <use
- id="use102315-6-2"
- overflow="visible"
- xlink:href="#SVGID_4655_-2-7"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102317-9-1">
- <stop
- id="stop102319-7-7"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102321-3-3"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <clipPath
- id="SVGID_4873_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84798-79" />
- </clipPath>
- <clipPath
- id="clipPath119610">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119612" />
- </clipPath>
- <clipPath
- id="SVGID_4875_-5">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84810-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_-3"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821-4" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823-2" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825-99" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827-79" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_-3">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84818-5" />
- </clipPath>
- <clipPath
- id="clipPath119624">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119626" />
- </clipPath>
- <clipPath
- id="SVGID_4880_-1">
- <rect
- height="10.152"
- width="174.94701"
- y="360.13901"
- x="-679.88898"
- id="use84841-0" />
- </clipPath>
- <clipPath
- id="SVGID_4882_-6">
- <rect
- height="10.153"
- width="174.94701"
- y="360.138"
- x="-679.88898"
- id="use84849-7" />
- </clipPath>
- <clipPath
- id="clipPath119632">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119634" />
- </clipPath>
- <clipPath
- id="clipPath119636">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119638" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_-0"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774-61" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_-2">
- <polygon
- points="-654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 -656.715,276.108 "
- id="use84771-1" />
- </clipPath>
- <clipPath
- id="SVGID_4868_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84759-44" />
- </clipPath>
- <clipPath
- id="clipPath119647">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119649" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_-5"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_-0">
- <polygon
- points="-588.288,278.632 -574.322,278.632 -574.322,273.567 -588.288,273.567 -590.081,276.108 "
- id="use84732-6" />
- </clipPath>
- <clipPath
- id="SVGID_4863_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84720-5" />
- </clipPath>
- <clipPath
- id="clipPath119658">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119660" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_-8"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622-0" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_-19">
- <polygon
- points="-588.288,208.524 -574.322,208.524 -574.322,203.458 -588.288,203.458 -590.081,206 "
- id="use84619-38" />
- </clipPath>
- <clipPath
- id="SVGID_4848_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607-8" />
- </clipPath>
- <clipPath
- id="clipPath119669">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119671" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_-3"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_-4">
- <polygon
- points="-654.922,208.524 -640.956,208.524 -640.956,203.458 -654.922,203.458 -656.715,206 "
- id="use84582-3" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-6" />
- </clipPath>
- <clipPath
- id="clipPath119680">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119682" />
- </clipPath>
- <clipPath
- id="clipPath119684">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119686" />
- </clipPath>
- <clipPath
- id="clipPath119688">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119690" />
- </clipPath>
- <clipPath
- id="clipPath119692">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119694" />
- </clipPath>
- <clipPath
- id="clipPath119696">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119698" />
- </clipPath>
- <clipPath
- id="clipPath119700">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119702" />
- </clipPath>
- <clipPath
- id="clipPath119704">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119706" />
- </clipPath>
- <clipPath
- id="SVGID_4838_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445-4" />
- </clipPath>
- <clipPath
- id="clipPath119710">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119712" />
- </clipPath>
- <clipPath
- id="clipPath119714">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119716" />
- </clipPath>
- <clipPath
- id="clipPath119718">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119720" />
- </clipPath>
- <clipPath
- id="clipPath119722">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119724" />
- </clipPath>
- <clipPath
- id="clipPath119726">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119728" />
- </clipPath>
- <clipPath
- id="clipPath119730">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119732" />
- </clipPath>
- <clipPath
- id="clipPath119734">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119736" />
- </clipPath>
- <clipPath
- id="clipPath119738">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119740" />
- </clipPath>
- <clipPath
- id="clipPath119742">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119744" />
- </clipPath>
- <clipPath
- id="clipPath119746">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119748" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_-1"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423-5" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425-7" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427-8" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429-1" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_-3">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420-1" />
- </clipPath>
- <clipPath
- id="SVGID_4833_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390-5" />
- </clipPath>
- <clipPath
- id="clipPath119760">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119762" />
- </clipPath>
- <clipPath
- id="clipPath119764">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119766" />
- </clipPath>
- <clipPath
- id="clipPath119768">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119770" />
- </clipPath>
- <clipPath
- id="clipPath119772">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119774" />
- </clipPath>
- <clipPath
- id="clipPath119776">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119778" />
- </clipPath>
- <clipPath
- id="clipPath119780">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119782" />
- </clipPath>
- <clipPath
- id="clipPath119784">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119786" />
- </clipPath>
- <clipPath
- id="clipPath119788">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119790" />
- </clipPath>
- <clipPath
- id="clipPath119792">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119794" />
- </clipPath>
- <clipPath
- id="clipPath119796">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119798" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_-9"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368-1" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370-0" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372-8" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374-42" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376-15" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_-5">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_-6"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329-5" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331-2" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333-3" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335-9" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_-8">
- <polygon
- points="-636.356,251.283 -636.358,231.934 -682.207,231.929 -682.208,251.221 -659.342,256.788 "
- id="use84326-1" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_-4"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298-1" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300-7" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302-5" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304-7" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_-6">
- <polygon
- points="-569.802,251.283 -569.804,231.934 -615.653,231.929 -615.653,251.221 -592.788,256.788 "
- id="use84295-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-2">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84007-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4784_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83987-5" />
- </clipPath>
- <clipPath
- id="clipPath119831">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119833" />
- </clipPath>
- <clipPath
- id="clipPath119835">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119837" />
- </clipPath>
- <clipPath
- id="clipPath119839">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119841" />
- </clipPath>
- <clipPath
- id="clipPath119843">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119845" />
- </clipPath>
- <clipPath
- id="clipPath119847">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119849" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_-1">
- <path
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83972-45"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4779_-85">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83952-3" />
- </clipPath>
- <clipPath
- id="clipPath119858">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119860" />
- </clipPath>
- <clipPath
- id="clipPath119862">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119864" />
- </clipPath>
- <clipPath
- id="clipPath119866">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119868" />
- </clipPath>
- <clipPath
- id="clipPath119870">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119872" />
- </clipPath>
- <clipPath
- id="clipPath119874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119876" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_-7">
- <path
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83937-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4774_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83917-8" />
- </clipPath>
- <clipPath
- id="clipPath119885">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119887" />
- </clipPath>
- <clipPath
- id="clipPath119889">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119891" />
- </clipPath>
- <clipPath
- id="clipPath119893">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119895" />
- </clipPath>
- <clipPath
- id="clipPath119897">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119899" />
- </clipPath>
- <clipPath
- id="clipPath119901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119903" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_-2">
- <path
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692"
- id="use83902-70"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4769_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83882-7" />
- </clipPath>
- <clipPath
- id="clipPath119912">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119914" />
- </clipPath>
- <clipPath
- id="clipPath119916">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119918" />
- </clipPath>
- <clipPath
- id="clipPath119920">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119922" />
- </clipPath>
- <clipPath
- id="clipPath119924">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119926" />
- </clipPath>
- <clipPath
- id="clipPath119928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119930" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870-91" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_-6">
- <path
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83867-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4764_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83847-4" />
- </clipPath>
- <clipPath
- id="clipPath119939">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119941" />
- </clipPath>
- <clipPath
- id="clipPath119943">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119945" />
- </clipPath>
- <clipPath
- id="clipPath119947">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119949" />
- </clipPath>
- <clipPath
- id="clipPath119951">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119953" />
- </clipPath>
- <clipPath
- id="clipPath119955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119957" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_-3">
- <path
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83832-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4759_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83812-8" />
- </clipPath>
- <clipPath
- id="clipPath119966">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119968" />
- </clipPath>
- <clipPath
- id="clipPath119970">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119972" />
- </clipPath>
- <clipPath
- id="clipPath119974">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119976" />
- </clipPath>
- <clipPath
- id="clipPath119978">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119980" />
- </clipPath>
- <clipPath
- id="clipPath119982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119984" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-76" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-1">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83797-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83777-9" />
- </clipPath>
- <clipPath
- id="clipPath119993">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119995" />
- </clipPath>
- <clipPath
- id="clipPath119997">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119999" />
- </clipPath>
- <clipPath
- id="clipPath120001">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120003" />
- </clipPath>
- <clipPath
- id="clipPath120005">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120007" />
- </clipPath>
- <clipPath
- id="clipPath120009">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120011" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-6">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83762-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4749_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83742-4" />
- </clipPath>
- <clipPath
- id="clipPath120020">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120022" />
- </clipPath>
- <clipPath
- id="clipPath120024">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120026" />
- </clipPath>
- <clipPath
- id="clipPath120028">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120030" />
- </clipPath>
- <clipPath
- id="clipPath120032">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120034" />
- </clipPath>
- <clipPath
- id="clipPath120036">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120038" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-85" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-8">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83552-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4719_-85">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83532-8" />
- </clipPath>
- <clipPath
- id="clipPath120047">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120049" />
- </clipPath>
- <clipPath
- id="clipPath120051">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120053" />
- </clipPath>
- <clipPath
- id="clipPath120055">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120057" />
- </clipPath>
- <clipPath
- id="clipPath120059">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120061" />
- </clipPath>
- <clipPath
- id="clipPath120063">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120065" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_-0">
- <path
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83517-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4714_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83497-8" />
- </clipPath>
- <clipPath
- id="clipPath120074">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120076" />
- </clipPath>
- <clipPath
- id="clipPath120078">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120080" />
- </clipPath>
- <clipPath
- id="clipPath120082">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120084" />
- </clipPath>
- <clipPath
- id="clipPath120086">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120088" />
- </clipPath>
- <clipPath
- id="clipPath120090">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120092" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_-68">
- <path
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83482-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4709_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83462-0" />
- </clipPath>
- <clipPath
- id="clipPath120101">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120103" />
- </clipPath>
- <clipPath
- id="clipPath120105">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120107" />
- </clipPath>
- <clipPath
- id="clipPath120109">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120111" />
- </clipPath>
- <clipPath
- id="clipPath120113">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120115" />
- </clipPath>
- <clipPath
- id="clipPath120117">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120119" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450-77" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_-2">
- <path
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83447-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4704_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83427-3" />
- </clipPath>
- <clipPath
- id="clipPath120128">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120130" />
- </clipPath>
- <clipPath
- id="clipPath120132">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120134" />
- </clipPath>
- <clipPath
- id="clipPath120136">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120138" />
- </clipPath>
- <clipPath
- id="clipPath120140">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120142" />
- </clipPath>
- <clipPath
- id="clipPath120144">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120146" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_-5">
- <path
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83412-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4699_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83392-3" />
- </clipPath>
- <clipPath
- id="clipPath120155">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120157" />
- </clipPath>
- <clipPath
- id="clipPath120159">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120161" />
- </clipPath>
- <clipPath
- id="clipPath120163">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120165" />
- </clipPath>
- <clipPath
- id="clipPath120167">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120169" />
- </clipPath>
- <clipPath
- id="clipPath120171">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120173" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-62"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-20">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83377-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83357-2" />
- </clipPath>
- <clipPath
- id="clipPath120182">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120184" />
- </clipPath>
- <clipPath
- id="clipPath120186">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120188" />
- </clipPath>
- <clipPath
- id="clipPath120190">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120192" />
- </clipPath>
- <clipPath
- id="clipPath120194">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120196" />
- </clipPath>
- <clipPath
- id="clipPath120198">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120200" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-7">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83342-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4689_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83322-7" />
- </clipPath>
- <clipPath
- id="clipPath120209">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120211" />
- </clipPath>
- <clipPath
- id="clipPath120213">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120215" />
- </clipPath>
- <clipPath
- id="clipPath120217">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120219" />
- </clipPath>
- <clipPath
- id="clipPath120221">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120223" />
- </clipPath>
- <clipPath
- id="clipPath120225">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120227" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-7">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83097-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4654_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83077-8" />
- </clipPath>
- <clipPath
- id="clipPath120236">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120238" />
- </clipPath>
- <clipPath
- id="clipPath120240">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120242" />
- </clipPath>
- <clipPath
- id="clipPath120244">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120246" />
- </clipPath>
- <clipPath
- id="clipPath120248">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120250" />
- </clipPath>
- <clipPath
- id="clipPath120252">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120254" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065-42" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_-1">
- <path
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83062-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4649_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83042-49" />
- </clipPath>
- <clipPath
- id="clipPath120263">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120265" />
- </clipPath>
- <clipPath
- id="clipPath120267">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120269" />
- </clipPath>
- <clipPath
- id="clipPath120271">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120273" />
- </clipPath>
- <clipPath
- id="clipPath120275">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120277" />
- </clipPath>
- <clipPath
- id="clipPath120279">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120281" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032-35" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_-8">
- <path
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69"
- id="use83027-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4644_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83007-0" />
- </clipPath>
- <clipPath
- id="clipPath120290">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120292" />
- </clipPath>
- <clipPath
- id="clipPath120294">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120296" />
- </clipPath>
- <clipPath
- id="clipPath120298">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120300" />
- </clipPath>
- <clipPath
- id="clipPath120302">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120304" />
- </clipPath>
- <clipPath
- id="clipPath120306">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120308" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_-9">
- <path
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82992-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4639_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82972-97" />
- </clipPath>
- <clipPath
- id="clipPath120317">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120319" />
- </clipPath>
- <clipPath
- id="clipPath120321">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120323" />
- </clipPath>
- <clipPath
- id="clipPath120325">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120327" />
- </clipPath>
- <clipPath
- id="clipPath120329">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120331" />
- </clipPath>
- <clipPath
- id="clipPath120333">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120335" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_-2">
- <path
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82957-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4634_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82937-3" />
- </clipPath>
- <clipPath
- id="clipPath120344">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120346" />
- </clipPath>
- <clipPath
- id="clipPath120348">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120350" />
- </clipPath>
- <clipPath
- id="clipPath120352">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120354" />
- </clipPath>
- <clipPath
- id="clipPath120356">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120358" />
- </clipPath>
- <clipPath
- id="clipPath120360">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120362" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-64" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-9">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82922-36"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82902-4" />
- </clipPath>
- <clipPath
- id="clipPath120371">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120373" />
- </clipPath>
- <clipPath
- id="clipPath120375">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120377" />
- </clipPath>
- <clipPath
- id="clipPath120379">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120381" />
- </clipPath>
- <clipPath
- id="clipPath120383">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120385" />
- </clipPath>
- <clipPath
- id="clipPath120387">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120389" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-2">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4624_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82867-2" />
- </clipPath>
- <clipPath
- id="clipPath120398">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120400" />
- </clipPath>
- <clipPath
- id="clipPath120402">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120404" />
- </clipPath>
- <clipPath
- id="clipPath120406">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120408" />
- </clipPath>
- <clipPath
- id="clipPath120410">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120412" />
- </clipPath>
- <clipPath
- id="clipPath120414">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120416" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_-1">
- <path
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82642-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4589_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82622-0" />
- </clipPath>
- <clipPath
- id="clipPath120425">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120427" />
- </clipPath>
- <clipPath
- id="clipPath120429">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120431" />
- </clipPath>
- <clipPath
- id="clipPath120433">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120435" />
- </clipPath>
- <clipPath
- id="clipPath120437">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120439" />
- </clipPath>
- <clipPath
- id="clipPath120441">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120443" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_-7">
- <path
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82607-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4584_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82587-1" />
- </clipPath>
- <clipPath
- id="clipPath120452">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120454" />
- </clipPath>
- <clipPath
- id="clipPath120456">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120458" />
- </clipPath>
- <clipPath
- id="clipPath120460">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120462" />
- </clipPath>
- <clipPath
- id="clipPath120464">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120466" />
- </clipPath>
- <clipPath
- id="clipPath120468">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120470" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577-03" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_-7">
- <path
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82572-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4579_-65">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82552-0" />
- </clipPath>
- <clipPath
- id="clipPath120479">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120481" />
- </clipPath>
- <clipPath
- id="clipPath120483">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120485" />
- </clipPath>
- <clipPath
- id="clipPath120487">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120489" />
- </clipPath>
- <clipPath
- id="clipPath120491">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120493" />
- </clipPath>
- <clipPath
- id="clipPath120495">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120497" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_-5">
- <path
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69"
- id="use82537-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4574_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82517-7" />
- </clipPath>
- <clipPath
- id="clipPath120506">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120508" />
- </clipPath>
- <clipPath
- id="clipPath120510">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120512" />
- </clipPath>
- <clipPath
- id="clipPath120514">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120516" />
- </clipPath>
- <clipPath
- id="clipPath120518">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120520" />
- </clipPath>
- <clipPath
- id="clipPath120522">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120524" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_-3">
- <path
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82502-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4569_-54">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82482-1" />
- </clipPath>
- <clipPath
- id="clipPath120533">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120535" />
- </clipPath>
- <clipPath
- id="clipPath120537">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120539" />
- </clipPath>
- <clipPath
- id="clipPath120541">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120543" />
- </clipPath>
- <clipPath
- id="clipPath120545">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120547" />
- </clipPath>
- <clipPath
- id="clipPath120549">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120551" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_-8">
- <path
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82467-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82447-9" />
- </clipPath>
- <clipPath
- id="clipPath120560">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120562" />
- </clipPath>
- <clipPath
- id="clipPath120564">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120566" />
- </clipPath>
- <clipPath
- id="clipPath120568">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120570" />
- </clipPath>
- <clipPath
- id="clipPath120572">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120574" />
- </clipPath>
- <clipPath
- id="clipPath120576">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120578" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435-29" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_-11">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-1" />
- </clipPath>
- <clipPath
- id="clipPath120587">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120589" />
- </clipPath>
- <clipPath
- id="clipPath120591">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120593" />
- </clipPath>
- <clipPath
- id="clipPath120595">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120597" />
- </clipPath>
- <clipPath
- id="clipPath120599">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120601" />
- </clipPath>
- <clipPath
- id="clipPath120603">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120605" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-7">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82397-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4552_-54">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82359-2" />
- </clipPath>
- <clipPath
- id="clipPath120614">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120616" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-5" />
- </clipPath>
- <clipPath
- id="clipPath120620">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120622" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_-8"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319-6" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321-0" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323-4" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325-70" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327-00" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329-8" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331-67" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_-3">
- <polygon
- points="-680.004,267.353 -637.65,267.32 -637.642,253.133 -659.18,258.293 -679.997,253.224 "
- id="use82316-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_-93"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290-1" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292-0" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294-1" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296-0" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298-2" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300-3" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302-1" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_-1">
- <polygon
- points="-613.908,267.353 -571.554,267.32 -571.547,253.133 -593.085,258.293 -613.901,253.224 "
- id="use82287-5" />
- </clipPath>
- <clipPath
- id="SVGID_4525_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82164-7" />
- </clipPath>
- <clipPath
- id="SVGID_4527_-9">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82174-42" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_-9"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_-4">
- <rect
- height="64.037003"
- width="174.953"
- y="293.367"
- x="-679.57202"
- id="use82182-9" />
- </clipPath>
- <clipPath
- id="clipPath120655">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use120657" />
- </clipPath>
- <clipPath
- id="SVGID_4532_-5">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82197-4" />
- </clipPath>
- <clipPath
- id="clipPath120661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120663" />
- </clipPath>
- <clipPath
- id="SVGID_4534_-1">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82209-3" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_-2"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_-89">
- <rect
- height="64.037003"
- width="45.659"
- y="293.367"
- x="-441.45999"
- id="use82217-3" />
- </clipPath>
- <clipPath
- id="clipPath120672">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use120674" />
- </clipPath>
- <clipPath
- id="SVGID_4539_-1">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82232-2" />
- </clipPath>
- <clipPath
- id="SVGID_4518_-35">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083-3" />
- </clipPath>
- <clipPath
- id="clipPath120680">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120682" />
- </clipPath>
- <clipPath
- id="clipPath120684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120686" />
- </clipPath>
- <clipPath
- id="clipPath120688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120690" />
- </clipPath>
- <clipPath
- id="clipPath120692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120694" />
- </clipPath>
- <clipPath
- id="clipPath120696">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120698" />
- </clipPath>
- <clipPath
- id="clipPath120700">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120702" />
- </clipPath>
- <clipPath
- id="clipPath120704">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120706" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_-7"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067-0" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069-6" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071-2" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_-11">
- <polygon
- points="-590.704,196.685 -571.658,196.685 -571.658,188.287 -613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 "
- id="use82064-1" />
- </clipPath>
- <clipPath
- id="SVGID_4511_-38">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010-5" />
- </clipPath>
- <clipPath
- id="clipPath120717">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120719" />
- </clipPath>
- <clipPath
- id="clipPath120721">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120723" />
- </clipPath>
- <clipPath
- id="clipPath120725">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120727" />
- </clipPath>
- <clipPath
- id="clipPath120729">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120731" />
- </clipPath>
- <clipPath
- id="clipPath120733">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120735" />
- </clipPath>
- <clipPath
- id="clipPath120737">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120739" />
- </clipPath>
- <clipPath
- id="clipPath120741">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120743" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534-4"
- xlink:href="#SVGID_4509_-0"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4509_-0"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994-08" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996-2" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998-7" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_-3">
- <polygon
- points="-657.048,196.685 -638.002,196.685 -638.002,188.287 -680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 "
- id="use81991-0" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient121727"
- xlink:href="#SVGID_4509_-0"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200"
- id="linearGradient126204"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200"
- id="linearGradient126210"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-7"
- id="linearGradient126210-7"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-7"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-2" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126228"
- xlink:href="#linearGradient126200-7"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2"
- id="linearGradient126210-9"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126435"
- xlink:href="#linearGradient126200-2"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2"
- id="linearGradient126487"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218"
- gradientTransform="translate(190.5,52.1205)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0"
- id="linearGradient126520-9"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2-0"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7-1" />
- </linearGradient>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-2"
- id="linearGradient126520-4"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2-2"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4843_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-9" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-2" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-9" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-1-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-9-6" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-8-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-2-2" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_"
- overflow="visible"
- id="use84656-1" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use84644-1" />
- </clipPath>
- <clipPath
- id="clipPath126768">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use126770" />
- </clipPath>
- <linearGradient
- id="SVGID_4841_-7"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,942.8785,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84478-8" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84480-2" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84482-3" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84484-9" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84486-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4840_-7">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-531.92297"
- id="use84475-9" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use82132-5" />
- </clipPath>
- <clipPath
- id="clipPath126782">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126784" />
- </clipPath>
- <clipPath
- id="clipPath126786">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126788" />
- </clipPath>
- <clipPath
- id="clipPath126790">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126792" />
- </clipPath>
- <clipPath
- id="clipPath126794">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126796" />
- </clipPath>
- <clipPath
- id="clipPath126798">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126800" />
- </clipPath>
- <clipPath
- id="clipPath126802">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126804" />
- </clipPath>
- <clipPath
- id="clipPath126806">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126808" />
- </clipPath>
- <linearGradient
- id="SVGID_4521_-3"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_"
- overflow="visible"
- id="use82113-2" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904"
- xlink:href="#SVGID_4521_-3"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4856_-4-6"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-0" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-2">
- <polygon
- points="-507.673,203.458 -521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 "
- id="use84656-1-4" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84644-1-3" />
- </clipPath>
- <clipPath
- id="clipPath127140">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127142" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82132-5-2" />
- </clipPath>
- <clipPath
- id="clipPath127146">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127148" />
- </clipPath>
- <clipPath
- id="clipPath127150">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127152" />
- </clipPath>
- <clipPath
- id="clipPath127154">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127156" />
- </clipPath>
- <clipPath
- id="clipPath127158">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127160" />
- </clipPath>
- <clipPath
- id="clipPath127162">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127164" />
- </clipPath>
- <clipPath
- id="clipPath127166">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127168" />
- </clipPath>
- <clipPath
- id="clipPath127170">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127172" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-6"
- xlink:href="#SVGID_4521_-3-3"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-3"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-3" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-5" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-4" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-3">
- <polygon
- points="-524.02,196.685 -504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 "
- id="use82113-2-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4-1"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-24">
- <polygon
- id="use84656-1-9"
- points="-521.64,208.524 -507.673,208.524 -507.673,203.458 -521.64,203.458 -523.432,206 " />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-0">
- <rect
- id="use84644-1-6"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9068">
- <rect
- id="use9070"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-5">
- <rect
- id="use82132-5-25"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9074">
- <rect
- id="use9076"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9078">
- <rect
- id="use9080"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9082">
- <rect
- id="use9084"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9086">
- <rect
- id="use9088"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9090">
- <rect
- id="use9092"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9094">
- <rect
- id="use9096"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <clipPath
- id="clipPath9098">
- <rect
- id="use9100"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-61"
- xlink:href="#SVGID_4521_-3-0"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-0"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-7" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-2" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-1" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-34" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-6">
- <polygon
- id="use82113-2-5"
- points="-528.257,196.685 -526.139,198.478 -524.02,196.685 -504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 " />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0"
- id="linearGradient9382"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(28.50002,64.927434)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <clipPath
- id="SVGID_4550_-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8"
- overflow="visible"
- id="use82345-0" />
- </clipPath>
- <clipPath
- id="clipPath9448">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8"
- overflow="visible"
- id="use9450" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-03" />
- </clipPath>
- <clipPath
- id="clipPath9526">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9528" />
- </clipPath>
- <clipPath
- id="clipPath9530">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9532" />
- </clipPath>
- <clipPath
- id="clipPath9534">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9536" />
- </clipPath>
- <clipPath
- id="clipPath9538">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9540" />
- </clipPath>
- <clipPath
- id="clipPath9542">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9544" />
- </clipPath>
- <defs
- id="defs82478">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4568_" />
- </defs>
- <clipPath
- id="clipPath101841">
- <use
- id="use101843"
- overflow="visible"
- xlink:href="#SVGID_4568_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <defs
- id="defs82443">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4563_" />
- </defs>
- <clipPath
- id="clipPath101814">
- <use
- id="use101816"
- overflow="visible"
- xlink:href="#SVGID_4563_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-4" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3-4-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-0-9" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3-43">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-01" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-9" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2-3" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-39">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-27" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-6-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8-0"
- overflow="visible"
- id="use82345-0-6" />
- </clipPath>
- <clipPath
- id="clipPath9882">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8-0"
- overflow="visible"
- id="use9884" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4-65"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-8" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-4">
- <polygon
- points="-523.432,206 -521.64,208.524 -507.673,208.524 -507.673,203.458 -521.64,203.458 "
- id="use84656-1-0" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84644-1-67" />
- </clipPath>
- <clipPath
- id="clipPath9893">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9895" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82132-5-21" />
- </clipPath>
- <clipPath
- id="clipPath9899">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9901" />
- </clipPath>
- <clipPath
- id="clipPath9903">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9905" />
- </clipPath>
- <clipPath
- id="clipPath9907">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9909" />
- </clipPath>
- <clipPath
- id="clipPath9911">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9913" />
- </clipPath>
- <clipPath
- id="clipPath9915">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9917" />
- </clipPath>
- <clipPath
- id="clipPath9919">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9921" />
- </clipPath>
- <clipPath
- id="clipPath9923">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9925" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-5"
- xlink:href="#SVGID_4521_-3-09"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-09"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-0" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-1" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-5" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-2">
- <polygon
- points="-504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 "
- id="use82113-2-6" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-1" />
- </clipPath>
- <clipPath
- id="SVGID_4873_-98">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use84798-5" />
- </clipPath>
- <clipPath
- id="clipPath9939">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use9941" />
- </clipPath>
- <clipPath
- id="SVGID_4875_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4874_-4"
- overflow="visible"
- id="use84810-3" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_-2"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821-5" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823-1" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825-0" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4876_-1"
- overflow="visible"
- id="use84818-6" />
- </clipPath>
- <clipPath
- id="clipPath9953">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use9955" />
- </clipPath>
- <clipPath
- id="SVGID_4880_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4879_-3"
- overflow="visible"
- id="use84841-2" />
- </clipPath>
- <clipPath
- id="SVGID_4882_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4881_-4"
- overflow="visible"
- id="use84849-9" />
- </clipPath>
- <clipPath
- id="clipPath9961">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use9963" />
- </clipPath>
- <clipPath
- id="clipPath9965">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use9967" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_-4"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774-5" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4869_-7"
- overflow="visible"
- id="use84771-7" />
- </clipPath>
- <clipPath
- id="SVGID_4868_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_-0"
- overflow="visible"
- id="use84759-2" />
- </clipPath>
- <clipPath
- id="clipPath9976">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_-0"
- overflow="visible"
- id="use9978" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_-8"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735-7" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737-90" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_-5">
- <polygon
- points="-574.322,278.632 -574.322,273.567 -588.288,273.567 -590.081,276.108 -588.288,278.632 "
- id="use84732-4" />
- </clipPath>
- <clipPath
- id="SVGID_4863_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84720-7" />
- </clipPath>
- <clipPath
- id="clipPath9987">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9989" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-1" />
- </clipPath>
- <clipPath
- id="clipPath9993">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use9995" />
- </clipPath>
- <clipPath
- id="clipPath9997">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use9999" />
- </clipPath>
- <clipPath
- id="clipPath10001">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use10003" />
- </clipPath>
- <clipPath
- id="clipPath10005">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use10007" />
- </clipPath>
- <clipPath
- id="clipPath10009">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use10011" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_-8"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329-0" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331-5" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333-31" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335-7" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4826_-2"
- overflow="visible"
- id="use84326-14" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-61-3"
- xlink:href="#SVGID_4521_-3-0-3"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-0-3"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-7-7" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-2-5" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-1-8" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-34-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-6-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_-5-8"
- overflow="visible"
- id="use82113-2-5-0" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-5-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use82132-5-25-1" />
- </clipPath>
- <clipPath
- id="clipPath10031">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10033" />
- </clipPath>
- <clipPath
- id="clipPath10035">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10037" />
- </clipPath>
- <clipPath
- id="clipPath10039">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10041" />
- </clipPath>
- <clipPath
- id="clipPath10043">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10045" />
- </clipPath>
- <clipPath
- id="clipPath10047">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10049" />
- </clipPath>
- <clipPath
- id="clipPath10051">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10053" />
- </clipPath>
- <clipPath
- id="clipPath10055">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8-1"
- overflow="visible"
- id="use10057" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-0-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_-4-9"
- overflow="visible"
- id="use84644-1-6-9" />
- </clipPath>
- <clipPath
- id="clipPath10061">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_-4-9"
- overflow="visible"
- id="use10063" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4-1-0"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-9-3" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-0-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-24-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_-1-2"
- overflow="visible"
- id="use84656-1-9-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_-8"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298-2" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300-4" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302-9" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304-0" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_-4">
- <polygon
- points="-569.804,231.934 -615.653,231.929 -615.653,251.221 -592.788,256.788 -569.802,251.283 "
- id="use84295-5" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4785_-4"
- overflow="visible"
- id="use84007-57" />
- </clipPath>
- <clipPath
- id="SVGID_4784_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use83987-8" />
- </clipPath>
- <clipPath
- id="clipPath10085">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use10087" />
- </clipPath>
- <clipPath
- id="clipPath10089">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use10091" />
- </clipPath>
- <clipPath
- id="clipPath10093">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use10095" />
- </clipPath>
- <clipPath
- id="clipPath10097">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use10099" />
- </clipPath>
- <clipPath
- id="clipPath10101">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use10103" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4780_-6"
- overflow="visible"
- id="use83972-9" />
- </clipPath>
- <clipPath
- id="SVGID_4779_-83">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use83952-22" />
- </clipPath>
- <clipPath
- id="clipPath10112">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use10114" />
- </clipPath>
- <clipPath
- id="clipPath10116">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use10118" />
- </clipPath>
- <clipPath
- id="clipPath10120">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use10122" />
- </clipPath>
- <clipPath
- id="clipPath10124">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use10126" />
- </clipPath>
- <clipPath
- id="clipPath10128">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use10130" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_-42"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4775_-6"
- overflow="visible"
- id="use83937-7" />
- </clipPath>
- <clipPath
- id="SVGID_4774_-60">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use83917-3" />
- </clipPath>
- <clipPath
- id="clipPath10139">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use10141" />
- </clipPath>
- <clipPath
- id="clipPath10143">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use10145" />
- </clipPath>
- <clipPath
- id="clipPath10147">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use10149" />
- </clipPath>
- <clipPath
- id="clipPath10151">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use10153" />
- </clipPath>
- <clipPath
- id="clipPath10155">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use10157" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905-30" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4770_-0"
- overflow="visible"
- id="use83902-8" />
- </clipPath>
- <clipPath
- id="SVGID_4769_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use83882-3" />
- </clipPath>
- <clipPath
- id="clipPath10166">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use10168" />
- </clipPath>
- <clipPath
- id="clipPath10170">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use10172" />
- </clipPath>
- <clipPath
- id="clipPath10174">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use10176" />
- </clipPath>
- <clipPath
- id="clipPath10178">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use10180" />
- </clipPath>
- <clipPath
- id="clipPath10182">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use10184" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872-06" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4765_-7"
- overflow="visible"
- id="use83867-8" />
- </clipPath>
- <clipPath
- id="SVGID_4764_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use83847-1" />
- </clipPath>
- <clipPath
- id="clipPath10193">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use10195" />
- </clipPath>
- <clipPath
- id="clipPath10197">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use10199" />
- </clipPath>
- <clipPath
- id="clipPath10201">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use10203" />
- </clipPath>
- <clipPath
- id="clipPath10205">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use10207" />
- </clipPath>
- <clipPath
- id="clipPath10209">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use10211" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_-32">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4760_-8"
- overflow="visible"
- id="use83832-48" />
- </clipPath>
- <clipPath
- id="SVGID_4759_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use83812-1" />
- </clipPath>
- <clipPath
- id="clipPath10220">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use10222" />
- </clipPath>
- <clipPath
- id="clipPath10224">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use10226" />
- </clipPath>
- <clipPath
- id="clipPath10228">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use10230" />
- </clipPath>
- <clipPath
- id="clipPath10232">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use10234" />
- </clipPath>
- <clipPath
- id="clipPath10236">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use10238" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-57">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4755_-2"
- overflow="visible"
- id="use83797-4" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use83777-0" />
- </clipPath>
- <clipPath
- id="clipPath10247">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use10249" />
- </clipPath>
- <clipPath
- id="clipPath10251">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use10253" />
- </clipPath>
- <clipPath
- id="clipPath10255">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use10257" />
- </clipPath>
- <clipPath
- id="clipPath10259">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use10261" />
- </clipPath>
- <clipPath
- id="clipPath10263">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use10265" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-41" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4750_-6"
- overflow="visible"
- id="use83762-4" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-33"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-25" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-50">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4720_-7"
- overflow="visible"
- id="use83552-66" />
- </clipPath>
- <clipPath
- id="SVGID_4719_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use83532-81" />
- </clipPath>
- <clipPath
- id="clipPath10279">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use10281" />
- </clipPath>
- <clipPath
- id="clipPath10283">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use10285" />
- </clipPath>
- <clipPath
- id="clipPath10287">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use10289" />
- </clipPath>
- <clipPath
- id="clipPath10291">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use10293" />
- </clipPath>
- <clipPath
- id="clipPath10295">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use10297" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_-52"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4715_-7"
- overflow="visible"
- id="use83517-8" />
- </clipPath>
- <clipPath
- id="SVGID_4714_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use83497-6" />
- </clipPath>
- <clipPath
- id="clipPath10306">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use10308" />
- </clipPath>
- <clipPath
- id="clipPath10310">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use10312" />
- </clipPath>
- <clipPath
- id="clipPath10314">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use10316" />
- </clipPath>
- <clipPath
- id="clipPath10318">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use10320" />
- </clipPath>
- <clipPath
- id="clipPath10322">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use10324" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4710_-7"
- overflow="visible"
- id="use83482-7" />
- </clipPath>
- <clipPath
- id="SVGID_4709_-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use83462-1" />
- </clipPath>
- <clipPath
- id="clipPath10333">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use10335" />
- </clipPath>
- <clipPath
- id="clipPath10337">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use10339" />
- </clipPath>
- <clipPath
- id="clipPath10341">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use10343" />
- </clipPath>
- <clipPath
- id="clipPath10345">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use10347" />
- </clipPath>
- <clipPath
- id="clipPath10349">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use10351" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_-25">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4705_-7"
- overflow="visible"
- id="use83447-5" />
- </clipPath>
- <clipPath
- id="SVGID_4704_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use83427-7" />
- </clipPath>
- <clipPath
- id="clipPath10360">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use10362" />
- </clipPath>
- <clipPath
- id="clipPath10364">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use10366" />
- </clipPath>
- <clipPath
- id="clipPath10368">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use10370" />
- </clipPath>
- <clipPath
- id="clipPath10372">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use10374" />
- </clipPath>
- <clipPath
- id="clipPath10376">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use10378" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4700_-3"
- overflow="visible"
- id="use83412-5" />
- </clipPath>
- <clipPath
- id="SVGID_4699_-07">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use83392-6" />
- </clipPath>
- <clipPath
- id="clipPath10387">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use10389" />
- </clipPath>
- <clipPath
- id="clipPath10391">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use10393" />
- </clipPath>
- <clipPath
- id="clipPath10395">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use10397" />
- </clipPath>
- <clipPath
- id="clipPath10399">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use10401" />
- </clipPath>
- <clipPath
- id="clipPath10403">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use10405" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4695_-3"
- overflow="visible"
- id="use83377-9" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use83357-8" />
- </clipPath>
- <clipPath
- id="clipPath10414">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use10416" />
- </clipPath>
- <clipPath
- id="clipPath10418">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use10420" />
- </clipPath>
- <clipPath
- id="clipPath10422">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use10424" />
- </clipPath>
- <clipPath
- id="clipPath10426">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use10428" />
- </clipPath>
- <clipPath
- id="clipPath10430">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use10432" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-37" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4690_-8"
- overflow="visible"
- id="use83342-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_-6"
- overflow="visible"
- id="use83097-44" />
- </clipPath>
- <clipPath
- id="SVGID_4654_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use83077-0" />
- </clipPath>
- <clipPath
- id="clipPath10446">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use10448" />
- </clipPath>
- <clipPath
- id="clipPath10450">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use10452" />
- </clipPath>
- <clipPath
- id="clipPath10454">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use10456" />
- </clipPath>
- <clipPath
- id="clipPath10458">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use10460" />
- </clipPath>
- <clipPath
- id="clipPath10462">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use10464" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4650_-3"
- overflow="visible"
- id="use83062-0" />
- </clipPath>
- <clipPath
- id="SVGID_4649_-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use83042-8" />
- </clipPath>
- <clipPath
- id="clipPath10473">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use10475" />
- </clipPath>
- <clipPath
- id="clipPath10477">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use10479" />
- </clipPath>
- <clipPath
- id="clipPath10481">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use10483" />
- </clipPath>
- <clipPath
- id="clipPath10485">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use10487" />
- </clipPath>
- <clipPath
- id="clipPath10489">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use10491" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_-87">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4645_-7"
- overflow="visible"
- id="use83027-49" />
- </clipPath>
- <clipPath
- id="SVGID_4644_-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use83007-2" />
- </clipPath>
- <clipPath
- id="clipPath10500">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use10502" />
- </clipPath>
- <clipPath
- id="clipPath10504">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use10506" />
- </clipPath>
- <clipPath
- id="clipPath10508">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use10510" />
- </clipPath>
- <clipPath
- id="clipPath10512">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use10514" />
- </clipPath>
- <clipPath
- id="clipPath10516">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use10518" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4640_-2"
- overflow="visible"
- id="use82992-2" />
- </clipPath>
- <clipPath
- id="SVGID_4639_-45">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use82972-7" />
- </clipPath>
- <clipPath
- id="clipPath10527">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use10529" />
- </clipPath>
- <clipPath
- id="clipPath10531">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use10533" />
- </clipPath>
- <clipPath
- id="clipPath10535">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use10537" />
- </clipPath>
- <clipPath
- id="clipPath10539">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use10541" />
- </clipPath>
- <clipPath
- id="clipPath10543">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use10545" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960-54" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4635_-5"
- overflow="visible"
- id="use82957-7" />
- </clipPath>
- <clipPath
- id="SVGID_4634_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use82937-5" />
- </clipPath>
- <clipPath
- id="clipPath10554">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use10556" />
- </clipPath>
- <clipPath
- id="clipPath10558">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use10560" />
- </clipPath>
- <clipPath
- id="clipPath10562">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use10564" />
- </clipPath>
- <clipPath
- id="clipPath10566">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use10568" />
- </clipPath>
- <clipPath
- id="clipPath10570">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use10572" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4630_-9"
- overflow="visible"
- id="use82922-2" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use82902-9" />
- </clipPath>
- <clipPath
- id="clipPath10581">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use10583" />
- </clipPath>
- <clipPath
- id="clipPath10585">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use10587" />
- </clipPath>
- <clipPath
- id="clipPath10589">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use10591" />
- </clipPath>
- <clipPath
- id="clipPath10593">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use10595" />
- </clipPath>
- <clipPath
- id="clipPath10597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use10599" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-95" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-3">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-94"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647-71" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4590_-7"
- overflow="visible"
- id="use82642-05" />
- </clipPath>
- <clipPath
- id="SVGID_4589_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use82622-7" />
- </clipPath>
- <clipPath
- id="clipPath10613">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use10615" />
- </clipPath>
- <clipPath
- id="clipPath10617">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use10619" />
- </clipPath>
- <clipPath
- id="clipPath10621">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use10623" />
- </clipPath>
- <clipPath
- id="clipPath10625">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use10627" />
- </clipPath>
- <clipPath
- id="clipPath10629">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use10631" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_-03">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4585_-8"
- overflow="visible"
- id="use82607-1" />
- </clipPath>
- <clipPath
- id="SVGID_4584_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use82587-10" />
- </clipPath>
- <clipPath
- id="clipPath10640">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use10642" />
- </clipPath>
- <clipPath
- id="clipPath10644">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use10646" />
- </clipPath>
- <clipPath
- id="clipPath10648">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use10650" />
- </clipPath>
- <clipPath
- id="clipPath10652">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use10654" />
- </clipPath>
- <clipPath
- id="clipPath10656">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use10658" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4580_-5"
- overflow="visible"
- id="use82572-40" />
- </clipPath>
- <clipPath
- id="SVGID_4579_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use82552-3" />
- </clipPath>
- <clipPath
- id="clipPath10667">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use10669" />
- </clipPath>
- <clipPath
- id="clipPath10671">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use10673" />
- </clipPath>
- <clipPath
- id="clipPath10675">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use10677" />
- </clipPath>
- <clipPath
- id="clipPath10679">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use10681" />
- </clipPath>
- <clipPath
- id="clipPath10683">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use10685" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_-27"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4575_-2"
- overflow="visible"
- id="use82537-22" />
- </clipPath>
- <clipPath
- id="SVGID_4574_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use82517-4" />
- </clipPath>
- <clipPath
- id="clipPath10694">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use10696" />
- </clipPath>
- <clipPath
- id="clipPath10698">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use10700" />
- </clipPath>
- <clipPath
- id="clipPath10702">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use10704" />
- </clipPath>
- <clipPath
- id="clipPath10706">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use10708" />
- </clipPath>
- <clipPath
- id="clipPath10710">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use10712" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_-41"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4570_-9"
- overflow="visible"
- id="use82502-1" />
- </clipPath>
- <clipPath
- id="SVGID_4569_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use82482-4" />
- </clipPath>
- <clipPath
- id="clipPath10721">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use10723" />
- </clipPath>
- <clipPath
- id="clipPath10725">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use10727" />
- </clipPath>
- <clipPath
- id="clipPath10729">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use10731" />
- </clipPath>
- <clipPath
- id="clipPath10733">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use10735" />
- </clipPath>
- <clipPath
- id="clipPath10737">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use10739" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4565_-3"
- overflow="visible"
- id="use82467-1" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-73">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-5" />
- </clipPath>
- <clipPath
- id="clipPath10748">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use10750" />
- </clipPath>
- <clipPath
- id="clipPath10752">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use10754" />
- </clipPath>
- <clipPath
- id="clipPath10756">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use10758" />
- </clipPath>
- <clipPath
- id="clipPath10760">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use10762" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_-7"
- overflow="visible"
- id="use82397-7" />
- </clipPath>
- <clipPath
- id="SVGID_4552_-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_-7"
- overflow="visible"
- id="use82359-1" />
- </clipPath>
- <clipPath
- id="clipPath10771">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_-7"
- overflow="visible"
- id="use10773" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-50">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-7"
- overflow="visible"
- id="use82345-4" />
- </clipPath>
- <clipPath
- id="clipPath10777">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-7"
- overflow="visible"
- id="use10779" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_-6"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319-3" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321-8" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323-7" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325-9" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327-2" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329-0" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331-0" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4546_-1"
- overflow="visible"
- id="use82316-1" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_-4"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290-7" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292-4" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294-4" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296-50" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298-8" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300-4" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302-5" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304-53" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_-16">
- <polygon
- points="-571.554,267.32 -571.547,253.133 -593.085,258.293 -613.901,253.224 -613.908,267.353 "
- id="use82287-4" />
- </clipPath>
- <clipPath
- id="SVGID_4525_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_-5"
- overflow="visible"
- id="use82164-2" />
- </clipPath>
- <clipPath
- id="SVGID_4527_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_-7"
- overflow="visible"
- id="use82174-5" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_-2"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185-1" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187-47" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4528_-0"
- overflow="visible"
- id="use82182-3" />
- </clipPath>
- <clipPath
- id="clipPath10812">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_-7"
- overflow="visible"
- id="use10814" />
- </clipPath>
- <clipPath
- id="SVGID_4532_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4531_-4"
- overflow="visible"
- id="use82197-3" />
- </clipPath>
- <clipPath
- id="clipPath10818">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_-5"
- overflow="visible"
- id="use10820" />
- </clipPath>
- <clipPath
- id="SVGID_4534_-49">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_-1"
- overflow="visible"
- id="use82209-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_-7"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4535_-5"
- overflow="visible"
- id="use82217-9" />
- </clipPath>
- <clipPath
- id="clipPath10829">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_-1"
- overflow="visible"
- id="use10831" />
- </clipPath>
- <clipPath
- id="SVGID_4539_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4538_-7"
- overflow="visible"
- id="use82232-1" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0-0"
- id="linearGradient9382-1"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(197.19124,64.89703)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2-0-0"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7-1-6" />
- </linearGradient>
- <linearGradient
- id="SVGID_4757_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-3">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83797-44"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83777-1" />
- </clipPath>
- <clipPath
- id="clipPath14916">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14918" />
- </clipPath>
- <clipPath
- id="clipPath14920">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14922" />
- </clipPath>
- <clipPath
- id="clipPath14924">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14926" />
- </clipPath>
- <clipPath
- id="clipPath14928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14930" />
- </clipPath>
- <clipPath
- id="clipPath14932">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14934" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-5">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83762-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-0">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83377-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-29">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83357-1" />
- </clipPath>
- <clipPath
- id="clipPath14948">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14950" />
- </clipPath>
- <clipPath
- id="clipPath14952">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14954" />
- </clipPath>
- <clipPath
- id="clipPath14956">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14958" />
- </clipPath>
- <clipPath
- id="clipPath14960">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14962" />
- </clipPath>
- <clipPath
- id="clipPath14964">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14966" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-07" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-6">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83342-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-16">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82922-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-99">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82902-7" />
- </clipPath>
- <clipPath
- id="clipPath14980">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14982" />
- </clipPath>
- <clipPath
- id="clipPath14984">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14986" />
- </clipPath>
- <clipPath
- id="clipPath14988">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14990" />
- </clipPath>
- <clipPath
- id="clipPath14992">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14994" />
- </clipPath>
- <clipPath
- id="clipPath14996">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use14998" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-90" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-69">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- y2="-148.46021"
- x2="256.37631"
- y1="-148.46021"
- x1="255.37621"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient15092"
- xlink:href="#SVGID_4627_-3"
- inkscape:collect="always" />
- <clipPath
- id="SVGID_4564_-7-9-3-4-4-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-0-9-1" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3-43-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-01-4" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-8-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-9-3" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-8-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-1-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-3-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-1-6">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84007-57-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-33-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-7-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-25-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-50-0">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83552-66-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-5-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-0-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-0-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-5-8">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83097-44-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3-3-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2-3-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-8-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-5-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-1-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-9-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_-7-9"
- overflow="visible"
- id="use82397-7-5" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#SVGID_4557_-8-1"
- id="linearGradient15887"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#SVGID_4557_-8-1-0"
- id="linearGradient15887-0"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021" />
- <linearGradient
- id="SVGID_4557_-8-1-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-5-0-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-1-3-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-9-2-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_-7-9-1"
- overflow="visible"
- id="use82397-7-5-6" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3-3-7-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2-3-9-1" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#SVGID_4557_-8-1-0-3"
- id="linearGradient15887-0-3"
- gradientUnits="userSpaceOnUse"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021" />
- <linearGradient
- id="SVGID_4557_-8-1-0-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-5-0-3-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-1-3-5-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-9-2-5-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_-7-9-1-0"
- overflow="visible"
- id="use82397-7-5-6-1" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3-3-7-5-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2-3-9-1-0" />
- </clipPath>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.93303299"
- inkscape:cx="321.56814"
- inkscape:cy="515.95091"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1535"
- inkscape:window-height="876"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata104541">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <rect
- style="fill:none;stroke:#5e6a71;stroke-width:0.48500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect125410-1-2-7"
- width="94.101288"
- height="87.10128"
- x="316.64056"
- y="418.58807" />
- <rect
- style="fill:url(#linearGradient9382-1);fill-opacity:1;stroke:none"
- id="rect126198-3-8-1"
- width="108"
- height="27"
- x="308.19122"
- y="494.25922" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:1.0268178;stroke-miterlimit:10;stroke-dasharray:3.07565499, 3.07565499"
- stroke-miterlimit="10"
- x1="277.38089"
- y1="315.69797"
- x2="277.38089"
- y2="533.44318"
- id="line84244" />
- <rect
- style="fill:url(#linearGradient9382);fill-opacity:1;stroke:none"
- id="rect126198-3-8"
- width="108"
- height="27"
- x="139.50002"
- y="494.28964" />
- <g
- transform="matrix(1.3542118,0,0,2.25,996.72494,-25.560183)"
- id="g82158"
- inkscape:transform-center-x="262.3321"
- inkscape:transform-center-y="50.765304">
- <defs
- id="defs82160">
- <rect
- id="SVGID_4524_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101582">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_"
- overflow="visible"
- id="use101584" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4525_)"
- id="g82166">
- <g
- id="g82168">
- <defs
- id="defs82170">
- <rect
- id="SVGID_4526_"
- x="-679.67902"
- y="293.259"
- width="175.168"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101590">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_"
- overflow="visible"
- id="use101592" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4527_)"
- id="g82176">
- <defs
- id="defs82178">
- <rect
- id="SVGID_4528_"
- x="-679.57202"
- y="293.367"
- width="174.953"
- height="64.037003" />
- </defs>
- <clipPath
- id="clipPath101597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4528_"
- overflow="visible"
- id="use101599" />
- </clipPath>
- <linearGradient
- id="linearGradient101601"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop101603" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101605" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4530_)"
- x="-679.57202"
- y="293.366"
- clip-path="url(#SVGID_4529_)"
- width="174.953"
- height="64.038002"
- id="rect82189" />
- </g>
- <g
- clip-path="url(#SVGID_4527_)"
- id="g82191">
- <defs
- id="defs82193">
- <rect
- id="SVGID_4531_"
- x="-679.67902"
- y="293.259"
- width="175.168"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101611">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4531_"
- overflow="visible"
- id="use101613" />
- </clipPath>
- <rect
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10"
- x="-679.57202"
- y="293.366"
- clip-path="url(#SVGID_4532_)"
- stroke-miterlimit="10"
- width="174.953"
- height="64.038002"
- id="rect82199" />
- </g>
- </g>
- </g>
- <g
- clip-path="url(#SVGID_4525_)"
- id="g82201">
- <g
- id="g82203">
- <defs
- id="defs82205">
- <rect
- id="SVGID_4533_"
- x="-441.56699"
- y="293.259"
- width="45.873001"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101620">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_"
- overflow="visible"
- id="use101622" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4534_)"
- id="g82211">
- <defs
- id="defs82213">
- <rect
- id="SVGID_4535_"
- x="-441.45999"
- y="293.367"
- width="45.659"
- height="64.037003" />
- </defs>
- <clipPath
- id="clipPath101627">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4535_"
- overflow="visible"
- id="use101629" />
- </clipPath>
- <linearGradient
- id="linearGradient101631"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop101633" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101635" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4537_)"
- x="-441.45999"
- y="293.366"
- clip-path="url(#SVGID_4536_)"
- width="45.659"
- height="64.038002"
- id="rect82224" />
- </g>
- <g
- clip-path="url(#SVGID_4534_)"
- id="g82226">
- <defs
- id="defs82228">
- <rect
- id="SVGID_4538_"
- x="-441.56699"
- y="293.259"
- width="45.873001"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101641">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4538_"
- overflow="visible"
- id="use101643" />
- </clipPath>
- <rect
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10"
- x="-441.45999"
- y="293.366"
- clip-path="url(#SVGID_4539_)"
- stroke-miterlimit="10"
- width="45.659"
- height="64.038002"
- id="rect82234" />
- </g>
- </g>
- </g>
- </g>
- <rect
- style="fill:#f15d57"
- x="224.23932"
- y="574.69031"
- width="95.793755"
- height="3.0712502"
- id="rect82238"
- inkscape:transform-center-x="437.28349"
- inkscape:transform-center-y="-79.564828" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.48150003;stroke-miterlimit:10;stroke-dasharray:1.44225, 1.44225"
- stroke-miterlimit="10"
- x1="272.20041"
- y1="577.34521"
- x2="272.20041"
- y2="631.72772"
- id="line82244"
- inkscape:transform-center-x="437.21928"
- inkscape:transform-center-y="-51.254289" />
- <polyline
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10;stroke-dasharray:0.641, 0.641"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points=" -603.212,292.128 -603.212,283.832 -582.187,283.832 -582.187,292.128 "
- id="polyline82246"
- inkscape:transform-center-x="437.22048"
- inkscape:transform-center-y="-33.395941" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82281"
- inkscape:transform-center-x="437.2835"
- inkscape:transform-center-y="-95.804196">
- <defs
- id="defs82283">
- <polygon
- id="SVGID_4543_"
- points="-613.901,253.224 -613.908,267.353 -571.554,267.32 -571.547,253.133 -593.085,258.293 " />
- </defs>
- <clipPath
- id="clipPath101684">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4543_"
- overflow="visible"
- id="use101686" />
- </clipPath>
- <linearGradient
- id="linearGradient101688"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101690" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop101692" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop101694" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop101696" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop101698" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop101700" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop101702" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101704" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4545_)"
- x="-613.90802"
- y="253.133"
- clip-path="url(#SVGID_4544_)"
- width="42.361"
- height="14.22"
- id="rect82306" />
- </g>
- <text
- y="567.99066"
- x="255.24185"
- id="text84246"
- inkscape:transform-center-x="438.70839"
- inkscape:transform-center-y="-90.601429"
- style="font-size:27px">
- <tspan
- style="font-size:8px;fill:#37424b;font-family:ApexSans-Medium"
- x="255.24185"
- y="567.99066"
- font-size="3.4203"
- id="tspan84248">US-EAST</tspan>
- </text>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 319.54934,544.29505 -0.0157,31.37625 -94.815,0.072 0.0157,-31.2435 46.48275,11.31975 0.1125,0.027 0.11475,-0.027 48.105,-11.5245 z m 0.4815,-0.60975 -48.699,11.66625 -47.079,-11.46375 -0.0135,32.337 95.77575,-0.0743 0.0158,-32.46525 z"
- id="path82308"
- inkscape:transform-center-x="437.28456"
- inkscape:transform-center-y="-95.835733" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82339"
- inkscape:transform-center-x="449.81598"
- inkscape:transform-center-y="45.666809">
- <defs
- id="defs82341">
- <rect
- id="SVGID_4549_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101738">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_"
- overflow="visible"
- id="use101740" />
- </clipPath>
- <path
- style="fill:#f15d57"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_)"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82347" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_)"
- stroke-miterlimit="10"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82349" />
- </g>
- <text
- y="704.88873"
- x="275.14355"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82351"
- inkscape:transform-center-x="450.06672"
- inkscape:transform-center-y="45.543285">M</text>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82353"
- inkscape:transform-center-x="503.22873"
- inkscape:transform-center-y="71.647559">
- <defs
- id="defs82355">
- <rect
- id="SVGID_4551_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101748">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_"
- overflow="visible"
- id="use101750" />
- </clipPath>
- <path
- style="fill:#f15d57"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4552_)"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82361" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4552_)"
- stroke-miterlimit="10"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82363" />
- </g>
- <text
- y="730.87036"
- x="201.73129"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82365"
- inkscape:transform-center-x="503.47899"
- inkscape:transform-center-y="71.524915">M</text>
- <rect
- style="fill:#ffffff"
- x="87.659889"
- y="664.59583"
- width="21.581999"
- height="21.584251"
- id="rect82381"
- inkscape:transform-center-x="610.96881"
- inkscape:transform-center-y="19.597191" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10"
- x="87.659889"
- y="664.59583"
- stroke-miterlimit="10"
- width="21.581999"
- height="21.584251"
- id="rect82383"
- inkscape:transform-center-x="610.96881"
- inkscape:transform-center-y="19.597191" />
- <rect
- style="fill:#81d0db"
- x="89.169548"
- y="666.1123"
- width="18.557999"
- height="18.553501"
- id="rect82385"
- inkscape:transform-center-x="610.97115"
- inkscape:transform-center-y="19.598295" />
- <rect
- style="fill:#ffffff"
- x="90.654625"
- y="667.59052"
- width="15.592501"
- height="15.594751"
- id="rect82387"
- inkscape:transform-center-x="610.96883"
- inkscape:transform-center-y="19.597131" />
- <rect
- style="fill:#ffffff"
- x="93.307411"
- y="670.24774"
- width="10.282501"
- height="10.278"
- id="rect82389"
- inkscape:transform-center-x="610.97103"
- inkscape:transform-center-y="19.595982" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82391"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82393">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4555_"
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101773">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_"
- overflow="visible"
- id="use101775" />
- </clipPath>
- <linearGradient
- id="linearGradient101777"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101779" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101781" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4557_)"
- x="-672.61401"
- y="308.841"
- clip-path="url(#SVGID_4556_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82404" />
- </g>
- <rect
- id="rect82451"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4564_)"
- y="306.73599"
- x="-650.77399"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82453"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4564_)"
- y="306.73599"
- x="-650.77399"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82455"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4564_)"
- y="307.41"
- x="-650.10303"
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82457"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4564_)"
- y="308.06699"
- x="-649.44299"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82459"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4564_)"
- y="309.24799"
- x="-648.26398"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82461"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82463">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4565_"
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101827">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4565_"
- overflow="visible"
- id="use101829" />
- </clipPath>
- <linearGradient
- id="linearGradient101831"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101833" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101835" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4567_)"
- x="-648.67102"
- y="308.841"
- clip-path="url(#SVGID_4566_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82474" />
- </g>
- <path
- id="path82484"
- d="m -646.611,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4569_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82486"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4569_)"
- y="306.73599"
- x="-638.80298"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82488"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4569_)"
- y="306.73599"
- x="-638.80298"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82490"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4569_)"
- y="307.41"
- x="-638.13202"
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82492"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4569_)"
- y="308.06699"
- x="-637.47198"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <rect
- id="rect82494"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4569_)"
- y="309.24799"
- x="-636.29199"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82496"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82498">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4570_"
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101854">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4570_"
- overflow="visible"
- id="use101856" />
- </clipPath>
- <linearGradient
- id="linearGradient101858"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101860" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101862" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4572_)"
- x="-636.69897"
- y="308.841"
- clip-path="url(#SVGID_4571_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82509" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82511"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82513">
- <rect
- id="SVGID_4573_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101868">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101870" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4574_)"
- d="m -634.639,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82519" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="306.73599"
- clip-path="url(#SVGID_4574_)"
- width="9.592"
- height="9.5930004"
- id="rect82521" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="306.73599"
- clip-path="url(#SVGID_4574_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82523" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="307.41"
- clip-path="url(#SVGID_4574_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82525" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="308.06699"
- clip-path="url(#SVGID_4574_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82527" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="309.24799"
- clip-path="url(#SVGID_4574_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82529" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82531"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82533">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4575_"
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69" />
- </defs>
- <clipPath
- id="clipPath101881">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4575_"
- overflow="visible"
- id="use101883" />
- </clipPath>
- <linearGradient
- id="linearGradient101885"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101887" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101889" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4577_)"
- x="-624.72803"
- y="308.841"
- clip-path="url(#SVGID_4576_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82544" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82546"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82548">
- <rect
- id="SVGID_4578_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101895">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101897" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4579_)"
- d="m -622.668,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82554" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="306.73599"
- clip-path="url(#SVGID_4579_)"
- width="9.5930004"
- height="9.5930004"
- id="rect82556" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="306.73599"
- clip-path="url(#SVGID_4579_)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.5930004"
- id="rect82558" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="307.41"
- clip-path="url(#SVGID_4579_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82560" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="308.06699"
- clip-path="url(#SVGID_4579_)"
- width="6.9310002"
- height="6.9310002"
- id="rect82562" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="309.24799"
- clip-path="url(#SVGID_4579_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82564" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82566"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82568">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4580_"
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101908">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4580_"
- overflow="visible"
- id="use101910" />
- </clipPath>
- <linearGradient
- id="linearGradient101912"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101914" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101916" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4582_)"
- x="-612.75598"
- y="308.841"
- clip-path="url(#SVGID_4581_)"
- width="5.3829999"
- height="5.3839998"
- id="rect82579" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82581"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82583">
- <rect
- id="SVGID_4583_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101922">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101924" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4584_)"
- d="m -610.696,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82589" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="306.73599"
- clip-path="url(#SVGID_4584_)"
- width="9.592"
- height="9.5930004"
- id="rect82591" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="306.73599"
- clip-path="url(#SVGID_4584_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82593" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="307.41"
- clip-path="url(#SVGID_4584_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82595" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="308.06699"
- clip-path="url(#SVGID_4584_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82597" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="309.24799"
- clip-path="url(#SVGID_4584_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82599" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82601"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82603">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4585_"
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101935">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4585_"
- overflow="visible"
- id="use101937" />
- </clipPath>
- <linearGradient
- id="linearGradient101939"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101941" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101943" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4587_)"
- x="-600.78497"
- y="308.841"
- clip-path="url(#SVGID_4586_)"
- width="5.3829999"
- height="5.3839998"
- id="rect82614" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82616"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82618">
- <rect
- id="SVGID_4588_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101949">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101951" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4589_)"
- d="m -598.725,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82624" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="306.73599"
- clip-path="url(#SVGID_4589_)"
- width="9.592"
- height="9.5930004"
- id="rect82626" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="306.73599"
- clip-path="url(#SVGID_4589_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82628" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="307.41"
- clip-path="url(#SVGID_4589_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82630" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="308.06699"
- clip-path="url(#SVGID_4589_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82632" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="309.24799"
- clip-path="url(#SVGID_4589_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82634" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82636"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82638">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4590_"
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101962">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4590_"
- overflow="visible"
- id="use101964" />
- </clipPath>
- <linearGradient
- id="linearGradient101966"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101968" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101970" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4592_)"
- x="-588.81299"
- y="308.841"
- clip-path="url(#SVGID_4591_)"
- width="5.3829999"
- height="5.3839998"
- id="rect82649" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82861"
- inkscape:transform-center-x="440.81033"
- inkscape:transform-center-y="37.558931">
- <defs
- id="defs82863">
- <rect
- id="SVGID_4623_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102138">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use102140" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4624_)"
- d="m -514.925,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82869" />
- <rect
- style="fill:#ffffff"
- x="-674.71698"
- y="318.323"
- clip-path="url(#SVGID_4624_)"
- width="9.592"
- height="9.5930004"
- id="rect82871" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-674.71698"
- y="318.323"
- clip-path="url(#SVGID_4624_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82873" />
- <rect
- style="fill:#81d0db"
- x="-674.04602"
- y="318.99701"
- clip-path="url(#SVGID_4624_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82875" />
- <rect
- style="fill:#ffffff"
- x="-673.38599"
- y="319.65399"
- clip-path="url(#SVGID_4624_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82877" />
- <rect
- style="fill:#ffffff"
- x="-672.20697"
- y="320.83499"
- clip-path="url(#SVGID_4624_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82879" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82881"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82883">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4625_"
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102151">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4625_"
- overflow="visible"
- id="use102153" />
- </clipPath>
- <linearGradient
- id="linearGradient102155"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102157" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102159" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4627_)"
- x="-672.61401"
- y="320.42899"
- clip-path="url(#SVGID_4626_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82894" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82896"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82898">
- <rect
- id="SVGID_4628_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102165">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use102167" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4629_)"
- d="m -670.553,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82904" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="318.323"
- clip-path="url(#SVGID_4629_)"
- width="9.592"
- height="9.5930004"
- id="rect82906" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="318.323"
- clip-path="url(#SVGID_4629_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82908" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="318.99701"
- clip-path="url(#SVGID_4629_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82910" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="319.65399"
- clip-path="url(#SVGID_4629_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82912" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="320.83499"
- clip-path="url(#SVGID_4629_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82914" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82916"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82918">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4630_"
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102178">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4630_"
- overflow="visible"
- id="use102180" />
- </clipPath>
- <linearGradient
- id="linearGradient102182"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102184" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102186" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4632_)"
- x="-660.64203"
- y="320.42899"
- clip-path="url(#SVGID_4631_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82929" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82931"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82933">
- <rect
- id="SVGID_4633_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102192">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use102194" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4634_)"
- d="m -658.582,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82939" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="318.323"
- clip-path="url(#SVGID_4634_)"
- width="9.592"
- height="9.5930004"
- id="rect82941" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="318.323"
- clip-path="url(#SVGID_4634_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82943" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="318.99701"
- clip-path="url(#SVGID_4634_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82945" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="319.65399"
- clip-path="url(#SVGID_4634_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82947" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="320.83499"
- clip-path="url(#SVGID_4634_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82949" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82951"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82953">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4635_"
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102205">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4635_"
- overflow="visible"
- id="use102207" />
- </clipPath>
- <linearGradient
- id="linearGradient102209"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102211" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102213" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4637_)"
- x="-648.67102"
- y="320.42899"
- clip-path="url(#SVGID_4636_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82964" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82966"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82968">
- <rect
- id="SVGID_4638_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102219">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use102221" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4639_)"
- d="m -646.611,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82974" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="318.323"
- clip-path="url(#SVGID_4639_)"
- width="9.592"
- height="9.5930004"
- id="rect82976" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="318.323"
- clip-path="url(#SVGID_4639_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82978" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="318.99701"
- clip-path="url(#SVGID_4639_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82980" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="319.65399"
- clip-path="url(#SVGID_4639_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82982" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="320.83499"
- clip-path="url(#SVGID_4639_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82984" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82986"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82988">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4640_"
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102232">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4640_"
- overflow="visible"
- id="use102234" />
- </clipPath>
- <linearGradient
- id="linearGradient102236"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102238" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102240" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4642_)"
- x="-636.69897"
- y="320.42899"
- clip-path="url(#SVGID_4641_)"
- width="5.3839998"
- height="5.3839998"
- id="rect82999" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83001"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83003">
- <rect
- id="SVGID_4643_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102246">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use102248" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4644_)"
- d="m -634.639,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83009" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="318.323"
- clip-path="url(#SVGID_4644_)"
- width="9.592"
- height="9.5930004"
- id="rect83011" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="318.323"
- clip-path="url(#SVGID_4644_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect83013" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="318.99701"
- clip-path="url(#SVGID_4644_)"
- width="8.2480001"
- height="8.2460003"
- id="rect83015" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="319.65399"
- clip-path="url(#SVGID_4644_)"
- width="6.9299998"
- height="6.9310002"
- id="rect83017" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="320.83499"
- clip-path="url(#SVGID_4644_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83019" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83021"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83023">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4645_"
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69" />
- </defs>
- <clipPath
- id="clipPath102259">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4645_"
- overflow="visible"
- id="use102261" />
- </clipPath>
- <linearGradient
- id="linearGradient102263"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102265" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102267" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4647_)"
- x="-624.72803"
- y="320.42899"
- clip-path="url(#SVGID_4646_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83034" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83036"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83038">
- <rect
- id="SVGID_4648_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102273">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use102275" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4649_)"
- d="m -622.668,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83044" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="318.323"
- clip-path="url(#SVGID_4649_)"
- width="9.5930004"
- height="9.5930004"
- id="rect83046" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="318.323"
- clip-path="url(#SVGID_4649_)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.5930004"
- id="rect83048" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="318.99701"
- clip-path="url(#SVGID_4649_)"
- width="8.2480001"
- height="8.2460003"
- id="rect83050" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="319.65399"
- clip-path="url(#SVGID_4649_)"
- width="6.9310002"
- height="6.9310002"
- id="rect83052" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="320.83499"
- clip-path="url(#SVGID_4649_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83054" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83056"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83058">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4650_"
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102286">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4650_"
- overflow="visible"
- id="use102288" />
- </clipPath>
- <linearGradient
- id="linearGradient102290"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102292" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102294" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4652_)"
- x="-612.75598"
- y="320.42899"
- clip-path="url(#SVGID_4651_)"
- width="5.3829999"
- height="5.3839998"
- id="rect83069" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83071"
- inkscape:transform-center-x="444.42945"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83073">
- <rect
- id="SVGID_4653_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102300">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use102302" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4654_)"
- d="m -610.696,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83079" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="318.323"
- clip-path="url(#SVGID_4654_)"
- width="9.592"
- height="9.5930004"
- id="rect83081" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="318.323"
- clip-path="url(#SVGID_4654_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect83083" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="318.99701"
- clip-path="url(#SVGID_4654_)"
- width="8.2480001"
- height="8.2460003"
- id="rect83085" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="319.65399"
- clip-path="url(#SVGID_4654_)"
- width="6.9299998"
- height="6.9310002"
- id="rect83087" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="320.83499"
- clip-path="url(#SVGID_4654_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83089" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83091"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83093">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4655_"
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102313">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_"
- overflow="visible"
- id="use102315" />
- </clipPath>
- <linearGradient
- id="linearGradient102317"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102319" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102321" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4657_)"
- x="-588.81299"
- y="320.42899"
- clip-path="url(#SVGID_4656_)"
- width="5.3829999"
- height="5.3839998"
- id="rect83104" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83316"
- inkscape:transform-center-x="440.81033"
- inkscape:transform-center-y="63.583551">
- <defs
- id="defs83318">
- <rect
- id="SVGID_4688_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102489">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use102491" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4689_)"
- d="m -514.925,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83324" />
- <rect
- style="fill:#ffffff"
- x="-674.71698"
- y="329.87"
- clip-path="url(#SVGID_4689_)"
- width="9.592"
- height="9.592"
- id="rect83326" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-674.71698"
- y="329.87"
- clip-path="url(#SVGID_4689_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83328" />
- <rect
- style="fill:#81d0db"
- x="-674.04602"
- y="330.543"
- clip-path="url(#SVGID_4689_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83330" />
- <rect
- style="fill:#ffffff"
- x="-673.38599"
- y="331.20099"
- clip-path="url(#SVGID_4689_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83332" />
- <rect
- style="fill:#ffffff"
- x="-672.20697"
- y="332.38199"
- clip-path="url(#SVGID_4689_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83334" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83336"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83338">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4690_"
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102502">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4690_"
- overflow="visible"
- id="use102504" />
- </clipPath>
- <linearGradient
- id="linearGradient102506"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102508" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102510" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4692_)"
- x="-672.61401"
- y="331.974"
- clip-path="url(#SVGID_4691_)"
- width="5.3839998"
- height="5.3860002"
- id="rect83349" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83351"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83353">
- <rect
- id="SVGID_4693_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102516">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use102518" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4694_)"
- d="m -670.553,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83359" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="329.87"
- clip-path="url(#SVGID_4694_)"
- width="9.592"
- height="9.592"
- id="rect83361" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="329.87"
- clip-path="url(#SVGID_4694_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83363" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="330.543"
- clip-path="url(#SVGID_4694_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83365" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="331.20099"
- clip-path="url(#SVGID_4694_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83367" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="332.38199"
- clip-path="url(#SVGID_4694_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83369" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83371"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="71.648681">
- <defs
- id="defs83373">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4695_"
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102529">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4695_"
- overflow="visible"
- id="use102531" />
- </clipPath>
- <linearGradient
- id="linearGradient102533"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102535" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102537" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4697_)"
- x="-660.64203"
- y="331.974"
- clip-path="url(#SVGID_4696_)"
- width="5.3839998"
- height="5.3850002"
- id="rect83384" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83386"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83388">
- <rect
- id="SVGID_4698_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102543">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use102545" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4699_)"
- d="m -658.582,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83394" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="329.87"
- clip-path="url(#SVGID_4699_)"
- width="9.592"
- height="9.592"
- id="rect83396" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="329.87"
- clip-path="url(#SVGID_4699_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83398" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="330.543"
- clip-path="url(#SVGID_4699_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83400" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="331.20099"
- clip-path="url(#SVGID_4699_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83402" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="332.38199"
- clip-path="url(#SVGID_4699_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83404" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83406"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83408">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4700_"
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102556">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4700_"
- overflow="visible"
- id="use102558" />
- </clipPath>
- <linearGradient
- id="linearGradient102560"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102562" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102564" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4702_)"
- x="-648.67102"
- y="331.974"
- clip-path="url(#SVGID_4701_)"
- width="5.3839998"
- height="5.3860002"
- id="rect83419" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83421"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83423">
- <rect
- id="SVGID_4703_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102570">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use102572" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4704_)"
- d="m -646.611,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83429" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="329.87"
- clip-path="url(#SVGID_4704_)"
- width="9.592"
- height="9.592"
- id="rect83431" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="329.87"
- clip-path="url(#SVGID_4704_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83433" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="330.543"
- clip-path="url(#SVGID_4704_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83435" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="331.20099"
- clip-path="url(#SVGID_4704_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83437" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="332.38199"
- clip-path="url(#SVGID_4704_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83439" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83441"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83443">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4705_"
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102583">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4705_"
- overflow="visible"
- id="use102585" />
- </clipPath>
- <linearGradient
- id="linearGradient102587"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102589" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102591" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4707_)"
- x="-636.69897"
- y="331.974"
- clip-path="url(#SVGID_4706_)"
- width="5.3839998"
- height="5.3860002"
- id="rect83454" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83456"
- inkscape:transform-center-x="498.30125"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83458">
- <rect
- id="SVGID_4708_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use102599" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4709_)"
- d="m -634.639,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83464" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="329.87"
- clip-path="url(#SVGID_4709_)"
- width="9.5930004"
- height="9.592"
- id="rect83466" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="329.87"
- clip-path="url(#SVGID_4709_)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.592"
- id="rect83468" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="330.543"
- clip-path="url(#SVGID_4709_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83470" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="331.20099"
- clip-path="url(#SVGID_4709_)"
- width="6.9310002"
- height="6.9299998"
- id="rect83472" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="332.38199"
- clip-path="url(#SVGID_4709_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83474" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83476"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83478">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4710_"
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102610">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4710_"
- overflow="visible"
- id="use102612" />
- </clipPath>
- <linearGradient
- id="linearGradient102614"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102616" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102618" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4712_)"
- x="-612.75598"
- y="331.974"
- clip-path="url(#SVGID_4711_)"
- width="5.3829999"
- height="5.3860002"
- id="rect83489" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83491"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83493">
- <rect
- id="SVGID_4713_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102624">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use102626" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4714_)"
- d="m -610.696,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83499" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="329.87"
- clip-path="url(#SVGID_4714_)"
- width="9.592"
- height="9.592"
- id="rect83501" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="329.87"
- clip-path="url(#SVGID_4714_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83503" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="330.543"
- clip-path="url(#SVGID_4714_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83505" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="331.20099"
- clip-path="url(#SVGID_4714_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83507" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="332.38199"
- clip-path="url(#SVGID_4714_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83509" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83511"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83513">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4715_"
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102637">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4715_"
- overflow="visible"
- id="use102639" />
- </clipPath>
- <linearGradient
- id="linearGradient102641"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102643" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102645" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4717_)"
- x="-600.78497"
- y="331.974"
- clip-path="url(#SVGID_4716_)"
- width="5.3829999"
- height="5.3860002"
- id="rect83524" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83526"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83528">
- <rect
- id="SVGID_4718_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102651">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use102653" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4719_)"
- d="m -598.725,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83534" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="329.87"
- clip-path="url(#SVGID_4719_)"
- width="9.592"
- height="9.592"
- id="rect83536" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="329.87"
- clip-path="url(#SVGID_4719_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83538" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="330.543"
- clip-path="url(#SVGID_4719_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83540" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="331.20099"
- clip-path="url(#SVGID_4719_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83542" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="332.38199"
- clip-path="url(#SVGID_4719_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83544" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83546"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83548">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4720_"
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102664">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4720_"
- overflow="visible"
- id="use102666" />
- </clipPath>
- <linearGradient
- id="linearGradient102668"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102670" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102672" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4722_)"
- x="-588.81299"
- y="331.974"
- clip-path="url(#SVGID_4721_)"
- width="5.3829999"
- height="5.3860002"
- id="rect83559" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83736"
- inkscape:transform-center-x="440.81033"
- inkscape:transform-center-y="89.828699">
- <defs
- id="defs83738">
- <rect
- id="SVGID_4748_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102813">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use102815" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4749_)"
- d="m -514.925,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83744" />
- <rect
- style="fill:#ffffff"
- x="-674.71698"
- y="341.65302"
- clip-path="url(#SVGID_4749_)"
- width="9.592"
- height="9.592"
- id="rect83746" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-674.71698"
- y="341.65302"
- clip-path="url(#SVGID_4749_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83748" />
- <rect
- style="fill:#81d0db"
- x="-674.04602"
- y="342.32599"
- clip-path="url(#SVGID_4749_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83750" />
- <rect
- style="fill:#ffffff"
- x="-673.38599"
- y="342.98401"
- clip-path="url(#SVGID_4749_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83752" />
- <rect
- style="fill:#ffffff"
- x="-672.20697"
- y="344.164"
- clip-path="url(#SVGID_4749_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83754" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83756"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83758">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4750_"
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102826">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4750_"
- overflow="visible"
- id="use102828" />
- </clipPath>
- <linearGradient
- id="linearGradient102830"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102832" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102834" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4752_)"
- x="-672.61401"
- y="343.75699"
- clip-path="url(#SVGID_4751_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83769" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83771"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83773">
- <rect
- id="SVGID_4753_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102840">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use102842" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4754_)"
- d="m -670.553,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83779" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="341.65302"
- clip-path="url(#SVGID_4754_)"
- width="9.592"
- height="9.592"
- id="rect83781" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="341.65302"
- clip-path="url(#SVGID_4754_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83783" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="342.32599"
- clip-path="url(#SVGID_4754_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83785" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="342.98401"
- clip-path="url(#SVGID_4754_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83787" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="344.164"
- clip-path="url(#SVGID_4754_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83789" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83791"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83793">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4755_"
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102853">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4755_"
- overflow="visible"
- id="use102855" />
- </clipPath>
- <linearGradient
- id="linearGradient102857"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102859" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102861" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4757_)"
- x="-660.64203"
- y="343.75699"
- clip-path="url(#SVGID_4756_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83804" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83806"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83808">
- <rect
- id="SVGID_4758_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102867">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use102869" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4759_)"
- d="m -658.582,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83814" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="341.65302"
- clip-path="url(#SVGID_4759_)"
- width="9.592"
- height="9.592"
- id="rect83816" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="341.65302"
- clip-path="url(#SVGID_4759_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83818" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="342.32599"
- clip-path="url(#SVGID_4759_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83820" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="342.98401"
- clip-path="url(#SVGID_4759_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83822" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="344.164"
- clip-path="url(#SVGID_4759_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83824" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83826"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83828">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4760_"
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102880">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4760_"
- overflow="visible"
- id="use102882" />
- </clipPath>
- <linearGradient
- id="linearGradient102884"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102886" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102888" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4762_)"
- x="-648.67102"
- y="343.75699"
- clip-path="url(#SVGID_4761_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83839" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83841"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83843">
- <rect
- id="SVGID_4763_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102894">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use102896" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4764_)"
- d="m -646.611,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83849" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="341.65302"
- clip-path="url(#SVGID_4764_)"
- width="9.592"
- height="9.592"
- id="rect83851" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="341.65302"
- clip-path="url(#SVGID_4764_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83853" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="342.32599"
- clip-path="url(#SVGID_4764_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83855" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="342.98401"
- clip-path="url(#SVGID_4764_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83857" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="344.164"
- clip-path="url(#SVGID_4764_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83859" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83861"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83863">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4765_"
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102907">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4765_"
- overflow="visible"
- id="use102909" />
- </clipPath>
- <linearGradient
- id="linearGradient102911"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102913" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102915" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4767_)"
- x="-636.69897"
- y="343.75699"
- clip-path="url(#SVGID_4766_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83874" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83876"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83878">
- <rect
- id="SVGID_4768_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102921">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use102923" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4769_)"
- d="m -634.639,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83884" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="341.65302"
- clip-path="url(#SVGID_4769_)"
- width="9.592"
- height="9.592"
- id="rect83886" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="341.65302"
- clip-path="url(#SVGID_4769_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83888" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="342.32599"
- clip-path="url(#SVGID_4769_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83890" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="342.98401"
- clip-path="url(#SVGID_4769_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83892" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="344.164"
- clip-path="url(#SVGID_4769_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83894" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83896"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83898">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4770_"
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692" />
- </defs>
- <clipPath
- id="clipPath102934">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4770_"
- overflow="visible"
- id="use102936" />
- </clipPath>
- <linearGradient
- id="linearGradient102938"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102940" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102942" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4772_)"
- x="-624.72803"
- y="343.75699"
- clip-path="url(#SVGID_4771_)"
- width="5.3839998"
- height="5.3839998"
- id="rect83909" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83911"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83913">
- <rect
- id="SVGID_4773_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102948">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use102950" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4774_)"
- d="m -622.668,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83919" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="341.65302"
- clip-path="url(#SVGID_4774_)"
- width="9.5930004"
- height="9.592"
- id="rect83921" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="341.65302"
- clip-path="url(#SVGID_4774_)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.592"
- id="rect83923" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="342.32599"
- clip-path="url(#SVGID_4774_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83925" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="342.98401"
- clip-path="url(#SVGID_4774_)"
- width="6.9310002"
- height="6.9299998"
- id="rect83927" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="344.164"
- clip-path="url(#SVGID_4774_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83929" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83931"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83933">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4775_"
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102961">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4775_"
- overflow="visible"
- id="use102963" />
- </clipPath>
- <linearGradient
- id="linearGradient102965"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102967" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102969" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4777_)"
- x="-612.75598"
- y="343.75699"
- clip-path="url(#SVGID_4776_)"
- width="5.3829999"
- height="5.3839998"
- id="rect83944" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83946"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83948">
- <rect
- id="SVGID_4778_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102975">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use102977" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4779_)"
- d="m -610.696,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83954" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="341.65302"
- clip-path="url(#SVGID_4779_)"
- width="9.592"
- height="9.592"
- id="rect83956" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="341.65302"
- clip-path="url(#SVGID_4779_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83958" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="342.32599"
- clip-path="url(#SVGID_4779_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83960" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="342.98401"
- clip-path="url(#SVGID_4779_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83962" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="344.164"
- clip-path="url(#SVGID_4779_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83964" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83966"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83968">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4780_"
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102988">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4780_"
- overflow="visible"
- id="use102990" />
- </clipPath>
- <linearGradient
- id="linearGradient102992"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102994" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102996" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4782_)"
- x="-600.78497"
- y="343.75699"
- clip-path="url(#SVGID_4781_)"
- width="5.3829999"
- height="5.3839998"
- id="rect83979" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g83981"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83983">
- <rect
- id="SVGID_4783_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103002">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use103004" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4784_)"
- d="m -598.725,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83989" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="341.65302"
- clip-path="url(#SVGID_4784_)"
- width="9.592"
- height="9.592"
- id="rect83991" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="341.65302"
- clip-path="url(#SVGID_4784_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83993" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="342.32599"
- clip-path="url(#SVGID_4784_)"
- width="8.2480001"
- height="8.2469997"
- id="rect83995" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="342.98401"
- clip-path="url(#SVGID_4784_)"
- width="6.9299998"
- height="6.9299998"
- id="rect83997" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="344.164"
- clip-path="url(#SVGID_4784_)"
- width="4.5700002"
- height="4.5679998"
- id="rect83999" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84001"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs84003">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4785_"
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath103015">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4785_"
- overflow="visible"
- id="use103017" />
- </clipPath>
- <linearGradient
- id="linearGradient103019"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop103021" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop103023" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4787_)"
- x="-588.81299"
- y="343.75699"
- clip-path="url(#SVGID_4786_)"
- width="5.3829999"
- height="5.3839998"
- id="rect84014" />
- </g>
- <rect
- style="fill:#f15d57"
- x="220.3154"
- y="492.99048"
- width="103.6395"
- height="3.8114998"
- id="rect84287"
- inkscape:transform-center-x="437.28453"
- inkscape:transform-center-y="-160.89453" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84289"
- inkscape:transform-center-x="437.28348"
- inkscape:transform-center-y="-131.54432">
- <defs
- id="defs84291">
- <polygon
- id="SVGID_4823_"
- points="-592.788,256.788 -569.802,251.283 -569.804,231.934 -615.653,231.929 -615.653,251.221 " />
- </defs>
- <clipPath
- id="clipPath103235">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4823_"
- overflow="visible"
- id="use103237" />
- </clipPath>
- <linearGradient
- id="linearGradient103239"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop103241" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop103243" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop103245" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop103247" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop103249" />
- </linearGradient>
- <polygon
- style="fill:url(#SVGID_4825_)"
- clip-path="url(#SVGID_4824_)"
- points="-615.683,231.929 -569.802,231.874 -569.772,256.788 -615.653,256.843 "
- id="polygon84308" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 220.79459,496.5208 102.67875,0.009 10e-4,43.1055 -51.4755,12.33 -51.20775,-12.46725 0.003,-42.97725 z m -0.4815,-0.4815 v 43.83675 l 51.687,12.58425 51.957,-12.44475 -0.005,-43.96725 -103.6395,-0.009 z"
- id="path84310"
- inkscape:transform-center-x="437.28484"
- inkscape:transform-center-y="-131.54096" />
- <text
- y="513.2843"
- x="243.95297"
- id="text84312"
- inkscape:transform-center-x="437.86922"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px">
- <tspan
- style="font-size:11px;fill:#37424b;font-family:ApexSans-Book"
- x="243.95297"
- y="513.2843"
- font-size="5.1244"
- id="tspan84314">RADOSGW</tspan>
- </text>
- <polygon
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- points="-592.696,269.217 -590.628,267.424 -594.747,267.424 "
- id="polygon84355"
- inkscape:transform-center-x="437.19348"
- inkscape:transform-center-y="-77.629816" />
- <path
- id="path84524"
- d="m -365.856,302.434 c 0,-2.331 1.892,-4.222 4.225,-4.222 2.334,0 4.223,1.891 4.223,4.222 0,2.334 -1.889,4.226 -4.223,4.226 -2.333,0 -4.225,-1.892 -4.225,-4.226"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84526"
- d="m -361.631,301.547 c 0.488,0 0.888,0.398 0.888,0.887 0,0.493 -0.4,0.892 -0.888,0.89 -0.491,0 -0.888,-0.397 -0.888,-0.89 0,-0.489 0.397,-0.887 0.888,-0.887"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84528"
- d="m -347.575,299.54 c 0.487,0 0.886,0.395 0.886,0.886 0,0.494 -0.399,0.891 -0.886,0.891 -0.493,0 -0.888,-0.397 -0.888,-0.891 0,-0.491 0.395,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84530"
- d="m -350.839,302.809 c 0.49,0 0.886,0.397 0.886,0.886 0,0.494 -0.396,0.893 -0.886,0.893 -0.491,0 -0.889,-0.399 -0.889,-0.893 0,-0.489 0.398,-0.886 0.889,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84532"
- d="m -350.838,299.54 c 0.489,0 0.885,0.395 0.885,0.886 0,0.494 -0.396,0.891 -0.885,0.891 -0.492,0 -0.89,-0.397 -0.89,-0.891 0,-0.491 0.398,-0.886 0.89,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84534"
- d="m -347.576,302.809 c 0.488,0 0.888,0.397 0.888,0.886 0,0.494 -0.4,0.893 -0.888,0.893 -0.491,0 -0.888,-0.399 -0.888,-0.893 0,-0.489 0.397,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84536"
- d="m -344.311,302.809 c 0.488,0 0.886,0.397 0.886,0.886 0,0.494 -0.398,0.893 -0.886,0.893 -0.491,0 -0.888,-0.399 -0.888,-0.893 0,-0.489 0.397,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84538"
- d="m -344.31,299.54 c 0.487,0 0.885,0.395 0.885,0.886 0,0.494 -0.398,0.891 -0.885,0.891 -0.492,0 -0.888,-0.397 -0.888,-0.891 0,-0.491 0.396,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84540"
- y2="308.98499"
- x2="-343.42499"
- y1="308.98499"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84542"
- y2="311.16699"
- x2="-343.42499"
- y1="311.16699"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84544"
- y2="313.35001"
- x2="-343.42499"
- y1="313.35001"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84552"
- points="-601.13,292.47 -605.249,292.47 -603.198,294.263 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <polygon
- id="polygon84554"
- points="-590.618,292.47 -594.737,292.47 -592.686,294.263 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <polygon
- id="polygon84556"
- points="-580.105,292.47 -584.224,292.47 -582.173,294.263 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)" />
- <polygon
- id="polygon84564"
- points="-436.6,208.359 -434.532,206.566 -438.651,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84566"
- points="-426.089,208.359 -424.021,206.566 -428.14,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84568"
- points="-415.575,208.359 -413.507,206.566 -417.626,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84570"
- points="-296.627,290.885 -294.559,289.091 -298.678,289.091 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84714"
- inkscape:transform-center-x="434.5295"
- inkscape:transform-center-y="-60.127066">
- <defs
- id="defs84716">
- <rect
- id="SVGID_4862_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103539">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use103541" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4863_)"
- d="m -593.321,276.099 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84722" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4863_)"
- stroke-miterlimit="10"
- x1="-592.68903"
- y1="276.099"
- x2="-589.79303"
- y2="276.099"
- id="line84724" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84726"
- inkscape:transform-center-x="413.59995"
- inkscape:transform-center-y="-60.127083">
- <defs
- id="defs84728">
- <polygon
- id="SVGID_4864_"
- points="-590.081,276.108 -588.288,278.632 -574.322,278.632 -574.322,273.567 -588.288,273.567 " />
- </defs>
- <clipPath
- id="clipPath103548">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4864_"
- overflow="visible"
- id="use103550" />
- </clipPath>
- <linearGradient
- id="linearGradient103552"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop103554" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103556" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4866_)"
- x="-590.08099"
- y="273.56699"
- clip-path="url(#SVGID_4865_)"
- width="15.759"
- height="5.0650001"
- id="rect84739" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points="-590.082,276.108 -588.289,278.632 -574.323,278.632 -574.323,273.567 -588.289,273.567 "
- id="polygon84741"
- inkscape:transform-center-x="413.60223"
- inkscape:transform-center-y="-60.127066" />
- <text
- y="597.62451"
- x="287.82977"
- id="text84743"
- inkscape:transform-center-x="412.33742"
- inkscape:transform-center-y="-60.270044"
- style="font-size:27px">
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="287.82977"
- y="597.62451"
- font-size="2.5652"
- id="tspan84745">N</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="291.70874"
- y="597.62451"
- font-size="2.5652"
- id="tspan84747">A</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="294.77774"
- y="597.62451"
- font-size="2.5652"
- id="tspan84749">TIV</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="302.49078"
- y="597.62451"
- font-size="2.5652"
- id="tspan84751">E</tspan>
- </text>
- <g
- transform="matrix(1.3542118,0,0,2.25,996.72494,-31.560183)"
- id="g84792"
- inkscape:transform-center-x="262.77489"
- inkscape:transform-center-y="141.90493">
- <defs
- id="defs84794">
- <rect
- id="SVGID_4872_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use103599" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4873_)"
- d="m -438.652,188.287 c 0,0.349 -0.282,0.632 -0.632,0.632 -0.349,0 -0.632,-0.283 -0.632,-0.632 0,-0.35 0.283,-0.633 0.632,-0.633 0.35,0 0.632,0.284 0.632,0.633"
- id="path84800" />
- <g
- clip-path="url(#SVGID_4873_)"
- id="g84802">
- <g
- id="g84804">
- <defs
- id="defs84806">
- <rect
- id="SVGID_4874_"
- x="-679.90002"
- y="360.13901"
- width="174.95799"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103606">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4874_"
- overflow="visible"
- id="use103608" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4875_)"
- id="g84812">
- <defs
- id="defs84814">
- <rect
- id="SVGID_4876_"
- x="-679.90002"
- y="360.13901"
- width="174.95799"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103613">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4876_"
- overflow="visible"
- id="use103615" />
- </clipPath>
- <linearGradient
- id="linearGradient103617"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop103619" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop103621" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop103623" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop103625" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103627" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4878_)"
- x="-679.90002"
- y="360.138"
- clip-path="url(#SVGID_4877_)"
- width="174.95799"
- height="10.153"
- id="rect84831" />
- </g>
- </g>
- </g>
- <g
- clip-path="url(#SVGID_4873_)"
- id="g84833">
- <g
- id="g84835">
- <defs
- id="defs84837">
- <rect
- id="SVGID_4879_"
- x="-679.88898"
- y="360.13901"
- width="174.94701"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103634">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4879_"
- overflow="visible"
- id="use103636" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4880_)"
- id="g84843">
- <defs
- id="defs84845">
- <rect
- id="SVGID_4881_"
- x="-679.88898"
- y="360.138"
- width="174.94701"
- height="10.153" />
- </defs>
- <clipPath
- id="clipPath103641">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4881_"
- overflow="visible"
- id="use103643" />
- </clipPath>
- <polygon
- style="fill:#f15d57"
- clip-path="url(#SVGID_4882_)"
- points="-679.89,364.81 -679.89,367.139 -679.89,370.291 -504.943,370.291 -504.943,360.138 -679.89,360.139 "
- id="polygon84851" />
- </g>
- </g>
- </g>
- <rect
- style="fill:#f15d57"
- x="-679.90198"
- y="360.267"
- clip-path="url(#SVGID_4873_)"
- width="174.96001"
- height="2.641"
- id="rect84853" />
- <rect
- style="fill:#55aeb9"
- x="-679.88898"
- y="370.29199"
- clip-path="url(#SVGID_4873_)"
- width="174.94701"
- height="1.352"
- id="rect84855" />
- </g>
- <text
- xml:space="preserve"
- style="font-size:8px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="285.86542"
- y="577.40869"
- id="text113406"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan113408"
- x="285.86542"
- y="577.40869" /></text>
- <text
- y="832.10559"
- x="242.41013"
- id="text84343-2"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="197.43796"
- y="832.10559"
- font-size="5.1244"
- id="tspan84345-2">MASTER REGION</tspan>
- </text>
- <text
- y="926.36633"
- x="288.45654"
- id="text84343-2-6"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="249.24219"
- y="926.36633"
- font-size="5.1244"
- id="tspan84345-2-5" />
- </text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot126352"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126354"><rect
- id="rect126356"
- width="0"
- height="51"
- x="247"
- y="928.36218" /></flowRegion><flowPara
- id="flowPara126358" /></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot126403"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126405"><rect
- id="rect126407"
- width="185"
- height="81"
- x="286"
- y="941.36218" /></flowRegion><flowPara
- id="flowPara126409" /></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot126411"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126413"><rect
- id="rect126415"
- width="89"
- height="64"
- x="285"
- y="943.36218" /></flowRegion><flowPara
- id="flowPara126417" /></flowRoot> <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="272"
- y="529.64587"
- id="text126456"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan126458"
- x="272"
- y="529.64587">MASTER</tspan><tspan
- sodipodi:role="line"
- x="272"
- y="540.89587"
- id="tspan126460">ZONE</tspan></text>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g82107">
- <defs
- id="defs82109">
- <polygon
- id="SVGID_4519_"
- points="-504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 " />
- </defs>
- <clipPath
- id="clipPath126820">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_"
- overflow="visible"
- id="use126822" />
- </clipPath>
- <linearGradient
- id="linearGradient126824"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop126826" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop126828" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop126830" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop126832" />
- </linearGradient>
- <rect
- style="fill:url(#linearGradient126904)"
- x="-547.302"
- y="188.287"
- clip-path="url(#SVGID_4520_-5)"
- width="42.327"
- height="10.191"
- id="rect82124" />
- </g>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g82126">
- <defs
- id="defs82128">
- <rect
- id="SVGID_4522_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath126838">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126840" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -539.397,191.908 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.287,-0.642 0.64,-0.641 0.354,0 0.639,0.287 0.639,0.641 0,0.353 -0.285,0.639 -0.639,0.639"
- id="path82134" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -539.397,194.263 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.287,-0.642 0.64,-0.642 0.354,0 0.639,0.287 0.639,0.642 0,0.353 -0.285,0.639 -0.639,0.639"
- id="path82136" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="191.26801"
- sodipodi:cx="-541.625"
- d="m -540.985,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-541.625"
- cy="191.26801"
- r="0.63999999"
- id="circle82138" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="193.623"
- sodipodi:cx="-541.625"
- d="m -540.985,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-541.625"
- cy="193.623"
- r="0.63999999"
- id="circle82140" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="191.26801"
- sodipodi:cx="-543.85303"
- d="m -543.21303,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-543.85303"
- cy="191.26801"
- r="0.63999999"
- id="circle82142" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="193.623"
- sodipodi:cx="-543.854"
- d="m -543.214,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35347,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28653,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-543.854"
- cy="193.623"
- r="0.63999999"
- id="circle82144" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -537.169,191.908 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.286,-0.642 0.64,-0.641 0.354,0 0.64,0.287 0.64,0.641 0,0.353 -0.286,0.639 -0.64,0.639"
- id="path82146" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -537.169,194.263 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.286,-0.642 0.64,-0.642 0.354,0 0.64,0.287 0.64,0.642 0,0.353 -0.286,0.639 -0.64,0.639"
- id="path82148" />
- </g>
- <text
- y="319.3797"
- x="267.68884"
- id="text82150"
- style="font-size:40.5px">
- <tspan
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium"
- x="267.68884"
- y="319.3797"
- font-size="3.2027"
- id="tspan82152">AP</tspan>
- <tspan
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium"
- x="281.37094"
- y="319.3797"
- font-size="3.2027"
- id="tspan82154">P</tspan>
- </text>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g84638">
- <defs
- id="defs84640">
- <rect
- id="SVGID_4852_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath126879">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use126881" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4853_-8)"
- d="m -526.673,205.991 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84646" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4853_-8)"
- stroke-miterlimit="10"
- x1="-526.03998"
- y1="205.991"
- x2="-523.14398"
- y2="205.991"
- id="line84648" />
- </g>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g84650">
- <defs
- id="defs84652">
- <polygon
- id="SVGID_4854_"
- points="-507.673,203.458 -521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 " />
- </defs>
- <clipPath
- id="clipPath126888">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_"
- overflow="visible"
- id="use126890" />
- </clipPath>
- <linearGradient
- id="linearGradient126892"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop126894" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop126896" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4856_-4)"
- x="-523.43201"
- y="203.45799"
- clip-path="url(#SVGID_4855_-2)"
- width="15.759"
- height="5.066"
- id="rect84663" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- stroke-miterlimit="10"
- points="-507.674,203.459 -521.64,203.459 -523.433,206 -521.64,208.524 -507.674,208.524 "
- id="polygon84665" />
- <text
- y="363.54565"
- x="306.66861"
- id="text84667"
- style="font-size:40.5px">
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="306.66861"
- y="363.54565"
- font-size="2.5652"
- id="tspan84669">RE</tspan>
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="315.84521"
- y="363.54565"
- font-size="2.5652"
- id="tspan84671">S</tspan>
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="319.98297"
- y="363.54565"
- font-size="2.5652"
- id="tspan84673">T</tspan>
- </text>
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="232.25806"
- y="178.16862"
- id="text127482"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan127484"
- x="232.25806"
- y="178.16862" /></text>
- <text
- y="247.60512"
- x="322.41013"
- id="text84343-2-0"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="277.43796"
- y="247.60512"
- font-size="5.1244"
- id="tspan84345-2-6">MASTER REGION</tspan>
- </text>
- <text
- y="705.37921"
- x="255.23141"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82351-9"
- inkscape:transform-center-x="450.06672"
- inkscape:transform-center-y="45.543285">M</text>
- <g
- id="g9504"
- transform="translate(-230,34)">
- <g
- inkscape:transform-center-y="45.666809"
- inkscape:transform-center-x="449.81598"
- id="g82339-6"
- transform="matrix(2.25,0,0,2.25,1701.0081,-85.193202)">
- <defs
- id="defs82341-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4549_-8" />
- </defs>
- <clipPath
- id="clipPath101738-3">
- <use
- id="use101740-3"
- overflow="visible"
- xlink:href="#SVGID_4549_-8"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82347-9"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- clip-path="url(#SVGID_4550_-6)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57" />
- <path
- id="path82349-9"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4550_-6)"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- </g>
- <text
- inkscape:transform-center-y="45.543285"
- inkscape:transform-center-x="450.06672"
- id="text82351-9-4"
- font-size="4.3343"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- x="350.6293"
- y="645.37921">M</text>
- </g>
- <path
- id="path82449-2"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1767.5425,-25.466067)" />
- <path
- id="path82449-2-2"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-3)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1578.7139,-25.075587)" />
- <path
- id="path82449-2-0"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1767.5425,0.59793262)" />
- <path
- id="path82449-2-0-1"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9-3)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1767.6425,26.597933)" />
- <path
- id="path82449-2-0-1-5"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9-3-4)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1767.7422,53.197933)" />
- <text
- y="292.96655"
- x="321.78174"
- id="text84343-2-0-4-3"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="276.80957"
- y="292.96655"
- font-size="5.1244"
- id="tspan84345-2-6-5-3">WRITE / READ</tspan>
- </text>
- <text
- y="262.38412"
- x="322.19797"
- id="text84343-2-0-4-6"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="277.2258"
- y="262.38412"
- font-size="5.1244"
- id="tspan84345-2-6-5-6">(United States)</tspan>
- </text>
- <g
- transform="matrix(1.3542118,0,0,2.25,1325.4162,-25.59059)"
- id="g82158-9"
- inkscape:transform-center-x="262.3321"
- inkscape:transform-center-y="50.765304">
- <defs
- id="defs82160-5">
- <rect
- id="SVGID_4524_-5"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101582-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_-5"
- overflow="visible"
- id="use101584-7" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4525_-0)"
- id="g82166-4">
- <g
- id="g82168-7">
- <defs
- id="defs82170-2">
- <rect
- id="SVGID_4526_-7"
- x="-679.67902"
- y="293.259"
- width="175.168"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101590-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_-7"
- overflow="visible"
- id="use101592-1" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4527_-7)"
- id="g82176-6">
- <defs
- id="defs82178-7">
- <rect
- id="SVGID_4528_-0"
- x="-679.57202"
- y="293.367"
- width="174.953"
- height="64.037003" />
- </defs>
- <clipPath
- id="clipPath101597-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4528_-0"
- overflow="visible"
- id="use101599-3" />
- </clipPath>
- <linearGradient
- id="linearGradient101601-1"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop101603-3" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101605-0" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4530_-2)"
- x="-679.57202"
- y="293.366"
- clip-path="url(#SVGID_4529_-9)"
- width="174.953"
- height="64.038002"
- id="rect82189-5" />
- </g>
- <g
- clip-path="url(#SVGID_4527_-7)"
- id="g82191-9">
- <defs
- id="defs82193-6">
- <rect
- id="SVGID_4531_-4"
- x="-679.67902"
- y="293.259"
- width="175.168"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101611-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4531_-4"
- overflow="visible"
- id="use101613-8" />
- </clipPath>
- <rect
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10"
- x="-679.57202"
- y="293.366"
- clip-path="url(#SVGID_4532_-8)"
- stroke-miterlimit="10"
- width="174.953"
- height="64.038002"
- id="rect82199-7" />
- </g>
- </g>
- </g>
- <g
- clip-path="url(#SVGID_4525_-0)"
- id="g82201-2">
- <g
- id="g82203-6">
- <defs
- id="defs82205-4">
- <rect
- id="SVGID_4533_-1"
- x="-441.56699"
- y="293.259"
- width="45.873001"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101620-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_-1"
- overflow="visible"
- id="use101622-3" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4534_-49)"
- id="g82211-7">
- <defs
- id="defs82213-4">
- <rect
- id="SVGID_4535_-5"
- x="-441.45999"
- y="293.367"
- width="45.659"
- height="64.037003" />
- </defs>
- <clipPath
- id="clipPath101627-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4535_-5"
- overflow="visible"
- id="use101629-8" />
- </clipPath>
- <linearGradient
- id="linearGradient101631-5"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop101633-8" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101635-5" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4537_-7)"
- x="-441.45999"
- y="293.366"
- clip-path="url(#SVGID_4536_-4)"
- width="45.659"
- height="64.038002"
- id="rect82224-8" />
- </g>
- <g
- clip-path="url(#SVGID_4534_-49)"
- id="g82226-0">
- <defs
- id="defs82228-3">
- <rect
- id="SVGID_4538_-7"
- x="-441.56699"
- y="293.259"
- width="45.873001"
- height="64.251999" />
- </defs>
- <clipPath
- id="clipPath101641-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4538_-7"
- overflow="visible"
- id="use101643-6" />
- </clipPath>
- <rect
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10"
- x="-441.45999"
- y="293.366"
- clip-path="url(#SVGID_4539_-0)"
- stroke-miterlimit="10"
- width="45.659"
- height="64.038002"
- id="rect82234-0" />
- </g>
- </g>
- </g>
- </g>
- <rect
- style="fill:#f15d57"
- x="404.21451"
- y="574.65991"
- width="95.778"
- height="3.0712502"
- id="rect82236-5"
- inkscape:transform-center-x="586.0074"
- inkscape:transform-center-y="-79.564828" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82310-8"
- inkscape:transform-center-x="585.9972"
- inkscape:transform-center-y="-95.804196">
- <defs
- id="defs82312-6">
- <polygon
- id="SVGID_4546_-1"
- points="-679.997,253.224 -680.004,267.353 -637.65,267.32 -637.642,253.133 -659.18,258.293 " />
- </defs>
- <clipPath
- id="clipPath101711-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4546_-1"
- overflow="visible"
- id="use101713-5" />
- </clipPath>
- <linearGradient
- id="linearGradient101715-3"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101717-8" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop101719-2" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop101721-7" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop101723-6" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop101725-5" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop101727-2" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop101729-5" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101731-7" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4548_-6)"
- x="-680.00299"
- y="253.133"
- clip-path="url(#SVGID_4547_-1)"
- width="42.361"
- height="14.22"
- id="rect82335-2" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 499.52681,544.26464 -0.0157,31.37625 -94.815,0.072 0.0158,-31.2435 46.48274,11.31975 0.1125,0.027 0.11475,-0.027 48.10501,-11.5245 z m 0.4815,-0.60975 -48.699,11.66625 -47.079,-11.46375 -0.0135,32.337 95.77575,-0.0743 0.0157,-32.46525 z"
- id="path82337-5"
- inkscape:transform-center-x="585.99834"
- inkscape:transform-center-y="-95.835733" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82339-8"
- inkscape:transform-center-x="449.81598"
- inkscape:transform-center-y="45.666809">
- <defs
- id="defs82341-98">
- <rect
- id="SVGID_4549_-7"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101738-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-7"
- overflow="visible"
- id="use101740-4" />
- </clipPath>
- <path
- style="fill:#f15d57"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_-50)"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82347-4" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_-50)"
- stroke-miterlimit="10"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82349-4" />
- </g>
- <text
- y="704.8584"
- x="603.83478"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82351-1"
- inkscape:transform-center-x="450.06672"
- inkscape:transform-center-y="45.543285">M</text>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82353-8"
- inkscape:transform-center-x="503.22873"
- inkscape:transform-center-y="71.647559">
- <defs
- id="defs82355-0">
- <rect
- id="SVGID_4551_-7"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101748-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_-7"
- overflow="visible"
- id="use101750-2" />
- </clipPath>
- <path
- style="fill:#f15d57"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4552_-4)"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82361-9" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4552_-4)"
- stroke-miterlimit="10"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82363-6" />
- </g>
- <text
- y="730.84003"
- x="530.42249"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82365-8"
- inkscape:transform-center-x="503.47899"
- inkscape:transform-center-y="71.524915">M</text>
- <rect
- style="fill:#ffffff"
- x="416.3511"
- y="664.56543"
- width="21.581999"
- height="21.584251"
- id="rect82381-2"
- inkscape:transform-center-x="610.96881"
- inkscape:transform-center-y="19.597191" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10"
- x="416.3511"
- y="664.56543"
- stroke-miterlimit="10"
- width="21.581999"
- height="21.584251"
- id="rect82383-1"
- inkscape:transform-center-x="610.96881"
- inkscape:transform-center-y="19.597191" />
- <rect
- style="fill:#81d0db"
- x="417.8631"
- y="666.08191"
- width="18.557999"
- height="18.553501"
- id="rect82385-3"
- inkscape:transform-center-x="610.97115"
- inkscape:transform-center-y="19.598295" />
- <rect
- style="fill:#ffffff"
- x="419.34586"
- y="667.56012"
- width="15.592501"
- height="15.594751"
- id="rect82387-5"
- inkscape:transform-center-x="610.96883"
- inkscape:transform-center-y="19.597131" />
- <rect
- style="fill:#ffffff"
- x="422.00085"
- y="670.21729"
- width="10.282501"
- height="10.278"
- id="rect82389-9"
- inkscape:transform-center-x="610.97103"
- inkscape:transform-center-y="19.595982" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4666,-25.591067)"
- id="g82391-8"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82393-4">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4555_-7"
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101773-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_-7"
- overflow="visible"
- id="use101775-6" />
- </clipPath>
- <linearGradient
- id="linearGradient101777-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101779-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101781-1" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4557_-8)"
- x="-672.61401"
- y="308.841"
- clip-path="url(#SVGID_4556_-9)"
- width="5.3839998"
- height="5.3839998"
- id="rect82404-9" />
- </g>
- <rect
- id="rect82451-3"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4564_-73)"
- y="306.73599"
- x="-650.77399"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82453-2"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4564_-73)"
- y="306.73599"
- x="-650.77399"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82455-8"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4564_-73)"
- y="307.41"
- x="-650.10303"
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82457-2"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4564_-73)"
- y="308.06699"
- x="-649.44299"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82459-8"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4564_-73)"
- y="309.24799"
- x="-648.26398"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82461-4"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82463-7">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4565_-3"
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101827-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4565_-3"
- overflow="visible"
- id="use101829-7" />
- </clipPath>
- <linearGradient
- id="linearGradient101831-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101833-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101835-4" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4567_-1)"
- x="-648.67102"
- y="308.841"
- clip-path="url(#SVGID_4566_-3)"
- width="5.3839998"
- height="5.3839998"
- id="rect82474-5" />
- </g>
- <path
- id="path82484-3"
- d="m -646.611,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4569_-7)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82486-0"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4569_-7)"
- y="306.73599"
- x="-638.80298"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82488-6"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4569_-7)"
- y="306.73599"
- x="-638.80298"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82490-6"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4569_-7)"
- y="307.41"
- x="-638.13202"
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82492-4"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4569_-7)"
- y="308.06699"
- x="-637.47198"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <rect
- id="rect82494-9"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4569_-7)"
- y="309.24799"
- x="-636.29199"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82496-3"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82498-5">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4570_-9"
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101854-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4570_-9"
- overflow="visible"
- id="use101856-3" />
- </clipPath>
- <linearGradient
- id="linearGradient101858-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101860-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101862-5" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4572_-41)"
- x="-636.69897"
- y="308.841"
- clip-path="url(#SVGID_4571_-0)"
- width="5.3839998"
- height="5.3839998"
- id="rect82509-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82511-7"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82513-7">
- <rect
- id="SVGID_4573_-4"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101868-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_-4"
- overflow="visible"
- id="use101870-7" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4574_-9)"
- d="m -634.639,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82519-6" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="306.73599"
- clip-path="url(#SVGID_4574_-9)"
- width="9.592"
- height="9.5930004"
- id="rect82521-0" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="306.73599"
- clip-path="url(#SVGID_4574_-9)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82523-1" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="307.41"
- clip-path="url(#SVGID_4574_-9)"
- width="8.2480001"
- height="8.2460003"
- id="rect82525-5" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="308.06699"
- clip-path="url(#SVGID_4574_-9)"
- width="6.9299998"
- height="6.9310002"
- id="rect82527-3" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="309.24799"
- clip-path="url(#SVGID_4574_-9)"
- width="4.5700002"
- height="4.5679998"
- id="rect82529-8" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82531-3"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82533-9">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4575_-2"
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69" />
- </defs>
- <clipPath
- id="clipPath101881-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4575_-2"
- overflow="visible"
- id="use101883-6" />
- </clipPath>
- <linearGradient
- id="linearGradient101885-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101887-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101889-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4577_-27)"
- x="-624.72803"
- y="308.841"
- clip-path="url(#SVGID_4576_-1)"
- width="5.3839998"
- height="5.3839998"
- id="rect82544-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82546-5"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82548-4">
- <rect
- id="SVGID_4578_-9"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101895-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_-9"
- overflow="visible"
- id="use101897-5" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4579_-0)"
- d="m -622.668,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82554-9" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="306.73599"
- clip-path="url(#SVGID_4579_-0)"
- width="9.5930004"
- height="9.5930004"
- id="rect82556-4" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="306.73599"
- clip-path="url(#SVGID_4579_-0)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.5930004"
- id="rect82558-0" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="307.41"
- clip-path="url(#SVGID_4579_-0)"
- width="8.2480001"
- height="8.2460003"
- id="rect82560-5" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="308.06699"
- clip-path="url(#SVGID_4579_-0)"
- width="6.9310002"
- height="6.9310002"
- id="rect82562-1" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="309.24799"
- clip-path="url(#SVGID_4579_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect82564-1" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82566-5"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82568-0">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4580_-5"
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101908-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4580_-5"
- overflow="visible"
- id="use101910-9" />
- </clipPath>
- <linearGradient
- id="linearGradient101912-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101914-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101916-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4582_-8)"
- x="-612.75598"
- y="308.841"
- clip-path="url(#SVGID_4581_-2)"
- width="5.3829999"
- height="5.3839998"
- id="rect82579-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82581-3"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82583-0">
- <rect
- id="SVGID_4583_-4"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101922-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_-4"
- overflow="visible"
- id="use101924-4" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4584_-0)"
- d="m -610.696,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82589-5" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="306.73599"
- clip-path="url(#SVGID_4584_-0)"
- width="9.592"
- height="9.5930004"
- id="rect82591-2" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="306.73599"
- clip-path="url(#SVGID_4584_-0)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82593-2" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="307.41"
- clip-path="url(#SVGID_4584_-0)"
- width="8.2480001"
- height="8.2460003"
- id="rect82595-8" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="308.06699"
- clip-path="url(#SVGID_4584_-0)"
- width="6.9299998"
- height="6.9310002"
- id="rect82597-7" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="309.24799"
- clip-path="url(#SVGID_4584_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect82599-7" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82601-6"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82603-1">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4585_-8"
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101935-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4585_-8"
- overflow="visible"
- id="use101937-8" />
- </clipPath>
- <linearGradient
- id="linearGradient101939-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101941-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101943-8" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4587_-9)"
- x="-600.78497"
- y="308.841"
- clip-path="url(#SVGID_4586_-03)"
- width="5.3829999"
- height="5.3839998"
- id="rect82614-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82616-8"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="19.597166">
- <defs
- id="defs82618-9">
- <rect
- id="SVGID_4588_-2"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101949-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_-2"
- overflow="visible"
- id="use101951-6" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4589_-7)"
- d="m -598.725,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82624-1" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="306.73599"
- clip-path="url(#SVGID_4589_-7)"
- width="9.592"
- height="9.5930004"
- id="rect82626-0" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="306.73599"
- clip-path="url(#SVGID_4589_-7)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82628-0" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="307.41"
- clip-path="url(#SVGID_4589_-7)"
- width="8.2480001"
- height="8.2460003"
- id="rect82630-0" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="308.06699"
- clip-path="url(#SVGID_4589_-7)"
- width="6.9299998"
- height="6.9310002"
- id="rect82632-3" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="309.24799"
- clip-path="url(#SVGID_4589_-7)"
- width="4.5700002"
- height="4.5679998"
- id="rect82634-1" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82636-3"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="19.598312">
- <defs
- id="defs82638-5">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4590_-7"
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath101962-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4590_-7"
- overflow="visible"
- id="use101964-0" />
- </clipPath>
- <linearGradient
- id="linearGradient101966-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101968-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop101970-4" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4592_-6)"
- x="-588.81299"
- y="308.841"
- clip-path="url(#SVGID_4591_-2)"
- width="5.3829999"
- height="5.3839998"
- id="rect82649-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82896-3"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82898-8">
- <rect
- id="SVGID_4628_-3"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102165-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_-3"
- overflow="visible"
- id="use102167-0" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4629_-0)"
- d="m -670.553,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82904-4" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="318.323"
- clip-path="url(#SVGID_4629_-0)"
- width="9.592"
- height="9.5930004"
- id="rect82906-1" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="318.323"
- clip-path="url(#SVGID_4629_-0)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82908-3" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="318.99701"
- clip-path="url(#SVGID_4629_-0)"
- width="8.2480001"
- height="8.2460003"
- id="rect82910-4" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="319.65399"
- clip-path="url(#SVGID_4629_-0)"
- width="6.9299998"
- height="6.9310002"
- id="rect82912-1" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="320.83499"
- clip-path="url(#SVGID_4629_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect82914-4" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82916-7"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82918-4">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4630_-9"
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102178-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4630_-9"
- overflow="visible"
- id="use102180-1" />
- </clipPath>
- <linearGradient
- id="linearGradient102182-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102184-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102186-5" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4632_-7)"
- x="-660.64203"
- y="320.42899"
- clip-path="url(#SVGID_4631_-7)"
- width="5.3839998"
- height="5.3839998"
- id="rect82929-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82931-1"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82933-7">
- <rect
- id="SVGID_4633_-6"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102192-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_-6"
- overflow="visible"
- id="use102194-8" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4634_-0)"
- d="m -658.582,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82939-0" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="318.323"
- clip-path="url(#SVGID_4634_-0)"
- width="9.592"
- height="9.5930004"
- id="rect82941-6" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="318.323"
- clip-path="url(#SVGID_4634_-0)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82943-7" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="318.99701"
- clip-path="url(#SVGID_4634_-0)"
- width="8.2480001"
- height="8.2460003"
- id="rect82945-4" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="319.65399"
- clip-path="url(#SVGID_4634_-0)"
- width="6.9299998"
- height="6.9310002"
- id="rect82947-0" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="320.83499"
- clip-path="url(#SVGID_4634_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect82949-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82951-7"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82953-8">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4635_-5"
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102205-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4635_-5"
- overflow="visible"
- id="use102207-1" />
- </clipPath>
- <linearGradient
- id="linearGradient102209-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102211-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102213-4" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4637_-4)"
- x="-648.67102"
- y="320.42899"
- clip-path="url(#SVGID_4636_-9)"
- width="5.3839998"
- height="5.3839998"
- id="rect82964-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82966-8"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs82968-8">
- <rect
- id="SVGID_4638_-3"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102219-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_-3"
- overflow="visible"
- id="use102221-0" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4639_-45)"
- d="m -646.611,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82974-0" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="318.323"
- clip-path="url(#SVGID_4639_-45)"
- width="9.592"
- height="9.5930004"
- id="rect82976-3" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="318.323"
- clip-path="url(#SVGID_4639_-45)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82978-1" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="318.99701"
- clip-path="url(#SVGID_4639_-45)"
- width="8.2480001"
- height="8.2460003"
- id="rect82980-7" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="319.65399"
- clip-path="url(#SVGID_4639_-45)"
- width="6.9299998"
- height="6.9310002"
- id="rect82982-8" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="320.83499"
- clip-path="url(#SVGID_4639_-45)"
- width="4.5700002"
- height="4.5679998"
- id="rect82984-6" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g82986-8"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs82988-7">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4640_-2"
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102232-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4640_-2"
- overflow="visible"
- id="use102234-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102236-4"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102238-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102240-5" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4642_-8)"
- x="-636.69897"
- y="320.42899"
- clip-path="url(#SVGID_4641_-3)"
- width="5.3839998"
- height="5.3839998"
- id="rect82999-8" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83001-3"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83003-9">
- <rect
- id="SVGID_4643_-8"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102246-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_-8"
- overflow="visible"
- id="use102248-6" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4644_-6)"
- d="m -634.639,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83009-0" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="318.323"
- clip-path="url(#SVGID_4644_-6)"
- width="9.592"
- height="9.5930004"
- id="rect83011-4" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="318.323"
- clip-path="url(#SVGID_4644_-6)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect83013-7" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="318.99701"
- clip-path="url(#SVGID_4644_-6)"
- width="8.2480001"
- height="8.2460003"
- id="rect83015-7" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="319.65399"
- clip-path="url(#SVGID_4644_-6)"
- width="6.9299998"
- height="6.9310002"
- id="rect83017-1" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="320.83499"
- clip-path="url(#SVGID_4644_-6)"
- width="4.5700002"
- height="4.5679998"
- id="rect83019-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83021-5"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83023-1">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4645_-7"
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69" />
- </defs>
- <clipPath
- id="clipPath102259-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4645_-7"
- overflow="visible"
- id="use102261-1" />
- </clipPath>
- <linearGradient
- id="linearGradient102263-7"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102265-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102267-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4647_-0)"
- x="-624.72803"
- y="320.42899"
- clip-path="url(#SVGID_4646_-87)"
- width="5.3839998"
- height="5.3839998"
- id="rect83034-4" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83036-0"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83038-8">
- <rect
- id="SVGID_4648_-2"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102273-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_-2"
- overflow="visible"
- id="use102275-0" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4649_-4)"
- d="m -622.668,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83044-7" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="318.323"
- clip-path="url(#SVGID_4649_-4)"
- width="9.5930004"
- height="9.5930004"
- id="rect83046-7" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="318.323"
- clip-path="url(#SVGID_4649_-4)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.5930004"
- id="rect83048-4" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="318.99701"
- clip-path="url(#SVGID_4649_-4)"
- width="8.2480001"
- height="8.2460003"
- id="rect83050-0" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="319.65399"
- clip-path="url(#SVGID_4649_-4)"
- width="6.9310002"
- height="6.9310002"
- id="rect83052-4" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="320.83499"
- clip-path="url(#SVGID_4649_-4)"
- width="4.5700002"
- height="4.5679998"
- id="rect83054-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83056-3"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83058-3">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4650_-3"
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102286-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4650_-3"
- overflow="visible"
- id="use102288-9" />
- </clipPath>
- <linearGradient
- id="linearGradient102290-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102292-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102294-8" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4652_-6)"
- x="-612.75598"
- y="320.42899"
- clip-path="url(#SVGID_4651_-3)"
- width="5.3829999"
- height="5.3839998"
- id="rect83069-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83071-4"
- inkscape:transform-center-x="444.42945"
- inkscape:transform-center-y="45.667929">
- <defs
- id="defs83073-0">
- <rect
- id="SVGID_4653_-9"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102300-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_-9"
- overflow="visible"
- id="use102302-8" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4654_-2)"
- d="m -610.696,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83079-6" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="318.323"
- clip-path="url(#SVGID_4654_-2)"
- width="9.592"
- height="9.5930004"
- id="rect83081-7" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="318.323"
- clip-path="url(#SVGID_4654_-2)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect83083-5" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="318.99701"
- clip-path="url(#SVGID_4654_-2)"
- width="8.2480001"
- height="8.2460003"
- id="rect83085-8" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="319.65399"
- clip-path="url(#SVGID_4654_-2)"
- width="6.9299998"
- height="6.9310002"
- id="rect83087-9" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="320.83499"
- clip-path="url(#SVGID_4654_-2)"
- width="4.5700002"
- height="4.5679998"
- id="rect83089-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83091-0"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="45.671291">
- <defs
- id="defs83093-8">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4655_-6"
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69" />
- </defs>
- <clipPath
- id="clipPath102313-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_-6"
- overflow="visible"
- id="use102315-0" />
- </clipPath>
- <linearGradient
- id="linearGradient102317-3"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102319-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102321-7" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4657_-5)"
- x="-588.81299"
- y="320.42899"
- clip-path="url(#SVGID_4656_-5)"
- width="5.3829999"
- height="5.3839998"
- id="rect83104-3" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4666,-25.59059)"
- id="g83336-4"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83338-2">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4690_-8"
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102502-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4690_-8"
- overflow="visible"
- id="use102504-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102506-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102508-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102510-4" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4692_-5)"
- x="-672.61401"
- y="331.974"
- clip-path="url(#SVGID_4691_-8)"
- width="5.3839998"
- height="5.3860002"
- id="rect83349-8" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83351-8"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83353-8">
- <rect
- id="SVGID_4693_-2"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102516-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_-2"
- overflow="visible"
- id="use102518-7" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4694_-6)"
- d="m -670.553,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83359-7" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="329.87"
- clip-path="url(#SVGID_4694_-6)"
- width="9.592"
- height="9.592"
- id="rect83361-9" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="329.87"
- clip-path="url(#SVGID_4694_-6)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83363-3" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="330.543"
- clip-path="url(#SVGID_4694_-6)"
- width="8.2480001"
- height="8.2469997"
- id="rect83365-6" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="331.20099"
- clip-path="url(#SVGID_4694_-6)"
- width="6.9299998"
- height="6.9299998"
- id="rect83367-6" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="332.38199"
- clip-path="url(#SVGID_4694_-6)"
- width="4.5700002"
- height="4.5679998"
- id="rect83369-3" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83371-6"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="71.648681">
- <defs
- id="defs83373-8">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4695_-3"
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102529-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4695_-3"
- overflow="visible"
- id="use102531-5" />
- </clipPath>
- <linearGradient
- id="linearGradient102533-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102535-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102537-0" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4697_-7)"
- x="-660.64203"
- y="331.974"
- clip-path="url(#SVGID_4696_-9)"
- width="5.3839998"
- height="5.3850002"
- id="rect83384-7" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83386-5"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83388-6">
- <rect
- id="SVGID_4698_-1"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102543-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_-1"
- overflow="visible"
- id="use102545-4" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4699_-07)"
- d="m -658.582,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83394-3" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="329.87"
- clip-path="url(#SVGID_4699_-07)"
- width="9.592"
- height="9.592"
- id="rect83396-6" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="329.87"
- clip-path="url(#SVGID_4699_-07)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83398-1" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="330.543"
- clip-path="url(#SVGID_4699_-07)"
- width="8.2480001"
- height="8.2469997"
- id="rect83400-3" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="331.20099"
- clip-path="url(#SVGID_4699_-07)"
- width="6.9299998"
- height="6.9299998"
- id="rect83402-2" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="332.38199"
- clip-path="url(#SVGID_4699_-07)"
- width="4.5700002"
- height="4.5679998"
- id="rect83404-1" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83406-2"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83408-0">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4700_-3"
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102556-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4700_-3"
- overflow="visible"
- id="use102558-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102560-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102562-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102564-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4702_-3)"
- x="-648.67102"
- y="331.974"
- clip-path="url(#SVGID_4701_-9)"
- width="5.3839998"
- height="5.3860002"
- id="rect83419-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83421-8"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83423-5">
- <rect
- id="SVGID_4703_-5"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102570-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_-5"
- overflow="visible"
- id="use102572-0" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4704_-1)"
- d="m -646.611,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83429-3" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="329.87"
- clip-path="url(#SVGID_4704_-1)"
- width="9.592"
- height="9.592"
- id="rect83431-4" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="329.87"
- clip-path="url(#SVGID_4704_-1)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83433-7" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="330.543"
- clip-path="url(#SVGID_4704_-1)"
- width="8.2480001"
- height="8.2469997"
- id="rect83435-2" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="331.20099"
- clip-path="url(#SVGID_4704_-1)"
- width="6.9299998"
- height="6.9299998"
- id="rect83437-6" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="332.38199"
- clip-path="url(#SVGID_4704_-1)"
- width="4.5700002"
- height="4.5679998"
- id="rect83439-4" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83441-7"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83443-2">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4705_-7"
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102583-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4705_-7"
- overflow="visible"
- id="use102585-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102587-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102589-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102591-0" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4707_-8)"
- x="-636.69897"
- y="331.974"
- clip-path="url(#SVGID_4706_-25)"
- width="5.3839998"
- height="5.3860002"
- id="rect83454-4" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83456-8"
- inkscape:transform-center-x="498.30125"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83458-2">
- <rect
- id="SVGID_4708_-8"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102597-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_-8"
- overflow="visible"
- id="use102599-7" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4709_-6)"
- d="m -634.639,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83464-3" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="329.87"
- clip-path="url(#SVGID_4709_-6)"
- width="9.5930004"
- height="9.592"
- id="rect83466-8" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="329.87"
- clip-path="url(#SVGID_4709_-6)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.592"
- id="rect83468-0" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="330.543"
- clip-path="url(#SVGID_4709_-6)"
- width="8.2480001"
- height="8.2469997"
- id="rect83470-5" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="331.20099"
- clip-path="url(#SVGID_4709_-6)"
- width="6.9310002"
- height="6.9299998"
- id="rect83472-2" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="332.38199"
- clip-path="url(#SVGID_4709_-6)"
- width="4.5700002"
- height="4.5679998"
- id="rect83474-0" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83476-5"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83478-8">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4710_-7"
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102610-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4710_-7"
- overflow="visible"
- id="use102612-0" />
- </clipPath>
- <linearGradient
- id="linearGradient102614-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102616-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102618-7" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4712_-3)"
- x="-612.75598"
- y="331.974"
- clip-path="url(#SVGID_4711_-5)"
- width="5.3829999"
- height="5.3860002"
- id="rect83489-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83491-9"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83493-3">
- <rect
- id="SVGID_4713_-2"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102624-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_-2"
- overflow="visible"
- id="use102626-1" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4714_-7)"
- d="m -610.696,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83499-1" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="329.87"
- clip-path="url(#SVGID_4714_-7)"
- width="9.592"
- height="9.592"
- id="rect83501-0" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="329.87"
- clip-path="url(#SVGID_4714_-7)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83503-1" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="330.543"
- clip-path="url(#SVGID_4714_-7)"
- width="8.2480001"
- height="8.2469997"
- id="rect83505-7" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="331.20099"
- clip-path="url(#SVGID_4714_-7)"
- width="6.9299998"
- height="6.9299998"
- id="rect83507-1" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="332.38199"
- clip-path="url(#SVGID_4714_-7)"
- width="4.5700002"
- height="4.5679998"
- id="rect83509-7" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83511-7"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83513-5">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4715_-7"
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102637-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4715_-7"
- overflow="visible"
- id="use102639-2" />
- </clipPath>
- <linearGradient
- id="linearGradient102641-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102643-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102645-3" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4717_-52)"
- x="-600.78497"
- y="331.974"
- clip-path="url(#SVGID_4716_-5)"
- width="5.3829999"
- height="5.3860002"
- id="rect83524-7" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83526-2"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="71.647547">
- <defs
- id="defs83528-5">
- <rect
- id="SVGID_4718_-5"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102651-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_-5"
- overflow="visible"
- id="use102653-4" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4719_-0)"
- d="m -598.725,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83534-1" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="329.87"
- clip-path="url(#SVGID_4719_-0)"
- width="9.592"
- height="9.592"
- id="rect83536-2" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="329.87"
- clip-path="url(#SVGID_4719_-0)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83538-7" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="330.543"
- clip-path="url(#SVGID_4719_-0)"
- width="8.2480001"
- height="8.2469997"
- id="rect83540-4" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="331.20099"
- clip-path="url(#SVGID_4719_-0)"
- width="6.9299998"
- height="6.9299998"
- id="rect83542-2" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="332.38199"
- clip-path="url(#SVGID_4719_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect83544-4" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83546-3"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="71.649806">
- <defs
- id="defs83548-5">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4720_-7"
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102664-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4720_-7"
- overflow="visible"
- id="use102666-8" />
- </clipPath>
- <linearGradient
- id="linearGradient102668-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102670-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102672-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4722_-33)"
- x="-588.81299"
- y="331.974"
- clip-path="url(#SVGID_4721_-50)"
- width="5.3829999"
- height="5.3860002"
- id="rect83559-7" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4666,-25.59059)"
- id="g83756-0"
- inkscape:transform-center-x="610.97111"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83758-9">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4750_-6"
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102826-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4750_-6"
- overflow="visible"
- id="use102828-9" />
- </clipPath>
- <linearGradient
- id="linearGradient102830-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102832-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102834-9" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4752_-4)"
- x="-672.61401"
- y="343.75699"
- clip-path="url(#SVGID_4751_-1)"
- width="5.3839998"
- height="5.3839998"
- id="rect83769-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83771-2"
- inkscape:transform-center-x="592.57619"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83773-9">
- <rect
- id="SVGID_4753_-7"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102840-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_-7"
- overflow="visible"
- id="use102842-4" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4754_-0)"
- d="m -670.553,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83779-9" />
- <rect
- style="fill:#ffffff"
- x="-662.745"
- y="341.65302"
- clip-path="url(#SVGID_4754_-0)"
- width="9.592"
- height="9.592"
- id="rect83781-6" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-662.74597"
- y="341.65302"
- clip-path="url(#SVGID_4754_-0)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83783-5" />
- <rect
- style="fill:#81d0db"
- x="-662.07397"
- y="342.32599"
- clip-path="url(#SVGID_4754_-0)"
- width="8.2480001"
- height="8.2469997"
- id="rect83785-2" />
- <rect
- style="fill:#ffffff"
- x="-661.414"
- y="342.98401"
- clip-path="url(#SVGID_4754_-0)"
- width="6.9299998"
- height="6.9299998"
- id="rect83787-5" />
- <rect
- style="fill:#ffffff"
- x="-660.23499"
- y="344.164"
- clip-path="url(#SVGID_4754_-0)"
- width="4.5700002"
- height="4.5679998"
- id="rect83789-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83791-4"
- inkscape:transform-center-x="584.03412"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83793-0">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4755_-2"
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102853-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4755_-2"
- overflow="visible"
- id="use102855-9" />
- </clipPath>
- <linearGradient
- id="linearGradient102857-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102859-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102861-9" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4757_-6)"
- x="-660.64203"
- y="343.75699"
- clip-path="url(#SVGID_4756_-57)"
- width="5.3839998"
- height="5.3839998"
- id="rect83804-6" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83806-2"
- inkscape:transform-center-x="565.64033"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83808-9">
- <rect
- id="SVGID_4758_-6"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102867-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_-6"
- overflow="visible"
- id="use102869-5" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4759_-5)"
- d="m -658.582,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83814-1" />
- <rect
- style="fill:#ffffff"
- x="-650.77399"
- y="341.65302"
- clip-path="url(#SVGID_4759_-5)"
- width="9.592"
- height="9.592"
- id="rect83816-2" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="341.65302"
- clip-path="url(#SVGID_4759_-5)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83818-3" />
- <rect
- style="fill:#81d0db"
- x="-650.10303"
- y="342.32599"
- clip-path="url(#SVGID_4759_-5)"
- width="8.2480001"
- height="8.2469997"
- id="rect83820-0" />
- <rect
- style="fill:#ffffff"
- x="-649.44299"
- y="342.98401"
- clip-path="url(#SVGID_4759_-5)"
- width="6.9299998"
- height="6.9299998"
- id="rect83822-4" />
- <rect
- style="fill:#ffffff"
- x="-648.26398"
- y="344.164"
- clip-path="url(#SVGID_4759_-5)"
- width="4.5700002"
- height="4.5679998"
- id="rect83824-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83826-5"
- inkscape:transform-center-x="557.09937"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83828-3">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4760_-8"
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102880-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4760_-8"
- overflow="visible"
- id="use102882-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102884-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102886-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102888-2" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4762_-0)"
- x="-648.67102"
- y="343.75699"
- clip-path="url(#SVGID_4761_-32)"
- width="5.3839998"
- height="5.3839998"
- id="rect83839-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83841-0"
- inkscape:transform-center-x="538.70558"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83843-2">
- <rect
- id="SVGID_4763_-6"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102894-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_-6"
- overflow="visible"
- id="use102896-6" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4764_-8)"
- d="m -646.611,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83849-9" />
- <rect
- style="fill:#ffffff"
- x="-638.80298"
- y="341.65302"
- clip-path="url(#SVGID_4764_-8)"
- width="9.592"
- height="9.592"
- id="rect83851-9" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="341.65302"
- clip-path="url(#SVGID_4764_-8)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83853-5" />
- <rect
- style="fill:#81d0db"
- x="-638.13202"
- y="342.32599"
- clip-path="url(#SVGID_4764_-8)"
- width="8.2480001"
- height="8.2469997"
- id="rect83855-9" />
- <rect
- style="fill:#ffffff"
- x="-637.47198"
- y="342.98401"
- clip-path="url(#SVGID_4764_-8)"
- width="6.9299998"
- height="6.9299998"
- id="rect83857-0" />
- <rect
- style="fill:#ffffff"
- x="-636.29199"
- y="344.164"
- clip-path="url(#SVGID_4764_-8)"
- width="4.5700002"
- height="4.5679998"
- id="rect83859-1" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83861-1"
- inkscape:transform-center-x="530.16231"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83863-9">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4765_-7"
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102907-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4765_-7"
- overflow="visible"
- id="use102909-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102911-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102913-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102915-0" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4767_-9)"
- x="-636.69897"
- y="343.75699"
- clip-path="url(#SVGID_4766_-0)"
- width="5.3839998"
- height="5.3839998"
- id="rect83874-3" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83876-5"
- inkscape:transform-center-x="511.76858"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83878-1">
- <rect
- id="SVGID_4768_-0"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102921-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_-0"
- overflow="visible"
- id="use102923-0" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4769_-5)"
- d="m -634.639,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83884-6" />
- <rect
- style="fill:#ffffff"
- x="-626.83099"
- y="341.65302"
- clip-path="url(#SVGID_4769_-5)"
- width="9.592"
- height="9.592"
- id="rect83886-7" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-626.83099"
- y="341.65302"
- clip-path="url(#SVGID_4769_-5)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83888-0" />
- <rect
- style="fill:#81d0db"
- x="-626.15997"
- y="342.32599"
- clip-path="url(#SVGID_4769_-5)"
- width="8.2480001"
- height="8.2469997"
- id="rect83890-1" />
- <rect
- style="fill:#ffffff"
- x="-625.5"
- y="342.98401"
- clip-path="url(#SVGID_4769_-5)"
- width="6.9299998"
- height="6.9299998"
- id="rect83892-0" />
- <rect
- style="fill:#ffffff"
- x="-624.32098"
- y="344.164"
- clip-path="url(#SVGID_4769_-5)"
- width="4.5700002"
- height="4.5679998"
- id="rect83894-2" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83896-1"
- inkscape:transform-center-x="503.22762"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83898-4">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4770_-0"
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692" />
- </defs>
- <clipPath
- id="clipPath102934-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4770_-0"
- overflow="visible"
- id="use102936-2" />
- </clipPath>
- <linearGradient
- id="linearGradient102938-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102940-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102942-8" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4772_-5)"
- x="-624.72803"
- y="343.75699"
- clip-path="url(#SVGID_4771_-8)"
- width="5.3839998"
- height="5.3839998"
- id="rect83909-9" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83911-4"
- inkscape:transform-center-x="484.83387"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83913-1">
- <rect
- id="SVGID_4773_-2"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102948-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_-2"
- overflow="visible"
- id="use102950-1" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4774_-60)"
- d="m -622.668,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83919-9" />
- <rect
- style="fill:#ffffff"
- x="-614.85999"
- y="341.65302"
- clip-path="url(#SVGID_4774_-60)"
- width="9.5930004"
- height="9.592"
- id="rect83921-3" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-614.86102"
- y="341.65302"
- clip-path="url(#SVGID_4774_-60)"
- stroke-miterlimit="10"
- width="9.5930004"
- height="9.592"
- id="rect83923-1" />
- <rect
- style="fill:#81d0db"
- x="-614.18799"
- y="342.32599"
- clip-path="url(#SVGID_4774_-60)"
- width="8.2480001"
- height="8.2469997"
- id="rect83925-1" />
- <rect
- style="fill:#ffffff"
- x="-613.52899"
- y="342.98401"
- clip-path="url(#SVGID_4774_-60)"
- width="6.9310002"
- height="6.9299998"
- id="rect83927-5" />
- <rect
- style="fill:#ffffff"
- x="-612.349"
- y="344.164"
- clip-path="url(#SVGID_4774_-60)"
- width="4.5700002"
- height="4.5679998"
- id="rect83929-6" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83931-6"
- inkscape:transform-center-x="476.2917"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83933-7">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4775_-6"
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102961-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4775_-6"
- overflow="visible"
- id="use102963-9" />
- </clipPath>
- <linearGradient
- id="linearGradient102965-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102967-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102969-9" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4777_-42)"
- x="-612.75598"
- y="343.75699"
- clip-path="url(#SVGID_4776_-8)"
- width="5.3829999"
- height="5.3839998"
- id="rect83944-6" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83946-6"
- inkscape:transform-center-x="457.89686"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83948-3">
- <rect
- id="SVGID_4778_-7"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath102975-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_-7"
- overflow="visible"
- id="use102977-3" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4779_-83)"
- d="m -610.696,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83954-0" />
- <rect
- style="fill:#ffffff"
- x="-602.888"
- y="341.65302"
- clip-path="url(#SVGID_4779_-83)"
- width="9.592"
- height="9.592"
- id="rect83956-5" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-602.888"
- y="341.65302"
- clip-path="url(#SVGID_4779_-83)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83958-2" />
- <rect
- style="fill:#81d0db"
- x="-602.21698"
- y="342.32599"
- clip-path="url(#SVGID_4779_-83)"
- width="8.2480001"
- height="8.2469997"
- id="rect83960-4" />
- <rect
- style="fill:#ffffff"
- x="-601.55701"
- y="342.98401"
- clip-path="url(#SVGID_4779_-83)"
- width="6.9299998"
- height="6.9299998"
- id="rect83962-5" />
- <rect
- style="fill:#ffffff"
- x="-600.37799"
- y="344.164"
- clip-path="url(#SVGID_4779_-83)"
- width="4.5700002"
- height="4.5679998"
- id="rect83964-3" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83966-0"
- inkscape:transform-center-x="449.35694"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs83968-6">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4780_-6"
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath102988-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4780_-6"
- overflow="visible"
- id="use102990-7" />
- </clipPath>
- <linearGradient
- id="linearGradient102992-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop102994-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop102996-1" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4782_-6)"
- x="-600.78497"
- y="343.75699"
- clip-path="url(#SVGID_4781_-0)"
- width="5.3829999"
- height="5.3839998"
- id="rect83979-0" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g83981-7"
- inkscape:transform-center-x="430.96208"
- inkscape:transform-center-y="98.159342">
- <defs
- id="defs83983-7">
- <rect
- id="SVGID_4783_-9"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103002-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_-9"
- overflow="visible"
- id="use103004-4" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4784_-5)"
- d="m -598.725,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path83989-6" />
- <rect
- style="fill:#ffffff"
- x="-590.91699"
- y="341.65302"
- clip-path="url(#SVGID_4784_-5)"
- width="9.592"
- height="9.592"
- id="rect83991-7" />
- <rect
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-590.91699"
- y="341.65302"
- clip-path="url(#SVGID_4784_-5)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.592"
- id="rect83993-9" />
- <rect
- style="fill:#81d0db"
- x="-590.24597"
- y="342.32599"
- clip-path="url(#SVGID_4784_-5)"
- width="8.2480001"
- height="8.2469997"
- id="rect83995-0" />
- <rect
- style="fill:#ffffff"
- x="-589.586"
- y="342.98401"
- clip-path="url(#SVGID_4784_-5)"
- width="6.9299998"
- height="6.9299998"
- id="rect83997-8" />
- <rect
- style="fill:#ffffff"
- x="-588.40698"
- y="344.164"
- clip-path="url(#SVGID_4784_-5)"
- width="4.5700002"
- height="4.5679998"
- id="rect83999-5" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g84001-7"
- inkscape:transform-center-x="422.41995"
- inkscape:transform-center-y="98.159295">
- <defs
- id="defs84003-1">
- <path
- inkscape:connector-curvature="0"
- id="SVGID_4785_-4"
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692" />
- </defs>
- <clipPath
- id="clipPath103015-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4785_-4"
- overflow="visible"
- id="use103017-4" />
- </clipPath>
- <linearGradient
- id="linearGradient103019-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop103021-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop103023-8" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4787_-8)"
- x="-588.81299"
- y="343.75699"
- clip-path="url(#SVGID_4786_-1)"
- width="5.3829999"
- height="5.3839998"
- id="rect84014-2" />
- </g>
- <text
- y="567.96027"
- x="435.21774"
- id="text84236-1"
- inkscape:transform-center-x="587.42372"
- inkscape:transform-center-y="-90.601429"
- style="font-size:27px">
- <tspan
- style="font-size:8px;fill:#37424b;font-family:ApexSans-Medium"
- x="435.21774"
- y="567.96027"
- font-size="3.4203"
- id="tspan84238-2">EU-EAST</tspan>
- </text>
- <rect
- style="fill:#f15d57"
- x="399.26007"
- y="492.96008"
- width="103.6395"
- height="3.8114998"
- id="rect84318-4"
- inkscape:transform-center-x="587.03108"
- inkscape:transform-center-y="-160.89453" />
- <g
- transform="translate(328.69122,-0.03041)"
- id="g9328-2">
- <line
- id="line84244-3-6"
- y2="533.36865"
- x2="121.81088"
- y1="315.62341"
- x1="121.81088"
- stroke-miterlimit="10"
- style="fill:none;stroke:#5e6a71;stroke-width:1.0268178;stroke-miterlimit:10;stroke-dasharray:3.07565499, 3.07565499" />
- <g
- id="g82107-4-5"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs82109-6-6">
- <polygon
- points="-504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 "
- id="SVGID_4519_-5-8" />
- </defs>
- <clipPath
- id="clipPath126820-6-9">
- <use
- id="use126822-8-2"
- overflow="visible"
- xlink:href="#SVGID_4519_-5-8"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126824-4-4">
- <stop
- id="stop126826-2-0"
- style="stop-color:#37424B"
- offset="0" />
- <stop
- id="stop126828-3-6"
- style="stop-color:#37424B"
- offset="0.12" />
- <stop
- id="stop126830-7-8"
- style="stop-color:#5E6A71"
- offset="0.88" />
- <stop
- id="stop126832-6-2"
- style="stop-color:#5E6A71"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82124-4-8"
- height="10.191"
- width="42.327"
- clip-path="url(#SVGID_4520_-5-6-7)"
- y="188.287"
- x="-547.302"
- style="fill:url(#linearGradient126904-61-3)" />
- </g>
- <g
- id="g82126-0-8"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs82128-8-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4522_-8-1" />
- </defs>
- <clipPath
- id="clipPath126838-9-7">
- <use
- id="use126840-87-3"
- overflow="visible"
- xlink:href="#SVGID_4522_-8-1"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82134-5-4"
- d="m -539.397,191.908 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.287,-0.642 0.64,-0.641 0.354,0 0.639,0.287 0.639,0.641 0,0.353 -0.285,0.639 -0.639,0.639"
- clip-path="url(#SVGID_4523_-1-5-1)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <path
- id="path82136-0-8"
- d="m -539.397,194.263 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.287,-0.642 0.64,-0.642 0.354,0 0.639,0.287 0.639,0.642 0,0.353 -0.285,0.639 -0.639,0.639"
- clip-path="url(#SVGID_4523_-1-5-1)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <circle
- id="circle82138-2-3"
- r="0.63999999"
- cy="191.26801"
- cx="-541.625"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5-1)"
- d="m -540.985,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- sodipodi:cx="-541.625"
- sodipodi:cy="191.26801"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82140-3-7"
- r="0.63999999"
- cy="193.623"
- cx="-541.625"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5-1)"
- d="m -540.985,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- sodipodi:cx="-541.625"
- sodipodi:cy="193.623"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82142-3-6"
- r="0.63999999"
- cy="191.26801"
- cx="-543.85303"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5-1)"
- d="m -543.21303,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- sodipodi:cx="-543.85303"
- sodipodi:cy="191.26801"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82144-4-4"
- r="0.63999999"
- cy="193.623"
- cx="-543.854"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5-1)"
- d="m -543.214,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35347,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28653,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- sodipodi:cx="-543.854"
- sodipodi:cy="193.623"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <path
- id="path82146-1-5"
- d="m -537.169,191.908 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.286,-0.642 0.64,-0.641 0.354,0 0.64,0.287 0.64,0.641 0,0.353 -0.286,0.639 -0.64,0.639"
- clip-path="url(#SVGID_4523_-1-5-1)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <path
- id="path82148-5-2"
- d="m -537.169,194.263 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.286,-0.642 0.64,-0.642 0.354,0 0.64,0.287 0.64,0.642 0,0.353 -0.286,0.639 -0.64,0.639"
- clip-path="url(#SVGID_4523_-1-5-1)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- </g>
- <text
- style="font-size:40.5px"
- id="text82150-7-1"
- x="112.11884"
- y="319.30515">
- <tspan
- id="tspan82152-4-3"
- font-size="3.2027"
- y="319.30515"
- x="112.11884"
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium">AP</tspan>
- <tspan
- id="tspan82154-9-7"
- font-size="3.2027"
- y="319.30515"
- x="125.80093"
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium">P</tspan>
- </text>
- <g
- id="g84638-4-9"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs84640-9-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4852_-4-9" />
- </defs>
- <clipPath
- id="clipPath126879-0-5">
- <use
- id="use126881-7-3"
- overflow="visible"
- xlink:href="#SVGID_4852_-4-9"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path84646-0-7"
- d="m -526.673,205.991 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4853_-8-0-4)"
- inkscape:connector-curvature="0"
- style="fill:#5e6a71" />
- <line
- id="line84648-6-5"
- y2="205.991"
- x2="-523.14398"
- y1="205.991"
- x1="-526.03998"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4853_-8-0-4)"
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10" />
- </g>
- <g
- id="g84650-5-5"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs84652-4-9">
- <polygon
- points="-521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 -507.673,203.458 "
- id="SVGID_4854_-1-2" />
- </defs>
- <clipPath
- id="clipPath126888-1-5">
- <use
- id="use126890-4-7"
- overflow="visible"
- xlink:href="#SVGID_4854_-1-2"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)"
- y2="249.94031"
- x2="-33.205101"
- y1="249.94031"
- x1="-34.205299"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126892-7-0">
- <stop
- id="stop126894-5-7"
- style="stop-color:#E6E8E7"
- offset="0" />
- <stop
- id="stop126896-6-7"
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <rect
- id="rect84663-7-0"
- height="5.066"
- width="15.759"
- clip-path="url(#SVGID_4855_-2-24-5)"
- y="203.45799"
- x="-523.43201"
- style="fill:url(#SVGID_4856_-4-1-0)" />
- </g>
- <polygon
- id="polygon84665-6-1"
- points="-521.64,203.459 -523.433,206 -521.64,208.524 -507.674,208.524 -507.674,203.459 "
- stroke-miterlimit="10"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)"
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10" />
- <text
- style="font-size:40.5px"
- id="text84667-5-9"
- x="151.0986"
- y="363.4711">
- <tspan
- id="tspan84669-5-9"
- font-size="2.5652"
- y="363.4711"
- x="151.0986"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">RE</tspan>
- <tspan
- id="tspan84671-5-4"
- font-size="2.5652"
- y="363.4711"
- x="160.27521"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">S</tspan>
- <tspan
- id="tspan84673-2-5"
- font-size="2.5652"
- y="363.4711"
- x="164.41296"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">T</tspan>
- </text>
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g84320-7"
- inkscape:transform-center-x="587.03111"
- inkscape:transform-center-y="-131.54432">
- <defs
- id="defs84322-0">
- <polygon
- id="SVGID_4826_-2"
- points="-659.342,256.788 -636.356,251.283 -636.358,231.934 -682.207,231.929 -682.208,251.221 " />
- </defs>
- <clipPath
- id="clipPath103260-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4826_-2"
- overflow="visible"
- id="use103262-4" />
- </clipPath>
- <linearGradient
- id="linearGradient103264-9"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop103266-7" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop103268-8" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop103270-3" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop103272-6" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop103274-7" />
- </linearGradient>
- <polygon
- style="fill:url(#SVGID_4828_-8)"
- clip-path="url(#SVGID_4827_-1)"
- points="-682.238,231.929 -636.356,231.874 -636.326,256.788 -682.208,256.843 "
- id="polygon84339-1" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 399.73931,496.49039 102.67875,0.009 10e-4,43.1055 -51.4755,12.33 -51.20775,-12.46725 0.002,-42.97725 z m -0.4815,-0.4815 v 43.83675 l 51.687,12.58425 51.957,-12.44475 -0.005,-43.96725 -103.6395,-0.009 z"
- id="path84341-5"
- inkscape:transform-center-x="587.03109"
- inkscape:transform-center-y="-131.54096" />
- <text
- y="513.25391"
- x="422.89722"
- id="text84343-4"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px">
- <tspan
- style="font-size:11px;fill:#37424b;font-family:ApexSans-Book"
- x="422.89722"
- y="513.25391"
- font-size="5.1244"
- id="tspan84345-6">RADOSGW</tspan>
- </text>
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.48150003;stroke-miterlimit:10;stroke-dasharray:1.44225, 1.44225"
- stroke-miterlimit="10"
- x1="450.98538"
- y1="577.31482"
- x2="450.98538"
- y2="631.69733"
- id="line84349-2"
- inkscape:transform-center-x="587.12555"
- inkscape:transform-center-y="-51.254289" />
- <polyline
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10;stroke-dasharray:0.641, 0.641"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- stroke-miterlimit="10"
- points=" -669.837,292.128 -669.837,283.832 -648.812,283.832 -648.812,292.128 "
- id="polyline84351-0"
- inkscape:transform-center-x="587.12673"
- inkscape:transform-center-y="-33.395941" />
- <polygon
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- points="-657.251,267.424 -661.37,267.424 -659.319,269.217 "
- id="polygon84353-1"
- inkscape:transform-center-x="587.09523"
- inkscape:transform-center-y="-77.629816" />
- <polygon
- id="polygon84546-2"
- points="-671.896,292.47 -669.845,294.263 -667.777,292.47 "
- clip-path="url(#SVGID_4843_-5)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <polygon
- id="polygon84548-8"
- points="-661.384,292.47 -659.333,294.263 -657.265,292.47 "
- clip-path="url(#SVGID_4843_-5)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <polygon
- id="polygon84550-0"
- points="-650.871,292.47 -648.82,294.263 -646.752,292.47 "
- clip-path="url(#SVGID_4843_-5)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)" />
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g84753-5"
- inkscape:transform-center-x="584.45598"
- inkscape:transform-center-y="-60.127066">
- <defs
- id="defs84755-4">
- <rect
- id="SVGID_4867_-0"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103568-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_-0"
- overflow="visible"
- id="use103570-2" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4868_-1)"
- d="m -659.955,276.099 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84761-2" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4868_-1)"
- stroke-miterlimit="10"
- x1="-659.323"
- y1="276.099"
- x2="-656.427"
- y2="276.099"
- id="line84763-3" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- id="g84765-0"
- inkscape:transform-center-x="563.5265"
- inkscape:transform-center-y="-60.127083">
- <defs
- id="defs84767-2">
- <polygon
- id="SVGID_4869_-7"
- points="-656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 " />
- </defs>
- <clipPath
- id="clipPath103577-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4869_-7"
- overflow="visible"
- id="use103579-1" />
- </clipPath>
- <linearGradient
- id="linearGradient103581-2"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop103583-7" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103585-7" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4871_-4)"
- x="-656.71503"
- y="273.56699"
- clip-path="url(#SVGID_4870_-0)"
- width="15.759"
- height="5.0650001"
- id="rect84778-5" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1934.4644,-25.59059)"
- stroke-miterlimit="10"
- points="-656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 "
- id="polygon84780-4"
- inkscape:transform-center-x="563.52648"
- inkscape:transform-center-y="-60.127066" />
- <text
- y="597.59412"
- x="466.59583"
- id="text84782-6"
- inkscape:transform-center-x="562.26258"
- inkscape:transform-center-y="-60.270044"
- style="font-size:27px">
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="466.59583"
- y="597.59412"
- font-size="2.5652"
- id="tspan84784-6">N</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="470.47482"
- y="597.59412"
- font-size="2.5652"
- id="tspan84786-0">A</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="473.54385"
- y="597.59412"
- font-size="2.5652"
- id="tspan84788-6">TIV</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="481.25684"
- y="597.59412"
- font-size="2.5652"
- id="tspan84790-4">E</tspan>
- </text>
- <g
- transform="matrix(1.3542118,0,0,2.25,1325.4162,-31.59059)"
- id="g84792-1"
- inkscape:transform-center-x="262.77489"
- inkscape:transform-center-y="141.90493">
- <defs
- id="defs84794-1">
- <rect
- id="SVGID_4872_-8"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103597-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_-8"
- overflow="visible"
- id="use103599-5" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4873_-98)"
- d="m -438.652,188.287 c 0,0.349 -0.282,0.632 -0.632,0.632 -0.349,0 -0.632,-0.283 -0.632,-0.632 0,-0.35 0.283,-0.633 0.632,-0.633 0.35,0 0.632,0.284 0.632,0.633"
- id="path84800-2" />
- <g
- clip-path="url(#SVGID_4873_-98)"
- id="g84802-7">
- <g
- id="g84804-9">
- <defs
- id="defs84806-7">
- <rect
- id="SVGID_4874_-4"
- x="-679.90002"
- y="360.13901"
- width="174.95799"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103606-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4874_-4"
- overflow="visible"
- id="use103608-9" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4875_-1)"
- id="g84812-3">
- <defs
- id="defs84814-8">
- <rect
- id="SVGID_4876_-1"
- x="-679.90002"
- y="360.13901"
- width="174.95799"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103613-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4876_-1"
- overflow="visible"
- id="use103615-0" />
- </clipPath>
- <linearGradient
- id="linearGradient103617-6"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop103619-5" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop103621-2" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop103623-9" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop103625-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103627-0" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4878_-2)"
- x="-679.90002"
- y="360.138"
- clip-path="url(#SVGID_4877_-4)"
- width="174.95799"
- height="10.153"
- id="rect84831-7" />
- </g>
- </g>
- </g>
- <g
- clip-path="url(#SVGID_4873_-98)"
- id="g84833-5">
- <g
- id="g84835-6">
- <defs
- id="defs84837-5">
- <rect
- id="SVGID_4879_-3"
- x="-679.88898"
- y="360.13901"
- width="174.94701"
- height="10.152" />
- </defs>
- <clipPath
- id="clipPath103634-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4879_-3"
- overflow="visible"
- id="use103636-3" />
- </clipPath>
- <g
- clip-path="url(#SVGID_4880_-2)"
- id="g84843-9">
- <defs
- id="defs84845-0">
- <rect
- id="SVGID_4881_-4"
- x="-679.88898"
- y="360.138"
- width="174.94701"
- height="10.153" />
- </defs>
- <clipPath
- id="clipPath103641-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4881_-4"
- overflow="visible"
- id="use103643-2" />
- </clipPath>
- <polygon
- style="fill:#f15d57"
- clip-path="url(#SVGID_4882_-3)"
- points="-504.943,360.138 -679.89,360.139 -679.89,364.81 -679.89,367.139 -679.89,370.291 -504.943,370.291 "
- id="polygon84851-1" />
- </g>
- </g>
- </g>
- <rect
- style="fill:#f15d57"
- x="-679.90198"
- y="360.267"
- clip-path="url(#SVGID_4873_-98)"
- width="174.96001"
- height="2.641"
- id="rect84853-2" />
- <rect
- style="fill:#55aeb9"
- x="-679.88898"
- y="370.29199"
- clip-path="url(#SVGID_4873_-98)"
- width="174.94701"
- height="1.352"
- id="rect84855-1" />
- </g>
- <text
- y="832.0752"
- x="571.10132"
- id="text84343-2-09"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="526.12915"
- y="832.0752"
- font-size="5.1244"
- id="tspan84345-2-7">SECONDARY REGION</tspan>
- </text>
- <polygon
- id="polygon84546-9-3-6"
- points="-667.777,292.47 -671.896,292.47 -669.845,294.263 "
- clip-path="url(#SVGID_4843_-9-6-5)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1917.6233,-169.74298)" />
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="450.92264"
- y="529.61548"
- id="text126655-6-3"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan126657-2-8"
- x="450.92264"
- y="529.61548">MASTER</tspan><tspan
- sodipodi:role="line"
- x="450.92264"
- y="540.86548"
- id="tspan126659-4-8">ZONE</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="363.76648"
- y="400.13824"
- id="text127418-7"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan127420-8"
- x="363.76648"
- y="400.13824">METADATA</tspan><tspan
- sodipodi:role="line"
- x="363.76648"
- y="411.38824"
- id="tspan127422-7">SYNC</tspan></text>
- <text
- y="247.57471"
- x="491.10132"
- id="text84343-2-0-2"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="446.12915"
- y="247.57471"
- font-size="5.1244"
- id="tspan84345-2-6-0">SECONDARY REGION</tspan>
- </text>
- <text
- y="705.34888"
- x="583.92261"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82351-9-7"
- inkscape:transform-center-x="450.06672"
- inkscape:transform-center-y="45.543285">M</text>
- <g
- id="g9504-6"
- transform="translate(98.691216,33.96959)">
- <g
- inkscape:transform-center-y="45.666809"
- inkscape:transform-center-x="449.81598"
- id="g82339-6-5"
- transform="matrix(2.25,0,0,2.25,1701.0081,-85.193202)">
- <defs
- id="defs82341-9-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4549_-8-0" />
- </defs>
- <clipPath
- id="clipPath101738-3-9">
- <use
- id="use101740-3-4"
- overflow="visible"
- xlink:href="#SVGID_4549_-8-0"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82347-9-8"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- clip-path="url(#SVGID_4550_-6-4)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57" />
- <path
- id="path82349-9-3"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4550_-6-4)"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- </g>
- <text
- inkscape:transform-center-y="45.543285"
- inkscape:transform-center-x="450.06672"
- id="text82351-9-4-7"
- font-size="4.3343"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- x="350.6293"
- y="645.37921">M</text>
- </g>
- <path
- id="path82449-2-4"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-39)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,2096.2338,-25.49647)" />
- <path
- id="path82449-2-2-4"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-3-3)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,1907.5274,-25.10599)" />
- <path
- id="path82449-2-0-6"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9-8)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,2096.2338,0.56753)" />
- <path
- id="path82449-2-0-1-9"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9-3-43)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,2096.3338,26.56753)" />
- <path
- id="path82449-2-0-1-5-7"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4564_-7-9-3-4-4)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(2.25,0,0,2.25,2096.4335,53.16753)" />
- <text
- y="293.44104"
- x="496.78619"
- id="text84343-2-0-4-8"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="451.81403"
- y="293.44104"
- font-size="5.1244"
- id="tspan84345-2-6-5-9">WRITE / READ</tspan>
- </text>
- <text
- y="262.3537"
- x="490.88916"
- id="text84343-2-0-4-6-1"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="445.91699"
- y="262.3537"
- font-size="5.1244"
- id="tspan84345-2-6-5-6-6">(Europe)</tspan>
- </text>
- <g
- id="g15866"
- transform="translate(66.384186,10.199929)">
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82381-2-3"
- height="21.584251"
- width="21.581999"
- y="680.3775"
- x="349.96692"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82383-1-0"
- height="21.584251"
- width="21.581999"
- stroke-miterlimit="10"
- y="680.3775"
- x="349.96692"
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10" />
- <rect
- inkscape:transform-center-y="19.598295"
- inkscape:transform-center-x="610.97115"
- id="rect82385-3-3"
- height="18.553501"
- width="18.557999"
- y="681.89398"
- x="351.47656"
- style="fill:#81d0db" />
- <rect
- inkscape:transform-center-y="19.597131"
- inkscape:transform-center-x="610.96883"
- id="rect82387-5-5"
- height="15.594751"
- width="15.592501"
- y="683.37219"
- x="352.96164"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.595982"
- inkscape:transform-center-x="610.97103"
- id="rect82389-9-0"
- height="10.278"
- width="10.282501"
- y="686.02936"
- x="355.61444"
- style="fill:#ffffff" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="610.97111"
- id="g82391-8-0"
- transform="matrix(2.25,0,0,2.25,1868.0802,-9.7784893)">
- <defs
- id="defs82393-4-0">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4555_-7-9"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101773-5-5">
- <use
- id="use101775-6-5"
- overflow="visible"
- xlink:href="#SVGID_4555_-7-9"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- y2="-148.46021"
- x2="256.3761"
- y1="-148.46021"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101777-2-8">
- <stop
- id="stop101779-4-4"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101781-1-3"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82404-9-9"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4556_-9-2)"
- y="308.841"
- x="-672.61401"
- style="fill:url(#linearGradient15887)" />
- </g>
- <path
- transform="matrix(2.25,0,0,2.25,1841.021,-9.2938893)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-3-3-7)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-2-4-4" />
- </g>
- <g
- id="g15866-2"
- transform="translate(66.384186,36.234929)">
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82381-2-3-5"
- height="21.584251"
- width="21.581999"
- y="680.3775"
- x="349.96692"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82383-1-0-2"
- height="21.584251"
- width="21.581999"
- stroke-miterlimit="10"
- y="680.3775"
- x="349.96692"
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10" />
- <rect
- inkscape:transform-center-y="19.598295"
- inkscape:transform-center-x="610.97115"
- id="rect82385-3-3-6"
- height="18.553501"
- width="18.557999"
- y="681.89398"
- x="351.47656"
- style="fill:#81d0db" />
- <rect
- inkscape:transform-center-y="19.597131"
- inkscape:transform-center-x="610.96883"
- id="rect82387-5-5-5"
- height="15.594751"
- width="15.592501"
- y="683.37219"
- x="352.96164"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.595982"
- inkscape:transform-center-x="610.97103"
- id="rect82389-9-0-6"
- height="10.278"
- width="10.282501"
- y="686.02936"
- x="355.61444"
- style="fill:#ffffff" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="610.97111"
- id="g82391-8-0-8"
- transform="matrix(2.25,0,0,2.25,1868.0802,-9.7784893)">
- <defs
- id="defs82393-4-0-3">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4555_-7-9-1"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101773-5-5-0">
- <use
- id="use101775-6-5-6"
- overflow="visible"
- xlink:href="#SVGID_4555_-7-9-1"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- y2="-148.46021"
- x2="256.3761"
- y1="-148.46021"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101777-2-8-6">
- <stop
- id="stop101779-4-4-3"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101781-1-3-8"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82404-9-9-8"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4556_-9-2-5)"
- y="308.841"
- x="-672.61401"
- style="fill:url(#linearGradient15887-0)" />
- </g>
- <path
- transform="matrix(2.25,0,0,2.25,1841.021,-9.2938893)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-3-3-7-5)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-2-4-4-2" />
- </g>
- <g
- id="g15866-2-3"
- transform="translate(66.384186,62.334929)">
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82381-2-3-5-9"
- height="21.584251"
- width="21.581999"
- y="680.3775"
- x="349.96692"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82383-1-0-2-8"
- height="21.584251"
- width="21.581999"
- stroke-miterlimit="10"
- y="680.3775"
- x="349.96692"
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10" />
- <rect
- inkscape:transform-center-y="19.598295"
- inkscape:transform-center-x="610.97115"
- id="rect82385-3-3-6-8"
- height="18.553501"
- width="18.557999"
- y="681.89398"
- x="351.47656"
- style="fill:#81d0db" />
- <rect
- inkscape:transform-center-y="19.597131"
- inkscape:transform-center-x="610.96883"
- id="rect82387-5-5-5-5"
- height="15.594751"
- width="15.592501"
- y="683.37219"
- x="352.96164"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.595982"
- inkscape:transform-center-x="610.97103"
- id="rect82389-9-0-6-5"
- height="10.278"
- width="10.282501"
- y="686.02936"
- x="355.61444"
- style="fill:#ffffff" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="610.97111"
- id="g82391-8-0-8-1"
- transform="matrix(2.25,0,0,2.25,1868.0802,-9.7784893)">
- <defs
- id="defs82393-4-0-3-9">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4555_-7-9-1-0"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101773-5-5-0-4">
- <use
- id="use101775-6-5-6-5"
- overflow="visible"
- xlink:href="#SVGID_4555_-7-9-1-0"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- y2="-148.46021"
- x2="256.3761"
- y1="-148.46021"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101777-2-8-6-8">
- <stop
- id="stop101779-4-4-3-2"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101781-1-3-8-5"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82404-9-9-8-1"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4556_-9-2-5-8)"
- y="308.841"
- x="-672.61401"
- style="fill:url(#linearGradient15887-0-3)" />
- </g>
- <path
- transform="matrix(2.25,0,0,2.25,1841.021,-9.2938893)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-3-3-7-5-3)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-2-4-4-2-3" />
- </g>
- </g>
-</svg>
diff --git a/src/ceph/doc/images/rgw-encryption-barbican.png b/src/ceph/doc/images/rgw-encryption-barbican.png
deleted file mode 100644
index e3c10c4..0000000
--- a/src/ceph/doc/images/rgw-encryption-barbican.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/stack.png b/src/ceph/doc/images/stack.png
deleted file mode 100644
index 38eac41..0000000
--- a/src/ceph/doc/images/stack.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_advanced_window.png b/src/ceph/doc/images/win2016_iscsi_advanced_window.png
deleted file mode 100755
index cba70ea..0000000
--- a/src/ceph/doc/images/win2016_iscsi_advanced_window.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_connect_to_target.png b/src/ceph/doc/images/win2016_iscsi_connect_to_target.png
deleted file mode 100755
index 29d9e12..0000000
--- a/src/ceph/doc/images/win2016_iscsi_connect_to_target.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_devices_mpio.png b/src/ceph/doc/images/win2016_iscsi_devices_mpio.png
deleted file mode 100755
index 135d41b..0000000
--- a/src/ceph/doc/images/win2016_iscsi_devices_mpio.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_discovery_tab.png b/src/ceph/doc/images/win2016_iscsi_discovery_tab.png
deleted file mode 100755
index 4ac5f71..0000000
--- a/src/ceph/doc/images/win2016_iscsi_discovery_tab.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_target_tab.png b/src/ceph/doc/images/win2016_iscsi_target_tab.png
deleted file mode 100755
index 7543769..0000000
--- a/src/ceph/doc/images/win2016_iscsi_target_tab.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_iscsi_target_tab2.png b/src/ceph/doc/images/win2016_iscsi_target_tab2.png
deleted file mode 100755
index 302fef9..0000000
--- a/src/ceph/doc/images/win2016_iscsi_target_tab2.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_mpclaim_output.png b/src/ceph/doc/images/win2016_mpclaim_output.png
deleted file mode 100644
index 73e1e5e..0000000
--- a/src/ceph/doc/images/win2016_mpclaim_output.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/win2016_mpio_set_failover_only.png b/src/ceph/doc/images/win2016_mpio_set_failover_only.png
deleted file mode 100755
index a988e8a..0000000
--- a/src/ceph/doc/images/win2016_mpio_set_failover_only.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/zone-sync.png b/src/ceph/doc/images/zone-sync.png
deleted file mode 100644
index c7bf9ef..0000000
--- a/src/ceph/doc/images/zone-sync.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/images/zone-sync.svg b/src/ceph/doc/images/zone-sync.svg
deleted file mode 100644
index e0bcb0c..0000000
--- a/src/ceph/doc/images/zone-sync.svg
+++ /dev/null
@@ -1,21935 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="744.09448819"
- height="1052.3622047"
- id="svg104536"
- version="1.1"
- inkscape:version="0.48.4 r9939"
- sodipodi:docname="zone-sync.svg"
- inkscape:export-filename="/home/john/Pictures/zone-sync.png"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90">
- <defs
- id="defs104538">
- <linearGradient
- id="linearGradient126200"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202" />
- </linearGradient>
- <clipPath
- id="SVGID_4884_">
- <rect
- height="11.504"
- width="174.63"
- y="360.13901"
- x="-679.57202"
- id="use84863" />
- </clipPath>
- <clipPath
- id="SVGID_4886_">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use84873" />
- </clipPath>
- <clipPath
- id="SVGID_4888_">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use84881" />
- </clipPath>
- <clipPath
- id="SVGID_4890_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-535.73901"
- id="use84891" />
- </clipPath>
- <clipPath
- id="SVGID_4892_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-535.73901"
- id="use84899" />
- </clipPath>
- <clipPath
- id="clipPath99071">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99073" />
- </clipPath>
- <clipPath
- id="SVGID_4894_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-536.966"
- id="use84911" />
- </clipPath>
- <clipPath
- id="SVGID_4896_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-536.966"
- id="use84919" />
- </clipPath>
- <clipPath
- id="clipPath99079">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99081" />
- </clipPath>
- <clipPath
- id="SVGID_4898_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-538.19202"
- id="use84931" />
- </clipPath>
- <clipPath
- id="SVGID_4900_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-538.19202"
- id="use84939" />
- </clipPath>
- <clipPath
- id="clipPath99087">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99089" />
- </clipPath>
- <clipPath
- id="SVGID_4902_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-539.41901"
- id="use84951" />
- </clipPath>
- <clipPath
- id="SVGID_4904_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-539.41901"
- id="use84959" />
- </clipPath>
- <clipPath
- id="clipPath99095">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99097" />
- </clipPath>
- <clipPath
- id="SVGID_4906_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-540.646"
- id="use84971" />
- </clipPath>
- <clipPath
- id="SVGID_4908_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-540.646"
- id="use84979" />
- </clipPath>
- <clipPath
- id="clipPath99103">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99105" />
- </clipPath>
- <clipPath
- id="SVGID_4910_">
- <rect
- height="67.402"
- width="42.448002"
- y="350.939"
- x="-541.87299"
- id="use84991" />
- </clipPath>
- <clipPath
- id="SVGID_4912_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-541.87299"
- id="use84999" />
- </clipPath>
- <clipPath
- id="clipPath99111">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99113" />
- </clipPath>
- <clipPath
- id="SVGID_4914_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-543.099"
- id="use85011" />
- </clipPath>
- <clipPath
- id="SVGID_4916_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-543.099"
- id="use85019" />
- </clipPath>
- <clipPath
- id="clipPath99119">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99121" />
- </clipPath>
- <clipPath
- id="SVGID_4918_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-544.32599"
- id="use85031" />
- </clipPath>
- <clipPath
- id="SVGID_4920_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-544.32599"
- id="use85039" />
- </clipPath>
- <clipPath
- id="clipPath99127">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99129" />
- </clipPath>
- <clipPath
- id="SVGID_4922_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-545.55298"
- id="use85051" />
- </clipPath>
- <clipPath
- id="SVGID_4924_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-545.55298"
- id="use85059" />
- </clipPath>
- <clipPath
- id="clipPath99135">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99137" />
- </clipPath>
- <clipPath
- id="SVGID_4926_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-546.77899"
- id="use85071" />
- </clipPath>
- <clipPath
- id="SVGID_4928_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-546.77899"
- id="use85079" />
- </clipPath>
- <clipPath
- id="clipPath99143">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99145" />
- </clipPath>
- <clipPath
- id="SVGID_4930_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-548.00598"
- id="use85091" />
- </clipPath>
- <clipPath
- id="SVGID_4932_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-548.00598"
- id="use85099" />
- </clipPath>
- <clipPath
- id="clipPath99151">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99153" />
- </clipPath>
- <clipPath
- id="SVGID_4934_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-549.23297"
- id="use85111" />
- </clipPath>
- <clipPath
- id="SVGID_4936_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-549.23297"
- id="use85119" />
- </clipPath>
- <clipPath
- id="clipPath99159">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99161" />
- </clipPath>
- <clipPath
- id="SVGID_4938_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-550.46002"
- id="use85131" />
- </clipPath>
- <clipPath
- id="SVGID_4940_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-550.46002"
- id="use85139" />
- </clipPath>
- <clipPath
- id="clipPath99167">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99169" />
- </clipPath>
- <clipPath
- id="SVGID_4942_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-551.68597"
- id="use85151" />
- </clipPath>
- <clipPath
- id="SVGID_4944_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-551.68597"
- id="use85159" />
- </clipPath>
- <clipPath
- id="clipPath99175">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99177" />
- </clipPath>
- <clipPath
- id="SVGID_4946_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-552.91302"
- id="use85171" />
- </clipPath>
- <clipPath
- id="SVGID_4948_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-552.91302"
- id="use85179" />
- </clipPath>
- <clipPath
- id="clipPath99183">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99185" />
- </clipPath>
- <clipPath
- id="SVGID_4950_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-554.14001"
- id="use85191" />
- </clipPath>
- <clipPath
- id="SVGID_4952_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-554.14001"
- id="use85199" />
- </clipPath>
- <clipPath
- id="clipPath99191">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99193" />
- </clipPath>
- <clipPath
- id="SVGID_4954_">
- <rect
- height="67.402"
- width="42.446999"
- y="350.939"
- x="-555.367"
- id="use85211" />
- </clipPath>
- <clipPath
- id="SVGID_4956_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-555.367"
- id="use85219" />
- </clipPath>
- <clipPath
- id="clipPath99199">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99201" />
- </clipPath>
- <clipPath
- id="SVGID_4958_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-556.59302"
- id="use85231" />
- </clipPath>
- <clipPath
- id="SVGID_4960_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-556.59302"
- id="use85239" />
- </clipPath>
- <clipPath
- id="clipPath99207">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99209" />
- </clipPath>
- <clipPath
- id="SVGID_4962_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-557.82001"
- id="use85251" />
- </clipPath>
- <clipPath
- id="SVGID_4964_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-557.82001"
- id="use85259" />
- </clipPath>
- <clipPath
- id="clipPath99215">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99217" />
- </clipPath>
- <clipPath
- id="SVGID_4966_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-559.047"
- id="use85271" />
- </clipPath>
- <clipPath
- id="SVGID_4968_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-559.047"
- id="use85279" />
- </clipPath>
- <clipPath
- id="clipPath99223">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99225" />
- </clipPath>
- <clipPath
- id="SVGID_4970_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-560.27301"
- id="use85291" />
- </clipPath>
- <clipPath
- id="SVGID_4972_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-560.27301"
- id="use85299" />
- </clipPath>
- <clipPath
- id="clipPath99231">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99233" />
- </clipPath>
- <clipPath
- id="SVGID_4974_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-561.5"
- id="use85311" />
- </clipPath>
- <clipPath
- id="SVGID_4976_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-561.5"
- id="use85319" />
- </clipPath>
- <clipPath
- id="clipPath99239">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99241" />
- </clipPath>
- <clipPath
- id="SVGID_4978_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-562.72699"
- id="use85331" />
- </clipPath>
- <clipPath
- id="SVGID_4980_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-562.72699"
- id="use85339" />
- </clipPath>
- <clipPath
- id="clipPath99247">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99249" />
- </clipPath>
- <clipPath
- id="SVGID_4982_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-563.95398"
- id="use85351" />
- </clipPath>
- <clipPath
- id="SVGID_4984_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-563.95398"
- id="use85359" />
- </clipPath>
- <clipPath
- id="clipPath99255">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99257" />
- </clipPath>
- <clipPath
- id="SVGID_4986_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-565.17999"
- id="use85371" />
- </clipPath>
- <clipPath
- id="SVGID_4988_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-565.17999"
- id="use85379" />
- </clipPath>
- <clipPath
- id="clipPath99263">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99265" />
- </clipPath>
- <clipPath
- id="SVGID_4990_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-566.40698"
- id="use85391" />
- </clipPath>
- <clipPath
- id="SVGID_4992_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-566.40698"
- id="use85399" />
- </clipPath>
- <clipPath
- id="clipPath99271">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99273" />
- </clipPath>
- <clipPath
- id="SVGID_4994_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-567.63397"
- id="use85411" />
- </clipPath>
- <clipPath
- id="SVGID_4996_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-567.63397"
- id="use85419" />
- </clipPath>
- <clipPath
- id="clipPath99279">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99281" />
- </clipPath>
- <clipPath
- id="SVGID_4998_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-568.86102"
- id="use85431" />
- </clipPath>
- <clipPath
- id="SVGID_5000_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-568.86102"
- id="use85439" />
- </clipPath>
- <clipPath
- id="clipPath99287">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99289" />
- </clipPath>
- <clipPath
- id="SVGID_5002_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-570.08698"
- id="use85451" />
- </clipPath>
- <clipPath
- id="SVGID_5004_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-570.08698"
- id="use85459" />
- </clipPath>
- <clipPath
- id="clipPath99295">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99297" />
- </clipPath>
- <clipPath
- id="SVGID_5006_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-571.315"
- id="use85471" />
- </clipPath>
- <clipPath
- id="SVGID_5008_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-571.31403"
- id="use85479" />
- </clipPath>
- <clipPath
- id="clipPath99303">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99305" />
- </clipPath>
- <clipPath
- id="SVGID_5010_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-572.54102"
- id="use85491" />
- </clipPath>
- <clipPath
- id="SVGID_5012_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-572.54102"
- id="use85499" />
- </clipPath>
- <clipPath
- id="clipPath99311">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99313" />
- </clipPath>
- <clipPath
- id="SVGID_5014_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-573.76801"
- id="use85511" />
- </clipPath>
- <clipPath
- id="SVGID_5016_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-573.76801"
- id="use85519" />
- </clipPath>
- <clipPath
- id="clipPath99319">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99321" />
- </clipPath>
- <clipPath
- id="SVGID_5018_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-574.99402"
- id="use85531" />
- </clipPath>
- <clipPath
- id="SVGID_5020_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-574.99402"
- id="use85539" />
- </clipPath>
- <clipPath
- id="clipPath99327">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99329" />
- </clipPath>
- <clipPath
- id="SVGID_5022_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-576.22101"
- id="use85551" />
- </clipPath>
- <clipPath
- id="SVGID_5024_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-576.22101"
- id="use85559" />
- </clipPath>
- <clipPath
- id="clipPath99335">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99337" />
- </clipPath>
- <clipPath
- id="SVGID_5026_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-577.448"
- id="use85571" />
- </clipPath>
- <clipPath
- id="SVGID_5028_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-577.448"
- id="use85579" />
- </clipPath>
- <clipPath
- id="clipPath99343">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99345" />
- </clipPath>
- <clipPath
- id="SVGID_5030_">
- <rect
- height="67.402"
- width="42.445999"
- y="350.939"
- x="-578.67499"
- id="use85591" />
- </clipPath>
- <clipPath
- id="SVGID_5032_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-578.67499"
- id="use85599" />
- </clipPath>
- <clipPath
- id="clipPath99351">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99353" />
- </clipPath>
- <clipPath
- id="SVGID_5034_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-579.901"
- id="use85611" />
- </clipPath>
- <clipPath
- id="SVGID_5036_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-579.901"
- id="use85619" />
- </clipPath>
- <clipPath
- id="clipPath99359">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99361" />
- </clipPath>
- <clipPath
- id="SVGID_5038_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-581.12799"
- id="use85631" />
- </clipPath>
- <clipPath
- id="SVGID_5040_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-581.12799"
- id="use85639" />
- </clipPath>
- <clipPath
- id="clipPath99367">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99369" />
- </clipPath>
- <clipPath
- id="SVGID_5042_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-582.35498"
- id="use85651" />
- </clipPath>
- <clipPath
- id="SVGID_5044_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-582.35498"
- id="use85659" />
- </clipPath>
- <clipPath
- id="clipPath99375">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99377" />
- </clipPath>
- <clipPath
- id="SVGID_5046_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-583.58197"
- id="use85671" />
- </clipPath>
- <clipPath
- id="SVGID_5048_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-583.58197"
- id="use85679" />
- </clipPath>
- <clipPath
- id="clipPath99383">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99385" />
- </clipPath>
- <clipPath
- id="SVGID_5050_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-584.80798"
- id="use85691" />
- </clipPath>
- <clipPath
- id="SVGID_5052_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-584.80798"
- id="use85699" />
- </clipPath>
- <clipPath
- id="clipPath99391">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99393" />
- </clipPath>
- <clipPath
- id="SVGID_5054_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-586.03497"
- id="use85711" />
- </clipPath>
- <clipPath
- id="SVGID_5056_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-586.03497"
- id="use85719" />
- </clipPath>
- <clipPath
- id="clipPath99399">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99401" />
- </clipPath>
- <clipPath
- id="SVGID_5058_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-587.26202"
- id="use85731" />
- </clipPath>
- <clipPath
- id="SVGID_5060_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-587.26202"
- id="use85739" />
- </clipPath>
- <clipPath
- id="clipPath99407">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99409" />
- </clipPath>
- <clipPath
- id="SVGID_5062_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-588.48901"
- id="use85751" />
- </clipPath>
- <clipPath
- id="SVGID_5064_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-588.48901"
- id="use85759" />
- </clipPath>
- <clipPath
- id="clipPath99415">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99417" />
- </clipPath>
- <clipPath
- id="SVGID_5066_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-589.71503"
- id="use85771" />
- </clipPath>
- <clipPath
- id="SVGID_5068_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-589.71503"
- id="use85779" />
- </clipPath>
- <clipPath
- id="clipPath99423">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99425" />
- </clipPath>
- <clipPath
- id="SVGID_5070_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-590.94202"
- id="use85791" />
- </clipPath>
- <clipPath
- id="SVGID_5072_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-590.94202"
- id="use85799" />
- </clipPath>
- <clipPath
- id="clipPath99431">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99433" />
- </clipPath>
- <clipPath
- id="SVGID_5074_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-592.16901"
- id="use85811" />
- </clipPath>
- <clipPath
- id="SVGID_5076_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-592.16901"
- id="use85819" />
- </clipPath>
- <clipPath
- id="clipPath99439">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99441" />
- </clipPath>
- <clipPath
- id="SVGID_5078_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-593.396"
- id="use85831" />
- </clipPath>
- <clipPath
- id="SVGID_5080_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-593.396"
- id="use85839" />
- </clipPath>
- <clipPath
- id="clipPath99447">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99449" />
- </clipPath>
- <clipPath
- id="SVGID_5082_">
- <rect
- height="67.402"
- width="42.445"
- y="350.939"
- x="-594.62299"
- id="use85851" />
- </clipPath>
- <clipPath
- id="SVGID_5084_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-594.62299"
- id="use85859" />
- </clipPath>
- <clipPath
- id="clipPath99455">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99457" />
- </clipPath>
- <clipPath
- id="SVGID_5086_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-595.849"
- id="use85871" />
- </clipPath>
- <clipPath
- id="SVGID_5088_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-595.849"
- id="use85879" />
- </clipPath>
- <clipPath
- id="clipPath99463">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99465" />
- </clipPath>
- <clipPath
- id="SVGID_5090_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-597.07599"
- id="use85891" />
- </clipPath>
- <clipPath
- id="SVGID_5092_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-597.07599"
- id="use85899" />
- </clipPath>
- <clipPath
- id="clipPath99471">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99473" />
- </clipPath>
- <clipPath
- id="SVGID_5094_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-598.30298"
- id="use85911" />
- </clipPath>
- <clipPath
- id="SVGID_5096_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-598.30298"
- id="use85919" />
- </clipPath>
- <clipPath
- id="clipPath99479">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99481" />
- </clipPath>
- <clipPath
- id="SVGID_5098_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-599.53003"
- id="use85931" />
- </clipPath>
- <clipPath
- id="SVGID_5100_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-599.53003"
- id="use85939" />
- </clipPath>
- <clipPath
- id="clipPath99487">
- <rect
- height="67.402"
- width="107.465"
- y="350.939"
- x="-600.75598"
- id="use99489" />
- </clipPath>
- <clipPath
- id="SVGID_5102_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-600.75598"
- id="use85951" />
- </clipPath>
- <clipPath
- id="SVGID_5104_">
- <rect
- height="67.402"
- width="42.444"
- y="350.939"
- x="-600.75598"
- id="use85959" />
- </clipPath>
- <clipPath
- id="SVGID_4873_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use84798" />
- </clipPath>
- <clipPath
- id="clipPath99497">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99499" />
- </clipPath>
- <clipPath
- id="SVGID_4875_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4874_"
- overflow="visible"
- id="use84810" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4876_"
- overflow="visible"
- id="use84818" />
- </clipPath>
- <clipPath
- id="clipPath99511">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99513" />
- </clipPath>
- <clipPath
- id="SVGID_4880_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4879_"
- overflow="visible"
- id="use84841" />
- </clipPath>
- <clipPath
- id="SVGID_4882_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4881_"
- overflow="visible"
- id="use84849" />
- </clipPath>
- <clipPath
- id="clipPath99519">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99521" />
- </clipPath>
- <clipPath
- id="clipPath99523">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4872_"
- overflow="visible"
- id="use99525" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4869_"
- overflow="visible"
- id="use84771" />
- </clipPath>
- <clipPath
- id="SVGID_4868_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_"
- overflow="visible"
- id="use84759" />
- </clipPath>
- <clipPath
- id="clipPath99534">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_"
- overflow="visible"
- id="use99536" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4864_"
- overflow="visible"
- id="use84732" />
- </clipPath>
- <clipPath
- id="SVGID_4863_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use84720" />
- </clipPath>
- <clipPath
- id="clipPath99545">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use99547" />
- </clipPath>
- <linearGradient
- id="SVGID_4861_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205299"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84696" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84698" />
- </linearGradient>
- <clipPath
- id="SVGID_4860_">
- <polygon
- points="-521.64,278.632 -507.673,278.632 -507.673,273.567 -521.64,273.567 -523.432,276.108 "
- id="use84693" />
- </clipPath>
- <clipPath
- id="SVGID_4858_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84681" />
- </clipPath>
- <clipPath
- id="clipPath99556">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99558" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_">
- <polygon
- points="-521.64,208.524 -507.673,208.524 -507.673,203.458 -521.64,203.458 -523.432,206 "
- id="use84656" />
- </clipPath>
- <clipPath
- id="SVGID_4853_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84644" />
- </clipPath>
- <clipPath
- id="clipPath99567">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99569" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_">
- <polygon
- points="-588.288,203.458 -590.081,206 -588.288,208.524 -574.322,208.524 -574.322,203.458 "
- id="use84619" />
- </clipPath>
- <clipPath
- id="SVGID_4848_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607" />
- </clipPath>
- <clipPath
- id="clipPath99578">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99580" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_">
- <polygon
- points="-654.922,203.458 -656.715,206 -654.922,208.524 -640.956,208.524 -640.956,203.458 "
- id="use84582" />
- </clipPath>
- <clipPath
- id="SVGID_4843_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500" />
- </clipPath>
- <clipPath
- id="clipPath99589">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99591" />
- </clipPath>
- <clipPath
- id="clipPath99593">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99595" />
- </clipPath>
- <clipPath
- id="clipPath99597">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99599" />
- </clipPath>
- <clipPath
- id="clipPath99601">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99603" />
- </clipPath>
- <clipPath
- id="clipPath99605">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99607" />
- </clipPath>
- <clipPath
- id="clipPath99609">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99611" />
- </clipPath>
- <clipPath
- id="clipPath99613">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99615" />
- </clipPath>
- <clipPath
- id="clipPath99617">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99619" />
- </clipPath>
- <clipPath
- id="clipPath99621">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99623" />
- </clipPath>
- <clipPath
- id="clipPath99625">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99627" />
- </clipPath>
- <clipPath
- id="clipPath99629">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99631" />
- </clipPath>
- <clipPath
- id="clipPath99633">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99635" />
- </clipPath>
- <clipPath
- id="clipPath99637">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99639" />
- </clipPath>
- <clipPath
- id="clipPath99641">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99643" />
- </clipPath>
- <clipPath
- id="clipPath99645">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99647" />
- </clipPath>
- <clipPath
- id="clipPath99649">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99651" />
- </clipPath>
- <clipPath
- id="clipPath99653">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99655" />
- </clipPath>
- <clipPath
- id="clipPath99657">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99659" />
- </clipPath>
- <clipPath
- id="clipPath99661">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99663" />
- </clipPath>
- <clipPath
- id="clipPath99665">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99667" />
- </clipPath>
- <clipPath
- id="clipPath99669">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99671" />
- </clipPath>
- <clipPath
- id="clipPath99673">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99675" />
- </clipPath>
- <clipPath
- id="clipPath99677">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99679" />
- </clipPath>
- <clipPath
- id="clipPath99681">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99683" />
- </clipPath>
- <clipPath
- id="clipPath99685">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99687" />
- </clipPath>
- <clipPath
- id="clipPath99689">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99691" />
- </clipPath>
- <clipPath
- id="clipPath99693">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99695" />
- </clipPath>
- <clipPath
- id="clipPath99697">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99699" />
- </clipPath>
- <clipPath
- id="clipPath99701">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99703" />
- </clipPath>
- <clipPath
- id="clipPath99705">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99707" />
- </clipPath>
- <clipPath
- id="clipPath99709">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99711" />
- </clipPath>
- <clipPath
- id="clipPath99713">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99715" />
- </clipPath>
- <clipPath
- id="clipPath99717">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99719" />
- </clipPath>
- <clipPath
- id="clipPath99721">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99723" />
- </clipPath>
- <clipPath
- id="clipPath99725">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99727" />
- </clipPath>
- <clipPath
- id="clipPath99729">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use99731" />
- </clipPath>
- <linearGradient
- id="SVGID_4841_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,942.8785,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84478" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84480" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84482" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84484" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84486" />
- </linearGradient>
- <clipPath
- id="SVGID_4840_">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-531.92297"
- id="use84475" />
- </clipPath>
- <clipPath
- id="SVGID_4838_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445" />
- </clipPath>
- <clipPath
- id="clipPath99743">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99745" />
- </clipPath>
- <clipPath
- id="clipPath99747">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99749" />
- </clipPath>
- <clipPath
- id="clipPath99751">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99753" />
- </clipPath>
- <clipPath
- id="clipPath99755">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99757" />
- </clipPath>
- <clipPath
- id="clipPath99759">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99761" />
- </clipPath>
- <clipPath
- id="clipPath99763">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99765" />
- </clipPath>
- <clipPath
- id="clipPath99767">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99769" />
- </clipPath>
- <clipPath
- id="clipPath99771">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99773" />
- </clipPath>
- <clipPath
- id="clipPath99775">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99777" />
- </clipPath>
- <clipPath
- id="clipPath99779">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99781" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420" />
- </clipPath>
- <clipPath
- id="SVGID_4833_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390" />
- </clipPath>
- <clipPath
- id="clipPath99793">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99795" />
- </clipPath>
- <clipPath
- id="clipPath99797">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99799" />
- </clipPath>
- <clipPath
- id="clipPath99801">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99803" />
- </clipPath>
- <clipPath
- id="clipPath99805">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99807" />
- </clipPath>
- <clipPath
- id="clipPath99809">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99811" />
- </clipPath>
- <clipPath
- id="clipPath99813">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99815" />
- </clipPath>
- <clipPath
- id="clipPath99817">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99819" />
- </clipPath>
- <clipPath
- id="clipPath99821">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99823" />
- </clipPath>
- <clipPath
- id="clipPath99825">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99827" />
- </clipPath>
- <clipPath
- id="clipPath99829">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99831" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4826_"
- overflow="visible"
- id="use84326" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4823_"
- overflow="visible"
- id="use84295" />
- </clipPath>
- <linearGradient
- id="SVGID_4822_"
- gradientUnits="userSpaceOnUse"
- x1="145.317"
- y1="2.8515"
- x2="146.317"
- y2="2.8515"
- gradientTransform="matrix(0.0299,24.8863,24.8863,-0.0299,-601.3687,-3384.4197)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84267" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84269" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84271" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84273" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84275" />
- </linearGradient>
- <clipPath
- id="SVGID_4821_">
- <polygon
- points="-503.122,251.283 -503.124,231.934 -548.973,231.929 -548.973,251.221 -526.108,256.788 "
- id="use84264" />
- </clipPath>
- <clipPath
- id="SVGID_4819_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84232" />
- </clipPath>
- <linearGradient
- id="SVGID_4817_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,284.9195,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84220" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84222" />
- </linearGradient>
- <clipPath
- id="SVGID_4816_">
- <path
- d="m -516.985,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84217"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4814_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84197" />
- </clipPath>
- <clipPath
- id="clipPath99874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99876" />
- </clipPath>
- <clipPath
- id="clipPath99878">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99880" />
- </clipPath>
- <clipPath
- id="clipPath99882">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99884" />
- </clipPath>
- <clipPath
- id="clipPath99886">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99888" />
- </clipPath>
- <clipPath
- id="clipPath99890">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99892" />
- </clipPath>
- <linearGradient
- id="SVGID_4812_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,272.9481,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84185" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84187" />
- </linearGradient>
- <clipPath
- id="SVGID_4811_">
- <path
- d="m -528.956,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84182"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4809_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84162" />
- </clipPath>
- <clipPath
- id="clipPath99901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99903" />
- </clipPath>
- <clipPath
- id="clipPath99905">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99907" />
- </clipPath>
- <clipPath
- id="clipPath99909">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99911" />
- </clipPath>
- <clipPath
- id="clipPath99913">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99915" />
- </clipPath>
- <clipPath
- id="clipPath99917">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99919" />
- </clipPath>
- <linearGradient
- id="SVGID_4807_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,260.9767,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84150" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84152" />
- </linearGradient>
- <clipPath
- id="SVGID_4806_">
- <path
- d="m -540.927,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84147"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4804_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84127" />
- </clipPath>
- <clipPath
- id="clipPath99928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99930" />
- </clipPath>
- <clipPath
- id="clipPath99932">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99934" />
- </clipPath>
- <clipPath
- id="clipPath99936">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99938" />
- </clipPath>
- <clipPath
- id="clipPath99940">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99942" />
- </clipPath>
- <clipPath
- id="clipPath99944">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99946" />
- </clipPath>
- <linearGradient
- id="SVGID_4802_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,249.0053,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84115" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84117" />
- </linearGradient>
- <clipPath
- id="SVGID_4801_">
- <path
- d="m -552.899,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use84112"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4799_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84092" />
- </clipPath>
- <clipPath
- id="clipPath99955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99957" />
- </clipPath>
- <clipPath
- id="clipPath99959">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99961" />
- </clipPath>
- <clipPath
- id="clipPath99963">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99965" />
- </clipPath>
- <clipPath
- id="clipPath99967">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99969" />
- </clipPath>
- <clipPath
- id="clipPath99971">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99973" />
- </clipPath>
- <linearGradient
- id="SVGID_4797_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,237.034,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84080" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84082" />
- </linearGradient>
- <clipPath
- id="SVGID_4796_">
- <path
- d="m -564.87,346.449 c 0,1.487 1.205,2.692 2.691,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use84077"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4794_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84057" />
- </clipPath>
- <clipPath
- id="clipPath99982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99984" />
- </clipPath>
- <clipPath
- id="clipPath99986">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99988" />
- </clipPath>
- <clipPath
- id="clipPath99990">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99992" />
- </clipPath>
- <clipPath
- id="clipPath99994">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use99996" />
- </clipPath>
- <clipPath
- id="clipPath99998">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100000" />
- </clipPath>
- <linearGradient
- id="SVGID_4792_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,225.0626,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84045" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84047" />
- </linearGradient>
- <clipPath
- id="SVGID_4791_">
- <path
- d="m -576.842,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use84042"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4789_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84022" />
- </clipPath>
- <clipPath
- id="clipPath100009">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100011" />
- </clipPath>
- <clipPath
- id="clipPath100013">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100015" />
- </clipPath>
- <clipPath
- id="clipPath100017">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100019" />
- </clipPath>
- <clipPath
- id="clipPath100021">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100023" />
- </clipPath>
- <clipPath
- id="clipPath100025">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100027" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4785_"
- overflow="visible"
- id="use84007" />
- </clipPath>
- <clipPath
- id="SVGID_4784_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use83987" />
- </clipPath>
- <clipPath
- id="clipPath100036">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100038" />
- </clipPath>
- <clipPath
- id="clipPath100040">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100042" />
- </clipPath>
- <clipPath
- id="clipPath100044">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100046" />
- </clipPath>
- <clipPath
- id="clipPath100048">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100050" />
- </clipPath>
- <clipPath
- id="clipPath100052">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4783_"
- overflow="visible"
- id="use100054" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4780_"
- overflow="visible"
- id="use83972" />
- </clipPath>
- <clipPath
- id="SVGID_4779_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use83952" />
- </clipPath>
- <clipPath
- id="clipPath100063">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100065" />
- </clipPath>
- <clipPath
- id="clipPath100067">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100069" />
- </clipPath>
- <clipPath
- id="clipPath100071">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100073" />
- </clipPath>
- <clipPath
- id="clipPath100075">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100077" />
- </clipPath>
- <clipPath
- id="clipPath100079">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4778_"
- overflow="visible"
- id="use100081" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4775_"
- overflow="visible"
- id="use83937" />
- </clipPath>
- <clipPath
- id="SVGID_4774_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use83917" />
- </clipPath>
- <clipPath
- id="clipPath100090">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100092" />
- </clipPath>
- <clipPath
- id="clipPath100094">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100096" />
- </clipPath>
- <clipPath
- id="clipPath100098">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100100" />
- </clipPath>
- <clipPath
- id="clipPath100102">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100104" />
- </clipPath>
- <clipPath
- id="clipPath100106">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4773_"
- overflow="visible"
- id="use100108" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4770_"
- overflow="visible"
- id="use83902" />
- </clipPath>
- <clipPath
- id="SVGID_4769_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use83882" />
- </clipPath>
- <clipPath
- id="clipPath100117">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100119" />
- </clipPath>
- <clipPath
- id="clipPath100121">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100123" />
- </clipPath>
- <clipPath
- id="clipPath100125">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100127" />
- </clipPath>
- <clipPath
- id="clipPath100129">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100131" />
- </clipPath>
- <clipPath
- id="clipPath100133">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4768_"
- overflow="visible"
- id="use100135" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4765_"
- overflow="visible"
- id="use83867" />
- </clipPath>
- <clipPath
- id="SVGID_4764_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use83847" />
- </clipPath>
- <clipPath
- id="clipPath100144">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100146" />
- </clipPath>
- <clipPath
- id="clipPath100148">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100150" />
- </clipPath>
- <clipPath
- id="clipPath100152">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100154" />
- </clipPath>
- <clipPath
- id="clipPath100156">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100158" />
- </clipPath>
- <clipPath
- id="clipPath100160">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4763_"
- overflow="visible"
- id="use100162" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4760_"
- overflow="visible"
- id="use83832" />
- </clipPath>
- <clipPath
- id="SVGID_4759_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use83812" />
- </clipPath>
- <clipPath
- id="clipPath100171">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100173" />
- </clipPath>
- <clipPath
- id="clipPath100175">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100177" />
- </clipPath>
- <clipPath
- id="clipPath100179">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100181" />
- </clipPath>
- <clipPath
- id="clipPath100183">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100185" />
- </clipPath>
- <clipPath
- id="clipPath100187">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4758_"
- overflow="visible"
- id="use100189" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4755_"
- overflow="visible"
- id="use83797" />
- </clipPath>
- <clipPath
- id="SVGID_4754_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use83777" />
- </clipPath>
- <clipPath
- id="clipPath100198">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100200" />
- </clipPath>
- <clipPath
- id="clipPath100202">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100204" />
- </clipPath>
- <clipPath
- id="clipPath100206">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100208" />
- </clipPath>
- <clipPath
- id="clipPath100210">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100212" />
- </clipPath>
- <clipPath
- id="clipPath100214">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4753_"
- overflow="visible"
- id="use100216" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4750_"
- overflow="visible"
- id="use83762" />
- </clipPath>
- <clipPath
- id="SVGID_4749_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use83742" />
- </clipPath>
- <clipPath
- id="clipPath100225">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100227" />
- </clipPath>
- <clipPath
- id="clipPath100229">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100231" />
- </clipPath>
- <clipPath
- id="clipPath100233">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100235" />
- </clipPath>
- <clipPath
- id="clipPath100237">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100239" />
- </clipPath>
- <clipPath
- id="clipPath100241">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4748_"
- overflow="visible"
- id="use100243" />
- </clipPath>
- <linearGradient
- id="SVGID_4747_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,284.9195,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83730" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83732" />
- </linearGradient>
- <clipPath
- id="SVGID_4746_">
- <path
- d="m -516.985,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83727"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4744_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83707" />
- </clipPath>
- <clipPath
- id="clipPath100252">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100254" />
- </clipPath>
- <clipPath
- id="clipPath100256">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100258" />
- </clipPath>
- <clipPath
- id="clipPath100260">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100262" />
- </clipPath>
- <clipPath
- id="clipPath100264">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100266" />
- </clipPath>
- <clipPath
- id="clipPath100268">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100270" />
- </clipPath>
- <linearGradient
- id="SVGID_4742_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,272.9481,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83695" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83697" />
- </linearGradient>
- <clipPath
- id="SVGID_4741_">
- <path
- d="m -528.956,334.666 c 0,1.488 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use83692"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4739_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83672" />
- </clipPath>
- <clipPath
- id="clipPath100279">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100281" />
- </clipPath>
- <clipPath
- id="clipPath100283">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100285" />
- </clipPath>
- <clipPath
- id="clipPath100287">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100289" />
- </clipPath>
- <clipPath
- id="clipPath100291">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100293" />
- </clipPath>
- <clipPath
- id="clipPath100295">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100297" />
- </clipPath>
- <linearGradient
- id="SVGID_4737_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,260.9767,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83660" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83662" />
- </linearGradient>
- <clipPath
- id="SVGID_4736_">
- <path
- d="m -540.927,334.666 c 0,1.488 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.691,1.206 -2.691,2.692"
- id="use83657"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4734_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83637" />
- </clipPath>
- <clipPath
- id="clipPath100306">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100308" />
- </clipPath>
- <clipPath
- id="clipPath100310">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100312" />
- </clipPath>
- <clipPath
- id="clipPath100314">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100316" />
- </clipPath>
- <clipPath
- id="clipPath100318">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100320" />
- </clipPath>
- <clipPath
- id="clipPath100322">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100324" />
- </clipPath>
- <linearGradient
- id="SVGID_4732_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,249.0053,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83625" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83627" />
- </linearGradient>
- <clipPath
- id="SVGID_4731_">
- <path
- d="m -552.899,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83622"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4729_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83602" />
- </clipPath>
- <clipPath
- id="clipPath100333">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100335" />
- </clipPath>
- <clipPath
- id="clipPath100337">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100339" />
- </clipPath>
- <clipPath
- id="clipPath100341">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100343" />
- </clipPath>
- <clipPath
- id="clipPath100345">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100347" />
- </clipPath>
- <clipPath
- id="clipPath100349">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100351" />
- </clipPath>
- <linearGradient
- id="SVGID_4727_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,225.0626,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83590" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83592" />
- </linearGradient>
- <clipPath
- id="SVGID_4726_">
- <path
- d="m -576.842,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83587"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4724_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83567" />
- </clipPath>
- <clipPath
- id="clipPath100360">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100362" />
- </clipPath>
- <clipPath
- id="clipPath100364">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100366" />
- </clipPath>
- <clipPath
- id="clipPath100368">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100370" />
- </clipPath>
- <clipPath
- id="clipPath100372">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100374" />
- </clipPath>
- <clipPath
- id="clipPath100376">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100378" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4720_"
- overflow="visible"
- id="use83552" />
- </clipPath>
- <clipPath
- id="SVGID_4719_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use83532" />
- </clipPath>
- <clipPath
- id="clipPath100387">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100389" />
- </clipPath>
- <clipPath
- id="clipPath100391">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100393" />
- </clipPath>
- <clipPath
- id="clipPath100395">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100397" />
- </clipPath>
- <clipPath
- id="clipPath100399">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100401" />
- </clipPath>
- <clipPath
- id="clipPath100403">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4718_"
- overflow="visible"
- id="use100405" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4715_"
- overflow="visible"
- id="use83517" />
- </clipPath>
- <clipPath
- id="SVGID_4714_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use83497" />
- </clipPath>
- <clipPath
- id="clipPath100414">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100416" />
- </clipPath>
- <clipPath
- id="clipPath100418">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100420" />
- </clipPath>
- <clipPath
- id="clipPath100422">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100424" />
- </clipPath>
- <clipPath
- id="clipPath100426">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100428" />
- </clipPath>
- <clipPath
- id="clipPath100430">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4713_"
- overflow="visible"
- id="use100432" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4710_"
- overflow="visible"
- id="use83482" />
- </clipPath>
- <clipPath
- id="SVGID_4709_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use83462" />
- </clipPath>
- <clipPath
- id="clipPath100441">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100443" />
- </clipPath>
- <clipPath
- id="clipPath100445">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100447" />
- </clipPath>
- <clipPath
- id="clipPath100449">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100451" />
- </clipPath>
- <clipPath
- id="clipPath100453">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100455" />
- </clipPath>
- <clipPath
- id="clipPath100457">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4708_"
- overflow="visible"
- id="use100459" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4705_"
- overflow="visible"
- id="use83447" />
- </clipPath>
- <clipPath
- id="SVGID_4704_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use83427" />
- </clipPath>
- <clipPath
- id="clipPath100468">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100470" />
- </clipPath>
- <clipPath
- id="clipPath100472">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100474" />
- </clipPath>
- <clipPath
- id="clipPath100476">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100478" />
- </clipPath>
- <clipPath
- id="clipPath100480">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100482" />
- </clipPath>
- <clipPath
- id="clipPath100484">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4703_"
- overflow="visible"
- id="use100486" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4700_"
- overflow="visible"
- id="use83412" />
- </clipPath>
- <clipPath
- id="SVGID_4699_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use83392" />
- </clipPath>
- <clipPath
- id="clipPath100495">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100497" />
- </clipPath>
- <clipPath
- id="clipPath100499">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100501" />
- </clipPath>
- <clipPath
- id="clipPath100503">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100505" />
- </clipPath>
- <clipPath
- id="clipPath100507">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100509" />
- </clipPath>
- <clipPath
- id="clipPath100511">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4698_"
- overflow="visible"
- id="use100513" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4695_"
- overflow="visible"
- id="use83377" />
- </clipPath>
- <clipPath
- id="SVGID_4694_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use83357" />
- </clipPath>
- <clipPath
- id="clipPath100522">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100524" />
- </clipPath>
- <clipPath
- id="clipPath100526">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100528" />
- </clipPath>
- <clipPath
- id="clipPath100530">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100532" />
- </clipPath>
- <clipPath
- id="clipPath100534">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100536" />
- </clipPath>
- <clipPath
- id="clipPath100538">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4693_"
- overflow="visible"
- id="use100540" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4690_"
- overflow="visible"
- id="use83342" />
- </clipPath>
- <clipPath
- id="SVGID_4689_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use83322" />
- </clipPath>
- <clipPath
- id="clipPath100549">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100551" />
- </clipPath>
- <clipPath
- id="clipPath100553">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100555" />
- </clipPath>
- <clipPath
- id="clipPath100557">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100559" />
- </clipPath>
- <clipPath
- id="clipPath100561">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100563" />
- </clipPath>
- <clipPath
- id="clipPath100565">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4688_"
- overflow="visible"
- id="use100567" />
- </clipPath>
- <linearGradient
- id="SVGID_4687_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,284.9569,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83310" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83312" />
- </linearGradient>
- <clipPath
- id="SVGID_4686_">
- <path
- d="m -516.985,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83307"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4684_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83287" />
- </clipPath>
- <clipPath
- id="clipPath100576">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100578" />
- </clipPath>
- <clipPath
- id="clipPath100580">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100582" />
- </clipPath>
- <clipPath
- id="clipPath100584">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100586" />
- </clipPath>
- <clipPath
- id="clipPath100588">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100590" />
- </clipPath>
- <clipPath
- id="clipPath100592">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100594" />
- </clipPath>
- <linearGradient
- id="SVGID_4682_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,272.9856,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83275" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83277" />
- </linearGradient>
- <clipPath
- id="SVGID_4681_">
- <path
- d="m -528.956,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83272"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4679_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83252" />
- </clipPath>
- <clipPath
- id="clipPath100603">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100605" />
- </clipPath>
- <clipPath
- id="clipPath100607">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100609" />
- </clipPath>
- <clipPath
- id="clipPath100611">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100613" />
- </clipPath>
- <clipPath
- id="clipPath100615">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100617" />
- </clipPath>
- <clipPath
- id="clipPath100619">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100621" />
- </clipPath>
- <linearGradient
- id="SVGID_4677_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,261.0142,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83240" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83242" />
- </linearGradient>
- <clipPath
- id="SVGID_4676_">
- <path
- d="m -540.927,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83237"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4674_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83217" />
- </clipPath>
- <clipPath
- id="clipPath100630">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100632" />
- </clipPath>
- <clipPath
- id="clipPath100634">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100636" />
- </clipPath>
- <clipPath
- id="clipPath100638">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100640" />
- </clipPath>
- <clipPath
- id="clipPath100642">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100644" />
- </clipPath>
- <clipPath
- id="clipPath100646">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100648" />
- </clipPath>
- <linearGradient
- id="SVGID_4672_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,249.0428,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83205" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83207" />
- </linearGradient>
- <clipPath
- id="SVGID_4671_">
- <path
- d="m -552.899,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83202"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4669_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83182" />
- </clipPath>
- <clipPath
- id="clipPath100657">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100659" />
- </clipPath>
- <clipPath
- id="clipPath100661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100663" />
- </clipPath>
- <clipPath
- id="clipPath100665">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100667" />
- </clipPath>
- <clipPath
- id="clipPath100669">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100671" />
- </clipPath>
- <clipPath
- id="clipPath100673">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100675" />
- </clipPath>
- <linearGradient
- id="SVGID_4667_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,237.0715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83170" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83172" />
- </linearGradient>
- <clipPath
- id="SVGID_4666_">
- <path
- d="m -564.87,323.119 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.204 -2.691,2.69"
- id="use83167"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4664_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83147" />
- </clipPath>
- <clipPath
- id="clipPath100684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100686" />
- </clipPath>
- <clipPath
- id="clipPath100688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100690" />
- </clipPath>
- <clipPath
- id="clipPath100692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100694" />
- </clipPath>
- <clipPath
- id="clipPath100696">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100698" />
- </clipPath>
- <clipPath
- id="clipPath100700">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100702" />
- </clipPath>
- <linearGradient
- id="SVGID_4662_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,225.1001,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83135" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83137" />
- </linearGradient>
- <clipPath
- id="SVGID_4661_">
- <path
- d="m -576.842,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83132"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4659_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83112" />
- </clipPath>
- <clipPath
- id="clipPath100711">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100713" />
- </clipPath>
- <clipPath
- id="clipPath100715">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100717" />
- </clipPath>
- <clipPath
- id="clipPath100719">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100721" />
- </clipPath>
- <clipPath
- id="clipPath100723">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100725" />
- </clipPath>
- <clipPath
- id="clipPath100727">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100729" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_"
- overflow="visible"
- id="use83097" />
- </clipPath>
- <clipPath
- id="SVGID_4654_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use83077" />
- </clipPath>
- <clipPath
- id="clipPath100738">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100740" />
- </clipPath>
- <clipPath
- id="clipPath100742">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100744" />
- </clipPath>
- <clipPath
- id="clipPath100746">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100748" />
- </clipPath>
- <clipPath
- id="clipPath100750">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100752" />
- </clipPath>
- <clipPath
- id="clipPath100754">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4653_"
- overflow="visible"
- id="use100756" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4650_"
- overflow="visible"
- id="use83062" />
- </clipPath>
- <clipPath
- id="SVGID_4649_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use83042" />
- </clipPath>
- <clipPath
- id="clipPath100765">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100767" />
- </clipPath>
- <clipPath
- id="clipPath100769">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100771" />
- </clipPath>
- <clipPath
- id="clipPath100773">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100775" />
- </clipPath>
- <clipPath
- id="clipPath100777">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100779" />
- </clipPath>
- <clipPath
- id="clipPath100781">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4648_"
- overflow="visible"
- id="use100783" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4645_"
- overflow="visible"
- id="use83027" />
- </clipPath>
- <clipPath
- id="SVGID_4644_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use83007" />
- </clipPath>
- <clipPath
- id="clipPath100792">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100794" />
- </clipPath>
- <clipPath
- id="clipPath100796">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100798" />
- </clipPath>
- <clipPath
- id="clipPath100800">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100802" />
- </clipPath>
- <clipPath
- id="clipPath100804">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100806" />
- </clipPath>
- <clipPath
- id="clipPath100808">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4643_"
- overflow="visible"
- id="use100810" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4640_"
- overflow="visible"
- id="use82992" />
- </clipPath>
- <clipPath
- id="SVGID_4639_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use82972" />
- </clipPath>
- <clipPath
- id="clipPath100819">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100821" />
- </clipPath>
- <clipPath
- id="clipPath100823">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100825" />
- </clipPath>
- <clipPath
- id="clipPath100827">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100829" />
- </clipPath>
- <clipPath
- id="clipPath100831">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100833" />
- </clipPath>
- <clipPath
- id="clipPath100835">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4638_"
- overflow="visible"
- id="use100837" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4635_"
- overflow="visible"
- id="use82957" />
- </clipPath>
- <clipPath
- id="SVGID_4634_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use82937" />
- </clipPath>
- <clipPath
- id="clipPath100846">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100848" />
- </clipPath>
- <clipPath
- id="clipPath100850">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100852" />
- </clipPath>
- <clipPath
- id="clipPath100854">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100856" />
- </clipPath>
- <clipPath
- id="clipPath100858">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100860" />
- </clipPath>
- <clipPath
- id="clipPath100862">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4633_"
- overflow="visible"
- id="use100864" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4630_"
- overflow="visible"
- id="use82922" />
- </clipPath>
- <clipPath
- id="SVGID_4629_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use82902" />
- </clipPath>
- <clipPath
- id="clipPath100873">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100875" />
- </clipPath>
- <clipPath
- id="clipPath100877">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100879" />
- </clipPath>
- <clipPath
- id="clipPath100881">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100883" />
- </clipPath>
- <clipPath
- id="clipPath100885">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100887" />
- </clipPath>
- <clipPath
- id="clipPath100889">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4628_"
- overflow="visible"
- id="use100891" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4625_"
- overflow="visible"
- id="use82887" />
- </clipPath>
- <clipPath
- id="SVGID_4624_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use82867" />
- </clipPath>
- <clipPath
- id="clipPath100900">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100902" />
- </clipPath>
- <clipPath
- id="clipPath100904">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100906" />
- </clipPath>
- <clipPath
- id="clipPath100908">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100910" />
- </clipPath>
- <clipPath
- id="clipPath100912">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100914" />
- </clipPath>
- <clipPath
- id="clipPath100916">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4623_"
- overflow="visible"
- id="use100918" />
- </clipPath>
- <linearGradient
- id="SVGID_4622_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,284.9569,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82855" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82857" />
- </linearGradient>
- <clipPath
- id="SVGID_4621_">
- <path
- d="m -516.985,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82852"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4619_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82832" />
- </clipPath>
- <clipPath
- id="clipPath100927">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100929" />
- </clipPath>
- <clipPath
- id="clipPath100931">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100933" />
- </clipPath>
- <clipPath
- id="clipPath100935">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100937" />
- </clipPath>
- <clipPath
- id="clipPath100939">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100941" />
- </clipPath>
- <clipPath
- id="clipPath100943">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100945" />
- </clipPath>
- <linearGradient
- id="SVGID_4617_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,272.9856,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82820" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82822" />
- </linearGradient>
- <clipPath
- id="SVGID_4616_">
- <path
- d="m -528.956,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82817"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4614_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82797" />
- </clipPath>
- <clipPath
- id="clipPath100954">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100956" />
- </clipPath>
- <clipPath
- id="clipPath100958">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100960" />
- </clipPath>
- <clipPath
- id="clipPath100962">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100964" />
- </clipPath>
- <clipPath
- id="clipPath100966">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100968" />
- </clipPath>
- <clipPath
- id="clipPath100970">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100972" />
- </clipPath>
- <linearGradient
- id="SVGID_4612_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,261.0142,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82785" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82787" />
- </linearGradient>
- <clipPath
- id="SVGID_4611_">
- <path
- d="m -540.927,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82782"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4609_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82762" />
- </clipPath>
- <clipPath
- id="clipPath100981">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100983" />
- </clipPath>
- <clipPath
- id="clipPath100985">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100987" />
- </clipPath>
- <clipPath
- id="clipPath100989">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100991" />
- </clipPath>
- <clipPath
- id="clipPath100993">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100995" />
- </clipPath>
- <clipPath
- id="clipPath100997">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use100999" />
- </clipPath>
- <linearGradient
- id="SVGID_4607_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,249.0428,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82750" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82752" />
- </linearGradient>
- <clipPath
- id="SVGID_4606_">
- <path
- d="m -552.899,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82747"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4604_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82727" />
- </clipPath>
- <clipPath
- id="clipPath101008">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101010" />
- </clipPath>
- <clipPath
- id="clipPath101012">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101014" />
- </clipPath>
- <clipPath
- id="clipPath101016">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101018" />
- </clipPath>
- <clipPath
- id="clipPath101020">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101022" />
- </clipPath>
- <clipPath
- id="clipPath101024">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101026" />
- </clipPath>
- <linearGradient
- id="SVGID_4602_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,237.0715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82715" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82717" />
- </linearGradient>
- <clipPath
- id="SVGID_4601_">
- <path
- d="m -564.87,311.531 c 0,1.487 1.205,2.694 2.691,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.691,1.205 -2.691,2.69"
- id="use82712"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4599_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82692" />
- </clipPath>
- <clipPath
- id="clipPath101035">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101037" />
- </clipPath>
- <clipPath
- id="clipPath101039">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101041" />
- </clipPath>
- <clipPath
- id="clipPath101043">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101045" />
- </clipPath>
- <clipPath
- id="clipPath101047">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101049" />
- </clipPath>
- <clipPath
- id="clipPath101051">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101053" />
- </clipPath>
- <linearGradient
- id="SVGID_4597_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,225.1001,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82680" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82682" />
- </linearGradient>
- <clipPath
- id="SVGID_4596_">
- <path
- d="m -576.842,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82677"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4594_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82657" />
- </clipPath>
- <clipPath
- id="clipPath101062">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101064" />
- </clipPath>
- <clipPath
- id="clipPath101066">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101068" />
- </clipPath>
- <clipPath
- id="clipPath101070">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101072" />
- </clipPath>
- <clipPath
- id="clipPath101074">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101076" />
- </clipPath>
- <clipPath
- id="clipPath101078">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101080" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4590_"
- overflow="visible"
- id="use82642" />
- </clipPath>
- <clipPath
- id="SVGID_4589_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use82622" />
- </clipPath>
- <clipPath
- id="clipPath101089">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101091" />
- </clipPath>
- <clipPath
- id="clipPath101093">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101095" />
- </clipPath>
- <clipPath
- id="clipPath101097">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101099" />
- </clipPath>
- <clipPath
- id="clipPath101101">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101103" />
- </clipPath>
- <clipPath
- id="clipPath101105">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4588_"
- overflow="visible"
- id="use101107" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4585_"
- overflow="visible"
- id="use82607" />
- </clipPath>
- <clipPath
- id="SVGID_4584_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use82587" />
- </clipPath>
- <clipPath
- id="clipPath101116">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101118" />
- </clipPath>
- <clipPath
- id="clipPath101120">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101122" />
- </clipPath>
- <clipPath
- id="clipPath101124">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101126" />
- </clipPath>
- <clipPath
- id="clipPath101128">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101130" />
- </clipPath>
- <clipPath
- id="clipPath101132">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4583_"
- overflow="visible"
- id="use101134" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4580_"
- overflow="visible"
- id="use82572" />
- </clipPath>
- <clipPath
- id="SVGID_4579_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use82552" />
- </clipPath>
- <clipPath
- id="clipPath101143">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101145" />
- </clipPath>
- <clipPath
- id="clipPath101147">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101149" />
- </clipPath>
- <clipPath
- id="clipPath101151">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101153" />
- </clipPath>
- <clipPath
- id="clipPath101155">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101157" />
- </clipPath>
- <clipPath
- id="clipPath101159">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4578_"
- overflow="visible"
- id="use101161" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4575_"
- overflow="visible"
- id="use82537" />
- </clipPath>
- <clipPath
- id="SVGID_4574_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use82517" />
- </clipPath>
- <clipPath
- id="clipPath101170">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101172" />
- </clipPath>
- <clipPath
- id="clipPath101174">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101176" />
- </clipPath>
- <clipPath
- id="clipPath101178">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101180" />
- </clipPath>
- <clipPath
- id="clipPath101182">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101184" />
- </clipPath>
- <clipPath
- id="clipPath101186">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4573_"
- overflow="visible"
- id="use101188" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4570_"
- overflow="visible"
- id="use82502" />
- </clipPath>
- <clipPath
- id="SVGID_4569_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use82482" />
- </clipPath>
- <clipPath
- id="clipPath101197">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101199" />
- </clipPath>
- <clipPath
- id="clipPath101201">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101203" />
- </clipPath>
- <clipPath
- id="clipPath101205">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101207" />
- </clipPath>
- <clipPath
- id="clipPath101209">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101211" />
- </clipPath>
- <clipPath
- id="clipPath101213">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4568_"
- overflow="visible"
- id="use101215" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4565_"
- overflow="visible"
- id="use82467" />
- </clipPath>
- <clipPath
- id="SVGID_4564_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447" />
- </clipPath>
- <clipPath
- id="clipPath101224">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101226" />
- </clipPath>
- <clipPath
- id="clipPath101228">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101230" />
- </clipPath>
- <clipPath
- id="clipPath101232">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101234" />
- </clipPath>
- <clipPath
- id="clipPath101236">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101238" />
- </clipPath>
- <clipPath
- id="clipPath101240">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use101242" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412" />
- </clipPath>
- <clipPath
- id="clipPath101251">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101253" />
- </clipPath>
- <clipPath
- id="clipPath101255">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101257" />
- </clipPath>
- <clipPath
- id="clipPath101259">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101261" />
- </clipPath>
- <clipPath
- id="clipPath101263">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101265" />
- </clipPath>
- <clipPath
- id="clipPath101267">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101269" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4555_"
- overflow="visible"
- id="use82397" />
- </clipPath>
- <clipPath
- id="SVGID_4554_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82373" />
- </clipPath>
- <clipPath
- id="clipPath101278">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101280" />
- </clipPath>
- <clipPath
- id="SVGID_4552_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_"
- overflow="visible"
- id="use82359" />
- </clipPath>
- <clipPath
- id="clipPath101284">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4551_"
- overflow="visible"
- id="use101286" />
- </clipPath>
- <clipPath
- id="SVGID_4550_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_"
- overflow="visible"
- id="use82345" />
- </clipPath>
- <clipPath
- id="clipPath101290">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_"
- overflow="visible"
- id="use101292" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4546_"
- overflow="visible"
- id="use82316" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4543_"
- overflow="visible"
- id="use82287" />
- </clipPath>
- <linearGradient
- id="SVGID_4542_"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1387.9897,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82261" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82263" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82265" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82267" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82269" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82271" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82273" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82275" />
- </linearGradient>
- <clipPath
- id="SVGID_4541_">
- <polygon
- points="-547.185,267.353 -504.831,267.32 -504.824,253.133 -526.362,258.293 -547.178,253.224 "
- id="use82258" />
- </clipPath>
- <clipPath
- id="SVGID_4525_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_"
- overflow="visible"
- id="use82164" />
- </clipPath>
- <clipPath
- id="SVGID_4527_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_"
- overflow="visible"
- id="use82174" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4528_"
- overflow="visible"
- id="use82182" />
- </clipPath>
- <clipPath
- id="clipPath101336">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4526_"
- overflow="visible"
- id="use101338" />
- </clipPath>
- <clipPath
- id="SVGID_4532_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4531_"
- overflow="visible"
- id="use82197" />
- </clipPath>
- <clipPath
- id="clipPath101342">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4524_"
- overflow="visible"
- id="use101344" />
- </clipPath>
- <clipPath
- id="SVGID_4534_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_"
- overflow="visible"
- id="use82209" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4535_"
- overflow="visible"
- id="use82217" />
- </clipPath>
- <clipPath
- id="clipPath101353">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4533_"
- overflow="visible"
- id="use101355" />
- </clipPath>
- <clipPath
- id="SVGID_4539_">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4538_"
- overflow="visible"
- id="use82232" />
- </clipPath>
- <clipPath
- id="SVGID_4523_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82132" />
- </clipPath>
- <clipPath
- id="clipPath101361">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101363" />
- </clipPath>
- <clipPath
- id="clipPath101365">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101367" />
- </clipPath>
- <clipPath
- id="clipPath101369">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101371" />
- </clipPath>
- <clipPath
- id="clipPath101373">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101375" />
- </clipPath>
- <clipPath
- id="clipPath101377">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101379" />
- </clipPath>
- <clipPath
- id="clipPath101381">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101383" />
- </clipPath>
- <clipPath
- id="clipPath101385">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101387" />
- </clipPath>
- <linearGradient
- id="SVGID_4521_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_">
- <polygon
- points="-547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 -504.975,196.685 -504.975,188.287 -547.302,188.287 "
- id="use82113" />
- </clipPath>
- <clipPath
- id="SVGID_4518_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083" />
- </clipPath>
- <clipPath
- id="clipPath101398">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101400" />
- </clipPath>
- <clipPath
- id="clipPath101402">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101404" />
- </clipPath>
- <clipPath
- id="clipPath101406">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101408" />
- </clipPath>
- <clipPath
- id="clipPath101410">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101412" />
- </clipPath>
- <clipPath
- id="clipPath101414">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101416" />
- </clipPath>
- <clipPath
- id="clipPath101418">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101420" />
- </clipPath>
- <clipPath
- id="clipPath101422">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101424" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_">
- <polygon
- points="-590.704,196.685 -571.658,196.685 -571.658,188.287 -613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 "
- id="use82064" />
- </clipPath>
- <clipPath
- id="SVGID_4511_">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010" />
- </clipPath>
- <clipPath
- id="clipPath101435">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101437" />
- </clipPath>
- <clipPath
- id="clipPath101439">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101441" />
- </clipPath>
- <clipPath
- id="clipPath101443">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101445" />
- </clipPath>
- <clipPath
- id="clipPath101447">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101449" />
- </clipPath>
- <clipPath
- id="clipPath101451">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101453" />
- </clipPath>
- <clipPath
- id="clipPath101455">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101457" />
- </clipPath>
- <clipPath
- id="clipPath101459">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use101461" />
- </clipPath>
- <linearGradient
- id="SVGID_4509_"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_">
- <polygon
- points="-657.048,196.685 -638.002,196.685 -638.002,188.287 -680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 "
- id="use81991" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534"
- xlink:href="#SVGID_4509_"
- inkscape:collect="always" />
- <defs
- id="defs84496">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4842_" />
- </defs>
- <clipPath
- id="clipPath103391">
- <use
- id="use103393"
- overflow="visible"
- xlink:href="#SVGID_4842_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <clipPath
- id="SVGID_4873_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84798-7" />
- </clipPath>
- <clipPath
- id="clipPath113428">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113430" />
- </clipPath>
- <clipPath
- id="SVGID_4875_-9">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84810-6" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_-8"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821-2" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823-4" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825-9" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827-7" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_-0">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84818-8" />
- </clipPath>
- <clipPath
- id="clipPath113442">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113444" />
- </clipPath>
- <clipPath
- id="SVGID_4880_-0">
- <rect
- height="10.152"
- width="174.94701"
- y="360.13901"
- x="-679.88898"
- id="use84841-6" />
- </clipPath>
- <clipPath
- id="SVGID_4882_-9">
- <rect
- height="10.153"
- width="174.94701"
- y="360.138"
- x="-679.88898"
- id="use84849-6" />
- </clipPath>
- <clipPath
- id="clipPath113450">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113452" />
- </clipPath>
- <clipPath
- id="clipPath113454">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113456" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_-1"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_-6">
- <polygon
- points="-654.922,273.567 -656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 "
- id="use84771-5" />
- </clipPath>
- <clipPath
- id="SVGID_4868_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84759-4" />
- </clipPath>
- <clipPath
- id="clipPath113465">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113467" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_-6"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735-4" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_-6">
- <polygon
- points="-588.288,273.567 -590.081,276.108 -588.288,278.632 -574.322,278.632 -574.322,273.567 "
- id="use84732-8" />
- </clipPath>
- <clipPath
- id="SVGID_4863_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84720-4" />
- </clipPath>
- <clipPath
- id="clipPath113476">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113478" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_-2"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622-4" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_-1">
- <polygon
- points="-588.288,203.458 -590.081,206 -588.288,208.524 -574.322,208.524 -574.322,203.458 "
- id="use84619-3" />
- </clipPath>
- <clipPath
- id="SVGID_4848_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607-5" />
- </clipPath>
- <clipPath
- id="clipPath113487">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113489" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_-9"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585-1" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_-3">
- <polygon
- points="-654.922,203.458 -656.715,206 -654.922,208.524 -640.956,208.524 -640.956,203.458 "
- id="use84582-2" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-5" />
- </clipPath>
- <clipPath
- id="clipPath113498">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113500" />
- </clipPath>
- <clipPath
- id="clipPath113502">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113504" />
- </clipPath>
- <clipPath
- id="clipPath113506">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113508" />
- </clipPath>
- <clipPath
- id="clipPath113510">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113512" />
- </clipPath>
- <clipPath
- id="clipPath113514">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113516" />
- </clipPath>
- <clipPath
- id="clipPath113518">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113520" />
- </clipPath>
- <clipPath
- id="clipPath113522">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use113524" />
- </clipPath>
- <clipPath
- id="SVGID_4838_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445-2" />
- </clipPath>
- <clipPath
- id="clipPath113528">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113530" />
- </clipPath>
- <clipPath
- id="clipPath113532">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113534" />
- </clipPath>
- <clipPath
- id="clipPath113536">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113538" />
- </clipPath>
- <clipPath
- id="clipPath113540">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113542" />
- </clipPath>
- <clipPath
- id="clipPath113544">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113546" />
- </clipPath>
- <clipPath
- id="clipPath113548">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113550" />
- </clipPath>
- <clipPath
- id="clipPath113552">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113554" />
- </clipPath>
- <clipPath
- id="clipPath113556">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113558" />
- </clipPath>
- <clipPath
- id="clipPath113560">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113562" />
- </clipPath>
- <clipPath
- id="clipPath113564">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113566" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_-2"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423-1" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425-8" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427-7" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429-9" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_-5">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420-5" />
- </clipPath>
- <clipPath
- id="SVGID_4833_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390-9" />
- </clipPath>
- <clipPath
- id="clipPath113578">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113580" />
- </clipPath>
- <clipPath
- id="clipPath113582">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113584" />
- </clipPath>
- <clipPath
- id="clipPath113586">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113588" />
- </clipPath>
- <clipPath
- id="clipPath113590">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113592" />
- </clipPath>
- <clipPath
- id="clipPath113594">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113596" />
- </clipPath>
- <clipPath
- id="clipPath113598">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113600" />
- </clipPath>
- <clipPath
- id="clipPath113602">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113604" />
- </clipPath>
- <clipPath
- id="clipPath113606">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113608" />
- </clipPath>
- <clipPath
- id="clipPath113610">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113612" />
- </clipPath>
- <clipPath
- id="clipPath113614">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113616" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_-5"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368-9" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370-7" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372-0" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374-4" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_-7">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_-5"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329-2" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331-0" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333-0" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335-1" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_-3">
- <polygon
- points="-682.208,251.221 -659.342,256.788 -636.356,251.283 -636.358,231.934 -682.207,231.929 "
- id="use84326-6" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_-6"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298-6" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300-1" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302-6" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304-9" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_-9">
- <polygon
- points="-615.653,251.221 -592.788,256.788 -569.802,251.283 -569.804,231.934 -615.653,231.929 "
- id="use84295-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-8">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84007-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4784_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83987-7" />
- </clipPath>
- <clipPath
- id="clipPath113649">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113651" />
- </clipPath>
- <clipPath
- id="clipPath113653">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113655" />
- </clipPath>
- <clipPath
- id="clipPath113657">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113659" />
- </clipPath>
- <clipPath
- id="clipPath113661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113663" />
- </clipPath>
- <clipPath
- id="clipPath113665">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113667" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_-3">
- <path
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83972-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4779_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83952-2" />
- </clipPath>
- <clipPath
- id="clipPath113676">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113678" />
- </clipPath>
- <clipPath
- id="clipPath113680">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113682" />
- </clipPath>
- <clipPath
- id="clipPath113684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113686" />
- </clipPath>
- <clipPath
- id="clipPath113688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113690" />
- </clipPath>
- <clipPath
- id="clipPath113692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113694" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_-4">
- <path
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83937-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4774_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83917-6" />
- </clipPath>
- <clipPath
- id="clipPath113703">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113705" />
- </clipPath>
- <clipPath
- id="clipPath113707">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113709" />
- </clipPath>
- <clipPath
- id="clipPath113711">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113713" />
- </clipPath>
- <clipPath
- id="clipPath113715">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113717" />
- </clipPath>
- <clipPath
- id="clipPath113719">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113721" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_-5">
- <path
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692"
- id="use83902-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4769_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83882-6" />
- </clipPath>
- <clipPath
- id="clipPath113730">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113732" />
- </clipPath>
- <clipPath
- id="clipPath113734">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113736" />
- </clipPath>
- <clipPath
- id="clipPath113738">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113740" />
- </clipPath>
- <clipPath
- id="clipPath113742">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113744" />
- </clipPath>
- <clipPath
- id="clipPath113746">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113748" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_-5">
- <path
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83867-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4764_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83847-5" />
- </clipPath>
- <clipPath
- id="clipPath113757">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113759" />
- </clipPath>
- <clipPath
- id="clipPath113761">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113763" />
- </clipPath>
- <clipPath
- id="clipPath113765">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113767" />
- </clipPath>
- <clipPath
- id="clipPath113769">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113771" />
- </clipPath>
- <clipPath
- id="clipPath113773">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113775" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_-9">
- <path
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83832-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4759_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83812-4" />
- </clipPath>
- <clipPath
- id="clipPath113784">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113786" />
- </clipPath>
- <clipPath
- id="clipPath113788">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113790" />
- </clipPath>
- <clipPath
- id="clipPath113792">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113794" />
- </clipPath>
- <clipPath
- id="clipPath113796">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113798" />
- </clipPath>
- <clipPath
- id="clipPath113800">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113802" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-5">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83797-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83777-2" />
- </clipPath>
- <clipPath
- id="clipPath113811">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113813" />
- </clipPath>
- <clipPath
- id="clipPath113815">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113817" />
- </clipPath>
- <clipPath
- id="clipPath113819">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113821" />
- </clipPath>
- <clipPath
- id="clipPath113823">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113825" />
- </clipPath>
- <clipPath
- id="clipPath113827">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113829" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-0">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83762-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-5">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83552-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4719_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83532-5" />
- </clipPath>
- <clipPath
- id="clipPath113843">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113845" />
- </clipPath>
- <clipPath
- id="clipPath113847">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113849" />
- </clipPath>
- <clipPath
- id="clipPath113851">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113853" />
- </clipPath>
- <clipPath
- id="clipPath113855">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113857" />
- </clipPath>
- <clipPath
- id="clipPath113859">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113861" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_-1">
- <path
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83517-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4714_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83497-9" />
- </clipPath>
- <clipPath
- id="clipPath113870">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113872" />
- </clipPath>
- <clipPath
- id="clipPath113874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113876" />
- </clipPath>
- <clipPath
- id="clipPath113878">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113880" />
- </clipPath>
- <clipPath
- id="clipPath113882">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113884" />
- </clipPath>
- <clipPath
- id="clipPath113886">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113888" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_-6">
- <path
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83482-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4709_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83462-9" />
- </clipPath>
- <clipPath
- id="clipPath113897">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113899" />
- </clipPath>
- <clipPath
- id="clipPath113901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113903" />
- </clipPath>
- <clipPath
- id="clipPath113905">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113907" />
- </clipPath>
- <clipPath
- id="clipPath113909">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113911" />
- </clipPath>
- <clipPath
- id="clipPath113913">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113915" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_-5">
- <path
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83447-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4704_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83427-8" />
- </clipPath>
- <clipPath
- id="clipPath113924">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113926" />
- </clipPath>
- <clipPath
- id="clipPath113928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113930" />
- </clipPath>
- <clipPath
- id="clipPath113932">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113934" />
- </clipPath>
- <clipPath
- id="clipPath113936">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113938" />
- </clipPath>
- <clipPath
- id="clipPath113940">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113942" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_-3">
- <path
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83412-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4699_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83392-0" />
- </clipPath>
- <clipPath
- id="clipPath113951">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113953" />
- </clipPath>
- <clipPath
- id="clipPath113955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113957" />
- </clipPath>
- <clipPath
- id="clipPath113959">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113961" />
- </clipPath>
- <clipPath
- id="clipPath113963">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113965" />
- </clipPath>
- <clipPath
- id="clipPath113967">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113969" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-2">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83377-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83357-4" />
- </clipPath>
- <clipPath
- id="clipPath113978">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113980" />
- </clipPath>
- <clipPath
- id="clipPath113982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113984" />
- </clipPath>
- <clipPath
- id="clipPath113986">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113988" />
- </clipPath>
- <clipPath
- id="clipPath113990">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113992" />
- </clipPath>
- <clipPath
- id="clipPath113994">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use113996" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-2">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83342-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-1">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83097-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4654_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83077-9" />
- </clipPath>
- <clipPath
- id="clipPath114010">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114012" />
- </clipPath>
- <clipPath
- id="clipPath114014">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114016" />
- </clipPath>
- <clipPath
- id="clipPath114018">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114020" />
- </clipPath>
- <clipPath
- id="clipPath114022">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114024" />
- </clipPath>
- <clipPath
- id="clipPath114026">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114028" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_-4">
- <path
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83062-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4649_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83042-4" />
- </clipPath>
- <clipPath
- id="clipPath114037">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114039" />
- </clipPath>
- <clipPath
- id="clipPath114041">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114043" />
- </clipPath>
- <clipPath
- id="clipPath114045">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114047" />
- </clipPath>
- <clipPath
- id="clipPath114049">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114051" />
- </clipPath>
- <clipPath
- id="clipPath114053">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114055" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_-1">
- <path
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69"
- id="use83027-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4644_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83007-1" />
- </clipPath>
- <clipPath
- id="clipPath114064">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114066" />
- </clipPath>
- <clipPath
- id="clipPath114068">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114070" />
- </clipPath>
- <clipPath
- id="clipPath114072">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114074" />
- </clipPath>
- <clipPath
- id="clipPath114076">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114078" />
- </clipPath>
- <clipPath
- id="clipPath114080">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114082" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_-8">
- <path
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82992-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4639_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82972-9" />
- </clipPath>
- <clipPath
- id="clipPath114091">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114093" />
- </clipPath>
- <clipPath
- id="clipPath114095">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114097" />
- </clipPath>
- <clipPath
- id="clipPath114099">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114101" />
- </clipPath>
- <clipPath
- id="clipPath114103">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114105" />
- </clipPath>
- <clipPath
- id="clipPath114107">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114109" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_-6">
- <path
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82957-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4634_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82937-8" />
- </clipPath>
- <clipPath
- id="clipPath114118">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114120" />
- </clipPath>
- <clipPath
- id="clipPath114122">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114124" />
- </clipPath>
- <clipPath
- id="clipPath114126">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114128" />
- </clipPath>
- <clipPath
- id="clipPath114130">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114132" />
- </clipPath>
- <clipPath
- id="clipPath114134">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114136" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-1">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82922-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82902-5" />
- </clipPath>
- <clipPath
- id="clipPath114145">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114147" />
- </clipPath>
- <clipPath
- id="clipPath114149">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114151" />
- </clipPath>
- <clipPath
- id="clipPath114153">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114155" />
- </clipPath>
- <clipPath
- id="clipPath114157">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114159" />
- </clipPath>
- <clipPath
- id="clipPath114161">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114163" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-6">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_-6">
- <path
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82642-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4589_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82622-2" />
- </clipPath>
- <clipPath
- id="clipPath114177">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114179" />
- </clipPath>
- <clipPath
- id="clipPath114181">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114183" />
- </clipPath>
- <clipPath
- id="clipPath114185">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114187" />
- </clipPath>
- <clipPath
- id="clipPath114189">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114191" />
- </clipPath>
- <clipPath
- id="clipPath114193">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114195" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_-0">
- <path
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82607-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4584_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82587-5" />
- </clipPath>
- <clipPath
- id="clipPath114204">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114206" />
- </clipPath>
- <clipPath
- id="clipPath114208">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114210" />
- </clipPath>
- <clipPath
- id="clipPath114212">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114214" />
- </clipPath>
- <clipPath
- id="clipPath114216">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114218" />
- </clipPath>
- <clipPath
- id="clipPath114220">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114222" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_-6">
- <path
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82572-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4579_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82552-5" />
- </clipPath>
- <clipPath
- id="clipPath114231">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114233" />
- </clipPath>
- <clipPath
- id="clipPath114235">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114237" />
- </clipPath>
- <clipPath
- id="clipPath114239">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114241" />
- </clipPath>
- <clipPath
- id="clipPath114243">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114245" />
- </clipPath>
- <clipPath
- id="clipPath114247">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114249" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_-2">
- <path
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69"
- id="use82537-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4574_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82517-2" />
- </clipPath>
- <clipPath
- id="clipPath114258">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114260" />
- </clipPath>
- <clipPath
- id="clipPath114262">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114264" />
- </clipPath>
- <clipPath
- id="clipPath114266">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114268" />
- </clipPath>
- <clipPath
- id="clipPath114270">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114272" />
- </clipPath>
- <clipPath
- id="clipPath114274">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114276" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_-1">
- <path
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82502-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4569_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82482-9" />
- </clipPath>
- <clipPath
- id="clipPath114285">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114287" />
- </clipPath>
- <clipPath
- id="clipPath114289">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114291" />
- </clipPath>
- <clipPath
- id="clipPath114293">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114295" />
- </clipPath>
- <clipPath
- id="clipPath114297">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114299" />
- </clipPath>
- <clipPath
- id="clipPath114301">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114303" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_-1">
- <path
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82467-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82447-3" />
- </clipPath>
- <clipPath
- id="clipPath114312">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114314" />
- </clipPath>
- <clipPath
- id="clipPath114316">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114318" />
- </clipPath>
- <clipPath
- id="clipPath114320">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114322" />
- </clipPath>
- <clipPath
- id="clipPath114324">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114326" />
- </clipPath>
- <clipPath
- id="clipPath114328">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114330" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435-2" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_-1">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-0" />
- </clipPath>
- <clipPath
- id="clipPath114339">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114341" />
- </clipPath>
- <clipPath
- id="clipPath114343">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114345" />
- </clipPath>
- <clipPath
- id="clipPath114347">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114349" />
- </clipPath>
- <clipPath
- id="clipPath114351">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114353" />
- </clipPath>
- <clipPath
- id="clipPath114355">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114357" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-5">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82397-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4552_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82359-9" />
- </clipPath>
- <clipPath
- id="clipPath114366">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114368" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-0">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-2" />
- </clipPath>
- <clipPath
- id="clipPath114372">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114374" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_-2"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319-4" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321-6" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323-0" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325-7" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327-0" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329-5" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_-4">
- <polygon
- points="-659.18,258.293 -679.997,253.224 -680.004,267.353 -637.65,267.32 -637.642,253.133 "
- id="use82316-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_-9"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290-3" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292-3" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294-2" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296-5" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298-7" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300-2" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_-2">
- <polygon
- points="-593.085,258.293 -613.901,253.224 -613.908,267.353 -571.554,267.32 -571.547,253.133 "
- id="use82287-1" />
- </clipPath>
- <clipPath
- id="SVGID_4525_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82164-1" />
- </clipPath>
- <clipPath
- id="SVGID_4527_-8">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82174-4" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_-6"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185-5" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_-6">
- <rect
- height="64.037003"
- width="174.953"
- y="293.367"
- x="-679.57202"
- id="use82182-7" />
- </clipPath>
- <clipPath
- id="clipPath114407">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use114409" />
- </clipPath>
- <clipPath
- id="SVGID_4532_-7">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82197-2" />
- </clipPath>
- <clipPath
- id="clipPath114413">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114415" />
- </clipPath>
- <clipPath
- id="SVGID_4534_-4">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82209-7" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_-9"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_-8">
- <rect
- height="64.037003"
- width="45.659"
- y="293.367"
- x="-441.45999"
- id="use82217-2" />
- </clipPath>
- <clipPath
- id="clipPath114424">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use114426" />
- </clipPath>
- <clipPath
- id="SVGID_4539_-9">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82232-6" />
- </clipPath>
- <clipPath
- id="SVGID_4518_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083-2" />
- </clipPath>
- <clipPath
- id="clipPath114432">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114434" />
- </clipPath>
- <clipPath
- id="clipPath114436">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114438" />
- </clipPath>
- <clipPath
- id="clipPath114440">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114442" />
- </clipPath>
- <clipPath
- id="clipPath114444">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114446" />
- </clipPath>
- <clipPath
- id="clipPath114448">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114450" />
- </clipPath>
- <clipPath
- id="clipPath114452">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114454" />
- </clipPath>
- <clipPath
- id="clipPath114456">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114458" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_-9"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067-5" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069-0" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071-8" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_-1">
- <polygon
- points="-613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 -590.704,196.685 -571.658,196.685 -571.658,188.287 "
- id="use82064-3" />
- </clipPath>
- <clipPath
- id="SVGID_4511_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010-2" />
- </clipPath>
- <clipPath
- id="clipPath114469">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114471" />
- </clipPath>
- <clipPath
- id="clipPath114473">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114475" />
- </clipPath>
- <clipPath
- id="clipPath114477">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114479" />
- </clipPath>
- <clipPath
- id="clipPath114481">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114483" />
- </clipPath>
- <clipPath
- id="clipPath114485">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114487" />
- </clipPath>
- <clipPath
- id="clipPath114489">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114491" />
- </clipPath>
- <clipPath
- id="clipPath114493">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use114495" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534-0"
- xlink:href="#SVGID_4509_-4"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4509_-4"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994-0" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996-4" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998-3" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_-0">
- <polygon
- points="-680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 -657.048,196.685 -638.002,196.685 -638.002,188.287 "
- id="use81991-1" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient115446"
- xlink:href="#SVGID_4509_-4"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4657_-1-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-8-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-8-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-1-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4655_-2-7"
- overflow="visible"
- id="use83097-8-0" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-0-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-2-6" />
- </clipPath>
- <clipPath
- id="clipPath118798">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use118800" />
- </clipPath>
- <defs
- id="defs83093-1-3">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4655_-2-7"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102313-6-0">
- <use
- id="use102315-6-2"
- overflow="visible"
- xlink:href="#SVGID_4655_-2-7"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102317-9-1">
- <stop
- id="stop102319-7-7"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102321-3-3"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <clipPath
- id="SVGID_4873_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84798-79" />
- </clipPath>
- <clipPath
- id="clipPath119610">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119612" />
- </clipPath>
- <clipPath
- id="SVGID_4875_-5">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84810-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4878_-3"
- gradientUnits="userSpaceOnUse"
- x1="40.563"
- y1="147.0757"
- x2="41.563"
- y2="147.0757"
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84821-4" />
- <stop
- offset="0.486"
- style="stop-color:#B0D2D9"
- id="stop84823-2" />
- <stop
- offset="0.8287"
- style="stop-color:#E6EFF1"
- id="stop84825-99" />
- <stop
- offset="0.9939"
- style="stop-color:#FFFFFF"
- id="stop84827-79" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84829-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4877_-3">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="use84818-5" />
- </clipPath>
- <clipPath
- id="clipPath119624">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119626" />
- </clipPath>
- <clipPath
- id="SVGID_4880_-1">
- <rect
- height="10.152"
- width="174.94701"
- y="360.13901"
- x="-679.88898"
- id="use84841-0" />
- </clipPath>
- <clipPath
- id="SVGID_4882_-6">
- <rect
- height="10.153"
- width="174.94701"
- y="360.138"
- x="-679.88898"
- id="use84849-7" />
- </clipPath>
- <clipPath
- id="clipPath119632">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119634" />
- </clipPath>
- <clipPath
- id="clipPath119636">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119638" />
- </clipPath>
- <linearGradient
- id="SVGID_4871_-0"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84774-61" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84776-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4870_-2">
- <polygon
- points="-654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 -656.715,276.108 "
- id="use84771-1" />
- </clipPath>
- <clipPath
- id="SVGID_4868_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84759-44" />
- </clipPath>
- <clipPath
- id="clipPath119647">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119649" />
- </clipPath>
- <linearGradient
- id="SVGID_4866_-5"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84735-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84737-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4865_-0">
- <polygon
- points="-588.288,278.632 -574.322,278.632 -574.322,273.567 -588.288,273.567 -590.081,276.108 "
- id="use84732-6" />
- </clipPath>
- <clipPath
- id="SVGID_4863_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84720-5" />
- </clipPath>
- <clipPath
- id="clipPath119658">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119660" />
- </clipPath>
- <linearGradient
- id="SVGID_4851_-8"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205101"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84622-0" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84624-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4850_-19">
- <polygon
- points="-588.288,208.524 -574.322,208.524 -574.322,203.458 -588.288,203.458 -590.081,206 "
- id="use84619-38" />
- </clipPath>
- <clipPath
- id="SVGID_4848_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84607-8" />
- </clipPath>
- <clipPath
- id="clipPath119669">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119671" />
- </clipPath>
- <linearGradient
- id="SVGID_4846_-3"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205101"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84585-6" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84587-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4845_-4">
- <polygon
- points="-654.922,208.524 -640.956,208.524 -640.956,203.458 -654.922,203.458 -656.715,206 "
- id="use84582-3" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-6" />
- </clipPath>
- <clipPath
- id="clipPath119680">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119682" />
- </clipPath>
- <clipPath
- id="clipPath119684">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119686" />
- </clipPath>
- <clipPath
- id="clipPath119688">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119690" />
- </clipPath>
- <clipPath
- id="clipPath119692">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119694" />
- </clipPath>
- <clipPath
- id="clipPath119696">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119698" />
- </clipPath>
- <clipPath
- id="clipPath119700">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119702" />
- </clipPath>
- <clipPath
- id="clipPath119704">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use119706" />
- </clipPath>
- <clipPath
- id="SVGID_4838_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84445-4" />
- </clipPath>
- <clipPath
- id="clipPath119710">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119712" />
- </clipPath>
- <clipPath
- id="clipPath119714">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119716" />
- </clipPath>
- <clipPath
- id="clipPath119718">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119720" />
- </clipPath>
- <clipPath
- id="clipPath119722">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119724" />
- </clipPath>
- <clipPath
- id="clipPath119726">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119728" />
- </clipPath>
- <clipPath
- id="clipPath119730">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119732" />
- </clipPath>
- <clipPath
- id="clipPath119734">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119736" />
- </clipPath>
- <clipPath
- id="clipPath119738">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119740" />
- </clipPath>
- <clipPath
- id="clipPath119742">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119744" />
- </clipPath>
- <clipPath
- id="clipPath119746">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119748" />
- </clipPath>
- <linearGradient
- id="SVGID_4836_-1"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.8129"
- x2="37.392799"
- y2="152.8129"
- gradientTransform="matrix(0,-9.614,-9.614,0,876.3496,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84423-5" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84425-7" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84427-8" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84429-1" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84431-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4835_-3">
- <rect
- height="9.6140003"
- width="11.315"
- y="214.106"
- x="-598.45099"
- id="use84420-1" />
- </clipPath>
- <clipPath
- id="SVGID_4833_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84390-5" />
- </clipPath>
- <clipPath
- id="clipPath119760">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119762" />
- </clipPath>
- <clipPath
- id="clipPath119764">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119766" />
- </clipPath>
- <clipPath
- id="clipPath119768">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119770" />
- </clipPath>
- <clipPath
- id="clipPath119772">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119774" />
- </clipPath>
- <clipPath
- id="clipPath119776">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119778" />
- </clipPath>
- <clipPath
- id="clipPath119780">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119782" />
- </clipPath>
- <clipPath
- id="clipPath119784">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119786" />
- </clipPath>
- <clipPath
- id="clipPath119788">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119790" />
- </clipPath>
- <clipPath
- id="clipPath119792">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119794" />
- </clipPath>
- <clipPath
- id="clipPath119796">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119798" />
- </clipPath>
- <linearGradient
- id="SVGID_4831_-9"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,809.7396,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84368-1" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84370-0" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84372-8" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84374-42" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84376-15" />
- </linearGradient>
- <clipPath
- id="SVGID_4830_-5">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-665.06201"
- id="use84365-9" />
- </clipPath>
- <linearGradient
- id="SVGID_4828_-6"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84329-5" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84331-2" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84333-3" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84335-9" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84337-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4827_-8">
- <polygon
- points="-636.356,251.283 -636.358,231.934 -682.207,231.929 -682.208,251.221 -659.342,256.788 "
- id="use84326-1" />
- </clipPath>
- <linearGradient
- id="SVGID_4825_-4"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop84298-1" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop84300-7" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop84302-5" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop84304-7" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop84306-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4824_-6">
- <polygon
- points="-569.802,251.283 -569.804,231.934 -615.653,231.929 -615.653,251.221 -592.788,256.788 "
- id="use84295-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4787_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop84010-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop84012-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4786_-2">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use84007-5"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4784_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83987-5" />
- </clipPath>
- <clipPath
- id="clipPath119831">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119833" />
- </clipPath>
- <clipPath
- id="clipPath119835">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119837" />
- </clipPath>
- <clipPath
- id="clipPath119839">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119841" />
- </clipPath>
- <clipPath
- id="clipPath119843">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119845" />
- </clipPath>
- <clipPath
- id="clipPath119847">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119849" />
- </clipPath>
- <linearGradient
- id="SVGID_4782_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83975-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83977-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4781_-1">
- <path
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83972-45"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4779_-85">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83952-3" />
- </clipPath>
- <clipPath
- id="clipPath119858">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119860" />
- </clipPath>
- <clipPath
- id="clipPath119862">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119864" />
- </clipPath>
- <clipPath
- id="clipPath119866">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119868" />
- </clipPath>
- <clipPath
- id="clipPath119870">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119872" />
- </clipPath>
- <clipPath
- id="clipPath119874">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119876" />
- </clipPath>
- <linearGradient
- id="SVGID_4777_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83940-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83942-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4776_-7">
- <path
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83937-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4774_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83917-8" />
- </clipPath>
- <clipPath
- id="clipPath119885">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119887" />
- </clipPath>
- <clipPath
- id="clipPath119889">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119891" />
- </clipPath>
- <clipPath
- id="clipPath119893">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119895" />
- </clipPath>
- <clipPath
- id="clipPath119897">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119899" />
- </clipPath>
- <clipPath
- id="clipPath119901">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119903" />
- </clipPath>
- <linearGradient
- id="SVGID_4772_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83905-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83907-6" />
- </linearGradient>
- <clipPath
- id="SVGID_4771_-2">
- <path
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692"
- id="use83902-70"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4769_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83882-7" />
- </clipPath>
- <clipPath
- id="clipPath119912">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119914" />
- </clipPath>
- <clipPath
- id="clipPath119916">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119918" />
- </clipPath>
- <clipPath
- id="clipPath119920">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119922" />
- </clipPath>
- <clipPath
- id="clipPath119924">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119926" />
- </clipPath>
- <clipPath
- id="clipPath119928">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119930" />
- </clipPath>
- <linearGradient
- id="SVGID_4767_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83870-91" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83872-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4766_-6">
- <path
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83867-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4764_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83847-4" />
- </clipPath>
- <clipPath
- id="clipPath119939">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119941" />
- </clipPath>
- <clipPath
- id="clipPath119943">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119945" />
- </clipPath>
- <clipPath
- id="clipPath119947">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119949" />
- </clipPath>
- <clipPath
- id="clipPath119951">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119953" />
- </clipPath>
- <clipPath
- id="clipPath119955">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119957" />
- </clipPath>
- <linearGradient
- id="SVGID_4762_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3541"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83835-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83837-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4761_-3">
- <path
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83832-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4759_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83812-8" />
- </clipPath>
- <clipPath
- id="clipPath119966">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119968" />
- </clipPath>
- <clipPath
- id="clipPath119970">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119972" />
- </clipPath>
- <clipPath
- id="clipPath119974">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119976" />
- </clipPath>
- <clipPath
- id="clipPath119978">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119980" />
- </clipPath>
- <clipPath
- id="clipPath119982">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119984" />
- </clipPath>
- <linearGradient
- id="SVGID_4757_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3541"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83800-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83802-76" />
- </linearGradient>
- <clipPath
- id="SVGID_4756_-1">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83797-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4754_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83777-9" />
- </clipPath>
- <clipPath
- id="clipPath119993">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119995" />
- </clipPath>
- <clipPath
- id="clipPath119997">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use119999" />
- </clipPath>
- <clipPath
- id="clipPath120001">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120003" />
- </clipPath>
- <clipPath
- id="clipPath120005">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120007" />
- </clipPath>
- <clipPath
- id="clipPath120009">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120011" />
- </clipPath>
- <linearGradient
- id="SVGID_4752_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3541"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83765-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83767-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4751_-6">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83762-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4749_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83742-4" />
- </clipPath>
- <clipPath
- id="clipPath120020">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120022" />
- </clipPath>
- <clipPath
- id="clipPath120024">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120026" />
- </clipPath>
- <clipPath
- id="clipPath120028">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120030" />
- </clipPath>
- <clipPath
- id="clipPath120032">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120034" />
- </clipPath>
- <clipPath
- id="clipPath120036">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120038" />
- </clipPath>
- <linearGradient
- id="SVGID_4722_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83555-85" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83557-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4721_-8">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="use83552-2"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4719_-85">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83532-8" />
- </clipPath>
- <clipPath
- id="clipPath120047">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120049" />
- </clipPath>
- <clipPath
- id="clipPath120051">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120053" />
- </clipPath>
- <clipPath
- id="clipPath120055">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120057" />
- </clipPath>
- <clipPath
- id="clipPath120059">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120061" />
- </clipPath>
- <clipPath
- id="clipPath120063">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120065" />
- </clipPath>
- <linearGradient
- id="SVGID_4717_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83520-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83522-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4716_-0">
- <path
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83517-0"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4714_-3">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83497-8" />
- </clipPath>
- <clipPath
- id="clipPath120074">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120076" />
- </clipPath>
- <clipPath
- id="clipPath120078">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120080" />
- </clipPath>
- <clipPath
- id="clipPath120082">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120084" />
- </clipPath>
- <clipPath
- id="clipPath120086">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120088" />
- </clipPath>
- <clipPath
- id="clipPath120090">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120092" />
- </clipPath>
- <linearGradient
- id="SVGID_4712_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83485-7" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83487-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4711_-68">
- <path
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83482-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4709_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83462-0" />
- </clipPath>
- <clipPath
- id="clipPath120101">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120103" />
- </clipPath>
- <clipPath
- id="clipPath120105">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120107" />
- </clipPath>
- <clipPath
- id="clipPath120109">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120111" />
- </clipPath>
- <clipPath
- id="clipPath120113">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120115" />
- </clipPath>
- <clipPath
- id="clipPath120117">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120119" />
- </clipPath>
- <linearGradient
- id="SVGID_4707_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.3544"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83450-77" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83452-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4706_-2">
- <path
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83447-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4704_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83427-3" />
- </clipPath>
- <clipPath
- id="clipPath120128">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120130" />
- </clipPath>
- <clipPath
- id="clipPath120132">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120134" />
- </clipPath>
- <clipPath
- id="clipPath120136">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120138" />
- </clipPath>
- <clipPath
- id="clipPath120140">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120142" />
- </clipPath>
- <clipPath
- id="clipPath120144">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120146" />
- </clipPath>
- <linearGradient
- id="SVGID_4702_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.42999"
- x2="256.3544"
- y2="-148.42999"
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83415-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83417-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4701_-5">
- <path
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83412-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4699_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83392-3" />
- </clipPath>
- <clipPath
- id="clipPath120155">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120157" />
- </clipPath>
- <clipPath
- id="clipPath120159">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120161" />
- </clipPath>
- <clipPath
- id="clipPath120163">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120165" />
- </clipPath>
- <clipPath
- id="clipPath120167">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120169" />
- </clipPath>
- <clipPath
- id="clipPath120171">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120173" />
- </clipPath>
- <linearGradient
- id="SVGID_4697_-62"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4299"
- x2="256.35419"
- y2="-148.4299"
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83380-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83382-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4696_-20">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83377-7"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4694_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83357-2" />
- </clipPath>
- <clipPath
- id="clipPath120182">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120184" />
- </clipPath>
- <clipPath
- id="clipPath120186">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120188" />
- </clipPath>
- <clipPath
- id="clipPath120190">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120192" />
- </clipPath>
- <clipPath
- id="clipPath120194">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120196" />
- </clipPath>
- <clipPath
- id="clipPath120198">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120200" />
- </clipPath>
- <linearGradient
- id="SVGID_4692_-7"
- gradientUnits="userSpaceOnUse"
- x1="255.3541"
- y1="-148.4301"
- x2="256.3544"
- y2="-148.4301"
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83345-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83347-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4691_-7">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="use83342-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4689_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83322-7" />
- </clipPath>
- <clipPath
- id="clipPath120209">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120211" />
- </clipPath>
- <clipPath
- id="clipPath120213">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120215" />
- </clipPath>
- <clipPath
- id="clipPath120217">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120219" />
- </clipPath>
- <clipPath
- id="clipPath120221">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120223" />
- </clipPath>
- <clipPath
- id="clipPath120225">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120227" />
- </clipPath>
- <linearGradient
- id="SVGID_4657_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83100-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83102-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4656_-7">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="use83097-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4654_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83077-8" />
- </clipPath>
- <clipPath
- id="clipPath120236">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120238" />
- </clipPath>
- <clipPath
- id="clipPath120240">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120242" />
- </clipPath>
- <clipPath
- id="clipPath120244">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120246" />
- </clipPath>
- <clipPath
- id="clipPath120248">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120250" />
- </clipPath>
- <clipPath
- id="clipPath120252">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120254" />
- </clipPath>
- <linearGradient
- id="SVGID_4652_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83065-42" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83067-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4651_-1">
- <path
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use83062-1"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4649_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83042-49" />
- </clipPath>
- <clipPath
- id="clipPath120263">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120265" />
- </clipPath>
- <clipPath
- id="clipPath120267">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120269" />
- </clipPath>
- <clipPath
- id="clipPath120271">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120273" />
- </clipPath>
- <clipPath
- id="clipPath120275">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120277" />
- </clipPath>
- <clipPath
- id="clipPath120279">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120281" />
- </clipPath>
- <linearGradient
- id="SVGID_4647_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop83030-6" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop83032-35" />
- </linearGradient>
- <clipPath
- id="SVGID_4646_-8">
- <path
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69"
- id="use83027-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4644_-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use83007-0" />
- </clipPath>
- <clipPath
- id="clipPath120290">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120292" />
- </clipPath>
- <clipPath
- id="clipPath120294">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120296" />
- </clipPath>
- <clipPath
- id="clipPath120298">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120300" />
- </clipPath>
- <clipPath
- id="clipPath120302">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120304" />
- </clipPath>
- <clipPath
- id="clipPath120306">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120308" />
- </clipPath>
- <linearGradient
- id="SVGID_4642_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46001"
- x2="256.37631"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82995-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82997-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4641_-9">
- <path
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82992-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4639_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82972-97" />
- </clipPath>
- <clipPath
- id="clipPath120317">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120319" />
- </clipPath>
- <clipPath
- id="clipPath120321">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120323" />
- </clipPath>
- <clipPath
- id="clipPath120325">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120327" />
- </clipPath>
- <clipPath
- id="clipPath120329">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120331" />
- </clipPath>
- <clipPath
- id="clipPath120333">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120335" />
- </clipPath>
- <linearGradient
- id="SVGID_4637_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82960-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82962-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4636_-2">
- <path
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82957-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4634_-2">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82937-3" />
- </clipPath>
- <clipPath
- id="clipPath120344">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120346" />
- </clipPath>
- <clipPath
- id="clipPath120348">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120350" />
- </clipPath>
- <clipPath
- id="clipPath120352">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120354" />
- </clipPath>
- <clipPath
- id="clipPath120356">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120358" />
- </clipPath>
- <clipPath
- id="clipPath120360">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120362" />
- </clipPath>
- <linearGradient
- id="SVGID_4632_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.4601"
- x2="256.37631"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82925-64" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82927-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4631_-9">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82922-36"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4629_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82902-4" />
- </clipPath>
- <clipPath
- id="clipPath120371">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120373" />
- </clipPath>
- <clipPath
- id="clipPath120375">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120377" />
- </clipPath>
- <clipPath
- id="clipPath120379">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120381" />
- </clipPath>
- <clipPath
- id="clipPath120383">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120385" />
- </clipPath>
- <clipPath
- id="clipPath120387">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120389" />
- </clipPath>
- <linearGradient
- id="SVGID_4627_-4"
- gradientUnits="userSpaceOnUse"
- x1="255.37621"
- y1="-148.46021"
- x2="256.37631"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82890-4" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82892-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4626_-2">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="use82887-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4624_-1">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82867-2" />
- </clipPath>
- <clipPath
- id="clipPath120398">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120400" />
- </clipPath>
- <clipPath
- id="clipPath120402">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120404" />
- </clipPath>
- <clipPath
- id="clipPath120406">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120408" />
- </clipPath>
- <clipPath
- id="clipPath120410">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120412" />
- </clipPath>
- <clipPath
- id="clipPath120414">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120416" />
- </clipPath>
- <linearGradient
- id="SVGID_4592_-1"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82645-1" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82647-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4591_-1">
- <path
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="use82642-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4589_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82622-0" />
- </clipPath>
- <clipPath
- id="clipPath120425">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120427" />
- </clipPath>
- <clipPath
- id="clipPath120429">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120431" />
- </clipPath>
- <clipPath
- id="clipPath120433">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120435" />
- </clipPath>
- <clipPath
- id="clipPath120437">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120439" />
- </clipPath>
- <clipPath
- id="clipPath120441">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120443" />
- </clipPath>
- <linearGradient
- id="SVGID_4587_-3"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82610-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82612-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4586_-7">
- <path
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82607-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4584_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82587-1" />
- </clipPath>
- <clipPath
- id="clipPath120452">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120454" />
- </clipPath>
- <clipPath
- id="clipPath120456">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120458" />
- </clipPath>
- <clipPath
- id="clipPath120460">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120462" />
- </clipPath>
- <clipPath
- id="clipPath120464">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120466" />
- </clipPath>
- <clipPath
- id="clipPath120468">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120470" />
- </clipPath>
- <linearGradient
- id="SVGID_4582_-6"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82575-5" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82577-03" />
- </linearGradient>
- <clipPath
- id="SVGID_4581_-7">
- <path
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82572-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4579_-65">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82552-0" />
- </clipPath>
- <clipPath
- id="clipPath120479">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120481" />
- </clipPath>
- <clipPath
- id="clipPath120483">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120485" />
- </clipPath>
- <clipPath
- id="clipPath120487">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120489" />
- </clipPath>
- <clipPath
- id="clipPath120491">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120493" />
- </clipPath>
- <clipPath
- id="clipPath120495">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120497" />
- </clipPath>
- <linearGradient
- id="SVGID_4577_-2"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82540-0" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82542-7" />
- </linearGradient>
- <clipPath
- id="SVGID_4576_-5">
- <path
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69"
- id="use82537-4"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4574_-6">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82517-7" />
- </clipPath>
- <clipPath
- id="clipPath120506">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120508" />
- </clipPath>
- <clipPath
- id="clipPath120510">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120512" />
- </clipPath>
- <clipPath
- id="clipPath120514">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120516" />
- </clipPath>
- <clipPath
- id="clipPath120518">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120520" />
- </clipPath>
- <clipPath
- id="clipPath120522">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120524" />
- </clipPath>
- <linearGradient
- id="SVGID_4572_-9"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46001"
- x2="256.3761"
- y2="-148.46001"
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82505-8" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82507-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4571_-3">
- <path
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82502-9"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4569_-54">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82482-1" />
- </clipPath>
- <clipPath
- id="clipPath120533">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120535" />
- </clipPath>
- <clipPath
- id="clipPath120537">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120539" />
- </clipPath>
- <clipPath
- id="clipPath120541">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120543" />
- </clipPath>
- <clipPath
- id="clipPath120545">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120547" />
- </clipPath>
- <clipPath
- id="clipPath120549">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120551" />
- </clipPath>
- <linearGradient
- id="SVGID_4567_-8"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82470-3" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82472-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4566_-8">
- <path
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82467-6"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82447-9" />
- </clipPath>
- <clipPath
- id="clipPath120560">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120562" />
- </clipPath>
- <clipPath
- id="clipPath120564">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120566" />
- </clipPath>
- <clipPath
- id="clipPath120568">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120570" />
- </clipPath>
- <clipPath
- id="clipPath120572">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120574" />
- </clipPath>
- <clipPath
- id="clipPath120576">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120578" />
- </clipPath>
- <linearGradient
- id="SVGID_4562_-5"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.4601"
- x2="256.3761"
- y2="-148.4601"
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82435-29" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82437-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4561_-11">
- <path
- d="m -660.642,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82432-8"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-7">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-1" />
- </clipPath>
- <clipPath
- id="clipPath120587">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120589" />
- </clipPath>
- <clipPath
- id="clipPath120591">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120593" />
- </clipPath>
- <clipPath
- id="clipPath120595">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120597" />
- </clipPath>
- <clipPath
- id="clipPath120599">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120601" />
- </clipPath>
- <clipPath
- id="clipPath120603">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120605" />
- </clipPath>
- <linearGradient
- id="SVGID_4557_-0"
- gradientUnits="userSpaceOnUse"
- x1="255.3761"
- y1="-148.46021"
- x2="256.3761"
- y2="-148.46021"
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82400-9" />
- <stop
- offset="1"
- style="stop-color:#81D1DB"
- id="stop82402-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4556_-7">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="use82397-3"
- inkscape:connector-curvature="0" />
- </clipPath>
- <clipPath
- id="SVGID_4552_-54">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82359-2" />
- </clipPath>
- <clipPath
- id="clipPath120614">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120616" />
- </clipPath>
- <clipPath
- id="SVGID_4550_-5">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82345-5" />
- </clipPath>
- <clipPath
- id="clipPath120620">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120622" />
- </clipPath>
- <linearGradient
- id="SVGID_4548_-8"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82319-6" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82321-0" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82323-4" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82325-70" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82327-00" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82329-8" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82331-67" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82333-8" />
- </linearGradient>
- <clipPath
- id="SVGID_4547_-3">
- <polygon
- points="-680.004,267.353 -637.65,267.32 -637.642,253.133 -659.18,258.293 -679.997,253.224 "
- id="use82316-0" />
- </clipPath>
- <linearGradient
- id="SVGID_4545_-93"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop82290-1" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop82292-0" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop82294-1" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop82296-0" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop82298-2" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop82300-3" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop82302-1" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82304-2" />
- </linearGradient>
- <clipPath
- id="SVGID_4544_-1">
- <polygon
- points="-613.908,267.353 -571.554,267.32 -571.547,253.133 -593.085,258.293 -613.901,253.224 "
- id="use82287-5" />
- </clipPath>
- <clipPath
- id="SVGID_4525_-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82164-7" />
- </clipPath>
- <clipPath
- id="SVGID_4527_-9">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82174-42" />
- </clipPath>
- <linearGradient
- id="SVGID_4530_-9"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82185-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82187-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4529_-4">
- <rect
- height="64.037003"
- width="174.953"
- y="293.367"
- x="-679.57202"
- id="use82182-9" />
- </clipPath>
- <clipPath
- id="clipPath120655">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use120657" />
- </clipPath>
- <clipPath
- id="SVGID_4532_-5">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="use82197-4" />
- </clipPath>
- <clipPath
- id="clipPath120661">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120663" />
- </clipPath>
- <clipPath
- id="SVGID_4534_-1">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82209-3" />
- </clipPath>
- <linearGradient
- id="SVGID_4537_-2"
- gradientUnits="userSpaceOnUse"
- x1="126.8011"
- y1="60.902401"
- x2="127.8011"
- y2="60.902401"
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop82220-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop82222-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4536_-89">
- <rect
- height="64.037003"
- width="45.659"
- y="293.367"
- x="-441.45999"
- id="use82217-3" />
- </clipPath>
- <clipPath
- id="clipPath120672">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use120674" />
- </clipPath>
- <clipPath
- id="SVGID_4539_-1">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="use82232-2" />
- </clipPath>
- <clipPath
- id="SVGID_4518_-35">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82083-3" />
- </clipPath>
- <clipPath
- id="clipPath120680">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120682" />
- </clipPath>
- <clipPath
- id="clipPath120684">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120686" />
- </clipPath>
- <clipPath
- id="clipPath120688">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120690" />
- </clipPath>
- <clipPath
- id="clipPath120692">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120694" />
- </clipPath>
- <clipPath
- id="clipPath120696">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120698" />
- </clipPath>
- <clipPath
- id="clipPath120700">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120702" />
- </clipPath>
- <clipPath
- id="clipPath120704">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120706" />
- </clipPath>
- <linearGradient
- id="SVGID_4516_-7"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,902.0769,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82067-0" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82069-6" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82071-2" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82073-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4515_-11">
- <polygon
- points="-590.704,196.685 -571.658,196.685 -571.658,188.287 -613.986,188.287 -613.986,196.684 -594.94,196.685 -592.822,198.478 "
- id="use82064-1" />
- </clipPath>
- <clipPath
- id="SVGID_4511_-38">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82010-5" />
- </clipPath>
- <clipPath
- id="clipPath120717">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120719" />
- </clipPath>
- <clipPath
- id="clipPath120721">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120723" />
- </clipPath>
- <clipPath
- id="clipPath120725">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120727" />
- </clipPath>
- <clipPath
- id="clipPath120729">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120731" />
- </clipPath>
- <clipPath
- id="clipPath120733">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120735" />
- </clipPath>
- <clipPath
- id="clipPath120737">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120739" />
- </clipPath>
- <clipPath
- id="clipPath120741">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use120743" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient104534-4"
- xlink:href="#SVGID_4509_-0"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4509_-0"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop81994-08" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop81996-2" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop81998-7" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82000-4" />
- </linearGradient>
- <clipPath
- id="SVGID_4508_-3">
- <polygon
- points="-657.048,196.685 -638.002,196.685 -638.002,188.287 -680.33,188.287 -680.33,196.684 -661.285,196.685 -659.167,198.478 "
- id="use81991-0" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,835.7324,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient121727"
- xlink:href="#SVGID_4509_-0"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200"
- id="linearGradient126204"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218"
- gradientUnits="userSpaceOnUse" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200"
- id="linearGradient126210"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-7"
- id="linearGradient126210-7"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-7"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-2" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126228"
- xlink:href="#linearGradient126200-7"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2"
- id="linearGradient126210-9"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126435"
- xlink:href="#linearGradient126200-2"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2"
- id="linearGradient126487"
- gradientUnits="userSpaceOnUse"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218"
- gradientTransform="translate(190.5,52.1205)" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2"
- id="linearGradient126520"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0"
- id="linearGradient126520-9"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2-0"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7-1" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientTransform="translate(190.5,52.1205)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126539"
- xlink:href="#linearGradient126200-2-0"
- inkscape:collect="always" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-2"
- id="linearGradient126520-4"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- id="linearGradient126200-2-2"
- osb:paint="solid">
- <stop
- style="stop-color:#ffffff;stop-opacity:1;"
- offset="0"
- id="stop126202-7-2" />
- </linearGradient>
- <linearGradient
- y2="442.86218"
- x2="219"
- y1="442.86218"
- x1="111"
- gradientTransform="translate(190.5,52.1205)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126539-0"
- xlink:href="#linearGradient126200-2-2"
- inkscape:collect="always" />
- <clipPath
- id="SVGID_4843_-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-9" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-2" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-9" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-1-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-9-6" />
- </clipPath>
- <clipPath
- id="SVGID_4843_-9-6-8-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4842_"
- overflow="visible"
- id="use84500-60-1-2-2" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_"
- overflow="visible"
- id="use84656-1" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use84644-1" />
- </clipPath>
- <clipPath
- id="clipPath126768">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use126770" />
- </clipPath>
- <linearGradient
- id="SVGID_4841_-7"
- gradientUnits="userSpaceOnUse"
- x1="36.392799"
- y1="152.813"
- x2="37.392799"
- y2="152.813"
- gradientTransform="matrix(0,-9.614,-9.614,0,942.8785,573.6009)">
- <stop
- offset="0"
- style="stop-color:#5E6A71"
- id="stop84478-8" />
- <stop
- offset="0.1421"
- style="stop-color:#667077"
- id="stop84480-2" />
- <stop
- offset="0.3823"
- style="stop-color:#7A8187"
- id="stop84482-3" />
- <stop
- offset="0.6911"
- style="stop-color:#9EA1A6"
- id="stop84484-9" />
- <stop
- offset="1"
- style="stop-color:#CECED1"
- id="stop84486-5" />
- </linearGradient>
- <clipPath
- id="SVGID_4840_-7">
- <rect
- height="9.6140003"
- width="11.316"
- y="214.106"
- x="-531.92297"
- id="use84475-9" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use82132-5" />
- </clipPath>
- <clipPath
- id="clipPath126782">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126784" />
- </clipPath>
- <clipPath
- id="clipPath126786">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126788" />
- </clipPath>
- <clipPath
- id="clipPath126790">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126792" />
- </clipPath>
- <clipPath
- id="clipPath126794">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126796" />
- </clipPath>
- <clipPath
- id="clipPath126798">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126800" />
- </clipPath>
- <clipPath
- id="clipPath126802">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126804" />
- </clipPath>
- <clipPath
- id="clipPath126806">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126808" />
- </clipPath>
- <linearGradient
- id="SVGID_4521_-3"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_"
- overflow="visible"
- id="use82113-2" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904"
- xlink:href="#SVGID_4521_-3"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4856_-4-6"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-0" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-9" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-2">
- <polygon
- points="-507.673,203.458 -521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 "
- id="use84656-1-4" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use84644-1-3" />
- </clipPath>
- <clipPath
- id="clipPath127140">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127142" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82132-5-2" />
- </clipPath>
- <clipPath
- id="clipPath127146">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127148" />
- </clipPath>
- <clipPath
- id="clipPath127150">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127152" />
- </clipPath>
- <clipPath
- id="clipPath127154">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127156" />
- </clipPath>
- <clipPath
- id="clipPath127158">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127160" />
- </clipPath>
- <clipPath
- id="clipPath127162">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127164" />
- </clipPath>
- <clipPath
- id="clipPath127166">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127168" />
- </clipPath>
- <clipPath
- id="clipPath127170">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use127172" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-6"
- xlink:href="#SVGID_4521_-3-3"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-3"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-3" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-5" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-4" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-3" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-3">
- <polygon
- points="-524.02,196.685 -504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 "
- id="use82113-2-8" />
- </clipPath>
- <linearGradient
- id="SVGID_4856_-4-1"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop84659-2-9" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop84661-1-0" />
- </linearGradient>
- <clipPath
- id="SVGID_4855_-2-24">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_-1"
- overflow="visible"
- id="use84656-1-9" />
- </clipPath>
- <clipPath
- id="SVGID_4853_-8-0">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_-4"
- overflow="visible"
- id="use84644-1-6" />
- </clipPath>
- <clipPath
- id="clipPath9068">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_-4"
- overflow="visible"
- id="use9070" />
- </clipPath>
- <clipPath
- id="SVGID_4523_-1-5">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use82132-5-25" />
- </clipPath>
- <clipPath
- id="clipPath9074">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9076" />
- </clipPath>
- <clipPath
- id="clipPath9078">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9080" />
- </clipPath>
- <clipPath
- id="clipPath9082">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9084" />
- </clipPath>
- <clipPath
- id="clipPath9086">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9088" />
- </clipPath>
- <clipPath
- id="clipPath9090">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9092" />
- </clipPath>
- <clipPath
- id="clipPath9094">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9096" />
- </clipPath>
- <clipPath
- id="clipPath9098">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_-8"
- overflow="visible"
- id="use9100" />
- </clipPath>
- <linearGradient
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126904-61"
- xlink:href="#SVGID_4521_-3-0"
- inkscape:collect="always" />
- <linearGradient
- id="SVGID_4521_-3-0"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop82116-6-7" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop82118-6-2" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop82120-5-1" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop82122-9-34" />
- </linearGradient>
- <clipPath
- id="SVGID_4520_-5-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_-5"
- overflow="visible"
- id="use82113-2-5" />
- </clipPath>
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0"
- id="linearGradient9379"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(190.5,52.1205)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <linearGradient
- inkscape:collect="always"
- xlink:href="#linearGradient126200-2-0"
- id="linearGradient9382"
- gradientUnits="userSpaceOnUse"
- gradientTransform="translate(28.50002,64.927434)"
- x1="111"
- y1="442.86218"
- x2="219"
- y2="442.86218" />
- <clipPath
- id="SVGID_4550_-6">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8"
- overflow="visible"
- id="use82345-0" />
- </clipPath>
- <clipPath
- id="clipPath9448">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8"
- overflow="visible"
- id="use9450" />
- </clipPath>
- <clipPath
- id="SVGID_4559_-4">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use82412-03" />
- </clipPath>
- <clipPath
- id="clipPath9526">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9528" />
- </clipPath>
- <clipPath
- id="clipPath9530">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9532" />
- </clipPath>
- <clipPath
- id="clipPath9534">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9536" />
- </clipPath>
- <clipPath
- id="clipPath9538">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9540" />
- </clipPath>
- <clipPath
- id="clipPath9542">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="use9544" />
- </clipPath>
- <defs
- id="defs82478">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4568_" />
- </defs>
- <clipPath
- id="clipPath101841">
- <use
- id="use101843"
- overflow="visible"
- xlink:href="#SVGID_4568_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <defs
- id="defs82443">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4563_" />
- </defs>
- <clipPath
- id="clipPath101814">
- <use
- id="use101816"
- overflow="visible"
- xlink:href="#SVGID_4563_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-2">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-4" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-2" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6" />
- </clipPath>
- <clipPath
- id="SVGID_4564_-7-9-3-4">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4563_"
- overflow="visible"
- id="use82447-2-1-6-0" />
- </clipPath>
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1.0729879"
- inkscape:cx="202.21003"
- inkscape:cy="536.61458"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- inkscape:window-width="1535"
- inkscape:window-height="876"
- inkscape:window-x="65"
- inkscape:window-y="24"
- inkscape:window-maximized="1" />
- <metadata
- id="metadata104541">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:1.0268178;stroke-miterlimit:10;stroke-dasharray:3.07565499, 3.07565499"
- stroke-miterlimit="10"
- x1="277.38089"
- y1="315.69797"
- x2="277.38089"
- y2="533.44318"
- id="line84244" />
- <rect
- style="fill:none;stroke:#5e6a71;stroke-width:0.48500001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
- id="rect125410-1-2"
- width="94.101288"
- height="87.10128"
- x="151.94936"
- y="418.6185" />
- <rect
- style="fill:url(#linearGradient9382);fill-opacity:1;stroke:none"
- id="rect126198-3-8"
- width="108"
- height="27"
- x="139.50002"
- y="494.28964" />
- <rect
- style="fill:#f15d57"
- x="75.523293"
- y="574.69031"
- width="95.778"
- height="3.0712502"
- id="rect82236"
- inkscape:transform-center-x="586.0074"
- inkscape:transform-center-y="-79.564828" />
- <rect
- style="fill:#f15d57"
- x="224.23932"
- y="574.69031"
- width="95.793755"
- height="3.0712502"
- id="rect82238"
- inkscape:transform-center-x="437.28349"
- inkscape:transform-center-y="-79.564828" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.48150003;stroke-miterlimit:10;stroke-dasharray:1.44225, 1.44225"
- stroke-miterlimit="10"
- x1="272.20041"
- y1="577.34521"
- x2="272.20041"
- y2="631.72772"
- id="line82244"
- inkscape:transform-center-x="437.21928"
- inkscape:transform-center-y="-51.254289" />
- <polyline
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10;stroke-dasharray:0.641, 0.641"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points=" -603.212,292.128 -603.212,283.832 -582.187,283.832 -582.187,292.128 "
- id="polyline82246"
- inkscape:transform-center-x="437.22048"
- inkscape:transform-center-y="-33.395941" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82281"
- inkscape:transform-center-x="437.2835"
- inkscape:transform-center-y="-95.804196">
- <defs
- id="defs82283">
- <polygon
- id="SVGID_4543_"
- points="-613.901,253.224 -613.908,267.353 -571.554,267.32 -571.547,253.133 -593.085,258.293 " />
- </defs>
- <clipPath
- id="clipPath101684">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4543_"
- overflow="visible"
- id="use101686" />
- </clipPath>
- <linearGradient
- id="linearGradient101688"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1321.2666,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101690" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop101692" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop101694" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop101696" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop101698" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop101700" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop101702" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101704" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4545_)"
- x="-613.90802"
- y="253.133"
- clip-path="url(#SVGID_4544_)"
- width="42.361"
- height="14.22"
- id="rect82306" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 319.54934,544.29505 -0.0157,31.37625 -94.815,0.072 0.0157,-31.2435 46.48275,11.31975 0.1125,0.027 0.11475,-0.027 48.105,-11.5245 z m 0.4815,-0.60975 -48.699,11.66625 -47.079,-11.46375 -0.0135,32.337 95.77575,-0.0743 0.0158,-32.46525 z"
- id="path82308"
- inkscape:transform-center-x="437.28456"
- inkscape:transform-center-y="-95.835733" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g82310"
- inkscape:transform-center-x="585.9972"
- inkscape:transform-center-y="-95.804196">
- <defs
- id="defs82312">
- <polygon
- id="SVGID_4546_"
- points="-679.997,253.224 -680.004,267.353 -637.65,267.32 -637.642,253.133 -659.18,258.293 " />
- </defs>
- <clipPath
- id="clipPath101711">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4546_"
- overflow="visible"
- id="use101713" />
- </clipPath>
- <linearGradient
- id="linearGradient101715"
- gradientUnits="userSpaceOnUse"
- x1="76.3899"
- y1="97.785698"
- x2="77.3899"
- y2="97.785698"
- gradientTransform="matrix(0,-19.5733,-19.5733,0,1255.1711,1762.5587)">
- <stop
- offset="0"
- style="stop-color:#55AEB9"
- id="stop101717" />
- <stop
- offset="0.0507"
- style="stop-color:#68B4BF"
- id="stop101719" />
- <stop
- offset="0.2116"
- style="stop-color:#96C6CF"
- id="stop101721" />
- <stop
- offset="0.3736"
- style="stop-color:#BAD8DD"
- id="stop101723" />
- <stop
- offset="0.5342"
- style="stop-color:#D7E6EA"
- id="stop101725" />
- <stop
- offset="0.693"
- style="stop-color:#EBF2F3"
- id="stop101727" />
- <stop
- offset="0.8492"
- style="stop-color:#F8FBFB"
- id="stop101729" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop101731" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4548_)"
- x="-680.00299"
- y="253.133"
- clip-path="url(#SVGID_4547_)"
- width="42.361"
- height="14.22"
- id="rect82335" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 170.83559,544.29505 -0.0157,31.37625 -94.814996,0.072 0.01575,-31.2435 46.482736,11.31975 0.1125,0.027 0.11475,-0.027 48.10501,-11.5245 z m 0.4815,-0.60975 -48.699,11.66625 -47.078996,-11.46375 -0.0135,32.337 95.775746,-0.0743 0.0157,-32.46525 z"
- id="path82337"
- inkscape:transform-center-x="585.99834"
- inkscape:transform-center-y="-95.835733" />
- <text
- y="567.99066"
- x="104.52653"
- id="text84236"
- inkscape:transform-center-x="587.42372"
- inkscape:transform-center-y="-90.601429"
- style="font-size:27px">
- <tspan
- style="font-size:8px;fill:#37424b;font-family:ApexSans-Medium"
- x="104.52653"
- y="567.99066"
- font-size="3.4203"
- id="tspan84238">US-WEST</tspan>
- </text>
- <text
- y="567.99066"
- x="255.24185"
- id="text84246"
- inkscape:transform-center-x="438.70839"
- inkscape:transform-center-y="-90.601429"
- style="font-size:27px"
- inkscape:export-xdpi="90"
- inkscape:export-ydpi="90"
- inkscape:export-filename="/home/john/Pictures/zone-sync.png">
- <tspan
- style="font-size:8px;fill:#37424b;font-family:ApexSans-Medium"
- x="255.24185"
- y="567.99066"
- font-size="3.4203"
- id="tspan84248">US-EAST</tspan>
- </text>
- <rect
- style="fill:#f15d57"
- x="220.3154"
- y="492.99048"
- width="103.6395"
- height="3.8114998"
- id="rect84287"
- inkscape:transform-center-x="437.28453"
- inkscape:transform-center-y="-160.89453" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84289"
- inkscape:transform-center-x="437.28348"
- inkscape:transform-center-y="-131.54432">
- <defs
- id="defs84291">
- <polygon
- id="SVGID_4823_"
- points="-592.788,256.788 -569.802,251.283 -569.804,231.934 -615.653,231.929 -615.653,251.221 " />
- </defs>
- <clipPath
- id="clipPath103235">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4823_"
- overflow="visible"
- id="use103237" />
- </clipPath>
- <linearGradient
- id="linearGradient103239"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-668.057,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop103241" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop103243" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop103245" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop103247" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop103249" />
- </linearGradient>
- <polygon
- style="fill:url(#SVGID_4825_)"
- clip-path="url(#SVGID_4824_)"
- points="-615.683,231.929 -569.802,231.874 -569.772,256.788 -615.653,256.843 "
- id="polygon84308" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 220.79459,496.5208 102.67875,0.009 10e-4,43.1055 -51.4755,12.33 -51.20775,-12.46725 0.003,-42.97725 z m -0.4815,-0.4815 v 43.83675 l 51.687,12.58425 51.957,-12.44475 -0.005,-43.96725 -103.6395,-0.009 z"
- id="path84310"
- inkscape:transform-center-x="437.28484"
- inkscape:transform-center-y="-131.54096" />
- <text
- y="513.2843"
- x="243.95297"
- id="text84312"
- inkscape:transform-center-x="437.86922"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px">
- <tspan
- style="font-size:11px;fill:#37424b;font-family:ApexSans-Book"
- x="243.95297"
- y="513.2843"
- font-size="5.1244"
- id="tspan84314">RADOSGW</tspan>
- </text>
- <rect
- style="fill:#f15d57"
- x="70.568871"
- y="492.99048"
- width="103.6395"
- height="3.8114998"
- id="rect84318"
- inkscape:transform-center-x="587.03108"
- inkscape:transform-center-y="-160.89453" />
- <g
- id="g9328">
- <line
- id="line84244-3"
- y2="533.36865"
- x2="121.81088"
- y1="315.62341"
- x1="121.81088"
- stroke-miterlimit="10"
- style="fill:none;stroke:#5e6a71;stroke-width:1.0268178;stroke-miterlimit:10;stroke-dasharray:3.07565499, 3.07565499" />
- <g
- id="g82107-4"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs82109-6">
- <polygon
- points="-547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 -504.975,196.685 -504.975,188.287 "
- id="SVGID_4519_-5" />
- </defs>
- <clipPath
- id="clipPath126820-6">
- <use
- id="use126822-8"
- overflow="visible"
- xlink:href="#SVGID_4519_-5"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)"
- y2="146.6937"
- x2="41.840599"
- y1="146.6937"
- x1="40.840599"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126824-4">
- <stop
- id="stop126826-2"
- style="stop-color:#37424B"
- offset="0" />
- <stop
- id="stop126828-3"
- style="stop-color:#37424B"
- offset="0.12" />
- <stop
- id="stop126830-7"
- style="stop-color:#5E6A71"
- offset="0.88" />
- <stop
- id="stop126832-6"
- style="stop-color:#5E6A71"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82124-4"
- height="10.191"
- width="42.327"
- clip-path="url(#SVGID_4520_-5-6)"
- y="188.287"
- x="-547.302"
- style="fill:url(#linearGradient126904-61)" />
- </g>
- <g
- id="g82126-0"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs82128-8">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4522_-8" />
- </defs>
- <clipPath
- id="clipPath126838-9">
- <use
- id="use126840-87"
- overflow="visible"
- xlink:href="#SVGID_4522_-8"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82134-5"
- d="m -539.397,191.908 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.287,-0.642 0.64,-0.641 0.354,0 0.639,0.287 0.639,0.641 0,0.353 -0.285,0.639 -0.639,0.639"
- clip-path="url(#SVGID_4523_-1-5)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <path
- id="path82136-0"
- d="m -539.397,194.263 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.287,-0.642 0.64,-0.642 0.354,0 0.639,0.287 0.639,0.642 0,0.353 -0.285,0.639 -0.639,0.639"
- clip-path="url(#SVGID_4523_-1-5)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <circle
- id="circle82138-2"
- r="0.63999999"
- cy="191.26801"
- cx="-541.625"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5)"
- d="m -540.985,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- sodipodi:cx="-541.625"
- sodipodi:cy="191.26801"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82140-3"
- r="0.63999999"
- cy="193.623"
- cx="-541.625"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5)"
- d="m -540.985,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- sodipodi:cx="-541.625"
- sodipodi:cy="193.623"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82142-3"
- r="0.63999999"
- cy="191.26801"
- cx="-543.85303"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5)"
- d="m -543.21303,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- sodipodi:cx="-543.85303"
- sodipodi:cy="191.26801"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <circle
- id="circle82144-4"
- r="0.63999999"
- cy="193.623"
- cx="-543.854"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4523_-1-5)"
- d="m -543.214,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35347,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28653,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- sodipodi:cx="-543.854"
- sodipodi:cy="193.623"
- sodipodi:rx="0.63999999"
- sodipodi:ry="0.63999999"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- <path
- id="path82146-1"
- d="m -537.169,191.908 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.286,-0.642 0.64,-0.641 0.354,0 0.64,0.287 0.64,0.641 0,0.353 -0.286,0.639 -0.64,0.639"
- clip-path="url(#SVGID_4523_-1-5)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <path
- id="path82148-5"
- d="m -537.169,194.263 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.286,-0.642 0.64,-0.642 0.354,0 0.64,0.287 0.64,0.642 0,0.353 -0.286,0.639 -0.64,0.639"
- clip-path="url(#SVGID_4523_-1-5)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- </g>
- <text
- style="font-size:40.5px"
- id="text82150-7"
- x="112.11884"
- y="319.30515">
- <tspan
- id="tspan82152-4"
- font-size="3.2027"
- y="319.30515"
- x="112.11884"
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium">AP</tspan>
- <tspan
- id="tspan82154-9"
- font-size="3.2027"
- y="319.30515"
- x="125.80093"
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium">P</tspan>
- </text>
- <g
- id="g84638-4"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs84640-9">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4852_-4" />
- </defs>
- <clipPath
- id="clipPath126879-0">
- <use
- id="use126881-7"
- overflow="visible"
- xlink:href="#SVGID_4852_-4"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path84646-0"
- d="m -526.673,205.991 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4853_-8-0)"
- inkscape:connector-curvature="0"
- style="fill:#5e6a71" />
- <line
- id="line84648-6"
- y2="205.991"
- x2="-523.14398"
- y1="205.991"
- x1="-526.03998"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4853_-8-0)"
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10" />
- </g>
- <g
- id="g84650-5"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)">
- <defs
- id="defs84652-4">
- <polygon
- points="-521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 -507.673,203.458 "
- id="SVGID_4854_-1" />
- </defs>
- <clipPath
- id="clipPath126888-1">
- <use
- id="use126890-4"
- overflow="visible"
- xlink:href="#SVGID_4854_-1"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)"
- y2="249.94031"
- x2="-33.205101"
- y1="249.94031"
- x1="-34.205299"
- gradientUnits="userSpaceOnUse"
- id="linearGradient126892-7">
- <stop
- id="stop126894-5"
- style="stop-color:#E6E8E7"
- offset="0" />
- <stop
- id="stop126896-6"
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <rect
- id="rect84663-7"
- height="5.066"
- width="15.759"
- clip-path="url(#SVGID_4855_-2-24)"
- y="203.45799"
- x="-523.43201"
- style="fill:url(#SVGID_4856_-4-1)" />
- </g>
- <polygon
- id="polygon84665-6"
- points="-521.64,203.459 -523.433,206 -521.64,208.524 -507.674,208.524 -507.674,203.459 "
- stroke-miterlimit="10"
- transform="matrix(3.375,0,0,3.375,1898.5131,-334.69083)"
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10" />
- <text
- style="font-size:40.5px"
- id="text84667-5"
- x="151.0986"
- y="363.4711">
- <tspan
- id="tspan84669-5"
- font-size="2.5652"
- y="363.4711"
- x="151.0986"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">RE</tspan>
- <tspan
- id="tspan84671-5"
- font-size="2.5652"
- y="363.4711"
- x="160.27521"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">S</tspan>
- <tspan
- id="tspan84673-2"
- font-size="2.5652"
- y="363.4711"
- x="164.41296"
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book">T</tspan>
- </text>
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84320"
- inkscape:transform-center-x="587.03111"
- inkscape:transform-center-y="-131.54432">
- <defs
- id="defs84322">
- <polygon
- id="SVGID_4826_"
- points="-659.342,256.788 -636.356,251.283 -636.358,231.934 -682.207,231.929 -682.208,251.221 " />
- </defs>
- <clipPath
- id="clipPath103260">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4826_"
- overflow="visible"
- id="use103262" />
- </clipPath>
- <linearGradient
- id="linearGradient103264"
- gradientUnits="userSpaceOnUse"
- x1="145.3168"
- y1="2.8518"
- x2="146.3168"
- y2="2.8518"
- gradientTransform="matrix(0.0299,24.8865,24.8865,-0.0299,-734.6116,-3384.4426)">
- <stop
- offset="0"
- style="stop-color:#FFFFFF"
- id="stop103266" />
- <stop
- offset="0.23"
- style="stop-color:#FFFFFF"
- id="stop103268" />
- <stop
- offset="0.5671"
- style="stop-color:#F9F9F9"
- id="stop103270" />
- <stop
- offset="0.8674"
- style="stop-color:#EDEEEE"
- id="stop103272" />
- <stop
- offset="1"
- style="stop-color:#E6E8E7"
- id="stop103274" />
- </linearGradient>
- <polygon
- style="fill:url(#SVGID_4828_)"
- clip-path="url(#SVGID_4827_)"
- points="-682.238,231.929 -636.356,231.874 -636.326,256.788 -682.208,256.843 "
- id="polygon84339" />
- </g>
- <path
- style="fill:#e6e8e8"
- inkscape:connector-curvature="0"
- d="m 71.048094,496.5208 102.678746,0.009 10e-4,43.1055 -51.4755,12.33 -51.207746,-12.46725 0.0023,-42.97725 z m -0.4815,-0.4815 v 43.83675 l 51.686996,12.58425 51.957,-12.44475 -0.005,-43.96725 -103.639496,-0.009 z"
- id="path84341"
- inkscape:transform-center-x="587.03109"
- inkscape:transform-center-y="-131.54096" />
- <text
- y="513.2843"
- x="94.206009"
- id="text84343"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px">
- <tspan
- style="font-size:11px;fill:#37424b;font-family:ApexSans-Book"
- x="94.206009"
- y="513.2843"
- font-size="5.1244"
- id="tspan84345">RADOSGW</tspan>
- </text>
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.48150003;stroke-miterlimit:10;stroke-dasharray:1.44225, 1.44225"
- stroke-miterlimit="10"
- x1="122.29416"
- y1="577.34521"
- x2="122.29416"
- y2="631.72772"
- id="line84349"
- inkscape:transform-center-x="587.12555"
- inkscape:transform-center-y="-51.254289" />
- <polyline
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10;stroke-dasharray:0.641, 0.641"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points=" -669.837,292.128 -669.837,283.832 -648.812,283.832 -648.812,292.128 "
- id="polyline84351"
- inkscape:transform-center-x="587.12673"
- inkscape:transform-center-y="-33.395941" />
- <polygon
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- points="-659.319,269.217 -657.251,267.424 -661.37,267.424 "
- id="polygon84353"
- inkscape:transform-center-x="587.09523"
- inkscape:transform-center-y="-77.629816" />
- <polygon
- style="fill:#81d0db"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- points="-592.696,269.217 -590.628,267.424 -594.747,267.424 "
- id="polygon84355"
- inkscape:transform-center-x="437.19348"
- inkscape:transform-center-y="-77.629816" />
- <path
- id="path84524"
- d="m -365.856,302.434 c 0,-2.331 1.892,-4.222 4.225,-4.222 2.334,0 4.223,1.891 4.223,4.222 0,2.334 -1.889,4.226 -4.223,4.226 -2.333,0 -4.225,-1.892 -4.225,-4.226"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84526"
- d="m -361.631,301.547 c 0.488,0 0.888,0.398 0.888,0.887 0,0.493 -0.4,0.892 -0.888,0.89 -0.491,0 -0.888,-0.397 -0.888,-0.89 0,-0.489 0.397,-0.887 0.888,-0.887"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84528"
- d="m -347.575,299.54 c 0.487,0 0.886,0.395 0.886,0.886 0,0.494 -0.399,0.891 -0.886,0.891 -0.493,0 -0.888,-0.397 -0.888,-0.891 0,-0.491 0.395,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84530"
- d="m -350.839,302.809 c 0.49,0 0.886,0.397 0.886,0.886 0,0.494 -0.396,0.893 -0.886,0.893 -0.491,0 -0.889,-0.399 -0.889,-0.893 0,-0.489 0.398,-0.886 0.889,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84532"
- d="m -350.838,299.54 c 0.489,0 0.885,0.395 0.885,0.886 0,0.494 -0.396,0.891 -0.885,0.891 -0.492,0 -0.89,-0.397 -0.89,-0.891 0,-0.491 0.398,-0.886 0.89,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84534"
- d="m -347.576,302.809 c 0.488,0 0.888,0.397 0.888,0.886 0,0.494 -0.4,0.893 -0.888,0.893 -0.491,0 -0.888,-0.399 -0.888,-0.893 0,-0.489 0.397,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84536"
- d="m -344.311,302.809 c 0.488,0 0.886,0.397 0.886,0.886 0,0.494 -0.398,0.893 -0.886,0.893 -0.491,0 -0.888,-0.399 -0.888,-0.893 0,-0.489 0.397,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <path
- id="path84538"
- d="m -344.31,299.54 c 0.487,0 0.885,0.395 0.885,0.886 0,0.494 -0.398,0.891 -0.885,0.891 -0.492,0 -0.888,-0.397 -0.888,-0.891 0,-0.491 0.396,-0.886 0.888,-0.886"
- clip-path="url(#SVGID_4843_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84540"
- y2="308.98499"
- x2="-343.42499"
- y1="308.98499"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84542"
- y2="311.16699"
- x2="-343.42499"
- y1="311.16699"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <line
- id="line84544"
- y2="313.35001"
- x2="-343.42499"
- y1="313.35001"
- x1="-365.664"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4843_)"
- style="fill:none;stroke:#ffffff;stroke-width:0.428;stroke-miterlimit:10"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84564"
- points="-436.6,208.359 -434.532,206.566 -438.651,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84566"
- points="-426.089,208.359 -424.021,206.566 -428.14,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84568"
- points="-415.575,208.359 -413.507,206.566 -417.626,206.566 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <polygon
- id="polygon84570"
- points="-296.627,290.885 -294.559,289.091 -298.678,289.091 "
- clip-path="url(#SVGID_4843_)"
- style="fill:#f15d57"
- transform="matrix(1.5,0,0,1.5,1063.2832,192.41394)" />
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84714"
- inkscape:transform-center-x="434.5295"
- inkscape:transform-center-y="-60.127066">
- <defs
- id="defs84716">
- <rect
- id="SVGID_4862_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103539">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4862_"
- overflow="visible"
- id="use103541" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4863_)"
- d="m -593.321,276.099 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84722" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4863_)"
- stroke-miterlimit="10"
- x1="-592.68903"
- y1="276.099"
- x2="-589.79303"
- y2="276.099"
- id="line84724" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84726"
- inkscape:transform-center-x="413.59995"
- inkscape:transform-center-y="-60.127083">
- <defs
- id="defs84728">
- <polygon
- id="SVGID_4864_"
- points="-590.081,276.108 -588.288,278.632 -574.322,278.632 -574.322,273.567 -588.288,273.567 " />
- </defs>
- <clipPath
- id="clipPath103548">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4864_"
- overflow="visible"
- id="use103550" />
- </clipPath>
- <linearGradient
- id="linearGradient103552"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.9404"
- x2="-33.205299"
- y2="249.9404"
- gradientTransform="matrix(0,-5.065,-5.065,0,683.7546,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop103554" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103556" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4866_)"
- x="-590.08099"
- y="273.56699"
- clip-path="url(#SVGID_4865_)"
- width="15.759"
- height="5.0650001"
- id="rect84739" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points="-590.082,276.108 -588.289,278.632 -574.323,278.632 -574.323,273.567 -588.289,273.567 "
- id="polygon84741"
- inkscape:transform-center-x="413.60223"
- inkscape:transform-center-y="-60.127066" />
- <text
- y="597.62451"
- x="287.82977"
- id="text84743"
- inkscape:transform-center-x="412.33742"
- inkscape:transform-center-y="-60.270044"
- style="font-size:27px">
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="287.82977"
- y="597.62451"
- font-size="2.5652"
- id="tspan84745">N</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="291.70874"
- y="597.62451"
- font-size="2.5652"
- id="tspan84747">A</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="294.77774"
- y="597.62451"
- font-size="2.5652"
- id="tspan84749">TIV</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="302.49078"
- y="597.62451"
- font-size="2.5652"
- id="tspan84751">E</tspan>
- </text>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84753"
- inkscape:transform-center-x="584.45598"
- inkscape:transform-center-y="-60.127066">
- <defs
- id="defs84755">
- <rect
- id="SVGID_4867_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath103568">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4867_"
- overflow="visible"
- id="use103570" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4868_)"
- d="m -659.955,276.099 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84761" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4868_)"
- stroke-miterlimit="10"
- x1="-659.323"
- y1="276.099"
- x2="-656.427"
- y2="276.099"
- id="line84763" />
- </g>
- <g
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- id="g84765"
- inkscape:transform-center-x="563.5265"
- inkscape:transform-center-y="-60.127083">
- <defs
- id="defs84767">
- <polygon
- id="SVGID_4869_"
- points="-656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 " />
- </defs>
- <clipPath
- id="clipPath103577">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4869_"
- overflow="visible"
- id="use103579" />
- </clipPath>
- <linearGradient
- id="linearGradient103581"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94051"
- x2="-33.205299"
- y2="249.94051"
- gradientTransform="matrix(0,-5.065,-5.065,0,617.1209,105.3813)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop103583" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop103585" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4871_)"
- x="-656.71503"
- y="273.56699"
- clip-path="url(#SVGID_4870_)"
- width="15.759"
- height="5.0650001"
- id="rect84778" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- stroke-miterlimit="10"
- points="-656.715,276.108 -654.922,278.632 -640.956,278.632 -640.956,273.567 -654.922,273.567 "
- id="polygon84780"
- inkscape:transform-center-x="563.52648"
- inkscape:transform-center-y="-60.127066" />
- <text
- y="597.62451"
- x="137.9046"
- id="text84782"
- inkscape:transform-center-x="562.26258"
- inkscape:transform-center-y="-60.270044"
- style="font-size:27px">
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="137.9046"
- y="597.62451"
- font-size="2.5652"
- id="tspan84784">N</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="141.7836"
- y="597.62451"
- font-size="2.5652"
- id="tspan84786">A</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="144.85263"
- y="597.62451"
- font-size="2.5652"
- id="tspan84788">TIV</tspan>
- <tspan
- style="font-size:5.77170038px;fill:#5e6a71;font-family:ApexSans-Book"
- x="152.56561"
- y="597.62451"
- font-size="2.5652"
- id="tspan84790">E</tspan>
- </text>
- <text
- xml:space="preserve"
- style="font-size:8px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="285.86542"
- y="577.40869"
- id="text113406"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan113408"
- x="285.86542"
- y="577.40869" /></text>
- <text
- y="832.10559"
- x="242.41013"
- id="text84343-2"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="197.43796"
- y="832.10559"
- font-size="5.1244"
- id="tspan84345-2">MASTER REGION</tspan>
- </text>
- <text
- y="926.36633"
- x="288.45654"
- id="text84343-2-6"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="249.24219"
- y="926.36633"
- font-size="5.1244"
- id="tspan84345-2-5" />
- </text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot126352"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126354"><rect
- id="rect126356"
- width="0"
- height="51"
- x="247"
- y="928.36218" /></flowRegion><flowPara
- id="flowPara126358" /></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot126403"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126405"><rect
- id="rect126407"
- width="185"
- height="81"
- x="286"
- y="941.36218" /></flowRegion><flowPara
- id="flowPara126409" /></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot126411"
- style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:9px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
- id="flowRegion126413"><rect
- id="rect126415"
- width="89"
- height="64"
- x="285"
- y="943.36218" /></flowRegion><flowPara
- id="flowPara126417" /></flowRoot> <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="272"
- y="529.64587"
- id="text126456"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan126458"
- x="272"
- y="529.64587">MASTER</tspan><tspan
- sodipodi:role="line"
- x="272"
- y="540.89587"
- id="tspan126460">ZONE</tspan></text>
- <polygon
- id="polygon84546-9-3"
- points="-667.777,292.47 -671.896,292.47 -669.845,294.263 "
- clip-path="url(#SVGID_4843_-9-6)"
- style="fill:#f15d57"
- transform="matrix(2.25,0,0,2.25,1658.932,-169.71257)" />
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="122.23143"
- y="529.64587"
- id="text126655-6"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan126657-2"
- x="122.23143"
- y="529.64587">SECONDARY</tspan><tspan
- sodipodi:role="line"
- x="122.23143"
- y="540.89587"
- id="tspan126659-4">ZONE</tspan></text>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g82107">
- <defs
- id="defs82109">
- <polygon
- id="SVGID_4519_"
- points="-504.975,196.685 -504.975,188.287 -547.302,188.287 -547.302,196.684 -528.257,196.685 -526.139,198.478 -524.02,196.685 " />
- </defs>
- <clipPath
- id="clipPath126820">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4519_"
- overflow="visible"
- id="use126822" />
- </clipPath>
- <linearGradient
- id="linearGradient126824"
- gradientUnits="userSpaceOnUse"
- x1="40.840599"
- y1="146.6937"
- x2="41.840599"
- y2="146.6937"
- gradientTransform="matrix(0,-10.1906,-10.1906,0,968.7597,614.6687)">
- <stop
- offset="0"
- style="stop-color:#37424B"
- id="stop126826" />
- <stop
- offset="0.12"
- style="stop-color:#37424B"
- id="stop126828" />
- <stop
- offset="0.88"
- style="stop-color:#5E6A71"
- id="stop126830" />
- <stop
- offset="1"
- style="stop-color:#5E6A71"
- id="stop126832" />
- </linearGradient>
- <rect
- style="fill:url(#linearGradient126904)"
- x="-547.302"
- y="188.287"
- clip-path="url(#SVGID_4520_-5)"
- width="42.327"
- height="10.191"
- id="rect82124" />
- </g>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g82126">
- <defs
- id="defs82128">
- <rect
- id="SVGID_4522_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath126838">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4522_"
- overflow="visible"
- id="use126840" />
- </clipPath>
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -539.397,191.908 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.287,-0.642 0.64,-0.641 0.354,0 0.639,0.287 0.639,0.641 0,0.353 -0.285,0.639 -0.639,0.639"
- id="path82134" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -539.397,194.263 c -0.353,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.287,-0.642 0.64,-0.642 0.354,0 0.639,0.287 0.639,0.642 0,0.353 -0.285,0.639 -0.639,0.639"
- id="path82136" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="191.26801"
- sodipodi:cx="-541.625"
- d="m -540.985,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-541.625"
- cy="191.26801"
- r="0.63999999"
- id="circle82138" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="193.623"
- sodipodi:cx="-541.625"
- d="m -540.985,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-541.625"
- cy="193.623"
- r="0.63999999"
- id="circle82140" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="191.26801"
- sodipodi:cx="-543.85303"
- d="m -543.21303,191.26801 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35346,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35347 0.28654,-0.64 0.64,-0.64 0.35346,0 0.64,0.28653 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-543.85303"
- cy="191.26801"
- r="0.63999999"
- id="circle82142" />
- <circle
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- sodipodi:ry="0.63999999"
- sodipodi:rx="0.63999999"
- sodipodi:cy="193.623"
- sodipodi:cx="-543.854"
- d="m -543.214,193.623 c 0,0.35346 -0.28654,0.64 -0.64,0.64 -0.35347,0 -0.64,-0.28654 -0.64,-0.64 0,-0.35346 0.28653,-0.64 0.64,-0.64 0.35346,0 0.64,0.28654 0.64,0.64 z"
- clip-path="url(#SVGID_4523_-1)"
- stroke-miterlimit="10"
- cx="-543.854"
- cy="193.623"
- r="0.63999999"
- id="circle82144" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -537.169,191.908 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.354 0.286,-0.642 0.64,-0.641 0.354,0 0.64,0.287 0.64,0.641 0,0.353 -0.286,0.639 -0.64,0.639"
- id="path82146" />
- <path
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4523_-1)"
- d="m -537.169,194.263 c -0.354,0 -0.64,-0.286 -0.64,-0.639 0,-0.355 0.286,-0.642 0.64,-0.642 0.354,0 0.64,0.287 0.64,0.642 0,0.353 -0.286,0.639 -0.64,0.639"
- id="path82148" />
- </g>
- <text
- y="319.3797"
- x="267.68884"
- id="text82150"
- style="font-size:40.5px">
- <tspan
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium"
- x="267.68884"
- y="319.3797"
- font-size="3.2027"
- id="tspan82152">AP</tspan>
- <tspan
- style="font-size:10.80911255px;fill:#ffffff;font-family:ApexSans-Medium"
- x="281.37094"
- y="319.3797"
- font-size="3.2027"
- id="tspan82154">P</tspan>
- </text>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g84638">
- <defs
- id="defs84640">
- <rect
- id="SVGID_4852_"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath126879">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4852_"
- overflow="visible"
- id="use126881" />
- </clipPath>
- <path
- style="fill:#5e6a71"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4853_-8)"
- d="m -526.673,205.991 c 0,-0.349 0.282,-0.632 0.632,-0.632 0.349,0 0.632,0.283 0.632,0.632 0,0.35 -0.283,0.633 -0.632,0.633 -0.35,0 -0.632,-0.283 -0.632,-0.633"
- id="path84646" />
- <line
- style="fill:none;stroke:#5e6a71;stroke-width:0.214;stroke-miterlimit:10"
- clip-path="url(#SVGID_4853_-8)"
- stroke-miterlimit="10"
- x1="-526.03998"
- y1="205.991"
- x2="-523.14398"
- y2="205.991"
- id="line84648" />
- </g>
- <g
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- id="g84650">
- <defs
- id="defs84652">
- <polygon
- id="SVGID_4854_"
- points="-507.673,203.458 -521.64,203.458 -523.432,206 -521.64,208.524 -507.673,208.524 " />
- </defs>
- <clipPath
- id="clipPath126888">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4854_"
- overflow="visible"
- id="use126890" />
- </clipPath>
- <linearGradient
- id="linearGradient126892"
- gradientUnits="userSpaceOnUse"
- x1="-34.205299"
- y1="249.94031"
- x2="-33.205101"
- y2="249.94031"
- gradientTransform="matrix(0,-5.065,-5.065,0,750.4031,35.2731)">
- <stop
- offset="0"
- style="stop-color:#E6E8E7"
- id="stop126894" />
- <stop
- offset="1"
- style="stop-color:#FFFFFF"
- id="stop126896" />
- </linearGradient>
- <rect
- style="fill:url(#SVGID_4856_-4)"
- x="-523.43201"
- y="203.45799"
- clip-path="url(#SVGID_4855_-2)"
- width="15.759"
- height="5.066"
- id="rect84663" />
- </g>
- <polygon
- style="fill:none;stroke:#e6e8e8;stroke-width:0.214;stroke-miterlimit:10"
- transform="matrix(3.375,0,0,3.375,2054.0831,-334.61629)"
- stroke-miterlimit="10"
- points="-507.674,203.459 -521.64,203.459 -523.433,206 -521.64,208.524 -507.674,208.524 "
- id="polygon84665" />
- <text
- y="363.54565"
- x="306.66861"
- id="text84667"
- style="font-size:40.5px">
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="306.66861"
- y="363.54565"
- font-size="2.5652"
- id="tspan84669">RE</tspan>
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="315.84521"
- y="363.54565"
- font-size="2.5652"
- id="tspan84671">S</tspan>
- <tspan
- style="font-size:8.65755081px;fill:#5e6a71;font-family:ApexSans-Book"
- x="319.98297"
- y="363.54565"
- font-size="2.5652"
- id="tspan84673">T</tspan>
- </text>
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="197.07527"
- y="438.16864"
- id="text127418"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan127420"
- x="197.07527"
- y="438.16864">DATA</tspan><tspan
- sodipodi:role="line"
- x="197.07527"
- y="449.41864"
- id="tspan127422">SYNC</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:9px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
- x="232.25806"
- y="178.16862"
- id="text127482"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan127484"
- x="232.25806"
- y="178.16862" /></text>
- <text
- y="247.60512"
- x="242.41013"
- id="text84343-2-0"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="197.43796"
- y="247.60512"
- font-size="5.1244"
- id="tspan84345-2-6">MASTER REGION</tspan>
- </text>
- <g
- id="g17978">
- <g
- inkscape:transform-center-y="50.765304"
- inkscape:transform-center-x="262.3321"
- id="g82158"
- transform="matrix(1.3542118,0,0,2.25,996.72494,-25.560183)">
- <defs
- id="defs82160">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4524_" />
- </defs>
- <clipPath
- id="clipPath101582">
- <use
- id="use101584"
- overflow="visible"
- xlink:href="#SVGID_4524_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <g
- id="g82166"
- clip-path="url(#SVGID_4525_)">
- <g
- id="g82168">
- <defs
- id="defs82170">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="SVGID_4526_" />
- </defs>
- <clipPath
- id="clipPath101590">
- <use
- id="use101592"
- overflow="visible"
- xlink:href="#SVGID_4526_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <g
- id="g82176"
- clip-path="url(#SVGID_4527_)">
- <defs
- id="defs82178">
- <rect
- height="64.037003"
- width="174.953"
- y="293.367"
- x="-679.57202"
- id="SVGID_4528_" />
- </defs>
- <clipPath
- id="clipPath101597">
- <use
- id="use101599"
- overflow="visible"
- xlink:href="#SVGID_4528_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,64.0388,-64.0388,0,3308.0217,-7826.8223)"
- y2="60.902401"
- x2="127.8011"
- y1="60.902401"
- x1="126.8011"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101601">
- <stop
- id="stop101603"
- style="stop-color:#E6E8E7"
- offset="0" />
- <stop
- id="stop101605"
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82189"
- height="64.038002"
- width="174.953"
- clip-path="url(#SVGID_4529_)"
- y="293.366"
- x="-679.57202"
- style="fill:url(#SVGID_4530_)" />
- </g>
- <g
- id="g82191"
- clip-path="url(#SVGID_4527_)">
- <defs
- id="defs82193">
- <rect
- height="64.251999"
- width="175.168"
- y="293.259"
- x="-679.67902"
- id="SVGID_4531_" />
- </defs>
- <clipPath
- id="clipPath101611">
- <use
- id="use101613"
- overflow="visible"
- xlink:href="#SVGID_4531_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <rect
- id="rect82199"
- height="64.038002"
- width="174.953"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4532_)"
- y="293.366"
- x="-679.57202"
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10" />
- </g>
- </g>
- </g>
- <g
- id="g82201"
- clip-path="url(#SVGID_4525_)">
- <g
- id="g82203">
- <defs
- id="defs82205">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="SVGID_4533_" />
- </defs>
- <clipPath
- id="clipPath101620">
- <use
- id="use101622"
- overflow="visible"
- xlink:href="#SVGID_4533_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <g
- id="g82211"
- clip-path="url(#SVGID_4534_)">
- <defs
- id="defs82213">
- <rect
- height="64.037003"
- width="45.659"
- y="293.367"
- x="-441.45999"
- id="SVGID_4535_" />
- </defs>
- <clipPath
- id="clipPath101627">
- <use
- id="use101629"
- overflow="visible"
- xlink:href="#SVGID_4535_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,64.0388,-64.0388,0,3481.4861,-7826.8223)"
- y2="60.902401"
- x2="127.8011"
- y1="60.902401"
- x1="126.8011"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101631">
- <stop
- id="stop101633"
- style="stop-color:#E6E8E7"
- offset="0" />
- <stop
- id="stop101635"
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82224"
- height="64.038002"
- width="45.659"
- clip-path="url(#SVGID_4536_)"
- y="293.366"
- x="-441.45999"
- style="fill:url(#SVGID_4537_)" />
- </g>
- <g
- id="g82226"
- clip-path="url(#SVGID_4534_)">
- <defs
- id="defs82228">
- <rect
- height="64.251999"
- width="45.873001"
- y="293.259"
- x="-441.56699"
- id="SVGID_4538_" />
- </defs>
- <clipPath
- id="clipPath101641">
- <use
- id="use101643"
- overflow="visible"
- xlink:href="#SVGID_4538_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <rect
- id="rect82234"
- height="64.038002"
- width="45.659"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4539_)"
- y="293.366"
- x="-441.45999"
- style="fill:none;stroke:#f15d57;stroke-width:0.214;stroke-miterlimit:10" />
- </g>
- </g>
- </g>
- </g>
- <g
- inkscape:transform-center-y="45.666809"
- inkscape:transform-center-x="449.81598"
- id="g82339"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82341">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4549_" />
- </defs>
- <clipPath
- id="clipPath101738">
- <use
- id="use101740"
- overflow="visible"
- xlink:href="#SVGID_4549_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82347"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- clip-path="url(#SVGID_4550_)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57" />
- <path
- id="path82349"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4550_)"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- </g>
- <text
- inkscape:transform-center-y="45.543285"
- inkscape:transform-center-x="450.06672"
- id="text82351"
- font-size="4.3343"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- x="275.14355"
- y="704.88873">M</text>
- <g
- inkscape:transform-center-y="71.647559"
- inkscape:transform-center-x="503.22873"
- id="g82353"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82355">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4551_" />
- </defs>
- <clipPath
- id="clipPath101748">
- <use
- id="use101750"
- overflow="visible"
- xlink:href="#SVGID_4551_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82361"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- clip-path="url(#SVGID_4552_)"
- inkscape:connector-curvature="0"
- style="fill:#f15d57" />
- <path
- id="path82363"
- d="m -625.77,338.014 c 0,0.213 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.172 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4552_)"
- inkscape:connector-curvature="0"
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10" />
- </g>
- <text
- inkscape:transform-center-y="71.524915"
- inkscape:transform-center-x="503.47899"
- id="text82365"
- font-size="4.3343"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- x="201.73129"
- y="730.87036">M</text>
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82381"
- height="21.584251"
- width="21.581999"
- y="664.59583"
- x="87.659889"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.597191"
- inkscape:transform-center-x="610.96881"
- id="rect82383"
- height="21.584251"
- width="21.581999"
- stroke-miterlimit="10"
- y="664.59583"
- x="87.659889"
- style="fill:none;stroke:#81d0db;stroke-width:0.96300006;stroke-miterlimit:10" />
- <rect
- inkscape:transform-center-y="19.598295"
- inkscape:transform-center-x="610.97115"
- id="rect82385"
- height="18.553501"
- width="18.557999"
- y="666.1123"
- x="89.169548"
- style="fill:#81d0db" />
- <rect
- inkscape:transform-center-y="19.597131"
- inkscape:transform-center-x="610.96883"
- id="rect82387"
- height="15.594751"
- width="15.592501"
- y="667.59052"
- x="90.654625"
- style="fill:#ffffff" />
- <rect
- inkscape:transform-center-y="19.595982"
- inkscape:transform-center-x="610.97103"
- id="rect82389"
- height="10.278"
- width="10.282501"
- y="670.24774"
- x="93.307411"
- style="fill:#ffffff" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="610.97111"
- id="g82391"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82393">
- <path
- d="m -672.614,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4555_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101773">
- <use
- id="use101775"
- overflow="visible"
- xlink:href="#SVGID_4555_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1066.0031)"
- y2="-148.46021"
- x2="256.3761"
- y1="-148.46021"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101777">
- <stop
- id="stop101779"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101781"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82404"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4556_)"
- y="308.841"
- x="-672.61401"
- style="fill:url(#SVGID_4557_)" />
- </g>
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-650.77399"
- y="306.73599"
- clip-path="url(#SVGID_4564_)"
- width="9.592"
- height="9.5930004"
- id="rect82451" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-650.77399"
- y="306.73599"
- clip-path="url(#SVGID_4564_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82453" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#81d0db"
- x="-650.10303"
- y="307.41"
- clip-path="url(#SVGID_4564_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82455" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-649.44299"
- y="308.06699"
- clip-path="url(#SVGID_4564_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82457" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-648.26398"
- y="309.24799"
- clip-path="url(#SVGID_4564_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82459" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="557.09937"
- id="g82461"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82463">
- <path
- d="m -648.671,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4565_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101827">
- <use
- id="use101829"
- overflow="visible"
- xlink:href="#SVGID_4565_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1066.0031)"
- y2="-148.4601"
- x2="256.3761"
- y1="-148.4601"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101831">
- <stop
- id="stop101833"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101835"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82474"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4566_)"
- y="308.841"
- x="-648.67102"
- style="fill:url(#SVGID_4567_)" />
- </g>
- <path
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4569_)"
- d="m -646.611,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82484" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-638.80298"
- y="306.73599"
- clip-path="url(#SVGID_4569_)"
- width="9.592"
- height="9.5930004"
- id="rect82486" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10"
- x="-638.80298"
- y="306.73599"
- clip-path="url(#SVGID_4569_)"
- stroke-miterlimit="10"
- width="9.592"
- height="9.5930004"
- id="rect82488" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#81d0db"
- x="-638.13202"
- y="307.41"
- clip-path="url(#SVGID_4569_)"
- width="8.2480001"
- height="8.2460003"
- id="rect82490" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-637.47198"
- y="308.06699"
- clip-path="url(#SVGID_4569_)"
- width="6.9299998"
- height="6.9310002"
- id="rect82492" />
- <rect
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#ffffff"
- x="-636.29199"
- y="309.24799"
- clip-path="url(#SVGID_4569_)"
- width="4.5700002"
- height="4.5679998"
- id="rect82494" />
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="530.16231"
- id="g82496"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82498">
- <path
- d="m -636.699,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.485 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4570_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101854">
- <use
- id="use101856"
- overflow="visible"
- xlink:href="#SVGID_4570_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1066.0031)"
- y2="-148.46001"
- x2="256.3761"
- y1="-148.46001"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101858">
- <stop
- id="stop101860"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101862"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82509"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4571_)"
- y="308.841"
- x="-636.69897"
- style="fill:url(#SVGID_4572_)" />
- </g>
- <g
- inkscape:transform-center-y="19.597166"
- inkscape:transform-center-x="511.76858"
- id="g82511"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82513">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4573_" />
- </defs>
- <clipPath
- id="clipPath101868">
- <use
- id="use101870"
- overflow="visible"
- xlink:href="#SVGID_4573_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82519"
- d="m -634.639,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4574_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82521"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4574_)"
- y="306.73599"
- x="-626.83099"
- style="fill:#ffffff" />
- <rect
- id="rect82523"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4574_)"
- y="306.73599"
- x="-626.83099"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82525"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4574_)"
- y="307.41"
- x="-626.15997"
- style="fill:#81d0db" />
- <rect
- id="rect82527"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4574_)"
- y="308.06699"
- x="-625.5"
- style="fill:#ffffff" />
- <rect
- id="rect82529"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4574_)"
- y="309.24799"
- x="-624.32098"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="503.22762"
- id="g82531"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82533">
- <path
- d="m -624.728,311.531 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.205 -2.693,2.69"
- id="SVGID_4575_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101881">
- <use
- id="use101883"
- overflow="visible"
- xlink:href="#SVGID_4575_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1066.0031)"
- y2="-148.4601"
- x2="256.3761"
- y1="-148.4601"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101885">
- <stop
- id="stop101887"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101889"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82544"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4576_)"
- y="308.841"
- x="-624.72803"
- style="fill:url(#SVGID_4577_)" />
- </g>
- <g
- inkscape:transform-center-y="19.597166"
- inkscape:transform-center-x="484.83387"
- id="g82546"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82548">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4578_" />
- </defs>
- <clipPath
- id="clipPath101895">
- <use
- id="use101897"
- overflow="visible"
- xlink:href="#SVGID_4578_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82554"
- d="m -622.668,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4579_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82556"
- height="9.5930004"
- width="9.5930004"
- clip-path="url(#SVGID_4579_)"
- y="306.73599"
- x="-614.85999"
- style="fill:#ffffff" />
- <rect
- id="rect82558"
- height="9.5930004"
- width="9.5930004"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4579_)"
- y="306.73599"
- x="-614.86102"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82560"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4579_)"
- y="307.41"
- x="-614.18799"
- style="fill:#81d0db" />
- <rect
- id="rect82562"
- height="6.9310002"
- width="6.9310002"
- clip-path="url(#SVGID_4579_)"
- y="308.06699"
- x="-613.52899"
- style="fill:#ffffff" />
- <rect
- id="rect82564"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4579_)"
- y="309.24799"
- x="-612.349"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="476.2917"
- id="g82566"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82568">
- <path
- d="m -612.756,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4580_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101908">
- <use
- id="use101910"
- overflow="visible"
- xlink:href="#SVGID_4580_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1066.0031)"
- y2="-148.4601"
- x2="256.3761"
- y1="-148.4601"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101912">
- <stop
- id="stop101914"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101916"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82579"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4581_)"
- y="308.841"
- x="-612.75598"
- style="fill:url(#SVGID_4582_)" />
- </g>
- <g
- inkscape:transform-center-y="19.597166"
- inkscape:transform-center-x="457.89686"
- id="g82581"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82583">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4583_" />
- </defs>
- <clipPath
- id="clipPath101922">
- <use
- id="use101924"
- overflow="visible"
- xlink:href="#SVGID_4583_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82589"
- d="m -610.696,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4584_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82591"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4584_)"
- y="306.73599"
- x="-602.888"
- style="fill:#ffffff" />
- <rect
- id="rect82593"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4584_)"
- y="306.73599"
- x="-602.888"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82595"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4584_)"
- y="307.41"
- x="-602.21698"
- style="fill:#81d0db" />
- <rect
- id="rect82597"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4584_)"
- y="308.06699"
- x="-601.55701"
- style="fill:#ffffff" />
- <rect
- id="rect82599"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4584_)"
- y="309.24799"
- x="-600.37799"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="449.35694"
- id="g82601"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82603">
- <path
- d="m -600.785,311.531 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.203,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4585_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101935">
- <use
- id="use101937"
- overflow="visible"
- xlink:href="#SVGID_4585_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,201.1574,-1066.0031)"
- y2="-148.46021"
- x2="256.3761"
- y1="-148.46021"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101939">
- <stop
- id="stop101941"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101943"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82614"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4586_)"
- y="308.841"
- x="-600.78497"
- style="fill:url(#SVGID_4587_)" />
- </g>
- <g
- inkscape:transform-center-y="19.597166"
- inkscape:transform-center-x="430.96208"
- id="g82616"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82618">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4588_" />
- </defs>
- <clipPath
- id="clipPath101949">
- <use
- id="use101951"
- overflow="visible"
- xlink:href="#SVGID_4588_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82624"
- d="m -598.725,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4589_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82626"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4589_)"
- y="306.73599"
- x="-590.91699"
- style="fill:#ffffff" />
- <rect
- id="rect82628"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4589_)"
- y="306.73599"
- x="-590.91699"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82630"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4589_)"
- y="307.41"
- x="-590.24597"
- style="fill:#81d0db" />
- <rect
- id="rect82632"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4589_)"
- y="308.06699"
- x="-589.586"
- style="fill:#ffffff" />
- <rect
- id="rect82634"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4589_)"
- y="309.24799"
- x="-588.40698"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="19.598312"
- inkscape:transform-center-x="422.41995"
- id="g82636"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82638">
- <path
- d="m -588.813,311.531 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.485 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.205 -2.692,2.69"
- id="SVGID_4590_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath101962">
- <use
- id="use101964"
- overflow="visible"
- xlink:href="#SVGID_4590_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1066.0031)"
- y2="-148.4601"
- x2="256.3761"
- y1="-148.4601"
- x1="255.3761"
- gradientUnits="userSpaceOnUse"
- id="linearGradient101966">
- <stop
- id="stop101968"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop101970"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82649"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4591_)"
- y="308.841"
- x="-588.81299"
- style="fill:url(#SVGID_4592_)" />
- </g>
- <g
- inkscape:transform-center-y="37.558931"
- inkscape:transform-center-x="440.81033"
- id="g82861"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82863">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4623_" />
- </defs>
- <clipPath
- id="clipPath102138">
- <use
- id="use102140"
- overflow="visible"
- xlink:href="#SVGID_4623_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82869"
- d="m -514.925,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4624_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82871"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4624_)"
- y="318.323"
- x="-674.71698"
- style="fill:#ffffff" />
- <rect
- id="rect82873"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4624_)"
- y="318.323"
- x="-674.71698"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82875"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4624_)"
- y="318.99701"
- x="-674.04602"
- style="fill:#81d0db" />
- <rect
- id="rect82877"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4624_)"
- y="319.65399"
- x="-673.38599"
- style="fill:#ffffff" />
- <rect
- id="rect82879"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4624_)"
- y="320.83499"
- x="-672.20697"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="610.97111"
- id="g82881"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82883">
- <path
- d="m -672.614,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4625_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102151">
- <use
- id="use102153"
- overflow="visible"
- xlink:href="#SVGID_4625_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,129.3288,-1054.4158)"
- y2="-148.46021"
- x2="256.37631"
- y1="-148.46021"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102155">
- <stop
- id="stop102157"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102159"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82894"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4626_)"
- y="320.42899"
- x="-672.61401"
- style="fill:url(#SVGID_4627_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="592.57619"
- id="g82896"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82898">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4628_" />
- </defs>
- <clipPath
- id="clipPath102165">
- <use
- id="use102167"
- overflow="visible"
- xlink:href="#SVGID_4628_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82904"
- d="m -670.553,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4629_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82906"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4629_)"
- y="318.323"
- x="-662.745"
- style="fill:#ffffff" />
- <rect
- id="rect82908"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4629_)"
- y="318.323"
- x="-662.74597"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82910"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4629_)"
- y="318.99701"
- x="-662.07397"
- style="fill:#81d0db" />
- <rect
- id="rect82912"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4629_)"
- y="319.65399"
- x="-661.414"
- style="fill:#ffffff" />
- <rect
- id="rect82914"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4629_)"
- y="320.83499"
- x="-660.23499"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="584.03412"
- id="g82916"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82918">
- <path
- d="m -660.642,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4630_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102178">
- <use
- id="use102180"
- overflow="visible"
- xlink:href="#SVGID_4630_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,141.3002,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102182">
- <stop
- id="stop102184"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102186"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82929"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4631_)"
- y="320.42899"
- x="-660.64203"
- style="fill:url(#SVGID_4632_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="565.64033"
- id="g82931"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82933">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4633_" />
- </defs>
- <clipPath
- id="clipPath102192">
- <use
- id="use102194"
- overflow="visible"
- xlink:href="#SVGID_4633_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82939"
- d="m -658.582,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4634_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82941"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4634_)"
- y="318.323"
- x="-650.77399"
- style="fill:#ffffff" />
- <rect
- id="rect82943"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4634_)"
- y="318.323"
- x="-650.77399"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82945"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4634_)"
- y="318.99701"
- x="-650.10303"
- style="fill:#81d0db" />
- <rect
- id="rect82947"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4634_)"
- y="319.65399"
- x="-649.44299"
- style="fill:#ffffff" />
- <rect
- id="rect82949"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4634_)"
- y="320.83499"
- x="-648.26398"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="557.09937"
- id="g82951"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82953">
- <path
- d="m -648.671,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.204,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4635_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102205">
- <use
- id="use102207"
- overflow="visible"
- xlink:href="#SVGID_4635_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,153.2715,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102209">
- <stop
- id="stop102211"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102213"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82964"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4636_)"
- y="320.42899"
- x="-648.67102"
- style="fill:url(#SVGID_4637_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="538.70558"
- id="g82966"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82968">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4638_" />
- </defs>
- <clipPath
- id="clipPath102219">
- <use
- id="use102221"
- overflow="visible"
- xlink:href="#SVGID_4638_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path82974"
- d="m -646.611,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4639_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect82976"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4639_)"
- y="318.323"
- x="-638.80298"
- style="fill:#ffffff" />
- <rect
- id="rect82978"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4639_)"
- y="318.323"
- x="-638.80298"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect82980"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4639_)"
- y="318.99701"
- x="-638.13202"
- style="fill:#81d0db" />
- <rect
- id="rect82982"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4639_)"
- y="319.65399"
- x="-637.47198"
- style="fill:#ffffff" />
- <rect
- id="rect82984"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4639_)"
- y="320.83499"
- x="-636.29199"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="530.16231"
- id="g82986"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs82988">
- <path
- d="m -636.699,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.207 2.692,-2.694 0,-1.486 -1.205,-2.69 -2.692,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4640_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102232">
- <use
- id="use102234"
- overflow="visible"
- xlink:href="#SVGID_4640_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,165.2429,-1054.4158)"
- y2="-148.46001"
- x2="256.37631"
- y1="-148.46001"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102236">
- <stop
- id="stop102238"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102240"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect82999"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4641_)"
- y="320.42899"
- x="-636.69897"
- style="fill:url(#SVGID_4642_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="511.76858"
- id="g83001"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83003">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4643_" />
- </defs>
- <clipPath
- id="clipPath102246">
- <use
- id="use102248"
- overflow="visible"
- xlink:href="#SVGID_4643_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83009"
- d="m -634.639,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4644_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83011"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4644_)"
- y="318.323"
- x="-626.83099"
- style="fill:#ffffff" />
- <rect
- id="rect83013"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4644_)"
- y="318.323"
- x="-626.83099"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83015"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4644_)"
- y="318.99701"
- x="-626.15997"
- style="fill:#81d0db" />
- <rect
- id="rect83017"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4644_)"
- y="319.65399"
- x="-625.5"
- style="fill:#ffffff" />
- <rect
- id="rect83019"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4644_)"
- y="320.83499"
- x="-624.32098"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="503.22762"
- id="g83021"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83023">
- <path
- d="m -624.728,323.119 c 0,1.487 1.206,2.694 2.693,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.693,1.204 -2.693,2.69"
- id="SVGID_4645_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102259">
- <use
- id="use102261"
- overflow="visible"
- xlink:href="#SVGID_4645_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,177.2143,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102263">
- <stop
- id="stop102265"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102267"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83034"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4646_)"
- y="320.42899"
- x="-624.72803"
- style="fill:url(#SVGID_4647_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="484.83387"
- id="g83036"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83038">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4648_" />
- </defs>
- <clipPath
- id="clipPath102273">
- <use
- id="use102275"
- overflow="visible"
- xlink:href="#SVGID_4648_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83044"
- d="m -622.668,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4649_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83046"
- height="9.5930004"
- width="9.5930004"
- clip-path="url(#SVGID_4649_)"
- y="318.323"
- x="-614.85999"
- style="fill:#ffffff" />
- <rect
- id="rect83048"
- height="9.5930004"
- width="9.5930004"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4649_)"
- y="318.323"
- x="-614.86102"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83050"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4649_)"
- y="318.99701"
- x="-614.18799"
- style="fill:#81d0db" />
- <rect
- id="rect83052"
- height="6.9310002"
- width="6.9310002"
- clip-path="url(#SVGID_4649_)"
- y="319.65399"
- x="-613.52899"
- style="fill:#ffffff" />
- <rect
- id="rect83054"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4649_)"
- y="320.83499"
- x="-612.349"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="476.2917"
- id="g83056"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83058">
- <path
- d="m -612.756,323.119 c 0,1.487 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.486,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4650_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102286">
- <use
- id="use102288"
- overflow="visible"
- xlink:href="#SVGID_4650_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,189.1858,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102290">
- <stop
- id="stop102292"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102294"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83069"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4651_)"
- y="320.42899"
- x="-612.75598"
- style="fill:url(#SVGID_4652_)" />
- </g>
- <g
- inkscape:transform-center-y="45.667929"
- inkscape:transform-center-x="444.42945"
- id="g83071"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83073">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4653_" />
- </defs>
- <clipPath
- id="clipPath102300">
- <use
- id="use102302"
- overflow="visible"
- xlink:href="#SVGID_4653_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83079"
- d="m -610.696,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4654_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83081"
- height="9.5930004"
- width="9.592"
- clip-path="url(#SVGID_4654_)"
- y="318.323"
- x="-590.91699"
- style="fill:#ffffff" />
- <rect
- id="rect83083"
- height="9.5930004"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4654_)"
- y="318.323"
- x="-590.91699"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83085"
- height="8.2460003"
- width="8.2480001"
- clip-path="url(#SVGID_4654_)"
- y="318.99701"
- x="-590.24597"
- style="fill:#81d0db" />
- <rect
- id="rect83087"
- height="6.9310002"
- width="6.9299998"
- clip-path="url(#SVGID_4654_)"
- y="319.65399"
- x="-589.586"
- style="fill:#ffffff" />
- <rect
- id="rect83089"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4654_)"
- y="320.83499"
- x="-588.40698"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="45.671291"
- inkscape:transform-center-x="422.41995"
- id="g83091"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83093">
- <path
- d="m -588.813,323.119 c 0,1.487 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.207 2.691,-2.694 0,-1.486 -1.204,-2.69 -2.691,-2.69 -1.487,0 -2.692,1.204 -2.692,2.69"
- id="SVGID_4655_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102313">
- <use
- id="use102315"
- overflow="visible"
- xlink:href="#SVGID_4655_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3836,5.3836,0,213.1288,-1054.4158)"
- y2="-148.4601"
- x2="256.37631"
- y1="-148.4601"
- x1="255.37621"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102317">
- <stop
- id="stop102319"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102321"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83104"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4656_)"
- y="320.42899"
- x="-588.81299"
- style="fill:url(#SVGID_4657_)" />
- </g>
- <g
- inkscape:transform-center-y="63.583551"
- inkscape:transform-center-x="440.81033"
- id="g83316"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83318">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4688_" />
- </defs>
- <clipPath
- id="clipPath102489">
- <use
- id="use102491"
- overflow="visible"
- xlink:href="#SVGID_4688_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83324"
- d="m -514.925,323.119 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4689_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83326"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4689_)"
- y="329.87"
- x="-674.71698"
- style="fill:#ffffff" />
- <rect
- id="rect83328"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4689_)"
- y="329.87"
- x="-674.71698"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83330"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4689_)"
- y="330.543"
- x="-674.04602"
- style="fill:#81d0db" />
- <rect
- id="rect83332"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4689_)"
- y="331.20099"
- x="-673.38599"
- style="fill:#ffffff" />
- <rect
- id="rect83334"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4689_)"
- y="332.38199"
- x="-672.20697"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="610.97111"
- id="g83336"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83338">
- <path
- d="m -672.614,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4690_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102502">
- <use
- id="use102504"
- overflow="visible"
- xlink:href="#SVGID_4690_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1042.9659)"
- y2="-148.4301"
- x2="256.3544"
- y1="-148.4301"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102506">
- <stop
- id="stop102508"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102510"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83349"
- height="5.3860002"
- width="5.3839998"
- clip-path="url(#SVGID_4691_)"
- y="331.974"
- x="-672.61401"
- style="fill:url(#SVGID_4692_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="592.57619"
- id="g83351"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83353">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4693_" />
- </defs>
- <clipPath
- id="clipPath102516">
- <use
- id="use102518"
- overflow="visible"
- xlink:href="#SVGID_4693_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83359"
- d="m -670.553,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4694_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83361"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4694_)"
- y="329.87"
- x="-662.745"
- style="fill:#ffffff" />
- <rect
- id="rect83363"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4694_)"
- y="329.87"
- x="-662.74597"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83365"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4694_)"
- y="330.543"
- x="-662.07397"
- style="fill:#81d0db" />
- <rect
- id="rect83367"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4694_)"
- y="331.20099"
- x="-661.414"
- style="fill:#ffffff" />
- <rect
- id="rect83369"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4694_)"
- y="332.38199"
- x="-660.23499"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.648681"
- inkscape:transform-center-x="584.03412"
- id="g83371"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83373">
- <path
- d="m -660.642,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4695_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102529">
- <use
- id="use102531"
- overflow="visible"
- xlink:href="#SVGID_4695_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1042.9659)"
- y2="-148.4299"
- x2="256.35419"
- y1="-148.4299"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102533">
- <stop
- id="stop102535"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102537"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83384"
- height="5.3850002"
- width="5.3839998"
- clip-path="url(#SVGID_4696_)"
- y="331.974"
- x="-660.64203"
- style="fill:url(#SVGID_4697_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="565.64033"
- id="g83386"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83388">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4698_" />
- </defs>
- <clipPath
- id="clipPath102543">
- <use
- id="use102545"
- overflow="visible"
- xlink:href="#SVGID_4698_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83394"
- d="m -658.582,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4699_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83396"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4699_)"
- y="329.87"
- x="-650.77399"
- style="fill:#ffffff" />
- <rect
- id="rect83398"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4699_)"
- y="329.87"
- x="-650.77399"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83400"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4699_)"
- y="330.543"
- x="-650.10303"
- style="fill:#81d0db" />
- <rect
- id="rect83402"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4699_)"
- y="331.20099"
- x="-649.44299"
- style="fill:#ffffff" />
- <rect
- id="rect83404"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4699_)"
- y="332.38199"
- x="-648.26398"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="557.09937"
- id="g83406"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83408">
- <path
- d="m -648.671,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4700_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102556">
- <use
- id="use102558"
- overflow="visible"
- xlink:href="#SVGID_4700_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1042.9659)"
- y2="-148.42999"
- x2="256.3544"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102560">
- <stop
- id="stop102562"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102564"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83419"
- height="5.3860002"
- width="5.3839998"
- clip-path="url(#SVGID_4701_)"
- y="331.974"
- x="-648.67102"
- style="fill:url(#SVGID_4702_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="538.70558"
- id="g83421"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83423">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4703_" />
- </defs>
- <clipPath
- id="clipPath102570">
- <use
- id="use102572"
- overflow="visible"
- xlink:href="#SVGID_4703_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83429"
- d="m -646.611,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4704_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83431"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4704_)"
- y="329.87"
- x="-638.80298"
- style="fill:#ffffff" />
- <rect
- id="rect83433"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4704_)"
- y="329.87"
- x="-638.80298"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83435"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4704_)"
- y="330.543"
- x="-638.13202"
- style="fill:#81d0db" />
- <rect
- id="rect83437"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4704_)"
- y="331.20099"
- x="-637.47198"
- style="fill:#ffffff" />
- <rect
- id="rect83439"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4704_)"
- y="332.38199"
- x="-636.29199"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="530.16231"
- id="g83441"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83443">
- <path
- d="m -636.699,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.692,-1.206 2.692,-2.694 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4705_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102583">
- <use
- id="use102585"
- overflow="visible"
- xlink:href="#SVGID_4705_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1042.9659)"
- y2="-148.4299"
- x2="256.3544"
- y1="-148.4299"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102587">
- <stop
- id="stop102589"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102591"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83454"
- height="5.3860002"
- width="5.3839998"
- clip-path="url(#SVGID_4706_)"
- y="331.974"
- x="-636.69897"
- style="fill:url(#SVGID_4707_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="498.30125"
- id="g83456"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83458">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4708_" />
- </defs>
- <clipPath
- id="clipPath102597">
- <use
- id="use102599"
- overflow="visible"
- xlink:href="#SVGID_4708_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83464"
- d="m -634.639,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4709_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83466"
- height="9.592"
- width="9.5930004"
- clip-path="url(#SVGID_4709_)"
- y="329.87"
- x="-614.85999"
- style="fill:#ffffff" />
- <rect
- id="rect83468"
- height="9.592"
- width="9.5930004"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4709_)"
- y="329.87"
- x="-614.86102"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83470"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4709_)"
- y="330.543"
- x="-614.18799"
- style="fill:#81d0db" />
- <rect
- id="rect83472"
- height="6.9299998"
- width="6.9310002"
- clip-path="url(#SVGID_4709_)"
- y="331.20099"
- x="-613.52899"
- style="fill:#ffffff" />
- <rect
- id="rect83474"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4709_)"
- y="332.38199"
- x="-612.349"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="476.2917"
- id="g83476"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83478">
- <path
- d="m -612.756,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4710_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102610">
- <use
- id="use102612"
- overflow="visible"
- xlink:href="#SVGID_4710_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1042.9659)"
- y2="-148.42999"
- x2="256.3544"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102614">
- <stop
- id="stop102616"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102618"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83489"
- height="5.3860002"
- width="5.3829999"
- clip-path="url(#SVGID_4711_)"
- y="331.974"
- x="-612.75598"
- style="fill:url(#SVGID_4712_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="457.89686"
- id="g83491"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83493">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4713_" />
- </defs>
- <clipPath
- id="clipPath102624">
- <use
- id="use102626"
- overflow="visible"
- xlink:href="#SVGID_4713_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83499"
- d="m -610.696,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4714_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83501"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4714_)"
- y="329.87"
- x="-602.888"
- style="fill:#ffffff" />
- <rect
- id="rect83503"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4714_)"
- y="329.87"
- x="-602.888"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83505"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4714_)"
- y="330.543"
- x="-602.21698"
- style="fill:#81d0db" />
- <rect
- id="rect83507"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4714_)"
- y="331.20099"
- x="-601.55701"
- style="fill:#ffffff" />
- <rect
- id="rect83509"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4714_)"
- y="332.38199"
- x="-600.37799"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="449.35694"
- id="g83511"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83513">
- <path
- d="m -600.785,334.666 c 0,1.488 1.206,2.694 2.692,2.694 1.488,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4715_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102637">
- <use
- id="use102639"
- overflow="visible"
- xlink:href="#SVGID_4715_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1042.9659)"
- y2="-148.4301"
- x2="256.3544"
- y1="-148.4301"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102641">
- <stop
- id="stop102643"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102645"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83524"
- height="5.3860002"
- width="5.3829999"
- clip-path="url(#SVGID_4716_)"
- y="331.974"
- x="-600.78497"
- style="fill:url(#SVGID_4717_)" />
- </g>
- <g
- inkscape:transform-center-y="71.647547"
- inkscape:transform-center-x="430.96208"
- id="g83526"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83528">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4718_" />
- </defs>
- <clipPath
- id="clipPath102651">
- <use
- id="use102653"
- overflow="visible"
- xlink:href="#SVGID_4718_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83534"
- d="m -598.725,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4719_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83536"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4719_)"
- y="329.87"
- x="-590.91699"
- style="fill:#ffffff" />
- <rect
- id="rect83538"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4719_)"
- y="329.87"
- x="-590.91699"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83540"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4719_)"
- y="330.543"
- x="-590.24597"
- style="fill:#81d0db" />
- <rect
- id="rect83542"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4719_)"
- y="331.20099"
- x="-589.586"
- style="fill:#ffffff" />
- <rect
- id="rect83544"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4719_)"
- y="332.38199"
- x="-588.40698"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="71.649806"
- inkscape:transform-center-x="422.41995"
- id="g83546"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83548">
- <path
- d="m -588.813,334.666 c 0,1.488 1.205,2.694 2.692,2.694 1.487,0 2.691,-1.206 2.691,-2.694 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4720_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102664">
- <use
- id="use102666"
- overflow="visible"
- xlink:href="#SVGID_4720_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1042.9659)"
- y2="-148.42999"
- x2="256.3544"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102668">
- <stop
- id="stop102670"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102672"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83559"
- height="5.3860002"
- width="5.3829999"
- clip-path="url(#SVGID_4721_)"
- y="331.974"
- x="-588.81299"
- style="fill:url(#SVGID_4722_)" />
- </g>
- <g
- inkscape:transform-center-y="89.828699"
- inkscape:transform-center-x="440.81033"
- id="g83736"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83738">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4748_" />
- </defs>
- <clipPath
- id="clipPath102813">
- <use
- id="use102815"
- overflow="visible"
- xlink:href="#SVGID_4748_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83744"
- d="m -514.925,334.666 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4749_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83746"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4749_)"
- y="341.65302"
- x="-674.71698"
- style="fill:#ffffff" />
- <rect
- id="rect83748"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4749_)"
- y="341.65302"
- x="-674.71698"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83750"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4749_)"
- y="342.32599"
- x="-674.04602"
- style="fill:#81d0db" />
- <rect
- id="rect83752"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4749_)"
- y="342.98401"
- x="-673.38599"
- style="fill:#ffffff" />
- <rect
- id="rect83754"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4749_)"
- y="344.164"
- x="-672.20697"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="610.97111"
- id="g83756"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83758">
- <path
- d="m -672.614,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4750_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102826">
- <use
- id="use102828"
- overflow="visible"
- xlink:href="#SVGID_4750_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,129.2913,-1031.1833)"
- y2="-148.4301"
- x2="256.3541"
- y1="-148.4301"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102830">
- <stop
- id="stop102832"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102834"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83769"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4751_)"
- y="343.75699"
- x="-672.61401"
- style="fill:url(#SVGID_4752_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="592.57619"
- id="g83771"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83773">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4753_" />
- </defs>
- <clipPath
- id="clipPath102840">
- <use
- id="use102842"
- overflow="visible"
- xlink:href="#SVGID_4753_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83779"
- d="m -670.553,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4754_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83781"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4754_)"
- y="341.65302"
- x="-662.745"
- style="fill:#ffffff" />
- <rect
- id="rect83783"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4754_)"
- y="341.65302"
- x="-662.74597"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83785"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4754_)"
- y="342.32599"
- x="-662.07397"
- style="fill:#81d0db" />
- <rect
- id="rect83787"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4754_)"
- y="342.98401"
- x="-661.414"
- style="fill:#ffffff" />
- <rect
- id="rect83789"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4754_)"
- y="344.164"
- x="-660.23499"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="584.03412"
- id="g83791"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83793">
- <path
- d="m -660.642,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4755_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102853">
- <use
- id="use102855"
- overflow="visible"
- xlink:href="#SVGID_4755_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,141.2627,-1031.1833)"
- y2="-148.4299"
- x2="256.3541"
- y1="-148.4299"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102857">
- <stop
- id="stop102859"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102861"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83804"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4756_)"
- y="343.75699"
- x="-660.64203"
- style="fill:url(#SVGID_4757_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="565.64033"
- id="g83806"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83808">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4758_" />
- </defs>
- <clipPath
- id="clipPath102867">
- <use
- id="use102869"
- overflow="visible"
- xlink:href="#SVGID_4758_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83814"
- d="m -658.582,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4759_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83816"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4759_)"
- y="341.65302"
- x="-650.77399"
- style="fill:#ffffff" />
- <rect
- id="rect83818"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4759_)"
- y="341.65302"
- x="-650.77399"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83820"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4759_)"
- y="342.32599"
- x="-650.10303"
- style="fill:#81d0db" />
- <rect
- id="rect83822"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4759_)"
- y="342.98401"
- x="-649.44299"
- style="fill:#ffffff" />
- <rect
- id="rect83824"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4759_)"
- y="344.164"
- x="-648.26398"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="557.09937"
- id="g83826"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83828">
- <path
- d="m -648.671,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.204,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4760_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102880">
- <use
- id="use102882"
- overflow="visible"
- xlink:href="#SVGID_4760_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,153.234,-1031.1833)"
- y2="-148.42999"
- x2="256.3541"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102884">
- <stop
- id="stop102886"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102888"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83839"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4761_)"
- y="343.75699"
- x="-648.67102"
- style="fill:url(#SVGID_4762_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="538.70558"
- id="g83841"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83843">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4763_" />
- </defs>
- <clipPath
- id="clipPath102894">
- <use
- id="use102896"
- overflow="visible"
- xlink:href="#SVGID_4763_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83849"
- d="m -646.611,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4764_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83851"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4764_)"
- y="341.65302"
- x="-638.80298"
- style="fill:#ffffff" />
- <rect
- id="rect83853"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4764_)"
- y="341.65302"
- x="-638.80298"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83855"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4764_)"
- y="342.32599"
- x="-638.13202"
- style="fill:#81d0db" />
- <rect
- id="rect83857"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4764_)"
- y="342.98401"
- x="-637.47198"
- style="fill:#ffffff" />
- <rect
- id="rect83859"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4764_)"
- y="344.164"
- x="-636.29199"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="530.16231"
- id="g83861"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83863">
- <path
- d="m -636.699,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.692,-1.205 2.692,-2.692 0,-1.486 -1.205,-2.692 -2.692,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4765_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102907">
- <use
- id="use102909"
- overflow="visible"
- xlink:href="#SVGID_4765_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,165.2054,-1031.1833)"
- y2="-148.4299"
- x2="256.3541"
- y1="-148.4299"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102911">
- <stop
- id="stop102913"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102915"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83874"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4766_)"
- y="343.75699"
- x="-636.69897"
- style="fill:url(#SVGID_4767_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="511.76858"
- id="g83876"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83878">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4768_" />
- </defs>
- <clipPath
- id="clipPath102921">
- <use
- id="use102923"
- overflow="visible"
- xlink:href="#SVGID_4768_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83884"
- d="m -634.639,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4769_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83886"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4769_)"
- y="341.65302"
- x="-626.83099"
- style="fill:#ffffff" />
- <rect
- id="rect83888"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4769_)"
- y="341.65302"
- x="-626.83099"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83890"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4769_)"
- y="342.32599"
- x="-626.15997"
- style="fill:#81d0db" />
- <rect
- id="rect83892"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4769_)"
- y="342.98401"
- x="-625.5"
- style="fill:#ffffff" />
- <rect
- id="rect83894"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4769_)"
- y="344.164"
- x="-624.32098"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="503.22762"
- id="g83896"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83898">
- <path
- d="m -624.728,346.449 c 0,1.487 1.206,2.692 2.693,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.693,1.206 -2.693,2.692"
- id="SVGID_4770_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102934">
- <use
- id="use102936"
- overflow="visible"
- xlink:href="#SVGID_4770_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,177.1768,-1031.1833)"
- y2="-148.42999"
- x2="256.3541"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102938">
- <stop
- id="stop102940"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102942"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83909"
- height="5.3839998"
- width="5.3839998"
- clip-path="url(#SVGID_4771_)"
- y="343.75699"
- x="-624.72803"
- style="fill:url(#SVGID_4772_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="484.83387"
- id="g83911"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83913">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4773_" />
- </defs>
- <clipPath
- id="clipPath102948">
- <use
- id="use102950"
- overflow="visible"
- xlink:href="#SVGID_4773_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83919"
- d="m -622.668,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4774_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83921"
- height="9.592"
- width="9.5930004"
- clip-path="url(#SVGID_4774_)"
- y="341.65302"
- x="-614.85999"
- style="fill:#ffffff" />
- <rect
- id="rect83923"
- height="9.592"
- width="9.5930004"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4774_)"
- y="341.65302"
- x="-614.86102"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83925"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4774_)"
- y="342.32599"
- x="-614.18799"
- style="fill:#81d0db" />
- <rect
- id="rect83927"
- height="6.9299998"
- width="6.9310002"
- clip-path="url(#SVGID_4774_)"
- y="342.98401"
- x="-613.52899"
- style="fill:#ffffff" />
- <rect
- id="rect83929"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4774_)"
- y="344.164"
- x="-612.349"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="476.2917"
- id="g83931"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83933">
- <path
- d="m -612.756,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4775_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102961">
- <use
- id="use102963"
- overflow="visible"
- xlink:href="#SVGID_4775_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,189.1483,-1031.1833)"
- y2="-148.42999"
- x2="256.3541"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102965">
- <stop
- id="stop102967"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102969"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83944"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4776_)"
- y="343.75699"
- x="-612.75598"
- style="fill:url(#SVGID_4777_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="457.89686"
- id="g83946"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83948">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4778_" />
- </defs>
- <clipPath
- id="clipPath102975">
- <use
- id="use102977"
- overflow="visible"
- xlink:href="#SVGID_4778_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83954"
- d="m -610.696,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4779_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83956"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4779_)"
- y="341.65302"
- x="-602.888"
- style="fill:#ffffff" />
- <rect
- id="rect83958"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4779_)"
- y="341.65302"
- x="-602.888"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83960"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4779_)"
- y="342.32599"
- x="-602.21698"
- style="fill:#81d0db" />
- <rect
- id="rect83962"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4779_)"
- y="342.98401"
- x="-601.55701"
- style="fill:#ffffff" />
- <rect
- id="rect83964"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4779_)"
- y="344.164"
- x="-600.37799"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="449.35694"
- id="g83966"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83968">
- <path
- d="m -600.785,346.449 c 0,1.487 1.206,2.692 2.692,2.692 1.488,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.203,-2.692 -2.691,-2.692 -1.486,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4780_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath102988">
- <use
- id="use102990"
- overflow="visible"
- xlink:href="#SVGID_4780_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,201.1199,-1031.1833)"
- y2="-148.4301"
- x2="256.3541"
- y1="-148.4301"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient102992">
- <stop
- id="stop102994"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop102996"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect83979"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4781_)"
- y="343.75699"
- x="-600.78497"
- style="fill:url(#SVGID_4782_)" />
- </g>
- <g
- inkscape:transform-center-y="98.159342"
- inkscape:transform-center-x="430.96208"
- id="g83981"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs83983">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4783_" />
- </defs>
- <clipPath
- id="clipPath103002">
- <use
- id="use103004"
- overflow="visible"
- xlink:href="#SVGID_4783_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path83989"
- d="m -598.725,346.449 c 0,-0.349 0.283,-0.632 0.632,-0.632 0.351,0 0.634,0.283 0.634,0.632 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- clip-path="url(#SVGID_4784_)"
- inkscape:connector-curvature="0"
- style="fill:#ffffff" />
- <rect
- id="rect83991"
- height="9.592"
- width="9.592"
- clip-path="url(#SVGID_4784_)"
- y="341.65302"
- x="-590.91699"
- style="fill:#ffffff" />
- <rect
- id="rect83993"
- height="9.592"
- width="9.592"
- stroke-miterlimit="10"
- clip-path="url(#SVGID_4784_)"
- y="341.65302"
- x="-590.91699"
- style="fill:none;stroke:#81d0db;stroke-width:0.428;stroke-miterlimit:10" />
- <rect
- id="rect83995"
- height="8.2469997"
- width="8.2480001"
- clip-path="url(#SVGID_4784_)"
- y="342.32599"
- x="-590.24597"
- style="fill:#81d0db" />
- <rect
- id="rect83997"
- height="6.9299998"
- width="6.9299998"
- clip-path="url(#SVGID_4784_)"
- y="342.98401"
- x="-589.586"
- style="fill:#ffffff" />
- <rect
- id="rect83999"
- height="4.5679998"
- width="4.5700002"
- clip-path="url(#SVGID_4784_)"
- y="344.164"
- x="-588.40698"
- style="fill:#ffffff" />
- </g>
- <g
- inkscape:transform-center-y="98.159295"
- inkscape:transform-center-x="422.41995"
- id="g84001"
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)">
- <defs
- id="defs84003">
- <path
- d="m -588.813,346.449 c 0,1.487 1.205,2.692 2.692,2.692 1.487,0 2.691,-1.205 2.691,-2.692 0,-1.486 -1.204,-2.692 -2.691,-2.692 -1.487,0 -2.692,1.206 -2.692,2.692"
- id="SVGID_4785_"
- inkscape:connector-curvature="0" />
- </defs>
- <clipPath
- id="clipPath103015">
- <use
- id="use103017"
- overflow="visible"
- xlink:href="#SVGID_4785_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,5.3844,5.3844,0,213.0913,-1031.1833)"
- y2="-148.42999"
- x2="256.3541"
- y1="-148.42999"
- x1="255.3541"
- gradientUnits="userSpaceOnUse"
- id="linearGradient103019">
- <stop
- id="stop103021"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop103023"
- style="stop-color:#81D1DB"
- offset="1" />
- </linearGradient>
- <rect
- id="rect84014"
- height="5.3839998"
- width="5.3829999"
- clip-path="url(#SVGID_4786_)"
- y="343.75699"
- x="-588.81299"
- style="fill:url(#SVGID_4787_)" />
- </g>
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-667.777,292.47 -671.896,292.47 -669.845,294.263 "
- id="polygon84546" />
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-657.265,292.47 -661.384,292.47 -659.333,294.263 "
- id="polygon84548" />
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-646.752,292.47 -650.871,292.47 -648.82,294.263 "
- id="polygon84550" />
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-601.13,292.47 -605.249,292.47 -603.198,294.263 "
- id="polygon84552" />
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-590.618,292.47 -594.737,292.47 -592.686,294.263 "
- id="polygon84554" />
- <polygon
- transform="matrix(2.25,0,0,2.25,1605.7731,-25.560183)"
- style="fill:#f15d57"
- clip-path="url(#SVGID_4843_)"
- points="-580.105,292.47 -584.224,292.47 -582.173,294.263 "
- id="polygon84556" />
- <g
- inkscape:transform-center-y="141.90493"
- inkscape:transform-center-x="262.77489"
- id="g84792"
- transform="matrix(1.3542118,0,0,2.25,996.72494,-31.560183)">
- <defs
- id="defs84794">
- <rect
- height="205.44099"
- width="200.271"
- y="181.315"
- x="-682.31403"
- id="SVGID_4872_" />
- </defs>
- <clipPath
- id="clipPath103597">
- <use
- id="use103599"
- overflow="visible"
- xlink:href="#SVGID_4872_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <path
- id="path84800"
- d="m -438.652,188.287 c 0,0.349 -0.282,0.632 -0.632,0.632 -0.349,0 -0.632,-0.283 -0.632,-0.632 0,-0.35 0.283,-0.633 0.632,-0.633 0.35,0 0.632,0.284 0.632,0.633"
- clip-path="url(#SVGID_4873_)"
- inkscape:connector-curvature="0"
- style="fill:#5e6a71" />
- <g
- id="g84802"
- clip-path="url(#SVGID_4873_)">
- <g
- id="g84804">
- <defs
- id="defs84806">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="SVGID_4874_" />
- </defs>
- <clipPath
- id="clipPath103606">
- <use
- id="use103608"
- overflow="visible"
- xlink:href="#SVGID_4874_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <g
- id="g84812"
- clip-path="url(#SVGID_4875_)">
- <defs
- id="defs84814">
- <rect
- height="10.152"
- width="174.95799"
- y="360.13901"
- x="-679.90002"
- id="SVGID_4876_" />
- </defs>
- <clipPath
- id="clipPath103613">
- <use
- id="use103615"
- overflow="visible"
- xlink:href="#SVGID_4876_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <linearGradient
- gradientTransform="matrix(0,-10.1526,-10.1526,0,900.78,782.1111)"
- y2="147.0757"
- x2="41.563"
- y1="147.0757"
- x1="40.563"
- gradientUnits="userSpaceOnUse"
- id="linearGradient103617">
- <stop
- id="stop103619"
- style="stop-color:#55AEB9"
- offset="0" />
- <stop
- id="stop103621"
- style="stop-color:#B0D2D9"
- offset="0.486" />
- <stop
- id="stop103623"
- style="stop-color:#E6EFF1"
- offset="0.8287" />
- <stop
- id="stop103625"
- style="stop-color:#FFFFFF"
- offset="0.9939" />
- <stop
- id="stop103627"
- style="stop-color:#FFFFFF"
- offset="1" />
- </linearGradient>
- <rect
- id="rect84831"
- height="10.153"
- width="174.95799"
- clip-path="url(#SVGID_4877_)"
- y="360.138"
- x="-679.90002"
- style="fill:url(#SVGID_4878_)" />
- </g>
- </g>
- </g>
- <g
- id="g84833"
- clip-path="url(#SVGID_4873_)">
- <g
- id="g84835">
- <defs
- id="defs84837">
- <rect
- height="10.152"
- width="174.94701"
- y="360.13901"
- x="-679.88898"
- id="SVGID_4879_" />
- </defs>
- <clipPath
- id="clipPath103634">
- <use
- id="use103636"
- overflow="visible"
- xlink:href="#SVGID_4879_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <g
- id="g84843"
- clip-path="url(#SVGID_4880_)">
- <defs
- id="defs84845">
- <rect
- height="10.153"
- width="174.94701"
- y="360.138"
- x="-679.88898"
- id="SVGID_4881_" />
- </defs>
- <clipPath
- id="clipPath103641">
- <use
- id="use103643"
- overflow="visible"
- xlink:href="#SVGID_4881_"
- style="overflow:visible"
- x="0"
- y="0"
- width="744.09448"
- height="1052.3622" />
- </clipPath>
- <polygon
- id="polygon84851"
- points="-679.89,364.81 -679.89,367.139 -679.89,370.291 -504.943,370.291 -504.943,360.138 -679.89,360.139 "
- clip-path="url(#SVGID_4882_)"
- style="fill:#f15d57" />
- </g>
- </g>
- </g>
- <rect
- id="rect84853"
- height="2.641"
- width="174.96001"
- clip-path="url(#SVGID_4873_)"
- y="360.267"
- x="-679.90198"
- style="fill:#f15d57" />
- <rect
- id="rect84855"
- height="1.352"
- width="174.94701"
- clip-path="url(#SVGID_4873_)"
- y="370.29199"
- x="-679.88898"
- style="fill:#55aeb9" />
- </g>
- <text
- inkscape:transform-center-y="45.543285"
- inkscape:transform-center-x="450.06672"
- id="text82351-9"
- font-size="4.3343"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- x="255.23141"
- y="705.37921">M</text>
- <g
- transform="translate(-230,34)"
- id="g9504">
- <g
- transform="matrix(2.25,0,0,2.25,1701.0081,-85.193202)"
- id="g82339-6"
- inkscape:transform-center-x="449.81598"
- inkscape:transform-center-y="45.666809">
- <defs
- id="defs82341-9">
- <rect
- id="SVGID_4549_-8"
- x="-682.31403"
- y="181.315"
- width="200.271"
- height="205.44099" />
- </defs>
- <clipPath
- id="clipPath101738-3">
- <use
- height="1052.3622"
- width="744.09448"
- y="0"
- x="0"
- style="overflow:visible"
- xlink:href="#SVGID_4549_-8"
- overflow="visible"
- id="use101740-3" />
- </clipPath>
- <path
- style="fill:#f15d57"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_-6)"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82347-9" />
- <path
- style="fill:none;stroke:#ffffff;stroke-width:0.32100001;stroke-miterlimit:10"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4550_-6)"
- stroke-miterlimit="10"
- d="m -602.031,326.467 c 0,0.212 0.172,0.385 0.385,0.385 h 6.697 c 0.212,0 0.385,-0.173 0.385,-0.385 v -6.696 c 0,-0.213 -0.173,-0.385 -0.385,-0.385 h -6.697 c -0.213,0 -0.385,0.172 -0.385,0.385 v 6.696 z"
- id="path82349-9" />
- </g>
- <text
- y="645.37921"
- x="350.6293"
- style="font-size:9.75217533px;fill:#ffffff;font-family:ApexSans-Medium"
- font-size="4.3343"
- id="text82351-9-4"
- inkscape:transform-center-x="450.06672"
- inkscape:transform-center-y="45.543285">M</text>
- </g>
- <path
- transform="matrix(2.25,0,0,2.25,1767.5425,-25.466067)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2" />
- <path
- transform="matrix(2.25,0,0,2.25,1578.7139,-25.075587)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-3)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-2" />
- <path
- transform="matrix(2.25,0,0,2.25,1767.5425,0.59793262)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-9)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-0" />
- <path
- transform="matrix(2.25,0,0,2.25,1767.6425,26.597933)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-9-3)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-0-1" />
- <path
- transform="matrix(2.25,0,0,2.25,1767.7422,53.197933)"
- style="fill:#ffffff"
- inkscape:connector-curvature="0"
- clip-path="url(#SVGID_4564_-7-9-3-4)"
- d="m -658.582,311.532 c 0,-0.349 0.283,-0.631 0.632,-0.631 0.351,0 0.634,0.282 0.634,0.631 0,0.35 -0.283,0.633 -0.634,0.633 -0.349,0 -0.632,-0.283 -0.632,-0.633"
- id="path82449-2-0-1-5" />
- </g>
- <text
- y="293.47144"
- x="168.09497"
- id="text84343-2-0-4"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="123.1228"
- y="293.47144"
- font-size="5.1244"
- id="tspan84345-2-6-5">READ ONLY</tspan>
- </text>
- <text
- y="292.96655"
- x="321.78174"
- id="text84343-2-0-4-3"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="276.80957"
- y="292.96655"
- font-size="5.1244"
- id="tspan84345-2-6-5-3">WRITE / READ</tspan>
- </text>
- <text
- y="262.38412"
- x="242.19797"
- id="text84343-2-0-4-6"
- inkscape:transform-center-x="587.62742"
- inkscape:transform-center-y="-134.7035"
- style="font-size:27px;text-align:center;text-anchor:middle">
- <tspan
- style="font-size:11px;text-align:center;text-anchor:middle;fill:#37424b;font-family:ApexSans-Book"
- x="197.2258"
- y="262.38412"
- font-size="5.1244"
- id="tspan84345-2-6-5-6">(United States)</tspan>
- </text>
- </g>
-</svg>
diff --git a/src/ceph/doc/images/zone-sync2.png b/src/ceph/doc/images/zone-sync2.png
deleted file mode 100644
index 67963dc..0000000
--- a/src/ceph/doc/images/zone-sync2.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/index.rst b/src/ceph/doc/index.rst
deleted file mode 100644
index ad2bd71..0000000
--- a/src/ceph/doc/index.rst
+++ /dev/null
@@ -1,108 +0,0 @@
-=================
- Welcome to Ceph
-=================
-
-Ceph uniquely delivers **object, block, and file storage in one unified
-system**.
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="33%"><col width="33%"><col width="33%"></colgroup><tbody valign="top"><tr><td><h3>Ceph Object Store</h3>
-
-- RESTful Interface
-- S3- and Swift-compliant APIs
-- S3-style subdomains
-- Unified S3/Swift namespace
-- User management
-- Usage tracking
-- Striped objects
-- Cloud solution integration
-- Multi-site deployment
-- Multi-site replication
-
-.. raw:: html
-
- </td><td><h3>Ceph Block Device</h3>
-
-
-- Thin-provisioned
-- Images up to 16 exabytes
-- Configurable striping
-- In-memory caching
-- Snapshots
-- Copy-on-write cloning
-- Kernel driver support
-- KVM/libvirt support
-- Back-end for cloud solutions
-- Incremental backup
-- Disaster recovery (multisite asynchronous replication)
-
-.. raw:: html
-
- </td><td><h3>Ceph Filesystem</h3>
-
-- POSIX-compliant semantics
-- Separates metadata from data
-- Dynamic rebalancing
-- Subdirectory snapshots
-- Configurable striping
-- Kernel driver support
-- FUSE support
-- NFS/CIFS deployable
-- Use with Hadoop (replace HDFS)
-
-.. raw:: html
-
- </td></tr><tr><td>
-
-See `Ceph Object Store`_ for additional details.
-
-.. raw:: html
-
- </td><td>
-
-See `Ceph Block Device`_ for additional details.
-
-.. raw:: html
-
- </td><td>
-
-See `Ceph Filesystem`_ for additional details.
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-Ceph is highly reliable, easy to manage, and free. The power of Ceph
-can transform your company's IT infrastructure and your ability to manage vast
-amounts of data. To try Ceph, see our `Getting Started`_ guides. To learn more
-about Ceph, see our `Architecture`_ section.
-
-
-
-.. _Ceph Object Store: radosgw
-.. _Ceph Block Device: rbd
-.. _Ceph Filesystem: cephfs
-.. _Getting Started: start
-.. _Architecture: architecture
-
-.. toctree::
- :maxdepth: 1
- :hidden:
-
- start/intro
- start/index
- install/index
- rados/index
- cephfs/index
- rbd/index
- radosgw/index
- mgr/index
- api/index
- architecture
- Development <dev/index>
- ceph-volume/index
- release-notes
- releases
- Glossary <glossary>
diff --git a/src/ceph/doc/install/build-ceph.rst b/src/ceph/doc/install/build-ceph.rst
deleted file mode 100644
index 9c834b9..0000000
--- a/src/ceph/doc/install/build-ceph.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-============
- Build Ceph
-============
-
-You can get Ceph software by retrieving Ceph source code and building it yourself.
-To build Ceph, you need to set up a development environment, compile Ceph,
-and then either install in user space or build packages and install the packages.
-
-Build Prerequisites
-===================
-
-
-.. tip:: Check this section to see if there are specific prerequisites for your
- Linux/Unix distribution.
-
-Before you can build Ceph source code, you need to install several libraries
-and tools::
-
- ./install-deps.sh
-
-.. note:: Some distributions that support Google's memory profiler tool may use
- a different package name (e.g., ``libgoogle-perftools4``).
-
-Build Ceph
-==========
-
-Ceph is built using cmake. To build Ceph, navigate to your cloned Ceph
-repository and execute the following::
-
- cd ceph
- ./do_cmake.sh
- cd build
- make
-
-.. topic:: Hyperthreading
-
- You can use ``make -j`` to execute multiple jobs depending upon your system. For
- example, ``make -j4`` for a dual core processor may build faster.
-
-See `Installing a Build`_ to install a build in user space.
-
-Build Ceph Packages
-===================
-
-To build packages, you must clone the `Ceph`_ repository. You can create
-installation packages from the latest code using ``dpkg-buildpackage`` for
-Debian/Ubuntu or ``rpmbuild`` for the RPM Package Manager.
-
-.. tip:: When building on a multi-core CPU, use the ``-j`` and the number of
- cores * 2. For example, use ``-j4`` for a dual-core processor to accelerate
- the build.
-
-
-Advanced Package Tool (APT)
----------------------------
-
-To create ``.deb`` packages for Debian/Ubuntu, ensure that you have cloned the
-`Ceph`_ repository, installed the `Build Prerequisites`_ and installed
-``debhelper``::
-
- sudo apt-get install debhelper
-
-Once you have installed debhelper, you can build the packages::
-
- sudo dpkg-buildpackage
-
-For multi-processor CPUs use the ``-j`` option to accelerate the build.
-
-
-RPM Package Manager
--------------------
-
-To create ``.rpm`` packages, ensure that you have cloned the `Ceph`_ repository,
-installed the `Build Prerequisites`_ and installed ``rpm-build`` and
-``rpmdevtools``::
-
- yum install rpm-build rpmdevtools
-
-Once you have installed the tools, setup an RPM compilation environment::
-
- rpmdev-setuptree
-
-Fetch the source tarball for the RPM compilation environment::
-
- wget -P ~/rpmbuild/SOURCES/ http://ceph.com/download/ceph-<version>.tar.bz2
-
-Or from the EU mirror::
-
- wget -P ~/rpmbuild/SOURCES/ http://eu.ceph.com/download/ceph-<version>.tar.bz2
-
-Extract the specfile::
-
- tar --strip-components=1 -C ~/rpmbuild/SPECS/ --no-anchored -xvjf ~/rpmbuild/SOURCES/ceph-<version>.tar.bz2 "ceph.spec"
-
-Build the RPM packages::
-
- rpmbuild -ba ~/rpmbuild/SPECS/ceph.spec
-
-For multi-processor CPUs use the ``-j`` option to accelerate the build.
-
-.. _Ceph: ../clone-source
-.. _Installing a Build: ../install-storage-cluster#installing-a-build
diff --git a/src/ceph/doc/install/clone-source.rst b/src/ceph/doc/install/clone-source.rst
deleted file mode 100644
index 9ed32c0..0000000
--- a/src/ceph/doc/install/clone-source.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-=========================================
- Cloning the Ceph Source Code Repository
-=========================================
-
-You may clone a Ceph branch of the Ceph source code by going to `github Ceph
-Repository`_, selecting a branch (``master`` by default), and clicking the
-**Download ZIP** button.
-
-.. _github Ceph Repository: https://github.com/ceph/ceph
-
-
-To clone the entire git repository, install and configure ``git``.
-
-
-Install Git
-===========
-
-To install ``git`` on Debian/Ubuntu, execute::
-
- sudo apt-get install git
-
-
-To install ``git`` on CentOS/RHEL, execute::
-
- sudo yum install git
-
-
-You must also have a ``github`` account. If you do not have a
-``github`` account, go to `github.com`_ and register.
-Follow the directions for setting up git at
-`Set Up Git`_.
-
-.. _github.com: http://github.com
-.. _Set Up Git: http://help.github.com/linux-set-up-git
-
-
-Add SSH Keys (Optional)
-=======================
-
-If you intend to commit code to Ceph or to clone using SSH
-(``git@github.com:ceph/ceph.git``), you must generate SSH keys for github.
-
-.. tip:: If you only intend to clone the repository, you may
- use ``git clone --recursive https://github.com/ceph/ceph.git``
- without generating SSH keys.
-
-To generate SSH keys for ``github``, execute::
-
- ssh-keygen
-
-Get the key to add to your ``github`` account (the following example
-assumes you used the default file path)::
-
- cat .ssh/id_rsa.pub
-
-Copy the public key.
-
-Go to your ``github`` account, click on "Account Settings" (i.e., the
-'tools' icon); then, click "SSH Keys" on the left side navbar.
-
-Click "Add SSH key" in the "SSH Keys" list, enter a name for the key, paste the
-key you generated, and press the "Add key" button.
-
-
-Clone the Source
-================
-
-To clone the Ceph source code repository, execute::
-
- git clone --recursive https://github.com/ceph/ceph.git
-
-Once ``git clone`` executes, you should have a full copy of the Ceph
-repository.
-
-.. tip:: Make sure you maintain the latest copies of the submodules
- included in the repository. Running ``git status`` will tell you if
- the submodules are out of date.
-
-::
-
- cd ceph
- git status
-
-If your submodules are out of date, run::
-
- git submodule update --force --init --recursive
-
-Choose a Branch
-===============
-
-Once you clone the source code and submodules, your Ceph repository
-will be on the ``master`` branch by default, which is the unstable
-development branch. You may choose other branches too.
-
-- ``master``: The unstable development branch.
-- ``stable``: The bugfix branch.
-- ``next``: The release candidate branch.
-
-::
-
- git checkout master
diff --git a/src/ceph/doc/install/get-packages.rst b/src/ceph/doc/install/get-packages.rst
deleted file mode 100644
index 02a24cd..0000000
--- a/src/ceph/doc/install/get-packages.rst
+++ /dev/null
@@ -1,436 +0,0 @@
-==============
- Get Packages
-==============
-
-To install Ceph and other enabling software, you need to retrieve packages from
-the Ceph repository. Follow this guide to get packages; then, proceed to the
-`Install Ceph Object Storage`_.
-
-
-Getting Packages
-================
-
-There are two ways to get packages:
-
-- **Add Repositories:** Adding repositories is the easiest way to get packages,
- because package management tools will retrieve the packages and all enabling
- software for you in most cases. However, to use this approach, each
- :term:`Ceph Node` in your cluster must have internet access.
-
-- **Download Packages Manually:** Downloading packages manually is a convenient
- way to install Ceph if your environment does not allow a :term:`Ceph Node` to
- access the internet.
-
-
-Requirements
-============
-
-All Ceph deployments require Ceph packages (except for development). You should
-also add keys and recommended packages.
-
-- **Keys: (Recommended)** Whether you add repositories or download packages
- manually, you should download keys to verify the packages. If you do not get
- the keys, you may encounter security warnings. There are two keys: one for
- releases (common) and one for development (programmers and QA only). Choose
- the key that suits your needs. See `Add Keys`_ for details.
-
-- **Ceph: (Required)** All Ceph deployments require Ceph release packages,
- except for deployments that use development packages (development, QA, and
- bleeding edge deployments only). See `Add Ceph`_ for details.
-
-- **Ceph Development: (Optional)** If you are developing for Ceph, testing Ceph
- development builds, or if you want features from the bleeding edge of Ceph
- development, you may get Ceph development packages. See
- `Add Ceph Development`_ for details.
-
-- **Apache/FastCGI: (Optional)** If you are deploying a
- :term:`Ceph Object Storage` service, you must install Apache and FastCGI.
- Ceph provides Apache and FastCGI builds that are identical to those available
- from Apache, but with 100-continue support. If you want to enable
- :term:`Ceph Object Gateway` daemons with 100-continue support, you must
- retrieve Apache/FastCGI packages from the Ceph repository.
- See `Add Apache/FastCGI`_ for details.
-
-
-If you intend to download packages manually, see Section `Download Packages`_.
-
-
-Add Keys
-========
-
-Add a key to your system's list of trusted keys to avoid a security warning. For
-major releases (e.g., ``hammer``, ``jewel``) and development releases
-(``release-name-rc1``, ``release-name-rc2``), use the ``release.asc`` key. For
-development testing packages, use the ``autobuild.asc`` key (developers and
-QA).
-
-
-APT
----
-
-To install the ``release.asc`` key, execute the following::
-
- wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
-
-
-To install the ``autobuild.asc`` key, execute the following
-(QA and developers only)::
-
- wget -q -O- 'https://download.ceph.com/keys/autobuild.asc' | sudo apt-key add -
-
-
-RPM
----
-
-To install the ``release.asc`` key, execute the following::
-
- sudo rpm --import 'https://download.ceph.com/keys/release.asc'
-
-To install the ``autobuild.asc`` key, execute the following
-(QA and developers only)::
-
- sudo rpm --import 'https://download.ceph.com/keys/autobuild.asc'
-
-
-Add Ceph
-========
-
-Release repositories use the ``release.asc`` key to verify packages.
-To install Ceph packages with the Advanced Package Tool (APT) or
-Yellowdog Updater, Modified (YUM), you must add Ceph repositories.
-
-You may find releases for Debian/Ubuntu (installed with APT) at::
-
- https://download.ceph.com/debian-{release-name}
-
-You may find releases for CentOS/RHEL and others (installed with YUM) at::
-
- https://download.ceph.com/rpm-{release-name}
-
-The major releases of Ceph are summarized at: :doc:`/releases`.
-
-Every second major release is considered Long Term Stable (LTS). Critical
-bugfixes are backported to LTS releases until their retirement. Since retired
-releases are no longer maintained, we recommend that users upgrade their
-clusters regularly - preferably to the latest LTS release.
-
-The most recent LTS release is Jewel (10.2.x).
-
-.. tip:: For international users: There might be a mirror close to you where download Ceph from. For more information see: `Ceph Mirrors`_.
-
-Debian Packages
----------------
-
-Add a Ceph package repository to your system's list of APT sources. For newer
-versions of Debian/Ubuntu, call ``lsb_release -sc`` on the command line to
-get the short codename, and replace ``{codename}`` in the following command. ::
-
- sudo apt-add-repository 'deb https://download.ceph.com/debian-jewel/ {codename} main'
-
-For early Linux distributions, you may execute the following command::
-
- echo deb https://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-For earlier Ceph releases, replace ``{release-name}`` with the name with the
-name of the Ceph release. You may call ``lsb_release -sc`` on the command line
-to get the short codename, and replace ``{codename}`` in the following command.
-::
-
- sudo apt-add-repository 'deb https://download.ceph.com/debian-{release-name}/ {codename} main'
-
-For older Linux distributions, replace ``{release-name}`` with the name of the
-release::
-
- echo deb https://download.ceph.com/debian-{release-name}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-Ceph on ARM processors requires Google's memory profiling tools (``google-perftools``).
-The Ceph repository should have a copy at
-https://download.ceph.com/packages/google-perftools/debian. ::
-
- echo deb https://download.ceph.com/packages/google-perftools/debian $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/google-perftools.list
-
-
-For development release packages, add our package repository to your system's
-list of APT sources. See `the testing Debian repository`_ for a complete list
-of Debian and Ubuntu releases supported. ::
-
- echo deb https://download.ceph.com/debian-testing/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-.. tip:: For international users: There might be a mirror close to you where download Ceph from. For more information see: `Ceph Mirrors`_.
-
-RPM Packages
-------------
-
-For major releases, you may add a Ceph entry to the ``/etc/yum.repos.d``
-directory. Create a ``ceph.repo`` file. In the example below, replace
-``{ceph-release}`` with a major release of Ceph (e.g., ``hammer``, ``jewel``,
-etc.) and ``{distro}`` with your Linux distribution (e.g., ``el7``, etc.). You
-may view https://download.ceph.com/rpm-{ceph-release}/ directory to see which
-distributions Ceph supports. Some Ceph packages (e.g., EPEL) must take priority
-over standard packages, so you must ensure that you set
-``priority=2``. ::
-
- [ceph]
- name=Ceph packages for $basearch
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/$basearch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-source]
- name=Ceph source packages
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/SRPMS
- enabled=0
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-For development release packages, you may specify the repository
-for development releases instead. ::
-
- [ceph]
- name=Ceph packages for $basearch/$releasever
- baseurl=https://download.ceph.com/rpm-testing/{distro}/$basearch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://download.ceph.com/rpm-testing/{distro}/noarch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-source]
- name=Ceph source packages
- baseurl=https://download.ceph.com/rpm-testing/{distro}/SRPMS
- enabled=0
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-For specific packages, you may retrieve them by specifically downloading the
-release package by name. Our development process generates a new release of Ceph
-every 3-4 weeks. These packages are faster-moving than the major releases.
-Development packages have new features integrated quickly, while still
-undergoing several weeks of QA prior to release.
-
-The repository package installs the repository details on your local system for
-use with ``yum``. Replace ``{distro}`` with your Linux distribution, and
-``{release}`` with the specific release of Ceph::
-
- su -c 'rpm -Uvh https://download.ceph.com/rpms/{distro}/x86_64/ceph-{release}.el7.noarch.rpm'
-
-You can download the RPMs directly from::
-
- https://download.ceph.com/rpm-testing
-
-.. tip:: For international users: There might be a mirror close to you where download Ceph from. For more information see: `Ceph Mirrors`_.
-
-
-Add Ceph Development
-====================
-
-Development repositories use the ``autobuild.asc`` key to verify packages.
-If you are developing Ceph and need to deploy and test specific Ceph branches,
-ensure that you remove repository entries for major releases first.
-
-
-Debian Packages
----------------
-
-We automatically build Debian and Ubuntu packages for current
-development branches in the Ceph source code repository. These
-packages are intended for developers and QA only.
-
-Add our package repository to your system's list of APT sources, but
-replace ``{BRANCH}`` with the branch you'd like to use (e.g., chef-3,
-wip-hack, master). See `the gitbuilder page`_ for a complete
-list of distributions we build. ::
-
- echo deb http://gitbuilder.ceph.com/ceph-deb-$(lsb_release -sc)-x86_64-basic/ref/{BRANCH} $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-
-RPM Packages
-------------
-
-For current development branches, you may add a Ceph entry to the
-``/etc/yum.repos.d`` directory. Create a ``ceph.repo`` file. In the example
-below, replace ``{distro}`` with your Linux distribution (e.g., ``el7``), and
-``{branch}`` with the name of the branch you want to install. ::
-
-
- [ceph-source]
- name=Ceph source packages
- baseurl=http://gitbuilder.ceph.com/ceph-rpm-{distro}-x86_64-basic/ref/{branch}/SRPMS
- enabled=0
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
-
-You may view http://gitbuilder.ceph.com directory to see which distributions
-Ceph supports.
-
-
-Add Apache/FastCGI
-==================
-
-Ceph Object Gateway works with ordinary Apache and FastCGI libraries. However,
-Ceph builds Apache and FastCGI packages that support 100-continue. To use the
-Ceph Apache and FastCGI packages, add them to your repository.
-
-
-Debian Packages
----------------
-
-Add our Apache and FastCGI packages to your system's list of APT sources if you intend to
-use 100-continue. ::
-
- echo deb http://gitbuilder.ceph.com/apache2-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph-apache.list
- echo deb http://gitbuilder.ceph.com/libapache-mod-fastcgi-deb-$(lsb_release -sc)-x86_64-basic/ref/master $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph-fastcgi.list
-
-
-RPM Packages
-------------
-
-You may add a Ceph entry to the ``/etc/yum.repos.d`` directory. Create a
-``ceph-apache.repo`` file. In the example below, replace ``{distro}`` with your
-Linux distribution (e.g., ``el7``). You may view http://gitbuilder.ceph.com
-directory to see which distributions Ceph supports.
-::
-
-
- [apache2-ceph-noarch]
- name=Apache noarch packages for Ceph
- baseurl=http://gitbuilder.ceph.com/apache2-rpm-{distro}-x86_64-basic/ref/master
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
- [apache2-ceph-source]
- name=Apache source packages for Ceph
- baseurl=http://gitbuilder.ceph.com/apache2-rpm-{distro}-x86_64-basic/ref/master
- enabled=0
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
-
-Repeat the forgoing process by creating a ``ceph-fastcgi.repo`` file. ::
-
- [fastcgi-ceph-basearch]
- name=FastCGI basearch packages for Ceph
- baseurl=http://gitbuilder.ceph.com/mod_fastcgi-rpm-{distro}-x86_64-basic/ref/master
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
- [fastcgi-ceph-noarch]
- name=FastCGI noarch packages for Ceph
- baseurl=http://gitbuilder.ceph.com/mod_fastcgi-rpm-{distro}-x86_64-basic/ref/master
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
- [fastcgi-ceph-source]
- name=FastCGI source packages for Ceph
- baseurl=http://gitbuilder.ceph.com/mod_fastcgi-rpm-{distro}-x86_64-basic/ref/master
- enabled=0
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/autobuild.asc
-
-
-Download Packages
-=================
-
-If you are attempting to install behind a firewall in an environment without internet
-access, you must retrieve the packages (mirrored with all the necessary dependencies)
-before attempting an install.
-
-Debian Packages
----------------
-
-Ceph requires additional additional third party libraries.
-
-- libaio1
-- libsnappy1
-- libcurl3
-- curl
-- libgoogle-perftools4
-- google-perftools
-- libleveldb1
-
-
-The repository package installs the repository details on your local system for
-use with ``apt``. Replace ``{release}`` with the latest Ceph release. Replace
-``{version}`` with the latest Ceph version number. Replace ``{distro}`` with
-your Linux distribution codename. Replace ``{arch}`` with the CPU architecture.
-
-::
-
- wget -q https://download.ceph.com/debian-{release}/pool/main/c/ceph/ceph_{version}{distro}_{arch}.deb
-
-
-RPM Packages
-------------
-
-Ceph requires additional additional third party libraries.
-To add the EPEL repository, execute the following::
-
- sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
-Ceph requires the following packages:
-
-- snappy
-- leveldb
-- gdisk
-- python-argparse
-- gperftools-libs
-
-
-Packages are currently built for the RHEL/CentOS7 (``el7``) platforms. The
-repository package installs the repository details on your local system for use
-with ``yum``. Replace ``{distro}`` with your distribution. ::
-
- su -c 'rpm -Uvh https://download.ceph.com/rpm-jewel/{distro}/noarch/ceph-{version}.{distro}.noarch.rpm'
-
-For example, for CentOS 7 (``el7``)::
-
- su -c 'rpm -Uvh https://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-0.el7.noarch.rpm'
-
-You can download the RPMs directly from::
-
- https://download.ceph.com/rpm-jewel
-
-
-For earlier Ceph releases, replace ``{release-name}`` with the name
-with the name of the Ceph release. You may call ``lsb_release -sc`` on the command
-line to get the short codename. ::
-
- su -c 'rpm -Uvh https://download.ceph.com/rpm-{release-name}/{distro}/noarch/ceph-{version}.{distro}.noarch.rpm'
-
-
-
-
-.. _Install Ceph Object Storage: ../install-storage-cluster
-.. _the testing Debian repository: https://download.ceph.com/debian-testing/dists
-.. _the gitbuilder page: http://gitbuilder.ceph.com
-.. _Ceph Mirrors: ../mirrors
diff --git a/src/ceph/doc/install/get-tarballs.rst b/src/ceph/doc/install/get-tarballs.rst
deleted file mode 100644
index 175d039..0000000
--- a/src/ceph/doc/install/get-tarballs.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-====================================
- Downloading a Ceph Release Tarball
-====================================
-
-As Ceph development progresses, the Ceph team releases new versions of the
-source code. You may download source code tarballs for Ceph releases here:
-
-`Ceph Release Tarballs`_
-
-.. tip:: For international users: There might be a mirror close to you where download Ceph from. For more information see: `Ceph Mirrors`_.
-
-
-.. _Ceph Release Tarballs: https://download.ceph.com/tarballs/
-.. _Ceph Mirrors: ../mirrors
diff --git a/src/ceph/doc/install/index.rst b/src/ceph/doc/install/index.rst
deleted file mode 100644
index d9dde72..0000000
--- a/src/ceph/doc/install/index.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-=======================
- Installation (Manual)
-=======================
-
-
-Get Software
-============
-
-There are several methods for getting Ceph software. The easiest and most common
-method is to `get packages`_ by adding repositories for use with package
-management tools such as the Advanced Package Tool (APT) or Yellowdog Updater,
-Modified (YUM). You may also retrieve pre-compiled packages from the Ceph
-repository. Finally, you can retrieve tarballs or clone the Ceph source code
-repository and build Ceph yourself.
-
-
-.. toctree::
- :maxdepth: 1
-
- Get Packages <get-packages>
- Get Tarballs <get-tarballs>
- Clone Source <clone-source>
- Build Ceph <build-ceph>
- Ceph Mirrors <mirrors>
-
-
-Install Software
-================
-
-Once you have the Ceph software (or added repositories), installing the software
-is easy. To install packages on each :term:`Ceph Node` in your cluster. You may
-use ``ceph-deploy`` to install Ceph for your storage cluster, or use package
-management tools. You should install Yum Priorities for RHEL/CentOS and other
-distributions that use Yum if you intend to install the Ceph Object Gateway or
-QEMU.
-
-.. toctree::
- :maxdepth: 1
-
- Install ceph-deploy <install-ceph-deploy>
- Install Ceph Storage Cluster <install-storage-cluster>
- Install Ceph Object Gateway <install-ceph-gateway>
- Install Virtualization for Block <install-vm-cloud>
-
-
-Deploy a Cluster Manually
-=========================
-
-Once you have Ceph installed on your nodes, you can deploy a cluster manually.
-The manual procedure is primarily for exemplary purposes for those developing
-deployment scripts with Chef, Juju, Puppet, etc.
-
-.. toctree::
-
- Manual Deployment <manual-deployment>
- Manual Deployment on FreeBSD <manual-freebsd-deployment>
-
-Upgrade Software
-================
-
-As new versions of Ceph become available, you may upgrade your cluster to take
-advantage of new functionality. Read the upgrade documentation before you
-upgrade your cluster. Sometimes upgrading Ceph requires you to follow an upgrade
-sequence.
-
-.. toctree::
- :maxdepth: 2
-
- Upgrading Ceph <upgrading-ceph>
-
-.. _get packages: ../install/get-packages
diff --git a/src/ceph/doc/install/install-ceph-deploy.rst b/src/ceph/doc/install/install-ceph-deploy.rst
deleted file mode 100644
index d6516ad..0000000
--- a/src/ceph/doc/install/install-ceph-deploy.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-=====================
- Install Ceph Deploy
-=====================
-
-The ``ceph-deploy`` tool enables you to set up and tear down Ceph clusters
-for development, testing and proof-of-concept projects.
-
-
-APT
----
-
-To install ``ceph-deploy`` with ``apt``, execute the following::
-
- sudo apt-get update && sudo apt-get install ceph-deploy
-
-
-RPM
----
-
-To install ``ceph-deploy`` with ``yum``, execute the following::
-
- sudo yum install ceph-deploy
-
diff --git a/src/ceph/doc/install/install-ceph-gateway.rst b/src/ceph/doc/install/install-ceph-gateway.rst
deleted file mode 100644
index cf599cd..0000000
--- a/src/ceph/doc/install/install-ceph-gateway.rst
+++ /dev/null
@@ -1,605 +0,0 @@
-===========================
-Install Ceph Object Gateway
-===========================
-
-As of `firefly` (v0.80), Ceph Object Gateway is running on Civetweb (embedded
-into the ``ceph-radosgw`` daemon) instead of Apache and FastCGI. Using Civetweb
-simplifies the Ceph Object Gateway installation and configuration.
-
-.. note:: To run the Ceph Object Gateway service, you should have a running
- Ceph storage cluster, and the gateway host should have access to the
- public network.
-
-.. note:: In version 0.80, the Ceph Object Gateway does not support SSL. You
- may setup a reverse proxy server with SSL to dispatch HTTPS requests
- as HTTP requests to CivetWeb.
-
-Execute the Pre-Installation Procedure
---------------------------------------
-
-See Preflight_ and execute the pre-installation procedures on your Ceph Object
-Gateway node. Specifically, you should disable ``requiretty`` on your Ceph
-Deploy user, set SELinux to ``Permissive`` and set up a Ceph Deploy user with
-password-less ``sudo``. For Ceph Object Gateways, you will need to open the
-port that Civetweb will use in production.
-
-.. note:: Civetweb runs on port ``7480`` by default.
-
-Install Ceph Object Gateway
----------------------------
-
-From the working directory of your administration server, install the Ceph
-Object Gateway package on the Ceph Object Gateway node. For example::
-
- ceph-deploy install --rgw <gateway-node1> [<gateway-node2> ...]
-
-The ``ceph-common`` package is a dependency, so ``ceph-deploy`` will install
-this too. The ``ceph`` CLI tools are intended for administrators. To make your
-Ceph Object Gateway node an administrator node, execute the following from the
-working directory of your administration server::
-
- ceph-deploy admin <node-name>
-
-Create a Gateway Instance
--------------------------
-
-From the working directory of your administration server, create an instance of
-the Ceph Object Gateway on the Ceph Object Gateway. For example::
-
- ceph-deploy rgw create <gateway-node1>
-
-Once the gateway is running, you should be able to access it on port ``7480``
-with an unauthenticated request like this::
-
- http://client-node:7480
-
-If the gateway instance is working properly, you should receive a response like
-this::
-
- <?xml version="1.0" encoding="UTF-8"?>
- <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
- <Owner>
- <ID>anonymous</ID>
- <DisplayName></DisplayName>
- </Owner>
- <Buckets>
- </Buckets>
- </ListAllMyBucketsResult>
-
-If at any point you run into trouble and you want to start over, execute the
-following to purge the configuration::
-
- ceph-deploy purge <gateway-node1> [<gateway-node2>]
- ceph-deploy purgedata <gateway-node1> [<gateway-node2>]
-
-If you execute ``purge``, you must re-install Ceph.
-
-Change the Default Port
------------------------
-
-Civetweb runs on port ``7480`` by default. To change the default port (e.g., to
-port ``80``), modify your Ceph configuration file in the working directory of
-your administration server. Add a section entitled
-``[client.rgw.<gateway-node>]``, replacing ``<gateway-node>`` with the short
-node name of your Ceph Object Gateway node (i.e., ``hostname -s``).
-
-.. note:: As of version 11.0.1, the Ceph Object Gateway **does** support SSL.
- See `Using SSL with Civetweb`_ for information on how to set that up.
-
-For example, if your node name is ``gateway-node1``, add a section like this
-after the ``[global]`` section::
-
- [client.rgw.gateway-node1]
- rgw_frontends = "civetweb port=80"
-
-.. note:: Ensure that you leave no whitespace between ``port=<port-number>`` in
- the ``rgw_frontends`` key/value pair. The ``[client.rgw.gateway-node1]``
- heading identifies this portion of the Ceph configuration file as
- configuring a Ceph Storage Cluster client where the client type is a Ceph
- Object Gateway (i.e., ``rgw``), and the name of the instance is
- ``gateway-node1``.
-
-Push the updated configuration file to your Ceph Object Gateway node
-(and other Ceph nodes)::
-
- ceph-deploy --overwrite-conf config push <gateway-node> [<other-nodes>]
-
-To make the new port setting take effect, restart the Ceph Object
-Gateway::
-
- sudo systemctl restart ceph-radosgw.service
-
-Finally, check to ensure that the port you selected is open on the node's
-firewall (e.g., port ``80``). If it is not open, add the port and reload the
-firewall configuration. If you use the ``firewalld`` daemon, execute::
-
- sudo firewall-cmd --list-all
- sudo firewall-cmd --zone=public --add-port 80/tcp --permanent
- sudo firewall-cmd --reload
-
-If you use ``iptables``, execute::
-
- sudo iptables --list
- sudo iptables -I INPUT 1 -i <iface> -p tcp -s <ip-address>/<netmask> --dport 80 -j ACCEPT
-
-Replace ``<iface>`` and ``<ip-address>/<netmask>`` with the relevant values for
-your Ceph Object Gateway node.
-
-Once you have finished configuring ``iptables``, ensure that you make the
-change persistent so that it will be in effect when your Ceph Object Gateway
-node reboots. Execute::
-
- sudo apt-get install iptables-persistent
-
-A terminal UI will open up. Select ``yes`` for the prompts to save current
-``IPv4`` iptables rules to ``/etc/iptables/rules.v4`` and current ``IPv6``
-iptables rules to ``/etc/iptables/rules.v6``.
-
-The ``IPv4`` iptables rule that you set in the earlier step will be loaded in
-``/etc/iptables/rules.v4`` and will be persistent across reboots.
-
-If you add a new ``IPv4`` iptables rule after installing
-``iptables-persistent`` you will have to add it to the rule file. In such case,
-execute the following as the ``root`` user::
-
- iptables-save > /etc/iptables/rules.v4
-
-Using SSL with Civetweb
------------------------
-.. _Using SSL with Civetweb:
-
-Before using SSL with civetweb, you will need a certificate that will match
-the host name that that will be used to access the Ceph Object Gateway.
-You may wish to obtain one that has `subject alternate name` fields for
-more flexibility. If you intend to use S3-style subdomains
-(`Add Wildcard to DNS`_), you will need a `wildcard` certificate.
-
-Civetweb requires that the server key, server certificate, and any other
-CA or intermediate certificates be supplied in one file. Each of these
-items must be in `pem` form. Because the combined file contains the
-secret key, it should be protected from unauthorized access.
-
-To configure ssl operation, append ``s`` to the port number. Currently
-it is not possible to configure the radosgw to listen on both
-http and https, you must pick only one. So::
-
- [client.rgw.gateway-node1]
- rgw_frontends = civetweb port=443s ssl_certificate=/etc/ceph/private/keyandcert.pem
-
-Migrating from Apache to Civetweb
----------------------------------
-
-If you are running the Ceph Object Gateway on Apache and FastCGI with Ceph
-Storage v0.80 or above, you are already running Civetweb--it starts with the
-``ceph-radosgw`` daemon and it's running on port 7480 by default so that it
-doesn't conflict with your Apache and FastCGI installation and other commonly
-used web service ports. Migrating to use Civetweb basically involves removing
-your Apache installation. Then, you must remove Apache and FastCGI settings
-from your Ceph configuration file and reset ``rgw_frontends`` to Civetweb.
-
-Referring back to the description for installing a Ceph Object Gateway with
-``ceph-deploy``, notice that the configuration file only has one setting
-``rgw_frontends`` (and that's assuming you elected to change the default port).
-The ``ceph-deploy`` utility generates the data directory and the keyring for
-you--placing the keyring in ``/var/lib/ceph/radosgw/{rgw-intance}``. The daemon
-looks in default locations, whereas you may have specified different settings
-in your Ceph configuration file. Since you already have keys and a data
-directory, you will want to maintain those paths in your Ceph configuration
-file if you used something other than default paths.
-
-A typical Ceph Object Gateway configuration file for an Apache-based deployment
-looks something similar as the following:
-
-On Red Hat Enterprise Linux::
-
- [client.radosgw.gateway-node1]
- host = {hostname}
- keyring = /etc/ceph/ceph.client.radosgw.keyring
- rgw socket path = ""
- log file = /var/log/radosgw/client.radosgw.gateway-node1.log
- rgw frontends = fastcgi socket\_port=9000 socket\_host=0.0.0.0
- rgw print continue = false
-
-On Ubuntu::
-
- [client.radosgw.gateway-node]
- host = {hostname}
- keyring = /etc/ceph/ceph.client.radosgw.keyring
- rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
- log file = /var/log/radosgw/client.radosgw.gateway-node1.log
-
-To modify it for use with Civetweb, simply remove the Apache-specific settings
-such as ``rgw_socket_path`` and ``rgw_print_continue``. Then, change the
-``rgw_frontends`` setting to reflect Civetweb rather than the Apache FastCGI
-front end and specify the port number you intend to use. For example::
-
- [client.radosgw.gateway-node1]
- host = {hostname}
- keyring = /etc/ceph/ceph.client.radosgw.keyring
- log file = /var/log/radosgw/client.radosgw.gateway-node1.log
- rgw_frontends = civetweb port=80
-
-Finally, restart the Ceph Object Gateway. On Red Hat Enterprise Linux execute::
-
- sudo systemctl restart ceph-radosgw.service
-
-On Ubuntu execute::
-
- sudo service radosgw restart id=rgw.<short-hostname>
-
-If you used a port number that is not open, you will also need to open that
-port on your firewall.
-
-Configure Bucket Sharding
--------------------------
-
-A Ceph Object Gateway stores bucket index data in the ``index_pool``, which
-defaults to ``.rgw.buckets.index``. Sometimes users like to put many objects
-(hundreds of thousands to millions of objects) in a single bucket. If you do
-not use the gateway administration interface to set quotas for the maximum
-number of objects per bucket, the bucket index can suffer significant
-performance degradation when users place large numbers of objects into a
-bucket.
-
-In Ceph 0.94, you may shard bucket indices to help prevent performance
-bottlenecks when you allow a high number of objects per bucket. The
-``rgw_override_bucket_index_max_shards`` setting allows you to set a maximum
-number of shards per bucket. The default value is ``0``, which means bucket
-index sharding is off by default.
-
-To turn bucket index sharding on, set ``rgw_override_bucket_index_max_shards``
-to a value greater than ``0``.
-
-For simple configurations, you may add ``rgw_override_bucket_index_max_shards``
-to your Ceph configuration file. Add it under ``[global]`` to create a
-system-wide value. You can also set it for each instance in your Ceph
-configuration file.
-
-Once you have changed your bucket sharding configuration in your Ceph
-configuration file, restart your gateway. On Red Hat Enteprise Linux execute::
-
- sudo systemctl restart ceph-radosgw.service
-
-On Ubuntu execute::
-
- sudo service radosgw restart id=rgw.<short-hostname>
-
-For federated configurations, each zone may have a different ``index_pool``
-setting for failover. To make the value consistent for a region's zones, you
-may set ``rgw_override_bucket_index_max_shards`` in a gateway's region
-configuration. For example::
-
- radosgw-admin region get > region.json
-
-Open the ``region.json`` file and edit the ``bucket_index_max_shards`` setting
-for each named zone. Save the ``region.json`` file and reset the region. For
-example::
-
- radosgw-admin region set < region.json
-
-Once you have updated your region, update the region map. For example::
-
- radosgw-admin regionmap update --name client.rgw.ceph-client
-
-Where ``client.rgw.ceph-client`` is the name of the gateway user.
-
-.. note:: Mapping the index pool (for each zone, if applicable) to a CRUSH
- ruleset of SSD-based OSDs may also help with bucket index performance.
-
-Add Wildcard to DNS
--------------------
-.. _Add Wildcard to DNS:
-
-To use Ceph with S3-style subdomains (e.g., bucket-name.domain-name.com), you
-need to add a wildcard to the DNS record of the DNS server you use with the
-``ceph-radosgw`` daemon.
-
-The address of the DNS must also be specified in the Ceph configuration file
-with the ``rgw dns name = {hostname}`` setting.
-
-For ``dnsmasq``, add the following address setting with a dot (.) prepended to
-the host name::
-
- address=/.{hostname-or-fqdn}/{host-ip-address}
-
-For example::
-
- address=/.gateway-node1/192.168.122.75
-
-
-For ``bind``, add a wildcard to the DNS record. For example::
-
- $TTL 604800
- @ IN SOA gateway-node1. root.gateway-node1. (
- 2 ; Serial
- 604800 ; Refresh
- 86400 ; Retry
- 2419200 ; Expire
- 604800 ) ; Negative Cache TTL
- ;
- @ IN NS gateway-node1.
- @ IN A 192.168.122.113
- * IN CNAME @
-
-Restart your DNS server and ping your server with a subdomain to ensure that
-your DNS configuration works as expected::
-
- ping mybucket.{hostname}
-
-For example::
-
- ping mybucket.gateway-node1
-
-Add Debugging (if needed)
--------------------------
-
-Once you finish the setup procedure, if you encounter issues with your
-configuration, you can add debugging to the ``[global]`` section of your Ceph
-configuration file and restart the gateway(s) to help troubleshoot any
-configuration issues. For example::
-
- [global]
- #append the following in the global section.
- debug ms = 1
- debug rgw = 20
-
-Using the Gateway
------------------
-
-To use the REST interfaces, first create an initial Ceph Object Gateway user
-for the S3 interface. Then, create a subuser for the Swift interface. You then
-need to verify if the created users are able to access the gateway.
-
-Create a RADOSGW User for S3 Access
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-A ``radosgw`` user needs to be created and granted access. The command ``man
-radosgw-admin`` will provide information on additional command options.
-
-To create the user, execute the following on the ``gateway host``::
-
- sudo radosgw-admin user create --uid="testuser" --display-name="First User"
-
-The output of the command will be something like the following::
-
- {
- "user_id": "testuser",
- "display_name": "First User",
- "email": "",
- "suspended": 0,
- "max_buckets": 1000,
- "auid": 0,
- "subusers": [],
- "keys": [{
- "user": "testuser",
- "access_key": "I0PJDPCIYZ665MW88W9R",
- "secret_key": "dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA"
- }],
- "swift_keys": [],
- "caps": [],
- "op_mask": "read, write, delete",
- "default_placement": "",
- "placement_tags": [],
- "bucket_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "user_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "temp_url_keys": []
- }
-
-.. note:: The values of ``keys->access_key`` and ``keys->secret_key`` are
- needed for access validation.
-
-.. important:: Check the key output. Sometimes ``radosgw-admin`` generates a
- JSON escape character ``\`` in ``access_key`` or ``secret_key``
- and some clients do not know how to handle JSON escape
- characters. Remedies include removing the JSON escape character
- ``\``, encapsulating the string in quotes, regenerating the key
- and ensuring that it does not have a JSON escape character or
- specify the key and secret manually. Also, if ``radosgw-admin``
- generates a JSON escape character ``\`` and a forward slash ``/``
- together in a key, like ``\/``, only remove the JSON escape
- character ``\``. Do not remove the forward slash ``/`` as it is
- a valid character in the key.
-
-Create a Swift User
-^^^^^^^^^^^^^^^^^^^
-
-A Swift subuser needs to be created if this kind of access is needed. Creating
-a Swift user is a two step process. The first step is to create the user. The
-second is to create the secret key.
-
-Execute the following steps on the ``gateway host``:
-
-Create the Swift user::
-
- sudo radosgw-admin subuser create --uid=testuser --subuser=testuser:swift --access=full
-
-The output will be something like the following::
-
- {
- "user_id": "testuser",
- "display_name": "First User",
- "email": "",
- "suspended": 0,
- "max_buckets": 1000,
- "auid": 0,
- "subusers": [{
- "id": "testuser:swift",
- "permissions": "full-control"
- }],
- "keys": [{
- "user": "testuser:swift",
- "access_key": "3Y1LNW4Q6X0Y53A52DET",
- "secret_key": ""
- }, {
- "user": "testuser",
- "access_key": "I0PJDPCIYZ665MW88W9R",
- "secret_key": "dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA"
- }],
- "swift_keys": [],
- "caps": [],
- "op_mask": "read, write, delete",
- "default_placement": "",
- "placement_tags": [],
- "bucket_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "user_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "temp_url_keys": []
- }
-
-Create the secret key::
-
- sudo radosgw-admin key create --subuser=testuser:swift --key-type=swift --gen-secret
-
-The output will be something like the following::
-
- {
- "user_id": "testuser",
- "display_name": "First User",
- "email": "",
- "suspended": 0,
- "max_buckets": 1000,
- "auid": 0,
- "subusers": [{
- "id": "testuser:swift",
- "permissions": "full-control"
- }],
- "keys": [{
- "user": "testuser:swift",
- "access_key": "3Y1LNW4Q6X0Y53A52DET",
- "secret_key": ""
- }, {
- "user": "testuser",
- "access_key": "I0PJDPCIYZ665MW88W9R",
- "secret_key": "dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA"
- }],
- "swift_keys": [{
- "user": "testuser:swift",
- "secret_key": "244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF\/IA"
- }],
- "caps": [],
- "op_mask": "read, write, delete",
- "default_placement": "",
- "placement_tags": [],
- "bucket_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "user_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "temp_url_keys": []
- }
-
-Access Verification
-^^^^^^^^^^^^^^^^^^^
-
-Test S3 Access
-""""""""""""""
-
-You need to write and run a Python test script for verifying S3 access. The S3
-access test script will connect to the ``radosgw``, create a new bucket and
-list all buckets. The values for ``aws_access_key_id`` and
-``aws_secret_access_key`` are taken from the values of ``access_key`` and
-``secret_key`` returned by the ``radosgw-admin`` command.
-
-Execute the following steps:
-
-#. You will need to install the ``python-boto`` package::
-
- sudo yum install python-boto
-
-#. Create the Python script::
-
- vi s3test.py
-
-#. Add the following contents to the file::
-
- import boto.s3.connection
-
- access_key = 'I0PJDPCIYZ665MW88W9R'
- secret_key = 'dxaXZ8U90SXydYzyS5ivamEP20hkLSUViiaR+ZDA'
- conn = boto.connect_s3(
- aws_access_key_id=access_key,
- aws_secret_access_key=secret_key,
- host='{hostname}', port={port},
- is_secure=False, calling_format=boto.s3.connection.OrdinaryCallingFormat(),
- )
-
- bucket = conn.create_bucket('my-new-bucket')
- for bucket in conn.get_all_buckets():
- print "{name} {created}".format(
- name=bucket.name,
- created=bucket.creation_date,
- )
-
-
- Replace ``{hostname}`` with the hostname of the host where you have
- configured the gateway service i.e., the ``gateway host``. Replace ``{port}``
- with the port number you are using with Civetweb.
-
-#. Run the script::
-
- python s3test.py
-
- The output will be something like the following::
-
- my-new-bucket 2015-02-16T17:09:10.000Z
-
-Test swift access
-"""""""""""""""""
-
-Swift access can be verified via the ``swift`` command line client. The command
-``man swift`` will provide more information on available command line options.
-
-To install ``swift`` client, execute the following commands. On Red Hat
-Enterprise Linux::
-
- sudo yum install python-setuptools
- sudo easy_install pip
- sudo pip install --upgrade setuptools
- sudo pip install --upgrade python-swiftclient
-
-On Debian-based distributions::
-
- sudo apt-get install python-setuptools
- sudo easy_install pip
- sudo pip install --upgrade setuptools
- sudo pip install --upgrade python-swiftclient
-
-To test swift access, execute the following::
-
- swift -A http://{IP ADDRESS}:{port}/auth/1.0 -U testuser:swift -K '{swift_secret_key}' list
-
-Replace ``{IP ADDRESS}`` with the public IP address of the gateway server and
-``{swift_secret_key}`` with its value from the output of ``radosgw-admin key
-create`` command executed for the ``swift`` user. Replace {port} with the port
-number you are using with Civetweb (e.g., ``7480`` is the default). If you
-don't replace the port, it will default to port ``80``.
-
-For example::
-
- swift -A http://10.19.143.116:7480/auth/1.0 -U testuser:swift -K '244+fz2gSqoHwR3lYtSbIyomyPHf3i7rgSJrF/IA' list
-
-The output should be::
-
- my-new-bucket
-
-.. _Preflight: ../../start/quick-start-preflight
diff --git a/src/ceph/doc/install/install-storage-cluster.rst b/src/ceph/doc/install/install-storage-cluster.rst
deleted file mode 100644
index 5da2c68..0000000
--- a/src/ceph/doc/install/install-storage-cluster.rst
+++ /dev/null
@@ -1,91 +0,0 @@
-==============================
- Install Ceph Storage Cluster
-==============================
-
-This guide describes installing Ceph packages manually. This procedure
-is only for users who are not installing with a deployment tool such as
-``ceph-deploy``, ``chef``, ``juju``, etc.
-
-.. tip:: You can also use ``ceph-deploy`` to install Ceph packages, which may
- be more convenient since you can install ``ceph`` on multiple hosts with
- a single command.
-
-
-Installing with APT
-===================
-
-Once you have added either release or development packages to APT, you should
-update APT's database and install Ceph::
-
- sudo apt-get update && sudo apt-get install ceph ceph-mds
-
-
-Installing with RPM
-===================
-
-To install Ceph with RPMs, execute the following steps:
-
-
-#. Install ``yum-plugin-priorities``. ::
-
- sudo yum install yum-plugin-priorities
-
-#. Ensure ``/etc/yum/pluginconf.d/priorities.conf`` exists.
-
-#. Ensure ``priorities.conf`` enables the plugin. ::
-
- [main]
- enabled = 1
-
-#. Ensure your YUM ``ceph.repo`` entry includes ``priority=2``. See
- `Get Packages`_ for details::
-
- [ceph]
- name=Ceph packages for $basearch
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/$basearch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/noarch
- enabled=1
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
- [ceph-source]
- name=Ceph source packages
- baseurl=https://download.ceph.com/rpm-{ceph-release}/{distro}/SRPMS
- enabled=0
- priority=2
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-#. Install pre-requisite packages::
-
- sudo yum install snappy leveldb gdisk python-argparse gperftools-libs
-
-
-Once you have added either release or development packages, or added a
-``ceph.repo`` file to ``/etc/yum.repos.d``, you can install Ceph packages. ::
-
- sudo yum install ceph
-
-
-Installing a Build
-==================
-
-If you build Ceph from source code, you may install Ceph in user space
-by executing the following::
-
- sudo make install
-
-If you install Ceph locally, ``make`` will place the executables in
-``usr/local/bin``. You may add the Ceph configuration file to the
-``usr/local/bin`` directory to run Ceph from a single directory.
-
-.. _Get Packages: ../get-packages
diff --git a/src/ceph/doc/install/install-vm-cloud.rst b/src/ceph/doc/install/install-vm-cloud.rst
deleted file mode 100644
index a28a76a..0000000
--- a/src/ceph/doc/install/install-vm-cloud.rst
+++ /dev/null
@@ -1,128 +0,0 @@
-=========================================
- Install Virtualization for Block Device
-=========================================
-
-If you intend to use Ceph Block Devices and the Ceph Storage Cluster as a
-backend for Virtual Machines (VMs) or :term:`Cloud Platforms` the QEMU/KVM and
-``libvirt`` packages are important for enabling VMs and cloud platforms.
-Examples of VMs include: QEMU/KVM, XEN, VMWare, LXC, VirtualBox, etc. Examples
-of Cloud Platforms include OpenStack, CloudStack, OpenNebula, etc.
-
-
-.. ditaa:: +---------------------------------------------------+
- | libvirt |
- +------------------------+--------------------------+
- |
- | configures
- v
- +---------------------------------------------------+
- | QEMU |
- +---------------------------------------------------+
- | librbd |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-
-Install QEMU
-============
-
-QEMU KVM can interact with Ceph Block Devices via ``librbd``, which is an
-important feature for using Ceph with cloud platforms. Once you install QEMU,
-see `QEMU and Block Devices`_ for usage.
-
-
-Debian Packages
----------------
-
-QEMU packages are incorporated into Ubuntu 12.04 Precise Pangolin and later
-versions. To install QEMU, execute the following::
-
- sudo apt-get install qemu
-
-
-RPM Packages
-------------
-
-To install QEMU, execute the following:
-
-
-#. Update your repositories. ::
-
- sudo yum update
-
-#. Install QEMU for Ceph. ::
-
- sudo yum install qemu-kvm qemu-kvm-tools qemu-img
-
-#. Install additional QEMU packages (optional)::
-
- sudo yum install qemu-guest-agent qemu-guest-agent-win32
-
-
-Building QEMU
--------------
-
-To build QEMU from source, use the following procedure::
-
- cd {your-development-directory}
- git clone git://git.qemu.org/qemu.git
- cd qemu
- ./configure --enable-rbd
- make; make install
-
-
-
-Install libvirt
-===============
-
-To use ``libvirt`` with Ceph, you must have a running Ceph Storage Cluster, and
-you must have installed and configured QEMU. See `Using libvirt with Ceph Block
-Device`_ for usage.
-
-
-Debian Packages
----------------
-
-``libvirt`` packages are incorporated into Ubuntu 12.04 Precise Pangolin and
-later versions of Ubuntu. To install ``libvirt`` on these distributions,
-execute the following::
-
- sudo apt-get update && sudo apt-get install libvirt-bin
-
-
-RPM Packages
-------------
-
-To use ``libvirt`` with a Ceph Storage Cluster, you must have a running Ceph
-Storage Cluster and you must also install a version of QEMU with ``rbd`` format
-support. See `Install QEMU`_ for details.
-
-
-``libvirt`` packages are incorporated into the recent CentOS/RHEL distributions.
-To install ``libvirt``, execute the following::
-
- sudo yum install libvirt
-
-
-Building ``libvirt``
---------------------
-
-To build ``libvirt`` from source, clone the ``libvirt`` repository and use
-`AutoGen`_ to generate the build. Then, execute ``make`` and ``make install`` to
-complete the installation. For example::
-
- git clone git://libvirt.org/libvirt.git
- cd libvirt
- ./autogen.sh
- make
- sudo make install
-
-See `libvirt Installation`_ for details.
-
-
-
-.. _libvirt Installation: http://www.libvirt.org/compiling.html
-.. _AutoGen: http://www.gnu.org/software/autogen/
-.. _QEMU and Block Devices: ../../rbd/qemu-rbd
-.. _Using libvirt with Ceph Block Device: ../../rbd/libvirt
diff --git a/src/ceph/doc/install/manual-deployment.rst b/src/ceph/doc/install/manual-deployment.rst
deleted file mode 100644
index 0d789a6..0000000
--- a/src/ceph/doc/install/manual-deployment.rst
+++ /dev/null
@@ -1,488 +0,0 @@
-===================
- Manual Deployment
-===================
-
-All Ceph clusters require at least one monitor, and at least as many OSDs as
-copies of an object stored on the cluster. Bootstrapping the initial monitor(s)
-is the first step in deploying a Ceph Storage Cluster. Monitor deployment also
-sets important criteria for the entire cluster, such as the number of replicas
-for pools, the number of placement groups per OSD, the heartbeat intervals,
-whether authentication is required, etc. Most of these values are set by
-default, so it's useful to know about them when setting up your cluster for
-production.
-
-Following the same configuration as `Installation (Quick)`_, we will set up a
-cluster with ``node1`` as the monitor node, and ``node2`` and ``node3`` for
-OSD nodes.
-
-
-
-.. ditaa::
- /------------------\ /----------------\
- | Admin Node | | node1 |
- | +-------->+ |
- | | | cCCC |
- \---------+--------/ \----------------/
- |
- | /----------------\
- | | node2 |
- +----------------->+ |
- | | cCCC |
- | \----------------/
- |
- | /----------------\
- | | node3 |
- +----------------->| |
- | cCCC |
- \----------------/
-
-
-Monitor Bootstrapping
-=====================
-
-Bootstrapping a monitor (a Ceph Storage Cluster, in theory) requires
-a number of things:
-
-- **Unique Identifier:** The ``fsid`` is a unique identifier for the cluster,
- and stands for File System ID from the days when the Ceph Storage Cluster was
- principally for the Ceph Filesystem. Ceph now supports native interfaces,
- block devices, and object storage gateway interfaces too, so ``fsid`` is a
- bit of a misnomer.
-
-- **Cluster Name:** Ceph clusters have a cluster name, which is a simple string
- without spaces. The default cluster name is ``ceph``, but you may specify
- a different cluster name. Overriding the default cluster name is
- especially useful when you are working with multiple clusters and you need to
- clearly understand which cluster your are working with.
-
- For example, when you run multiple clusters in a `federated architecture`_,
- the cluster name (e.g., ``us-west``, ``us-east``) identifies the cluster for
- the current CLI session. **Note:** To identify the cluster name on the
- command line interface, specify the Ceph configuration file with the
- cluster name (e.g., ``ceph.conf``, ``us-west.conf``, ``us-east.conf``, etc.).
- Also see CLI usage (``ceph --cluster {cluster-name}``).
-
-- **Monitor Name:** Each monitor instance within a cluster has a unique name.
- In common practice, the Ceph Monitor name is the host name (we recommend one
- Ceph Monitor per host, and no commingling of Ceph OSD Daemons with
- Ceph Monitors). You may retrieve the short hostname with ``hostname -s``.
-
-- **Monitor Map:** Bootstrapping the initial monitor(s) requires you to
- generate a monitor map. The monitor map requires the ``fsid``, the cluster
- name (or uses the default), and at least one host name and its IP address.
-
-- **Monitor Keyring**: Monitors communicate with each other via a
- secret key. You must generate a keyring with a monitor secret and provide
- it when bootstrapping the initial monitor(s).
-
-- **Administrator Keyring**: To use the ``ceph`` CLI tools, you must have
- a ``client.admin`` user. So you must generate the admin user and keyring,
- and you must also add the ``client.admin`` user to the monitor keyring.
-
-The foregoing requirements do not imply the creation of a Ceph Configuration
-file. However, as a best practice, we recommend creating a Ceph configuration
-file and populating it with the ``fsid``, the ``mon initial members`` and the
-``mon host`` settings.
-
-You can get and set all of the monitor settings at runtime as well. However,
-a Ceph Configuration file may contain only those settings that override the
-default values. When you add settings to a Ceph configuration file, these
-settings override the default settings. Maintaining those settings in a
-Ceph configuration file makes it easier to maintain your cluster.
-
-The procedure is as follows:
-
-
-#. Log in to the initial monitor node(s)::
-
- ssh {hostname}
-
- For example::
-
- ssh node1
-
-
-#. Ensure you have a directory for the Ceph configuration file. By default,
- Ceph uses ``/etc/ceph``. When you install ``ceph``, the installer will
- create the ``/etc/ceph`` directory automatically. ::
-
- ls /etc/ceph
-
- **Note:** Deployment tools may remove this directory when purging a
- cluster (e.g., ``ceph-deploy purgedata {node-name}``, ``ceph-deploy purge
- {node-name}``).
-
-#. Create a Ceph configuration file. By default, Ceph uses
- ``ceph.conf``, where ``ceph`` reflects the cluster name. ::
-
- sudo vim /etc/ceph/ceph.conf
-
-
-#. Generate a unique ID (i.e., ``fsid``) for your cluster. ::
-
- uuidgen
-
-
-#. Add the unique ID to your Ceph configuration file. ::
-
- fsid = {UUID}
-
- For example::
-
- fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
-
-
-#. Add the initial monitor(s) to your Ceph configuration file. ::
-
- mon initial members = {hostname}[,{hostname}]
-
- For example::
-
- mon initial members = node1
-
-
-#. Add the IP address(es) of the initial monitor(s) to your Ceph configuration
- file and save the file. ::
-
- mon host = {ip-address}[,{ip-address}]
-
- For example::
-
- mon host = 192.168.0.1
-
- **Note:** You may use IPv6 addresses instead of IPv4 addresses, but
- you must set ``ms bind ipv6`` to ``true``. See `Network Configuration
- Reference`_ for details about network configuration.
-
-#. Create a keyring for your cluster and generate a monitor secret key. ::
-
- ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
-
-
-#. Generate an administrator keyring, generate a ``client.admin`` user and add
- the user to the keyring. ::
-
- sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
-
-
-#. Add the ``client.admin`` key to the ``ceph.mon.keyring``. ::
-
- ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
-
-
-#. Generate a monitor map using the hostname(s), host IP address(es) and the FSID.
- Save it as ``/tmp/monmap``::
-
- monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
-
- For example::
-
- monmaptool --create --add node1 192.168.0.1 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap
-
-
-#. Create a default data directory (or directories) on the monitor host(s). ::
-
- sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
-
- For example::
-
- sudo mkdir /var/lib/ceph/mon/ceph-node1
-
- See `Monitor Config Reference - Data`_ for details.
-
-#. Populate the monitor daemon(s) with the monitor map and keyring. ::
-
- sudo -u ceph ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-
- For example::
-
- sudo -u ceph ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-
-
-#. Consider settings for a Ceph configuration file. Common settings include
- the following::
-
- [global]
- fsid = {cluster-id}
- mon initial members = {hostname}[, {hostname}]
- mon host = {ip-address}[, {ip-address}]
- public network = {network}[, {network}]
- cluster network = {network}[, {network}]
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
- osd journal size = {n}
- osd pool default size = {n} # Write an object n times.
- osd pool default min size = {n} # Allow writing n copy in a degraded state.
- osd pool default pg num = {n}
- osd pool default pgp num = {n}
- osd crush chooseleaf type = {n}
-
- In the foregoing example, the ``[global]`` section of the configuration might
- look like this::
-
- [global]
- fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
- mon initial members = node1
- mon host = 192.168.0.1
- public network = 192.168.0.0/24
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
- osd journal size = 1024
- osd pool default size = 2
- osd pool default min size = 1
- osd pool default pg num = 333
- osd pool default pgp num = 333
- osd crush chooseleaf type = 1
-
-#. Touch the ``done`` file.
-
- Mark that the monitor is created and ready to be started::
-
- sudo touch /var/lib/ceph/mon/ceph-node1/done
-
-#. Start the monitor(s).
-
- For Ubuntu, use Upstart::
-
- sudo start ceph-mon id=node1 [cluster={cluster-name}]
-
- In this case, to allow the start of the daemon at each reboot you
- must create two empty files like this::
-
- sudo touch /var/lib/ceph/mon/{cluster-name}-{hostname}/upstart
-
- For example::
-
- sudo touch /var/lib/ceph/mon/ceph-node1/upstart
-
- For Debian/CentOS/RHEL, use sysvinit::
-
- sudo /etc/init.d/ceph start mon.node1
-
-
-#. Verify that Ceph created the default pools. ::
-
- ceph osd lspools
-
- You should see output like this::
-
- 0 data,1 metadata,2 rbd,
-
-
-#. Verify that the monitor is running. ::
-
- ceph -s
-
- You should see output that the monitor you started is up and running, and
- you should see a health error indicating that placement groups are stuck
- inactive. It should look something like this::
-
- cluster a7f64266-0894-4f1e-a635-d0aeaca0e993
- health HEALTH_ERR 192 pgs stuck inactive; 192 pgs stuck unclean; no osds
- monmap e1: 1 mons at {node1=192.168.0.1:6789/0}, election epoch 1, quorum 0 node1
- osdmap e1: 0 osds: 0 up, 0 in
- pgmap v2: 192 pgs, 3 pools, 0 bytes data, 0 objects
- 0 kB used, 0 kB / 0 kB avail
- 192 creating
-
- **Note:** Once you add OSDs and start them, the placement group health errors
- should disappear. See the next section for details.
-
-Manager daemon configuration
-============================
-
-On each node where you run a ceph-mon daemon, you should also set up a ceph-mgr daemon.
-
-See :ref:`mgr-administrator-guide`
-
-Adding OSDs
-===========
-
-Once you have your initial monitor(s) running, you should add OSDs. Your cluster
-cannot reach an ``active + clean`` state until you have enough OSDs to handle the
-number of copies of an object (e.g., ``osd pool default size = 2`` requires at
-least two OSDs). After bootstrapping your monitor, your cluster has a default
-CRUSH map; however, the CRUSH map doesn't have any Ceph OSD Daemons mapped to
-a Ceph Node.
-
-
-Short Form
-----------
-
-Ceph provides the ``ceph-disk`` utility, which can prepare a disk, partition or
-directory for use with Ceph. The ``ceph-disk`` utility creates the OSD ID by
-incrementing the index. Additionally, ``ceph-disk`` will add the new OSD to the
-CRUSH map under the host for you. Execute ``ceph-disk -h`` for CLI details.
-The ``ceph-disk`` utility automates the steps of the `Long Form`_ below. To
-create the first two OSDs with the short form procedure, execute the following
-on ``node2`` and ``node3``:
-
-
-#. Prepare the OSD. ::
-
- ssh {node-name}
- sudo ceph-disk prepare --cluster {cluster-name} --cluster-uuid {uuid} {data-path} [{journal-path}]
-
- For example::
-
- ssh node1
- sudo ceph-disk prepare --cluster ceph --cluster-uuid a7f64266-0894-4f1e-a635-d0aeaca0e993 --fs-type ext4 /dev/hdd1
-
-
-#. Activate the OSD::
-
- sudo ceph-disk activate {data-path} [--activate-key {path}]
-
- For example::
-
- sudo ceph-disk activate /dev/hdd1
-
- **Note:** Use the ``--activate-key`` argument if you do not have a copy
- of ``/var/lib/ceph/bootstrap-osd/{cluster}.keyring`` on the Ceph Node.
-
-
-Long Form
----------
-
-Without the benefit of any helper utilities, create an OSD and add it to the
-cluster and CRUSH map with the following procedure. To create the first two
-OSDs with the long form procedure, execute the following steps for each OSD.
-
-.. note:: This procedure does not describe deployment on top of dm-crypt
- making use of the dm-crypt 'lockbox'.
-
-#. Connect to the OSD host and become root. ::
-
- ssh {node-name}
- sudo bash
-
-#. Generate a UUID for the OSD. ::
-
- UUID=$(uuidgen)
-
-#. Generate a cephx key for the OSD. ::
-
- OSD_SECRET=$(ceph-authtool --gen-print-key)
-
-#. Create the OSD. Note that an OSD ID can be provided as an
- additional argument to ``ceph osd new`` if you need to reuse a
- previously-destroyed OSD id. We assume that the
- ``client.bootstrap-osd`` key is present on the machine. You may
- alternatively execute this command as ``client.admin`` on a
- different host where that key is present.::
-
- ID=$(echo "{\"cephx_secret\": \"$OSD_SECRET\"}" | \
- ceph osd new $UUID -i - \
- -n client.bootstrap-osd -k /var/lib/ceph/bootstrap-osd/ceph.keyring)
-
-#. Create the default directory on your new OSD. ::
-
- mkdir /var/lib/ceph/osd/ceph-$ID
-
-#. If the OSD is for a drive other than the OS drive, prepare it
- for use with Ceph, and mount it to the directory you just created. ::
-
- mkfs.xfs /dev/{DEV}
- mount /dev/{DEV} /var/lib/ceph/osd/ceph-$ID
-
-#. Write the secret to the OSD keyring file. ::
-
- ceph-authtool --create-keyring /var/lib/ceph/osd/ceph-$ID/keyring \
- --name osd.$ID --add-key $OSD_SECRET
-
-#. Initialize the OSD data directory. ::
-
- ceph-osd -i $ID --mkfs --osd-uuid $UUID
-
-#. Fix ownership. ::
-
- chown -R ceph:ceph /var/lib/ceph/osd/ceph-$ID
-
-#. After you add an OSD to Ceph, the OSD is in your configuration. However,
- it is not yet running. You must start
- your new OSD before it can begin receiving data.
-
- For modern systemd distributions::
-
- systemctl enable ceph-osd@$ID
- systemctl start ceph-osd@$ID
-
- For example::
-
- systemctl enable ceph-osd@12
- systemctl start ceph-osd@12
-
-
-Adding MDS
-==========
-
-In the below instructions, ``{id}`` is an arbitrary name, such as the hostname of the machine.
-
-#. Create the mds data directory.::
-
- mkdir -p /var/lib/ceph/mds/{cluster-name}-{id}
-
-#. Create a keyring.::
-
- ceph-authtool --create-keyring /var/lib/ceph/mds/{cluster-name}-{id}/keyring --gen-key -n mds.{id}
-
-#. Import the keyring and set caps.::
-
- ceph auth add mds.{id} osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/{cluster}-{id}/keyring
-
-#. Add to ceph.conf.::
-
- [mds.{id}]
- host = {id}
-
-#. Start the daemon the manual way.::
-
- ceph-mds --cluster {cluster-name} -i {id} -m {mon-hostname}:{mon-port} [-f]
-
-#. Start the daemon the right way (using ceph.conf entry).::
-
- service ceph start
-
-#. If starting the daemon fails with this error::
-
- mds.-1.0 ERROR: failed to authenticate: (22) Invalid argument
-
- Then make sure you do not have a keyring set in ceph.conf in the global section; move it to the client section; or add a keyring setting specific to this mds daemon. And verify that you see the same key in the mds data directory and ``ceph auth get mds.{id}`` output.
-
-#. Now you are ready to `create a Ceph filesystem`_.
-
-
-Summary
-=======
-
-Once you have your monitor and two OSDs up and running, you can watch the
-placement groups peer by executing the following::
-
- ceph -w
-
-To view the tree, execute the following::
-
- ceph osd tree
-
-You should see output that looks something like this::
-
- # id weight type name up/down reweight
- -1 2 root default
- -2 2 host node1
- 0 1 osd.0 up 1
- -3 1 host node2
- 1 1 osd.1 up 1
-
-To add (or remove) additional monitors, see `Add/Remove Monitors`_.
-To add (or remove) additional Ceph OSD Daemons, see `Add/Remove OSDs`_.
-
-
-.. _federated architecture: ../../radosgw/federated-config
-.. _Installation (Quick): ../../start
-.. _Add/Remove Monitors: ../../rados/operations/add-or-rm-mons
-.. _Add/Remove OSDs: ../../rados/operations/add-or-rm-osds
-.. _Network Configuration Reference: ../../rados/configuration/network-config-ref
-.. _Monitor Config Reference - Data: ../../rados/configuration/mon-config-ref#data
-.. _create a Ceph filesystem: ../../cephfs/createfs
diff --git a/src/ceph/doc/install/manual-freebsd-deployment.rst b/src/ceph/doc/install/manual-freebsd-deployment.rst
deleted file mode 100644
index 99386ae..0000000
--- a/src/ceph/doc/install/manual-freebsd-deployment.rst
+++ /dev/null
@@ -1,623 +0,0 @@
-==============================
- Manual Deployment on FreeBSD
-==============================
-
-This a largely a copy of the regular Manual Deployment with FreeBSD specifics.
-The difference lies in two parts: The underlying diskformat, and the way to use
-the tools.
-
-All Ceph clusters require at least one monitor, and at least as many OSDs as
-copies of an object stored on the cluster. Bootstrapping the initial monitor(s)
-is the first step in deploying a Ceph Storage Cluster. Monitor deployment also
-sets important criteria for the entire cluster, such as the number of replicas
-for pools, the number of placement groups per OSD, the heartbeat intervals,
-whether authentication is required, etc. Most of these values are set by
-default, so it's useful to know about them when setting up your cluster for
-production.
-
-Following the same configuration as `Installation (Quick)`_, we will set up a
-cluster with ``node1`` as the monitor node, and ``node2`` and ``node3`` for
-OSD nodes.
-
-
-
-.. ditaa::
- /------------------\ /----------------\
- | Admin Node | | node1 |
- | +-------->+ |
- | | | cCCC |
- \---------+--------/ \----------------/
- |
- | /----------------\
- | | node2 |
- +----------------->+ |
- | | cCCC |
- | \----------------/
- |
- | /----------------\
- | | node3 |
- +----------------->| |
- | cCCC |
- \----------------/
-
-
-
-Disklayout on FreeBSD
-=====================
-
-Current implementation works on ZFS pools
-
-* All Ceph data is created in /var/lib/ceph
-* Log files go into /var/log/ceph
-* PID files go into /var/log/run
-* One ZFS pool is allocated per OSD, like::
-
- gpart create -s GPT ada1
- gpart add -t freebsd-zfs -l osd1 ada1
- zpool create -o mountpoint=/var/lib/ceph/osd/osd.1 osd
-
-* Some cache and log (ZIL) can be attached.
- Please note that this is different from the Ceph journals. Cache and log are
- totally transparent for Ceph, and help the filesystem to keep the system
- consistant and help performance.
- Assuming that ada2 is an SSD::
-
- gpart create -s GPT ada2
- gpart add -t freebsd-zfs -l osd1-log -s 1G ada2
- zpool add osd1 log gpt/osd1-log
- gpart add -t freebsd-zfs -l osd1-cache -s 10G ada2
- zpool add osd1 log gpt/osd1-cache
-
-* Note: *UFS2 does not allow large xattribs*
-
-
-Configuration
--------------
-
-As per FreeBSD default parts of extra software go into ``/usr/local/``. Which
-means that for ``/etc/ceph.conf`` the default location is
-``/usr/local/etc/ceph/ceph.conf``. Smartest thing to do is to create a softlink
-from ``/etc/ceph`` to ``/usr/local/etc/ceph``::
-
- ln -s /usr/local/etc/ceph /etc/ceph
-
-A sample file is provided in ``/usr/local/share/doc/ceph/sample.ceph.conf``
-Note that ``/usr/local/etc/ceph/ceph.conf`` will be found by most tools,
-linking it to ``/etc/ceph/ceph.conf`` will help with any scripts that are found
-in extra tools, scripts, and/or discussionlists.
-
-Monitor Bootstrapping
-=====================
-
-Bootstrapping a monitor (a Ceph Storage Cluster, in theory) requires
-a number of things:
-
-- **Unique Identifier:** The ``fsid`` is a unique identifier for the cluster,
- and stands for File System ID from the days when the Ceph Storage Cluster was
- principally for the Ceph Filesystem. Ceph now supports native interfaces,
- block devices, and object storage gateway interfaces too, so ``fsid`` is a
- bit of a misnomer.
-
-- **Cluster Name:** Ceph clusters have a cluster name, which is a simple string
- without spaces. The default cluster name is ``ceph``, but you may specify
- a different cluster name. Overriding the default cluster name is
- especially useful when you are working with multiple clusters and you need to
- clearly understand which cluster your are working with.
-
- For example, when you run multiple clusters in a `federated architecture`_,
- the cluster name (e.g., ``us-west``, ``us-east``) identifies the cluster for
- the current CLI session. **Note:** To identify the cluster name on the
- command line interface, specify the a Ceph configuration file with the
- cluster name (e.g., ``ceph.conf``, ``us-west.conf``, ``us-east.conf``, etc.).
- Also see CLI usage (``ceph --cluster {cluster-name}``).
-
-- **Monitor Name:** Each monitor instance within a cluster has a unique name.
- In common practice, the Ceph Monitor name is the host name (we recommend one
- Ceph Monitor per host, and no commingling of Ceph OSD Daemons with
- Ceph Monitors). You may retrieve the short hostname with ``hostname -s``.
-
-- **Monitor Map:** Bootstrapping the initial monitor(s) requires you to
- generate a monitor map. The monitor map requires the ``fsid``, the cluster
- name (or uses the default), and at least one host name and its IP address.
-
-- **Monitor Keyring**: Monitors communicate with each other via a
- secret key. You must generate a keyring with a monitor secret and provide
- it when bootstrapping the initial monitor(s).
-
-- **Administrator Keyring**: To use the ``ceph`` CLI tools, you must have
- a ``client.admin`` user. So you must generate the admin user and keyring,
- and you must also add the ``client.admin`` user to the monitor keyring.
-
-The foregoing requirements do not imply the creation of a Ceph Configuration
-file. However, as a best practice, we recommend creating a Ceph configuration
-file and populating it with the ``fsid``, the ``mon initial members`` and the
-``mon host`` settings.
-
-You can get and set all of the monitor settings at runtime as well. However,
-a Ceph Configuration file may contain only those settings that override the
-default values. When you add settings to a Ceph configuration file, these
-settings override the default settings. Maintaining those settings in a
-Ceph configuration file makes it easier to maintain your cluster.
-
-The procedure is as follows:
-
-
-#. Log in to the initial monitor node(s)::
-
- ssh {hostname}
-
- For example::
-
- ssh node1
-
-
-#. Ensure you have a directory for the Ceph configuration file. By default,
- Ceph uses ``/etc/ceph``. When you install ``ceph``, the installer will
- create the ``/etc/ceph`` directory automatically. ::
-
- ls /etc/ceph
-
- **Note:** Deployment tools may remove this directory when purging a
- cluster (e.g., ``ceph-deploy purgedata {node-name}``, ``ceph-deploy purge
- {node-name}``).
-
-#. Create a Ceph configuration file. By default, Ceph uses
- ``ceph.conf``, where ``ceph`` reflects the cluster name. ::
-
- sudo vim /etc/ceph/ceph.conf
-
-
-#. Generate a unique ID (i.e., ``fsid``) for your cluster. ::
-
- uuidgen
-
-
-#. Add the unique ID to your Ceph configuration file. ::
-
- fsid = {UUID}
-
- For example::
-
- fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
-
-
-#. Add the initial monitor(s) to your Ceph configuration file. ::
-
- mon initial members = {hostname}[,{hostname}]
-
- For example::
-
- mon initial members = node1
-
-
-#. Add the IP address(es) of the initial monitor(s) to your Ceph configuration
- file and save the file. ::
-
- mon host = {ip-address}[,{ip-address}]
-
- For example::
-
- mon host = 192.168.0.1
-
- **Note:** You may use IPv6 addresses instead of IPv4 addresses, but
- you must set ``ms bind ipv6`` to ``true``. See `Network Configuration
- Reference`_ for details about network configuration.
-
-#. Create a keyring for your cluster and generate a monitor secret key. ::
-
- ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
-
-
-#. Generate an administrator keyring, generate a ``client.admin`` user and add
- the user to the keyring. ::
-
- sudo ceph-authtool --create-keyring /etc/ceph/ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *' --cap mgr 'allow *'
-
-
-#. Add the ``client.admin`` key to the ``ceph.mon.keyring``. ::
-
- ceph-authtool /tmp/ceph.mon.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
-
-
-#. Generate a monitor map using the hostname(s), host IP address(es) and the FSID.
- Save it as ``/tmp/monmap``::
-
- monmaptool --create --add {hostname} {ip-address} --fsid {uuid} /tmp/monmap
-
- For example::
-
- monmaptool --create --add node1 192.168.0.1 --fsid a7f64266-0894-4f1e-a635-d0aeaca0e993 /tmp/monmap
-
-
-#. Create a default data directory (or directories) on the monitor host(s). ::
-
- sudo mkdir /var/lib/ceph/mon/{cluster-name}-{hostname}
-
- For example::
-
- sudo mkdir /var/lib/ceph/mon/ceph-node1
-
- See `Monitor Config Reference - Data`_ for details.
-
-#. Populate the monitor daemon(s) with the monitor map and keyring. ::
-
- sudo -u ceph ceph-mon [--cluster {cluster-name}] --mkfs -i {hostname} --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-
- For example::
-
- sudo -u ceph ceph-mon --mkfs -i node1 --monmap /tmp/monmap --keyring /tmp/ceph.mon.keyring
-
-
-#. Consider settings for a Ceph configuration file. Common settings include
- the following::
-
- [global]
- fsid = {cluster-id}
- mon initial members = {hostname}[, {hostname}]
- mon host = {ip-address}[, {ip-address}]
- public network = {network}[, {network}]
- cluster network = {network}[, {network}]
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
- osd journal size = {n}
- osd pool default size = {n} # Write an object n times.
- osd pool default min size = {n} # Allow writing n copy in a degraded state.
- osd pool default pg num = {n}
- osd pool default pgp num = {n}
- osd crush chooseleaf type = {n}
-
- In the foregoing example, the ``[global]`` section of the configuration might
- look like this::
-
- [global]
- fsid = a7f64266-0894-4f1e-a635-d0aeaca0e993
- mon initial members = node1
- mon host = 192.168.0.1
- public network = 192.168.0.0/24
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
- osd journal size = 1024
- osd pool default size = 2
- osd pool default min size = 1
- osd pool default pg num = 333
- osd pool default pgp num = 333
- osd crush chooseleaf type = 1
-
-#. Touch the ``done`` file.
-
- Mark that the monitor is created and ready to be started::
-
- sudo touch /var/lib/ceph/mon/ceph-node1/done
-
-#. And for FreeBSD an entry for every monitor needs to be added to the config
- file. (The requirement will be removed in future releases).
-
- The entry should look like::
-
- [mon]
- [mon.node1]
- host = node1 # this name can be resolve
-
-
-#. Start the monitor(s).
-
- For Ubuntu, use Upstart::
-
- sudo start ceph-mon id=node1 [cluster={cluster-name}]
-
- In this case, to allow the start of the daemon at each reboot you
- must create two empty files like this::
-
- sudo touch /var/lib/ceph/mon/{cluster-name}-{hostname}/upstart
-
- For example::
-
- sudo touch /var/lib/ceph/mon/ceph-node1/upstart
-
- For Debian/CentOS/RHEL, use sysvinit::
-
- sudo /etc/init.d/ceph start mon.node1
-
- For FreeBSD we use the rc.d init scripts (called bsdrc in Ceph)::
-
- sudo service ceph start start mon.node1
-
- For this to work /etc/rc.conf also needs the entry to enable ceph::
- cat 'ceph_enable="YES"' >> /etc/rc.conf
-
-
-#. Verify that Ceph created the default pools. ::
-
- ceph osd lspools
-
- You should see output like this::
-
- 0 data,1 metadata,2 rbd,
-
-
-#. Verify that the monitor is running. ::
-
- ceph -s
-
- You should see output that the monitor you started is up and running, and
- you should see a health error indicating that placement groups are stuck
- inactive. It should look something like this::
-
- cluster a7f64266-0894-4f1e-a635-d0aeaca0e993
- health HEALTH_ERR 192 pgs stuck inactive; 192 pgs stuck unclean; no osds
- monmap e1: 1 mons at {node1=192.168.0.1:6789/0}, election epoch 1, quorum 0 node1
- osdmap e1: 0 osds: 0 up, 0 in
- pgmap v2: 192 pgs, 3 pools, 0 bytes data, 0 objects
- 0 kB used, 0 kB / 0 kB avail
- 192 creating
-
- **Note:** Once you add OSDs and start them, the placement group health errors
- should disappear. See the next section for details.
-
-
-Adding OSDs
-===========
-
-Once you have your initial monitor(s) running, you should add OSDs. Your cluster
-cannot reach an ``active + clean`` state until you have enough OSDs to handle the
-number of copies of an object (e.g., ``osd pool default size = 2`` requires at
-least two OSDs). After bootstrapping your monitor, your cluster has a default
-CRUSH map; however, the CRUSH map doesn't have any Ceph OSD Daemons mapped to
-a Ceph Node.
-
-
-Short Form
-----------
-
-Ceph provides the ``ceph-disk`` utility, which can prepare a disk, partition or
-directory for use with Ceph. The ``ceph-disk`` utility creates the OSD ID by
-incrementing the index. Additionally, ``ceph-disk`` will add the new OSD to the
-CRUSH map under the host for you. Execute ``ceph-disk -h`` for CLI details.
-The ``ceph-disk`` utility automates the steps of the `Long Form`_ below. To
-create the first two OSDs with the short form procedure, execute the following
-on ``node2`` and ``node3``:
-
-
-#. Prepare the OSD.
-
- On FreeBSD only existing directories can be use to create OSDs in::
-
- ssh {node-name}
- sudo ceph-disk prepare --cluster {cluster-name} --cluster-uuid {uuid} {path-to-ceph-osd-directory}
-
- For example::
-
- ssh node1
- sudo ceph-disk prepare --cluster ceph --cluster-uuid a7f64266-0894-4f1e-a635-d0aeaca0e993 /var/lib/ceph/osd/osd.1
-
-
-#. Activate the OSD::
-
- sudo ceph-disk activate {data-path} [--activate-key {path}]
-
- For example::
-
- sudo ceph-disk activate /var/lib/ceph/osd/osd.1
-
- **Note:** Use the ``--activate-key`` argument if you do not have a copy
- of ``/var/lib/ceph/bootstrap-osd/{cluster}.keyring`` on the Ceph Node.
-
- FreeBSD does not auto start the OSDs, but also requires a entry in
- ``ceph.conf``. One for each OSD::
-
- [osd]
- [osd.1]
- host = node1 # this name can be resolve
-
-
-Long Form
----------
-
-Without the benefit of any helper utilities, create an OSD and add it to the
-cluster and CRUSH map with the following procedure. To create the first two
-OSDs with the long form procedure, execute the following on ``node2`` and
-``node3``:
-
-#. Connect to the OSD host. ::
-
- ssh {node-name}
-
-#. Generate a UUID for the OSD. ::
-
- uuidgen
-
-
-#. Create the OSD. If no UUID is given, it will be set automatically when the
- OSD starts up. The following command will output the OSD number, which you
- will need for subsequent steps. ::
-
- ceph osd create [{uuid} [{id}]]
-
-
-#. Create the default directory on your new OSD. ::
-
- ssh {new-osd-host}
- sudo mkdir /var/lib/ceph/osd/{cluster-name}-{osd-number}
-
- Above are the ZFS instructions to do this for FreeBSD.
-
-
-#. If the OSD is for a drive other than the OS drive, prepare it
- for use with Ceph, and mount it to the directory you just created.
-
-
-#. Initialize the OSD data directory. ::
-
- ssh {new-osd-host}
- sudo ceph-osd -i {osd-num} --mkfs --mkkey --osd-uuid [{uuid}]
-
- The directory must be empty before you can run ``ceph-osd`` with the
- ``--mkkey`` option. In addition, the ceph-osd tool requires specification
- of custom cluster names with the ``--cluster`` option.
-
-
-#. Register the OSD authentication key. The value of ``ceph`` for
- ``ceph-{osd-num}`` in the path is the ``$cluster-$id``. If your
- cluster name differs from ``ceph``, use your cluster name instead.::
-
- sudo ceph auth add osd.{osd-num} osd 'allow *' mon 'allow profile osd' -i /var/lib/ceph/osd/{cluster-name}-{osd-num}/keyring
-
-
-#. Add your Ceph Node to the CRUSH map. ::
-
- ceph [--cluster {cluster-name}] osd crush add-bucket {hostname} host
-
- For example::
-
- ceph osd crush add-bucket node1 host
-
-
-#. Place the Ceph Node under the root ``default``. ::
-
- ceph osd crush move node1 root=default
-
-
-#. Add the OSD to the CRUSH map so that it can begin receiving data. You may
- also decompile the CRUSH map, add the OSD to the device list, add the host as a
- bucket (if it's not already in the CRUSH map), add the device as an item in the
- host, assign it a weight, recompile it and set it. ::
-
- ceph [--cluster {cluster-name}] osd crush add {id-or-name} {weight} [{bucket-type}={bucket-name} ...]
-
- For example::
-
- ceph osd crush add osd.0 1.0 host=node1
-
-
-#. After you add an OSD to Ceph, the OSD is in your configuration. However,
- it is not yet running. The OSD is ``down`` and ``in``. You must start
- your new OSD before it can begin receiving data.
-
- For Ubuntu, use Upstart::
-
- sudo start ceph-osd id={osd-num} [cluster={cluster-name}]
-
- For example::
-
- sudo start ceph-osd id=0
- sudo start ceph-osd id=1
-
- For Debian/CentOS/RHEL, use sysvinit::
-
- sudo /etc/init.d/ceph start osd.{osd-num} [--cluster {cluster-name}]
-
- For example::
-
- sudo /etc/init.d/ceph start osd.0
- sudo /etc/init.d/ceph start osd.1
-
- In this case, to allow the start of the daemon at each reboot you
- must create an empty file like this::
-
- sudo touch /var/lib/ceph/osd/{cluster-name}-{osd-num}/sysvinit
-
- For example::
-
- sudo touch /var/lib/ceph/osd/ceph-0/sysvinit
- sudo touch /var/lib/ceph/osd/ceph-1/sysvinit
-
- Once you start your OSD, it is ``up`` and ``in``.
-
- For FreeBSD using rc.d init.
-
- After adding the OSD to ``ceph.conf``::
-
- sudo service ceph start osd.{osd-num}
-
- For example::
-
- sudo service ceph start osd.0
- sudo service ceph start osd.1
-
- In this case, to allow the start of the daemon at each reboot you
- must create an empty file like this::
-
- sudo touch /var/lib/ceph/osd/{cluster-name}-{osd-num}/bsdrc
-
- For example::
-
- sudo touch /var/lib/ceph/osd/ceph-0/bsdrc
- sudo touch /var/lib/ceph/osd/ceph-1/bsdrc
-
- Once you start your OSD, it is ``up`` and ``in``.
-
-
-
-Adding MDS
-==========
-
-In the below instructions, ``{id}`` is an arbitrary name, such as the hostname of the machine.
-
-#. Create the mds data directory.::
-
- mkdir -p /var/lib/ceph/mds/{cluster-name}-{id}
-
-#. Create a keyring.::
-
- ceph-authtool --create-keyring /var/lib/ceph/mds/{cluster-name}-{id}/keyring --gen-key -n mds.{id}
-
-#. Import the keyring and set caps.::
-
- ceph auth add mds.{id} osd "allow rwx" mds "allow" mon "allow profile mds" -i /var/lib/ceph/mds/{cluster}-{id}/keyring
-
-#. Add to ceph.conf.::
-
- [mds.{id}]
- host = {id}
-
-#. Start the daemon the manual way.::
-
- ceph-mds --cluster {cluster-name} -i {id} -m {mon-hostname}:{mon-port} [-f]
-
-#. Start the daemon the right way (using ceph.conf entry).::
-
- service ceph start
-
-#. If starting the daemon fails with this error::
-
- mds.-1.0 ERROR: failed to authenticate: (22) Invalid argument
-
- Then make sure you do not have a keyring set in ceph.conf in the global section; move it to the client section; or add a keyring setting specific to this mds daemon. And verify that you see the same key in the mds data directory and ``ceph auth get mds.{id}`` output.
-
-#. Now you are ready to `create a Ceph filesystem`_.
-
-
-Summary
-=======
-
-Once you have your monitor and two OSDs up and running, you can watch the
-placement groups peer by executing the following::
-
- ceph -w
-
-To view the tree, execute the following::
-
- ceph osd tree
-
-You should see output that looks something like this::
-
- # id weight type name up/down reweight
- -1 2 root default
- -2 2 host node1
- 0 1 osd.0 up 1
- -3 1 host node2
- 1 1 osd.1 up 1
-
-To add (or remove) additional monitors, see `Add/Remove Monitors`_.
-To add (or remove) additional Ceph OSD Daemons, see `Add/Remove OSDs`_.
-
-
-.. _federated architecture: ../../radosgw/federated-config
-.. _Installation (Quick): ../../start
-.. _Add/Remove Monitors: ../../rados/operations/add-or-rm-mons
-.. _Add/Remove OSDs: ../../rados/operations/add-or-rm-osds
-.. _Network Configuration Reference: ../../rados/configuration/network-config-ref
-.. _Monitor Config Reference - Data: ../../rados/configuration/mon-config-ref#data
-.. _create a Ceph filesystem: ../../cephfs/createfs
diff --git a/src/ceph/doc/install/mirrors.rst b/src/ceph/doc/install/mirrors.rst
deleted file mode 100644
index 49742d1..0000000
--- a/src/ceph/doc/install/mirrors.rst
+++ /dev/null
@@ -1,67 +0,0 @@
-=============
- Ceph Mirrors
-=============
-
-For improved user experience multiple mirrors for Ceph are available around the
-world.
-
-These mirrors are kindly sponsored by various companies who want to support the
-Ceph project.
-
-
-Locations
-=========
-
-These mirrors are available on the following locations:
-
-- **EU: Netherlands**: http://eu.ceph.com/
-- **AU: Australia**: http://au.ceph.com/
-- **CZ: Czech Republic**: http://cz.ceph.com/
-- **SE: Sweden**: http://se.ceph.com/
-- **DE: Germany**: http://de.ceph.com/
-- **HK: Hong Kong**: http://hk.ceph.com/
-- **FR: France**: http://fr.ceph.com/
-- **UK: UK**: http://uk.ceph.com
-- **US-East: US East Coast**: http://us-east.ceph.com/
-- **US-West: US West Coast**: http://us-west.ceph.com/
-- **CN: China**: http://cn.ceph.com/
-
-You can replace all download.ceph.com URLs with any of the mirrors, for example:
-
-- http://download.ceph.com/tarballs/
-- http://download.ceph.com/debian-hammer/
-- http://download.ceph.com/rpm-hammer/
-
-Change this to:
-
-- http://eu.ceph.com/tarballs/
-- http://eu.ceph.com/debian-hammer/
-- http://eu.ceph.com/rpm-hammer/
-
-
-Mirroring
-=========
-
-You can easily mirror Ceph yourself using a Bash script and rsync. A easy to use
-script can be found at `Github`_.
-
-When mirroring Ceph, please keep the following guidelines in mind:
-
-- Choose a mirror close to you
-- Do not sync in a interval shorter than 3 hours
-- Avoid syncing at minute 0 of the hour, use something between 0 and 59
-
-
-Becoming a mirror
-=================
-
-If you want to provide a public mirror for other users of Ceph you can opt to
-become a official mirror.
-
-To make sure all mirrors meet the same standards some requirements have been
-set for all mirrors. These can be found on `Github`_.
-
-If you want to apply for an official mirror, please contact the ceph-users mailinglist.
-
-
-.. _Github: https://github.com/ceph/ceph/tree/master/mirroring
diff --git a/src/ceph/doc/install/upgrading-ceph.rst b/src/ceph/doc/install/upgrading-ceph.rst
deleted file mode 100644
index 962b90c..0000000
--- a/src/ceph/doc/install/upgrading-ceph.rst
+++ /dev/null
@@ -1,746 +0,0 @@
-================
- Upgrading Ceph
-================
-
-Each release of Ceph may have additional steps. Refer to the release-specific
-sections in this document and the `release notes`_ document to identify
-release-specific procedures for your cluster before using the upgrade
-procedures.
-
-
-Summary
-=======
-
-You can upgrade daemons in your Ceph cluster while the cluster is online and in
-service! Certain types of daemons depend upon others. For example, Ceph Metadata
-Servers and Ceph Object Gateways depend upon Ceph Monitors and Ceph OSD Daemons.
-We recommend upgrading in this order:
-
-#. `Ceph Deploy`_
-#. Ceph Monitors
-#. Ceph OSD Daemons
-#. Ceph Metadata Servers
-#. Ceph Object Gateways
-
-As a general rule, we recommend upgrading all the daemons of a specific type
-(e.g., all ``ceph-mon`` daemons, all ``ceph-osd`` daemons, etc.) to ensure that
-they are all on the same release. We also recommend that you upgrade all the
-daemons in your cluster before you try to exercise new functionality in a
-release.
-
-The `Upgrade Procedures`_ are relatively simple, but please look at
-distribution-specific sections before upgrading. The basic process involves
-three steps:
-
-#. Use ``ceph-deploy`` on your admin node to upgrade the packages for
- multiple hosts (using the ``ceph-deploy install`` command), or login to each
- host and upgrade the Ceph package `manually`_. For example, when
- `Upgrading Monitors`_, the ``ceph-deploy`` syntax might look like this::
-
- ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
- ceph-deploy install --release firefly mon1 mon2 mon3
-
- **Note:** The ``ceph-deploy install`` command will upgrade the packages
- in the specified node(s) from the old release to the release you specify.
- There is no ``ceph-deploy upgrade`` command.
-
-#. Login in to each Ceph node and restart each Ceph daemon.
- See `Operating a Cluster`_ for details.
-
-#. Ensure your cluster is healthy. See `Monitoring a Cluster`_ for details.
-
-.. important:: Once you upgrade a daemon, you cannot downgrade it.
-
-
-Ceph Deploy
-===========
-
-Before upgrading Ceph daemons, upgrade the ``ceph-deploy`` tool. ::
-
- sudo pip install -U ceph-deploy
-
-Or::
-
- sudo apt-get install ceph-deploy
-
-Or::
-
- sudo yum install ceph-deploy python-pushy
-
-
-Argonaut to Bobtail
-===================
-
-When upgrading from Argonaut to Bobtail, you need to be aware of several things:
-
-#. Authentication now defaults to **ON**, but used to default to **OFF**.
-#. Monitors use a new internal on-wire protocol.
-#. RBD ``format2`` images require upgrading all OSDs before using it.
-
-Ensure that you update package repository paths. For example::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-bobtail/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-See the following sections for additional details.
-
-Authentication
---------------
-
-The Ceph Bobtail release enables authentication by default. Bobtail also has
-finer-grained authentication configuration settings. In previous versions of
-Ceph (i.e., actually v 0.55 and earlier), you could simply specify::
-
- auth supported = [cephx | none]
-
-This option still works, but is deprecated. New releases support
-``cluster``, ``service`` and ``client`` authentication settings as
-follows::
-
- auth cluster required = [cephx | none] # default cephx
- auth service required = [cephx | none] # default cephx
- auth client required = [cephx | none] # default cephx,none
-
-.. important:: If your cluster does not currently have an ``auth
- supported`` line that enables authentication, you must explicitly
- turn it off in Bobtail using the settings below.::
-
- auth cluster required = none
- auth service required = none
-
- This will disable authentication on the cluster, but still leave
- clients with the default configuration where they can talk to a
- cluster that does enable it, but do not require it.
-
-.. important:: If your cluster already has an ``auth supported`` option defined in
- the configuration file, no changes are necessary.
-
-See `User Management - Backward Compatibility`_ for details.
-
-
-Monitor On-wire Protocol
-------------------------
-
-We recommend upgrading all monitors to Bobtail. A mixture of Bobtail and
-Argonaut monitors will not be able to use the new on-wire protocol, as the
-protocol requires all monitors to be Bobtail or greater. Upgrading only a
-majority of the nodes (e.g., two out of three) may expose the cluster to a
-situation where a single additional failure may compromise availability (because
-the non-upgraded daemon cannot participate in the new protocol). We recommend
-not waiting for an extended period of time between ``ceph-mon`` upgrades.
-
-
-RBD Images
-----------
-
-The Bobtail release supports ``format 2`` images! However, you should not create
-or use ``format 2`` RBD images until after all ``ceph-osd`` daemons have been
-upgraded. Note that ``format 1`` is still the default. You can use the new
-``ceph osd ls`` and ``ceph tell osd.N version`` commands to doublecheck your
-cluster. ``ceph osd ls`` will give a list of all OSD IDs that are part of the
-cluster, and you can use that to write a simple shell loop to display all the
-OSD version strings: ::
-
- for i in $(ceph osd ls); do
- ceph tell osd.${i} version
- done
-
-
-Argonaut to Cuttlefish
-======================
-
-To upgrade your cluster from Argonaut to Cuttlefish, please read this
-section, and the sections on upgrading from Argonaut to Bobtail and
-upgrading from Bobtail to Cuttlefish carefully. When upgrading from
-Argonaut to Cuttlefish, **YOU MUST UPGRADE YOUR MONITORS FROM ARGONAUT
-TO BOBTAIL v0.56.5 FIRST!!!**. All other Ceph daemons can upgrade from
-Argonaut to Cuttlefish without the intermediate upgrade to Bobtail.
-
-.. important:: Ensure that the repository specified points to Bobtail, not
- Cuttlefish.
-
-For example::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-bobtail/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-We recommend upgrading all monitors to Bobtail before proceeding with the
-upgrade of the monitors to Cuttlefish. A mixture of Bobtail and Argonaut
-monitors will not be able to use the new on-wire protocol, as the protocol
-requires all monitors to be Bobtail or greater. Upgrading only a majority of the
-nodes (e.g., two out of three) may expose the cluster to a situation where a
-single additional failure may compromise availability (because the non-upgraded
-daemon cannot participate in the new protocol). We recommend not waiting for an
-extended period of time between ``ceph-mon`` upgrades. See `Upgrading
-Monitors`_ for details.
-
-.. note:: See the `Authentication`_ section and the
- `User Management - Backward Compatibility`_ for additional information
- on authentication backward compatibility settings for Bobtail.
-
-Once you complete the upgrade of your monitors from Argonaut to
-Bobtail, and have restarted the monitor daemons, you must upgrade the
-monitors from Bobtail to Cuttlefish. Ensure that you have a quorum
-before beginning this upgrade procedure. Before upgrading, remember to
-replace the reference to the Bobtail repository with a reference to
-the Cuttlefish repository. For example::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-cuttlefish/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-See `Upgrading Monitors`_ for details.
-
-The architecture of the monitors changed significantly from Argonaut to
-Cuttlefish. See `Monitor Config Reference`_ and `Joao's blog post`_ for details.
-Once you complete the monitor upgrade, you can upgrade the OSD daemons and the
-MDS daemons using the generic procedures. See `Upgrading an OSD`_ and `Upgrading
-a Metadata Server`_ for details.
-
-
-Bobtail to Cuttlefish
-=====================
-
-Upgrading your cluster from Bobtail to Cuttlefish has a few important
-considerations. First, the monitor uses a new architecture, so you should
-upgrade the full set of monitors to use Cuttlefish. Second, if you run multiple
-metadata servers in a cluster, ensure the metadata servers have unique names.
-See the following sections for details.
-
-Replace any ``apt`` reference to older repositories with a reference to the
-Cuttlefish repository. For example::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-cuttlefish/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-
-Monitor
--------
-
-The architecture of the monitors changed significantly from Bobtail to
-Cuttlefish. See `Monitor Config Reference`_ and `Joao's blog post`_ for
-details. This means that v0.59 and pre-v0.59 monitors do not talk to each other
-(Cuttlefish is v.0.61). When you upgrade each monitor, it will convert its
-local data store to the new format. Once you upgrade a majority of monitors,
-the monitors form a quorum using the new protocol and the old monitors will be
-blocked until they get upgraded. For this reason, we recommend upgrading the
-monitors in immediate succession.
-
-.. important:: Do not run a mixed-version cluster for an extended period.
-
-
-MDS Unique Names
-----------------
-
-The monitor now enforces that MDS names be unique. If you have multiple metadata
-server daemons that start with the same ID (e.g., mds.a) the second
-metadata server will implicitly mark the first metadata server as ``failed``.
-Multi-MDS configurations with identical names must be adjusted accordingly to
-give daemons unique names. If you run your cluster with one metadata server,
-you can disregard this notice for now.
-
-
-ceph-deploy
------------
-
-The ``ceph-deploy`` tool is now the preferred method of provisioning new clusters.
-For existing clusters created via the obsolete ``mkcephfs`` tool that would like to transition to the
-new tool, there is a migration path, documented at `Transitioning to ceph-deploy`_.
-
-Cuttlefish to Dumpling
-======================
-
-When upgrading from Cuttlefish (v0.61-v0.61.7) you may perform a rolling
-upgrade. However, there are a few important considerations. First, you must
-upgrade the ``ceph`` command line utility, because it has changed significantly.
-Second, you must upgrade the full set of monitors to use Dumpling, because of a
-protocol change.
-
-Replace any reference to older repositories with a reference to the
-Dumpling repository. For example, with ``apt`` perform the following::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-With CentOS/Red Hat distributions, remove the old repository. ::
-
- sudo rm /etc/yum.repos.d/ceph.repo
-
-Then add a new ``ceph.repo`` repository entry with the following contents.
-
-.. code-block:: ini
-
- [ceph]
- name=Ceph Packages and Backports $basearch
- baseurl=http://download.ceph.com/rpm/el6/$basearch
- enabled=1
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-.. note:: Ensure you use the correct URL for your distribution. Check the
- http://download.ceph.com/rpm directory for your distribution.
-
-.. note:: Since you can upgrade using ``ceph-deploy`` you will only need to add
- the repository on Ceph Client nodes where you use the ``ceph`` command line
- interface or the ``ceph-deploy`` tool.
-
-
-Dumpling to Emperor
-===================
-
-When upgrading from Dumpling (v0.64) you may perform a rolling
-upgrade.
-
-Replace any reference to older repositories with a reference to the
-Emperor repository. For example, with ``apt`` perform the following::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-emperor/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-With CentOS/Red Hat distributions, remove the old repository. ::
-
- sudo rm /etc/yum.repos.d/ceph.repo
-
-Then add a new ``ceph.repo`` repository entry with the following contents and
-replace ``{distro}`` with your distribution (e.g., ``el6``, ``rhel6``, etc).
-
-.. code-block:: ini
-
- [ceph]
- name=Ceph Packages and Backports $basearch
- baseurl=http://download.ceph.com/rpm-emperor/{distro}/$basearch
- enabled=1
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-.. note:: Ensure you use the correct URL for your distribution. Check the
- http://download.ceph.com/rpm directory for your distribution.
-
-.. note:: Since you can upgrade using ``ceph-deploy`` you will only need to add
- the repository on Ceph Client nodes where you use the ``ceph`` command line
- interface or the ``ceph-deploy`` tool.
-
-
-Command Line Utility
---------------------
-
-In V0.65, the ``ceph`` commandline interface (CLI) utility changed
-significantly. You will not be able to use the old CLI with Dumpling. This means
-that you must upgrade the ``ceph-common`` library on all nodes that access the
-Ceph Storage Cluster with the ``ceph`` CLI before upgrading Ceph daemons. ::
-
- sudo apt-get update && sudo apt-get install ceph-common
-
-Ensure that you have the latest version (v0.67 or later). If you do not,
-you may need to uninstall, auto remove dependencies and reinstall.
-
-See `v0.65`_ for details on the new command line interface.
-
-.. _v0.65: http://docs.ceph.com/docs/master/release-notes/#v0-65
-
-
-Monitor
--------
-
-Dumpling (v0.67) ``ceph-mon`` daemons have an internal protocol change. This
-means that v0.67 daemons cannot talk to v0.66 or older daemons. Once you
-upgrade a majority of monitors, the monitors form a quorum using the new
-protocol and the old monitors will be blocked until they get upgraded. For this
-reason, we recommend upgrading all monitors at once (or in relatively quick
-succession) to minimize the possibility of downtime.
-
-.. important:: Do not run a mixed-version cluster for an extended period.
-
-
-
-Dumpling to Firefly
-===================
-
-If your existing cluster is running a version older than v0.67 Dumpling, please
-first upgrade to the latest Dumpling release before upgrading to v0.80 Firefly.
-
-
-Monitor
--------
-
-Dumpling (v0.67) ``ceph-mon`` daemons have an internal protocol change. This
-means that v0.67 daemons cannot talk to v0.66 or older daemons. Once you
-upgrade a majority of monitors, the monitors form a quorum using the new
-protocol and the old monitors will be blocked until they get upgraded. For this
-reason, we recommend upgrading all monitors at once (or in relatively quick
-succession) to minimize the possibility of downtime.
-
-.. important:: Do not run a mixed-version cluster for an extended period.
-
-
-Ceph Config File Changes
-------------------------
-
-We recommand adding the following to the ``[mon]`` section of your
-``ceph.conf`` prior to upgrade::
-
- mon warn on legacy crush tunables = false
-
-This will prevent health warnings due to the use of legacy CRUSH placement.
-Although it is possible to rebalance existing data across your cluster, we do
-not normally recommend it for production environments as a large amount of data
-will move and there is a significant performance impact from the rebalancing.
-
-
-Command Line Utility
---------------------
-
-In V0.65, the ``ceph`` commandline interface (CLI) utility changed
-significantly. You will not be able to use the old CLI with Firefly. This means
-that you must upgrade the ``ceph-common`` library on all nodes that access the
-Ceph Storage Cluster with the ``ceph`` CLI before upgrading Ceph daemons.
-
-For Debian/Ubuntu, execute::
-
- sudo apt-get update && sudo apt-get install ceph-common
-
-For CentOS/RHEL, execute::
-
- sudo yum install ceph-common
-
-Ensure that you have the latest version. If you do not,
-you may need to uninstall, auto remove dependencies and reinstall.
-
-See `v0.65`_ for details on the new command line interface.
-
-.. _v0.65: http://docs.ceph.com/docs/master/release-notes/#v0-65
-
-
-Upgrade Sequence
-----------------
-
-Replace any reference to older repositories with a reference to the
-Firely repository. For example, with ``apt`` perform the following::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-firefly/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-With CentOS/Red Hat distributions, remove the old repository. ::
-
- sudo rm /etc/yum.repos.d/ceph.repo
-
-Then add a new ``ceph.repo`` repository entry with the following contents and
-replace ``{distro}`` with your distribution (e.g., ``el6``, ``rhel6``,
-``rhel7``, etc.).
-
-.. code-block:: ini
-
- [ceph]
- name=Ceph Packages and Backports $basearch
- baseurl=http://download.ceph.com/rpm-firefly/{distro}/$basearch
- enabled=1
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-Upgrade daemons in the following order:
-
-#. **Monitors:** If the ``ceph-mon`` daemons are not restarted prior to the
- ``ceph-osd`` daemons, the monitors will not correctly register their new
- capabilities with the cluster and new features may not be usable until
- the monitors are restarted a second time.
-
-#. **OSDs**
-
-#. **MDSs:** If the ``ceph-mds`` daemon is restarted first, it will wait until
- all OSDs have been upgraded before finishing its startup sequence.
-
-#. **Gateways:** Upgrade ``radosgw`` daemons together. There is a subtle change
- in behavior for multipart uploads that prevents a multipart request that
- was initiated with a new ``radosgw`` from being completed by an old
- ``radosgw``.
-
-.. note:: Make sure you upgrade your **ALL** of your Ceph monitors **AND**
- restart them **BEFORE** upgrading and restarting OSDs, MDSs, and gateways!
-
-
-Emperor to Firefly
-==================
-
-If your existing cluster is running a version older than v0.67 Dumpling, please
-first upgrade to the latest Dumpling release before upgrading to v0.80 Firefly.
-Please refer to `Cuttlefish to Dumpling`_ and the `Firefly release notes`_ for
-details. To upgrade from a post-Emperor point release, see the `Firefly release
-notes`_ for details.
-
-
-Ceph Config File Changes
-------------------------
-
-We recommand adding the following to the ``[mon]`` section of your
-``ceph.conf`` prior to upgrade::
-
- mon warn on legacy crush tunables = false
-
-This will prevent health warnings due to the use of legacy CRUSH placement.
-Although it is possible to rebalance existing data across your cluster, we do
-not normally recommend it for production environments as a large amount of data
-will move and there is a significant performance impact from the rebalancing.
-
-
-Upgrade Sequence
-----------------
-
-Replace any reference to older repositories with a reference to the
-Firefly repository. For example, with ``apt`` perform the following::
-
- sudo rm /etc/apt/sources.list.d/ceph.list
- echo deb http://download.ceph.com/debian-firefly/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-With CentOS/Red Hat distributions, remove the old repository. ::
-
- sudo rm /etc/yum.repos.d/ceph.repo
-
-Then add a new ``ceph.repo`` repository entry with the following contents, but
-replace ``{distro}`` with your distribution (e.g., ``el6``, ``rhel6``,
-``rhel7``, etc.).
-
-.. code-block:: ini
-
- [ceph]
- name=Ceph Packages and Backports $basearch
- baseurl=http://download.ceph.com/rpm/{distro}/$basearch
- enabled=1
- gpgcheck=1
- gpgkey=https://download.ceph.com/keys/release.asc
-
-
-.. note:: Ensure you use the correct URL for your distribution. Check the
- http://download.ceph.com/rpm directory for your distribution.
-
-.. note:: Since you can upgrade using ``ceph-deploy`` you will only need to add
- the repository on Ceph Client nodes where you use the ``ceph`` command line
- interface or the ``ceph-deploy`` tool.
-
-
-Upgrade daemons in the following order:
-
-#. **Monitors:** If the ``ceph-mon`` daemons are not restarted prior to the
- ``ceph-osd`` daemons, the monitors will not correctly register their new
- capabilities with the cluster and new features may not be usable until
- the monitors are restarted a second time.
-
-#. **OSDs**
-
-#. **MDSs:** If the ``ceph-mds`` daemon is restarted first, it will wait until
- all OSDs have been upgraded before finishing its startup sequence.
-
-#. **Gateways:** Upgrade ``radosgw`` daemons together. There is a subtle change
- in behavior for multipart uploads that prevents a multipart request that
- was initiated with a new ``radosgw`` from being completed by an old
- ``radosgw``.
-
-
-Upgrade Procedures
-==================
-
-The following sections describe the upgrade process.
-
-.. important:: Each release of Ceph may have some additional steps. Refer to
- release-specific sections for details **BEFORE** you begin upgrading daemons.
-
-
-Upgrading Monitors
-------------------
-
-To upgrade monitors, perform the following steps:
-
-#. Upgrade the Ceph package for each daemon instance.
-
- You may use ``ceph-deploy`` to address all monitor nodes at once.
- For example::
-
- ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
- ceph-deploy install --release hammer mon1 mon2 mon3
-
- You may also use the package manager for your Linux distribution on
- each individual node. To upgrade packages manually on each Debian/Ubuntu
- host, perform the following steps . ::
-
- ssh {mon-host}
- sudo apt-get update && sudo apt-get install ceph
-
- On CentOS/Red Hat hosts, perform the following steps::
-
- ssh {mon-host}
- sudo yum update && sudo yum install ceph
-
-
-#. Restart each monitor. For Ubuntu distributions, use::
-
- sudo restart ceph-mon id={hostname}
-
- For CentOS/Red Hat/Debian distributions, use::
-
- sudo /etc/init.d/ceph restart {mon-id}
-
- For CentOS/Red Hat distributions deployed with ``ceph-deploy``,
- the monitor ID is usually ``mon.{hostname}``.
-
-#. Ensure each monitor has rejoined the quorum. ::
-
- ceph mon stat
-
-Ensure that you have completed the upgrade cycle for all of your Ceph Monitors.
-
-
-Upgrading an OSD
-----------------
-
-To upgrade a Ceph OSD Daemon, perform the following steps:
-
-#. Upgrade the Ceph OSD Daemon package.
-
- You may use ``ceph-deploy`` to address all Ceph OSD Daemon nodes at
- once. For example::
-
- ceph-deploy install --release {release-name} ceph-node1[ ceph-node2]
- ceph-deploy install --release hammer osd1 osd2 osd3
-
- You may also use the package manager on each node to upgrade packages
- manually. For Debian/Ubuntu hosts, perform the following steps on each
- host. ::
-
- ssh {osd-host}
- sudo apt-get update && sudo apt-get install ceph
-
- For CentOS/Red Hat hosts, perform the following steps::
-
- ssh {osd-host}
- sudo yum update && sudo yum install ceph
-
-
-#. Restart the OSD, where ``N`` is the OSD number. For Ubuntu, use::
-
- sudo restart ceph-osd id=N
-
- For multiple OSDs on a host, you may restart all of them with Upstart. ::
-
- sudo restart ceph-osd-all
-
- For CentOS/Red Hat/Debian distributions, use::
-
- sudo /etc/init.d/ceph restart N
-
-
-#. Ensure each upgraded Ceph OSD Daemon has rejoined the cluster::
-
- ceph osd stat
-
-Ensure that you have completed the upgrade cycle for all of your
-Ceph OSD Daemons.
-
-
-Upgrading a Metadata Server
----------------------------
-
-To upgrade a Ceph Metadata Server, perform the following steps:
-
-#. Upgrade the Ceph Metadata Server package. You may use ``ceph-deploy`` to
- address all Ceph Metadata Server nodes at once, or use the package manager
- on each node. For example::
-
- ceph-deploy install --release {release-name} ceph-node1
- ceph-deploy install --release hammer mds1
-
- To upgrade packages manually, perform the following steps on each
- Debian/Ubuntu host. ::
-
- ssh {mon-host}
- sudo apt-get update && sudo apt-get install ceph-mds
-
- Or the following steps on CentOS/Red Hat hosts::
-
- ssh {mon-host}
- sudo yum update && sudo yum install ceph-mds
-
-
-#. Restart the metadata server. For Ubuntu, use::
-
- sudo restart ceph-mds id={hostname}
-
- For CentOS/Red Hat/Debian distributions, use::
-
- sudo /etc/init.d/ceph restart mds.{hostname}
-
- For clusters deployed with ``ceph-deploy``, the name is usually either
- the name you specified on creation or the hostname.
-
-#. Ensure the metadata server is up and running::
-
- ceph mds stat
-
-
-Upgrading a Client
-------------------
-
-Once you have upgraded the packages and restarted daemons on your Ceph
-cluster, we recommend upgrading ``ceph-common`` and client libraries
-(``librbd1`` and ``librados2``) on your client nodes too.
-
-#. Upgrade the package::
-
- ssh {client-host}
- apt-get update && sudo apt-get install ceph-common librados2 librbd1 python-rados python-rbd
-
-#. Ensure that you have the latest version::
-
- ceph --version
-
-If you do not have the latest version, you may need to uninstall, auto remove
-dependencies and reinstall.
-
-
-Transitioning to ceph-deploy
-============================
-
-If you have an existing cluster that you deployed with ``mkcephfs`` (usually
-Argonaut or Bobtail releases), you will need to make a few changes to your
-configuration to ensure that your cluster will work with ``ceph-deploy``.
-
-
-Monitor Keyring
----------------
-
-You will need to add ``caps mon = "allow *"`` to your monitor keyring if it is
-not already in the keyring. By default, the monitor keyring is located under
-``/var/lib/ceph/mon/ceph-$id/keyring``. When you have added the ``caps``
-setting, your monitor keyring should look something like this::
-
- [mon.]
- key = AQBJIHhRuHCwDRAAZjBTSJcIBIoGpdOR9ToiyQ==
- caps mon = "allow *"
-
-Adding ``caps mon = "allow *"`` will ease the transition from ``mkcephfs`` to
-``ceph-deploy`` by allowing ``ceph-create-keys`` to use the ``mon.`` keyring
-file in ``$mon_data`` and get the caps it needs.
-
-
-Use Default Paths
------------------
-
-Under the ``/var/lib/ceph`` directory, the ``mon`` and ``osd`` directories need
-to use the default paths.
-
-- **OSDs**: The path should be ``/var/lib/ceph/osd/ceph-$id``
-- **MON**: The path should be ``/var/lib/ceph/mon/ceph-$id``
-
-Under those directories, the keyring should be in a file named ``keyring``.
-
-
-
-
-.. _Monitor Config Reference: ../../rados/configuration/mon-config-ref
-.. _Joao's blog post: http://ceph.com/dev-notes/cephs-new-monitor-changes
-.. _User Management - Backward Compatibility: ../../rados/configuration/auth-config-ref/#backward-compatibility
-.. _manually: ../install-storage-cluster/
-.. _Operating a Cluster: ../../rados/operations/operating
-.. _Monitoring a Cluster: ../../rados/operations/monitoring
-.. _Firefly release notes: ../../release-notes/#v0-80-firefly
-.. _release notes: ../../release-notes
diff --git a/src/ceph/doc/logo.png b/src/ceph/doc/logo.png
deleted file mode 100644
index 4cd8c7c..0000000
--- a/src/ceph/doc/logo.png
+++ /dev/null
Binary files differ
diff --git a/src/ceph/doc/man/8/CMakeLists.txt b/src/ceph/doc/man/8/CMakeLists.txt
deleted file mode 100644
index 84e7640..0000000
--- a/src/ceph/doc/man/8/CMakeLists.txt
+++ /dev/null
@@ -1,85 +0,0 @@
-set(client_srcs
- ceph-syn.rst
- ceph-conf.rst
- ceph.rst
- ceph-authtool.rst
- ceph-kvstore-tool.rst
- rados.rst
- ceph-post-file.rst
- ceph-dencoder.rst)
-
-set(server_srcs
- ceph-deploy.rst
- crushtool.rst
- ceph-run.rst
- mount.ceph.rst
- ceph-create-keys.rst
- ceph-rest-api.rst)
-if(WITH_TESTS)
-list(APPEND server_srcs
- ceph-debugpack.rst)
-endif(WITH_TESTS)
-
-set(osd_srcs
- ceph-clsinfo.rst
- ceph-detect-init.rst
- ceph-disk.rst
- ceph-volume.rst
- ceph-volume-systemd.rst
- ceph-osd.rst
- osdmaptool.rst
- ceph-bluestore-tool.rst)
-
-set(mon_srcs
- ceph-mon.rst
- monmaptool.rst)
-
-list(APPEND man_srcs
- ${client_srcs}
- ${server_srcs}
- ${osd_srcs}
- ${mon_srcs}
- ceph-mds.rst
- librados-config.rst)
-
-if(HAVE_LIBFUSE)
- list(APPEND man_srcs
- ceph-fuse.rst
- rbd-fuse.rst)
-endif()
-
-if(WITH_RADOSGW)
- list(APPEND man_srcs
- radosgw.rst
- radosgw-admin.rst)
-endif()
-
-if(WITH_RBD)
- list(APPEND man_srcs
- ceph-rbdnamer.rst
- rbd-mirror.rst
- rbd-replay-many.rst
- rbd-replay-prep.rst
- rbd-replay.rst
- rbdmap.rst
- rbd.rst)
- if(LINUX)
- list(APPEND man_srcs rbd-nbd.rst)
- endif()
- if(FREEBSD)
- list(APPEND man_srcs rbd-ggate.rst)
- endif()
-endif()
-
-foreach(man ${man_srcs})
- list(APPEND sphinx_input ${CMAKE_CURRENT_SOURCE_DIR}/${man})
- # mount.ceph.rst => mount if we use
- # get_filename_component(cmd ${man} NAME_WE)
- string(REGEX REPLACE ".rst$" "" cmd ${man})
- list(APPEND sphinx_output ${sphinx_output_dir}/${cmd}.8)
- install(FILES ${sphinx_output_dir}/${cmd}.8
- DESTINATION ${CEPH_MAN_DIR}/man8)
-endforeach()
-
-set(sphinx_input ${sphinx_input} PARENT_SCOPE)
-set(sphinx_output ${sphinx_output} PARENT_SCOPE)
diff --git a/src/ceph/doc/man/8/ceph-authtool.rst b/src/ceph/doc/man/8/ceph-authtool.rst
deleted file mode 100644
index f1ac152..0000000
--- a/src/ceph/doc/man/8/ceph-authtool.rst
+++ /dev/null
@@ -1,204 +0,0 @@
-:orphan:
-
-=================================================
- ceph-authtool -- ceph keyring manipulation tool
-=================================================
-
-.. program:: ceph-authtool
-
-Synopsis
-========
-
-| **ceph-authtool** *keyringfile*
- [ -l | --list ]
- [ -p | --print-key ]
- [ -C | --create-keyring ]
- [ -g | --gen-key ]
- [ --gen-print-key ]
- [ --import-keyring *otherkeyringfile* ]
- [ -n | --name *entityname* ]
- [ -u | --set-uid *auid* ]
- [ -a | --add-key *base64_key* ]
- [ --cap *subsystem* *capability* ]
- [ --caps *capfile* ]
-
-
-Description
-===========
-
-**ceph-authtool** is a utility to create, view, and modify a Ceph keyring
-file. A keyring file stores one or more Ceph authentication keys and
-possibly an associated capability specification. Each key is
-associated with an entity name, of the form
-``{client,mon,mds,osd}.name``.
-
-**WARNING** Ceph provides authentication and protection against
-man-in-the-middle attacks once secret keys are in place. However,
-data over the wire is not encrypted, which may include the messages
-used to configure said keys. The system is primarily intended to be
-used in trusted environments.
-
-Options
-=======
-
-.. option:: -l, --list
-
- will list all keys and capabilities present in the keyring
-
-.. option:: -p, --print-key
-
- will print an encoded key for the specified entityname. This is
- suitable for the ``mount -o secret=`` argument
-
-.. option:: -C, --create-keyring
-
- will create a new keyring, overwriting any existing keyringfile
-
-.. option:: -g, --gen-key
-
- will generate a new secret key for the specified entityname
-
-.. option:: --gen-print-key
-
- will generate a new secret key for the specified entityname,
- without altering the keyringfile, printing the secret to stdout
-
-.. option:: --import-keyring *secondkeyringfile*
-
- will import the content of a given keyring to the keyringfile
-
-.. option:: -n, --name *name*
-
- specify entityname to operate on
-
-.. option:: -u, --set-uid *auid*
-
- sets the auid (authenticated user id) for the specified entityname
-
-.. option:: -a, --add-key *base64_key*
-
- will add an encoded key to the keyring
-
-.. option:: --cap *subsystem* *capability*
-
- will set the capability for given subsystem
-
-.. option:: --caps *capsfile*
-
- will set all of capabilities associated with a given key, for all subsystems
-
-
-Capabilities
-============
-
-The subsystem is the name of a Ceph subsystem: ``mon``, ``mds``, or
-``osd``.
-
-The capability is a string describing what the given user is allowed
-to do. This takes the form of a comma separated list of allow
-clauses with a permission specifier containing one or more of rwx for
-read, write, and execute permission. The ``allow *`` grants full
-superuser permissions for the given subsystem.
-
-For example::
-
- # can read, write, and execute objects
- osd = "allow rwx"
-
- # can access mds server
- mds = "allow"
-
- # can modify cluster state (i.e., is a server daemon)
- mon = "allow rwx"
-
-A librados user restricted to a single pool might look like::
-
- mon = "allow r"
-
- osd = "allow rw pool foo"
-
-A client using rbd with read access to one pool and read/write access to another::
-
- mon = "allow r"
-
- osd = "allow class-read object_prefix rbd_children, allow pool templates r class-read, allow pool vms rwx"
-
-A client mounting the file system with minimal permissions would need caps like::
-
- mds = "allow"
-
- osd = "allow rw pool data"
-
- mon = "allow r"
-
-
-OSD Capabilities
-================
-
-In general, an osd capability follows the grammar::
-
- osdcap := grant[,grant...]
- grant := allow (match capspec | capspec match)
- match := [pool[=]<poolname> | object_prefix <prefix>]
- capspec := * | [r][w][x] [class-read] [class-write]
-
-The capspec determines what kind of operations the entity can perform::
-
- r = read access to objects
- w = write access to objects
- x = can call any class method (same as class-read class-write)
- class-read = can call class methods that are reads
- class-write = can call class methods that are writes
- * = equivalent to rwx, plus the ability to run osd admin commands,
- i.e. ceph osd tell ...
-
-The match criteria restrict a grant based on the pool being accessed.
-Grants are additive if the client fulfills the match condition. For
-example, if a client has the osd capabilities: "allow r object_prefix
-prefix, allow w pool foo, allow x pool bar", then it has rw access to
-pool foo, rx access to pool bar, and r access to objects whose
-names begin with 'prefix' in any pool.
-
-Caps file format
-================
-
-The caps file format consists of zero or more key/value pairs, one per
-line. The key and value are separated by an ``=``, and the value must
-be quoted (with ``'`` or ``"``) if it contains any whitespace. The key
-is the name of the Ceph subsystem (``osd``, ``mds``, ``mon``), and the
-value is the capability string (see above).
-
-
-Example
-=======
-
-To create a new keyring containing a key for client.foo::
-
- ceph-authtool -C -n client.foo --gen-key keyring
-
-To associate some capabilities with the key (namely, the ability to
-mount a Ceph filesystem)::
-
- ceph-authtool -n client.foo --cap mds 'allow' --cap osd 'allow rw pool=data' --cap mon 'allow r' keyring
-
-To display the contents of the keyring::
-
- ceph-authtool -l keyring
-
-When mounting a Ceph file system, you can grab the appropriately encoded secret key with::
-
- mount -t ceph serverhost:/ mountpoint -o name=foo,secret=`ceph-authtool -p -n client.foo keyring`
-
-
-Availability
-============
-
-**ceph-authtool** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-bluestore-tool.rst b/src/ceph/doc/man/8/ceph-bluestore-tool.rst
deleted file mode 100644
index 7a7b0ea..0000000
--- a/src/ceph/doc/man/8/ceph-bluestore-tool.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-:orphan:
-
-======================================================
- ceph-bluestore-tool -- bluestore administrative tool
-======================================================
-
-.. program:: ceph-bluestore-tool
-
-Synopsis
-========
-
-| **ceph-bluestore-tool** *command*
- [ --dev *device* ... ]
- [ --path *osd path* ]
- [ --out-dir *dir* ]
- [ --log-file | -l *filename* ]
- [ --deep ]
-| **ceph-bluestore-tool** fsck|repair --path *osd path* [ --deep ]
-| **ceph-bluestore-tool** show-label --dev *device* ...
-| **ceph-bluestore-tool** prime-osd-dir --dev *device* --path *osd path*
-| **ceph-bluestore-tool** bluefs-export --path *osd path* --out-dir *dir*
-| **ceph-bluestore-tool** bluefs-export --path *osd path* --out-dir *dir*
-
-
-Description
-===========
-
-**ceph-bluestore-tool** is a utility to perform low-level administrative
-operations on a BlueStore instance.
-
-Commands
-========
-
-.. option:: help
-
- show help
-
-.. option:: fsck
-
- run consistency check on BlueStore metadata. If *--deep* is specified, also read all object data and verify checksums.
-
-.. option:: repair
-
- Run a consistency check *and* repair any errors we can.
-
-.. option:: bluefs-export
-
- Export the contents of BlueFS (i.e., rocksdb files) to an output directory.
-
-.. option:: bluefs-bdev-sizes --path *osd path*
-
- Print the device sizes, as understood by BlueFS, to stdout.
-
-.. option:: bluefs-bdev-expand --path *osd path*
-
- Instruct BlueFS to check the size of its block devices and, if they have expanded, make use of the additional space.
-
-.. option:: show-label --dev *device* [...]
-
- Show device label(s).
-
-Options
-=======
-
-.. option:: --dev *device*
-
- Add *device* to the list of devices to consider
-
-.. option:: --path *osd path*
-
- Specify an osd path. In most cases, the device list is inferred from the symlinks present in *osd path*. This is usually simpler than explicitly specifying the device(s) with --dev.
-
-.. option:: --out-dir *dir*
-
- Output directory for bluefs-export
-
-.. option:: -l, --log-file *log file*
-
- file to log to
-
-.. option:: --log-level *num*
-
- debug log level. Default is 30 (extremely verbose), 20 is very
- verbose, 10 is verbose, and 1 is not very verbose.
-
-.. option:: --deep
-
- deep scrub/repair (read and validate object data, not just metadata)
-
-Device labels
-=============
-
-Every BlueStore block device has a single block label at the beginning of the
-device. You can dump the contents of the label with::
-
- ceph-bluestore-tool show-label --dev *device*
-
-The main device will have a lot of metadata, including information
-that used to be stored in small files in the OSD data directory. The
-auxilliary devices (db and wal) will only have the minimum required
-fields (OSD UUID, size, device type, birth time).
-
-OSD directory priming
-=====================
-
-You can generate the content for an OSD data directory that can start up a
-BlueStore OSD with the *prime-osd-dir* command::
-
- ceph-bluestore-tool prime-osd-dir --dev *main device* --path /var/lib/ceph/osd/ceph-*id*
-
-
-Availability
-============
-
-**ceph-bluestore-tool** is part of Ceph, a massively scalable,
-open-source, distributed storage system. Please refer to the Ceph
-documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph-osd <ceph-osd>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-clsinfo.rst b/src/ceph/doc/man/8/ceph-clsinfo.rst
deleted file mode 100644
index 0188ce1..0000000
--- a/src/ceph/doc/man/8/ceph-clsinfo.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-:orphan:
-
-===============================================
- ceph-clsinfo -- show class object information
-===============================================
-
-.. program:: ceph-clsinfo
-
-Synopsis
-========
-
-| **ceph-clsinfo** [ *options* ] ... *filename*
-
-
-Description
-===========
-
-**ceph-clsinfo** can show name, version, and architecture information
-about a specific class object.
-
-
-Options
-=======
-
-.. option:: -n, --name
-
- Shows the class name
-
-.. option:: -v, --version
-
- Shows the class version
-
-.. option:: -a, --arch
-
- Shows the class architecture
-
-
-Availability
-============
-
-**ceph-clsinfo** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-conf.rst b/src/ceph/doc/man/8/ceph-conf.rst
deleted file mode 100644
index 9782e38..0000000
--- a/src/ceph/doc/man/8/ceph-conf.rst
+++ /dev/null
@@ -1,129 +0,0 @@
-:orphan:
-
-==================================
- ceph-conf -- ceph conf file tool
-==================================
-
-.. program:: ceph-conf
-
-Synopsis
-========
-
-| **ceph-conf** -c *conffile* --list-all-sections
-| **ceph-conf** -c *conffile* -L
-| **ceph-conf** -c *conffile* -l *prefix*
-| **ceph-conf** *key* -s *section1* ...
-| **ceph-conf** [-s *section* ] [-r] --lookup *key*
-| **ceph-conf** [-s *section* ] *key*
-
-
-Description
-===========
-
-**ceph-conf** is a utility for getting information about a ceph
-configuration file. As with most Ceph programs, you can specify which
-Ceph configuration file to use with the ``-c`` flag.
-
-
-Actions
-=======
-
-**ceph-conf** performs one of the following actions:
-
-.. option:: -L, --list-all-sections
-
- list all sections in the configuration file.
-
-.. option:: -l, --list-sections *prefix*
-
- list the sections with the given *prefix*. For example, ``--list-sections mon``
- would list all sections beginning with ``mon``.
-
-.. option:: --lookup *key*
-
- search and print the specified configuration setting. Note: ``--lookup`` is
- the default action. If no other actions are given on the command line, we will
- default to doing a lookup.
-
-.. option:: -h, --help
-
- print a summary of usage.
-
-
-Options
-=======
-
-.. option:: -c *conffile*
-
- the Ceph configuration file.
-
-.. option:: --filter-key *key*
-
- filter section list to only include sections with given *key* defined.
-
-.. option:: --filter-key-value *key* ``=`` *value*
-
- filter section list to only include sections with given *key*/*value* pair.
-
-.. option:: --name *type.id*
-
- the Ceph name in which the sections are searched (default 'client.admin').
- For example, if we specify ``--name osd.0``, the following sections will be
- searched: [osd.0], [osd], [global]
-
-.. option:: -r, --resolve-search
-
- search for the first file that exists and can be opened in the resulted
- comma delimited search list.
-
-.. option:: -s, --section
-
- additional sections to search. These additional sections will be searched
- before the sections that would normally be searched. As always, the first
- matching entry we find will be returned.
-
-
-Examples
-========
-
-To find out what value osd 0 will use for the "osd data" option::
-
- ceph-conf -c foo.conf --name osd.0 --lookup "osd data"
-
-To find out what value will mds a use for the "log file" option::
-
- ceph-conf -c foo.conf --name mds.a "log file"
-
-To list all sections that begin with "osd"::
-
- ceph-conf -c foo.conf -l osd
-
-To list all sections::
-
- ceph-conf -c foo.conf -L
-
-To print the path of the "keyring" used by "client.0"::
-
- ceph-conf --name client.0 -r -l keyring
-
-
-Files
-=====
-
-``/etc/ceph/$cluster.conf``, ``~/.ceph/$cluster.conf``, ``$cluster.conf``
-
-the Ceph configuration files to use if not specified.
-
-
-Availability
-============
-
-**ceph-conf** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer
-to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
diff --git a/src/ceph/doc/man/8/ceph-create-keys.rst b/src/ceph/doc/man/8/ceph-create-keys.rst
deleted file mode 100644
index 20b6560..0000000
--- a/src/ceph/doc/man/8/ceph-create-keys.rst
+++ /dev/null
@@ -1,67 +0,0 @@
-:orphan:
-
-===============================================
-ceph-create-keys -- ceph keyring generate tool
-===============================================
-
-.. program:: ceph-create-keys
-
-Synopsis
-========
-
-| **ceph-create-keys** [-h] [-v] [-t seconds] [--cluster *name*] --id *id*
-
-
-Description
-===========
-
-:program:`ceph-create-keys` is a utility to generate bootstrap keyrings using
-the given monitor when it is ready.
-
-It creates following auth entities (or users)
-
-``client.admin``
-
- and its key for your client host.
-
-``client.bootstrap-{osd, rgw, mds}``
-
- and their keys for bootstrapping corresponding services
-
-To list all users in the cluster::
-
- ceph auth ls
-
-
-Options
-=======
-
-.. option:: --cluster
-
- name of the cluster (default 'ceph').
-
-.. option:: -t
-
- time out after **seconds** (default: 600) waiting for a response from the monitor
-
-.. option:: -i, --id
-
- id of a ceph-mon that is coming up. **ceph-create-keys** will wait until it joins quorum.
-
-.. option:: -v, --verbose
-
- be more verbose.
-
-
-Availability
-============
-
-**ceph-create-keys** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer
-to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-debugpack.rst b/src/ceph/doc/man/8/ceph-debugpack.rst
deleted file mode 100644
index 4f2c4f2..0000000
--- a/src/ceph/doc/man/8/ceph-debugpack.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-:orphan:
-
-=============================================
- ceph-debugpack -- ceph debug packer utility
-=============================================
-
-.. program:: ceph-debugpack
-
-Synopsis
-========
-
-| **ceph-debugpack** [ *options* ] *filename.tar.gz*
-
-
-Description
-===========
-
-**ceph-debugpack** will build a tarball containing various items that are
-useful for debugging crashes. The resulting tarball can be shared with
-Ceph developers when debugging a problem.
-
-The tarball will include the binaries for ceph-mds, ceph-osd, and ceph-mon, radosgw, any
-log files, the ceph.conf configuration file, any core files we can
-find, and (if the system is running) dumps of the current cluster state
-as reported by 'ceph report'.
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during
- startup.
-
-
-Availability
-============
-
-**ceph-debugpack** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
-:doc:`ceph-post-file <ceph-post-file>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-dencoder.rst b/src/ceph/doc/man/8/ceph-dencoder.rst
deleted file mode 100644
index cf2e429..0000000
--- a/src/ceph/doc/man/8/ceph-dencoder.rst
+++ /dev/null
@@ -1,151 +0,0 @@
-:orphan:
-
-==============================================
- ceph-dencoder -- ceph encoder/decoder utility
-==============================================
-
-.. program:: ceph-dencoder
-
-Synopsis
-========
-
-| **ceph-dencoder** [commands...]
-
-
-Description
-===========
-
-**ceph-dencoder** is a utility to encode, decode, and dump ceph data
-structures. It is used for debugging and for testing inter-version
-compatibility.
-
-**ceph-dencoder** takes a simple list of commands and performs them
-in order.
-
-Commands
-========
-
-.. option:: version
-
- Print the version string for the **ceph-dencoder** binary.
-
-.. option:: import <file>
-
- Read a binary blob of encoded data from the given file. It will be
- placed in an in-memory buffer.
-
-.. option:: export <file>
-
- Write the contents of the current in-memory buffer to the given
- file.
-
-.. option:: list_types
-
- List the data types known to this build of **ceph-dencoder**.
-
-.. option:: type <name>
-
- Select the given type for future ``encode`` or ``decode`` operations.
-
-.. option:: skip <bytes>
-
- Seek <bytes> into the imported file before reading data structure, use
- this with objects that have a preamble/header before the object of interest.
-
-.. option:: decode
-
- Decode the contents of the in-memory buffer into an instance of the
- previously selected type. If there is an error, report it.
-
-.. option:: encode
-
- Encode the contents of the in-memory instance of the previously
- selected type to the in-memory buffer.
-
-.. option:: dump_json
-
- Print a JSON-formatted description of the in-memory object.
-
-.. option:: count_tests
-
- Print the number of built-in test instances of the previosly
- selected type that **ceph-dencoder** is able to generate.
-
-.. option:: select_test <n>
-
- Select the given build-in test instance as a the in-memory instance
- of the type.
-
-.. option:: get_features
-
- Print the decimal value of the feature set supported by this version
- of **ceph-dencoder**. Each bit represents a feature. These correspond to
- CEPH_FEATURE_* defines in src/include/ceph_features.h.
-
-.. option:: set_features <f>
-
- Set the feature bits provided to ``encode`` to *f*. This allows
- you to encode objects such that they can be understood by old
- versions of the software (for those types that support it).
-
-Example
-=======
-
-Say you want to examine an attribute on an object stored by ``ceph-osd``. You can do this:
-
-::
-
- $ cd /mnt/osd.12/current/2.b_head
- $ attr -l foo_bar_head_EFE6384B
- Attribute "ceph.snapset" has a 31 byte value for foo_bar_head_EFE6384B
- Attribute "ceph._" has a 195 byte value for foo_bar_head_EFE6384B
- $ attr foo_bar_head_EFE6384B -g ceph._ -q > /tmp/a
- $ ceph-dencoder type object_info_t import /tmp/a decode dump_json
- { "oid": { "oid": "foo",
- "key": "bar",
- "snapid": -2,
- "hash": 4024842315,
- "max": 0},
- "locator": { "pool": 2,
- "preferred": -1,
- "key": "bar"},
- "category": "",
- "version": "9'1",
- "prior_version": "0'0",
- "last_reqid": "client.4116.0:1",
- "size": 1681,
- "mtime": "2012-02-21 08:58:23.666639",
- "lost": 0,
- "wrlock_by": "unknown.0.0:0",
- "snaps": [],
- "truncate_seq": 0,
- "truncate_size": 0,
- "watchers": {}}
-
-Alternatively, perhaps you wish to dump an internal CephFS metadata object, you might
-do that like this:
-
-::
-
- $ rados -p metadata get mds_snaptable mds_snaptable.bin
- $ ceph-dencoder type SnapServer skip 8 import mds_snaptable.bin decode dump_json
- { "snapserver": { "last_snap": 1,
- "pending_noop": [],
- "snaps": [],
- "need_to_purge": {},
- "pending_create": [],
- "pending_destroy": []}}
-
-
-Availability
-============
-
-**ceph-dencoder** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-deploy.rst b/src/ceph/doc/man/8/ceph-deploy.rst
deleted file mode 100644
index ff96574..0000000
--- a/src/ceph/doc/man/8/ceph-deploy.rst
+++ /dev/null
@@ -1,609 +0,0 @@
-:orphan:
-
-=====================================
- ceph-deploy -- Ceph deployment tool
-=====================================
-
-.. program:: ceph-deploy
-
-Synopsis
-========
-
-| **ceph-deploy** **new** [*initial-monitor-node(s)*]
-
-| **ceph-deploy** **install** [*ceph-node*] [*ceph-node*...]
-
-| **ceph-deploy** **mon** *create-initial*
-
-| **ceph-deploy** **osd** *prepare* [*ceph-node*]:[*dir-path*]
-
-| **ceph-deploy** **osd** *activate* [*ceph-node*]:[*dir-path*]
-
-| **ceph-deploy** **osd** *create* [*ceph-node*]:[*dir-path*]
-
-| **ceph-deploy** **admin** [*admin-node*][*ceph-node*...]
-
-| **ceph-deploy** **purgedata** [*ceph-node*][*ceph-node*...]
-
-| **ceph-deploy** **forgetkeys**
-
-Description
-===========
-
-:program:`ceph-deploy` is a tool which allows easy and quick deployment of a
-Ceph cluster without involving complex and detailed manual configuration. It
-uses ssh to gain access to other Ceph nodes from the admin node, sudo for
-administrator privileges on them and the underlying Python scripts automates
-the manual process of Ceph installation on each node from the admin node itself.
-It can be easily run on an workstation and doesn't require servers, databases or
-any other automated tools. With :program:`ceph-deploy`, it is really easy to set
-up and take down a cluster. However, it is not a generic deployment tool. It is
-a specific tool which is designed for those who want to get Ceph up and running
-quickly with only the unavoidable initial configuration settings and without the
-overhead of installing other tools like ``Chef``, ``Puppet`` or ``Juju``. Those
-who want to customize security settings, partitions or directory locations and
-want to set up a cluster following detailed manual steps, should use other tools
-i.e, ``Chef``, ``Puppet``, ``Juju`` or ``Crowbar``.
-
-With :program:`ceph-deploy`, you can install Ceph packages on remote nodes,
-create a cluster, add monitors, gather/forget keys, add OSDs and metadata
-servers, configure admin hosts or take down the cluster.
-
-Commands
-========
-
-new
----
-
-Start deploying a new cluster and write a configuration file and keyring for it.
-It tries to copy ssh keys from admin node to gain passwordless ssh to monitor
-node(s), validates host IP, creates a cluster with a new initial monitor node or
-nodes for monitor quorum, a ceph configuration file, a monitor secret keyring and
-a log file for the new cluster. It populates the newly created Ceph configuration
-file with ``fsid`` of cluster, hostnames and IP addresses of initial monitor
-members under ``[global]`` section.
-
-Usage::
-
- ceph-deploy new [MON][MON...]
-
-Here, [MON] is the initial monitor hostname (short hostname i.e, ``hostname -s``).
-
-Other options like :option:`--no-ssh-copykey`, :option:`--fsid`,
-:option:`--cluster-network` and :option:`--public-network` can also be used with
-this command.
-
-If more than one network interface is used, ``public network`` setting has to be
-added under ``[global]`` section of Ceph configuration file. If the public subnet
-is given, ``new`` command will choose the one IP from the remote host that exists
-within the subnet range. Public network can also be added at runtime using
-:option:`--public-network` option with the command as mentioned above.
-
-
-install
--------
-
-Install Ceph packages on remote hosts. As a first step it installs
-``yum-plugin-priorities`` in admin and other nodes using passwordless ssh and sudo
-so that Ceph packages from upstream repository get more priority. It then detects
-the platform and distribution for the hosts and installs Ceph normally by
-downloading distro compatible packages if adequate repo for Ceph is already added.
-``--release`` flag is used to get the latest release for installation. During
-detection of platform and distribution before installation, if it finds the
-``distro.init`` to be ``sysvinit`` (Fedora, CentOS/RHEL etc), it doesn't allow
-installation with custom cluster name and uses the default name ``ceph`` for the
-cluster.
-
-If the user explicitly specifies a custom repo url with :option:`--repo-url` for
-installation, anything detected from the configuration will be overridden and
-the custom repository location will be used for installation of Ceph packages.
-If required, valid custom repositories are also detected and installed. In case
-of installation from a custom repo a boolean is used to determine the logic
-needed to proceed with a custom repo installation. A custom repo install helper
-is used that goes through config checks to retrieve repos (and any extra repos
-defined) and installs them. ``cd_conf`` is the object built from ``argparse``
-that holds the flags and information needed to determine what metadata from the
-configuration is to be used.
-
-A user can also opt to install only the repository without installing Ceph and
-its dependencies by using :option:`--repo` option.
-
-Usage::
-
- ceph-deploy install [HOST][HOST...]
-
-Here, [HOST] is/are the host node(s) where Ceph is to be installed.
-
-An option ``--release`` is used to install a release known as CODENAME
-(default: firefly).
-
-Other options like :option:`--testing`, :option:`--dev`, :option:`--adjust-repos`,
-:option:`--no-adjust-repos`, :option:`--repo`, :option:`--local-mirror`,
-:option:`--repo-url` and :option:`--gpg-url` can also be used with this command.
-
-
-mds
----
-
-Deploy Ceph mds on remote hosts. A metadata server is needed to use CephFS and
-the ``mds`` command is used to create one on the desired host node. It uses the
-subcommand ``create`` to do so. ``create`` first gets the hostname and distro
-information of the desired mds host. It then tries to read the ``bootstrap-mds``
-key for the cluster and deploy it in the desired host. The key generally has a
-format of ``{cluster}.bootstrap-mds.keyring``. If it doesn't finds a keyring,
-it runs ``gatherkeys`` to get the keyring. It then creates a mds on the desired
-host under the path ``/var/lib/ceph/mds/`` in ``/var/lib/ceph/mds/{cluster}-{name}``
-format and a bootstrap keyring under ``/var/lib/ceph/bootstrap-mds/`` in
-``/var/lib/ceph/bootstrap-mds/{cluster}.keyring`` format. It then runs appropriate
-commands based on ``distro.init`` to start the ``mds``.
-
-Usage::
-
- ceph-deploy mds create [HOST[:DAEMON-NAME]] [HOST[:DAEMON-NAME]...]
-
-The [DAEMON-NAME] is optional.
-
-
-mon
----
-
-Deploy Ceph monitor on remote hosts. ``mon`` makes use of certain subcommands
-to deploy Ceph monitors on other nodes.
-
-Subcommand ``create-initial`` deploys for monitors defined in
-``mon initial members`` under ``[global]`` section in Ceph configuration file,
-wait until they form quorum and then gatherkeys, reporting the monitor status
-along the process. If monitors don't form quorum the command will eventually
-time out.
-
-Usage::
-
- ceph-deploy mon create-initial
-
-Subcommand ``create`` is used to deploy Ceph monitors by explicitly specifying
-the hosts which are desired to be made monitors. If no hosts are specified it
-will default to use the ``mon initial members`` defined under ``[global]``
-section of Ceph configuration file. ``create`` first detects platform and distro
-for desired hosts and checks if hostname is compatible for deployment. It then
-uses the monitor keyring initially created using ``new`` command and deploys the
-monitor in desired host. If multiple hosts were specified during ``new`` command
-i.e, if there are multiple hosts in ``mon initial members`` and multiple keyrings
-were created then a concatenated keyring is used for deployment of monitors. In
-this process a keyring parser is used which looks for ``[entity]`` sections in
-monitor keyrings and returns a list of those sections. A helper is then used to
-collect all keyrings into a single blob that will be used to inject it to monitors
-with :option:`--mkfs` on remote nodes. All keyring files are concatenated to be
-in a directory ending with ``.keyring``. During this process the helper uses list
-of sections returned by keyring parser to check if an entity is already present
-in a keyring and if not, adds it. The concatenated keyring is used for deployment
-of monitors to desired multiple hosts.
-
-Usage::
-
- ceph-deploy mon create [HOST] [HOST...]
-
-Here, [HOST] is hostname of desired monitor host(s).
-
-Subcommand ``add`` is used to add a monitor to an existing cluster. It first
-detects platform and distro for desired host and checks if hostname is compatible
-for deployment. It then uses the monitor keyring, ensures configuration for new
-monitor host and adds the monitor to the cluster. If the section for the monitor
-exists and defines a mon addr that will be used, otherwise it will fallback by
-resolving the hostname to an IP. If :option:`--address` is used it will override
-all other options. After adding the monitor to the cluster, it gives it some time
-to start. It then looks for any monitor errors and checks monitor status. Monitor
-errors arise if the monitor is not added in ``mon initial members``, if it doesn't
-exist in ``monmap`` and if neither ``public_addr`` nor ``public_network`` keys
-were defined for monitors. Under such conditions, monitors may not be able to
-form quorum. Monitor status tells if the monitor is up and running normally. The
-status is checked by running ``ceph daemon mon.hostname mon_status`` on remote
-end which provides the output and returns a boolean status of what is going on.
-``False`` means a monitor that is not fine even if it is up and running, while
-``True`` means the monitor is up and running correctly.
-
-Usage::
-
- ceph-deploy mon add [HOST]
-
- ceph-deploy mon add [HOST] --address [IP]
-
-Here, [HOST] is the hostname and [IP] is the IP address of the desired monitor
-node. Please note, unlike other ``mon`` subcommands, only one node can be
-specified at a time.
-
-Subcommand ``destroy`` is used to completely remove monitors on remote hosts.
-It takes hostnames as arguments. It stops the monitor, verifies if ``ceph-mon``
-daemon really stopped, creates an archive directory ``mon-remove`` under
-``/var/lib/ceph/``, archives old monitor directory in
-``{cluster}-{hostname}-{stamp}`` format in it and removes the monitor from
-cluster by running ``ceph remove...`` command.
-
-Usage::
-
- ceph-deploy mon destroy [HOST] [HOST...]
-
-Here, [HOST] is hostname of monitor that is to be removed.
-
-
-gatherkeys
-----------
-
-Gather authentication keys for provisioning new nodes. It takes hostnames as
-arguments. It checks for and fetches ``client.admin`` keyring, monitor keyring
-and ``bootstrap-mds/bootstrap-osd`` keyring from monitor host. These
-authentication keys are used when new ``monitors/OSDs/MDS`` are added to the
-cluster.
-
-Usage::
-
- ceph-deploy gatherkeys [HOST] [HOST...]
-
-Here, [HOST] is hostname of the monitor from where keys are to be pulled.
-
-
-disk
-----
-
-Manage disks on a remote host. It actually triggers the ``ceph-disk`` utility
-and it's subcommands to manage disks.
-
-Subcommand ``list`` lists disk partitions and Ceph OSDs.
-
-Usage::
-
- ceph-deploy disk list [HOST:[DISK]]
-
-Here, [HOST] is hostname of the node and [DISK] is disk name or path.
-
-Subcommand ``prepare`` prepares a directory, disk or drive for a Ceph OSD. It
-creates a GPT partition, marks the partition with Ceph type uuid, creates a
-file system, marks the file system as ready for Ceph consumption, uses entire
-partition and adds a new partition to the journal disk.
-
-Usage::
-
- ceph-deploy disk prepare [HOST:[DISK]]
-
-Here, [HOST] is hostname of the node and [DISK] is disk name or path.
-
-Subcommand ``activate`` activates the Ceph OSD. It mounts the volume in a
-temporary location, allocates an OSD id (if needed), remounts in the correct
-location ``/var/lib/ceph/osd/$cluster-$id`` and starts ``ceph-osd``. It is
-triggered by ``udev`` when it sees the OSD GPT partition type or on ceph service
-start with ``ceph disk activate-all``.
-
-Usage::
-
- ceph-deploy disk activate [HOST:[DISK]]
-
-Here, [HOST] is hostname of the node and [DISK] is disk name or path.
-
-Subcommand ``zap`` zaps/erases/destroys a device's partition table and contents.
-It actually uses ``sgdisk`` and it's option ``--zap-all`` to destroy both GPT and
-MBR data structures so that the disk becomes suitable for repartitioning.
-``sgdisk`` then uses ``--mbrtogpt`` to convert the MBR or BSD disklabel disk to a
-GPT disk. The ``prepare`` subcommand can now be executed which will create a new
-GPT partition.
-
-Usage::
-
- ceph-deploy disk zap [HOST:[DISK]]
-
-Here, [HOST] is hostname of the node and [DISK] is disk name or path.
-
-
-osd
----
-
-Manage OSDs by preparing data disk on remote host. ``osd`` makes use of certain
-subcommands for managing OSDs.
-
-Subcommand ``prepare`` prepares a directory, disk or drive for a Ceph OSD. It
-first checks against multiple OSDs getting created and warns about the
-possibility of more than the recommended which would cause issues with max
-allowed PIDs in a system. It then reads the bootstrap-osd key for the cluster or
-writes the bootstrap key if not found. It then uses :program:`ceph-disk`
-utility's ``prepare`` subcommand to prepare the disk, journal and deploy the OSD
-on the desired host. Once prepared, it gives some time to the OSD to settle and
-checks for any possible errors and if found, reports to the user.
-
-Usage::
-
- ceph-deploy osd prepare HOST:DISK[:JOURNAL] [HOST:DISK[:JOURNAL]...]
-
-Subcommand ``activate`` activates the OSD prepared using ``prepare`` subcommand.
-It actually uses :program:`ceph-disk` utility's ``activate`` subcommand with
-appropriate init type based on distro to activate the OSD. Once activated, it
-gives some time to the OSD to start and checks for any possible errors and if
-found, reports to the user. It checks the status of the prepared OSD, checks the
-OSD tree and makes sure the OSDs are up and in.
-
-Usage::
-
- ceph-deploy osd activate HOST:DISK[:JOURNAL] [HOST:DISK[:JOURNAL]...]
-
-Subcommand ``create`` uses ``prepare`` and ``activate`` subcommands to create an
-OSD.
-
-Usage::
-
- ceph-deploy osd create HOST:DISK[:JOURNAL] [HOST:DISK[:JOURNAL]...]
-
-Subcommand ``list`` lists disk partitions, Ceph OSDs and prints OSD metadata.
-It gets the osd tree from a monitor host, uses the ``ceph-disk-list`` output
-and gets the mount point by matching the line where the partition mentions
-the OSD name, reads metadata from files, checks if a journal path exists,
-if the OSD is in a OSD tree and prints the OSD metadata.
-
-Usage::
-
- ceph-deploy osd list HOST:DISK[:JOURNAL] [HOST:DISK[:JOURNAL]...]
-
-
-admin
------
-
-Push configuration and ``client.admin`` key to a remote host. It takes
-the ``{cluster}.client.admin.keyring`` from admin node and writes it under
-``/etc/ceph`` directory of desired node.
-
-Usage::
-
- ceph-deploy admin [HOST] [HOST...]
-
-Here, [HOST] is desired host to be configured for Ceph administration.
-
-
-config
-------
-
-Push/pull configuration file to/from a remote host. It uses ``push`` subcommand
-to takes the configuration file from admin host and write it to remote host under
-``/etc/ceph`` directory. It uses ``pull`` subcommand to do the opposite i.e, pull
-the configuration file under ``/etc/ceph`` directory of remote host to admin node.
-
-Usage::
-
- ceph-deploy config push [HOST] [HOST...]
-
- ceph-deploy config pull [HOST] [HOST...]
-
-Here, [HOST] is the hostname of the node where config file will be pushed to or
-pulled from.
-
-
-uninstall
----------
-
-Remove Ceph packages from remote hosts. It detects the platform and distro of
-selected host and uninstalls Ceph packages from it. However, some dependencies
-like ``librbd1`` and ``librados2`` will not be removed because they can cause
-issues with ``qemu-kvm``.
-
-Usage::
-
- ceph-deploy uninstall [HOST] [HOST...]
-
-Here, [HOST] is hostname of the node from where Ceph will be uninstalled.
-
-
-purge
------
-
-Remove Ceph packages from remote hosts and purge all data. It detects the
-platform and distro of selected host, uninstalls Ceph packages and purges all
-data. However, some dependencies like ``librbd1`` and ``librados2`` will not be
-removed because they can cause issues with ``qemu-kvm``.
-
-Usage::
-
- ceph-deploy purge [HOST] [HOST...]
-
-Here, [HOST] is hostname of the node from where Ceph will be purged.
-
-
-purgedata
----------
-
-Purge (delete, destroy, discard, shred) any Ceph data from ``/var/lib/ceph``.
-Once it detects the platform and distro of desired host, it first checks if Ceph
-is still installed on the selected host and if installed, it won't purge data
-from it. If Ceph is already uninstalled from the host, it tries to remove the
-contents of ``/var/lib/ceph``. If it fails then probably OSDs are still mounted
-and needs to be unmounted to continue. It unmount the OSDs and tries to remove
-the contents of ``/var/lib/ceph`` again and checks for errors. It also removes
-contents of ``/etc/ceph``. Once all steps are successfully completed, all the
-Ceph data from the selected host are removed.
-
-Usage::
-
- ceph-deploy purgedata [HOST] [HOST...]
-
-Here, [HOST] is hostname of the node from where Ceph data will be purged.
-
-
-forgetkeys
-----------
-
-Remove authentication keys from the local directory. It removes all the
-authentication keys i.e, monitor keyring, client.admin keyring, bootstrap-osd
-and bootstrap-mds keyring from the node.
-
-Usage::
-
- ceph-deploy forgetkeys
-
-
-pkg
----
-
-Manage packages on remote hosts. It is used for installing or removing packages
-from remote hosts. The package names for installation or removal are to be
-specified after the command. Two options :option:`--install` and
-:option:`--remove` are used for this purpose.
-
-Usage::
-
- ceph-deploy pkg --install [PKGs] [HOST] [HOST...]
-
- ceph-deploy pkg --remove [PKGs] [HOST] [HOST...]
-
-Here, [PKGs] is comma-separated package names and [HOST] is hostname of the
-remote node where packages are to be installed or removed from.
-
-
-calamari
---------
-
-Install and configure Calamari nodes. It first checks if distro is supported
-for Calamari installation by ceph-deploy. An argument ``connect`` is used for
-installation and configuration. It checks for ``ceph-deploy`` configuration
-file (cd_conf) and Calamari release repo or ``calamari-minion`` repo. It relies
-on default for repo installation as it doesn't install Ceph unless specified
-otherwise. ``options`` dictionary is also defined because ``ceph-deploy``
-pops items internally which causes issues when those items are needed to be
-available for every host. If the distro is Debian/Ubuntu, it is ensured that
-proxy is disabled for ``calamari-minion`` repo. ``calamari-minion`` package is
-then installed and custom repository files are added. minion config is placed
-prior to installation so that it is present when the minion first starts.
-config directory, calamari salt config are created and salt-minion package
-is installed. If the distro is Redhat/CentOS, the salt-minion service needs to
-be started.
-
-Usage::
-
- ceph-deploy calamari {connect} [HOST] [HOST...]
-
-Here, [HOST] is the hostname where Calamari is to be installed.
-
-An option ``--release`` can be used to use a given release from repositories
-defined in :program:`ceph-deploy`'s configuration. Defaults to ``calamari-minion``.
-
-Another option :option:`--master` can also be used with this command.
-
-Options
-=======
-
-.. option:: --address
-
- IP address of the host node to be added to the cluster.
-
-.. option:: --adjust-repos
-
- Install packages modifying source repos.
-
-.. option:: --ceph-conf
-
- Use (or reuse) a given ``ceph.conf`` file.
-
-.. option:: --cluster
-
- Name of the cluster.
-
-.. option:: --dev
-
- Install a bleeding edge built from Git branch or tag (default: master).
-
-.. option:: --cluster-network
-
- Specify the (internal) cluster network.
-
-.. option:: --dmcrypt
-
- Encrypt [data-path] and/or journal devices with ``dm-crypt``.
-
-.. option:: --dmcrypt-key-dir
-
- Directory where ``dm-crypt`` keys are stored.
-
-.. option:: --install
-
- Comma-separated package(s) to install on remote hosts.
-
-.. option:: --fs-type
-
- Filesystem to use to format disk ``(xfs, btrfs or ext4)``. Note that support for btrfs and ext4 is no longer tested or recommended; please use xfs.
-
-.. option:: --fsid
-
- Provide an alternate FSID for ``ceph.conf`` generation.
-
-.. option:: --gpg-url
-
- Specify a GPG key url to be used with custom repos (defaults to ceph.com).
-
-.. option:: --keyrings
-
- Concatenate multiple keyrings to be seeded on new monitors.
-
-.. option:: --local-mirror
-
- Fetch packages and push them to hosts for a local repo mirror.
-
-.. option:: --master
-
- The domain for the Calamari master server.
-
-.. option:: --mkfs
-
- Inject keys to MONs on remote nodes.
-
-.. option:: --no-adjust-repos
-
- Install packages without modifying source repos.
-
-.. option:: --no-ssh-copykey
-
- Do not attempt to copy ssh keys.
-
-.. option:: --overwrite-conf
-
- Overwrite an existing conf file on remote host (if present).
-
-.. option:: --public-network
-
- Specify the public network for a cluster.
-
-.. option:: --remove
-
- Comma-separated package(s) to remove from remote hosts.
-
-.. option:: --repo
-
- Install repo files only (skips package installation).
-
-.. option:: --repo-url
-
- Specify a repo url that mirrors/contains Ceph packages.
-
-.. option:: --testing
-
- Install the latest development release.
-
-.. option:: --username
-
- The username to connect to the remote host.
-
-.. option:: --version
-
- The current installed version of :program:`ceph-deploy`.
-
-.. option:: --zap-disk
-
- Destroy the partition table and content of a disk.
-
-
-Availability
-============
-
-:program:`ceph-deploy` is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the documentation at http://ceph.com/ceph-deploy/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph-mon <ceph-mon>`\(8),
-:doc:`ceph-osd <ceph-osd>`\(8),
-:doc:`ceph-disk <ceph-disk>`\(8),
-:doc:`ceph-mds <ceph-mds>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-detect-init.rst b/src/ceph/doc/man/8/ceph-detect-init.rst
deleted file mode 100644
index c409a94..0000000
--- a/src/ceph/doc/man/8/ceph-detect-init.rst
+++ /dev/null
@@ -1,65 +0,0 @@
-:orphan:
-
-============================================================
- ceph-detect-init -- display the init system Ceph should use
-============================================================
-
-.. program:: ceph-detect-init
-
-Synopsis
-========
-
-| **ceph-detect-init** [--verbose] [--use-rhceph] [--default *init*]
-
-Description
-===========
-
-:program:`ceph-detect-init` is a utility that prints the init system
-Ceph uses. It can be one of ``sysvinit``, ``upstart`` or ``systemd``.
-The init system Ceph uses may not be the default init system of the
-host operating system. For instance on Debian Jessie, Ceph may use
-``sysvinit`` although ``systemd`` is the default.
-
-If the init system of the host operating system is unknown, return on
-error, unless :option:`--default` is specified.
-
-Options
-=======
-
-.. option:: --use-rhceph
-
- When an operating system identifies itself as Red Hat, it is
- treated as if it was CentOS. With :option:`--use-rhceph` it is
- treated as RHEL instead.
-
-.. option:: --default INIT
-
- If the init system of the host operating system is unkown, return
- the value of *INIT* instead of failing with an error.
-
-.. option:: --verbose
-
- Display additional information for debugging.
-
-Bugs
-====
-
-:program:`ceph-detect-init` is used by :program:`ceph-disk` to figure out the init system to manage the mount directory of an OSD. But only following combinations are fully tested:
-
-- `upstart` on `Ubuntu 14.04`
-- `systemd` on `Ubuntu 15.04` and up
-- `systemd` on `Debian 8` and up
-- `systemd` on `RHEL/CentOS 7` and up
-- `systemd` on `Fedora 22` and up
-
-Availability
-============
-
-:program:`ceph-detect-init` is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-See also
-========
-
-:doc:`ceph-disk <ceph-disk>`\(8),
-:doc:`ceph-deploy <ceph-deploy>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-disk.rst b/src/ceph/doc/man/8/ceph-disk.rst
deleted file mode 100644
index 4635937..0000000
--- a/src/ceph/doc/man/8/ceph-disk.rst
+++ /dev/null
@@ -1,97 +0,0 @@
-:orphan:
-
-===================================================================
- ceph-disk -- Ceph disk utility for OSD
-===================================================================
-
-.. program:: ceph-disk
-
-Synopsis
-========
-
-| **ceph-disk** [-h] [-v] [--log-stdout] [--prepend-to-path PATH]
-| [--statedir PATH] [--sysconfdir PATH]
-| [--setuser USER] [--setgroup GROUP]
-| ...
-
-optional arguments
-------------------
-
--h, --help show this help message and exit
--v, --verbose be more verbose
---log-stdout log to stdout
---prepend-to-path PATH
- prepend PATH to $PATH for backward compatibility (default /usr/bin)
---statedir PATH directory in which ceph state is preserved (default /var/lib/ceph)
---sysconfdir PATH directory in which ceph configuration files are found (default /etc/ceph)
---setuser USER use the given user for subprocesses, rather than ceph or root
---setgroup GROUP use the given group for subprocesses, rather than ceph or root
-
-subcommands
------------
-
-prepare
- Prepare a directory or disk for a Ceph OSD
-activate
- Activate a Ceph OSD
-activate-lockbox
- Activate a Ceph lockbox
-activate-block
- Activate an OSD via its block device
-activate-journal
- Activate an OSD via its journal device
-activate-all
- Activate all tagged OSD partitions
-list
- List disks, partitions, and Ceph OSDs
-suppress-activate
- Suppress activate on a device (prefix)
-unsuppress-activate
- Stop suppressing activate on a device (prefix)
-deactivate
- Deactivate a Ceph OSD
-destroy
- Destroy a Ceph OSD
-zap
- Zap/erase/destroy a device's partition table (and contents)
-trigger
- Trigger an event (caled by udev)
-fix
- Fix SELinux labels and/or file permissions
-
-Description
-===========
-
-:program:`ceph-disk` is a utility that can prepare and activate a disk, partition or
-directory as a Ceph OSD. It is run directly or triggered by :program:`ceph-deploy`
-or ``udev``. It can also be triggered by other deployment utilities like ``Chef``,
-``Juju``, ``Puppet`` etc.
-
-It actually automates the multiple steps involved in manual creation and start
-of an OSD into two steps of preparing and activating the OSD by using the
-subcommands ``prepare`` and ``activate``.
-
-:program:`ceph-disk` also automates the multiple steps involved to manually stop
-and destroy an OSD into two steps of deactivating and destroying the OSD by using
-the subcommands ``deactivate`` and ``destroy``.
-
-The documentation for each subcommand (prepare, activate, etc.) can be displayed
-with its ``--help`` option. For instance ``ceph-disk prepare --help``.
-
-Bugs
-====
-
-See also the ``Bugs`` section in :doc:`ceph-detect-init <ceph-detect-init>`\(8).
-
-Availability
-============
-
-:program:`ceph-disk` is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-See also
-========
-
-:doc:`ceph-detect-init <ceph-detect-init>`\(8)
-:doc:`ceph-osd <ceph-osd>`\(8),
-:doc:`ceph-deploy <ceph-deploy>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-fuse.rst b/src/ceph/doc/man/8/ceph-fuse.rst
deleted file mode 100644
index cede60e..0000000
--- a/src/ceph/doc/man/8/ceph-fuse.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-:orphan:
-
-=========================================
- ceph-fuse -- FUSE-based client for ceph
-=========================================
-
-.. program:: ceph-fuse
-
-Synopsis
-========
-
-| **ceph-fuse** [ -m *monaddr*:*port* ] *mountpoint* [ *fuse options* ]
-
-
-Description
-===========
-
-**ceph-fuse** is a FUSE (File system in USErspace) client for Ceph
-distributed file system. It will mount a ceph file system (specified
-via the -m option for described by ceph.conf (see below) at the
-specific mount point.
-
-The file system can be unmounted with::
-
- fusermount -u mountpoint
-
-or by sending ``SIGINT`` to the ``ceph-fuse`` process.
-
-
-Options
-=======
-
-Any options not recognized by ceph-fuse will be passed on to libfuse.
-
-.. option:: -d
-
- Detach from console and daemonize after startup.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ceph.conf).
-
-.. option:: -r root_directory
-
- Use root_directory as the mounted root, rather than the full Ceph tree.
-
-
-Availability
-============
-
-**ceph-fuse** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-fusermount(8),
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-kvstore-tool.rst b/src/ceph/doc/man/8/ceph-kvstore-tool.rst
deleted file mode 100644
index 4baa492..0000000
--- a/src/ceph/doc/man/8/ceph-kvstore-tool.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-:orphan:
-
-=====================================================
- ceph-kvstore-tool -- ceph kvstore manipulation tool
-=====================================================
-
-.. program:: ceph-kvstore-tool
-
-Synopsis
-========
-
-| **ceph-kvstore-tool** <leveldb|rocksdb|bluestore-kv> <store path> *command* [args...]
-
-
-Description
-===========
-
-:program:`ceph-kvstore-tool` is a kvstore manipulation tool. It allows users to manipule
-leveldb/rocksdb's data (like OSD's omap) offline.
-
-Commands
-========
-
-:program:`ceph-kvstore-tool` utility uses many commands for debugging purpose
-which are as follows:
-
-:command:`list [prefix]`
- Print key of all KV pairs stored with the URL encoded prefix.
-
-:command:`list-crc [prefix]`
- Print CRC of all KV pairs stored with the URL encoded prefix.
-
-:command:`exists <prefix> [key]`
- Check if there is any KV pair stored with the URL encoded prefix. If key
- is also specified, check for the key with the prefix instead.
-
-:command:`get <prefix> <key> [out <file>]`
- Get the value of the KV pair stored with the URL encoded prefix and key.
- If file is also specified, write the value to the file.
-
-:command:`crc <prefix> <key>`
- Get the CRC of the KV pair stored with the URL encoded prefix and key.
-
-:command:`get-size [<prefix> <key>]`
- Get estimated store size or size of value specified by prefix and key.
-
-:command:`set <prefix> <key> [ver <N>|in <file>]`
- Set the value of the KV pair stored with the URL encoded prefix and key.
- The value could be *version_t* or text.
-
-:command:`rm <prefix> <key>`
- Remove the KV pair stored with the URL encoded prefix and key.
-
-:command:`rm-prefix <prefix>`
- Remove all KV pairs stored with the URL encoded prefix.
-
-:command:`store-copy <path> [num-keys-per-tx]`
- Copy all KV pairs to another directory specified by ``path``.
- [num-keys-per-tx] is the number of KV pairs copied for a transaction.
-
-:command:`store-crc <path>`
- Store CRC of all KV pairs to a file specified by ``path``.
-
-:command:`compact`
- Subcommand ``compact`` is used to compact all data of kvstore. It will open
- the database, and trigger a database's compaction. After compaction, some
- disk space may be released.
-
-:command:`compact-prefix <prefix>`
- Compact all entries specified by the URL encoded prefix.
-
-:command:`compact-range <prefix> <start> <end>`
- Compact some entries specified by the URL encoded prefix and range.
-
-Availability
-============
-
-**ceph-kvstore-tool** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-mds.rst b/src/ceph/doc/man/8/ceph-mds.rst
deleted file mode 100644
index b17fd70..0000000
--- a/src/ceph/doc/man/8/ceph-mds.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-:orphan:
-
-=========================================
- ceph-mds -- ceph metadata server daemon
-=========================================
-
-.. program:: ceph-mds
-
-Synopsis
-========
-
-| **ceph-mds** -i *name* [ --hot-standby [*rank*] ]
-
-
-Description
-===========
-
-**ceph-mds** is the metadata server daemon for the Ceph distributed file
-system. One or more instances of ceph-mds collectively manage the file
-system namespace, coordinating access to the shared OSD cluster.
-
-Each ceph-mds daemon instance should have a unique name. The name is used
-to identify daemon instances in the ceph.conf.
-
-Once the daemon has started, the monitor cluster will normally assign
-it a logical rank, or put it in a standby pool to take over for
-another daemon that crashes. Some of the specified options can cause
-other behaviors.
-
-If you specify hot-standby, you must either specify the rank on the command
-line, or specify one of the mds_standby_for_[rank|name] parameters in the
-config. The command line specification overrides the config, and specifying
-the rank overrides specifying the name.
-
-
-Options
-=======
-
-.. option:: -f, --foreground
-
- Foreground: do not daemonize after startup (run in foreground). Do
- not generate a pid file. Useful when run via :doc:`ceph-run
- <ceph-run>`\(8).
-
-.. option:: -d
-
- Debug mode: like ``-f``, but also send all log output to stderr.
-
-.. option:: --setuser userorgid
-
- Set uid after starting. If a username is specified, the user
- record is looked up to get a uid and a gid, and the gid is also set
- as well, unless --setgroup is also specified.
-
-.. option:: --setgroup grouporgid
-
- Set gid after starting. If a group name is specified the group
- record is looked up to get a gid.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during
- startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through
- ``ceph.conf``).
-
-.. option:: --hot-standby <rank>
-
- Start as a hot standby for MDS <rank>.
-
-Availability
-============
-
-**ceph-mds** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to the Ceph documentation at
-http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-mon <ceph-mon>`\(8),
-:doc:`ceph-osd <ceph-osd>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-mon.rst b/src/ceph/doc/man/8/ceph-mon.rst
deleted file mode 100644
index 7a2cd03..0000000
--- a/src/ceph/doc/man/8/ceph-mon.rst
+++ /dev/null
@@ -1,94 +0,0 @@
-:orphan:
-
-=================================
- ceph-mon -- ceph monitor daemon
-=================================
-
-.. program:: ceph-mon
-
-Synopsis
-========
-
-| **ceph-mon** -i *monid* [ --mon-data *mondatapath* ]
-
-
-Description
-===========
-
-**ceph-mon** is the cluster monitor daemon for the Ceph distributed
-file system. One or more instances of **ceph-mon** form a Paxos
-part-time parliament cluster that provides extremely reliable and
-durable storage of cluster membership, configuration, and state.
-
-The *mondatapath* refers to a directory on a local file system storing
-monitor data. It is normally specified via the ``mon data`` option in
-the configuration file.
-
-Options
-=======
-
-.. option:: -f, --foreground
-
- Foreground: do not daemonize after startup (run in foreground). Do
- not generate a pid file. Useful when run via :doc:`ceph-run <ceph-run>`\(8).
-
-.. option:: -d
-
- Debug mode: like ``-f``, but also send all log output to stderr.
-
-.. option:: --setuser userorgid
-
- Set uid after starting. If a username is specified, the user
- record is looked up to get a uid and a gid, and the gid is also set
- as well, unless --setgroup is also specified.
-
-.. option:: --setgroup grouporgid
-
- Set gid after starting. If a group name is specified the group
- record is looked up to get a gid.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during
- startup.
-
-.. option:: --mkfs
-
- Initialize the ``mon data`` directory with seed information to form
- and initial ceph file system or to join an existing monitor
- cluster. Three pieces of information must be provided:
-
- - The cluster fsid. This can come from a monmap (``--monmap <path>``) or
- explicitly via ``--fsid <uuid>``.
- - A list of monitors and their addresses. This list of monitors
- can come from a monmap (``--monmap <path>``), the ``mon host``
- configuration value (in *ceph.conf* or via ``-m
- host1,host2,...``), or ``mon addr`` lines in *ceph.conf*. If this
- monitor is to be part of the initial monitor quorum for a new
- Ceph cluster, then it must be included in the initial list,
- matching either the name or address of a monitor in the list.
- When matching by address, either the ``public addr`` or ``public
- subnet`` options may be used.
- - The monitor secret key ``mon.``. This must be included in the
- keyring provided via ``--keyring <path>``.
-
-.. option:: --keyring
-
- Specify a keyring for use with ``--mkfs``.
-
-
-Availability
-============
-
-**ceph-mon** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer
-to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-mds <ceph-mds>`\(8),
-:doc:`ceph-osd <ceph-osd>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-osd.rst b/src/ceph/doc/man/8/ceph-osd.rst
deleted file mode 100644
index 388e339..0000000
--- a/src/ceph/doc/man/8/ceph-osd.rst
+++ /dev/null
@@ -1,134 +0,0 @@
-:orphan:
-
-========================================
- ceph-osd -- ceph object storage daemon
-========================================
-
-.. program:: ceph-osd
-
-Synopsis
-========
-
-| **ceph-osd** -i *osdnum* [ --osd-data *datapath* ] [ --osd-journal
- *journal* ] [ --mkfs ] [ --mkjournal ] [--flush-journal] [--check-allows-journal] [--check-wants-journal] [--check-needs-journal] [ --mkkey ]
-
-
-Description
-===========
-
-**ceph-osd** is the object storage daemon for the Ceph distributed file
-system. It is responsible for storing objects on a local file system
-and providing access to them over the network.
-
-The datapath argument should be a directory on a xfs file system
-where the object data resides. The journal is optional, and is only
-useful performance-wise when it resides on a different disk than
-datapath with low latency (ideally, an NVRAM device).
-
-
-Options
-=======
-
-.. option:: -f, --foreground
-
- Foreground: do not daemonize after startup (run in foreground). Do
- not generate a pid file. Useful when run via :doc:`ceph-run <ceph-run>`\(8).
-
-.. option:: -d
-
- Debug mode: like ``-f``, but also send all log output to stderr.
-
-.. option:: --setuser userorgid
-
- Set uid after starting. If a username is specified, the user
- record is looked up to get a uid and a gid, and the gid is also set
- as well, unless --setgroup is also specified.
-
-.. option:: --setgroup grouporgid
-
- Set gid after starting. If a group name is specified the group
- record is looked up to get a gid.
-
-.. option:: --osd-data osddata
-
- Use object store at *osddata*.
-
-.. option:: --osd-journal journal
-
- Journal updates to *journal*.
-
-.. option:: --check-wants-journal
-
- Check whether a journal is desired.
-
-.. option:: --check-allows-journal
-
- Check whether a journal is allowed.
-
-.. option:: --check-needs-journal
-
- Check whether a journal is required.
-
-.. option:: --mkfs
-
- Create an empty object repository. This also initializes the journal
- (if one is defined).
-
-.. option:: --mkkey
-
- Generate a new secret key. This is normally used in combination
- with ``--mkfs`` as it is more convenient than generating a key by
- hand with :doc:`ceph-authtool <ceph-authtool>`\(8).
-
-.. option:: --mkjournal
-
- Create a new journal file to match an existing object repository.
- This is useful if the journal device or file is wiped out due to a
- disk or file system failure.
-
-.. option:: --flush-journal
-
- Flush the journal to permanent store. This runs in the foreground
- so you know when it's completed. This can be useful if you want to
- resize the journal or need to otherwise destroy it: this guarantees
- you won't lose data.
-
-.. option:: --get-cluster-fsid
-
- Print the cluster fsid (uuid) and exit.
-
-.. option:: --get-osd-fsid
-
- Print the OSD's fsid and exit. The OSD's uuid is generated at
- --mkfs time and is thus unique to a particular instantiation of
- this OSD.
-
-.. option:: --get-journal-fsid
-
- Print the journal's uuid. The journal fsid is set to match the OSD
- fsid at --mkfs time.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` for runtime configuration options.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through
- ``ceph.conf``).
-
-
-Availability
-============
-
-**ceph-osd** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-mds <ceph-mds>`\(8),
-:doc:`ceph-mon <ceph-mon>`\(8),
-:doc:`ceph-authtool <ceph-authtool>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-post-file.rst b/src/ceph/doc/man/8/ceph-post-file.rst
deleted file mode 100644
index 7e4899f..0000000
--- a/src/ceph/doc/man/8/ceph-post-file.rst
+++ /dev/null
@@ -1,71 +0,0 @@
-:orphan:
-
-==================================================
- ceph-post-file -- post files for ceph developers
-==================================================
-
-.. program:: ceph-post-file
-
-Synopsis
-========
-
-| **ceph-post-file** [-d *description] [-u *user*] *file or dir* ...
-
-
-Description
-===========
-
-**ceph-post-file** will upload files or directories to ceph.com for
-later analysis by Ceph developers.
-
-Each invocation uploads files or directories to a separate directory
-with a unique tag. That tag can be passed to a developer or
-referenced in a bug report (http://tracker.ceph.com/). Once the
-upload completes, the directory is marked non-readable and
-non-writeable to prevent access or modification by other users.
-
-Warning
-=======
-
-Basic measures are taken to make posted data be visible only to
-developers with access to ceph.com infrastructure. However, users
-should think twice and/or take appropriate precautions before
-posting potentially sensitive data (for example, logs or data
-directories that contain Ceph secrets).
-
-
-Options
-=======
-
-.. option:: -d *description*, --description *description*
-
- Add a short description for the upload. This is a good opportunity
- to reference a bug number. There is no default value.
-
-.. option:: -u *user*
-
- Set the user metadata for the upload. This defaults to `whoami`@`hostname -f`.
-
-Examples
-========
-
-To upload a single log::
-
- ceph-post-file /var/log/ceph/ceph-mon.`hostname`.log
-
-To upload several directories::
-
- ceph-post-file -d 'mon data directories' /var/log/ceph/mon/*
-
-
-Availability
-============
-
-**ceph-post-file** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-debugpack <ceph-debugpack>`\(8),
diff --git a/src/ceph/doc/man/8/ceph-rbdnamer.rst b/src/ceph/doc/man/8/ceph-rbdnamer.rst
deleted file mode 100644
index 123c6e2..0000000
--- a/src/ceph/doc/man/8/ceph-rbdnamer.rst
+++ /dev/null
@@ -1,41 +0,0 @@
-:orphan:
-
-==================================================
- ceph-rbdnamer -- udev helper to name RBD devices
-==================================================
-
-.. program:: ceph-rbdnamer
-
-
-Synopsis
-========
-
-| **ceph-rbdnamer** *num*
-
-
-Description
-===========
-
-**ceph-rbdnamer** prints the pool and image name for the given RBD devices
-to stdout. It is used by `udev` (using a rule like the one below) to
-set up a device symlink.
-
-
-::
-
- KERNEL=="rbd[0-9]*", PROGRAM="/usr/bin/ceph-rbdnamer %n", SYMLINK+="rbd/%c{1}/%c{2}"
-
-
-Availability
-============
-
-**ceph-rbdnamer** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`rbd <rbd>`\(8),
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-rest-api.rst b/src/ceph/doc/man/8/ceph-rest-api.rst
deleted file mode 100644
index 9864a9b..0000000
--- a/src/ceph/doc/man/8/ceph-rest-api.rst
+++ /dev/null
@@ -1,150 +0,0 @@
-:orphan:
-
-=====================================================
- ceph-rest-api -- ceph RESTlike administration server
-=====================================================
-
-.. program:: ceph-rest-api
-
-Synopsis
-========
-
-| **ceph-rest-api** [ -c *conffile* ] [--cluster *clustername* ] [ -n *name* ] [-i *id* ]
-
-
-Description
-===========
-
-**ceph-rest-api** is a WSGI application that can run as a
-standalone web service or run under a web server that supports
-WSGI. It provides much of the functionality of the **ceph**
-command-line tool through an HTTP-accessible interface.
-
-Options
-=======
-
-.. option:: -c/--conf conffile
-
- names the ceph.conf file to use for configuration. If -c is not
- specified, the default depends on the state of the --cluster option
- (default 'ceph'; see below). The configuration file is searched
- for in this order:
-
- * $CEPH_CONF
- * /etc/ceph/${cluster}.conf
- * ~/.ceph/${cluster}.conf
- * ${cluster}.conf (in the current directory)
-
- so you can also pass this option in the environment as CEPH_CONF.
-
-.. option:: --cluster clustername
-
- set *clustername* for use in the $cluster metavariable, for
- locating the ceph.conf file. The default is 'ceph'.
-
-.. option:: -n/--name name
-
- specifies the client 'name', which is used to find the
- client-specific configuration options in the config file, and
- also is the name used for authentication when connecting
- to the cluster (the entity name appearing in 'ceph auth ls' output,
- for example). The default is 'client.restapi'.
-
-.. option:: -i/--id id
-
- specifies the client 'id', which will form the clientname
- as 'client.<id>' if clientname is not set. If -n/-name is
- set, that takes precedence.
-
- Also, global Ceph options are supported.
-
-
-Configuration parameters
-========================
-
-Supported configuration parameters include:
-
-* **keyring** the keyring file holding the key for 'clientname'
-* **public addr** ip:port to listen on (default 0.0.0.0:5000)
-* **log file** (usual Ceph default)
-* **restapi base url** the base URL to answer requests on (default /api/v0.1)
-* **restapi log level** critical, error, warning, info, debug (default warning)
-
-Configuration parameters are searched in the standard order:
-first in the section named '<clientname>', then 'client', then 'global'.
-
-<clientname> is either supplied by -n/--name, "client.<id>" where
-<id> is supplied by -i/--id, or 'client.restapi' if neither option
-is present.
-
-A single-threaded server will run on **public addr** if the ceph-rest-api
-executed directly; otherwise, configuration is specified by the enclosing
-WSGI web server.
-
-Commands
-========
-
-Commands are submitted with HTTP GET requests (for commands that
-primarily return data) or PUT (for commands that affect cluster state).
-HEAD and OPTIONS are also supported. Standard HTTP status codes
-are returned.
-
-For commands that return bulk data, the request can include
-Accept: application/json or Accept: application/xml to select the
-desired structured output, or you may use a .json or .xml addition
-to the requested PATH. Parameters are supplied as query parameters
-in the request; for parameters that take more than one value, repeat
-the key=val construct. For instance, to remove OSDs 2 and 3,
-send a PUT request to ``osd/rm?ids=2&ids=3``.
-
-Discovery
-=========
-
-Human-readable discovery of supported commands and parameters, along
-with a small description of each command, is provided when the requested
-path is incomplete/partially matching. Requesting / will redirect to
-the value of **restapi base url**, and that path will give a full list
-of all known commands.
-For example, requesting ``api/vX.X/mon`` will return the list of API calls for
-monitors - ``api/vX.X/osd`` will return the list of API calls for OSD and so on.
-
-The command set is very similar to the commands
-supported by the **ceph** tool. One notable exception is that the
-``ceph pg <pgid> <command>`` style of commands is supported here
-as ``tell/<pgid>/command?args``.
-
-Deployment as WSGI application
-==============================
-
-When deploying as WSGI application (say, with Apache/mod_wsgi,
-or nginx/uwsgi, or gunicorn, etc.), use the ``ceph_rest_api.py`` module
-(``ceph-rest-api`` is a thin layer around this module). The standalone web
-server is of course not used, so address/port configuration is done in
-the WSGI server. Use a python .wsgi module or the equivalent to call
-``app = generate_app(conf, cluster, clientname, clientid, args)`` where:
-
-* conf is as -c/--conf above
-* cluster is as --cluster above
-* clientname, -n/--name
-* clientid, -i/--id, and
-* args are any other generic Ceph arguments
-
-When app is returned, it will have attributes 'ceph_addr' and 'ceph_port'
-set to what the address and port are in the Ceph configuration;
-those may be used for the server, or ignored.
-
-Any errors reading configuration or connecting to the cluster cause an
-exception to be raised; see your WSGI server documentation for how to
-see those messages in case of problem.
-
-Availability
-============
-
-**ceph-rest-api** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to the Ceph documentation at
-http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-run.rst b/src/ceph/doc/man/8/ceph-run.rst
deleted file mode 100644
index ed76c28..0000000
--- a/src/ceph/doc/man/8/ceph-run.rst
+++ /dev/null
@@ -1,45 +0,0 @@
-:orphan:
-
-=========================================
- ceph-run -- restart daemon on core dump
-=========================================
-
-.. program:: ceph-run
-
-Synopsis
-========
-
-| **ceph-run** *command* ...
-
-
-Description
-===========
-
-**ceph-run** is a simple wrapper that will restart a daemon if it exits
-with a signal indicating it crashed and possibly core dumped (that is,
-signals 3, 4, 5, 6, 8, or 11).
-
-The command should run the daemon in the foreground. For Ceph daemons,
-that means the ``-f`` option.
-
-
-Options
-=======
-
-None
-
-
-Availability
-============
-
-**ceph-run** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-mon <ceph-mon>`\(8),
-:doc:`ceph-mds <ceph-mds>`\(8),
-:doc:`ceph-osd <ceph-osd>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-syn.rst b/src/ceph/doc/man/8/ceph-syn.rst
deleted file mode 100644
index a30c460..0000000
--- a/src/ceph/doc/man/8/ceph-syn.rst
+++ /dev/null
@@ -1,99 +0,0 @@
-:orphan:
-
-===============================================
- ceph-syn -- ceph synthetic workload generator
-===============================================
-
-.. program:: ceph-syn
-
-Synopsis
-========
-
-| **ceph-syn** [ -m *monaddr*:*port* ] --syn *command* *...*
-
-
-Description
-===========
-
-**ceph-syn** is a simple synthetic workload generator for the Ceph
-distributed file system. It uses the userspace client library to
-generate simple workloads against a currently running file system. The
-file system need not be mounted via ceph-fuse(8) or the kernel client.
-
-One or more ``--syn`` command arguments specify the particular
-workload, as documented below.
-
-
-Options
-=======
-
-.. option:: -d
-
- Detach from console and daemonize after startup.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during
- startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through
- ``ceph.conf``).
-
-.. option:: --num_client num
-
- Run num different clients, each in a separate thread.
-
-.. option:: --syn workloadspec
-
- Run the given workload. May be specified as many times as
- needed. Workloads will normally run sequentially.
-
-
-Workloads
-=========
-
-Each workload should be preceded by ``--syn`` on the command
-line. This is not a complete list.
-
-:command:`mknap` *path* *snapname*
- Create a snapshot called *snapname* on *path*.
-
-:command:`rmsnap` *path* *snapname*
- Delete snapshot called *snapname* on *path*.
-
-:command:`rmfile` *path*
- Delete/unlink *path*.
-
-:command:`writefile` *sizeinmb* *blocksize*
- Create a file, named after our client id, that is *sizeinmb* MB by
- writing *blocksize* chunks.
-
-:command:`readfile` *sizeinmb* *blocksize*
- Read file, named after our client id, that is *sizeinmb* MB by
- writing *blocksize* chunks.
-
-:command:`rw` *sizeinmb* *blocksize*
- Write file, then read it back, as above.
-
-:command:`makedirs` *numsubdirs* *numfiles* *depth*
- Create a hierarchy of directories that is *depth* levels deep. Give
- each directory *numsubdirs* subdirectories and *numfiles* files.
-
-:command:`walk`
- Recursively walk the file system (like find).
-
-
-Availability
-============
-
-**ceph-syn** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`ceph-fuse <ceph-fuse>`\(8)
diff --git a/src/ceph/doc/man/8/ceph-volume-systemd.rst b/src/ceph/doc/man/8/ceph-volume-systemd.rst
deleted file mode 100644
index 1a7b481..0000000
--- a/src/ceph/doc/man/8/ceph-volume-systemd.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-:orphan:
-
-=======================================================
- ceph-volume-systemd -- systemd ceph-volume helper tool
-=======================================================
-
-.. program:: ceph-volume-systemd
-
-Synopsis
-========
-
-| **ceph-volume-systemd** *systemd instance name*
-
-
-Description
-===========
-:program:`ceph-volume-systemd` is a systemd helper tool that receives input
-from (dynamically created) systemd units so that activation of OSDs can
-proceed.
-
-It translates the input into a system call to ceph-volume for activation
-purposes only.
-
-
-Examples
-========
-Its input is the ``systemd instance name`` (represented by ``%i`` in a systemd
-unit), and it should be in the following format::
-
- <ceph-volume subcommand>-<extra metadata>
-
-In the case of ``lvm`` a call could look like::
-
- /usr/bin/ceph-volume-systemd lvm-0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-Which in turn will call ``ceph-volume`` in the following way::
-
- ceph-volume lvm trigger 0-8715BEB4-15C5-49DE-BA6F-401086EC7B41
-
-Any other subcommand will need to have implemented a ``trigger`` command that
-can consume the extra metadata in this format.
-
-
-Availability
-============
-
-:program:`ceph-volume-systemd` is part of Ceph, a massively scalable,
-open-source, distributed storage system. Please refer to the documentation at
-http://docs.ceph.com/ for more information.
-
-
-See also
-========
-
-:doc:`ceph-osd <ceph-osd>`\(8),
-:doc:`ceph-disk <ceph-volume>`\(8),
diff --git a/src/ceph/doc/man/8/ceph-volume.rst b/src/ceph/doc/man/8/ceph-volume.rst
deleted file mode 100644
index 431e82c..0000000
--- a/src/ceph/doc/man/8/ceph-volume.rst
+++ /dev/null
@@ -1,122 +0,0 @@
-:orphan:
-
-========================================
- ceph-volume -- Ceph OSD deployment tool
-========================================
-
-.. program:: ceph-volume
-
-Synopsis
-========
-
-| **ceph-volume** [-h] [--cluster CLUSTER] [--log-level LOG_LEVEL]
-| [--log-path LOG_PATH]
-
-| **ceph-volume** **lvm** [ *trigger* | *create* | *activate* | *prepare* ]
-
-Description
-===========
-
-:program:`ceph-volume` is a single purpose command line tool to deploy logical
-volumes as OSDs, trying to maintain a similar API to ``ceph-disk`` when
-preparing, activating, and creating OSDs.
-
-It deviates from ``ceph-disk`` by not interacting or relying on the udev rules
-that come installed for Ceph. These rules allow automatic detection of
-previously setup devices that are in turn fed into ``ceph-disk`` to activate
-them.
-
-
-Commands
-========
-
-lvm
----
-
-By making use of LVM tags, the ``lvm`` sub-command is able to store and later
-re-discover and query devices associated with OSDs so that they can later
-activated.
-
-Subcommands:
-
-**activate**
-Enables a systemd unit that persists the OSD ID and its UUID (also called
-``fsid`` in Ceph CLI tools), so that at boot time it can understand what OSD is
-enabled and needs to be mounted.
-
-Usage::
-
- ceph-volume lvm activate --filestore <osd id> <osd fsid>
-
-Optional Arguments:
-
-* [-h, --help] show the help message and exit
-* [--bluestore] filestore objectstore (not yet implemented)
-* [--filestore] filestore objectstore (current default)
-
-
-**prepare**
-Prepares a logical volume to be used as an OSD and journal using a ``filestore`` setup
-(``bluestore`` support is planned). It will not create or modify the logical volumes
-except for adding extra metadata.
-
-Usage::
-
- ceph-volume lvm prepare --filestore --data <data lv> --journal <journal device>
-
-Optional arguments:
-
-* [-h, --help] show the help message and exit
-* [--journal JOURNAL] A logical group name, path to a logical volume, or path to a device
-* [--journal-size GB] Size (in GB) A logical group name or a path to a logical volume
-* [--bluestore] Use the bluestore objectstore (not currently supported)
-* [--filestore] Use the filestore objectstore (currently the only supported object store)
-* [--osd-id OSD_ID] Reuse an existing OSD id
-* [--osd-fsid OSD_FSID] Reuse an existing OSD fsid
-
-Required arguments:
-
-* --data A logical group name or a path to a logical volume
-
-**create**
-Wraps the two-step process to provision a new osd (calling ``prepare`` first
-and then ``activate``) into a single one. The reason to prefer ``prepare`` and
-then ``activate`` is to gradually introduce new OSDs into a cluster, and
-avoiding large amounts of data being rebalanced.
-
-The single-call process unifies exactly what ``prepare`` and ``activate`` do,
-with the convenience of doing it all at once. Flags and general usage are
-equivalent to those of the ``prepare`` subcommand.
-
-**trigger**
-This subcommand is not meant to be used directly, and it is used by systemd so
-that it proxies input to ``ceph-volume lvm activate`` by parsing the
-input from systemd, detecting the UUID and ID associated with an OSD.
-
-Usage::
-
- ceph-volume lvm trigger <SYSTEMD-DATA>
-
-The systemd "data" is expected to be in the format of::
-
- <OSD ID>-<OSD UUID>
-
-The lvs associated with the OSD need to have been prepared previously,
-so that all needed tags and metadata exist.
-
-Positional arguments:
-
-* <SYSTEMD_DATA> Data from a systemd unit containing ID and UUID of the OSD.
-
-Availability
-============
-
-:program:`ceph-volume` is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the documentation at http://docs.ceph.com/ for more information.
-
-
-See also
-========
-
-:doc:`ceph-osd <ceph-osd>`\(8),
-:doc:`ceph-disk <ceph-disk>`\(8),
diff --git a/src/ceph/doc/man/8/ceph.rst b/src/ceph/doc/man/8/ceph.rst
deleted file mode 100644
index 1a18000..0000000
--- a/src/ceph/doc/man/8/ceph.rst
+++ /dev/null
@@ -1,1550 +0,0 @@
-:orphan:
-
-==================================
- ceph -- ceph administration tool
-==================================
-
-.. program:: ceph
-
-Synopsis
-========
-
-| **ceph** **auth** [ *add* \| *caps* \| *del* \| *export* \| *get* \| *get-key* \| *get-or-create* \| *get-or-create-key* \| *import* \| *list* \| *print-key* \| *print_key* ] ...
-
-| **ceph** **compact**
-
-| **ceph** **config-key** [ *del* | *exists* | *get* | *list* | *dump* | *put* ] ...
-
-| **ceph** **daemon** *<name>* \| *<path>* *<command>* ...
-
-| **ceph** **daemonperf** *<name>* \| *<path>* [ *interval* [ *count* ] ]
-
-| **ceph** **df** *{detail}*
-
-| **ceph** **fs** [ *ls* \| *new* \| *reset* \| *rm* ] ...
-
-| **ceph** **fsid**
-
-| **ceph** **health** *{detail}*
-
-| **ceph** **heap** [ *dump* \| *start_profiler* \| *stop_profiler* \| *release* \| *stats* ] ...
-
-| **ceph** **injectargs** *<injectedargs>* [ *<injectedargs>*... ]
-
-| **ceph** **log** *<logtext>* [ *<logtext>*... ]
-
-| **ceph** **mds** [ *compat* \| *deactivate* \| *fail* \| *rm* \| *rmfailed* \| *set_state* \| *stat* \| *tell* ] ...
-
-| **ceph** **mon** [ *add* \| *dump* \| *getmap* \| *remove* \| *stat* ] ...
-
-| **ceph** **mon_status**
-
-| **ceph** **osd** [ *blacklist* \| *blocked-by* \| *create* \| *new* \| *deep-scrub* \| *df* \| *down* \| *dump* \| *erasure-code-profile* \| *find* \| *getcrushmap* \| *getmap* \| *getmaxosd* \| *in* \| *lspools* \| *map* \| *metadata* \| *ok-to-stop* \| *out* \| *pause* \| *perf* \| *pg-temp* \| *force-create-pg* \| *primary-affinity* \| *primary-temp* \| *repair* \| *reweight* \| *reweight-by-pg* \| *rm* \| *destroy* \| *purge* \| *safe-to-destroy* \| *scrub* \| *set* \| *setcrushmap* \| *setmaxosd* \| *stat* \| *tree* \| *unpause* \| *unset* ] ...
-
-| **ceph** **osd** **crush** [ *add* \| *add-bucket* \| *create-or-move* \| *dump* \| *get-tunable* \| *link* \| *move* \| *remove* \| *rename-bucket* \| *reweight* \| *reweight-all* \| *reweight-subtree* \| *rm* \| *rule* \| *set* \| *set-tunable* \| *show-tunables* \| *tunables* \| *unlink* ] ...
-
-| **ceph** **osd** **pool** [ *create* \| *delete* \| *get* \| *get-quota* \| *ls* \| *mksnap* \| *rename* \| *rmsnap* \| *set* \| *set-quota* \| *stats* ] ...
-
-| **ceph** **osd** **tier** [ *add* \| *add-cache* \| *cache-mode* \| *remove* \| *remove-overlay* \| *set-overlay* ] ...
-
-| **ceph** **pg** [ *debug* \| *deep-scrub* \| *dump* \| *dump_json* \| *dump_pools_json* \| *dump_stuck* \| *force_create_pg* \| *getmap* \| *ls* \| *ls-by-osd* \| *ls-by-pool* \| *ls-by-primary* \| *map* \| *repair* \| *scrub* \| *set_full_ratio* \| *set_nearfull_ratio* \| *stat* ] ...
-
-| **ceph** **quorum** [ *enter* \| *exit* ]
-
-| **ceph** **quorum_status**
-
-| **ceph** **report** { *<tags>* [ *<tags>...* ] }
-
-| **ceph** **scrub**
-
-| **ceph** **status**
-
-| **ceph** **sync** **force** {--yes-i-really-mean-it} {--i-know-what-i-am-doing}
-
-| **ceph** **tell** *<name (type.id)> <args> [<args>...]*
-
-| **ceph** **version**
-
-Description
-===========
-
-:program:`ceph` is a control utility which is used for manual deployment and maintenance
-of a Ceph cluster. It provides a diverse set of commands that allows deployment of
-monitors, OSDs, placement groups, MDS and overall maintenance, administration
-of the cluster.
-
-Commands
-========
-
-auth
-----
-
-Manage authentication keys. It is used for adding, removing, exporting
-or updating of authentication keys for a particular entity such as a monitor or
-OSD. It uses some additional subcommands.
-
-Subcommand ``add`` adds authentication info for a particular entity from input
-file, or random key if no input is given and/or any caps specified in the command.
-
-Usage::
-
- ceph auth add <entity> {<caps> [<caps>...]}
-
-Subcommand ``caps`` updates caps for **name** from caps specified in the command.
-
-Usage::
-
- ceph auth caps <entity> <caps> [<caps>...]
-
-Subcommand ``del`` deletes all caps for ``name``.
-
-Usage::
-
- ceph auth del <entity>
-
-Subcommand ``export`` writes keyring for requested entity, or master keyring if
-none given.
-
-Usage::
-
- ceph auth export {<entity>}
-
-Subcommand ``get`` writes keyring file with requested key.
-
-Usage::
-
- ceph auth get <entity>
-
-Subcommand ``get-key`` displays requested key.
-
-Usage::
-
- ceph auth get-key <entity>
-
-Subcommand ``get-or-create`` adds authentication info for a particular entity
-from input file, or random key if no input given and/or any caps specified in the
-command.
-
-Usage::
-
- ceph auth get-or-create <entity> {<caps> [<caps>...]}
-
-Subcommand ``get-or-create-key`` gets or adds key for ``name`` from system/caps
-pairs specified in the command. If key already exists, any given caps must match
-the existing caps for that key.
-
-Usage::
-
- ceph auth get-or-create-key <entity> {<caps> [<caps>...]}
-
-Subcommand ``import`` reads keyring from input file.
-
-Usage::
-
- ceph auth import
-
-Subcommand ``ls`` lists authentication state.
-
-Usage::
-
- ceph auth ls
-
-Subcommand ``print-key`` displays requested key.
-
-Usage::
-
- ceph auth print-key <entity>
-
-Subcommand ``print_key`` displays requested key.
-
-Usage::
-
- ceph auth print_key <entity>
-
-
-compact
--------
-
-Causes compaction of monitor's leveldb storage.
-
-Usage::
-
- ceph compact
-
-
-config-key
-----------
-
-Manage configuration key. It uses some additional subcommands.
-
-Subcommand ``del`` deletes configuration key.
-
-Usage::
-
- ceph config-key del <key>
-
-Subcommand ``exists`` checks for configuration keys existence.
-
-Usage::
-
- ceph config-key exists <key>
-
-Subcommand ``get`` gets the configuration key.
-
-Usage::
-
- ceph config-key get <key>
-
-Subcommand ``list`` lists configuration keys.
-
-Usage::
-
- ceph config-key ls
-
-Subcommand ``dump`` dumps configuration keys and values.
-
-Usage::
-
- ceph config-key dump
-
-Subcommand ``set`` puts configuration key and value.
-
-Usage::
-
- ceph config-key set <key> {<val>}
-
-
-daemon
-------
-
-Submit admin-socket commands.
-
-Usage::
-
- ceph daemon {daemon_name|socket_path} {command} ...
-
-Example::
-
- ceph daemon osd.0 help
-
-
-daemonperf
-----------
-
-Watch performance counters from a Ceph daemon.
-
-Usage::
-
- ceph daemonperf {daemon_name|socket_path} [{interval} [{count}]]
-
-
-df
---
-
-Show cluster's free space status.
-
-Usage::
-
- ceph df {detail}
-
-.. _ceph features:
-
-features
---------
-
-Show the releases and features of all connected daemons and clients connected
-to the cluster, along with the numbers of them in each bucket grouped by the
-corresponding features/releases. Each release of Ceph supports a different set
-of features, expressed by the features bitmask. New cluster features require
-that clients support the feature, or else they are not allowed to connect to
-these new features. As new features or capabilities are enabled after an
-upgrade, older clients are prevented from connecting.
-
-Usage::
-
- ceph features
-
-fs
---
-
-Manage cephfs filesystems. It uses some additional subcommands.
-
-Subcommand ``ls`` to list filesystems
-
-Usage::
-
- ceph fs ls
-
-Subcommand ``new`` to make a new filesystem using named pools <metadata> and <data>
-
-Usage::
-
- ceph fs new <fs_name> <metadata> <data>
-
-Subcommand ``reset`` is used for disaster recovery only: reset to a single-MDS map
-
-Usage::
-
- ceph fs reset <fs_name> {--yes-i-really-mean-it}
-
-Subcommand ``rm`` to disable the named filesystem
-
-Usage::
-
- ceph fs rm <fs_name> {--yes-i-really-mean-it}
-
-
-fsid
-----
-
-Show cluster's FSID/UUID.
-
-Usage::
-
- ceph fsid
-
-
-health
-------
-
-Show cluster's health.
-
-Usage::
-
- ceph health {detail}
-
-
-heap
-----
-
-Show heap usage info (available only if compiled with tcmalloc)
-
-Usage::
-
- ceph heap dump|start_profiler|stop_profiler|release|stats
-
-
-injectargs
-----------
-
-Inject configuration arguments into monitor.
-
-Usage::
-
- ceph injectargs <injected_args> [<injected_args>...]
-
-
-log
----
-
-Log supplied text to the monitor log.
-
-Usage::
-
- ceph log <logtext> [<logtext>...]
-
-
-mds
----
-
-Manage metadata server configuration and administration. It uses some
-additional subcommands.
-
-Subcommand ``compat`` manages compatible features. It uses some additional
-subcommands.
-
-Subcommand ``rm_compat`` removes compatible feature.
-
-Usage::
-
- ceph mds compat rm_compat <int[0-]>
-
-Subcommand ``rm_incompat`` removes incompatible feature.
-
-Usage::
-
- ceph mds compat rm_incompat <int[0-]>
-
-Subcommand ``show`` shows mds compatibility settings.
-
-Usage::
-
- ceph mds compat show
-
-Subcommand ``deactivate`` stops mds.
-
-Usage::
-
- ceph mds deactivate <who>
-
-Subcommand ``fail`` forces mds to status fail.
-
-Usage::
-
- ceph mds fail <who>
-
-Subcommand ``rm`` removes inactive mds.
-
-Usage::
-
- ceph mds rm <int[0-]> <name> (type.id)>
-
-Subcommand ``rmfailed`` removes failed mds.
-
-Usage::
-
- ceph mds rmfailed <int[0-]>
-
-Subcommand ``set_state`` sets mds state of <gid> to <numeric-state>.
-
-Usage::
-
- ceph mds set_state <int[0-]> <int[0-20]>
-
-Subcommand ``stat`` shows MDS status.
-
-Usage::
-
- ceph mds stat
-
-Subcommand ``tell`` sends command to particular mds.
-
-Usage::
-
- ceph mds tell <who> <args> [<args>...]
-
-mon
----
-
-Manage monitor configuration and administration. It uses some additional
-subcommands.
-
-Subcommand ``add`` adds new monitor named <name> at <addr>.
-
-Usage::
-
- ceph mon add <name> <IPaddr[:port]>
-
-Subcommand ``dump`` dumps formatted monmap (optionally from epoch)
-
-Usage::
-
- ceph mon dump {<int[0-]>}
-
-Subcommand ``getmap`` gets monmap.
-
-Usage::
-
- ceph mon getmap {<int[0-]>}
-
-Subcommand ``remove`` removes monitor named <name>.
-
-Usage::
-
- ceph mon remove <name>
-
-Subcommand ``stat`` summarizes monitor status.
-
-Usage::
-
- ceph mon stat
-
-mon_status
-----------
-
-Reports status of monitors.
-
-Usage::
-
- ceph mon_status
-
-mgr
----
-
-Ceph manager daemon configuration and management.
-
-Subcommand ``dump`` dumps the latest MgrMap, which describes the active
-and standby manager daemons.
-
-Usage::
-
- ceph mgr dump
-
-Subcommand ``fail`` will mark a manager daemon as failed, removing it
-from the manager map. If it is the active manager daemon a standby
-will take its place.
-
-Usage::
-
- ceph mgr fail <name>
-
-Subcommand ``module ls`` will list currently enabled manager modules (plugins).
-
-Usage::
-
- ceph mgr module ls
-
-Subcommand ``module enable`` will enable a manager module. Available modules are included in MgrMap and visible via ``mgr dump``.
-
-Usage::
-
- ceph mgr module enable <module>
-
-Subcommand ``module disable`` will disable an active manager module.
-
-Usage::
-
- ceph mgr module disable <module>
-
-Subcommand ``metadata`` will report metadata about all manager daemons or, if the name is specified, a single manager daemon.
-
-Usage::
-
- ceph mgr metadata [name]
-
-Subcommand ``versions`` will report a count of running daemon versions.
-
-Usage::
-
- ceph mgr versions
-
-Subcommand ``count-metadata`` will report a count of any daemon metadata field.
-
-Usage::
-
- ceph mgr count-metadata <field>
-
-
-osd
----
-
-Manage OSD configuration and administration. It uses some additional
-subcommands.
-
-Subcommand ``blacklist`` manage blacklisted clients. It uses some additional
-subcommands.
-
-Subcommand ``add`` add <addr> to blacklist (optionally until <expire> seconds
-from now)
-
-Usage::
-
- ceph osd blacklist add <EntityAddr> {<float[0.0-]>}
-
-Subcommand ``ls`` show blacklisted clients
-
-Usage::
-
- ceph osd blacklist ls
-
-Subcommand ``rm`` remove <addr> from blacklist
-
-Usage::
-
- ceph osd blacklist rm <EntityAddr>
-
-Subcommand ``blocked-by`` prints a histogram of which OSDs are blocking their peers
-
-Usage::
-
- ceph osd blocked-by
-
-Subcommand ``create`` creates new osd (with optional UUID and ID).
-
-This command is DEPRECATED as of the Luminous release, and will be removed in
-a future release.
-
-Subcommand ``new`` should instead be used.
-
-Usage::
-
- ceph osd create {<uuid>} {<id>}
-
-Subcommand ``new`` can be used to create a new OSD or to recreate a previously
-destroyed OSD with a specific *id*. The new OSD will have the specified *uuid*,
-and the command expects a JSON file containing the base64 cephx key for auth
-entity *client.osd.<id>*, as well as optional base64 cepx key for dm-crypt
-lockbox access and a dm-crypt key. Specifying a dm-crypt requires specifying
-the accompanying lockbox cephx key.
-
-Usage::
-
- ceph osd new {<uuid>} {<id>} -i {<secrets.json>}
-
-The secrets JSON file is optional but if provided, is expected to maintain
-a form of the following format::
-
- {
- "cephx_secret": "AQBWtwhZdBO5ExAAIDyjK2Bh16ZXylmzgYYEjg=="
- }
-
-Or::
-
- {
- "cephx_secret": "AQBWtwhZdBO5ExAAIDyjK2Bh16ZXylmzgYYEjg==",
- "cephx_lockbox_secret": "AQDNCglZuaeVCRAAYr76PzR1Anh7A0jswkODIQ==",
- "dmcrypt_key": "<dm-crypt key>"
- }
-
-
-Subcommand ``crush`` is used for CRUSH management. It uses some additional
-subcommands.
-
-Subcommand ``add`` adds or updates crushmap position and weight for <name> with
-<weight> and location <args>.
-
-Usage::
-
- ceph osd crush add <osdname (id|osd.id)> <float[0.0-]> <args> [<args>...]
-
-Subcommand ``add-bucket`` adds no-parent (probably root) crush bucket <name> of
-type <type>.
-
-Usage::
-
- ceph osd crush add-bucket <name> <type>
-
-Subcommand ``create-or-move`` creates entry or moves existing entry for <name>
-<weight> at/to location <args>.
-
-Usage::
-
- ceph osd crush create-or-move <osdname (id|osd.id)> <float[0.0-]> <args>
- [<args>...]
-
-Subcommand ``dump`` dumps crush map.
-
-Usage::
-
- ceph osd crush dump
-
-Subcommand ``get-tunable`` get crush tunable straw_calc_version
-
-Usage::
-
- ceph osd crush get-tunable straw_calc_version
-
-Subcommand ``link`` links existing entry for <name> under location <args>.
-
-Usage::
-
- ceph osd crush link <name> <args> [<args>...]
-
-Subcommand ``move`` moves existing entry for <name> to location <args>.
-
-Usage::
-
- ceph osd crush move <name> <args> [<args>...]
-
-Subcommand ``remove`` removes <name> from crush map (everywhere, or just at
-<ancestor>).
-
-Usage::
-
- ceph osd crush remove <name> {<ancestor>}
-
-Subcommand ``rename-bucket`` renames buchket <srcname> to <stname>
-
-Usage::
-
- ceph osd crush rename-bucket <srcname> <dstname>
-
-Subcommand ``reweight`` change <name>'s weight to <weight> in crush map.
-
-Usage::
-
- ceph osd crush reweight <name> <float[0.0-]>
-
-Subcommand ``reweight-all`` recalculate the weights for the tree to
-ensure they sum correctly
-
-Usage::
-
- ceph osd crush reweight-all
-
-Subcommand ``reweight-subtree`` changes all leaf items beneath <name>
-to <weight> in crush map
-
-Usage::
-
- ceph osd crush reweight-subtree <name> <weight>
-
-Subcommand ``rm`` removes <name> from crush map (everywhere, or just at
-<ancestor>).
-
-Usage::
-
- ceph osd crush rm <name> {<ancestor>}
-
-Subcommand ``rule`` is used for creating crush rules. It uses some additional
-subcommands.
-
-Subcommand ``create-erasure`` creates crush rule <name> for erasure coded pool
-created with <profile> (default default).
-
-Usage::
-
- ceph osd crush rule create-erasure <name> {<profile>}
-
-Subcommand ``create-simple`` creates crush rule <name> to start from <root>,
-replicate across buckets of type <type>, using a choose mode of <firstn|indep>
-(default firstn; indep best for erasure pools).
-
-Usage::
-
- ceph osd crush rule create-simple <name> <root> <type> {firstn|indep}
-
-Subcommand ``dump`` dumps crush rule <name> (default all).
-
-Usage::
-
- ceph osd crush rule dump {<name>}
-
-Subcommand ``ls`` lists crush rules.
-
-Usage::
-
- ceph osd crush rule ls
-
-Subcommand ``rm`` removes crush rule <name>.
-
-Usage::
-
- ceph osd crush rule rm <name>
-
-Subcommand ``set`` used alone, sets crush map from input file.
-
-Usage::
-
- ceph osd crush set
-
-Subcommand ``set`` with osdname/osd.id update crushmap position and weight
-for <name> to <weight> with location <args>.
-
-Usage::
-
- ceph osd crush set <osdname (id|osd.id)> <float[0.0-]> <args> [<args>...]
-
-Subcommand ``set-tunable`` set crush tunable <tunable> to <value>. The only
-tunable that can be set is straw_calc_version.
-
-Usage::
-
- ceph osd crush set-tunable straw_calc_version <value>
-
-Subcommand ``show-tunables`` shows current crush tunables.
-
-Usage::
-
- ceph osd crush show-tunables
-
-Subcommand ``tree`` shows the crush buckets and items in a tree view.
-
-Usage::
-
- ceph osd crush tree
-
-Subcommand ``tunables`` sets crush tunables values to <profile>.
-
-Usage::
-
- ceph osd crush tunables legacy|argonaut|bobtail|firefly|hammer|optimal|default
-
-Subcommand ``unlink`` unlinks <name> from crush map (everywhere, or just at
-<ancestor>).
-
-Usage::
-
- ceph osd crush unlink <name> {<ancestor>}
-
-Subcommand ``df`` shows OSD utilization
-
-Usage::
-
- ceph osd df {plain|tree}
-
-Subcommand ``deep-scrub`` initiates deep scrub on specified osd.
-
-Usage::
-
- ceph osd deep-scrub <who>
-
-Subcommand ``down`` sets osd(s) <id> [<id>...] down.
-
-Usage::
-
- ceph osd down <ids> [<ids>...]
-
-Subcommand ``dump`` prints summary of OSD map.
-
-Usage::
-
- ceph osd dump {<int[0-]>}
-
-Subcommand ``erasure-code-profile`` is used for managing the erasure code
-profiles. It uses some additional subcommands.
-
-Subcommand ``get`` gets erasure code profile <name>.
-
-Usage::
-
- ceph osd erasure-code-profile get <name>
-
-Subcommand ``ls`` lists all erasure code profiles.
-
-Usage::
-
- ceph osd erasure-code-profile ls
-
-Subcommand ``rm`` removes erasure code profile <name>.
-
-Usage::
-
- ceph osd erasure-code-profile rm <name>
-
-Subcommand ``set`` creates erasure code profile <name> with [<key[=value]> ...]
-pairs. Add a --force at the end to override an existing profile (IT IS RISKY).
-
-Usage::
-
- ceph osd erasure-code-profile set <name> {<profile> [<profile>...]}
-
-Subcommand ``find`` find osd <id> in the CRUSH map and shows its location.
-
-Usage::
-
- ceph osd find <int[0-]>
-
-Subcommand ``getcrushmap`` gets CRUSH map.
-
-Usage::
-
- ceph osd getcrushmap {<int[0-]>}
-
-Subcommand ``getmap`` gets OSD map.
-
-Usage::
-
- ceph osd getmap {<int[0-]>}
-
-Subcommand ``getmaxosd`` shows largest OSD id.
-
-Usage::
-
- ceph osd getmaxosd
-
-Subcommand ``in`` sets osd(s) <id> [<id>...] in.
-
-Usage::
-
- ceph osd in <ids> [<ids>...]
-
-Subcommand ``lost`` marks osd as permanently lost. THIS DESTROYS DATA IF NO
-MORE REPLICAS EXIST, BE CAREFUL.
-
-Usage::
-
- ceph osd lost <int[0-]> {--yes-i-really-mean-it}
-
-Subcommand ``ls`` shows all OSD ids.
-
-Usage::
-
- ceph osd ls {<int[0-]>}
-
-Subcommand ``lspools`` lists pools.
-
-Usage::
-
- ceph osd lspools {<int>}
-
-Subcommand ``map`` finds pg for <object> in <pool>.
-
-Usage::
-
- ceph osd map <poolname> <objectname>
-
-Subcommand ``metadata`` fetches metadata for osd <id>.
-
-Usage::
-
- ceph osd metadata {int[0-]} (default all)
-
-Subcommand ``out`` sets osd(s) <id> [<id>...] out.
-
-Usage::
-
- ceph osd out <ids> [<ids>...]
-
-Subcommand ``ok-to-stop`` checks whether the list of OSD(s) can be
-stopped without immediately making data unavailable. That is, all
-data should remain readable and writeable, although data redundancy
-may be reduced as some PGs may end up in a degraded (but active)
-state. It will return a success code if it is okay to stop the
-OSD(s), or an error code and informative message if it is not or if no
-conclusion can be drawn at the current time.
-
-Usage::
-
- ceph osd ok-to-stop <id> [<ids>...]
-
-Subcommand ``pause`` pauses osd.
-
-Usage::
-
- ceph osd pause
-
-Subcommand ``perf`` prints dump of OSD perf summary stats.
-
-Usage::
-
- ceph osd perf
-
-Subcommand ``pg-temp`` set pg_temp mapping pgid:[<id> [<id>...]] (developers
-only).
-
-Usage::
-
- ceph osd pg-temp <pgid> {<id> [<id>...]}
-
-Subcommand ``force-create-pg`` forces creation of pg <pgid>.
-
-Usage::
-
- ceph osd force-create-pg <pgid>
-
-
-Subcommand ``pool`` is used for managing data pools. It uses some additional
-subcommands.
-
-Subcommand ``create`` creates pool.
-
-Usage::
-
- ceph osd pool create <poolname> <int[0-]> {<int[0-]>} {replicated|erasure}
- {<erasure_code_profile>} {<ruleset>} {<int>}
-
-Subcommand ``delete`` deletes pool.
-
-Usage::
-
- ceph osd pool delete <poolname> {<poolname>} {--yes-i-really-really-mean-it}
-
-Subcommand ``get`` gets pool parameter <var>.
-
-Usage::
-
- ceph osd pool get <poolname> size|min_size|crash_replay_interval|pg_num|
- pgp_num|crush_ruleset|auid|write_fadvise_dontneed
-
-Only for tiered pools::
-
- ceph osd pool get <poolname> hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|
- target_max_objects|target_max_bytes|cache_target_dirty_ratio|cache_target_dirty_high_ratio|
- cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|
- min_read_recency_for_promote|hit_set_grade_decay_rate|hit_set_search_last_n
-
-Only for erasure coded pools::
-
- ceph osd pool get <poolname> erasure_code_profile
-
-Use ``all`` to get all pool parameters that apply to the pool's type::
-
- ceph osd pool get <poolname> all
-
-Subcommand ``get-quota`` obtains object or byte limits for pool.
-
-Usage::
-
- ceph osd pool get-quota <poolname>
-
-Subcommand ``ls`` list pools
-
-Usage::
-
- ceph osd pool ls {detail}
-
-Subcommand ``mksnap`` makes snapshot <snap> in <pool>.
-
-Usage::
-
- ceph osd pool mksnap <poolname> <snap>
-
-Subcommand ``rename`` renames <srcpool> to <destpool>.
-
-Usage::
-
- ceph osd pool rename <poolname> <poolname>
-
-Subcommand ``rmsnap`` removes snapshot <snap> from <pool>.
-
-Usage::
-
- ceph osd pool rmsnap <poolname> <snap>
-
-Subcommand ``set`` sets pool parameter <var> to <val>.
-
-Usage::
-
- ceph osd pool set <poolname> size|min_size|crash_replay_interval|pg_num|
- pgp_num|crush_ruleset|hashpspool|nodelete|nopgchange|nosizechange|
- hit_set_type|hit_set_period|hit_set_count|hit_set_fpp|debug_fake_ec_pool|
- target_max_bytes|target_max_objects|cache_target_dirty_ratio|
- cache_target_dirty_high_ratio|
- cache_target_full_ratio|cache_min_flush_age|cache_min_evict_age|auid|
- min_read_recency_for_promote|write_fadvise_dontneed|hit_set_grade_decay_rate|
- hit_set_search_last_n
- <val> {--yes-i-really-mean-it}
-
-Subcommand ``set-quota`` sets object or byte limit on pool.
-
-Usage::
-
- ceph osd pool set-quota <poolname> max_objects|max_bytes <val>
-
-Subcommand ``stats`` obtain stats from all pools, or from specified pool.
-
-Usage::
-
- ceph osd pool stats {<name>}
-
-Subcommand ``primary-affinity`` adjust osd primary-affinity from 0.0 <=<weight>
-<= 1.0
-
-Usage::
-
- ceph osd primary-affinity <osdname (id|osd.id)> <float[0.0-1.0]>
-
-Subcommand ``primary-temp`` sets primary_temp mapping pgid:<id>|-1 (developers
-only).
-
-Usage::
-
- ceph osd primary-temp <pgid> <id>
-
-Subcommand ``repair`` initiates repair on a specified osd.
-
-Usage::
-
- ceph osd repair <who>
-
-Subcommand ``reweight`` reweights osd to 0.0 < <weight> < 1.0.
-
-Usage::
-
- osd reweight <int[0-]> <float[0.0-1.0]>
-
-Subcommand ``reweight-by-pg`` reweight OSDs by PG distribution
-[overload-percentage-for-consideration, default 120].
-
-Usage::
-
- ceph osd reweight-by-pg {<int[100-]>} {<poolname> [<poolname...]}
- {--no-increasing}
-
-Subcommand ``reweight-by-utilization`` reweight OSDs by utilization
-[overload-percentage-for-consideration, default 120].
-
-Usage::
-
- ceph osd reweight-by-utilization {<int[100-]>}
- {--no-increasing}
-
-Subcommand ``rm`` removes osd(s) <id> [<id>...] from the OSD map.
-
-
-Usage::
-
- ceph osd rm <ids> [<ids>...]
-
-Subcommand ``destroy`` marks OSD *id* as *destroyed*, removing its cephx
-entity's keys and all of its dm-crypt and daemon-private config key
-entries.
-
-This command will not remove the OSD from crush, nor will it remove the
-OSD from the OSD map. Instead, once the command successfully completes,
-the OSD will show marked as *destroyed*.
-
-In order to mark an OSD as destroyed, the OSD must first be marked as
-**lost**.
-
-Usage::
-
- ceph osd destroy <id> {--yes-i-really-mean-it}
-
-
-Subcommand ``purge`` performs a combination of ``osd destroy``,
-``osd rm`` and ``osd crush remove``.
-
-Usage::
-
- ceph osd purge <id> {--yes-i-really-mean-it}
-
-Subcommand ``safe-to-destroy`` checks whether it is safe to remove or
-destroy an OSD without reducing overall data redundancy or durability.
-It will return a success code if it is definitely safe, or an error
-code and informative message if it is not or if no conclusion can be
-drawn at the current time.
-
-Usage::
-
- ceph osd safe-to-destroy <id> [<ids>...]
-
-Subcommand ``scrub`` initiates scrub on specified osd.
-
-Usage::
-
- ceph osd scrub <who>
-
-Subcommand ``set`` sets <key>.
-
-Usage::
-
- ceph osd set full|pause|noup|nodown|noout|noin|nobackfill|
- norebalance|norecover|noscrub|nodeep-scrub|notieragent
-
-Subcommand ``setcrushmap`` sets crush map from input file.
-
-Usage::
-
- ceph osd setcrushmap
-
-Subcommand ``setmaxosd`` sets new maximum osd value.
-
-Usage::
-
- ceph osd setmaxosd <int[0-]>
-
-Subcommand ``set-require-min-compat-client`` enforces the cluster to be backward
-compatible with the specified client version. This subcommand prevents you from
-making any changes (e.g., crush tunables, or using new features) that
-would violate the current setting. Please note, This subcommand will fail if
-any connected daemon or client is not compatible with the features offered by
-the given <version>. To see the features and releases of all clients connected
-to cluster, please see `ceph features`_.
-
-Usage::
-
- ceph osd set-require-min-compat-client <version>
-
-Subcommand ``stat`` prints summary of OSD map.
-
-Usage::
-
- ceph osd stat
-
-Subcommand ``tier`` is used for managing tiers. It uses some additional
-subcommands.
-
-Subcommand ``add`` adds the tier <tierpool> (the second one) to base pool <pool>
-(the first one).
-
-Usage::
-
- ceph osd tier add <poolname> <poolname> {--force-nonempty}
-
-Subcommand ``add-cache`` adds a cache <tierpool> (the second one) of size <size>
-to existing pool <pool> (the first one).
-
-Usage::
-
- ceph osd tier add-cache <poolname> <poolname> <int[0-]>
-
-Subcommand ``cache-mode`` specifies the caching mode for cache tier <pool>.
-
-Usage::
-
- ceph osd tier cache-mode <poolname> none|writeback|forward|readonly|
- readforward|readproxy
-
-Subcommand ``remove`` removes the tier <tierpool> (the second one) from base pool
-<pool> (the first one).
-
-Usage::
-
- ceph osd tier remove <poolname> <poolname>
-
-Subcommand ``remove-overlay`` removes the overlay pool for base pool <pool>.
-
-Usage::
-
- ceph osd tier remove-overlay <poolname>
-
-Subcommand ``set-overlay`` set the overlay pool for base pool <pool> to be
-<overlaypool>.
-
-Usage::
-
- ceph osd tier set-overlay <poolname> <poolname>
-
-Subcommand ``tree`` prints OSD tree.
-
-Usage::
-
- ceph osd tree {<int[0-]>}
-
-Subcommand ``unpause`` unpauses osd.
-
-Usage::
-
- ceph osd unpause
-
-Subcommand ``unset`` unsets <key>.
-
-Usage::
-
- ceph osd unset full|pause|noup|nodown|noout|noin|nobackfill|
- norebalance|norecover|noscrub|nodeep-scrub|notieragent
-
-
-pg
---
-
-It is used for managing the placement groups in OSDs. It uses some
-additional subcommands.
-
-Subcommand ``debug`` shows debug info about pgs.
-
-Usage::
-
- ceph pg debug unfound_objects_exist|degraded_pgs_exist
-
-Subcommand ``deep-scrub`` starts deep-scrub on <pgid>.
-
-Usage::
-
- ceph pg deep-scrub <pgid>
-
-Subcommand ``dump`` shows human-readable versions of pg map (only 'all' valid
-with plain).
-
-Usage::
-
- ceph pg dump {all|summary|sum|delta|pools|osds|pgs|pgs_brief} [{all|summary|sum|delta|pools|osds|pgs|pgs_brief...]}
-
-Subcommand ``dump_json`` shows human-readable version of pg map in json only.
-
-Usage::
-
- ceph pg dump_json {all|summary|sum|delta|pools|osds|pgs|pgs_brief} [{all|summary|sum|delta|pools|osds|pgs|pgs_brief...]}
-
-Subcommand ``dump_pools_json`` shows pg pools info in json only.
-
-Usage::
-
- ceph pg dump_pools_json
-
-Subcommand ``dump_stuck`` shows information about stuck pgs.
-
-Usage::
-
- ceph pg dump_stuck {inactive|unclean|stale|undersized|degraded [inactive|unclean|stale|undersized|degraded...]}
- {<int>}
-
-Subcommand ``getmap`` gets binary pg map to -o/stdout.
-
-Usage::
-
- ceph pg getmap
-
-Subcommand ``ls`` lists pg with specific pool, osd, state
-
-Usage::
-
- ceph pg ls {<int>} {active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale| remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized [active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale|remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized...]}
-
-Subcommand ``ls-by-osd`` lists pg on osd [osd]
-
-Usage::
-
- ceph pg ls-by-osd <osdname (id|osd.id)> {<int>}
- {active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale| remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized [active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale|remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized...]}
-
-Subcommand ``ls-by-pool`` lists pg with pool = [poolname]
-
-Usage::
-
- ceph pg ls-by-pool <poolstr> {<int>} {active|
- clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale| remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized [active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale|remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized...]}
-
-Subcommand ``ls-by-primary`` lists pg with primary = [osd]
-
-Usage::
-
- ceph pg ls-by-primary <osdname (id|osd.id)> {<int>}
- {active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale| remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized [active|clean|down|replay|splitting|
- scrubbing|scrubq|degraded|inconsistent|peering|repair|
- recovery|backfill_wait|incomplete|stale|remapped|
- deep_scrub|backfill|backfill_toofull|recovery_wait|
- undersized...]}
-
-Subcommand ``map`` shows mapping of pg to osds.
-
-Usage::
-
- ceph pg map <pgid>
-
-Subcommand ``repair`` starts repair on <pgid>.
-
-Usage::
-
- ceph pg repair <pgid>
-
-Subcommand ``scrub`` starts scrub on <pgid>.
-
-Usage::
-
- ceph pg scrub <pgid>
-
-Subcommand ``set_full_ratio`` sets ratio at which pgs are considered full.
-
-Usage::
-
- ceph pg set_full_ratio <float[0.0-1.0]>
-
-Subcommand ``set_backfillfull_ratio`` sets ratio at which pgs are considered too full to backfill.
-
-Usage::
-
- ceph pg set_backfillfull_ratio <float[0.0-1.0]>
-
-Subcommand ``set_nearfull_ratio`` sets ratio at which pgs are considered nearly
-full.
-
-Usage::
-
- ceph pg set_nearfull_ratio <float[0.0-1.0]>
-
-Subcommand ``stat`` shows placement group status.
-
-Usage::
-
- ceph pg stat
-
-
-quorum
-------
-
-Cause MON to enter or exit quorum.
-
-Usage::
-
- ceph quorum enter|exit
-
-Note: this only works on the MON to which the ``ceph`` command is connected.
-If you want a specific MON to enter or exit quorum, use this syntax::
-
- ceph tell mon.<id> quorum enter|exit
-
-quorum_status
--------------
-
-Reports status of monitor quorum.
-
-Usage::
-
- ceph quorum_status
-
-
-report
-------
-
-Reports full status of cluster, optional title tag strings.
-
-Usage::
-
- ceph report {<tags> [<tags>...]}
-
-
-scrub
------
-
-Scrubs the monitor stores.
-
-Usage::
-
- ceph scrub
-
-
-status
-------
-
-Shows cluster status.
-
-Usage::
-
- ceph status
-
-
-sync force
-----------
-
-Forces sync of and clear monitor store.
-
-Usage::
-
- ceph sync force {--yes-i-really-mean-it} {--i-know-what-i-am-doing}
-
-
-tell
-----
-
-Sends a command to a specific daemon.
-
-Usage::
-
- ceph tell <name (type.id)> <args> [<args>...]
-
-
-List all available commands.
-
-Usage::
-
- ceph tell <name (type.id)> help
-
-version
--------
-
-Show mon daemon version
-
-Usage::
-
- ceph version
-
-Options
-=======
-
-.. option:: -i infile
-
- will specify an input file to be passed along as a payload with the
- command to the monitor cluster. This is only used for specific
- monitor commands.
-
-.. option:: -o outfile
-
- will write any payload returned by the monitor cluster with its
- reply to outfile. Only specific monitor commands (e.g. osd getmap)
- return a payload.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use ceph.conf configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: --id CLIENT_ID, --user CLIENT_ID
-
- Client id for authentication.
-
-.. option:: --name CLIENT_NAME, -n CLIENT_NAME
-
- Client name for authentication.
-
-.. option:: --cluster CLUSTER
-
- Name of the Ceph cluster.
-
-.. option:: --admin-daemon ADMIN_SOCKET, daemon DAEMON_NAME
-
- Submit admin-socket commands via admin sockets in /var/run/ceph.
-
-.. option:: --admin-socket ADMIN_SOCKET_NOPE
-
- You probably mean --admin-daemon
-
-.. option:: -s, --status
-
- Show cluster status.
-
-.. option:: -w, --watch
-
- Watch live cluster changes.
-
-.. option:: --watch-debug
-
- Watch debug events.
-
-.. option:: --watch-info
-
- Watch info events.
-
-.. option:: --watch-sec
-
- Watch security events.
-
-.. option:: --watch-warn
-
- Watch warning events.
-
-.. option:: --watch-error
-
- Watch error events.
-
-.. option:: --version, -v
-
- Display version.
-
-.. option:: --verbose
-
- Make verbose.
-
-.. option:: --concise
-
- Make less verbose.
-
-.. option:: -f {json,json-pretty,xml,xml-pretty,plain}, --format
-
- Format of output.
-
-.. option:: --connect-timeout CLUSTER_TIMEOUT
-
- Set a timeout for connecting to the cluster.
-
-.. option:: --no-increasing
-
- ``--no-increasing`` is off by default. So increasing the osd weight is allowed
- using the ``reweight-by-utilization`` or ``test-reweight-by-utilization`` commands.
- If this option is used with these commands, it will help not to increase osd weight
- even the osd is under utilized.
-
-
-Availability
-============
-
-:program:`ceph` is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph-mon <ceph-mon>`\(8),
-:doc:`ceph-osd <ceph-osd>`\(8),
-:doc:`ceph-mds <ceph-mds>`\(8)
diff --git a/src/ceph/doc/man/8/crushtool.rst b/src/ceph/doc/man/8/crushtool.rst
deleted file mode 100644
index c7b88f8..0000000
--- a/src/ceph/doc/man/8/crushtool.rst
+++ /dev/null
@@ -1,284 +0,0 @@
-:orphan:
-
-==========================================
- crushtool -- CRUSH map manipulation tool
-==========================================
-
-.. program:: crushtool
-
-Synopsis
-========
-
-| **crushtool** ( -d *map* | -c *map.txt* | --build --num_osds *numosds*
- *layer1* *...* | --test ) [ -o *outfile* ]
-
-
-Description
-===========
-
-**crushtool** is a utility that lets you create, compile, decompile
-and test CRUSH map files.
-
-CRUSH is a pseudo-random data distribution algorithm that efficiently
-maps input values (which, in the context of Ceph, correspond to Placement
-Groups) across a heterogeneous, hierarchically structured device map.
-The algorithm was originally described in detail in the following paper
-(although it has evolved some since then)::
-
- http://www.ssrc.ucsc.edu/Papers/weil-sc06.pdf
-
-The tool has four modes of operation.
-
-.. option:: --compile|-c map.txt
-
- will compile a plaintext map.txt into a binary map file.
-
-.. option:: --decompile|-d map
-
- will take the compiled map and decompile it into a plaintext source
- file, suitable for editing.
-
-.. option:: --build --num_osds {num-osds} layer1 ...
-
- will create map with the given layer structure. See below for a
- detailed explanation.
-
-.. option:: --test
-
- will perform a dry run of a CRUSH mapping for a range of input
- values ``[--min-x,--max-x]`` (default ``[0,1023]``) which can be
- thought of as simulated Placement Groups. See below for a more
- detailed explanation.
-
-Unlike other Ceph tools, **crushtool** does not accept generic options
-such as **--debug-crush** from the command line. They can, however, be
-provided via the CEPH_ARGS environment variable. For instance, to
-silence all output from the CRUSH subsystem::
-
- CEPH_ARGS="--debug-crush 0" crushtool ...
-
-
-Running tests with --test
-=========================
-
-The test mode will use the input crush map ( as specified with **-i
-map** ) and perform a dry run of CRUSH mapping or random placement
-(if **--simulate** is set ). On completion, two kinds of reports can be
-created.
-1) The **--show-...** option outputs human readable information
-on stderr.
-2) The **--output-csv** option creates CSV files that are
-documented by the **--help-output** option.
-
-Note: Each Placement Group (PG) has an integer ID which can be obtained
-from ``ceph pg dump`` (for example PG 2.2f means pool id 2, PG id 32).
-The pool and PG IDs are combined by a function to get a value which is
-given to CRUSH to map it to OSDs. crushtool does not know about PGs or
-pools; it only runs simulations by mapping values in the range
-``[--min-x,--max-x]``.
-
-
-.. option:: --show-statistics
-
- Displays a summary of the distribution. For instance::
-
- rule 1 (metadata) num_rep 5 result size == 5: 1024/1024
-
- shows that rule **1** which is named **metadata** successfully
- mapped **1024** values to **result size == 5** devices when trying
- to map them to **num_rep 5** replicas. When it fails to provide the
- required mapping, presumably because the number of **tries** must
- be increased, a breakdown of the failures is displayed. For instance::
-
- rule 1 (metadata) num_rep 10 result size == 8: 4/1024
- rule 1 (metadata) num_rep 10 result size == 9: 93/1024
- rule 1 (metadata) num_rep 10 result size == 10: 927/1024
-
- shows that although **num_rep 10** replicas were required, **4**
- out of **1024** values ( **4/1024** ) were mapped to **result size
- == 8** devices only.
-
-.. option:: --show-mappings
-
- Displays the mapping of each value in the range ``[--min-x,--max-x]``.
- For instance::
-
- CRUSH rule 1 x 24 [11,6]
-
- shows that value **24** is mapped to devices **[11,6]** by rule
- **1**.
-
-.. option:: --show-bad-mappings
-
- Displays which value failed to be mapped to the required number of
- devices. For instance::
-
- bad mapping rule 1 x 781 num_rep 7 result [8,10,2,11,6,9]
-
- shows that when rule **1** was required to map **7** devices, it
- could map only six : **[8,10,2,11,6,9]**.
-
-.. option:: --show-utilization
-
- Displays the expected and actual utilisation for each device, for
- each number of replicas. For instance::
-
- device 0: stored : 951 expected : 853.333
- device 1: stored : 963 expected : 853.333
- ...
-
- shows that device **0** stored **951** values and was expected to store **853**.
- Implies **--show-statistics**.
-
-.. option:: --show-utilization-all
-
- Displays the same as **--show-utilization** but does not suppress
- output when the weight of a device is zero.
- Implies **--show-statistics**.
-
-.. option:: --show-choose-tries
-
- Displays how many attempts were needed to find a device mapping.
- For instance::
-
- 0: 95224
- 1: 3745
- 2: 2225
- ..
-
- shows that **95224** mappings succeeded without retries, **3745**
- mappings succeeded with one attempts, etc. There are as many rows
- as the value of the **--set-choose-total-tries** option.
-
-.. option:: --output-csv
-
- Creates CSV files (in the current directory) containing information
- documented by **--help-output**. The files are named after the rule
- used when collecting the statistics. For instance, if the rule
- : 'metadata' is used, the CSV files will be::
-
- metadata-absolute_weights.csv
- metadata-device_utilization.csv
- ...
-
- The first line of the file shortly explains the column layout. For
- instance::
-
- metadata-absolute_weights.csv
- Device ID, Absolute Weight
- 0,1
- ...
-
-.. option:: --output-name NAME
-
- Prepend **NAME** to the file names generated when **--output-csv**
- is specified. For instance **--output-name FOO** will create
- files::
-
- FOO-metadata-absolute_weights.csv
- FOO-metadata-device_utilization.csv
- ...
-
-The **--set-...** options can be used to modify the tunables of the
-input crush map. The input crush map is modified in
-memory. For example::
-
- $ crushtool -i mymap --test --show-bad-mappings
- bad mapping rule 1 x 781 num_rep 7 result [8,10,2,11,6,9]
-
-could be fixed by increasing the **choose-total-tries** as follows:
-
- $ crushtool -i mymap --test \
- --show-bad-mappings \
- --set-choose-total-tries 500
-
-Building a map with --build
-===========================
-
-The build mode will generate hierarchical maps. The first argument
-specifies the number of devices (leaves) in the CRUSH hierarchy. Each
-layer describes how the layer (or devices) preceding it should be
-grouped.
-
-Each layer consists of::
-
- bucket ( uniform | list | tree | straw ) size
-
-The **bucket** is the type of the buckets in the layer
-(e.g. "rack"). Each bucket name will be built by appending a unique
-number to the **bucket** string (e.g. "rack0", "rack1"...).
-
-The second component is the type of bucket: **straw** should be used
-most of the time.
-
-The third component is the maximum size of the bucket. A size of zero
-means a bucket of infinite capacity.
-
-
-Example
-=======
-
-Suppose we have two rows with two racks each and 20 nodes per rack. Suppose
-each node contains 4 storage devices for Ceph OSD Daemons. This configuration
-allows us to deploy 320 Ceph OSD Daemons. Lets assume a 42U rack with 2U nodes,
-leaving an extra 2U for a rack switch.
-
-To reflect our hierarchy of devices, nodes, racks and rows, we would execute
-the following::
-
- $ crushtool -o crushmap --build --num_osds 320 \
- node straw 4 \
- rack straw 20 \
- row straw 2 \
- root straw 0
- # id weight type name reweight
- -87 320 root root
- -85 160 row row0
- -81 80 rack rack0
- -1 4 node node0
- 0 1 osd.0 1
- 1 1 osd.1 1
- 2 1 osd.2 1
- 3 1 osd.3 1
- -2 4 node node1
- 4 1 osd.4 1
- 5 1 osd.5 1
- ...
-
-CRUSH rulesets are created so the generated crushmap can be
-tested. They are the same rulesets as the one created by default when
-creating a new Ceph cluster. They can be further edited with::
-
- # decompile
- crushtool -d crushmap -o map.txt
-
- # edit
- emacs map.txt
-
- # recompile
- crushtool -c map.txt -o crushmap
-
-Example output from --test
-==========================
-
-See https://github.com/ceph/ceph/blob/master/src/test/cli/crushtool/set-choose.t
-for sample ``crushtool --test`` commands and output produced thereby.
-
-Availability
-============
-
-**crushtool** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`osdmaptool <osdmaptool>`\(8),
-
-Authors
-=======
-
-John Wilkins, Sage Weil, Loic Dachary
diff --git a/src/ceph/doc/man/8/librados-config.rst b/src/ceph/doc/man/8/librados-config.rst
deleted file mode 100644
index 940e8c2..0000000
--- a/src/ceph/doc/man/8/librados-config.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-:orphan:
-
-=======================================================
- librados-config -- display information about librados
-=======================================================
-
-.. program:: librados-config
-
-Synopsis
-========
-
-| **librados-config** [ --version ] [ --vernum ]
-
-
-Description
-===========
-
-**librados-config** is a utility that displays information about the
- installed ``librados``.
-
-
-Options
-=======
-
-.. option:: --version
-
- Display ``librados`` version
-
-.. option:: --vernum
-
- Display the ``librados`` version code
-
-
-Availability
-============
-
-**librados-config** is part of Ceph, a massively scalable, open-source, distributed storage system.
-Please refer to the Ceph documentation at http://ceph.com/docs for
-more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`rados <rados>`\(8)
diff --git a/src/ceph/doc/man/8/monmaptool.rst b/src/ceph/doc/man/8/monmaptool.rst
deleted file mode 100644
index bed0c94..0000000
--- a/src/ceph/doc/man/8/monmaptool.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-:orphan:
-
-==========================================================
- monmaptool -- ceph monitor cluster map manipulation tool
-==========================================================
-
-.. program:: monmaptool
-
-Synopsis
-========
-
-| **monmaptool** *mapfilename* [ --clobber ] [ --print ] [ --create ]
- [ --add *ip*:*port* *...* ] [ --rm *ip*:*port* *...* ]
-
-
-Description
-===========
-
-**monmaptool** is a utility to create, view, and modify a monitor
-cluster map for the Ceph distributed storage system. The monitor map
-specifies the only fixed addresses in the Ceph distributed system.
-All other daemons bind to arbitrary addresses and register themselves
-with the monitors.
-
-When creating a map with --create, a new monitor map with a new,
-random UUID will be created. It should be followed by one or more
-monitor addresses.
-
-The default Ceph monitor port is 6789.
-
-
-Options
-=======
-
-.. option:: --print
-
- will print a plaintext dump of the map, after any modifications are
- made.
-
-.. option:: --clobber
-
- will allow monmaptool to overwrite mapfilename if changes are made.
-
-.. option:: --create
-
- will create a new monitor map with a new UUID (and with it, a new,
- empty Ceph file system).
-
-.. option:: --generate
-
- generate a new monmap based on the values on the command line or specified
- in the ceph configuration. This is, in order of preference,
-
- #. ``--monmap filename`` to specify a monmap to load
- #. ``--mon-host 'host1,ip2'`` to specify a list of hosts or ip addresses
- #. ``[mon.foo]`` sections containing ``mon addr`` settings in the config
-
-.. option:: --filter-initial-members
-
- filter the initial monmap by applying the ``mon initial members``
- setting. Monitors not present in that list will be removed, and
- initial members not present in the map will be added with dummy
- addresses.
-
-.. option:: --add name ip:port
-
- will add a monitor with the specified ip:port to the map.
-
-.. option:: --rm name
-
- will remove the monitor with the specified ip:port from the map.
-
-.. option:: --fsid uuid
-
- will set the fsid to the given uuid. If not specified with --create, a random fsid will be generated.
-
-
-Example
-=======
-
-To create a new map with three monitors (for a fresh Ceph file system)::
-
- monmaptool --create --add mon.a 192.168.0.10:6789 --add mon.b 192.168.0.11:6789 \
- --add mon.c 192.168.0.12:6789 --clobber monmap
-
-To display the contents of the map::
-
- monmaptool --print monmap
-
-To replace one monitor::
-
- monmaptool --rm mon.a --add mon.a 192.168.0.9:6789 --clobber monmap
-
-
-Availability
-============
-
-**monmaptool** is part of Ceph, a massively scalable, open-source, distributed
-storage system. Please refer to the Ceph documentation at http://ceph.com/docs
-for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`crushtool <crushtool>`\(8),
diff --git a/src/ceph/doc/man/8/mount.ceph.rst b/src/ceph/doc/man/8/mount.ceph.rst
deleted file mode 100644
index 56900a9..0000000
--- a/src/ceph/doc/man/8/mount.ceph.rst
+++ /dev/null
@@ -1,168 +0,0 @@
-:orphan:
-
-========================================
- mount.ceph -- mount a ceph file system
-========================================
-
-.. program:: mount.ceph
-
-Synopsis
-========
-
-| **mount.ceph** *monaddr1*\ [,\ *monaddr2*\ ,...]:/[*subdir*] *dir* [
- -o *options* ]
-
-
-Description
-===========
-
-**mount.ceph** is a simple helper for mounting the Ceph file system on
-a Linux host. It serves to resolve monitor hostname(s) into IP
-addresses and read authentication keys from disk; the Linux kernel
-client component does most of the real work. In fact, it is possible
-to mount a non-authenticated Ceph file system without mount.ceph by
-specifying monitor address(es) by IP::
-
- mount -t ceph 1.2.3.4:/ mountpoint
-
-Each monitor address monaddr takes the form host[:port]. If the port
-is not specified, the Ceph default of 6789 is assumed.
-
-Multiple monitor addresses can be separated by commas. Only one
-responsible monitor is needed to successfully mount; the client will
-learn about all monitors from any responsive monitor. However, it is a
-good idea to specify more than one in case one happens to be down at
-the time of mount.
-
-A subdirectory subdir may be specified if a subset of the file system
-is to be mounted.
-
-Mount helper application conventions dictate that the first two
-options are device to be mounted and destination path. Options must be
-passed only after these fixed arguments.
-
-
-Options
-=======
-
-:command:`wsize`
- int (bytes), max write size. Default: none (writeback uses smaller of wsize
- and stripe unit)
-
-:command:`rsize`
- int (bytes), max read size. Default: none
-
-:command:`rasize`
- int (bytes), max readahead, multiple of 1024, Default: 8388608
- (8192*1024)
-
-:command:`osdtimeout`
- int (seconds), Default: 60
-
-:command:`osdkeepalive`
- int, Default: 5
-
-:command:`mount_timeout`
- int (seconds), Default: 60
-
-:command:`osd_idle_ttl`
- int (seconds), Default: 60
-
-:command:`caps_wanted_delay_min`
- int, cap release delay, Default: 5
-
-:command:`caps_wanted_delay_max`
- int, cap release delay, Default: 60
-
-:command:`cap_release_safety`
- int, Default: calculated
-
-:command:`readdir_max_entries`
- int, Default: 1024
-
-:command:`readdir_max_bytes`
- int, Default: 524288 (512*1024)
-
-:command:`write_congestion_kb`
- int (kb), max writeback in flight. scale with available
- memory. Default: calculated from available memory
-
-:command:`snapdirname`
- string, set the name of the hidden snapdir. Default: .snap
-
-:command:`name`
- RADOS user to authenticate as when using cephx. Default: guest
-
-:command:`secret`
- secret key for use with cephx. This option is insecure because it exposes
- the secret on the command line. To avoid this, use the secretfile option.
-
-:command:`secretfile`
- path to file containing the secret key to use with cephx
-
-:command:`ip`
- my ip
-
-:command:`noshare`
- create a new client instance, instead of sharing an existing
- instance of a client mounting the same cluster
-
-:command:`dirstat`
- funky `cat dirname` for stats, Default: off
-
-:command:`nodirstat`
- no funky `cat dirname` for stats
-
-:command:`rbytes`
- Report the recursive size of the directory contents for st_size on
- directories. Default: on
-
-:command:`norbytes`
- Do not report the recursive size of the directory contents for
- st_size on directories.
-
-:command:`nocrc`
- no data crc on writes
-
-:command:`noasyncreaddir`
- no dcache readdir
-
-
-Examples
-========
-
-Mount the full file system::
-
- mount.ceph monhost:/ /mnt/foo
-
-If there are multiple monitors::
-
- mount.ceph monhost1,monhost2,monhost3:/ /mnt/foo
-
-If :doc:`ceph-mon <ceph-mon>`\(8) is running on a non-standard
-port::
-
- mount.ceph monhost1:7000,monhost2:7000,monhost3:7000:/ /mnt/foo
-
-To mount only part of the namespace::
-
- mount.ceph monhost1:/some/small/thing /mnt/thing
-
-Assuming mount.ceph(8) is installed properly, it should be
-automatically invoked by mount(8) like so::
-
- mount -t ceph monhost:/ /mnt/foo
-
-
-Availability
-============
-
-**mount.ceph** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-See also
-========
-
-:doc:`ceph-fuse <ceph-fuse>`\(8),
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/osdmaptool.rst b/src/ceph/doc/man/8/osdmaptool.rst
deleted file mode 100644
index f58d29c..0000000
--- a/src/ceph/doc/man/8/osdmaptool.rst
+++ /dev/null
@@ -1,157 +0,0 @@
-:orphan:
-
-======================================================
- osdmaptool -- ceph osd cluster map manipulation tool
-======================================================
-
-.. program:: osdmaptool
-
-Synopsis
-========
-
-| **osdmaptool** *mapfilename* [--print] [--createsimple *numosd*
- [--pgbits *bitsperosd* ] ] [--clobber]
-
-
-Description
-===========
-
-**osdmaptool** is a utility that lets you create, view, and manipulate
-OSD cluster maps from the Ceph distributed storage system. Notably, it
-lets you extract the embedded CRUSH map or import a new CRUSH map.
-
-
-Options
-=======
-
-.. option:: --print
-
- will simply make the tool print a plaintext dump of the map, after
- any modifications are made.
-
-.. option:: --clobber
-
- will allow osdmaptool to overwrite mapfilename if changes are made.
-
-.. option:: --import-crush mapfile
-
- will load the CRUSH map from mapfile and embed it in the OSD map.
-
-.. option:: --export-crush mapfile
-
- will extract the CRUSH map from the OSD map and write it to
- mapfile.
-
-.. option:: --createsimple numosd [--pgbits bitsperosd]
-
- will create a relatively generic OSD map with the numosd devices.
- If --pgbits is specified, the initial placement group counts will
- be set with bitsperosd bits per OSD. That is, the pg_num map
- attribute will be set to numosd shifted by bitsperosd.
-
-.. option:: --test-map-pgs [--pool poolid]
-
- will print out the mappings from placement groups to OSDs.
-
-.. option:: --test-map-pgs-dump [--pool poolid]
-
- will print out the summary of all placement groups and the mappings
- from them to the mapped OSDs.
-
-
-Example
-=======
-
-To create a simple map with 16 devices::
-
- osdmaptool --createsimple 16 osdmap --clobber
-
-To view the result::
-
- osdmaptool --print osdmap
-
-To view the mappings of placement groups for pool 0::
-
- osdmaptool --test-map-pgs-dump rbd --pool 0
-
- pool 0 pg_num 8
- 0.0 [0,2,1] 0
- 0.1 [2,0,1] 2
- 0.2 [0,1,2] 0
- 0.3 [2,0,1] 2
- 0.4 [0,2,1] 0
- 0.5 [0,2,1] 0
- 0.6 [0,1,2] 0
- 0.7 [1,0,2] 1
- #osd count first primary c wt wt
- osd.0 8 5 5 1 1
- osd.1 8 1 1 1 1
- osd.2 8 2 2 1 1
- in 3
- avg 8 stddev 0 (0x) (expected 2.3094 0.288675x))
- min osd.0 8
- max osd.0 8
- size 0 0
- size 1 0
- size 2 0
- size 3 8
-
-In which,
- #. pool 0 has 8 placement groups. And two tables follow:
- #. A table for placement groups. Each row presents a placement group. With columns of:
-
- * placement group id,
- * acting set, and
- * primary OSD.
- #. A table for all OSDs. Each row presents an OSD. With columns of:
-
- * count of placement groups being mapped to this OSD,
- * count of placement groups where this OSD is the first one in their acting sets,
- * count of placement groups where this OSD is the primary of them,
- * the CRUSH weight of this OSD, and
- * the weight of this OSD.
- #. Looking at the number of placement groups held by 3 OSDs. We have
-
- * avarge, stddev, stddev/average, expected stddev, expected stddev / average
- * min and max
- #. The number of placement groups mapping to n OSDs. In this case, all 8 placement
- groups are mapping to 3 different OSDs.
-
-In a less-balanced cluster, we could have following output for the statistics of
-placement group distribution, whose standard deviation is 1.41421::
-
- #osd count first primary c wt wt
- osd.0 8 5 5 1 1
- osd.1 8 1 1 1 1
- osd.2 8 2 2 1 1
-
- #osd count first primary c wt wt
- osd.0 33 9 9 0.0145874 1
- osd.1 34 14 14 0.0145874 1
- osd.2 31 7 7 0.0145874 1
- osd.3 31 13 13 0.0145874 1
- osd.4 30 14 14 0.0145874 1
- osd.5 33 7 7 0.0145874 1
- in 6
- avg 32 stddev 1.41421 (0.0441942x) (expected 5.16398 0.161374x))
- min osd.4 30
- max osd.1 34
- size 00
- size 10
- size 20
- size 364
-
-
-Availability
-============
-
-**osdmaptool** is part of Ceph, a massively scalable, open-source, distributed storage system. Please
-refer to the Ceph documentation at http://ceph.com/docs for more
-information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`crushtool <crushtool>`\(8),
diff --git a/src/ceph/doc/man/8/rados.rst b/src/ceph/doc/man/8/rados.rst
deleted file mode 100644
index 9490105..0000000
--- a/src/ceph/doc/man/8/rados.rst
+++ /dev/null
@@ -1,223 +0,0 @@
-:orphan:
-
-=======================================
- rados -- rados object storage utility
-=======================================
-
-.. program:: rados
-
-Synopsis
-========
-
-| **rados** [ -m *monaddr* ] [ mkpool | rmpool *foo* ] [ -p | --pool
- *pool* ] [ -s | --snap *snap* ] [ -i *infile* ] [ -o *outfile* ]
- *command* ...
-
-
-Description
-===========
-
-**rados** is a utility for interacting with a Ceph object storage
-cluster (RADOS), part of the Ceph distributed storage system.
-
-
-Options
-=======
-
-.. option:: -p pool, --pool pool
-
- Interact with the given pool. Required by most commands.
-
-.. option:: -s snap, --snap snap
-
- Read from the given pool snapshot. Valid for all pool-specific read operations.
-
-.. option:: -i infile
-
- will specify an input file to be passed along as a payload with the
- command to the monitor cluster. This is only used for specific
- monitor commands.
-
-.. option:: -o outfile
-
- will write any payload returned by the monitor cluster with its
- reply to outfile. Only specific monitor commands (e.g. osd getmap)
- return a payload.
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use ceph.conf configuration file instead of the default
- /etc/ceph/ceph.conf to determine monitor addresses during startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ceph.conf).
-
-.. option:: -b block_size
-
- Set the block size for put/get/append ops and for write benchmarking.
-
-.. option:: --striper
-
- Uses the striping API of rados rather than the default one.
- Available for stat, get, put, append, truncate, rm, ls and all xattr related operation
-
-
-Global commands
-===============
-
-:command:`lspools`
- List object pools
-
-:command:`df`
- Show utilization statistics, including disk usage (bytes) and object
- counts, over the entire system and broken down by pool.
-
-:command:`mkpool` *foo*
- Create a pool with name foo.
-
-:command:`rmpool` *foo* [ *foo* --yes-i-really-really-mean-it ]
- Delete the pool foo (and all its data).
-
-:command:`list-inconsistent-pg` *pool*
- List inconsistent PGs in given pool.
-
-:command:`list-inconsistent-obj` *pgid*
- List inconsistent objects in given PG.
-
-:command:`list-inconsistent-snapset` *pgid*
- List inconsistent snapsets in given PG.
-
-Pool specific commands
-======================
-
-:command:`get` *name* *outfile*
- Read object name from the cluster and write it to outfile.
-
-:command:`put` *name* *infile* [--offset offset]
- Write object name with start offset (default:0) to the cluster with contents from infile.
-
-:command:`append` *name* *infile*
- Append object name to the cluster with contents from infile.
-
-:command:`rm` *name*
- Remove object name.
-
-:command:`listwatchers` *name*
- List the watchers of object name.
-
-:command:`ls` *outfile*
- List objects in given pool and write to outfile.
-
-:command:`lssnap`
- List snapshots for given pool.
-
-:command:`clonedata` *srcname* *dstname* --object-locator *key*
- Clone object byte data from *srcname* to *dstname*. Both objects must be stored with the locator key *key* (usually either *srcname* or *dstname*). Object attributes and omap keys are not copied or cloned.
-
-:command:`mksnap` *foo*
- Create pool snapshot named *foo*.
-
-:command:`rmsnap` *foo*
- Remove pool snapshot named *foo*.
-
-:command:`bench` *seconds* *mode* [ -b *objsize* ] [ -t *threads* ]
- Benchmark for *seconds*. The mode can be *write*, *seq*, or
- *rand*. *seq* and *rand* are read benchmarks, either
- sequential or random. Before running one of the reading benchmarks,
- run a write benchmark with the *--no-cleanup* option. The default
- object size is 4 MB, and the default number of simulated threads
- (parallel writes) is 16. The *--run-name <label>* option is useful
- for benchmarking a workload test from multiple clients. The *<label>*
- is an arbitrary object name. It is "benchmark_last_metadata" by
- default, and is used as the underlying object name for "read" and
- "write" ops.
- Note: -b *objsize* option is valid only in *write* mode.
- Note: *write* and *seq* must be run on the same host otherwise the
- objects created by *write* will have names that will fail *seq*.
-
-:command:`cleanup` [ --run-name *run_name* ] [ --prefix *prefix* ]
- Clean up a previous benchmark operation.
- Note: the default run-name is "benchmark_last_metadata"
-
-:command:`listxattr` *name*
- List all extended attributes of an object.
-
-:command:`getxattr` *name* *attr*
- Dump the extended attribute value of *attr* of an object.
-
-:command:`setxattr` *name* *attr* *value*
- Set the value of *attr* in the extended attributes of an object.
-
-:command:`rmxattr` *name* *attr*
- Remove *attr* from the extended attributes of an object.
-
-:command:`listomapkeys` *name*
- List all the keys stored in the object map of object name.
-
-:command:`listomapvals` *name*
- List all key/value pairs stored in the object map of object name.
- The values are dumped in hexadecimal.
-
-:command:`getomapval` [ --omap-key-file *file* ] *name* *key* [ *out-file* ]
- Dump the hexadecimal value of key in the object map of object name.
- If the optional *out-file* argument is not provided, the value will be
- written to standard output.
-
-:command:`setomapval` [ --omap-key-file *file* ] *name* *key* [ *value* ]
- Set the value of key in the object map of object name. If the optional
- *value* argument is not provided, the value will be read from standard
- input.
-
-:command:`rmomapkey` [ --omap-key-file *file* ] *name* *key*
- Remove key from the object map of object name.
-
-:command:`getomapheader` *name*
- Dump the hexadecimal value of the object map header of object name.
-
-:command:`setomapheader` *name* *value*
- Set the value of the object map header of object name.
-
-Examples
-========
-
-To view cluster utilization::
-
- rados df
-
-To get a list object in pool foo sent to stdout::
-
- rados -p foo ls -
-
-To write an object::
-
- rados -p foo put myobject blah.txt
-
-To create a snapshot::
-
- rados -p foo mksnap mysnap
-
-To delete the object::
-
- rados -p foo rm myobject
-
-To read a previously snapshotted version of an object::
-
- rados -p foo -s mysnap get myobject blah.txt.old
-
-To list inconsistent objects in PG 0.6::
-
- rados list-inconsistent-obj 0.6 --format=json-pretty
-
-
-Availability
-============
-
-**rados** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/radosgw-admin.rst b/src/ceph/doc/man/8/radosgw-admin.rst
deleted file mode 100644
index ab33f7e..0000000
--- a/src/ceph/doc/man/8/radosgw-admin.rst
+++ /dev/null
@@ -1,504 +0,0 @@
-:orphan:
-
-=================================================================
- radosgw-admin -- rados REST gateway user administration utility
-=================================================================
-
-.. program:: radosgw-admin
-
-Synopsis
-========
-
-| **radosgw-admin** *command* [ *options* *...* ]
-
-
-Description
-===========
-
-:program:`radosgw-admin` is a RADOS gateway user administration utility. It
-allows creating and modifying users.
-
-
-Commands
-========
-
-:program:`radosgw-admin` utility uses many commands for administration purpose
-which are as follows:
-
-:command:`user create`
- Create a new user.
-
-:command:`user modify`
- Modify a user.
-
-:command:`user info`
- Display information of a user, and any potentially available
- subusers and keys.
-
-:command:`user rm`
- Remove a user.
-
-:command:`user suspend`
- Suspend a user.
-
-:command:`user enable`
- Re-enable user after suspension.
-
-:command:`user check`
- Check user info.
-
-:command:`user stats`
- Show user stats as accounted by quota subsystem.
-
-:command:`caps add`
- Add user capabilities.
-
-:command:`caps rm`
- Remove user capabilities.
-
-:command:`subuser create`
- Create a new subuser (primarily useful for clients using the Swift API).
-
-:command:`subuser modify`
- Modify a subuser.
-
-:command:`subuser rm`
- Remove a subuser.
-
-:command:`key create`
- Create access key.
-
-:command:`key rm`
- Remove access key.
-
-:command:`bucket list`
- List all buckets.
-
-:command:`bucket link`
- Link bucket to specified user.
-
-:command:`bucket unlink`
- Unlink bucket from specified user.
-
-:command:`bucket stats`
- Returns bucket statistics.
-
-:command:`bucket rm`
- Remove a bucket.
-
-:command:`bucket check`
- Check bucket index.
-
-:command:`object rm`
- Remove an object.
-
-:command:`object unlink`
- Unlink object from bucket index.
-
-:command:`quota set`
- Set quota params.
-
-:command:`quota enable`
- Enable quota.
-
-:command:`quota disable`
- Disable quota.
-
-:command:`region get`
- Show region info.
-
-:command:`region list`
- List all regions set on this cluster.
-
-:command:`region set`
- Set region info (requires infile).
-
-:command:`region default`
- Set default region.
-
-:command:`region-map get`
- Show region-map.
-
-:command:`region-map set`
- Set region-map (requires infile).
-
-:command:`zone get`
- Show zone cluster params.
-
-:command:`zone set`
- Set zone cluster params (requires infile).
-
-:command:`zone list`
- List all zones set on this cluster.
-
-:command:`pool add`
- Add an existing pool for data placement.
-
-:command:`pool rm`
- Remove an existing pool from data placement set.
-
-:command:`pools list`
- List placement active set.
-
-:command:`policy`
- Display bucket/object policy.
-
-:command:`log list`
- List log objects.
-
-:command:`log show`
- Dump a log from specific object or (bucket + date + bucket-id).
- (NOTE: required to specify formatting of date to "YYYY-MM-DD-hh")
-
-:command:`log rm`
- Remove log object.
-
-:command:`usage show`
- Show the usage information (with optional user and date range).
-
-:command:`usage trim`
- Trim usage information (with optional user and date range).
-
-:command:`gc list`
- Dump expired garbage collection objects (specify --include-all to list all
- entries, including unexpired).
-
-:command:`gc process`
- Manually process garbage.
-
-:command:`metadata get`
- Get metadata info.
-
-:command:`metadata put`
- Put metadata info.
-
-:command:`metadata rm`
- Remove metadata info.
-
-:command:`metadata list`
- List metadata info.
-
-:command:`mdlog list`
- List metadata log.
-
-:command:`mdlog trim`
- Trim metadata log.
-
-:command:`bilog list`
- List bucket index log.
-
-:command:`bilog trim`
- Trim bucket index log (use start-marker, end-marker).
-
-:command:`datalog list`
- List data log.
-
-:command:`datalog trim`
- Trim data log.
-
-:command:`opstate list`
- List stateful operations entries (use client_id, op_id, object).
-
-:command:`opstate set`
- Set state on an entry (use client_id, op_id, object, state).
-
-:command:`opstate renew`
- Renew state on an entry (use client_id, op_id, object).
-
-:command:`opstate rm`
- Remove entry (use client_id, op_id, object).
-
-:command:`replicalog get`
- Get replica metadata log entry.
-
-:command:`replicalog delete`
- Delete replica metadata log entry.
-
-:command:`orphans find`
- Init and run search for leaked rados objects
-
-:command:`orphans finish`
- Clean up search for leaked rados objects
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use ``ceph.conf`` configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during
- startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ceph.conf).
-
-.. option:: --uid=uid
-
- The radosgw user ID.
-
-.. option:: --subuser=<name>
-
- Name of the subuser.
-
-.. option:: --email=email
-
- The e-mail address of the user.
-
-.. option:: --display-name=name
-
- Configure the display name of the user.
-
-.. option:: --access-key=<key>
-
- S3 access key.
-
-.. option:: --gen-access-key
-
- Generate random access key (for S3).
-
-.. option:: --secret=secret
-
- The secret associated with a given key.
-
-.. option:: --gen-secret
-
- Generate random secret key.
-
-.. option:: --key-type=<type>
-
- key type, options are: swift, s3.
-
-.. option:: --temp-url-key[-2]=<key>
-
- Temporary url key.
-
-.. option:: --system
-
- Set the system flag on the user.
-
-.. option:: --bucket=bucket
-
- Specify the bucket name.
-
-.. option:: --object=object
-
- Specify the object name.
-
-.. option:: --date=yyyy-mm-dd
-
- The date needed for some commands.
-
-.. option:: --start-date=yyyy-mm-dd
-
- The start date needed for some commands.
-
-.. option:: --end-date=yyyy-mm-dd
-
- The end date needed for some commands.
-
-.. option:: --shard-id=<shard-id>
-
- Optional for mdlog list. Required for ``mdlog trim``,
- ``replica mdlog get/delete``, ``replica datalog get/delete``.
-
-.. option:: --auth-uid=auid
-
- The librados auid.
-
-.. option:: --purge-data
-
- Remove user data before user removal.
-
-.. option:: --purge-keys
-
- When specified, subuser removal will also purge all the subuser keys.
-
-.. option:: --purge-objects
-
- Remove all objects before bucket removal.
-
-.. option:: --metadata-key=<key>
-
- Key to retrieve metadata from with ``metadata get``.
-
-.. option:: --rgw-region=<region>
-
- Region in which radosgw is running.
-
-.. option:: --rgw-zone=<zone>
-
- Zone in which radosgw is running.
-
-.. option:: --fix
-
- Besides checking bucket index, will also fix it.
-
-.. option:: --check-objects
-
- bucket check: Rebuilds bucket index according to actual objects state.
-
-.. option:: --format=<format>
-
- Specify output format for certain operations: xml, json.
-
-.. option:: --sync-stats
-
- Option to 'user stats', update user stats with current stats reported by
- user's buckets indexes.
-
-.. option:: --show-log-entries=<flag>
-
- Enable/disable dump of log entries on log show.
-
-.. option:: --show-log-sum=<flag>
-
- Enable/disable dump of log summation on log show.
-
-.. option:: --skip-zero-entries
-
- Log show only dumps entries that don't have zero value in one of the numeric
- field.
-
-.. option:: --infile
-
- Specify a file to read in when setting data.
-
-.. option:: --state=<state string>
-
- Specify a state for the opstate set command.
-
-.. option:: --replica-log-type
-
- Replica log type (metadata, data, bucket), required for replica log
- operations.
-
-.. option:: --categories=<list>
-
- Comma separated list of categories, used in usage show.
-
-.. option:: --caps=<caps>
-
- List of caps (e.g., "usage=read, write; user=read".
-
-.. option:: --compression=<compression-algorithm>
-
- Placement target compression algorithm (lz4|snappy|zlib|zstd)
-
-.. option:: --yes-i-really-mean-it
-
- Required for certain operations.
-
-
-Quota Options
-=============
-
-.. option:: --max-objects
-
- Specify max objects (negative value to disable).
-
-.. option:: --max-size
-
- Specify max size (in bytes, negative value to disable).
-
-.. option:: --quota-scope
-
- Scope of quota (bucket, user).
-
-
-Orphans Search Options
-======================
-
-.. option:: --pool
-
- Data pool to scan for leaked rados objects
-
-.. option:: --num-shards
-
- Number of shards to use for keeping the temporary scan info
-
-.. option:: --orphan-stale-secs
-
- Number of seconds to wait before declaring an object to be an orphan.
- Default is 86400 (24 hours).
-
-.. option:: --job-id
-
- Set the job id (for orphans find)
-
-.. option:: --max-concurrent-ios
-
- Maximum concurrent ios for orphans find.
- Default is 32.
-
-
-Examples
-========
-
-Generate a new user::
-
- $ radosgw-admin user create --display-name="johnny rotten" --uid=johnny
- { "user_id": "johnny",
- "rados_uid": 0,
- "display_name": "johnny rotten",
- "email": "",
- "suspended": 0,
- "subusers": [],
- "keys": [
- { "user": "johnny",
- "access_key": "TCICW53D9BQ2VGC46I44",
- "secret_key": "tfm9aHMI8X76L3UdgE+ZQaJag1vJQmE6HDb5Lbrz"}],
- "swift_keys": []}
-
-Remove a user::
-
- $ radosgw-admin user rm --uid=johnny
-
-Remove a user and all associated buckets with their contents::
-
- $ radosgw-admin user rm --uid=johnny --purge-data
-
-Remove a bucket::
-
- $ radosgw-admin bucket rm --bucket=foo
-
-Link bucket to specified user::
-
- $ radosgw-admin bucket link --bucket=foo --bucket_id=<bucket id> --uid=johnny
-
-Unlink bucket from specified user::
-
- $ radosgw-admin bucket unlink --bucket=foo --uid=johnny
-
-Show the logs of a bucket from April 1st, 2012::
-
- $ radosgw-admin log show --bucket=foo --date=2012-04-01-01 --bucket-id=default.14193.1
-
-Show usage information for user from March 1st to (but not including) April 1st, 2012::
-
- $ radosgw-admin usage show --uid=johnny \
- --start-date=2012-03-01 --end-date=2012-04-01
-
-Show only summary of usage information for all users::
-
- $ radosgw-admin usage show --show-log-entries=false
-
-Trim usage information for user until March 1st, 2012::
-
- $ radosgw-admin usage trim --uid=johnny --end-date=2012-04-01
-
-
-Availability
-============
-
-:program:`radosgw-admin` is part of Ceph, a massively scalable, open-source,
-distributed storage system. Please refer to the Ceph documentation at
-http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
-:doc:`radosgw <radosgw>`\(8)
diff --git a/src/ceph/doc/man/8/radosgw.rst b/src/ceph/doc/man/8/radosgw.rst
deleted file mode 100644
index f57b346..0000000
--- a/src/ceph/doc/man/8/radosgw.rst
+++ /dev/null
@@ -1,256 +0,0 @@
-:orphan:
-
-===============================
- radosgw -- rados REST gateway
-===============================
-
-.. program:: radosgw
-
-Synopsis
-========
-
-| **radosgw**
-
-
-Description
-===========
-
-:program:`radosgw` is an HTTP REST gateway for the RADOS object store, a part
-of the Ceph distributed storage system. It is implemented as a FastCGI
-module using libfcgi, and can be used in conjunction with any FastCGI
-capable web server.
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use ``ceph.conf`` configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ``ceph.conf``).
-
-.. option:: -i ID, --id ID
-
- Set the ID portion of name for radosgw
-
-.. option:: -n TYPE.ID, --name TYPE.ID
-
- Set the rados user name for the gateway (eg. client.radosgw.gateway)
-
-.. option:: --cluster NAME
-
- Set the cluster name (default: ceph)
-
-.. option:: -d
-
- Run in foreground, log to stderr
-
-.. option:: -f
-
- Run in foreground, log to usual location
-
-.. option:: --rgw-socket-path=path
-
- Specify a unix domain socket path.
-
-.. option:: --rgw-region=region
-
- The region where radosgw runs
-
-.. option:: --rgw-zone=zone
-
- The zone where radosgw runs
-
-
-Configuration
-=============
-
-Earlier RADOS Gateway had to be configured with ``Apache`` and ``mod_fastcgi``.
-Now, ``mod_proxy_fcgi`` module is used instead of ``mod_fastcgi``.
-``mod_proxy_fcgi`` works differently than a traditional FastCGI module. This
-module requires the service of ``mod_proxy`` which provides support for the
-FastCGI protocol. So, to be able to handle FastCGI protocol, both ``mod_proxy``
-and ``mod_proxy_fcgi`` have to be present in the server. Unlike ``mod_fastcgi``,
-``mod_proxy_fcgi`` cannot start the application process. Some platforms have
-``fcgistarter`` for that purpose. However, external launching of application
-or process management may be available in the FastCGI application framework
-in use.
-
-``Apache`` can be configured in a way that enables ``mod_proxy_fcgi`` to be used
-with localhost tcp or through unix domain socket. ``mod_proxy_fcgi`` that doesn't
-support unix domain socket such as the ones in Apache 2.2 and earlier versions of
-Apache 2.4, needs to be configured for use with localhost tcp. Later versions of
-Apache like Apache 2.4.9 or later support unix domain socket and as such they
-allow for the configuration with unix domain socket instead of localhost tcp.
-
-The following steps show the configuration in Ceph's configuration file i.e,
-``/etc/ceph/ceph.conf`` and the gateway configuration file i.e,
-``/etc/httpd/conf.d/rgw.conf`` (RPM-based distros) or
-``/etc/apache2/conf-available/rgw.conf`` (Debian-based distros) with localhost
-tcp and through unix domain socket:
-
-#. For distros with Apache 2.2 and early versions of Apache 2.4 that use
- localhost TCP and do not support Unix Domain Socket, append the following
- contents to ``/etc/ceph/ceph.conf``::
-
- [client.radosgw.gateway]
- host = {hostname}
- keyring = /etc/ceph/ceph.client.radosgw.keyring
- rgw socket path = ""
- log file = /var/log/ceph/client.radosgw.gateway.log
- rgw frontends = fastcgi socket_port=9000 socket_host=0.0.0.0
- rgw print continue = false
-
-#. Add the following content in the gateway configuration file:
-
- For Debian/Ubuntu add in ``/etc/apache2/conf-available/rgw.conf``::
-
- <VirtualHost *:80>
- ServerName localhost
- DocumentRoot /var/www/html
-
- ErrorLog /var/log/apache2/rgw_error.log
- CustomLog /var/log/apache2/rgw_access.log combined
-
- # LogLevel debug
-
- RewriteEngine On
-
- RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
-
- SetEnv proxy-nokeepalive 1
-
- ProxyPass / fcgi://localhost:9000/
-
- </VirtualHost>
-
- For CentOS/RHEL add in ``/etc/httpd/conf.d/rgw.conf``::
-
- <VirtualHost *:80>
- ServerName localhost
- DocumentRoot /var/www/html
-
- ErrorLog /var/log/httpd/rgw_error.log
- CustomLog /var/log/httpd/rgw_access.log combined
-
- # LogLevel debug
-
- RewriteEngine On
-
- RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
-
- SetEnv proxy-nokeepalive 1
-
- ProxyPass / fcgi://localhost:9000/
-
- </VirtualHost>
-
-#. For distros with Apache 2.4.9 or later that support Unix Domain Socket,
- append the following configuration to ``/etc/ceph/ceph.conf``::
-
- [client.radosgw.gateway]
- host = {hostname}
- keyring = /etc/ceph/ceph.client.radosgw.keyring
- rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock
- log file = /var/log/ceph/client.radosgw.gateway.log
- rgw print continue = false
-
-#. Add the following content in the gateway configuration file:
-
- For CentOS/RHEL add in ``/etc/httpd/conf.d/rgw.conf``::
-
- <VirtualHost *:80>
- ServerName localhost
- DocumentRoot /var/www/html
-
- ErrorLog /var/log/httpd/rgw_error.log
- CustomLog /var/log/httpd/rgw_access.log combined
-
- # LogLevel debug
-
- RewriteEngine On
-
- RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
-
- SetEnv proxy-nokeepalive 1
-
- ProxyPass / unix:///var/run/ceph/ceph.radosgw.gateway.fastcgi.sock|fcgi://localhost:9000/
-
- </VirtualHost>
-
- The latest version of Ubuntu i.e, 14.04 ships with ``Apache 2.4.7`` that
- does not have Unix Domain Socket support in it and as such it has to be
- configured with localhost tcp. The Unix Domain Socket support is available in
- ``Apache 2.4.9`` and later versions. A bug has been filed to backport the UDS
- support to ``Apache 2.4.7`` for ``Ubuntu 14.04``.
- See: https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/1411030
-
-#. Generate a key for radosgw to use for authentication with the cluster. ::
-
- ceph-authtool -C -n client.radosgw.gateway --gen-key /etc/ceph/keyring.radosgw.gateway
- ceph-authtool -n client.radosgw.gateway --cap mon 'allow rw' --cap osd 'allow rwx' /etc/ceph/keyring.radosgw.gateway
-
-#. Add the key to the auth entries. ::
-
- ceph auth add client.radosgw.gateway --in-file=keyring.radosgw.gateway
-
-#. Start Apache and radosgw.
-
- Debian/Ubuntu::
-
- sudo /etc/init.d/apache2 start
- sudo /etc/init.d/radosgw start
-
- CentOS/RHEL::
-
- sudo apachectl start
- sudo /etc/init.d/ceph-radosgw start
-
-Usage Logging
-=============
-
-:program:`radosgw` maintains an asynchronous usage log. It accumulates
-statistics about user operations and flushes it periodically. The
-logs can be accessed and managed through :program:`radosgw-admin`.
-
-The information that is being logged contains total data transfer,
-total operations, and total successful operations. The data is being
-accounted in an hourly resolution under the bucket owner, unless the
-operation was done on the service (e.g., when listing a bucket) in
-which case it is accounted under the operating user.
-
-Following is an example configuration::
-
- [client.radosgw.gateway]
- rgw enable usage log = true
- rgw usage log tick interval = 30
- rgw usage log flush threshold = 1024
- rgw usage max shards = 32
- rgw usage max user shards = 1
-
-
-The total number of shards determines how many total objects hold the
-usage log information. The per-user number of shards specify how many
-objects hold usage information for a single user. The tick interval
-configures the number of seconds between log flushes, and the flush
-threshold specify how many entries can be kept before resorting to
-synchronous flush.
-
-
-Availability
-============
-
-:program:`radosgw` is part of Ceph, a massively scalable, open-source, distributed
-storage system. Please refer to the Ceph documentation at http://ceph.com/docs for
-more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8)
-:doc:`radosgw-admin <radosgw-admin>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-fuse.rst b/src/ceph/doc/man/8/rbd-fuse.rst
deleted file mode 100644
index 394bdba..0000000
--- a/src/ceph/doc/man/8/rbd-fuse.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-:orphan:
-
-=======================================
- rbd-fuse -- expose rbd images as files
-=======================================
-
-.. program:: rbd-fuse
-
-Synopsis
-========
-
-| **rbd-fuse** [ -p pool ] [-c conffile] *mountpoint* [ *fuse options* ]
-
-
-Description
-===========
-
-**rbd-fuse** is a FUSE (File system in USErspace) client for RADOS
-block device (rbd) images. Given a pool containing rbd images,
-it will mount a userspace filesystem allowing access to those images
-as regular files at **mountpoint**.
-
-The file system can be unmounted with::
-
- fusermount -u mountpoint
-
-or by sending ``SIGINT`` to the ``rbd-fuse`` process.
-
-
-Options
-=======
-
-Any options not recognized by rbd-fuse will be passed on to libfuse.
-
-.. option:: -c ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: -p pool
-
- Use *pool* as the pool to search for rbd images. Default is ``rbd``.
-
-
-Availability
-============
-
-**rbd-fuse** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-fusermount(8),
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-ggate.rst b/src/ceph/doc/man/8/rbd-ggate.rst
deleted file mode 100644
index 67d0c81..0000000
--- a/src/ceph/doc/man/8/rbd-ggate.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-:orphan:
-
-==================================================
- rbd-ggate -- map rbd images via FreeBSD GEOM Gate
-==================================================
-
-.. program:: rbd-ggate
-
-Synopsis
-========
-
-| **rbd-ggate** [--read-only] [--exclusive] [--device *ggate device*] map *image-spec* | *snap-spec*
-| **rbd-ggate** unmap *ggate device*
-| **rbd-ggate** list
-
-Description
-===========
-
-**rbd-ggate** is a client for RADOS block device (rbd) images. It will
-map a rbd image to a ggate (FreeBSD GEOM Gate class) device, allowing
-access it as regular local block device.
-
-Commands
-========
-
-map
----
-
-Spawn a process responsible for the creation of ggate device and
-forwarding I/O requests between the GEOM Gate kernel subsystem and
-RADOS.
-
-unmap
------
-
-Destroy ggate device and terminate the process responsible for it.
-
-list
-----
-
-List mapped ggate devices.
-
-Options
-=======
-
-.. option:: --device *ggate device*
-
- Specify ggate device path.
-
-.. option:: --read-only
-
- Map read-only.
-
-.. option:: --exclusive
-
- Forbid writes by other clients.
-
-Image and snap specs
-====================
-
-| *image-spec* is [*pool-name*]/*image-name*
-| *snap-spec* is [*pool-name*]/*image-name*\ @\ *snap-name*
-
-The default for *pool-name* is "rbd". If an image name contains a slash
-character ('/'), *pool-name* is required.
-
-Availability
-============
-
-**rbd-ggate** is part of Ceph, a massively scalable, open-source,
-distributed storage system. Please refer to the Ceph documentation at
-http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd <rbd>`\(8)
-:doc:`ceph <ceph>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-mirror.rst b/src/ceph/doc/man/8/rbd-mirror.rst
deleted file mode 100644
index b35787f..0000000
--- a/src/ceph/doc/man/8/rbd-mirror.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-:orphan:
-
-===================================================
- rbd-mirror -- Ceph daemon for mirroring RBD images
-===================================================
-
-.. program:: rbd-mirror
-
-Synopsis
-========
-
-| **rbd-mirror**
-
-
-Description
-===========
-
-:program:`rbd-mirror` is a daemon for asynchronous mirroring of RADOS
-block device (rbd) images among Ceph clusters. It replays changes to
-images in remote clusters in a local cluster, for disaster recovery.
-
-It connects to remote clusters via the RADOS protocol, relying on
-default search paths to find ceph.conf files, monitor addresses and
-authentication information for them, i.e. ``/etc/ceph/$cluster.conf``,
-``/etc/ceph/$cluster.keyring``, and
-``/etc/ceph/$cluster.$name.keyring``, where ``$cluster`` is the
-human-friendly name of the cluster, and ``$name`` is the rados user to
-connect as, e.g. ``client.rbd-mirror``.
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf=ceph.conf
-
- Use ``ceph.conf`` configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ``ceph.conf``).
-
-.. option:: -i ID, --id ID
-
- Set the ID portion of name for rbd-mirror
-
-.. option:: -n TYPE.ID, --name TYPE.ID
-
- Set the rados user name for the gateway (eg. client.rbd-mirror)
-
-.. option:: --cluster NAME
-
- Set the cluster name (default: ceph)
-
-.. option:: -d
-
- Run in foreground, log to stderr
-
-.. option:: -f
-
- Run in foreground, log to usual location
-
-
-Availability
-============
-
-:program:`rbd-mirror` is part of Ceph, a massively scalable, open-source, distributed
-storage system. Please refer to the Ceph documentation at http://ceph.com/docs for
-more information.
-
-
-See also
-========
-
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-nbd.rst b/src/ceph/doc/man/8/rbd-nbd.rst
deleted file mode 100644
index bb20a4d..0000000
--- a/src/ceph/doc/man/8/rbd-nbd.rst
+++ /dev/null
@@ -1,67 +0,0 @@
-:orphan:
-
-=========================================
- rbd-nbd -- map rbd images to nbd device
-=========================================
-
-.. program:: rbd-nbd
-
-Synopsis
-========
-
-| **rbd-nbd** [-c conf] [--read-only] [--device *nbd device*] [--nbds_max *limit*] [--max_part *limit*] [--exclusive] map *image-spec* | *snap-spec*
-| **rbd-nbd** unmap *nbd device*
-| **rbd-nbd** list-mapped
-
-Description
-===========
-
-**rbd-nbd** is a client for RADOS block device (rbd) images like rbd kernel module.
-It will map a rbd image to a nbd (Network Block Device) device, allowing access it
-as regular local block device.
-
-Options
-=======
-
-.. option:: -c ceph.conf
-
- Use *ceph.conf* configuration file instead of the default
- ``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
-
-.. option:: --read-only
-
- Map read-only.
-
-.. option:: --nbds_max *limit*
-
- Override the parameter of NBD kernel module when modprobe, used to
- limit the count of nbd device.
-
-.. option:: --max_part *limit*
-
- Override for module param nbds_max.
-
-.. option:: --exclusive
-
- Forbid writes by other clients.
-
-Image and snap specs
-====================
-
-| *image-spec* is [*pool-name*]/*image-name*
-| *snap-spec* is [*pool-name*]/*image-name*\ @\ *snap-name*
-
-The default for *pool-name* is "rbd". If an image name contains a slash
-character ('/'), *pool-name* is required.
-
-Availability
-============
-
-**rbd-nbd** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-replay-many.rst b/src/ceph/doc/man/8/rbd-replay-many.rst
deleted file mode 100644
index 5fb9349..0000000
--- a/src/ceph/doc/man/8/rbd-replay-many.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-:orphan:
-
-==================================================================================
- rbd-replay-many -- replay a rados block device (RBD) workload on several clients
-==================================================================================
-
-.. program:: rbd-replay-many
-
-Synopsis
-========
-
-| **rbd-replay-many** [ *options* ] --original-image *name* *host1* [ *host2* [ ... ] ] -- *rbd_replay_args*
-
-
-Description
-===========
-
-**rbd-replay-many** is a utility for replaying a rados block device (RBD) workload on several clients.
-Although all clients use the same workload, they replay against separate images.
-This matches normal use of librbd, where each original client is a VM with its own image.
-
-Configuration and replay files are not automatically copied to clients.
-Replay images must already exist.
-
-
-Options
-=======
-
-.. option:: --original-image name
-
- Specifies the name (and snap) of the originally traced image.
- Necessary for correct name mapping.
-
-.. option:: --image-prefix prefix
-
- Prefix of image names to replay against.
- Specifying --image-prefix=foo results in clients replaying against foo-0, foo-1, etc.
- Defaults to the original image name.
-
-.. option:: --exec program
-
- Path to the rbd-replay executable.
-
-.. option:: --delay seconds
-
- Delay between starting each client. Defaults to 0.
-
-
-Examples
-========
-
-Typical usage::
-
- rbd-replay-many host-0 host-1 --original-image=image -- -c ceph.conf replay.bin
-
-This results in the following commands being executed::
-
- ssh host-0 'rbd-replay' --map-image 'image=image-0' -c ceph.conf replay.bin
- ssh host-1 'rbd-replay' --map-image 'image=image-1' -c ceph.conf replay.bin
-
-
-Availability
-============
-
-**rbd-replay-many** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd-replay <rbd-replay>`\(8),
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-replay-prep.rst b/src/ceph/doc/man/8/rbd-replay-prep.rst
deleted file mode 100644
index abb08de..0000000
--- a/src/ceph/doc/man/8/rbd-replay-prep.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-:orphan:
-
-====================================================================================
- rbd-replay-prep -- prepare captured rados block device (RBD) workloads for replay
-====================================================================================
-
-.. program:: rbd-replay-prep
-
-Synopsis
-========
-
-| **rbd-replay-prep** [ --window *seconds* ] [ --anonymize ] *trace_dir* *replay_file*
-
-
-Description
-===========
-
-**rbd-replay-prep** processes raw rados block device (RBD) traces to prepare them for **rbd-replay**.
-
-
-Options
-=======
-
-.. option:: --window seconds
-
- Requests further apart than 'seconds' seconds are assumed to be independent.
-
-.. option:: --anonymize
-
- Anonymizes image and snap names.
-
-.. option:: --verbose
-
- Print all processed events to console
-
-Examples
-========
-
-To prepare workload1-trace for replay::
-
- rbd-replay-prep workload1-trace/ust/uid/1000/64-bit workload1
-
-
-Availability
-============
-
-**rbd-replay-prep** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd-replay <rbd-replay>`\(8),
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd-replay.rst b/src/ceph/doc/man/8/rbd-replay.rst
deleted file mode 100644
index 74b8018..0000000
--- a/src/ceph/doc/man/8/rbd-replay.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-:orphan:
-
-=========================================================
- rbd-replay -- replay rados block device (RBD) workloads
-=========================================================
-
-.. program:: rbd-replay
-
-Synopsis
-========
-
-| **rbd-replay** [ *options* ] *replay_file*
-
-
-Description
-===========
-
-**rbd-replay** is a utility for replaying rados block device (RBD) workloads.
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf ceph.conf
-
- Use ceph.conf configuration file instead of the default /etc/ceph/ceph.conf to
- determine monitor addresses during startup.
-
-.. option:: -p pool, --pool pool
-
- Interact with the given pool. Defaults to 'rbd'.
-
-.. option:: --latency-multiplier
-
- Multiplies inter-request latencies. Default: 1.
-
-.. option:: --read-only
-
- Only replay non-destructive requests.
-
-.. option:: --map-image rule
-
- Add a rule to map image names in the trace to image names in the replay cluster.
- A rule of image1@snap1=image2@snap2 would map snap1 of image1 to snap2 of image2.
-
-.. option:: --dump-perf-counters
-
- **Experimental**
- Dump performance counters to standard out before an image is closed.
- Performance counters may be dumped multiple times if multiple images are closed,
- or if the same image is opened and closed multiple times.
- Performance counters and their meaning may change between versions.
-
-
-Examples
-========
-
-To replay workload1 as fast as possible::
-
- rbd-replay --latency-multiplier=0 workload1
-
-To replay workload1 but use test_image instead of prod_image::
-
- rbd-replay --map-image=prod_image=test_image workload1
-
-
-Availability
-============
-
-**rbd-replay** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd-replay-prep <rbd-replay-prep>`\(8),
-:doc:`rbd <rbd>`\(8)
diff --git a/src/ceph/doc/man/8/rbd.rst b/src/ceph/doc/man/8/rbd.rst
deleted file mode 100644
index c37ca44..0000000
--- a/src/ceph/doc/man/8/rbd.rst
+++ /dev/null
@@ -1,615 +0,0 @@
-:orphan:
-
-===============================================
- rbd -- manage rados block device (RBD) images
-===============================================
-
-.. program:: rbd
-
-Synopsis
-========
-
-| **rbd** [ -c *ceph.conf* ] [ -m *monaddr* ] [--cluster *cluster-name*]
- [ -p | --pool *pool* ] [ *command* ... ]
-
-
-Description
-===========
-
-**rbd** is a utility for manipulating rados block device (RBD) images,
-used by the Linux rbd driver and the rbd storage driver for QEMU/KVM.
-RBD images are simple block devices that are striped over objects and
-stored in a RADOS object store. The size of the objects the image is
-striped over must be a power of two.
-
-
-Options
-=======
-
-.. option:: -c ceph.conf, --conf ceph.conf
-
- Use ceph.conf configuration file instead of the default /etc/ceph/ceph.conf to
- determine monitor addresses during startup.
-
-.. option:: -m monaddress[:port]
-
- Connect to specified monitor (instead of looking through ceph.conf).
-
-.. option:: --cluster cluster-name
-
- Use different cluster name as compared to default cluster name *ceph*.
-
-.. option:: -p pool-name, --pool pool-name
-
- Interact with the given pool. Required by most commands.
-
-.. option:: --no-progress
-
- Do not output progress information (goes to standard error by
- default for some commands).
-
-
-Parameters
-==========
-
-.. option:: --image-format format-id
-
- Specifies which object layout to use. The default is 2.
-
- * format 1 - (deprecated) Use the original format for a new rbd image. This
- format is understood by all versions of librbd and the kernel rbd module,
- but does not support newer features like cloning.
-
- * format 2 - Use the second rbd format, which is supported by
- librbd and kernel since version 3.11 (except for striping). This adds
- support for cloning and is more easily extensible to allow more
- features in the future.
-
-.. option:: -s size-in-M/G/T, --size size-in-M/G/T
-
- Specifies the size of the new rbd image or the new size of the existing rbd
- image in M/G/T. If no suffix is given, unit M is assumed.
-
-.. option:: --object-size size-in-B/K/M
-
- Specifies the object size in B/K/M. Object size will be rounded up the
- nearest power of two; if no suffix is given, unit B is assumed. The default
- object size is 4M, smallest is 4K and maximum is 32M.
-
-.. option:: --stripe-unit size-in-B/K/M
-
- Specifies the stripe unit size in B/K/M. If no suffix is given, unit B is
- assumed. See striping section (below) for more details.
-
-.. option:: --stripe-count num
-
- Specifies the number of objects to stripe over before looping back
- to the first object. See striping section (below) for more details.
-
-.. option:: --snap snap
-
- Specifies the snapshot name for the specific operation.
-
-.. option:: --id username
-
- Specifies the username (without the ``client.`` prefix) to use with the map command.
-
-.. option:: --keyring filename
-
- Specifies a keyring file containing a secret for the specified user
- to use with the map command. If not specified, the default keyring
- locations will be searched.
-
-.. option:: --keyfile filename
-
- Specifies a file containing the secret key of ``--id user`` to use with the map command.
- This option is overridden by ``--keyring`` if the latter is also specified.
-
-.. option:: --shared lock-tag
-
- Option for `lock add` that allows multiple clients to lock the
- same image if they use the same tag. The tag is an arbitrary
- string. This is useful for situations where an image must
- be open from more than one client at once, like during
- live migration of a virtual machine, or for use underneath
- a clustered filesystem.
-
-.. option:: --format format
-
- Specifies output formatting (default: plain, json, xml)
-
-.. option:: --pretty-format
-
- Make json or xml formatted output more human-readable.
-
-.. option:: -o krbd-options, --options krbd-options
-
- Specifies which options to use when mapping or unmapping an image via the
- rbd kernel driver. krbd-options is a comma-separated list of options
- (similar to mount(8) mount options). See kernel rbd (krbd) options section
- below for more details.
-
-.. option:: --read-only
-
- Map the image read-only. Equivalent to -o ro.
-
-.. option:: --image-feature feature-name
-
- Specifies which RBD format 2 feature should be enabled when creating
- an image. Multiple features can be enabled by repeating this option
- multiple times. The following features are supported:
-
- * layering: layering support
- * striping: striping v2 support
- * exclusive-lock: exclusive locking support
- * object-map: object map support (requires exclusive-lock)
- * fast-diff: fast diff calculations (requires object-map)
- * deep-flatten: snapshot flatten support
- * journaling: journaled IO support (requires exclusive-lock)
-
-.. option:: --image-shared
-
- Specifies that the image will be used concurrently by multiple clients.
- This will disable features that are dependent upon exclusive ownership
- of the image.
-
-.. option:: --whole-object
-
- Specifies that the diff should be limited to the extents of a full object
- instead of showing intra-object deltas. When the object map feature is
- enabled on an image, limiting the diff to the object extents will
- dramatically improve performance since the differences can be computed
- by examining the in-memory object map instead of querying RADOS for each
- object within the image.
-
-.. option:: --limit
-
- Specifies the limit for the number of snapshots permitted.
-
-Commands
-========
-
-.. TODO rst "option" directive seems to require --foo style options, parsing breaks on subcommands.. the args show up as bold too
-
-:command:`ls` [-l | --long] [*pool-name*]
- Will list all rbd images listed in the rbd_directory object. With
- -l, also show snapshots, and use longer-format output including
- size, parent (if clone), format, etc.
-
-:command:`du` [-p | --pool *pool-name*] [*image-spec* | *snap-spec*]
- Will calculate the provisioned and actual disk usage of all images and
- associated snapshots within the specified pool. It can also be used against
- individual images and snapshots.
-
- If the RBD fast-diff feature is not enabled on images, this operation will
- require querying the OSDs for every potential object within the image.
-
-:command:`info` *image-spec* | *snap-spec*
- Will dump information (such as size and object size) about a specific rbd image.
- If image is a clone, information about its parent is also displayed.
- If a snapshot is specified, whether it is protected is shown as well.
-
-:command:`create` (-s | --size *size-in-M/G/T*) [--image-format *format-id*] [--object-size *size-in-B/K/M*] [--stripe-unit *size-in-B/K/M* --stripe-count *num*] [--image-feature *feature-name*]... [--image-shared] *image-spec*
- Will create a new rbd image. You must also specify the size via --size. The
- --stripe-unit and --stripe-count arguments are optional, but must be used together.
-
-:command:`clone` [--object-size *size-in-B/K/M*] [--stripe-unit *size-in-B/K/M* --stripe-count *num*] [--image-feature *feature-name*] [--image-shared] *parent-snap-spec* *child-image-spec*
- Will create a clone (copy-on-write child) of the parent snapshot.
- Object size will be identical to that of the parent image unless
- specified. Size will be the same as the parent snapshot. The --stripe-unit
- and --stripe-count arguments are optional, but must be used together.
-
- The parent snapshot must be protected (see `rbd snap protect`).
- This requires image format 2.
-
-:command:`flatten` *image-spec*
- If image is a clone, copy all shared blocks from the parent snapshot and
- make the child independent of the parent, severing the link between
- parent snap and child. The parent snapshot can be unprotected and
- deleted if it has no further dependent clones.
-
- This requires image format 2.
-
-:command:`children` *snap-spec*
- List the clones of the image at the given snapshot. This checks
- every pool, and outputs the resulting poolname/imagename.
-
- This requires image format 2.
-
-:command:`resize` (-s | --size *size-in-M/G/T*) [--allow-shrink] *image-spec*
- Resize rbd image. The size parameter also needs to be specified.
- The --allow-shrink option lets the size be reduced.
-
-:command:`rm` *image-spec*
- Delete an rbd image (including all data blocks). If the image has
- snapshots, this fails and nothing is deleted.
-
-:command:`export` [--export-format *format (1 or 2)*] (*image-spec* | *snap-spec*) [*dest-path*]
- Export image to dest path (use - for stdout).
- The --export-format accepts '1' or '2' currently. Format 2 allow us to export not only the content
- of image, but also the snapshots and other properties, such as image_order, features.
-
-:command:`import` [--export-format *format (1 or 2)*] [--image-format *format-id*] [--object-size *size-in-B/K/M*] [--stripe-unit *size-in-B/K/M* --stripe-count *num*] [--image-feature *feature-name*]... [--image-shared] *src-path* [*image-spec*]
- Create a new image and imports its data from path (use - for
- stdin). The import operation will try to create sparse rbd images
- if possible. For import from stdin, the sparsification unit is
- the data block size of the destination image (object size).
-
- The --stripe-unit and --stripe-count arguments are optional, but must be
- used together.
-
- The --export-format accepts '1' or '2' currently. Format 2 allow us to import not only the content
- of image, but also the snapshots and other properties, such as image_order, features.
-
-:command:`export-diff` [--from-snap *snap-name*] [--whole-object] (*image-spec* | *snap-spec*) *dest-path*
- Export an incremental diff for an image to dest path (use - for stdout). If
- an initial snapshot is specified, only changes since that snapshot are included; otherwise,
- any regions of the image that contain data are included. The end snapshot is specified
- using the standard --snap option or @snap syntax (see below). The image diff format includes
- metadata about image size changes, and the start and end snapshots. It efficiently represents
- discarded or 'zero' regions of the image.
-
-:command:`merge-diff` *first-diff-path* *second-diff-path* *merged-diff-path*
- Merge two continuous incremental diffs of an image into one single diff. The
- first diff's end snapshot must be equal with the second diff's start snapshot.
- The first diff could be - for stdin, and merged diff could be - for stdout, which
- enables multiple diff files to be merged using something like
- 'rbd merge-diff first second - | rbd merge-diff - third result'. Note this command
- currently only support the source incremental diff with stripe_count == 1
-
-:command:`import-diff` *src-path* *image-spec*
- Import an incremental diff of an image and applies it to the current image. If the diff
- was generated relative to a start snapshot, we verify that snapshot already exists before
- continuing. If there was an end snapshot we verify it does not already exist before
- applying the changes, and create the snapshot when we are done.
-
-:command:`diff` [--from-snap *snap-name*] [--whole-object] *image-spec* | *snap-spec*
- Dump a list of byte extents in the image that have changed since the specified start
- snapshot, or since the image was created. Each output line includes the starting offset
- (in bytes), the length of the region (in bytes), and either 'zero' or 'data' to indicate
- whether the region is known to be zeros or may contain other data.
-
-:command:`cp` (*src-image-spec* | *src-snap-spec*) *dest-image-spec*
- Copy the content of a src-image into the newly created dest-image.
- dest-image will have the same size, object size, and image format as src-image.
-
-:command:`mv` *src-image-spec* *dest-image-spec*
- Rename an image. Note: rename across pools is not supported.
-
-:command:`image-meta list` *image-spec*
- Show metadata held on the image. The first column is the key
- and the second column is the value.
-
-:command:`image-meta get` *image-spec* *key*
- Get metadata value with the key.
-
-:command:`image-meta set` *image-spec* *key* *value*
- Set metadata key with the value. They will displayed in `image-meta list`.
-
-:command:`image-meta remove` *image-spec* *key*
- Remove metadata key with the value.
-
-:command:`object-map rebuild` *image-spec* | *snap-spec*
- Rebuild an invalid object map for the specified image. An image snapshot can be
- specified to rebuild an invalid object map for a snapshot.
-
-:command:`snap ls` *image-spec*
- Dump the list of snapshots inside a specific image.
-
-:command:`snap create` *snap-spec*
- Create a new snapshot. Requires the snapshot name parameter specified.
-
-:command:`snap rollback` *snap-spec*
- Rollback image content to snapshot. This will iterate through the entire blocks
- array and update the data head content to the snapshotted version.
-
-:command:`snap rm` [--force] *snap-spec*
- Remove the specified snapshot.
-
-:command:`snap purge` *image-spec*
- Remove all snapshots from an image.
-
-:command:`snap protect` *snap-spec*
- Protect a snapshot from deletion, so that clones can be made of it
- (see `rbd clone`). Snapshots must be protected before clones are made;
- protection implies that there exist dependent cloned children that
- refer to this snapshot. `rbd clone` will fail on a nonprotected
- snapshot.
-
- This requires image format 2.
-
-:command:`snap unprotect` *snap-spec*
- Unprotect a snapshot from deletion (undo `snap protect`). If cloned
- children remain, `snap unprotect` fails. (Note that clones may exist
- in different pools than the parent snapshot.)
-
- This requires image format 2.
-
-:command:`snap limit set` [--limit] *limit* *image-spec*
- Set a limit for the number of snapshots allowed on an image.
-
-:command:`snap limit clear` *image-spec*
- Remove any previously set limit on the number of snapshots allowed on
- an image.
-
-:command:`map` [-o | --options *krbd-options* ] [--read-only] *image-spec* | *snap-spec*
- Map the specified image to a block device via the rbd kernel module.
-
-:command:`unmap` [-o | --options *krbd-options* ] *image-spec* | *snap-spec* | *device-path*
- Unmap the block device that was mapped via the rbd kernel module.
-
-:command:`showmapped`
- Show the rbd images that are mapped via the rbd kernel module.
-
-:command:`nbd map` [--device *device-path*] [--read-only] *image-spec* | *snap-spec*
- Map the specified image to a block device via the rbd-nbd tool.
-
-:command:`nbd unmap` *device-path*
- Unmap the block device that was mapped via the rbd-nbd tool.
-
-:command:`nbd list`
- Show the list of used nbd devices via the rbd-nbd tool.
-
-:command:`status` *image-spec*
- Show the status of the image, including which clients have it open.
-
-:command:`feature disable` *image-spec* *feature-name*...
- Disable the specified feature on the specified image. Multiple features can
- be specified.
-
-:command:`feature enable` *image-spec* *feature-name*...
- Enable the specified feature on the specified image. Multiple features can
- be specified.
-
-:command:`lock list` *image-spec*
- Show locks held on the image. The first column is the locker
- to use with the `lock remove` command.
-
-:command:`lock add` [--shared *lock-tag*] *image-spec* *lock-id*
- Lock an image. The lock-id is an arbitrary name for the user's
- convenience. By default, this is an exclusive lock, meaning it
- will fail if the image is already locked. The --shared option
- changes this behavior. Note that locking does not affect
- any operation other than adding a lock. It does not
- protect an image from being deleted.
-
-:command:`lock remove` *image-spec* *lock-id* *locker*
- Release a lock on an image. The lock id and locker are
- as output by lock ls.
-
-:command:`bench` --io-type <read | write> [--io-size *size-in-B/K/M/G/T*] [--io-threads *num-ios-in-flight*] [--io-total *size-in-B/K/M/G/T*] [--io-pattern seq | rand] *image-spec*
- Generate a series of IOs to the image and measure the IO throughput and
- latency. If no suffix is given, unit B is assumed for both --io-size and
- --io-total. Defaults are: --io-size 4096, --io-threads 16, --io-total 1G,
- --io-pattern seq.
-
-:command:`trash ls` [*pool-name*]
- List all entries from trash.
-
-:command:`trash mv` *image-spec*
- Move an image to the trash. Images, even ones actively in-use by
- clones, can be moved to the trash and deleted at a later time.
-
-:command:`trash rm` *image-id*
- Delete an image from trash. If image deferment time has not expired
- you can not removed it unless use force. But an actively in-use by clones
- or has snapshots can not be removed.
-
-:command:`trash restore` *image-id*
- Restore an image from trash.
-
-Image and snap specs
-====================
-
-| *image-spec* is [*pool-name*]/*image-name*
-| *snap-spec* is [*pool-name*]/*image-name*\ @\ *snap-name*
-
-The default for *pool-name* is "rbd". If an image name contains a slash
-character ('/'), *pool-name* is required.
-
-You may specify each name individually, using --pool, --image and --snap
-options, but this is discouraged in favor of the above spec syntax.
-
-Striping
-========
-
-RBD images are striped over many objects, which are then stored by the
-Ceph distributed object store (RADOS). As a result, read and write
-requests for the image are distributed across many nodes in the
-cluster, generally preventing any single node from becoming a
-bottleneck when individual images get large or busy.
-
-The striping is controlled by three parameters:
-
-.. option:: object-size
-
- The size of objects we stripe over is a power of two. It will be rounded up the nearest power of two.
- The default object size is 4 MB, smallest is 4K and maximum is 32M.
-
-.. option:: stripe_unit
-
- Each [*stripe_unit*] contiguous bytes are stored adjacently in the same object, before we move on
- to the next object.
-
-.. option:: stripe_count
-
- After we write [*stripe_unit*] bytes to [*stripe_count*] objects, we loop back to the initial object
- and write another stripe, until the object reaches its maximum size. At that point,
- we move on to the next [*stripe_count*] objects.
-
-By default, [*stripe_unit*] is the same as the object size and [*stripe_count*] is 1. Specifying a different
-[*stripe_unit*] requires that the STRIPINGV2 feature be supported (added in Ceph v0.53) and format 2 images be
-used.
-
-
-Kernel rbd (krbd) options
-=========================
-
-Most of these options are useful mainly for debugging and benchmarking. The
-default values are set in the kernel and may therefore depend on the version of
-the running kernel.
-
-Per client instance `rbd map` options:
-
-* fsid=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee - FSID that should be assumed by
- the client.
-
-* ip=a.b.c.d[:p] - IP and, optionally, port the client should use.
-
-* share - Enable sharing of client instances with other mappings (default).
-
-* noshare - Disable sharing of client instances with other mappings.
-
-* crc - Enable CRC32C checksumming for data writes (default).
-
-* nocrc - Disable CRC32C checksumming for data writes.
-
-* cephx_require_signatures - Require cephx message signing (since 3.19,
- default).
-
-* nocephx_require_signatures - Don't require cephx message signing (since
- 3.19).
-
-* tcp_nodelay - Disable Nagle's algorithm on client sockets (since 4.0,
- default).
-
-* notcp_nodelay - Enable Nagle's algorithm on client sockets (since 4.0).
-
-* cephx_sign_messages - Enable message signing (since 4.4, default).
-
-* nocephx_sign_messages - Disable message signing (since 4.4).
-
-* mount_timeout=x - A timeout on various steps in `rbd map` and `rbd unmap`
- sequences (default is 60 seconds). In particular, since 4.2 this can be used
- to ensure that `rbd unmap` eventually times out when there is no network
- connection to a cluster.
-
-* osdkeepalive=x - OSD keepalive timeout (default is 5 seconds).
-
-* osd_idle_ttl=x - OSD idle TTL (default is 60 seconds).
-
-Per mapping (block device) `rbd map` options:
-
-* rw - Map the image read-write (default).
-
-* ro - Map the image read-only. Equivalent to --read-only.
-
-* queue_depth=x - queue depth (since 4.2, default is 128 requests).
-
-* lock_on_read - Acquire exclusive lock on reads, in addition to writes and
- discards (since 4.9).
-
-* exclusive - Disable automatic exclusive lock transitions (since 4.12).
-
-`rbd unmap` options:
-
-* force - Force the unmapping of a block device that is open (since 4.9). The
- driver will wait for running requests to complete and then unmap; requests
- sent to the driver after initiating the unmap will be failed.
-
-
-Examples
-========
-
-To create a new rbd image that is 100 GB::
-
- rbd create mypool/myimage --size 102400
-
-To use a non-default object size (8 MB)::
-
- rbd create mypool/myimage --size 102400 --object-size 8M
-
-To delete an rbd image (be careful!)::
-
- rbd rm mypool/myimage
-
-To create a new snapshot::
-
- rbd snap create mypool/myimage@mysnap
-
-To create a copy-on-write clone of a protected snapshot::
-
- rbd clone mypool/myimage@mysnap otherpool/cloneimage
-
-To see which clones of a snapshot exist::
-
- rbd children mypool/myimage@mysnap
-
-To delete a snapshot::
-
- rbd snap rm mypool/myimage@mysnap
-
-To map an image via the kernel with cephx enabled::
-
- rbd map mypool/myimage --id admin --keyfile secretfile
-
-To map an image via the kernel with different cluster name other than default *ceph*::
-
- rbd map mypool/myimage --cluster cluster-name
-
-To unmap an image::
-
- rbd unmap /dev/rbd0
-
-To create an image and a clone from it::
-
- rbd import --image-format 2 image mypool/parent
- rbd snap create mypool/parent@snap
- rbd snap protect mypool/parent@snap
- rbd clone mypool/parent@snap otherpool/child
-
-To create an image with a smaller stripe_unit (to better distribute small writes in some workloads)::
-
- rbd create mypool/myimage --size 102400 --stripe-unit 65536B --stripe-count 16
-
-To change an image from one image format to another, export it and then
-import it as the desired image format::
-
- rbd export mypool/myimage@snap /tmp/img
- rbd import --image-format 2 /tmp/img mypool/myimage2
-
-To lock an image for exclusive use::
-
- rbd lock add mypool/myimage mylockid
-
-To release a lock::
-
- rbd lock remove mypool/myimage mylockid client.2485
-
-To list images from trash::
-
- rbd trash ls mypool
-
-To defer delete an image (use *--delay* to set delay-time, default is 0)::
-
- rbd trash mv mypool/myimage
-
-To delete an image from trash (be careful!)::
-
- rbd trash rm mypool/myimage-id
-
-To force delete an image from trash (be careful!)::
-
- rbd trash rm mypool/myimage-id --force
-
-To restore an image from trash::
-
- rbd trash restore mypool/myimage-id
-
-To restore an image from trash and rename it::
-
- rbd trash restore mypool/myimage-id --image mynewimage
-
-
-Availability
-============
-
-**rbd** is part of Ceph, a massively scalable, open-source, distributed storage system. Please refer to
-the Ceph documentation at http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`ceph <ceph>`\(8),
-:doc:`rados <rados>`\(8)
diff --git a/src/ceph/doc/man/8/rbdmap.rst b/src/ceph/doc/man/8/rbdmap.rst
deleted file mode 100644
index ba8001f..0000000
--- a/src/ceph/doc/man/8/rbdmap.rst
+++ /dev/null
@@ -1,123 +0,0 @@
-:orphan:
-
-=========================================
- rbdmap -- map RBD devices at boot time
-=========================================
-
-.. program:: rbdmap
-
-Synopsis
-========
-
-| **rbdmap map**
-| **rbdmap unmap**
-
-
-Description
-===========
-
-**rbdmap** is a shell script that automates ``rbd map`` and ``rbd unmap``
-operations on one or more RBD (RADOS Block Device) images. While the script can be
-run manually by the system administrator at any time, the principal use case is
-automatic mapping/mounting of RBD images at boot time (and unmounting/unmapping
-at shutdown), as triggered by the init system (a systemd unit file,
-``rbdmap.service`` is included with the ceph-common package for this purpose).
-
-The script takes a single argument, which can be either "map" or "unmap".
-In either case, the script parses a configuration file (defaults to ``/etc/ceph/rbdmap``,
-but can be overridden via an environment variable ``RBDMAPFILE``). Each line
-of the configuration file corresponds to an RBD image which is to be mapped, or
-unmapped.
-
-The configuration file format is::
-
- IMAGESPEC RBDOPTS
-
-where ``IMAGESPEC`` should be specified as ``POOLNAME/IMAGENAME`` (the pool
-name, a forward slash, and the image name), or merely ``IMAGENAME``, in which
-case the ``POOLNAME`` defaults to "rbd". ``RBDOPTS`` is an optional list of
-parameters to be passed to the underlying ``rbd map`` command. These parameters
-and their values should be specified as a comma-separated string::
-
- PARAM1=VAL1,PARAM2=VAL2,...,PARAMN=VALN
-
-This will cause the script to issue an ``rbd map`` command like the following::
-
- rbd map POOLNAME/IMAGENAME --PARAM1 VAL1 --PARAM2 VAL2
-
-(See the ``rbd`` manpage for a full list of possible options.)
-
-When run as ``rbdmap map``, the script parses the configuration file, and for
-each RBD image specified attempts to first map the image (using the ``rbd map``
-command) and, second, to mount the image.
-
-When run as ``rbdmap unmap``, images listed in the configuration file will
-be unmounted and unmapped.
-
-``rbdmap unmap-all`` attempts to unmount and subsequently unmap all currently
-mapped RBD images, regardless of whether or not they are listed in the
-configuration file.
-
-If successful, the ``rbd map`` operation maps the image to a ``/dev/rbdX``
-device, at which point a udev rule is triggered to create a friendly device
-name symlink, ``/dev/rbd/POOLNAME/IMAGENAME``, pointing to the real mapped
-device.
-
-In order for mounting/unmounting to succeed, the friendly device name must
-have a corresponding entry in ``/etc/fstab``.
-
-When writing ``/etc/fstab`` entries for RBD images, it's a good idea to specify
-the "noauto" (or "nofail") mount option. This prevents the init system from
-trying to mount the device too early - before the device in question even
-exists. (Since ``rbdmap.service``
-executes a shell script, it is typically triggered quite late in the boot
-sequence.)
-
-
-Examples
-========
-
-Example ``/etc/ceph/rbdmap`` for two RBD images called "bar1" and "bar2", both
-in pool "foopool"::
-
- foopool/bar1 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring
- foopool/bar2 id=admin,keyring=/etc/ceph/ceph.client.admin.keyring
-
-Each line in the file contains two strings: the image spec and the options to
-be passed to ``rbd map``. These two lines get transformed into the following
-commands::
-
- rbd map foopool/bar1 --id admin --keyring /etc/ceph/ceph.client.admin.keyring
- rbd map foopool/bar2 --id admin --keyring /etc/ceph/ceph.client.admin.keyring
-
-If the images had XFS filesystems on them, the corresponding ``/etc/fstab``
-entries might look like this::
-
- /dev/rbd/foopool/bar1 /mnt/bar1 xfs noauto 0 0
- /dev/rbd/foopool/bar2 /mnt/bar2 xfs noauto 0 0
-
-After creating the images and populating the ``/etc/ceph/rbdmap`` file, making
-the images get automatically mapped and mounted at boot is just a matter of
-enabling that unit::
-
- systemctl enable rbdmap.service
-
-
-Options
-=======
-
-None
-
-
-Availability
-============
-
-**rbdmap** is part of Ceph, a massively scalable, open-source, distributed
-storage system. Please refer to the Ceph documentation at
-http://ceph.com/docs for more information.
-
-
-See also
-========
-
-:doc:`rbd <rbd>`\(8),
diff --git a/src/ceph/doc/man/CMakeLists.txt b/src/ceph/doc/man/CMakeLists.txt
deleted file mode 100644
index e81631b..0000000
--- a/src/ceph/doc/man/CMakeLists.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-set(sphinx_input)
-set(sphinx_output)
-set(sphinx_output_dir ${CMAKE_BINARY_DIR}/doc/man)
-
-add_subdirectory(8)
-
-add_custom_command(
- OUTPUT ${sphinx_output}
- COMMAND ${SPHINX_BUILD} -b man -t man -d ${CMAKE_BINARY_DIR}/doc/doctrees -c ${CMAKE_SOURCE_DIR}/man ${CMAKE_CURRENT_SOURCE_DIR} ${sphinx_output_dir}
- DEPENDS ${sphinx_input})
-
-add_custom_target(
- manpages ALL
- DEPENDS ${sphinx_output}
- COMMENT "manpages building")
diff --git a/src/ceph/doc/mgr/administrator.rst b/src/ceph/doc/mgr/administrator.rst
deleted file mode 100644
index 11daf3e..0000000
--- a/src/ceph/doc/mgr/administrator.rst
+++ /dev/null
@@ -1,159 +0,0 @@
-.. _mgr-administrator-guide:
-
-ceph-mgr administrator's guide
-==============================
-
-Manual setup
-------------
-
-Usually, you would set up a ceph-mgr daemon using a tool such
-as ceph-ansible. These instructions describe how to set up
-a ceph-mgr daemon manually.
-
-First, create an authentication key for your daemon::
-
- ceph auth get-or-create mgr.$name mon 'allow profile mgr' osd 'allow *' mds 'allow *'
-
-Place that key into ``mgr data`` path, which for a cluster "ceph"
-and mgr $name "foo" would be ``/var/lib/ceph/mgr/ceph-foo``.
-
-Start the ceph-mgr daemon::
-
- ceph-mgr -i $name
-
-Check that the mgr has come up by looking at the output
-of ``ceph status``, which should now include a mgr status line::
-
- mgr active: $name
-
-Client authentication
----------------------
-
-The manager is a new daemon which requires new CephX capabilities. If you upgrade
-a cluster from an old version of Ceph, or use the default install/deploy tools,
-your admin client should get this capability automatically. If you use tooling from
-elsewhere, you may get EACCES errors when invoking certain ceph cluster commands.
-To fix that, add a "mgr allow \*" stanza to your client's cephx capabilities by
-`Modifying User Capabilities`_.
-
-High availability
------------------
-
-In general, you should set up a ceph-mgr on each of the hosts
-running a ceph-mon daemon to achieve the same level of availability.
-
-By default, whichever ceph-mgr instance comes up first will be made
-active by the monitors, and the others will be standbys. There is
-no requirement for quorum among the ceph-mgr daemons.
-
-If the active daemon fails to send a beacon to the monitors for
-more than ``mon mgr beacon grace`` (default 30s), then it will be replaced
-by a standby.
-
-If you want to pre-empt failover, you can explicitly mark a ceph-mgr
-daemon as failed using ``ceph mgr fail <mgr name>``.
-
-Using modules
--------------
-
-Use the command ``ceph mgr module ls`` to see which modules are
-available, and which are currently enabled. Enable or disable modules
-using the commands ``ceph mgr module enable <module>`` and
-``ceph mgr module disable <module>`` respectively.
-
-If a module is *enabled* then the active ceph-mgr daemon will load
-and execute it. In the case of modules that provide a service,
-such as an HTTP server, the module may publish its address when it
-is loaded. To see the addresses of such modules, use the command
-``ceph mgr services``.
-
-Some modules may also implement a special standby mode which runs on
-standby ceph-mgr daemons as well as the active daemon. This enables
-modules that provide services to redirect their clients to the active
-daemon, if the client tries to connect to a standby.
-
-Consult the documentation pages for individual manager modules for more
-information about what functionality each module provides.
-
-Here is an example of enabling the ``dashboard`` module:
-
-::
-
- $ ceph mgr module ls
- {
- "enabled_modules": [
- "restful",
- "status"
- ],
- "disabled_modules": [
- "dashboard"
- ]
- }
-
- $ ceph mgr module enable dashboard
- $ ceph mgr module ls
- {
- "enabled_modules": [
- "restful",
- "status",
- "dashboard"
- ],
- "disabled_modules": [
- ]
- }
-
- $ ceph mgr services
- {
- "dashboard": "http://myserver.com:7789/",
- "restful": "https://myserver.com:8789/"
- }
-
-
-Calling module commands
------------------------
-
-Where a module implements command line hooks, the commands will
-be accessible as ordinary Ceph commands::
-
- ceph <command | help>
-
-If you would like to see the list of commands handled by the
-manager (where normal ``ceph help`` would show all mon and mgr commands),
-you can send a command directly to the manager daemon::
-
- ceph tell mgr help
-
-Note that it is not necessary to address a particular mgr instance,
-simply ``mgr`` will pick the current active daemon.
-
-Configuration
--------------
-
-OPTION(mgr_module_path, OPT_STR, CEPH_PKGLIBDIR "/mgr") // where to load python modules from
-
-``mgr module path``
-
-:Description: Path to load modules from
-:Type: String
-:Default: ``"<library dir>/mgr"``
-
-``mgr data``
-
-:Description: Path to load daemon data (such as keyring)
-:Type: String
-:Default: ``"/var/lib/ceph/mgr/$cluster-$id"``
-
-``mgr tick period``
-
-:Description: How many seconds between mgr beacons to monitors, and other
- periodic checks.
-:Type: Integer
-:Default: ``5``
-
-``mon mgr beacon grace``
-
-:Description: How long after last beacon should a mgr be considered failed
-:Type: Integer
-:Default: ``30``
-
-.. _Modifying User Capabilities: ../../rados/operations/user-management/#modify-user-capabilities
diff --git a/src/ceph/doc/mgr/dashboard.rst b/src/ceph/doc/mgr/dashboard.rst
deleted file mode 100644
index 4c2116b..0000000
--- a/src/ceph/doc/mgr/dashboard.rst
+++ /dev/null
@@ -1,59 +0,0 @@
-dashboard plugin
-================
-
-Dashboard plugin visualizes the statistics of the cluster using a web server
-hosted by ``ceph-mgr``.
-
-Enabling
---------
-
-The *dashboard* module is enabled with::
-
- ceph mgr module enable dashboard
-
-Configuration
--------------
-
-Like most web applications, dashboard binds to a host name and port.
-By default, the ``ceph-mgr`` daemon hosting the dashboard (i.e., the
-currently active manager) will bind to port 7000 and any available
-IPv4 or IPv6 address on the host.
-
-Since each ``ceph-mgr`` hosts its own instance of dashboard, it may
-also be necessary to configure them separately. The hostname and port
-can be changed via the configuration key facility::
-
- ceph config-key set mgr/dashboard/$name/server_addr $IP
- ceph config-key set mgr/dashboard/$name/server_port $PORT
-
-where ``$name`` is the ID of the ceph-mgr who is hosting this
-dashboard web app.
-
-These settings can also be configured cluster-wide and not manager
-specific. For example,::
-
- ceph config-key set mgr/dashboard/server_addr $IP
- ceph config-key set mgr/dashboard/server_port $PORT
-
-If the port is not configured, the web app will bind to port ``7000``.
-If the address it not configured, the web app will bind to ``::``,
-which corresponds to all available IPv4 and IPv6 addresses.
-
-You can configure a prefix for all URLs::
-
- ceph config-key set mgr/dashboard/url_prefix $PREFIX
-
-so you can access the dashboard at ``http://$IP:$PORT/$PREFIX/``.
-
-
-Load balancer
--------------
-
-Please note that the dashboard will *only* start on the manager which
-is active at that moment. Query the Ceph cluster status to see which
-manager is active (e.g., ``ceph mgr dump``). In order to make the
-dashboard available via a consistent URL regardless of which manager
-daemon is currently active, you may want to set up a load balancer
-front-end to direct traffic to whichever manager endpoint is
-available. If you use a reverse http proxy that forwards a subpath to
-the dashboard, you need to configure ``url_prefix`` (see above).
diff --git a/src/ceph/doc/mgr/index.rst b/src/ceph/doc/mgr/index.rst
deleted file mode 100644
index 53844ba..0000000
--- a/src/ceph/doc/mgr/index.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-===================
-Ceph Manager Daemon
-===================
-
-The :term:`Ceph Manager` daemon (ceph-mgr) runs alongside monitor daemons,
-to provide additional monitoring and interfaces to external monitoring
-and management systems.
-
-Since the 12.x (*luminous*) Ceph release, the ceph-mgr daemon is required for
-normal operations. The ceph-mgr daemon is an optional component in
-the 11.x (*kraken*) Ceph release.
-
-By default, the manager daemon requires no additional configuration, beyond
-ensuring it is running. If there is no mgr daemon running, you will
-see a health warning to that effect, and some of the other information
-in the output of `ceph status` will be missing or stale until a mgr is started.
-
-Use your normal deployment tools, such as ceph-ansible or ceph-deploy, to
-set up ceph-mgr daemons on each of your mon nodes. It is not mandatory
-to place mgr daemons on the same nodes as mons, but it is almost always
-sensible.
-
-.. toctree::
- :maxdepth: 1
-
- Installation and Configuration <administrator>
- Writing plugins <plugins>
- Dashboard plugin <dashboard>
- Local pool plugin <localpool>
- RESTful plugin <restful>
- Zabbix plugin <zabbix>
- Prometheus plugin <prometheus>
- Influx plugin <influx>
-
diff --git a/src/ceph/doc/mgr/influx.rst b/src/ceph/doc/mgr/influx.rst
deleted file mode 100644
index 37aa5cd..0000000
--- a/src/ceph/doc/mgr/influx.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-=============
-Influx Plugin
-=============
-
-The influx plugin continuously collects and sends time series data to an
-influxdb database.
-
-The influx plugin was introduced in the 13.x *Mimic* release.
-
---------
-Enabling
---------
-
-To enable the module, use the following command:
-
-::
-
- ceph mgr module enable influx
-
-If you wish to subsequently disable the module, you can use the equivalent
-*disable* command:
-
-::
-
- ceph mgr module disable influx
-
--------------
-Configuration
--------------
-
-For the influx module to send statistics to an InfluxDB server, it
-is necessary to configure the servers address and some authentication
-credentials.
-
-Set configuration values using the following command:
-
-::
-
- ceph config-key set mgr/influx/<key> <value>
-
-
-The most important settings are ``hostname``, ``username`` and ``password``.
-For example, a typical configuration might look like this:
-
-::
-
- ceph config-key set mgr/influx/hostname influx.mydomain.com
- ceph config-key set mgr/influx/username admin123
- ceph config-key set mgr/influx/password p4ssw0rd
-
-Additional optional configuration settings are:
-
-:interval: Time between reports to InfluxDB. Default 5 seconds.
-:database: InfluxDB database name. Default "ceph". You will need to create this database and grant write privileges to the configured username or the username must have admin privileges to create it.
-:port: InfluxDB server port. Default 8086
-
-
----------
-Debugging
----------
-
-By default, a few debugging statments as well as error statements have been set to print in the log files. Users can add more if necessary.
-To make use of the debugging option in the module:
-
-- Add this to the ceph.conf file.::
-
- [mgr]
- debug_mgr = 20
-
-- Use this command ``ceph tell mgr.<mymonitor> influx self-test``.
-- Check the log files. Users may find it easier to filter the log files using *mgr[influx]*.
-
---------------------
-Interesting counters
---------------------
-
-The following tables describe a subset of the values output by
-this module.
-
-^^^^^
-Pools
-^^^^^
-
-+---------------+-----------------------------------------------------+
-|Counter | Description |
-+===============+=====================================================+
-|bytes_used | Bytes used in the pool not including copies |
-+---------------+-----------------------------------------------------+
-|max_avail | Max available number of bytes in the pool |
-+---------------+-----------------------------------------------------+
-|objects | Number of objects in the pool |
-+---------------+-----------------------------------------------------+
-|wr_bytes | Number of bytes written in the pool |
-+---------------+-----------------------------------------------------+
-|dirty | Number of bytes dirty in the pool |
-+---------------+-----------------------------------------------------+
-|rd_bytes | Number of bytes read in the pool |
-+---------------+-----------------------------------------------------+
-|raw_bytes_used | Bytes used in pool including copies made |
-+---------------+-----------------------------------------------------+
-
-^^^^
-OSDs
-^^^^
-
-+------------+------------------------------------+
-|Counter | Description |
-+============+====================================+
-|op_w | Client write operations |
-+------------+------------------------------------+
-|op_in_bytes | Client operations total write size |
-+------------+------------------------------------+
-|op_r | Client read operations |
-+------------+------------------------------------+
-|op_out_bytes| Client operations total read size |
-+------------+------------------------------------+
-
-
-+------------------------+--------------------------------------------------------------------------+
-|Counter | Description |
-+========================+==========================================================================+
-|op_wip | Replication operations currently being processed (primary) |
-+------------------------+--------------------------------------------------------------------------+
-|op_latency | Latency of client operations (including queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_process_latency | Latency of client operations (excluding queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_prepare_latency | Latency of client operations (excluding queue time and wait for finished)|
-+------------------------+--------------------------------------------------------------------------+
-|op_r_latency | Latency of read operation (including queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_r_process_latency | Latency of read operation (excluding queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_w_in_bytes | Client data written |
-+------------------------+--------------------------------------------------------------------------+
-|op_w_latency | Latency of write operation (including queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_w_process_latency | Latency of write operation (excluding queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_w_prepare_latency | Latency of write operations (excluding queue time and wait for finished) |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw | Client read-modify-write operations |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw_in_bytes | Client read-modify-write operations write in |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw_out_bytes | Client read-modify-write operations read out |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw_latency | Latency of read-modify-write operation (including queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw_process_latency | Latency of read-modify-write operation (excluding queue time) |
-+------------------------+--------------------------------------------------------------------------+
-|op_rw_prepare_latency | Latency of read-modify-write operations (excluding queue time |
-| | and wait for finished) |
-+------------------------+--------------------------------------------------------------------------+
-|op_before_queue_op_lat | Latency of IO before calling queue (before really queue into ShardedOpWq)|
-| | op_before_dequeue_op_lat |
-+------------------------+--------------------------------------------------------------------------+
-|op_before_dequeue_op_lat| Latency of IO before calling dequeue_op(already dequeued and get PG lock)|
-+------------------------+--------------------------------------------------------------------------+
-
-Latency counters are measured in microseconds unless otherwise specified in the description.
-
diff --git a/src/ceph/doc/mgr/localpool.rst b/src/ceph/doc/mgr/localpool.rst
deleted file mode 100644
index 5779b7c..0000000
--- a/src/ceph/doc/mgr/localpool.rst
+++ /dev/null
@@ -1,35 +0,0 @@
-Local pool plugin
-=================
-
-The *localpool* plugin can automatically create RADOS pools that are
-localized to a subset of the overall cluster. For example, by default, it will
-create a pool for each distinct rack in the cluster. This can be useful for some
-deployments that want to distribute some data locally as well as globally across the cluster .
-
-Enabling
---------
-
-The *localpool* module is enabled with::
-
- ceph mgr module enable localpool
-
-Configuring
------------
-
-The *localpool* module understands the following options:
-
-* **subtree** (default: `rack`): which CRUSH subtree type the module
- should create a pool for.
-* **failure_domain** (default: `host`): what failure domain we should
- separate data replicas across.
-* **pg_num** (default: `128`): number of PGs to create for each pool
-* **num_rep** (default: `3`): number of replicas for each pool.
- (Currently, pools are always replicated.)
-* **min_size** (default: none): value to set min_size to (unchanged from Ceph's default if this option is not set)
-* **prefix** (default: `by-$subtreetype-`): prefix for the pool name.
-
-These options are set via the config-key interface. For example, to
-change the replication level to 2x with only 64 PGs, ::
-
- ceph config-key set mgr/localpool/num_rep 2
- ceph config-key set mgr/localpool/pg_num 64
diff --git a/src/ceph/doc/mgr/plugins.rst b/src/ceph/doc/mgr/plugins.rst
deleted file mode 100644
index a75c14c..0000000
--- a/src/ceph/doc/mgr/plugins.rst
+++ /dev/null
@@ -1,215 +0,0 @@
-
-ceph-mgr plugin author guide
-============================
-
-Creating a plugin
------------------
-
-In pybind/mgr/, create a python module. Within your module, create a class
-named ``Module`` that inherits from ``MgrModule``.
-
-The most important methods to override are:
-
-* a ``serve`` member function for server-type modules. This
- function should block forever.
-* a ``notify`` member function if your module needs to
- take action when new cluster data is available.
-* a ``handle_command`` member function if your module
- exposes CLI commands.
-
-Installing a plugin
--------------------
-
-Once your module is present in the location set by the
-``mgr module path`` configuration setting, you can enable it
-via the ``ceph mgr module enable`` command::
-
- ceph mgr module enable mymodule
-
-Note that the MgrModule interface is not stable, so any modules maintained
-outside of the Ceph tree are liable to break when run against any newer
-or older versions of Ceph.
-
-Logging
--------
-
-MgrModule instances have a ``log`` property which is a logger instance that
-sends log messages into the Ceph logging layer where they will be recorded
-in the mgr daemon's log file.
-
-Use it the same way you would any other python logger. The python
-log levels debug, info, warn, err are mapped into the Ceph
-severities 20, 4, 1 and 0 respectively.
-
-Exposing commands
------------------
-
-Set the ``COMMANDS`` class attribute of your plugin to a list of dicts
-like this::
-
- COMMANDS = [
- {
- "cmd": "foobar name=myarg,type=CephString",
- "desc": "Do something awesome",
- "perm": "rw"
- }
- ]
-
-The ``cmd`` part of each entry is parsed in the same way as internal
-Ceph mon and admin socket commands (see mon/MonCommands.h in
-the Ceph source for examples)
-
-Config settings
----------------
-
-Modules have access to a simple key/value store (keys and values are
-byte strings) for storing configuration. Don't use this for
-storing large amounts of data.
-
-Config values are stored using the mon's config-key commands.
-
-Hints for using these:
-
-* Reads are fast: ceph-mgr keeps a local in-memory copy
-* Don't set things by hand with "ceph config-key", the mgr doesn't update
- at runtime (only set things from within modules).
-* Writes block until the value is persisted, but reads from another
- thread will see the new value immediately.
-
-Any config settings you want to expose to users from your module will
-need corresponding hooks in ``COMMANDS`` to expose a setter.
-
-Accessing cluster data
-----------------------
-
-Modules have access to the in-memory copies of the Ceph cluster's
-state that the mgr maintains. Accessor functions as exposed
-as members of MgrModule.
-
-Calls that access the cluster or daemon state are generally going
-from Python into native C++ routines. There is some overhead to this,
-but much less than for example calling into a REST API or calling into
-an SQL database.
-
-There are no consistency rules about access to cluster structures or
-daemon metadata. For example, an OSD might exist in OSDMap but
-have no metadata, or vice versa. On a healthy cluster these
-will be very rare transient states, but plugins should be written
-to cope with the possibility.
-
-``get(self, data_name)``
-
-Fetch named cluster-wide objects such as the OSDMap. Valid things
-to fetch are osd_crush_map_text, osd_map, osd_map_tree,
-osd_map_crush, config, mon_map, fs_map, osd_metadata, pg_summary,
-df, osd_stats, health, mon_status.
-
-All these structures have their own JSON representations: experiment
-or look at the C++ dump() methods to learn about them.
-
-``get_server(self, hostname)``
-
-Fetch metadata about a particular hostname. This is information
-that ceph-mgr has gleaned from the daemon metadata reported
-by daemons running on a particular server.
-
-``list_servers(self)``
-
-Like ``get_server``, but gives information about all servers (i.e. all
-unique hostnames that have been mentioned in daemon metadata)
-
-``get_metadata(self, svc_type, svc_id)``
-
-Fetch the daemon metadata for a particular service. svc_type is one
-of osd or mds, and svc_id is a string (convert OSD integer IDs to strings
-when calling this).
-
-``get_counter(self, svc_type, svc_name, path)``
-
-Fetch the latest performance counter data for a particular counter. The
-path is a period-separated concatenation of the subsystem and the counter
-name, for example "mds.inodes".
-
-A list of two-tuples of (timestamp, value) is returned. This may be
-empty if no data is available.
-
-Sending commands
-----------------
-
-A non-blocking facility is provided for sending monitor commands
-to the cluster.
-
-``send_command(self, result, command_str, tag)``
-
-The ``result`` parameter should be an instance of the CommandResult
-class, defined in the same module as MgrModule. This acts as a
-completion and stores the output of the command. Use CommandResult.wait()
-if you want to block on completion.
-
-The ``command_str`` parameter is a JSON-serialized command. This
-uses the same format as the ceph command line, which is a dictionary
-of command arguments, with the extra ``prefix`` key containing the
-command name itself. Consult MonCommands.h for available commands
-and their expected arguments.
-
-The ``tag`` parameter is used for nonblocking operation: when
-a command completes, the ``notify()`` callback on the MgrModule
-instance is triggered, with notify_type set to "command", and
-notify_id set to the tag of the command.
-
-Implementing standby mode
--------------------------
-
-For some modules, it is useful to run on standby manager daemons as well
-as on the active daemon. For example, an HTTP server can usefully
-serve HTTP redirect responses from the standby managers so that
-the user can point his browser at any of the manager daemons without
-having to worry about which one is active.
-
-Standby manager daemons look for a class called ``StandbyModule``
-in each module. If the class is not found then the module is not
-used at all on standby daemons. If the class is found, then
-its ``serve`` method is called. Implementations of ``StandbyModule``
-must inherit from ``mgr_module.MgrStandbyModule``.
-
-The interface of ``MgrStandbyModule`` is much restricted compared to
-``MgrModule`` -- none of the Ceph cluster state is available to
-the module. ``serve`` and ``shutdown`` methods are used in the same
-way as a normal module class. The ``get_active_uri`` method enables
-the standby module to discover the address of its active peer in
-order to make redirects. See the ``MgrStandbyModule`` definition
-in the Ceph source code for the full list of methods.
-
-For an example of how to use this interface, look at the source code
-of the ``dashboard`` module.
-
-Logging
--------
-
-Use your module's ``log`` attribute as your logger. This is a logger
-configured to output via the ceph logging framework, to the local ceph-mgr
-log files.
-
-Python log severities are mapped to ceph severities as follows:
-
-* DEBUG is 20
-* INFO is 4
-* WARN is 1
-* ERR is 0
-
-Shutting down cleanly
----------------------
-
-If a module implements the ``serve()`` method, it should also implement
-the ``shutdown()`` method to shutdown cleanly: misbehaving modules
-may otherwise prevent clean shutdown of ceph-mgr.
-
-Is something missing?
----------------------
-
-The ceph-mgr python interface is not set in stone. If you have a need
-that is not satisfied by the current interface, please bring it up
-on the ceph-devel mailing list. While it is desired to avoid bloating
-the interface, it is not generally very hard to expose existing data
-to the Python code when there is a good reason.
-
diff --git a/src/ceph/doc/mgr/prometheus.rst b/src/ceph/doc/mgr/prometheus.rst
deleted file mode 100644
index 5bae6a9..0000000
--- a/src/ceph/doc/mgr/prometheus.rst
+++ /dev/null
@@ -1,219 +0,0 @@
-=================
-Prometheus plugin
-=================
-
-Provides a Prometheus exporter to pass on Ceph performance counters
-from the collection point in ceph-mgr. Ceph-mgr receives MMgrReport
-messages from all MgrClient processes (mons and OSDs, for instance)
-with performance counter schema data and actual counter data, and keeps
-a circular buffer of the last N samples. This plugin creates an HTTP
-endpoint (like all Prometheus exporters) and retrieves the latest sample
-of every counter when polled (or "scraped" in Prometheus terminology).
-The HTTP path and query parameters are ignored; all extant counters
-for all reporting entities are returned in text exposition format.
-(See the Prometheus `documentation <https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-details>`_.)
-
-Enabling prometheus output
-==========================
-
-The *prometheus* module is enabled with::
-
- ceph mgr module enable prometheus
-
-Configuration
--------------
-
-By default the module will accept HTTP requests on port ``9283`` on all
-IPv4 and IPv6 addresses on the host. The port and listen address are both
-configurable with ``ceph config-key set``, with keys
-``mgr/prometheus/server_addr`` and ``mgr/prometheus/server_port``.
-This port is registered with Prometheus's `registry <https://github.com/prometheus/prometheus/wiki/Default-port-allocations>`_.
-
-Statistic names and labels
-==========================
-
-The names of the stats are exactly as Ceph names them, with
-illegal characters ``.``, ``-`` and ``::`` translated to ``_``,
-and ``ceph_`` prefixed to all names.
-
-
-All *daemon* statistics have a ``ceph_daemon`` label such as "osd.123"
-that identifies the type and ID of the daemon they come from. Some
-statistics can come from different types of daemon, so when querying
-e.g. an OSD's RocksDB stats, you would probably want to filter
-on ceph_daemon starting with "osd" to avoid mixing in the monitor
-rocksdb stats.
-
-
-The *cluster* statistics (i.e. those global to the Ceph cluster)
-have labels appropriate to what they report on. For example,
-metrics relating to pools have a ``pool_id`` label.
-
-Pool and OSD metadata series
-----------------------------
-
-Special series are output to enable displaying and querying on
-certain metadata fields.
-
-Pools have a ``ceph_pool_metadata`` field like this:
-
-::
-
- ceph_pool_metadata{pool_id="2",name="cephfs_metadata_a"} 0.0
-
-OSDs have a ``ceph_osd_metadata`` field like this:
-
-::
-
- ceph_osd_metadata{cluster_addr="172.21.9.34:6802/19096",device_class="ssd",id="0",public_addr="172.21.9.34:6801/19096",weight="1.0"} 0.0
-
-
-Correlating drive statistics with node_exporter
------------------------------------------------
-
-The prometheus output from Ceph is designed to be used in conjunction
-with the generic host monitoring from the Prometheus node_exporter.
-
-To enable correlation of Ceph OSD statistics with node_exporter's
-drive statistics, special series are output like this:
-
-::
-
- ceph_disk_occupation{ceph_daemon="osd.0",device="sdd",instance="myhost",job="ceph"}
-
-To use this to get disk statistics by OSD ID, use the ``and on`` syntax
-in your prometheus query like this:
-
-::
-
- rate(node_disk_bytes_written[30s]) and on (device,instance) ceph_disk_occupation{ceph_daemon="osd.0"}
-
-See the prometheus documentation for more information about constructing
-queries.
-
-Note that for this mechanism to work, Ceph and node_exporter must agree
-about the values of the ``instance`` label. See the following section
-for guidance about to to set up Prometheus in a way that sets
-``instance`` properly.
-
-Configuring Prometheus server
-=============================
-
-See the prometheus documentation for full details of how to add
-scrape endpoints: the notes
-in this section are tips on how to configure Prometheus to capture
-the Ceph statistics in the most usefully-labelled form.
-
-This configuration is necessary because Ceph is reporting metrics
-from many hosts and services via a single endpoint, and some
-metrics that relate to no physical host (such as pool statistics).
-
-honor_labels
-------------
-
-To enable Ceph to output properly-labelled data relating to any host,
-use the ``honor_labels`` setting when adding the ceph-mgr endpoints
-to your prometheus configuration.
-
-Without this setting, any ``instance`` labels that Ceph outputs, such
-as those in ``ceph_disk_occupation`` series, will be overridden
-by Prometheus.
-
-Ceph instance label
--------------------
-
-By default, Prometheus applies an ``instance`` label that includes
-the hostname and port of the endpoint that the series game from. Because
-Ceph clusters have multiple manager daemons, this results in an ``instance``
-label that changes spuriously when the active manager daemon changes.
-
-Set a custom ``instance`` label in your Prometheus target configuration:
-you might wish to set it to the hostname of your first monitor, or something
-completely arbitrary like "ceph_cluster".
-
-node_exporter instance labels
------------------------------
-
-Set your ``instance`` labels to match what appears in Ceph's OSD metadata
-in the ``hostname`` field. This is generally the short hostname of the node.
-
-This is only necessary if you want to correlate Ceph stats with host stats,
-but you may find it useful to do it in all cases in case you want to do
-the correlation in the future.
-
-Example configuration
----------------------
-
-This example shows a single node configuration running ceph-mgr and
-node_exporter on a server called ``senta04``.
-
-This is just an example: there are other ways to configure prometheus
-scrape targets and label rewrite rules.
-
-prometheus.yml
-~~~~~~~~~~~~~~
-
-::
-
- global:
- scrape_interval: 15s
- evaluation_interval: 15s
-
- scrape_configs:
- - job_name: 'node'
- file_sd_configs:
- - files:
- - node_targets.yml
- - job_name: 'ceph'
- honor_labels: true
- file_sd_configs:
- - files:
- - ceph_targets.yml
-
-
-ceph_targets.yml
-~~~~~~~~~~~~~~~~
-
-
-::
-
- [
- {
- "targets": [ "senta04.mydomain.com:9283" ],
- "labels": {
- "instance": "ceph_cluster"
- }
- }
- ]
-
-
-node_targets.yml
-~~~~~~~~~~~~~~~~
-
-::
-
- [
- {
- "targets": [ "senta04.mydomain.com:9100" ],
- "labels": {
- "instance": "senta04"
- }
- }
- ]
-
-
-Notes
-=====
-
-Counters and gauges are exported; currently histograms and long-running
-averages are not. It's possible that Ceph's 2-D histograms could be
-reduced to two separate 1-D histograms, and that long-running averages
-could be exported as Prometheus' Summary type.
-
-Timestamps, as with many Prometheus exporters, are established by
-the server's scrape time (Prometheus expects that it is polling the
-actual counter process synchronously). It is possible to supply a
-timestamp along with the stat report, but the Prometheus team strongly
-advises against this. This means that timestamps will be delayed by
-an unpredictable amount; it's not clear if this will be problematic,
-but it's worth knowing about.
diff --git a/src/ceph/doc/mgr/restful.rst b/src/ceph/doc/mgr/restful.rst
deleted file mode 100644
index e67f2d1..0000000
--- a/src/ceph/doc/mgr/restful.rst
+++ /dev/null
@@ -1,89 +0,0 @@
-restful plugin
-==============
-
-RESTful plugin offers the REST API access to the status of the cluster
-over an SSL-secured connection.
-
-Enabling
---------
-
-The *restful* module is enabled with::
-
- ceph mgr module enable restful
-
-You will also need to configure an SSL certificate below before the
-API endpoint is available. By default the module will accept HTTPS
-requests on port ``8003`` on all IPv4 and IPv6 addresses on the host.
-
-Securing
---------
-
-All connections to *restful* are secured with SSL. You can generate a
-self-signed certificate with the command::
-
- ceph restful create-self-signed-cert
-
-Note that with a self-signed certificate most clients will need a flag
-to allow a connection and/or suppress warning messages. For example,
-if the ``ceph-mgr`` daemon is on the same host,::
-
- curl -k https://localhost:8003/
-
-To properly secure a deployment, a certificate that is signed by the
-organization's certificate authority should be used. For example, a key pair
-can be generated with a command similar to::
-
- openssl req -new -nodes -x509 \
- -subj "/O=IT/CN=ceph-mgr-restful" \
- -days 3650 -keyout restful.key -out restful.crt -extensions v3_ca
-
-The ``restful.crt`` should then be signed by your organization's CA
-(certificate authority). Once that is done, you can set it with::
-
- ceph config-key set mgr/restful/$name/crt -i restful.crt
- ceph config-key set mgr/restful/$name/key -i restful.key
-
-where ``$name`` is the name of the ``ceph-mgr`` instance (usually the
-hostname). If all manager instances are to share the same certificate,
-you can leave off the ``$name`` portion::
-
- ceph config-key set mgr/restful/crt -i restful.crt
- ceph config-key set mgr/restful/key -i restful.key
-
-
-Configuring IP and port
------------------------
-
-Like any other RESTful API endpoint, *restful* binds to an IP and
-port. By default, the currently active ``ceph-mgr`` daemon will bind
-to port 8003 and any available IPv4 or IPv6 address on the host.
-
-Since each ``ceph-mgr`` hosts its own instance of *restful*, it may
-also be necessary to configure them separately. The IP and port
-can be changed via the configuration key facility::
-
- ceph config-key set mgr/restful/$name/server_addr $IP
- ceph config-key set mgr/restful/$name/server_port $PORT
-
-where ``$name`` is the ID of the ceph-mgr daemon (usually the hostname).
-
-These settings can also be configured cluster-wide and not manager
-specific. For example,::
-
- ceph config-key set mgr/restful/server_addr $IP
- ceph config-key set mgr/restful/server_port $PORT
-
-If the port is not configured, *restful* will bind to port ``8003``.
-If the address it not configured, the *restful* will bind to ``::``,
-which corresponds to all available IPv4 and IPv6 addresses.
-
-Load balancer
--------------
-
-Please note that *restful* will *only* start on the manager which
-is active at that moment. Query the Ceph cluster status to see which
-manager is active (e.g., ``ceph mgr dump``). In order to make the
-API available via a consistent URL regardless of which manager
-daemon is currently active, you may want to set up a load balancer
-front-end to direct traffic to whichever manager endpoint is
-available.
diff --git a/src/ceph/doc/mgr/zabbix.rst b/src/ceph/doc/mgr/zabbix.rst
deleted file mode 100644
index d98540e..0000000
--- a/src/ceph/doc/mgr/zabbix.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-Zabbix plugin
-=============
-
-The Zabbix plugin actively sends information to a Zabbix server like:
-
-- Ceph status
-- I/O operations
-- I/O bandwidth
-- OSD status
-- Storage utilization
-
-Requirements
-------------
-
-The plugin requires that the *zabbix_sender* executable is present on *all*
-machines running ceph-mgr. It can be installed on most distributions using
-the package manager.
-
-Dependencies
-^^^^^^^^^^^^
-Installing zabbix_sender can be done under Ubuntu or CentOS using either apt
-or dnf.
-
-On Ubuntu Xenial:
-
-::
-
- apt install zabbix-agent
-
-On Fedora:
-
-::
-
- dnf install zabbix-sender
-
-
-Enabling
---------
-
-Add this to your ceph.conf on nodes where you run ceph-mgr:
-
-::
-
- [mgr]
- mgr modules = zabbix
-
-If you use any other ceph-mgr modules, make sure they're in the list too.
-
-Restart the ceph-mgr daemon after modifying the setting to load the module.
-
-
-Configuration
--------------
-
-Two configuration keys are mandatory for the module to work:
-
-- mgr/zabbix/zabbix_host
-- mgr/zabbix/identifier
-
-The parameter *zabbix_host* controls the hostname of the Zabbix server to which
-*zabbix_sender* will send the items. This can be a IP-Address if required by
-your installation.
-
-The *identifier* parameter controls the identifier/hostname to use as source
-when sending items to Zabbix. This should match the name of the *Host* in
-your Zabbix server.
-
-Additional configuration keys which can be configured and their default values:
-
-- mgr/zabbix/zabbix_port: 10051
-- mgr/zabbix/zabbix_sender: /usr/bin/zabbix_sender
-- mgr/zabbix/interval: 60
-
-Configuration keys
-^^^^^^^^^^^^^^^^^^^
-
-Configuration keys can be set on any machine with the proper cephx credentials,
-these are usually Monitors where the *client.admin* key is present.
-
-::
-
- ceph config-key set <key> <value>
-
-For example:
-
-::
-
- ceph config-key set mgr/zabbix/zabbix_host zabbix.localdomain
- ceph config-key set mgr/zabbix/identifier ceph.eu-ams02.local
-
-Debugging
----------
-
-Should you want to debug the Zabbix module increase the logging level for
-ceph-mgr and check the logs.
-
-::
-
- [mgr]
- debug mgr = 20
-
-With logging set to debug for the manager the plugin will print various logging
-lines prefixed with *mgr[zabbix]* for easy filtering.
-
diff --git a/src/ceph/doc/mon/README.txt b/src/ceph/doc/mon/README.txt
deleted file mode 100644
index fa1bf79..0000000
--- a/src/ceph/doc/mon/README.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-paxos-call-chain.dot describes to some detail the call chain involved in the
-Paxos algorithm, paying special consideration to the messages involved.
-
-This information is not easily obtainable by Doxygen, as it does not follow
-the call chain when messages are involved, since it becomes an async workflow.
-
-To obtain the graph one should run
-
- dot -T<format> paxos-call-chain.dot -o paxos-call-chain.<format>
-
-e.g.,
-
- dot -Tps paxos-call-chain.dot -o paxos-call-chain.ps
-
-or
-
- dot -Tpng paxos-call-chain.dot -o paxos-call-chain.png
-
-It should do the trick.
-
-Also, for future reference, we consider that:
- - boxed nodes refer to the Leader;
- - elliptical nodes refer to the Peon;
- - diamond shaped nodes refer to state changes;
- - dotted lines illustrate a message being sent from the Leader to the Peon,
- or vice-versa.
-
diff --git a/src/ceph/doc/mon/paxos-call-chain.dot b/src/ceph/doc/mon/paxos-call-chain.dot
deleted file mode 100644
index cdca200..0000000
--- a/src/ceph/doc/mon/paxos-call-chain.dot
+++ /dev/null
@@ -1,82 +0,0 @@
-digraph Paxos {
- concentrate=true
-// subgraph cluster0 {
- collect -> state_recovering;
- collect -> send_mmp_collect -> handle_collect [style=dotted];
- handle_collect -> send_mmp_last;
- send_mmp_last -> handle_last [style=dotted];
- handle_last -> collect [label="collect(last_pn)"];
- handle_last -> send_mmp_commit;
- handle_last -> state_active;
- handle_last -> begin;
- handle_last -> extend_lease;
-
-// color=grey;
-// style=filled;
-// label="Post-Election call chain";
-// }
-
- election_finished -> leader_init;
- leader_init -> collect [label="collect(0)"];
- send_mmp_commit -> handle_commit [style=dotted];
-
- begin -> state_updating;
- begin -> send_mmp_begin;
- begin -> commit;
-
- send_mmp_begin -> handle_begin [style=dotted];
- handle_begin -> state_updating;
- handle_begin -> send_mmp_accept;
- send_mmp_accept -> handle_accept [style=dotted];
-
- handle_accept -> extend_lease;
- handle_accept -> state_active;
- handle_accept -> commit;
-
- extend_lease -> send_mmp_lease;
- send_mmp_lease -> handle_lease [style=dotted];
- handle_lease -> state_active;
- handle_lease -> send_mmp_lease_ack;
- send_mmp_lease_ack -> handle_lease_ack [style=dotted];
-
- commit -> send_mmp_commit;
- commit -> "last_committed++" [shape=box];
- send_mmp_commit -> handle_commit [style=dotted];
-
- handle_commit -> store_state;
-
- propose_pending -> propose_new_value;
- propose_new_value -> begin;
-
- election_finished [label="Election Finished", shape=box, bgcolor=grey, style=filled];
- collect [label="collect()", shape=box];
- commit [label="commit()", shape=box];
- begin [label="begin()", shape=box];
- extend_lease [label="extend_lease()", shape=box];
- store_state [label="store_state()"]; // peon
-
- propose_pending [label="PaxosService::propose_pending()"];
- propose_new_value [label="propose_new_value"];
-
- send_mmp_collect [label="send(OP_COLLECT)", shape=box];
- send_mmp_last [label="send(OP_LAST)"];
- send_mmp_commit [label="send(OP_COMMIT)", shape=box];
- send_mmp_begin [label="send(OP_BEGIN)", shape=box];
- send_mmp_accept [label="send(OP_ACCEPT)"];
- send_mmp_lease [label="send(OP_LEASE)", shape=box];
- send_mmp_lease_ack [label="send(OP_LEASE_ACK)"];
-
- handle_collect [label="handle_collect()"];
- handle_last [label="handle_last()", shape=box];
- handle_begin [label="handle_begin()"];
- handle_accept [label="handle_accept()", shape=box];
- handle_lease [label="handle_lease()"];
- handle_lease_ack [label="handle_lease_ack()", shape=box];
- handle_commit [label="handle_commit()"];
-
- leader_init [label="Paxos::leader_init()", shape=box];
-
- state_recovering [label="RECOVERING", shape=diamond];
- state_active [label="ACTIVE", shape=diamond];
- state_updating [label="UPDATING", shape=diamond];
-}
diff --git a/src/ceph/doc/rados/api/index.rst b/src/ceph/doc/rados/api/index.rst
deleted file mode 100644
index cccc153..0000000
--- a/src/ceph/doc/rados/api/index.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-===========================
- Ceph Storage Cluster APIs
-===========================
-
-The :term:`Ceph Storage Cluster` has a messaging layer protocol that enables
-clients to interact with a :term:`Ceph Monitor` and a :term:`Ceph OSD Daemon`.
-``librados`` provides this functionality to :term:`Ceph Clients` in the form of
-a library. All Ceph Clients either use ``librados`` or the same functionality
-encapsulated in ``librados`` to interact with the object store. For example,
-``librbd`` and ``libcephfs`` leverage this functionality. You may use
-``librados`` to interact with Ceph directly (e.g., an application that talks to
-Ceph, your own interface to Ceph, etc.).
-
-
-.. toctree::
- :maxdepth: 2
-
- Introduction to librados <librados-intro>
- librados (C) <librados>
- librados (C++) <libradospp>
- librados (Python) <python>
- object class <objclass-sdk>
diff --git a/src/ceph/doc/rados/api/librados-intro.rst b/src/ceph/doc/rados/api/librados-intro.rst
deleted file mode 100644
index 8405f6e..0000000
--- a/src/ceph/doc/rados/api/librados-intro.rst
+++ /dev/null
@@ -1,1003 +0,0 @@
-==========================
- Introduction to librados
-==========================
-
-The :term:`Ceph Storage Cluster` provides the basic storage service that allows
-:term:`Ceph` to uniquely deliver **object, block, and file storage** in one
-unified system. However, you are not limited to using the RESTful, block, or
-POSIX interfaces. Based upon :abbr:`RADOS (Reliable Autonomic Distributed Object
-Store)`, the ``librados`` API enables you to create your own interface to the
-Ceph Storage Cluster.
-
-The ``librados`` API enables you to interact with the two types of daemons in
-the Ceph Storage Cluster:
-
-- The :term:`Ceph Monitor`, which maintains a master copy of the cluster map.
-- The :term:`Ceph OSD Daemon` (OSD), which stores data as objects on a storage node.
-
-.. ditaa::
- +---------------------------------+
- | Ceph Storage Cluster Protocol |
- | (librados) |
- +---------------------------------+
- +---------------+ +---------------+
- | OSDs | | Monitors |
- +---------------+ +---------------+
-
-This guide provides a high-level introduction to using ``librados``.
-Refer to :doc:`../../architecture` for additional details of the Ceph
-Storage Cluster. To use the API, you need a running Ceph Storage Cluster.
-See `Installation (Quick)`_ for details.
-
-
-Step 1: Getting librados
-========================
-
-Your client application must bind with ``librados`` to connect to the Ceph
-Storage Cluster. You must install ``librados`` and any required packages to
-write applications that use ``librados``. The ``librados`` API is written in
-C++, with additional bindings for C, Python, Java and PHP.
-
-
-Getting librados for C/C++
---------------------------
-
-To install ``librados`` development support files for C/C++ on Debian/Ubuntu
-distributions, execute the following::
-
- sudo apt-get install librados-dev
-
-To install ``librados`` development support files for C/C++ on RHEL/CentOS
-distributions, execute the following::
-
- sudo yum install librados2-devel
-
-Once you install ``librados`` for developers, you can find the required
-headers for C/C++ under ``/usr/include/rados``. ::
-
- ls /usr/include/rados
-
-
-Getting librados for Python
----------------------------
-
-The ``rados`` module provides ``librados`` support to Python
-applications. The ``librados-dev`` package for Debian/Ubuntu
-and the ``librados2-devel`` package for RHEL/CentOS will install the
-``python-rados`` package for you. You may install ``python-rados``
-directly too.
-
-To install ``librados`` development support files for Python on Debian/Ubuntu
-distributions, execute the following::
-
- sudo apt-get install python-rados
-
-To install ``librados`` development support files for Python on RHEL/CentOS
-distributions, execute the following::
-
- sudo yum install python-rados
-
-You can find the module under ``/usr/share/pyshared`` on Debian systems,
-or under ``/usr/lib/python*/site-packages`` on CentOS/RHEL systems.
-
-
-Getting librados for Java
--------------------------
-
-To install ``librados`` for Java, you need to execute the following procedure:
-
-#. Install ``jna.jar``. For Debian/Ubuntu, execute::
-
- sudo apt-get install libjna-java
-
- For CentOS/RHEL, execute::
-
- sudo yum install jna
-
- The JAR files are located in ``/usr/share/java``.
-
-#. Clone the ``rados-java`` repository::
-
- git clone --recursive https://github.com/ceph/rados-java.git
-
-#. Build the ``rados-java`` repository::
-
- cd rados-java
- ant
-
- The JAR file is located under ``rados-java/target``.
-
-#. Copy the JAR for RADOS to a common location (e.g., ``/usr/share/java``) and
- ensure that it and the JNA JAR are in your JVM's classpath. For example::
-
- sudo cp target/rados-0.1.3.jar /usr/share/java/rados-0.1.3.jar
- sudo ln -s /usr/share/java/jna-3.2.7.jar /usr/lib/jvm/default-java/jre/lib/ext/jna-3.2.7.jar
- sudo ln -s /usr/share/java/rados-0.1.3.jar /usr/lib/jvm/default-java/jre/lib/ext/rados-0.1.3.jar
-
-To build the documentation, execute the following::
-
- ant docs
-
-
-Getting librados for PHP
--------------------------
-
-To install the ``librados`` extension for PHP, you need to execute the following procedure:
-
-#. Install php-dev. For Debian/Ubuntu, execute::
-
- sudo apt-get install php5-dev build-essential
-
- For CentOS/RHEL, execute::
-
- sudo yum install php-devel
-
-#. Clone the ``phprados`` repository::
-
- git clone https://github.com/ceph/phprados.git
-
-#. Build ``phprados``::
-
- cd phprados
- phpize
- ./configure
- make
- sudo make install
-
-#. Enable ``phprados`` in php.ini by adding::
-
- extension=rados.so
-
-
-Step 2: Configuring a Cluster Handle
-====================================
-
-A :term:`Ceph Client`, via ``librados``, interacts directly with OSDs to store
-and retrieve data. To interact with OSDs, the client app must invoke
-``librados`` and connect to a Ceph Monitor. Once connected, ``librados``
-retrieves the :term:`Cluster Map` from the Ceph Monitor. When the client app
-wants to read or write data, it creates an I/O context and binds to a
-:term:`pool`. The pool has an associated :term:`ruleset` that defines how it
-will place data in the storage cluster. Via the I/O context, the client
-provides the object name to ``librados``, which takes the object name
-and the cluster map (i.e., the topology of the cluster) and `computes`_ the
-placement group and `OSD`_ for locating the data. Then the client application
-can read or write data. The client app doesn't need to learn about the topology
-of the cluster directly.
-
-.. ditaa::
- +--------+ Retrieves +---------------+
- | Client |------------>| Cluster Map |
- +--------+ +---------------+
- |
- v Writes
- /-----\
- | obj |
- \-----/
- | To
- v
- +--------+ +---------------+
- | Pool |---------->| CRUSH Ruleset |
- +--------+ Selects +---------------+
-
-
-The Ceph Storage Cluster handle encapsulates the client configuration, including:
-
-- The `user ID`_ for ``rados_create()`` or user name for ``rados_create2()``
- (preferred).
-- The :term:`cephx` authentication key
-- The monitor ID and IP address
-- Logging levels
-- Debugging levels
-
-Thus, the first steps in using the cluster from your app are to 1) create
-a cluster handle that your app will use to connect to the storage cluster,
-and then 2) use that handle to connect. To connect to the cluster, the
-app must supply a monitor address, a username and an authentication key
-(cephx is enabled by default).
-
-.. tip:: Talking to different Ceph Storage Clusters – or to the same cluster
- with different users – requires different cluster handles.
-
-RADOS provides a number of ways for you to set the required values. For
-the monitor and encryption key settings, an easy way to handle them is to ensure
-that your Ceph configuration file contains a ``keyring`` path to a keyring file
-and at least one monitor address (e.g,. ``mon host``). For example::
-
- [global]
- mon host = 192.168.1.1
- keyring = /etc/ceph/ceph.client.admin.keyring
-
-Once you create the handle, you can read a Ceph configuration file to configure
-the handle. You can also pass arguments to your app and parse them with the
-function for parsing command line arguments (e.g., ``rados_conf_parse_argv()``),
-or parse Ceph environment variables (e.g., ``rados_conf_parse_env()``). Some
-wrappers may not implement convenience methods, so you may need to implement
-these capabilities. The following diagram provides a high-level flow for the
-initial connection.
-
-
-.. ditaa:: +---------+ +---------+
- | Client | | Monitor |
- +---------+ +---------+
- | |
- |-----+ create |
- | | cluster |
- |<----+ handle |
- | |
- |-----+ read |
- | | config |
- |<----+ file |
- | |
- | connect |
- |-------------->|
- | |
- |<--------------|
- | connected |
- | |
-
-
-Once connected, your app can invoke functions that affect the whole cluster
-with only the cluster handle. For example, once you have a cluster
-handle, you can:
-
-- Get cluster statistics
-- Use Pool Operation (exists, create, list, delete)
-- Get and set the configuration
-
-
-One of the powerful features of Ceph is the ability to bind to different pools.
-Each pool may have a different number of placement groups, object replicas and
-replication strategies. For example, a pool could be set up as a "hot" pool that
-uses SSDs for frequently used objects or a "cold" pool that uses erasure coding.
-
-The main difference in the various ``librados`` bindings is between C and
-the object-oriented bindings for C++, Java and Python. The object-oriented
-bindings use objects to represent cluster handles, IO Contexts, iterators,
-exceptions, etc.
-
-
-C Example
----------
-
-For C, creating a simple cluster handle using the ``admin`` user, configuring
-it and connecting to the cluster might look something like this:
-
-.. code-block:: c
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <rados/librados.h>
-
- int main (int argc, const char **argv)
- {
-
- /* Declare the cluster handle and required arguments. */
- rados_t cluster;
- char cluster_name[] = "ceph";
- char user_name[] = "client.admin";
- uint64_t flags;
-
- /* Initialize the cluster handle with the "ceph" cluster name and the "client.admin" user */
- int err;
- err = rados_create2(&cluster, cluster_name, user_name, flags);
-
- if (err < 0) {
- fprintf(stderr, "%s: Couldn't create the cluster handle! %s\n", argv[0], strerror(-err));
- exit(EXIT_FAILURE);
- } else {
- printf("\nCreated a cluster handle.\n");
- }
-
-
- /* Read a Ceph configuration file to configure the cluster handle. */
- err = rados_conf_read_file(cluster, "/etc/ceph/ceph.conf");
- if (err < 0) {
- fprintf(stderr, "%s: cannot read config file: %s\n", argv[0], strerror(-err));
- exit(EXIT_FAILURE);
- } else {
- printf("\nRead the config file.\n");
- }
-
- /* Read command line arguments */
- err = rados_conf_parse_argv(cluster, argc, argv);
- if (err < 0) {
- fprintf(stderr, "%s: cannot parse command line arguments: %s\n", argv[0], strerror(-err));
- exit(EXIT_FAILURE);
- } else {
- printf("\nRead the command line arguments.\n");
- }
-
- /* Connect to the cluster */
- err = rados_connect(cluster);
- if (err < 0) {
- fprintf(stderr, "%s: cannot connect to cluster: %s\n", argv[0], strerror(-err));
- exit(EXIT_FAILURE);
- } else {
- printf("\nConnected to the cluster.\n");
- }
-
- }
-
-Compile your client and link to ``librados`` using ``-lrados``. For example::
-
- gcc ceph-client.c -lrados -o ceph-client
-
-
-C++ Example
------------
-
-The Ceph project provides a C++ example in the ``ceph/examples/librados``
-directory. For C++, a simple cluster handle using the ``admin`` user requires
-you to initialize a ``librados::Rados`` cluster handle object:
-
-.. code-block:: c++
-
- #include <iostream>
- #include <string>
- #include <rados/librados.hpp>
-
- int main(int argc, const char **argv)
- {
-
- int ret = 0;
-
- /* Declare the cluster handle and required variables. */
- librados::Rados cluster;
- char cluster_name[] = "ceph";
- char user_name[] = "client.admin";
- uint64_t flags = 0;
-
- /* Initialize the cluster handle with the "ceph" cluster name and "client.admin" user */
- {
- ret = cluster.init2(user_name, cluster_name, flags);
- if (ret < 0) {
- std::cerr << "Couldn't initialize the cluster handle! error " << ret << std::endl;
- return EXIT_FAILURE;
- } else {
- std::cout << "Created a cluster handle." << std::endl;
- }
- }
-
- /* Read a Ceph configuration file to configure the cluster handle. */
- {
- ret = cluster.conf_read_file("/etc/ceph/ceph.conf");
- if (ret < 0) {
- std::cerr << "Couldn't read the Ceph configuration file! error " << ret << std::endl;
- return EXIT_FAILURE;
- } else {
- std::cout << "Read the Ceph configuration file." << std::endl;
- }
- }
-
- /* Read command line arguments */
- {
- ret = cluster.conf_parse_argv(argc, argv);
- if (ret < 0) {
- std::cerr << "Couldn't parse command line options! error " << ret << std::endl;
- return EXIT_FAILURE;
- } else {
- std::cout << "Parsed command line options." << std::endl;
- }
- }
-
- /* Connect to the cluster */
- {
- ret = cluster.connect();
- if (ret < 0) {
- std::cerr << "Couldn't connect to cluster! error " << ret << std::endl;
- return EXIT_FAILURE;
- } else {
- std::cout << "Connected to the cluster." << std::endl;
- }
- }
-
- return 0;
- }
-
-
-Compile the source; then, link ``librados`` using ``-lrados``.
-For example::
-
- g++ -g -c ceph-client.cc -o ceph-client.o
- g++ -g ceph-client.o -lrados -o ceph-client
-
-
-
-Python Example
---------------
-
-Python uses the ``admin`` id and the ``ceph`` cluster name by default, and
-will read the standard ``ceph.conf`` file if the conffile parameter is
-set to the empty string. The Python binding converts C++ errors
-into exceptions.
-
-
-.. code-block:: python
-
- import rados
-
- try:
- cluster = rados.Rados(conffile='')
- except TypeError as e:
- print 'Argument validation error: ', e
- raise e
-
- print "Created cluster handle."
-
- try:
- cluster.connect()
- except Exception as e:
- print "connection error: ", e
- raise e
- finally:
- print "Connected to the cluster."
-
-
-Execute the example to verify that it connects to your cluster. ::
-
- python ceph-client.py
-
-
-Java Example
-------------
-
-Java requires you to specify the user ID (``admin``) or user name
-(``client.admin``), and uses the ``ceph`` cluster name by default . The Java
-binding converts C++-based errors into exceptions.
-
-.. code-block:: java
-
- import com.ceph.rados.Rados;
- import com.ceph.rados.RadosException;
-
- import java.io.File;
-
- public class CephClient {
- public static void main (String args[]){
-
- try {
- Rados cluster = new Rados("admin");
- System.out.println("Created cluster handle.");
-
- File f = new File("/etc/ceph/ceph.conf");
- cluster.confReadFile(f);
- System.out.println("Read the configuration file.");
-
- cluster.connect();
- System.out.println("Connected to the cluster.");
-
- } catch (RadosException e) {
- System.out.println(e.getMessage() + ": " + e.getReturnValue());
- }
- }
- }
-
-
-Compile the source; then, run it. If you have copied the JAR to
-``/usr/share/java`` and sym linked from your ``ext`` directory, you won't need
-to specify the classpath. For example::
-
- javac CephClient.java
- java CephClient
-
-
-PHP Example
-------------
-
-With the RADOS extension enabled in PHP you can start creating a new cluster handle very easily:
-
-.. code-block:: php
-
- <?php
-
- $r = rados_create();
- rados_conf_read_file($r, '/etc/ceph/ceph.conf');
- if (!rados_connect($r)) {
- echo "Failed to connect to Ceph cluster";
- } else {
- echo "Successfully connected to Ceph cluster";
- }
-
-
-Save this as rados.php and run the code::
-
- php rados.php
-
-
-Step 3: Creating an I/O Context
-===============================
-
-Once your app has a cluster handle and a connection to a Ceph Storage Cluster,
-you may create an I/O Context and begin reading and writing data. An I/O Context
-binds the connection to a specific pool. The user must have appropriate
-`CAPS`_ permissions to access the specified pool. For example, a user with read
-access but not write access will only be able to read data. I/O Context
-functionality includes:
-
-- Write/read data and extended attributes
-- List and iterate over objects and extended attributes
-- Snapshot pools, list snapshots, etc.
-
-
-.. ditaa:: +---------+ +---------+ +---------+
- | Client | | Monitor | | OSD |
- +---------+ +---------+ +---------+
- | | |
- |-----+ create | |
- | | I/O | |
- |<----+ context | |
- | | |
- | write data | |
- |---------------+-------------->|
- | | |
- | write ack | |
- |<--------------+---------------|
- | | |
- | write xattr | |
- |---------------+-------------->|
- | | |
- | xattr ack | |
- |<--------------+---------------|
- | | |
- | read data | |
- |---------------+-------------->|
- | | |
- | read ack | |
- |<--------------+---------------|
- | | |
- | remove data | |
- |---------------+-------------->|
- | | |
- | remove ack | |
- |<--------------+---------------|
-
-
-
-RADOS enables you to interact both synchronously and asynchronously. Once your
-app has an I/O Context, read/write operations only require you to know the
-object/xattr name. The CRUSH algorithm encapsulated in ``librados`` uses the
-cluster map to identify the appropriate OSD. OSD daemons handle the replication,
-as described in `Smart Daemons Enable Hyperscale`_. The ``librados`` library also
-maps objects to placement groups, as described in `Calculating PG IDs`_.
-
-The following examples use the default ``data`` pool. However, you may also
-use the API to list pools, ensure they exist, or create and delete pools. For
-the write operations, the examples illustrate how to use synchronous mode. For
-the read operations, the examples illustrate how to use asynchronous mode.
-
-.. important:: Use caution when deleting pools with this API. If you delete
- a pool, the pool and ALL DATA in the pool will be lost.
-
-
-C Example
----------
-
-
-.. code-block:: c
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <rados/librados.h>
-
- int main (int argc, const char **argv)
- {
- /*
- * Continued from previous C example, where cluster handle and
- * connection are established. First declare an I/O Context.
- */
-
- rados_ioctx_t io;
- char *poolname = "data";
-
- err = rados_ioctx_create(cluster, poolname, &io);
- if (err < 0) {
- fprintf(stderr, "%s: cannot open rados pool %s: %s\n", argv[0], poolname, strerror(-err));
- rados_shutdown(cluster);
- exit(EXIT_FAILURE);
- } else {
- printf("\nCreated I/O context.\n");
- }
-
- /* Write data to the cluster synchronously. */
- err = rados_write(io, "hw", "Hello World!", 12, 0);
- if (err < 0) {
- fprintf(stderr, "%s: Cannot write object \"hw\" to pool %s: %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nWrote \"Hello World\" to object \"hw\".\n");
- }
-
- char xattr[] = "en_US";
- err = rados_setxattr(io, "hw", "lang", xattr, 5);
- if (err < 0) {
- fprintf(stderr, "%s: Cannot write xattr to pool %s: %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nWrote \"en_US\" to xattr \"lang\" for object \"hw\".\n");
- }
-
- /*
- * Read data from the cluster asynchronously.
- * First, set up asynchronous I/O completion.
- */
- rados_completion_t comp;
- err = rados_aio_create_completion(NULL, NULL, NULL, &comp);
- if (err < 0) {
- fprintf(stderr, "%s: Could not create aio completion: %s\n", argv[0], strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nCreated AIO completion.\n");
- }
-
- /* Next, read data using rados_aio_read. */
- char read_res[100];
- err = rados_aio_read(io, "hw", comp, read_res, 12, 0);
- if (err < 0) {
- fprintf(stderr, "%s: Cannot read object. %s %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nRead object \"hw\". The contents are:\n %s \n", read_res);
- }
-
- /* Wait for the operation to complete */
- rados_aio_wait_for_complete(comp);
-
- /* Release the asynchronous I/O complete handle to avoid memory leaks. */
- rados_aio_release(comp);
-
-
- char xattr_res[100];
- err = rados_getxattr(io, "hw", "lang", xattr_res, 5);
- if (err < 0) {
- fprintf(stderr, "%s: Cannot read xattr. %s %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nRead xattr \"lang\" for object \"hw\". The contents are:\n %s \n", xattr_res);
- }
-
- err = rados_rmxattr(io, "hw", "lang");
- if (err < 0) {
- fprintf(stderr, "%s: Cannot remove xattr. %s %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nRemoved xattr \"lang\" for object \"hw\".\n");
- }
-
- err = rados_remove(io, "hw");
- if (err < 0) {
- fprintf(stderr, "%s: Cannot remove object. %s %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- } else {
- printf("\nRemoved object \"hw\".\n");
- }
-
- }
-
-
-
-C++ Example
------------
-
-
-.. code-block:: c++
-
- #include <iostream>
- #include <string>
- #include <rados/librados.hpp>
-
- int main(int argc, const char **argv)
- {
-
- /* Continued from previous C++ example, where cluster handle and
- * connection are established. First declare an I/O Context.
- */
-
- librados::IoCtx io_ctx;
- const char *pool_name = "data";
-
- {
- ret = cluster.ioctx_create(pool_name, io_ctx);
- if (ret < 0) {
- std::cerr << "Couldn't set up ioctx! error " << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Created an ioctx for the pool." << std::endl;
- }
- }
-
-
- /* Write an object synchronously. */
- {
- librados::bufferlist bl;
- bl.append("Hello World!");
- ret = io_ctx.write_full("hw", bl);
- if (ret < 0) {
- std::cerr << "Couldn't write object! error " << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Wrote new object 'hw' " << std::endl;
- }
- }
-
-
- /*
- * Add an xattr to the object.
- */
- {
- librados::bufferlist lang_bl;
- lang_bl.append("en_US");
- ret = io_ctx.setxattr("hw", "lang", lang_bl);
- if (ret < 0) {
- std::cerr << "failed to set xattr version entry! error "
- << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Set the xattr 'lang' on our object!" << std::endl;
- }
- }
-
-
- /*
- * Read the object back asynchronously.
- */
- {
- librados::bufferlist read_buf;
- int read_len = 4194304;
-
- //Create I/O Completion.
- librados::AioCompletion *read_completion = librados::Rados::aio_create_completion();
-
- //Send read request.
- ret = io_ctx.aio_read("hw", read_completion, &read_buf, read_len, 0);
- if (ret < 0) {
- std::cerr << "Couldn't start read object! error " << ret << std::endl;
- exit(EXIT_FAILURE);
- }
-
- // Wait for the request to complete, and check that it succeeded.
- read_completion->wait_for_complete();
- ret = read_completion->get_return_value();
- if (ret < 0) {
- std::cerr << "Couldn't read object! error " << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Read object hw asynchronously with contents.\n"
- << read_buf.c_str() << std::endl;
- }
- }
-
-
- /*
- * Read the xattr.
- */
- {
- librados::bufferlist lang_res;
- ret = io_ctx.getxattr("hw", "lang", lang_res);
- if (ret < 0) {
- std::cerr << "failed to get xattr version entry! error "
- << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Got the xattr 'lang' from object hw!"
- << lang_res.c_str() << std::endl;
- }
- }
-
-
- /*
- * Remove the xattr.
- */
- {
- ret = io_ctx.rmxattr("hw", "lang");
- if (ret < 0) {
- std::cerr << "Failed to remove xattr! error "
- << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Removed the xattr 'lang' from our object!" << std::endl;
- }
- }
-
- /*
- * Remove the object.
- */
- {
- ret = io_ctx.remove("hw");
- if (ret < 0) {
- std::cerr << "Couldn't remove object! error " << ret << std::endl;
- exit(EXIT_FAILURE);
- } else {
- std::cout << "Removed object 'hw'." << std::endl;
- }
- }
- }
-
-
-
-Python Example
---------------
-
-.. code-block:: python
-
- print "\n\nI/O Context and Object Operations"
- print "================================="
-
- print "\nCreating a context for the 'data' pool"
- if not cluster.pool_exists('data'):
- raise RuntimeError('No data pool exists')
- ioctx = cluster.open_ioctx('data')
-
- print "\nWriting object 'hw' with contents 'Hello World!' to pool 'data'."
- ioctx.write("hw", "Hello World!")
- print "Writing XATTR 'lang' with value 'en_US' to object 'hw'"
- ioctx.set_xattr("hw", "lang", "en_US")
-
-
- print "\nWriting object 'bm' with contents 'Bonjour tout le monde!' to pool 'data'."
- ioctx.write("bm", "Bonjour tout le monde!")
- print "Writing XATTR 'lang' with value 'fr_FR' to object 'bm'"
- ioctx.set_xattr("bm", "lang", "fr_FR")
-
- print "\nContents of object 'hw'\n------------------------"
- print ioctx.read("hw")
-
- print "\n\nGetting XATTR 'lang' from object 'hw'"
- print ioctx.get_xattr("hw", "lang")
-
- print "\nContents of object 'bm'\n------------------------"
- print ioctx.read("bm")
-
- print "Getting XATTR 'lang' from object 'bm'"
- print ioctx.get_xattr("bm", "lang")
-
-
- print "\nRemoving object 'hw'"
- ioctx.remove_object("hw")
-
- print "Removing object 'bm'"
- ioctx.remove_object("bm")
-
-
-Java-Example
-------------
-
-.. code-block:: java
-
- import com.ceph.rados.Rados;
- import com.ceph.rados.RadosException;
-
- import java.io.File;
- import com.ceph.rados.IoCTX;
-
- public class CephClient {
- public static void main (String args[]){
-
- try {
- Rados cluster = new Rados("admin");
- System.out.println("Created cluster handle.");
-
- File f = new File("/etc/ceph/ceph.conf");
- cluster.confReadFile(f);
- System.out.println("Read the configuration file.");
-
- cluster.connect();
- System.out.println("Connected to the cluster.");
-
- IoCTX io = cluster.ioCtxCreate("data");
-
- String oidone = "hw";
- String contentone = "Hello World!";
- io.write(oidone, contentone);
-
- String oidtwo = "bm";
- String contenttwo = "Bonjour tout le monde!";
- io.write(oidtwo, contenttwo);
-
- String[] objects = io.listObjects();
- for (String object: objects)
- System.out.println(object);
-
- io.remove(oidone);
- io.remove(oidtwo);
-
- cluster.ioCtxDestroy(io);
-
- } catch (RadosException e) {
- System.out.println(e.getMessage() + ": " + e.getReturnValue());
- }
- }
- }
-
-
-PHP Example
------------
-
-.. code-block:: php
-
- <?php
-
- $io = rados_ioctx_create($r, "mypool");
- rados_write_full($io, "oidOne", "mycontents");
- rados_remove("oidOne");
- rados_ioctx_destroy($io);
-
-
-Step 4: Closing Sessions
-========================
-
-Once your app finishes with the I/O Context and cluster handle, the app should
-close the connection and shutdown the handle. For asynchronous I/O, the app
-should also ensure that pending asynchronous operations have completed.
-
-
-C Example
----------
-
-.. code-block:: c
-
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
-
-
-C++ Example
------------
-
-.. code-block:: c++
-
- io_ctx.close();
- cluster.shutdown();
-
-
-Java Example
---------------
-
-.. code-block:: java
-
- cluster.ioCtxDestroy(io);
- cluster.shutDown();
-
-
-Python Example
---------------
-
-.. code-block:: python
-
- print "\nClosing the connection."
- ioctx.close()
-
- print "Shutting down the handle."
- cluster.shutdown()
-
-PHP Example
------------
-
-.. code-block:: php
-
- rados_shutdown($r);
-
-
-
-.. _user ID: ../../operations/user-management#command-line-usage
-.. _CAPS: ../../operations/user-management#authorization-capabilities
-.. _Installation (Quick): ../../../start
-.. _Smart Daemons Enable Hyperscale: ../../../architecture#smart-daemons-enable-hyperscale
-.. _Calculating PG IDs: ../../../architecture#calculating-pg-ids
-.. _computes: ../../../architecture#calculating-pg-ids
-.. _OSD: ../../../architecture#mapping-pgs-to-osds
diff --git a/src/ceph/doc/rados/api/librados.rst b/src/ceph/doc/rados/api/librados.rst
deleted file mode 100644
index 73d0e42..0000000
--- a/src/ceph/doc/rados/api/librados.rst
+++ /dev/null
@@ -1,187 +0,0 @@
-==============
- Librados (C)
-==============
-
-.. highlight:: c
-
-`librados` provides low-level access to the RADOS service. For an
-overview of RADOS, see :doc:`../../architecture`.
-
-
-Example: connecting and writing an object
-=========================================
-
-To use `Librados`, you instantiate a :c:type:`rados_t` variable (a cluster handle) and
-call :c:func:`rados_create()` with a pointer to it::
-
- int err;
- rados_t cluster;
-
- err = rados_create(&cluster, NULL);
- if (err < 0) {
- fprintf(stderr, "%s: cannot create a cluster handle: %s\n", argv[0], strerror(-err));
- exit(1);
- }
-
-Then you configure your :c:type:`rados_t` to connect to your cluster,
-either by setting individual values (:c:func:`rados_conf_set()`),
-using a configuration file (:c:func:`rados_conf_read_file()`), using
-command line options (:c:func:`rados_conf_parse_argv`), or an
-environment variable (:c:func:`rados_conf_parse_env()`)::
-
- err = rados_conf_read_file(cluster, "/path/to/myceph.conf");
- if (err < 0) {
- fprintf(stderr, "%s: cannot read config file: %s\n", argv[0], strerror(-err));
- exit(1);
- }
-
-Once the cluster handle is configured, you can connect to the cluster with :c:func:`rados_connect()`::
-
- err = rados_connect(cluster);
- if (err < 0) {
- fprintf(stderr, "%s: cannot connect to cluster: %s\n", argv[0], strerror(-err));
- exit(1);
- }
-
-Then you open an "IO context", a :c:type:`rados_ioctx_t`, with :c:func:`rados_ioctx_create()`::
-
- rados_ioctx_t io;
- char *poolname = "mypool";
-
- err = rados_ioctx_create(cluster, poolname, &io);
- if (err < 0) {
- fprintf(stderr, "%s: cannot open rados pool %s: %s\n", argv[0], poolname, strerror(-err));
- rados_shutdown(cluster);
- exit(1);
- }
-
-Note that the pool you try to access must exist.
-
-Then you can use the RADOS data manipulation functions, for example
-write into an object called ``greeting`` with
-:c:func:`rados_write_full()`::
-
- err = rados_write_full(io, "greeting", "hello", 5);
- if (err < 0) {
- fprintf(stderr, "%s: cannot write pool %s: %s\n", argv[0], poolname, strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- }
-
-In the end, you will want to close your IO context and connection to RADOS with :c:func:`rados_ioctx_destroy()` and :c:func:`rados_shutdown()`::
-
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
-
-
-Asychronous IO
-==============
-
-When doing lots of IO, you often don't need to wait for one operation
-to complete before starting the next one. `Librados` provides
-asynchronous versions of several operations:
-
-* :c:func:`rados_aio_write`
-* :c:func:`rados_aio_append`
-* :c:func:`rados_aio_write_full`
-* :c:func:`rados_aio_read`
-
-For each operation, you must first create a
-:c:type:`rados_completion_t` that represents what to do when the
-operation is safe or complete by calling
-:c:func:`rados_aio_create_completion`. If you don't need anything
-special to happen, you can pass NULL::
-
- rados_completion_t comp;
- err = rados_aio_create_completion(NULL, NULL, NULL, &comp);
- if (err < 0) {
- fprintf(stderr, "%s: could not create aio completion: %s\n", argv[0], strerror(-err));
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- }
-
-Now you can call any of the aio operations, and wait for it to
-be in memory or on disk on all replicas::
-
- err = rados_aio_write(io, "foo", comp, "bar", 3, 0);
- if (err < 0) {
- fprintf(stderr, "%s: could not schedule aio write: %s\n", argv[0], strerror(-err));
- rados_aio_release(comp);
- rados_ioctx_destroy(io);
- rados_shutdown(cluster);
- exit(1);
- }
- rados_aio_wait_for_complete(comp); // in memory
- rados_aio_wait_for_safe(comp); // on disk
-
-Finally, we need to free the memory used by the completion with :c:func:`rados_aio_release`::
-
- rados_aio_release(comp);
-
-You can use the callbacks to tell your application when writes are
-durable, or when read buffers are full. For example, if you wanted to
-measure the latency of each operation when appending to several
-objects, you could schedule several writes and store the ack and
-commit time in the corresponding callback, then wait for all of them
-to complete using :c:func:`rados_aio_flush` before analyzing the
-latencies::
-
- typedef struct {
- struct timeval start;
- struct timeval ack_end;
- struct timeval commit_end;
- } req_duration;
-
- void ack_callback(rados_completion_t comp, void *arg) {
- req_duration *dur = (req_duration *) arg;
- gettimeofday(&dur->ack_end, NULL);
- }
-
- void commit_callback(rados_completion_t comp, void *arg) {
- req_duration *dur = (req_duration *) arg;
- gettimeofday(&dur->commit_end, NULL);
- }
-
- int output_append_latency(rados_ioctx_t io, const char *data, size_t len, size_t num_writes) {
- req_duration times[num_writes];
- rados_completion_t comps[num_writes];
- for (size_t i = 0; i < num_writes; ++i) {
- gettimeofday(&times[i].start, NULL);
- int err = rados_aio_create_completion((void*) &times[i], ack_callback, commit_callback, &comps[i]);
- if (err < 0) {
- fprintf(stderr, "Error creating rados completion: %s\n", strerror(-err));
- return err;
- }
- char obj_name[100];
- snprintf(obj_name, sizeof(obj_name), "foo%ld", (unsigned long)i);
- err = rados_aio_append(io, obj_name, comps[i], data, len);
- if (err < 0) {
- fprintf(stderr, "Error from rados_aio_append: %s", strerror(-err));
- return err;
- }
- }
- // wait until all requests finish *and* the callbacks complete
- rados_aio_flush(io);
- // the latencies can now be analyzed
- printf("Request # | Ack latency (s) | Commit latency (s)\n");
- for (size_t i = 0; i < num_writes; ++i) {
- // don't forget to free the completions
- rados_aio_release(comps[i]);
- struct timeval ack_lat, commit_lat;
- timersub(&times[i].ack_end, &times[i].start, &ack_lat);
- timersub(&times[i].commit_end, &times[i].start, &commit_lat);
- printf("%9ld | %8ld.%06ld | %10ld.%06ld\n", (unsigned long) i, ack_lat.tv_sec, ack_lat.tv_usec, commit_lat.tv_sec, commit_lat.tv_usec);
- }
- return 0;
- }
-
-Note that all the :c:type:`rados_completion_t` must be freed with :c:func:`rados_aio_release` to avoid leaking memory.
-
-
-API calls
-=========
-
- .. autodoxygenfile:: rados_types.h
- .. autodoxygenfile:: librados.h
diff --git a/src/ceph/doc/rados/api/libradospp.rst b/src/ceph/doc/rados/api/libradospp.rst
deleted file mode 100644
index 27d3fa7..0000000
--- a/src/ceph/doc/rados/api/libradospp.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-==================
- LibradosPP (C++)
-==================
-
-.. todo:: write me!
diff --git a/src/ceph/doc/rados/api/objclass-sdk.rst b/src/ceph/doc/rados/api/objclass-sdk.rst
deleted file mode 100644
index 6b1162f..0000000
--- a/src/ceph/doc/rados/api/objclass-sdk.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-===========================
-SDK for Ceph Object Classes
-===========================
-
-`Ceph` can be extended by creating shared object classes called `Ceph Object
-Classes`. The existing framework to build these object classes has dependencies
-on the internal functionality of `Ceph`, which restricts users to build object
-classes within the tree. The aim of this project is to create an independent
-object class interface, which can be used to build object classes outside the
-`Ceph` tree. This allows us to have two types of object classes, 1) those that
-have in-tree dependencies and reside in the tree and 2) those that can make use
-of the `Ceph Object Class SDK framework` and can be built outside of the `Ceph`
-tree because they do not depend on any internal implementation of `Ceph`. This
-project decouples object class development from Ceph and encourages creation
-and distribution of object classes as packages.
-
-In order to demonstrate the use of this framework, we have provided an example
-called ``cls_sdk``, which is a very simple object class that makes use of the
-SDK framework. This object class resides in the ``src/cls`` directory.
-
-Installing objclass.h
----------------------
-
-The object class interface that enables out-of-tree development of object
-classes resides in ``src/include/rados/`` and gets installed with `Ceph`
-installation. After running ``make install``, you should be able to see it
-in ``<prefix>/include/rados``. ::
-
- ls /usr/local/include/rados
-
-Using the SDK example
----------------------
-
-The ``cls_sdk`` object class resides in ``src/cls/sdk/``. This gets built and
-loaded into Ceph, with the Ceph build process. You can run the
-``ceph_test_cls_sdk`` unittest, which resides in ``src/test/cls_sdk/``,
-to test this class.
diff --git a/src/ceph/doc/rados/api/python.rst b/src/ceph/doc/rados/api/python.rst
deleted file mode 100644
index b4fd7e0..0000000
--- a/src/ceph/doc/rados/api/python.rst
+++ /dev/null
@@ -1,397 +0,0 @@
-===================
- Librados (Python)
-===================
-
-The ``rados`` module is a thin Python wrapper for ``librados``.
-
-Installation
-============
-
-To install Python libraries for Ceph, see `Getting librados for Python`_.
-
-
-Getting Started
-===============
-
-You can create your own Ceph client using Python. The following tutorial will
-show you how to import the Ceph Python module, connect to a Ceph cluster, and
-perform object operations as a ``client.admin`` user.
-
-.. note:: To use the Ceph Python bindings, you must have access to a
- running Ceph cluster. To set one up quickly, see `Getting Started`_.
-
-First, create a Python source file for your Ceph client. ::
- :linenos:
-
- sudo vim client.py
-
-
-Import the Module
------------------
-
-To use the ``rados`` module, import it into your source file.
-
-.. code-block:: python
- :linenos:
-
- import rados
-
-
-Configure a Cluster Handle
---------------------------
-
-Before connecting to the Ceph Storage Cluster, create a cluster handle. By
-default, the cluster handle assumes a cluster named ``ceph`` (i.e., the default
-for deployment tools, and our Getting Started guides too), and a
-``client.admin`` user name. You may change these defaults to suit your needs.
-
-To connect to the Ceph Storage Cluster, your application needs to know where to
-find the Ceph Monitor. Provide this information to your application by
-specifying the path to your Ceph configuration file, which contains the location
-of the initial Ceph monitors.
-
-.. code-block:: python
- :linenos:
-
- import rados, sys
-
- #Create Handle Examples.
- cluster = rados.Rados(conffile='ceph.conf')
- cluster = rados.Rados(conffile=sys.argv[1])
- cluster = rados.Rados(conffile = 'ceph.conf', conf = dict (keyring = '/path/to/keyring'))
-
-Ensure that the ``conffile`` argument provides the path and file name of your
-Ceph configuration file. You may use the ``sys`` module to avoid hard-coding the
-Ceph configuration path and file name.
-
-Your Python client also requires a client keyring. For this example, we use the
-``client.admin`` key by default. If you would like to specify the keyring when
-creating the cluster handle, you may use the ``conf`` argument. Alternatively,
-you may specify the keyring path in your Ceph configuration file. For example,
-you may add something like the following line to you Ceph configuration file::
-
- keyring = /path/to/ceph.client.admin.keyring
-
-For additional details on modifying your configuration via Python, see `Configuration`_.
-
-
-Connect to the Cluster
-----------------------
-
-Once you have a cluster handle configured, you may connect to the cluster.
-With a connection to the cluster, you may execute methods that return
-information about the cluster.
-
-.. code-block:: python
- :linenos:
- :emphasize-lines: 7
-
- import rados, sys
-
- cluster = rados.Rados(conffile='ceph.conf')
- print "\nlibrados version: " + str(cluster.version())
- print "Will attempt to connect to: " + str(cluster.conf_get('mon initial members'))
-
- cluster.connect()
- print "\nCluster ID: " + cluster.get_fsid()
-
- print "\n\nCluster Statistics"
- print "=================="
- cluster_stats = cluster.get_cluster_stats()
-
- for key, value in cluster_stats.iteritems():
- print key, value
-
-
-By default, Ceph authentication is ``on``. Your application will need to know
-the location of the keyring. The ``python-ceph`` module doesn't have the default
-location, so you need to specify the keyring path. The easiest way to specify
-the keyring is to add it to the Ceph configuration file. The following Ceph
-configuration file example uses the ``client.admin`` keyring you generated with
-``ceph-deploy``.
-
-.. code-block:: ini
- :linenos:
-
- [global]
- ...
- keyring=/path/to/keyring/ceph.client.admin.keyring
-
-
-Manage Pools
-------------
-
-When connected to the cluster, the ``Rados`` API allows you to manage pools. You
-can list pools, check for the existence of a pool, create a pool and delete a
-pool.
-
-.. code-block:: python
- :linenos:
- :emphasize-lines: 6, 13, 18, 25
-
- print "\n\nPool Operations"
- print "==============="
-
- print "\nAvailable Pools"
- print "----------------"
- pools = cluster.list_pools()
-
- for pool in pools:
- print pool
-
- print "\nCreate 'test' Pool"
- print "------------------"
- cluster.create_pool('test')
-
- print "\nPool named 'test' exists: " + str(cluster.pool_exists('test'))
- print "\nVerify 'test' Pool Exists"
- print "-------------------------"
- pools = cluster.list_pools()
-
- for pool in pools:
- print pool
-
- print "\nDelete 'test' Pool"
- print "------------------"
- cluster.delete_pool('test')
- print "\nPool named 'test' exists: " + str(cluster.pool_exists('test'))
-
-
-
-Input/Output Context
---------------------
-
-Reading from and writing to the Ceph Storage Cluster requires an input/output
-context (ioctx). You can create an ioctx with the ``open_ioctx()`` method of the
-``Rados`` class. The ``ioctx_name`` parameter is the name of the pool you wish
-to use.
-
-.. code-block:: python
- :linenos:
-
- ioctx = cluster.open_ioctx('data')
-
-
-Once you have an I/O context, you can read/write objects, extended attributes,
-and perform a number of other operations. After you complete operations, ensure
-that you close the connection. For example:
-
-.. code-block:: python
- :linenos:
-
- print "\nClosing the connection."
- ioctx.close()
-
-
-Writing, Reading and Removing Objects
--------------------------------------
-
-Once you create an I/O context, you can write objects to the cluster. If you
-write to an object that doesn't exist, Ceph creates it. If you write to an
-object that exists, Ceph overwrites it (except when you specify a range, and
-then it only overwrites the range). You may read objects (and object ranges)
-from the cluster. You may also remove objects from the cluster. For example:
-
-.. code-block:: python
- :linenos:
- :emphasize-lines: 2, 5, 8
-
- print "\nWriting object 'hw' with contents 'Hello World!' to pool 'data'."
- ioctx.write_full("hw", "Hello World!")
-
- print "\n\nContents of object 'hw'\n------------------------\n"
- print ioctx.read("hw")
-
- print "\nRemoving object 'hw'"
- ioctx.remove_object("hw")
-
-
-Writing and Reading XATTRS
---------------------------
-
-Once you create an object, you can write extended attributes (XATTRs) to
-the object and read XATTRs from the object. For example:
-
-.. code-block:: python
- :linenos:
- :emphasize-lines: 2, 5
-
- print "\n\nWriting XATTR 'lang' with value 'en_US' to object 'hw'"
- ioctx.set_xattr("hw", "lang", "en_US")
-
- print "\n\nGetting XATTR 'lang' from object 'hw'\n"
- print ioctx.get_xattr("hw", "lang")
-
-
-Listing Objects
----------------
-
-If you want to examine the list of objects in a pool, you may
-retrieve the list of objects and iterate over them with the object iterator.
-For example:
-
-.. code-block:: python
- :linenos:
- :emphasize-lines: 1, 6, 7
-
- object_iterator = ioctx.list_objects()
-
- while True :
-
- try :
- rados_object = object_iterator.next()
- print "Object contents = " + rados_object.read()
-
- except StopIteration :
- break
-
-The ``Object`` class provides a file-like interface to an object, allowing
-you to read and write content and extended attributes. Object operations using
-the I/O context provide additional functionality and asynchronous capabilities.
-
-
-Cluster Handle API
-==================
-
-The ``Rados`` class provides an interface into the Ceph Storage Daemon.
-
-
-Configuration
--------------
-
-The ``Rados`` class provides methods for getting and setting configuration
-values, reading the Ceph configuration file, and parsing arguments. You
-do not need to be connected to the Ceph Storage Cluster to invoke the following
-methods. See `Storage Cluster Configuration`_ for details on settings.
-
-.. currentmodule:: rados
-.. automethod:: Rados.conf_get(option)
-.. automethod:: Rados.conf_set(option, val)
-.. automethod:: Rados.conf_read_file(path=None)
-.. automethod:: Rados.conf_parse_argv(args)
-.. automethod:: Rados.version()
-
-
-Connection Management
----------------------
-
-Once you configure your cluster handle, you may connect to the cluster, check
-the cluster ``fsid``, retrieve cluster statistics, and disconnect (shutdown)
-from the cluster. You may also assert that the cluster handle is in a particular
-state (e.g., "configuring", "connecting", etc.).
-
-
-.. automethod:: Rados.connect(timeout=0)
-.. automethod:: Rados.shutdown()
-.. automethod:: Rados.get_fsid()
-.. automethod:: Rados.get_cluster_stats()
-.. automethod:: Rados.require_state(*args)
-
-
-Pool Operations
----------------
-
-To use pool operation methods, you must connect to the Ceph Storage Cluster
-first. You may list the available pools, create a pool, check to see if a pool
-exists, and delete a pool.
-
-.. automethod:: Rados.list_pools()
-.. automethod:: Rados.create_pool(pool_name, auid=None, crush_rule=None)
-.. automethod:: Rados.pool_exists()
-.. automethod:: Rados.delete_pool(pool_name)
-
-
-
-Input/Output Context API
-========================
-
-To write data to and read data from the Ceph Object Store, you must create
-an Input/Output context (ioctx). The `Rados` class provides a `open_ioctx()`
-method. The remaining ``ioctx`` operations involve invoking methods of the
-`Ioctx` and other classes.
-
-.. automethod:: Rados.open_ioctx(ioctx_name)
-.. automethod:: Ioctx.require_ioctx_open()
-.. automethod:: Ioctx.get_stats()
-.. automethod:: Ioctx.change_auid(auid)
-.. automethod:: Ioctx.get_last_version()
-.. automethod:: Ioctx.close()
-
-
-.. Pool Snapshots
-.. --------------
-
-.. The Ceph Storage Cluster allows you to make a snapshot of a pool's state.
-.. Whereas, basic pool operations only require a connection to the cluster,
-.. snapshots require an I/O context.
-
-.. Ioctx.create_snap(self, snap_name)
-.. Ioctx.list_snaps(self)
-.. SnapIterator.next(self)
-.. Snap.get_timestamp(self)
-.. Ioctx.lookup_snap(self, snap_name)
-.. Ioctx.remove_snap(self, snap_name)
-
-.. not published. This doesn't seem ready yet.
-
-Object Operations
------------------
-
-The Ceph Storage Cluster stores data as objects. You can read and write objects
-synchronously or asynchronously. You can read and write from offsets. An object
-has a name (or key) and data.
-
-
-.. automethod:: Ioctx.aio_write(object_name, to_write, offset=0, oncomplete=None, onsafe=None)
-.. automethod:: Ioctx.aio_write_full(object_name, to_write, oncomplete=None, onsafe=None)
-.. automethod:: Ioctx.aio_append(object_name, to_append, oncomplete=None, onsafe=None)
-.. automethod:: Ioctx.write(key, data, offset=0)
-.. automethod:: Ioctx.write_full(key, data)
-.. automethod:: Ioctx.aio_flush()
-.. automethod:: Ioctx.set_locator_key(loc_key)
-.. automethod:: Ioctx.aio_read(object_name, length, offset, oncomplete)
-.. automethod:: Ioctx.read(key, length=8192, offset=0)
-.. automethod:: Ioctx.stat(key)
-.. automethod:: Ioctx.trunc(key, size)
-.. automethod:: Ioctx.remove_object(key)
-
-
-Object Extended Attributes
---------------------------
-
-You may set extended attributes (XATTRs) on an object. You can retrieve a list
-of objects or XATTRs and iterate over them.
-
-.. automethod:: Ioctx.set_xattr(key, xattr_name, xattr_value)
-.. automethod:: Ioctx.get_xattrs(oid)
-.. automethod:: XattrIterator.next()
-.. automethod:: Ioctx.get_xattr(key, xattr_name)
-.. automethod:: Ioctx.rm_xattr(key, xattr_name)
-
-
-
-Object Interface
-================
-
-From an I/O context, you can retrieve a list of objects from a pool and iterate
-over them. The object interface provide makes each object look like a file, and
-you may perform synchronous operations on the objects. For asynchronous
-operations, you should use the I/O context methods.
-
-.. automethod:: Ioctx.list_objects()
-.. automethod:: ObjectIterator.next()
-.. automethod:: Object.read(length = 1024*1024)
-.. automethod:: Object.write(string_to_write)
-.. automethod:: Object.get_xattrs()
-.. automethod:: Object.get_xattr(xattr_name)
-.. automethod:: Object.set_xattr(xattr_name, xattr_value)
-.. automethod:: Object.rm_xattr(xattr_name)
-.. automethod:: Object.stat()
-.. automethod:: Object.remove()
-
-
-
-
-.. _Getting Started: ../../../start
-.. _Storage Cluster Configuration: ../../configuration
-.. _Getting librados for Python: ../librados-intro#getting-librados-for-python
diff --git a/src/ceph/doc/rados/command/list-inconsistent-obj.json b/src/ceph/doc/rados/command/list-inconsistent-obj.json
deleted file mode 100644
index 76ca43e..0000000
--- a/src/ceph/doc/rados/command/list-inconsistent-obj.json
+++ /dev/null
@@ -1,195 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "epoch": {
- "description": "Scrub epoch",
- "type": "integer"
- },
- "inconsistents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "object": {
- "description": "Identify a Ceph object",
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "nspace": {
- "type": "string"
- },
- "locator": {
- "type": "string"
- },
- "version": {
- "type": "integer",
- "minimum": 0
- },
- "snap": {
- "oneOf": [
- {
- "type": "string",
- "enum": [ "head", "snapdir" ]
- },
- {
- "type": "integer",
- "minimum": 0
- }
- ]
- }
- },
- "required": [
- "name",
- "nspace",
- "locator",
- "version",
- "snap"
- ]
- },
- "selected_object_info": {
- "type": "string"
- },
- "union_shard_errors": {
- "description": "Union of all shard errors",
- "type": "array",
- "items": {
- "enum": [
- "missing",
- "stat_error",
- "read_error",
- "data_digest_mismatch_oi",
- "omap_digest_mismatch_oi",
- "size_mismatch_oi",
- "ec_hash_error",
- "ec_size_error",
- "oi_attr_missing",
- "oi_attr_corrupted",
- "obj_size_oi_mismatch",
- "ss_attr_missing",
- "ss_attr_corrupted"
- ]
- },
- "minItems": 0,
- "uniqueItems": true
- },
- "errors": {
- "description": "Errors related to the analysis of this object",
- "type": "array",
- "items": {
- "enum": [
- "object_info_inconsistency",
- "data_digest_mismatch",
- "omap_digest_mismatch",
- "size_mismatch",
- "attr_value_mismatch",
- "attr_name_mismatch"
- ]
- },
- "minItems": 0,
- "uniqueItems": true
- },
- "shards": {
- "description": "All found or expected shards",
- "type": "array",
- "items": {
- "description": "Information about a particular shard of object",
- "type": "object",
- "properties": {
- "object_info": {
- "type": "string"
- },
- "shard": {
- "type": "integer"
- },
- "osd": {
- "type": "integer"
- },
- "primary": {
- "type": "boolean"
- },
- "size": {
- "type": "integer"
- },
- "omap_digest": {
- "description": "Hex representation (e.g. 0x1abd1234)",
- "type": "string"
- },
- "data_digest": {
- "description": "Hex representation (e.g. 0x1abd1234)",
- "type": "string"
- },
- "errors": {
- "description": "Errors with this shard",
- "type": "array",
- "items": {
- "enum": [
- "missing",
- "stat_error",
- "read_error",
- "data_digest_mismatch_oi",
- "omap_digest_mismatch_oi",
- "size_mismatch_oi",
- "ec_hash_error",
- "ec_size_error",
- "oi_attr_missing",
- "oi_attr_corrupted",
- "obj_size_oi_mismatch",
- "ss_attr_missing",
- "ss_attr_corrupted"
- ]
- },
- "minItems": 0,
- "uniqueItems": true
- },
- "attrs": {
- "description": "If any shard's attr error is set then all attrs are here",
- "type": "array",
- "items": {
- "description": "Information about a particular shard of object",
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "value": {
- "type": "string"
- },
- "Base64": {
- "type": "boolean"
- }
- },
- "required": [
- "name",
- "value",
- "Base64"
- ],
- "additionalProperties": false,
- "minItems": 1
- }
- }
- },
- "required": [
- "osd",
- "primary",
- "errors"
- ]
- }
- }
- },
- "required": [
- "object",
- "union_shard_errors",
- "errors",
- "shards"
- ]
- }
- }
- },
- "required": [
- "epoch",
- "inconsistents"
- ]
-}
diff --git a/src/ceph/doc/rados/command/list-inconsistent-snap.json b/src/ceph/doc/rados/command/list-inconsistent-snap.json
deleted file mode 100644
index 0da6b0f..0000000
--- a/src/ceph/doc/rados/command/list-inconsistent-snap.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-04/schema#",
- "type": "object",
- "properties": {
- "epoch": {
- "description": "Scrub epoch",
- "type": "integer"
- },
- "inconsistents": {
- "type": "array",
- "items": {
- "type": "object",
- "properties": {
- "name": {
- "type": "string"
- },
- "nspace": {
- "type": "string"
- },
- "locator": {
- "type": "string"
- },
- "snap": {
- "oneOf": [
- {
- "type": "string",
- "enum": [
- "head",
- "snapdir"
- ]
- },
- {
- "type": "integer",
- "minimum": 0
- }
- ]
- },
- "errors": {
- "description": "Errors for this object's snap",
- "type": "array",
- "items": {
- "enum": [
- "ss_attr_missing",
- "ss_attr_corrupted",
- "oi_attr_missing",
- "oi_attr_corrupted",
- "snapset_mismatch",
- "head_mismatch",
- "headless",
- "size_mismatch",
- "extra_clones",
- "clone_missing"
- ]
- },
- "minItems": 1,
- "uniqueItems": true
- },
- "missing": {
- "description": "List of missing clones if clone_missing error set",
- "type": "array",
- "items": {
- "type": "integer"
- }
- },
- "extra_clones": {
- "description": "List of extra clones if extra_clones error set",
- "type": "array",
- "items": {
- "type": "integer"
- }
- }
- },
- "required": [
- "name",
- "nspace",
- "locator",
- "snap",
- "errors"
- ]
- }
- }
- },
- "required": [
- "epoch",
- "inconsistents"
- ]
-}
diff --git a/src/ceph/doc/rados/configuration/auth-config-ref.rst b/src/ceph/doc/rados/configuration/auth-config-ref.rst
deleted file mode 100644
index eb14fa4..0000000
--- a/src/ceph/doc/rados/configuration/auth-config-ref.rst
+++ /dev/null
@@ -1,432 +0,0 @@
-========================
- Cephx Config Reference
-========================
-
-The ``cephx`` protocol is enabled by default. Cryptographic authentication has
-some computational costs, though they should generally be quite low. If the
-network environment connecting your client and server hosts is very safe and
-you cannot afford authentication, you can turn it off. **This is not generally
-recommended**.
-
-.. note:: If you disable authentication, you are at risk of a man-in-the-middle
- attack altering your client/server messages, which could lead to disastrous
- security effects.
-
-For creating users, see `User Management`_. For details on the architecture
-of Cephx, see `Architecture - High Availability Authentication`_.
-
-
-Deployment Scenarios
-====================
-
-There are two main scenarios for deploying a Ceph cluster, which impact
-how you initially configure Cephx. Most first time Ceph users use
-``ceph-deploy`` to create a cluster (easiest). For clusters using
-other deployment tools (e.g., Chef, Juju, Puppet, etc.), you will need
-to use the manual procedures or configure your deployment tool to
-bootstrap your monitor(s).
-
-ceph-deploy
------------
-
-When you deploy a cluster with ``ceph-deploy``, you do not have to bootstrap the
-monitor manually or create the ``client.admin`` user or keyring. The steps you
-execute in the `Storage Cluster Quick Start`_ will invoke ``ceph-deploy`` to do
-that for you.
-
-When you execute ``ceph-deploy new {initial-monitor(s)}``, Ceph will create a
-monitor keyring for you (only used to bootstrap monitors), and it will generate
-an initial Ceph configuration file for you, which contains the following
-authentication settings, indicating that Ceph enables authentication by
-default::
-
- auth_cluster_required = cephx
- auth_service_required = cephx
- auth_client_required = cephx
-
-When you execute ``ceph-deploy mon create-initial``, Ceph will bootstrap the
-initial monitor(s), retrieve a ``ceph.client.admin.keyring`` file containing the
-key for the ``client.admin`` user. Additionally, it will also retrieve keyrings
-that give ``ceph-deploy`` and ``ceph-disk`` utilities the ability to prepare and
-activate OSDs and metadata servers.
-
-When you execute ``ceph-deploy admin {node-name}`` (**note:** Ceph must be
-installed first), you are pushing a Ceph configuration file and the
-``ceph.client.admin.keyring`` to the ``/etc/ceph`` directory of the node. You
-will be able to execute Ceph administrative functions as ``root`` on the command
-line of that node.
-
-
-Manual Deployment
------------------
-
-When you deploy a cluster manually, you have to bootstrap the monitor manually
-and create the ``client.admin`` user and keyring. To bootstrap monitors, follow
-the steps in `Monitor Bootstrapping`_. The steps for monitor bootstrapping are
-the logical steps you must perform when using third party deployment tools like
-Chef, Puppet, Juju, etc.
-
-
-Enabling/Disabling Cephx
-========================
-
-Enabling Cephx requires that you have deployed keys for your monitors,
-OSDs and metadata servers. If you are simply toggling Cephx on / off,
-you do not have to repeat the bootstrapping procedures.
-
-
-Enabling Cephx
---------------
-
-When ``cephx`` is enabled, Ceph will look for the keyring in the default search
-path, which includes ``/etc/ceph/$cluster.$name.keyring``. You can override
-this location by adding a ``keyring`` option in the ``[global]`` section of
-your `Ceph configuration`_ file, but this is not recommended.
-
-Execute the following procedures to enable ``cephx`` on a cluster with
-authentication disabled. If you (or your deployment utility) have already
-generated the keys, you may skip the steps related to generating keys.
-
-#. Create a ``client.admin`` key, and save a copy of the key for your client
- host::
-
- ceph auth get-or-create client.admin mon 'allow *' mds 'allow *' osd 'allow *' -o /etc/ceph/ceph.client.admin.keyring
-
- **Warning:** This will clobber any existing
- ``/etc/ceph/client.admin.keyring`` file. Do not perform this step if a
- deployment tool has already done it for you. Be careful!
-
-#. Create a keyring for your monitor cluster and generate a monitor
- secret key. ::
-
- ceph-authtool --create-keyring /tmp/ceph.mon.keyring --gen-key -n mon. --cap mon 'allow *'
-
-#. Copy the monitor keyring into a ``ceph.mon.keyring`` file in every monitor's
- ``mon data`` directory. For example, to copy it to ``mon.a`` in cluster ``ceph``,
- use the following::
-
- cp /tmp/ceph.mon.keyring /var/lib/ceph/mon/ceph-a/keyring
-
-#. Generate a secret key for every OSD, where ``{$id}`` is the OSD number::
-
- ceph auth get-or-create osd.{$id} mon 'allow rwx' osd 'allow *' -o /var/lib/ceph/osd/ceph-{$id}/keyring
-
-#. Generate a secret key for every MDS, where ``{$id}`` is the MDS letter::
-
- ceph auth get-or-create mds.{$id} mon 'allow rwx' osd 'allow *' mds 'allow *' -o /var/lib/ceph/mds/ceph-{$id}/keyring
-
-#. Enable ``cephx`` authentication by setting the following options in the
- ``[global]`` section of your `Ceph configuration`_ file::
-
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
-
-
-#. Start or restart the Ceph cluster. See `Operating a Cluster`_ for details.
-
-For details on bootstrapping a monitor manually, see `Manual Deployment`_.
-
-
-
-Disabling Cephx
----------------
-
-The following procedure describes how to disable Cephx. If your cluster
-environment is relatively safe, you can offset the computation expense of
-running authentication. **We do not recommend it.** However, it may be easier
-during setup and/or troubleshooting to temporarily disable authentication.
-
-#. Disable ``cephx`` authentication by setting the following options in the
- ``[global]`` section of your `Ceph configuration`_ file::
-
- auth cluster required = none
- auth service required = none
- auth client required = none
-
-
-#. Start or restart the Ceph cluster. See `Operating a Cluster`_ for details.
-
-
-Configuration Settings
-======================
-
-Enablement
-----------
-
-
-``auth cluster required``
-
-:Description: If enabled, the Ceph Storage Cluster daemons (i.e., ``ceph-mon``,
- ``ceph-osd``, and ``ceph-mds``) must authenticate with
- each other. Valid settings are ``cephx`` or ``none``.
-
-:Type: String
-:Required: No
-:Default: ``cephx``.
-
-
-``auth service required``
-
-:Description: If enabled, the Ceph Storage Cluster daemons require Ceph Clients
- to authenticate with the Ceph Storage Cluster in order to access
- Ceph services. Valid settings are ``cephx`` or ``none``.
-
-:Type: String
-:Required: No
-:Default: ``cephx``.
-
-
-``auth client required``
-
-:Description: If enabled, the Ceph Client requires the Ceph Storage Cluster to
- authenticate with the Ceph Client. Valid settings are ``cephx``
- or ``none``.
-
-:Type: String
-:Required: No
-:Default: ``cephx``.
-
-
-.. index:: keys; keyring
-
-Keys
-----
-
-When you run Ceph with authentication enabled, ``ceph`` administrative commands
-and Ceph Clients require authentication keys to access the Ceph Storage Cluster.
-
-The most common way to provide these keys to the ``ceph`` administrative
-commands and clients is to include a Ceph keyring under the ``/etc/ceph``
-directory. For Cuttlefish and later releases using ``ceph-deploy``, the filename
-is usually ``ceph.client.admin.keyring`` (or ``$cluster.client.admin.keyring``).
-If you include the keyring under the ``/etc/ceph`` directory, you don't need to
-specify a ``keyring`` entry in your Ceph configuration file.
-
-We recommend copying the Ceph Storage Cluster's keyring file to nodes where you
-will run administrative commands, because it contains the ``client.admin`` key.
-
-You may use ``ceph-deploy admin`` to perform this task. See `Create an Admin
-Host`_ for details. To perform this step manually, execute the following::
-
- sudo scp {user}@{ceph-cluster-host}:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
-
-.. tip:: Ensure the ``ceph.keyring`` file has appropriate permissions set
- (e.g., ``chmod 644``) on your client machine.
-
-You may specify the key itself in the Ceph configuration file using the ``key``
-setting (not recommended), or a path to a keyfile using the ``keyfile`` setting.
-
-
-``keyring``
-
-:Description: The path to the keyring file.
-:Type: String
-:Required: No
-:Default: ``/etc/ceph/$cluster.$name.keyring,/etc/ceph/$cluster.keyring,/etc/ceph/keyring,/etc/ceph/keyring.bin``
-
-
-``keyfile``
-
-:Description: The path to a key file (i.e,. a file containing only the key).
-:Type: String
-:Required: No
-:Default: None
-
-
-``key``
-
-:Description: The key (i.e., the text string of the key itself). Not recommended.
-:Type: String
-:Required: No
-:Default: None
-
-
-Daemon Keyrings
----------------
-
-Administrative users or deployment tools (e.g., ``ceph-deploy``) may generate
-daemon keyrings in the same way as generating user keyrings. By default, Ceph
-stores daemons keyrings inside their data directory. The default keyring
-locations, and the capabilities necessary for the daemon to function, are shown
-below.
-
-``ceph-mon``
-
-:Location: ``$mon_data/keyring``
-:Capabilities: ``mon 'allow *'``
-
-``ceph-osd``
-
-:Location: ``$osd_data/keyring``
-:Capabilities: ``mon 'allow profile osd' osd 'allow *'``
-
-``ceph-mds``
-
-:Location: ``$mds_data/keyring``
-:Capabilities: ``mds 'allow' mon 'allow profile mds' osd 'allow rwx'``
-
-``radosgw``
-
-:Location: ``$rgw_data/keyring``
-:Capabilities: ``mon 'allow rwx' osd 'allow rwx'``
-
-
-.. note:: The monitor keyring (i.e., ``mon.``) contains a key but no
- capabilities, and is not part of the cluster ``auth`` database.
-
-The daemon data directory locations default to directories of the form::
-
- /var/lib/ceph/$type/$cluster-$id
-
-For example, ``osd.12`` would be::
-
- /var/lib/ceph/osd/ceph-12
-
-You can override these locations, but it is not recommended.
-
-
-.. index:: signatures
-
-Signatures
-----------
-
-In Ceph Bobtail and subsequent versions, we prefer that Ceph authenticate all
-ongoing messages between the entities using the session key set up for that
-initial authentication. However, Argonaut and earlier Ceph daemons do not know
-how to perform ongoing message authentication. To maintain backward
-compatibility (e.g., running both Botbail and Argonaut daemons in the same
-cluster), message signing is **off** by default. If you are running Bobtail or
-later daemons exclusively, configure Ceph to require signatures.
-
-Like other parts of Ceph authentication, Ceph provides fine-grained control so
-you can enable/disable signatures for service messages between the client and
-Ceph, and you can enable/disable signatures for messages between Ceph daemons.
-
-
-``cephx require signatures``
-
-:Description: If set to ``true``, Ceph requires signatures on all message
- traffic between the Ceph Client and the Ceph Storage Cluster, and
- between daemons comprising the Ceph Storage Cluster.
-
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``cephx cluster require signatures``
-
-:Description: If set to ``true``, Ceph requires signatures on all message
- traffic between Ceph daemons comprising the Ceph Storage Cluster.
-
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``cephx service require signatures``
-
-:Description: If set to ``true``, Ceph requires signatures on all message
- traffic between Ceph Clients and the Ceph Storage Cluster.
-
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``cephx sign messages``
-
-:Description: If the Ceph version supports message signing, Ceph will sign
- all messages so they cannot be spoofed.
-
-:Type: Boolean
-:Default: ``true``
-
-
-Time to Live
-------------
-
-``auth service ticket ttl``
-
-:Description: When the Ceph Storage Cluster sends a Ceph Client a ticket for
- authentication, the Ceph Storage Cluster assigns the ticket a
- time to live.
-
-:Type: Double
-:Default: ``60*60``
-
-
-Backward Compatibility
-======================
-
-For Cuttlefish and earlier releases, see `Cephx`_.
-
-In Ceph Argonaut v0.48 and earlier versions, if you enable ``cephx``
-authentication, Ceph only authenticates the initial communication between the
-client and daemon; Ceph does not authenticate the subsequent messages they send
-to each other, which has security implications. In Ceph Bobtail and subsequent
-versions, Ceph authenticates all ongoing messages between the entities using the
-session key set up for that initial authentication.
-
-We identified a backward compatibility issue between Argonaut v0.48 (and prior
-versions) and Bobtail (and subsequent versions). During testing, if you
-attempted to use Argonaut (and earlier) daemons with Bobtail (and later)
-daemons, the Argonaut daemons did not know how to perform ongoing message
-authentication, while the Bobtail versions of the daemons insist on
-authenticating message traffic subsequent to the initial
-request/response--making it impossible for Argonaut (and prior) daemons to
-interoperate with Bobtail (and subsequent) daemons.
-
-We have addressed this potential problem by providing a means for Argonaut (and
-prior) systems to interact with Bobtail (and subsequent) systems. Here's how it
-works: by default, the newer systems will not insist on seeing signatures from
-older systems that do not know how to perform them, but will simply accept such
-messages without authenticating them. This new default behavior provides the
-advantage of allowing two different releases to interact. **We do not recommend
-this as a long term solution**. Allowing newer daemons to forgo ongoing
-authentication has the unfortunate security effect that an attacker with control
-of some of your machines or some access to your network can disable session
-security simply by claiming to be unable to sign messages.
-
-.. note:: Even if you don't actually run any old versions of Ceph,
- the attacker may be able to force some messages to be accepted unsigned in the
- default scenario. While running Cephx with the default scenario, Ceph still
- authenticates the initial communication, but you lose desirable session security.
-
-If you know that you are not running older versions of Ceph, or you are willing
-to accept that old servers and new servers will not be able to interoperate, you
-can eliminate this security risk. If you do so, any Ceph system that is new
-enough to support session authentication and that has Cephx enabled will reject
-unsigned messages. To preclude new servers from interacting with old servers,
-include the following in the ``[global]`` section of your `Ceph
-configuration`_ file directly below the line that specifies the use of Cephx
-for authentication::
-
- cephx require signatures = true ; everywhere possible
-
-You can also selectively require signatures for cluster internal
-communications only, separate from client-facing service::
-
- cephx cluster require signatures = true ; for cluster-internal communication
- cephx service require signatures = true ; for client-facing service
-
-An option to make a client require signatures from the cluster is not
-yet implemented.
-
-**We recommend migrating all daemons to the newer versions and enabling the
-foregoing flag** at the nearest practical time so that you may avail yourself
-of the enhanced authentication.
-
-.. note:: Ceph kernel modules do not support signatures yet.
-
-
-.. _Storage Cluster Quick Start: ../../../start/quick-ceph-deploy/
-.. _Monitor Bootstrapping: ../../../install/manual-deployment#monitor-bootstrapping
-.. _Operating a Cluster: ../../operations/operating
-.. _Manual Deployment: ../../../install/manual-deployment
-.. _Cephx: http://docs.ceph.com/docs/cuttlefish/rados/configuration/auth-config-ref/
-.. _Ceph configuration: ../ceph-conf
-.. _Create an Admin Host: ../../deployment/ceph-deploy-admin
-.. _Architecture - High Availability Authentication: ../../../architecture#high-availability-authentication
-.. _User Management: ../../operations/user-management
diff --git a/src/ceph/doc/rados/configuration/bluestore-config-ref.rst b/src/ceph/doc/rados/configuration/bluestore-config-ref.rst
deleted file mode 100644
index 8d8ace6..0000000
--- a/src/ceph/doc/rados/configuration/bluestore-config-ref.rst
+++ /dev/null
@@ -1,297 +0,0 @@
-==========================
-BlueStore Config Reference
-==========================
-
-Devices
-=======
-
-BlueStore manages either one, two, or (in certain cases) three storage
-devices.
-
-In the simplest case, BlueStore consumes a single (primary) storage
-device. The storage device is normally partitioned into two parts:
-
-#. A small partition is formatted with XFS and contains basic metadata
- for the OSD. This *data directory* includes information about the
- OSD (its identifier, which cluster it belongs to, and its private
- keyring.
-
-#. The rest of the device is normally a large partition occupying the
- rest of the device that is managed directly by BlueStore contains
- all of the actual data. This *primary device* is normally identifed
- by a ``block`` symlink in data directory.
-
-It is also possible to deploy BlueStore across two additional devices:
-
-* A *WAL device* can be used for BlueStore's internal journal or
- write-ahead log. It is identified by the ``block.wal`` symlink in
- the data directory. It is only useful to use a WAL device if the
- device is faster than the primary device (e.g., when it is on an SSD
- and the primary device is an HDD).
-* A *DB device* can be used for storing BlueStore's internal metadata.
- BlueStore (or rather, the embedded RocksDB) will put as much
- metadata as it can on the DB device to improve performance. If the
- DB device fills up, metadata will spill back onto the primary device
- (where it would have been otherwise). Again, it is only helpful to
- provision a DB device if it is faster than the primary device.
-
-If there is only a small amount of fast storage available (e.g., less
-than a gigabyte), we recommend using it as a WAL device. If there is
-more, provisioning a DB device makes more sense. The BlueStore
-journal will always be placed on the fastest device available, so
-using a DB device will provide the same benefit that the WAL device
-would while *also* allowing additional metadata to be stored there (if
-it will fix).
-
-A single-device BlueStore OSD can be provisioned with::
-
- ceph-disk prepare --bluestore <device>
-
-To specify a WAL device and/or DB device, ::
-
- ceph-disk prepare --bluestore <device> --block.wal <wal-device> --block-db <db-device>
-
-Cache size
-==========
-
-The amount of memory consumed by each OSD for BlueStore's cache is
-determined by the ``bluestore_cache_size`` configuration option. If
-that config option is not set (i.e., remains at 0), there is a
-different default value that is used depending on whether an HDD or
-SSD is used for the primary device (set by the
-``bluestore_cache_size_ssd`` and ``bluestore_cache_size_hdd`` config
-options).
-
-BlueStore and the rest of the Ceph OSD does the best it can currently
-to stick to the budgeted memory. Note that on top of the configured
-cache size, there is also memory consumed by the OSD itself, and
-generally some overhead due to memory fragmentation and other
-allocator overhead.
-
-The configured cache memory budget can be used in a few different ways:
-
-* Key/Value metadata (i.e., RocksDB's internal cache)
-* BlueStore metadata
-* BlueStore data (i.e., recently read or written object data)
-
-Cache memory usage is governed by the following options:
-``bluestore_cache_meta_ratio``, ``bluestore_cache_kv_ratio``, and
-``bluestore_cache_kv_max``. The fraction of the cache devoted to data
-is 1.0 minus the meta and kv ratios. The memory devoted to kv
-metadata (the RocksDB cache) is capped by ``bluestore_cache_kv_max``
-since our testing indicates there are diminishing returns beyond a
-certain point.
-
-``bluestore_cache_size``
-
-:Description: The amount of memory BlueStore will use for its cache. If zero, ``bluestore_cache_size_hdd`` or ``bluestore_cache_size_ssd`` will be used instead.
-:Type: Integer
-:Required: Yes
-:Default: ``0``
-
-``bluestore_cache_size_hdd``
-
-:Description: The default amount of memory BlueStore will use for its cache when backed by an HDD.
-:Type: Integer
-:Required: Yes
-:Default: ``1 * 1024 * 1024 * 1024`` (1 GB)
-
-``bluestore_cache_size_ssd``
-
-:Description: The default amount of memory BlueStore will use for its cache when backed by an SSD.
-:Type: Integer
-:Required: Yes
-:Default: ``3 * 1024 * 1024 * 1024`` (3 GB)
-
-``bluestore_cache_meta_ratio``
-
-:Description: The ratio of cache devoted to metadata.
-:Type: Floating point
-:Required: Yes
-:Default: ``.01``
-
-``bluestore_cache_kv_ratio``
-
-:Description: The ratio of cache devoted to key/value data (rocksdb).
-:Type: Floating point
-:Required: Yes
-:Default: ``.99``
-
-``bluestore_cache_kv_max``
-
-:Description: The maximum amount of cache devoted to key/value data (rocksdb).
-:Type: Floating point
-:Required: Yes
-:Default: ``512 * 1024*1024`` (512 MB)
-
-
-Checksums
-=========
-
-BlueStore checksums all metadata and data written to disk. Metadata
-checksumming is handled by RocksDB and uses `crc32c`. Data
-checksumming is done by BlueStore and can make use of `crc32c`,
-`xxhash32`, or `xxhash64`. The default is `crc32c` and should be
-suitable for most purposes.
-
-Full data checksumming does increase the amount of metadata that
-BlueStore must store and manage. When possible, e.g., when clients
-hint that data is written and read sequentially, BlueStore will
-checksum larger blocks, but in many cases it must store a checksum
-value (usually 4 bytes) for every 4 kilobyte block of data.
-
-It is possible to use a smaller checksum value by truncating the
-checksum to two or one byte, reducing the metadata overhead. The
-trade-off is that the probability that a random error will not be
-detected is higher with a smaller checksum, going from about one if
-four billion with a 32-bit (4 byte) checksum to one is 65,536 for a
-16-bit (2 byte) checksum or one in 256 for an 8-bit (1 byte) checksum.
-The smaller checksum values can be used by selecting `crc32c_16` or
-`crc32c_8` as the checksum algorithm.
-
-The *checksum algorithm* can be set either via a per-pool
-``csum_type`` property or the global config option. For example, ::
-
- ceph osd pool set <pool-name> csum_type <algorithm>
-
-``bluestore_csum_type``
-
-:Description: The default checksum algorithm to use.
-:Type: String
-:Required: Yes
-:Valid Settings: ``none``, ``crc32c``, ``crc32c_16``, ``crc32c_8``, ``xxhash32``, ``xxhash64``
-:Default: ``crc32c``
-
-
-Inline Compression
-==================
-
-BlueStore supports inline compression using `snappy`, `zlib`, or
-`lz4`. Please note that the `lz4` compression plugin is not
-distributed in the official release.
-
-Whether data in BlueStore is compressed is determined by a combination
-of the *compression mode* and any hints associated with a write
-operation. The modes are:
-
-* **none**: Never compress data.
-* **passive**: Do not compress data unless the write operation as a
- *compressible* hint set.
-* **aggressive**: Compress data unless the write operation as an
- *incompressible* hint set.
-* **force**: Try to compress data no matter what.
-
-For more information about the *compressible* and *incompressible* IO
-hints, see :doc:`/api/librados/#rados_set_alloc_hint`.
-
-Note that regardless of the mode, if the size of the data chunk is not
-reduced sufficiently it will not be used and the original
-(uncompressed) data will be stored. For example, if the ``bluestore
-compression required ratio`` is set to ``.7`` then the compressed data
-must be 70% of the size of the original (or smaller).
-
-The *compression mode*, *compression algorithm*, *compression required
-ratio*, *min blob size*, and *max blob size* can be set either via a
-per-pool property or a global config option. Pool properties can be
-set with::
-
- ceph osd pool set <pool-name> compression_algorithm <algorithm>
- ceph osd pool set <pool-name> compression_mode <mode>
- ceph osd pool set <pool-name> compression_required_ratio <ratio>
- ceph osd pool set <pool-name> compression_min_blob_size <size>
- ceph osd pool set <pool-name> compression_max_blob_size <size>
-
-``bluestore compression algorithm``
-
-:Description: The default compressor to use (if any) if the per-pool property
- ``compression_algorithm`` is not set. Note that zstd is *not*
- recommended for bluestore due to high CPU overhead when
- compressing small amounts of data.
-:Type: String
-:Required: No
-:Valid Settings: ``lz4``, ``snappy``, ``zlib``, ``zstd``
-:Default: ``snappy``
-
-``bluestore compression mode``
-
-:Description: The default policy for using compression if the per-pool property
- ``compression_mode`` is not set. ``none`` means never use
- compression. ``passive`` means use compression when
- `clients hint`_ that data is compressible. ``aggressive`` means
- use compression unless clients hint that data is not compressible.
- ``force`` means use compression under all circumstances even if
- the clients hint that the data is not compressible.
-:Type: String
-:Required: No
-:Valid Settings: ``none``, ``passive``, ``aggressive``, ``force``
-:Default: ``none``
-
-``bluestore compression required ratio``
-
-:Description: The ratio of the size of the data chunk after
- compression relative to the original size must be at
- least this small in order to store the compressed
- version.
-
-:Type: Floating point
-:Required: No
-:Default: .875
-
-``bluestore compression min blob size``
-
-:Description: Chunks smaller than this are never compressed.
- The per-pool property ``compression_min_blob_size`` overrides
- this setting.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 0
-
-``bluestore compression min blob size hdd``
-
-:Description: Default value of ``bluestore compression min blob size``
- for rotational media.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 128K
-
-``bluestore compression min blob size ssd``
-
-:Description: Default value of ``bluestore compression min blob size``
- for non-rotational (solid state) media.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 8K
-
-``bluestore compression max blob size``
-
-:Description: Chunks larger than this are broken into smaller blobs sizing
- ``bluestore compression max blob size`` before being compressed.
- The per-pool property ``compression_max_blob_size`` overrides
- this setting.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 0
-
-``bluestore compression max blob size hdd``
-
-:Description: Default value of ``bluestore compression max blob size``
- for rotational media.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 512K
-
-``bluestore compression max blob size ssd``
-
-:Description: Default value of ``bluestore compression max blob size``
- for non-rotational (solid state) media.
-
-:Type: Unsigned Integer
-:Required: No
-:Default: 64K
-
-.. _clients hint: ../../api/librados/#rados_set_alloc_hint
diff --git a/src/ceph/doc/rados/configuration/ceph-conf.rst b/src/ceph/doc/rados/configuration/ceph-conf.rst
deleted file mode 100644
index df88452..0000000
--- a/src/ceph/doc/rados/configuration/ceph-conf.rst
+++ /dev/null
@@ -1,629 +0,0 @@
-==================
- Configuring Ceph
-==================
-
-When you start the Ceph service, the initialization process activates a series
-of daemons that run in the background. A :term:`Ceph Storage Cluster` runs
-two types of daemons:
-
-- :term:`Ceph Monitor` (``ceph-mon``)
-- :term:`Ceph OSD Daemon` (``ceph-osd``)
-
-Ceph Storage Clusters that support the :term:`Ceph Filesystem` run at least one
-:term:`Ceph Metadata Server` (``ceph-mds``). Clusters that support :term:`Ceph
-Object Storage` run Ceph Gateway daemons (``radosgw``). For your convenience,
-each daemon has a series of default values (*i.e.*, many are set by
-``ceph/src/common/config_opts.h``). You may override these settings with a Ceph
-configuration file.
-
-
-.. _ceph-conf-file:
-
-The Configuration File
-======================
-
-When you start a Ceph Storage Cluster, each daemon looks for a Ceph
-configuration file (i.e., ``ceph.conf`` by default) that provides the cluster's
-configuration settings. For manual deployments, you need to create a Ceph
-configuration file. For tools that create configuration files for you (*e.g.*,
-``ceph-deploy``, Chef, etc.), you may use the information contained herein as a
-reference. The Ceph configuration file defines:
-
-- Cluster Identity
-- Authentication settings
-- Cluster membership
-- Host names
-- Host addresses
-- Paths to keyrings
-- Paths to journals
-- Paths to data
-- Other runtime options
-
-The default Ceph configuration file locations in sequential order include:
-
-#. ``$CEPH_CONF`` (*i.e.,* the path following the ``$CEPH_CONF``
- environment variable)
-#. ``-c path/path`` (*i.e.,* the ``-c`` command line argument)
-#. ``/etc/ceph/ceph.conf``
-#. ``~/.ceph/config``
-#. ``./ceph.conf`` (*i.e.,* in the current working directory)
-
-
-The Ceph configuration file uses an *ini* style syntax. You can add comments
-by preceding comments with a pound sign (#) or a semi-colon (;). For example:
-
-.. code-block:: ini
-
- # <--A number (#) sign precedes a comment.
- ; A comment may be anything.
- # Comments always follow a semi-colon (;) or a pound (#) on each line.
- # The end of the line terminates a comment.
- # We recommend that you provide comments in your configuration file(s).
-
-
-.. _ceph-conf-settings:
-
-Config Sections
-===============
-
-The configuration file can configure all Ceph daemons in a Ceph Storage Cluster,
-or all Ceph daemons of a particular type. To configure a series of daemons, the
-settings must be included under the processes that will receive the
-configuration as follows:
-
-``[global]``
-
-:Description: Settings under ``[global]`` affect all daemons in a Ceph Storage
- Cluster.
-
-:Example: ``auth supported = cephx``
-
-``[osd]``
-
-:Description: Settings under ``[osd]`` affect all ``ceph-osd`` daemons in
- the Ceph Storage Cluster, and override the same setting in
- ``[global]``.
-
-:Example: ``osd journal size = 1000``
-
-``[mon]``
-
-:Description: Settings under ``[mon]`` affect all ``ceph-mon`` daemons in
- the Ceph Storage Cluster, and override the same setting in
- ``[global]``.
-
-:Example: ``mon addr = 10.0.0.101:6789``
-
-
-``[mds]``
-
-:Description: Settings under ``[mds]`` affect all ``ceph-mds`` daemons in
- the Ceph Storage Cluster, and override the same setting in
- ``[global]``.
-
-:Example: ``host = myserver01``
-
-``[client]``
-
-:Description: Settings under ``[client]`` affect all Ceph Clients
- (e.g., mounted Ceph Filesystems, mounted Ceph Block Devices,
- etc.).
-
-:Example: ``log file = /var/log/ceph/radosgw.log``
-
-
-Global settings affect all instances of all daemon in the Ceph Storage Cluster.
-Use the ``[global]`` setting for values that are common for all daemons in the
-Ceph Storage Cluster. You can override each ``[global]`` setting by:
-
-#. Changing the setting in a particular process type
- (*e.g.,* ``[osd]``, ``[mon]``, ``[mds]`` ).
-
-#. Changing the setting in a particular process (*e.g.,* ``[osd.1]`` ).
-
-Overriding a global setting affects all child processes, except those that
-you specifically override in a particular daemon.
-
-A typical global setting involves activating authentication. For example:
-
-.. code-block:: ini
-
- [global]
- #Enable authentication between hosts within the cluster.
- #v 0.54 and earlier
- auth supported = cephx
-
- #v 0.55 and after
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
-
-
-You can specify settings that apply to a particular type of daemon. When you
-specify settings under ``[osd]``, ``[mon]`` or ``[mds]`` without specifying a
-particular instance, the setting will apply to all OSDs, monitors or metadata
-daemons respectively.
-
-A typical daemon-wide setting involves setting journal sizes, filestore
-settings, etc. For example:
-
-.. code-block:: ini
-
- [osd]
- osd journal size = 1000
-
-
-You may specify settings for particular instances of a daemon. You may specify
-an instance by entering its type, delimited by a period (.) and by the instance
-ID. The instance ID for a Ceph OSD Daemon is always numeric, but it may be
-alphanumeric for Ceph Monitors and Ceph Metadata Servers.
-
-.. code-block:: ini
-
- [osd.1]
- # settings affect osd.1 only.
-
- [mon.a]
- # settings affect mon.a only.
-
- [mds.b]
- # settings affect mds.b only.
-
-
-If the daemon you specify is a Ceph Gateway client, specify the daemon and the
-instance, delimited by a period (.). For example::
-
- [client.radosgw.instance-name]
- # settings affect client.radosgw.instance-name only.
-
-
-
-.. _ceph-metavariables:
-
-Metavariables
-=============
-
-Metavariables simplify Ceph Storage Cluster configuration dramatically. When a
-metavariable is set in a configuration value, Ceph expands the metavariable into
-a concrete value. Metavariables are very powerful when used within the
-``[global]``, ``[osd]``, ``[mon]``, ``[mds]`` or ``[client]`` sections of your
-configuration file. Ceph metavariables are similar to Bash shell expansion.
-
-Ceph supports the following metavariables:
-
-
-``$cluster``
-
-:Description: Expands to the Ceph Storage Cluster name. Useful when running
- multiple Ceph Storage Clusters on the same hardware.
-
-:Example: ``/etc/ceph/$cluster.keyring``
-:Default: ``ceph``
-
-
-``$type``
-
-:Description: Expands to one of ``mds``, ``osd``, or ``mon``, depending on the
- type of the instant daemon.
-
-:Example: ``/var/lib/ceph/$type``
-
-
-``$id``
-
-:Description: Expands to the daemon identifier. For ``osd.0``, this would be
- ``0``; for ``mds.a``, it would be ``a``.
-
-:Example: ``/var/lib/ceph/$type/$cluster-$id``
-
-
-``$host``
-
-:Description: Expands to the host name of the instant daemon.
-
-
-``$name``
-
-:Description: Expands to ``$type.$id``.
-:Example: ``/var/run/ceph/$cluster-$name.asok``
-
-``$pid``
-
-:Description: Expands to daemon pid.
-:Example: ``/var/run/ceph/$cluster-$name-$pid.asok``
-
-
-.. _ceph-conf-common-settings:
-
-Common Settings
-===============
-
-The `Hardware Recommendations`_ section provides some hardware guidelines for
-configuring a Ceph Storage Cluster. It is possible for a single :term:`Ceph
-Node` to run multiple daemons. For example, a single node with multiple drives
-may run one ``ceph-osd`` for each drive. Ideally, you will have a node for a
-particular type of process. For example, some nodes may run ``ceph-osd``
-daemons, other nodes may run ``ceph-mds`` daemons, and still other nodes may
-run ``ceph-mon`` daemons.
-
-Each node has a name identified by the ``host`` setting. Monitors also specify
-a network address and port (i.e., domain name or IP address) identified by the
-``addr`` setting. A basic configuration file will typically specify only
-minimal settings for each instance of monitor daemons. For example:
-
-.. code-block:: ini
-
- [global]
- mon_initial_members = ceph1
- mon_host = 10.0.0.1
-
-
-.. important:: The ``host`` setting is the short name of the node (i.e., not
- an fqdn). It is **NOT** an IP address either. Enter ``hostname -s`` on
- the command line to retrieve the name of the node. Do not use ``host``
- settings for anything other than initial monitors unless you are deploying
- Ceph manually. You **MUST NOT** specify ``host`` under individual daemons
- when using deployment tools like ``chef`` or ``ceph-deploy``, as those tools
- will enter the appropriate values for you in the cluster map.
-
-
-.. _ceph-network-config:
-
-Networks
-========
-
-See the `Network Configuration Reference`_ for a detailed discussion about
-configuring a network for use with Ceph.
-
-
-Monitors
-========
-
-Ceph production clusters typically deploy with a minimum 3 :term:`Ceph Monitor`
-daemons to ensure high availability should a monitor instance crash. At least
-three (3) monitors ensures that the Paxos algorithm can determine which version
-of the :term:`Ceph Cluster Map` is the most recent from a majority of Ceph
-Monitors in the quorum.
-
-.. note:: You may deploy Ceph with a single monitor, but if the instance fails,
- the lack of other monitors may interrupt data service availability.
-
-Ceph Monitors typically listen on port ``6789``. For example:
-
-.. code-block:: ini
-
- [mon.a]
- host = hostName
- mon addr = 150.140.130.120:6789
-
-By default, Ceph expects that you will store a monitor's data under the
-following path::
-
- /var/lib/ceph/mon/$cluster-$id
-
-You or a deployment tool (e.g., ``ceph-deploy``) must create the corresponding
-directory. With metavariables fully expressed and a cluster named "ceph", the
-foregoing directory would evaluate to::
-
- /var/lib/ceph/mon/ceph-a
-
-For additional details, see the `Monitor Config Reference`_.
-
-.. _Monitor Config Reference: ../mon-config-ref
-
-
-.. _ceph-osd-config:
-
-
-Authentication
-==============
-
-.. versionadded:: Bobtail 0.56
-
-For Bobtail (v 0.56) and beyond, you should expressly enable or disable
-authentication in the ``[global]`` section of your Ceph configuration file. ::
-
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
-
-Additionally, you should enable message signing. See `Cephx Config Reference`_ for details.
-
-.. important:: When upgrading, we recommend expressly disabling authentication
- first, then perform the upgrade. Once the upgrade is complete, re-enable
- authentication.
-
-.. _Cephx Config Reference: ../auth-config-ref
-
-
-.. _ceph-monitor-config:
-
-
-OSDs
-====
-
-Ceph production clusters typically deploy :term:`Ceph OSD Daemons` where one node
-has one OSD daemon running a filestore on one storage drive. A typical
-deployment specifies a journal size. For example:
-
-.. code-block:: ini
-
- [osd]
- osd journal size = 10000
-
- [osd.0]
- host = {hostname} #manual deployments only.
-
-
-By default, Ceph expects that you will store a Ceph OSD Daemon's data with the
-following path::
-
- /var/lib/ceph/osd/$cluster-$id
-
-You or a deployment tool (e.g., ``ceph-deploy``) must create the corresponding
-directory. With metavariables fully expressed and a cluster named "ceph", the
-foregoing directory would evaluate to::
-
- /var/lib/ceph/osd/ceph-0
-
-You may override this path using the ``osd data`` setting. We don't recommend
-changing the default location. Create the default directory on your OSD host.
-
-::
-
- ssh {osd-host}
- sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}
-
-The ``osd data`` path ideally leads to a mount point with a hard disk that is
-separate from the hard disk storing and running the operating system and
-daemons. If the OSD is for a disk other than the OS disk, prepare it for
-use with Ceph, and mount it to the directory you just created::
-
- ssh {new-osd-host}
- sudo mkfs -t {fstype} /dev/{disk}
- sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
-
-We recommend using the ``xfs`` file system when running
-:command:`mkfs`. (``btrfs`` and ``ext4`` are not recommended and no
-longer tested.)
-
-See the `OSD Config Reference`_ for additional configuration details.
-
-
-Heartbeats
-==========
-
-During runtime operations, Ceph OSD Daemons check up on other Ceph OSD Daemons
-and report their findings to the Ceph Monitor. You do not have to provide any
-settings. However, if you have network latency issues, you may wish to modify
-the settings.
-
-See `Configuring Monitor/OSD Interaction`_ for additional details.
-
-
-.. _ceph-logging-and-debugging:
-
-Logs / Debugging
-================
-
-Sometimes you may encounter issues with Ceph that require
-modifying logging output and using Ceph's debugging. See `Debugging and
-Logging`_ for details on log rotation.
-
-.. _Debugging and Logging: ../../troubleshooting/log-and-debug
-
-
-Example ceph.conf
-=================
-
-.. literalinclude:: demo-ceph.conf
- :language: ini
-
-.. _ceph-runtime-config:
-
-Runtime Changes
-===============
-
-Ceph allows you to make changes to the configuration of a ``ceph-osd``,
-``ceph-mon``, or ``ceph-mds`` daemon at runtime. This capability is quite
-useful for increasing/decreasing logging output, enabling/disabling debug
-settings, and even for runtime optimization. The following reflects runtime
-configuration usage::
-
- ceph tell {daemon-type}.{id or *} injectargs --{name} {value} [--{name} {value}]
-
-Replace ``{daemon-type}`` with one of ``osd``, ``mon`` or ``mds``. You may apply
-the runtime setting to all daemons of a particular type with ``*``, or specify
-a specific daemon's ID (i.e., its number or letter). For example, to increase
-debug logging for a ``ceph-osd`` daemon named ``osd.0``, execute the following::
-
- ceph tell osd.0 injectargs --debug-osd 20 --debug-ms 1
-
-In your ``ceph.conf`` file, you may use spaces when specifying a
-setting name. When specifying a setting name on the command line,
-ensure that you use an underscore or hyphen (``_`` or ``-``) between
-terms (e.g., ``debug osd`` becomes ``--debug-osd``).
-
-
-Viewing a Configuration at Runtime
-==================================
-
-If your Ceph Storage Cluster is running, and you would like to see the
-configuration settings from a running daemon, execute the following::
-
- ceph daemon {daemon-type}.{id} config show | less
-
-If you are on a machine where osd.0 is running, the command would be::
-
- ceph daemon osd.0 config show | less
-
-Reading Configuration Metadata at Runtime
-=========================================
-
-Information about the available configuration options is available via
-the ``config help`` command:
-
-::
-
- ceph daemon {daemon-type}.{id} config help | less
-
-
-This metadata is primarily intended to be used when integrating other
-software with Ceph, such as graphical user interfaces. The output is
-a list of JSON objects, for example:
-
-::
-
- {
- "name": "mon_host",
- "type": "std::string",
- "level": "basic",
- "desc": "list of hosts or addresses to search for a monitor",
- "long_desc": "This is a comma, whitespace, or semicolon separated list of IP addresses or hostnames. Hostnames are resolved via DNS and all A or AAAA records are included in the search list.",
- "default": "",
- "daemon_default": "",
- "tags": [],
- "services": [
- "common"
- ],
- "see_also": [],
- "enum_values": [],
- "min": "",
- "max": ""
- }
-
-type
-____
-
-The type of the setting, given as a C++ type name.
-
-level
-_____
-
-One of `basic`, `advanced`, `dev`. The `dev` options are not intended
-for use outside of development and testing.
-
-desc
-____
-
-A short description -- this is a sentence fragment suitable for display
-in small spaces like a single line in a list.
-
-long_desc
-_________
-
-A full description of what the setting does, this may be as long as needed.
-
-default
-_______
-
-The default value, if any.
-
-daemon_default
-______________
-
-An alternative default used for daemons (services) as opposed to clients.
-
-tags
-____
-
-A list of strings indicating topics to which this setting relates. Examples
-of tags are `performance` and `networking`.
-
-services
-________
-
-A list of strings indicating which Ceph services the setting relates to, such
-as `osd`, `mds`, `mon`. For settings that are relevant to any Ceph client
-or server, `common` is used.
-
-see_also
-________
-
-A list of strings indicating other configuration options that may also
-be of interest to a user setting this option.
-
-enum_values
-___________
-
-Optional: a list of strings indicating the valid settings.
-
-min, max
-________
-
-Optional: upper and lower (inclusive) bounds on valid settings.
-
-
-
-
-Running Multiple Clusters
-=========================
-
-With Ceph, you can run multiple Ceph Storage Clusters on the same hardware.
-Running multiple clusters provides a higher level of isolation compared to
-using different pools on the same cluster with different CRUSH rulesets. A
-separate cluster will have separate monitor, OSD and metadata server processes.
-When running Ceph with default settings, the default cluster name is ``ceph``,
-which means you would save your Ceph configuration file with the file name
-``ceph.conf`` in the ``/etc/ceph`` default directory.
-
-See `ceph-deploy new`_ for details.
-.. _ceph-deploy new:../ceph-deploy-new
-
-When you run multiple clusters, you must name your cluster and save the Ceph
-configuration file with the name of the cluster. For example, a cluster named
-``openstack`` will have a Ceph configuration file with the file name
-``openstack.conf`` in the ``/etc/ceph`` default directory.
-
-.. important:: Cluster names must consist of letters a-z and digits 0-9 only.
-
-Separate clusters imply separate data disks and journals, which are not shared
-between clusters. Referring to `Metavariables`_, the ``$cluster`` metavariable
-evaluates to the cluster name (i.e., ``openstack`` in the foregoing example).
-Various settings use the ``$cluster`` metavariable, including:
-
-- ``keyring``
-- ``admin socket``
-- ``log file``
-- ``pid file``
-- ``mon data``
-- ``mon cluster log file``
-- ``osd data``
-- ``osd journal``
-- ``mds data``
-- ``rgw data``
-
-See `General Settings`_, `OSD Settings`_, `Monitor Settings`_, `MDS Settings`_,
-`RGW Settings`_ and `Log Settings`_ for relevant path defaults that use the
-``$cluster`` metavariable.
-
-.. _General Settings: ../general-config-ref
-.. _OSD Settings: ../osd-config-ref
-.. _Monitor Settings: ../mon-config-ref
-.. _MDS Settings: ../../../cephfs/mds-config-ref
-.. _RGW Settings: ../../../radosgw/config-ref/
-.. _Log Settings: ../../troubleshooting/log-and-debug
-
-
-When creating default directories or files, you should use the cluster
-name at the appropriate places in the path. For example::
-
- sudo mkdir /var/lib/ceph/osd/openstack-0
- sudo mkdir /var/lib/ceph/mon/openstack-a
-
-.. important:: When running monitors on the same host, you should use
- different ports. By default, monitors use port 6789. If you already
- have monitors using port 6789, use a different port for your other cluster(s).
-
-To invoke a cluster other than the default ``ceph`` cluster, use the
-``-c {filename}.conf`` option with the ``ceph`` command. For example::
-
- ceph -c {cluster-name}.conf health
- ceph -c openstack.conf health
-
-
-.. _Hardware Recommendations: ../../../start/hardware-recommendations
-.. _Network Configuration Reference: ../network-config-ref
-.. _OSD Config Reference: ../osd-config-ref
-.. _Configuring Monitor/OSD Interaction: ../mon-osd-interaction
-.. _ceph-deploy new: ../../deployment/ceph-deploy-new#naming-a-cluster
diff --git a/src/ceph/doc/rados/configuration/demo-ceph.conf b/src/ceph/doc/rados/configuration/demo-ceph.conf
deleted file mode 100644
index ba86d53..0000000
--- a/src/ceph/doc/rados/configuration/demo-ceph.conf
+++ /dev/null
@@ -1,31 +0,0 @@
-[global]
-fsid = {cluster-id}
-mon initial members = {hostname}[, {hostname}]
-mon host = {ip-address}[, {ip-address}]
-
-#All clusters have a front-side public network.
-#If you have two NICs, you can configure a back side cluster
-#network for OSD object replication, heart beats, backfilling,
-#recovery, etc.
-public network = {network}[, {network}]
-#cluster network = {network}[, {network}]
-
-#Clusters require authentication by default.
-auth cluster required = cephx
-auth service required = cephx
-auth client required = cephx
-
-#Choose reasonable numbers for your journals, number of replicas
-#and placement groups.
-osd journal size = {n}
-osd pool default size = {n} # Write an object n times.
-osd pool default min size = {n} # Allow writing n copy in a degraded state.
-osd pool default pg num = {n}
-osd pool default pgp num = {n}
-
-#Choose a reasonable crush leaf type.
-#0 for a 1-node cluster.
-#1 for a multi node cluster in a single rack
-#2 for a multi node, multi chassis cluster with multiple hosts in a chassis
-#3 for a multi node cluster with hosts across racks, etc.
-osd crush chooseleaf type = {n} \ No newline at end of file
diff --git a/src/ceph/doc/rados/configuration/filestore-config-ref.rst b/src/ceph/doc/rados/configuration/filestore-config-ref.rst
deleted file mode 100644
index 4dff60c..0000000
--- a/src/ceph/doc/rados/configuration/filestore-config-ref.rst
+++ /dev/null
@@ -1,365 +0,0 @@
-============================
- Filestore Config Reference
-============================
-
-
-``filestore debug omap check``
-
-:Description: Debugging check on synchronization. Expensive. For debugging only.
-:Type: Boolean
-:Required: No
-:Default: ``0``
-
-
-.. index:: filestore; extended attributes
-
-Extended Attributes
-===================
-
-Extended Attributes (XATTRs) are an important aspect in your configuration.
-Some file systems have limits on the number of bytes stored in XATTRS.
-Additionally, in some cases, the filesystem may not be as fast as an alternative
-method of storing XATTRs. The following settings may help improve performance
-by using a method of storing XATTRs that is extrinsic to the underlying filesystem.
-
-Ceph XATTRs are stored as ``inline xattr``, using the XATTRs provided
-by the underlying file system, if it does not impose a size limit. If
-there is a size limit (4KB total on ext4, for instance), some Ceph
-XATTRs will be stored in an key/value database when either the
-``filestore max inline xattr size`` or ``filestore max inline
-xattrs`` threshold is reached.
-
-
-``filestore max inline xattr size``
-
-:Description: The maximimum size of an XATTR stored in the filesystem (i.e., XFS,
- btrfs, ext4, etc.) per object. Should not be larger than the
- filesytem can handle. Default value of 0 means to use the value
- specific to the underlying filesystem.
-:Type: Unsigned 32-bit Integer
-:Required: No
-:Default: ``0``
-
-
-``filestore max inline xattr size xfs``
-
-:Description: The maximimum size of an XATTR stored in the XFS filesystem.
- Only used if ``filestore max inline xattr size`` == 0.
-:Type: Unsigned 32-bit Integer
-:Required: No
-:Default: ``65536``
-
-
-``filestore max inline xattr size btrfs``
-
-:Description: The maximimum size of an XATTR stored in the btrfs filesystem.
- Only used if ``filestore max inline xattr size`` == 0.
-:Type: Unsigned 32-bit Integer
-:Required: No
-:Default: ``2048``
-
-
-``filestore max inline xattr size other``
-
-:Description: The maximimum size of an XATTR stored in other filesystems.
- Only used if ``filestore max inline xattr size`` == 0.
-:Type: Unsigned 32-bit Integer
-:Required: No
-:Default: ``512``
-
-
-``filestore max inline xattrs``
-
-:Description: The maximum number of XATTRs stored in the filesystem per object.
- Default value of 0 means to use the value specific to the
- underlying filesystem.
-:Type: 32-bit Integer
-:Required: No
-:Default: ``0``
-
-
-``filestore max inline xattrs xfs``
-
-:Description: The maximum number of XATTRs stored in the XFS filesystem per object.
- Only used if ``filestore max inline xattrs`` == 0.
-:Type: 32-bit Integer
-:Required: No
-:Default: ``10``
-
-
-``filestore max inline xattrs btrfs``
-
-:Description: The maximum number of XATTRs stored in the btrfs filesystem per object.
- Only used if ``filestore max inline xattrs`` == 0.
-:Type: 32-bit Integer
-:Required: No
-:Default: ``10``
-
-
-``filestore max inline xattrs other``
-
-:Description: The maximum number of XATTRs stored in other filesystems per object.
- Only used if ``filestore max inline xattrs`` == 0.
-:Type: 32-bit Integer
-:Required: No
-:Default: ``2``
-
-.. index:: filestore; synchronization
-
-Synchronization Intervals
-=========================
-
-Periodically, the filestore needs to quiesce writes and synchronize the
-filesystem, which creates a consistent commit point. It can then free journal
-entries up to the commit point. Synchronizing more frequently tends to reduce
-the time required to perform synchronization, and reduces the amount of data
-that needs to remain in the journal. Less frequent synchronization allows the
-backing filesystem to coalesce small writes and metadata updates more
-optimally--potentially resulting in more efficient synchronization.
-
-
-``filestore max sync interval``
-
-:Description: The maximum interval in seconds for synchronizing the filestore.
-:Type: Double
-:Required: No
-:Default: ``5``
-
-
-``filestore min sync interval``
-
-:Description: The minimum interval in seconds for synchronizing the filestore.
-:Type: Double
-:Required: No
-:Default: ``.01``
-
-
-.. index:: filestore; flusher
-
-Flusher
-=======
-
-The filestore flusher forces data from large writes to be written out using
-``sync file range`` before the sync in order to (hopefully) reduce the cost of
-the eventual sync. In practice, disabling 'filestore flusher' seems to improve
-performance in some cases.
-
-
-``filestore flusher``
-
-:Description: Enables the filestore flusher.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-.. deprecated:: v.65
-
-``filestore flusher max fds``
-
-:Description: Sets the maximum number of file descriptors for the flusher.
-:Type: Integer
-:Required: No
-:Default: ``512``
-
-.. deprecated:: v.65
-
-``filestore sync flush``
-
-:Description: Enables the synchronization flusher.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-.. deprecated:: v.65
-
-``filestore fsync flushes journal data``
-
-:Description: Flush journal data during filesystem synchronization.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-.. index:: filestore; queue
-
-Queue
-=====
-
-The following settings provide limits on the size of filestore queue.
-
-``filestore queue max ops``
-
-:Description: Defines the maximum number of in progress operations the file store accepts before blocking on queuing new operations.
-:Type: Integer
-:Required: No. Minimal impact on performance.
-:Default: ``50``
-
-
-``filestore queue max bytes``
-
-:Description: The maximum number of bytes for an operation.
-:Type: Integer
-:Required: No
-:Default: ``100 << 20``
-
-
-
-
-.. index:: filestore; timeouts
-
-Timeouts
-========
-
-
-``filestore op threads``
-
-:Description: The number of filesystem operation threads that execute in parallel.
-:Type: Integer
-:Required: No
-:Default: ``2``
-
-
-``filestore op thread timeout``
-
-:Description: The timeout for a filesystem operation thread (in seconds).
-:Type: Integer
-:Required: No
-:Default: ``60``
-
-
-``filestore op thread suicide timeout``
-
-:Description: The timeout for a commit operation before cancelling the commit (in seconds).
-:Type: Integer
-:Required: No
-:Default: ``180``
-
-
-.. index:: filestore; btrfs
-
-B-Tree Filesystem
-=================
-
-
-``filestore btrfs snap``
-
-:Description: Enable snapshots for a ``btrfs`` filestore.
-:Type: Boolean
-:Required: No. Only used for ``btrfs``.
-:Default: ``true``
-
-
-``filestore btrfs clone range``
-
-:Description: Enable cloning ranges for a ``btrfs`` filestore.
-:Type: Boolean
-:Required: No. Only used for ``btrfs``.
-:Default: ``true``
-
-
-.. index:: filestore; journal
-
-Journal
-=======
-
-
-``filestore journal parallel``
-
-:Description: Enables parallel journaling, default for btrfs.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``filestore journal writeahead``
-
-:Description: Enables writeahead journaling, default for xfs.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``filestore journal trailing``
-
-:Description: Deprecated, never use.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-Misc
-====
-
-
-``filestore merge threshold``
-
-:Description: Min number of files in a subdir before merging into parent
- NOTE: A negative value means to disable subdir merging
-:Type: Integer
-:Required: No
-:Default: ``10``
-
-
-``filestore split multiple``
-
-:Description: ``(filestore_split_multiple * abs(filestore_merge_threshold) + (rand() % filestore_split_rand_factor)) * 16``
- is the maximum number of files in a subdirectory before
- splitting into child directories.
-
-:Type: Integer
-:Required: No
-:Default: ``2``
-
-
-``filestore split rand factor``
-
-:Description: A random factor added to the split threshold to avoid
- too many filestore splits occurring at once. See
- ``filestore split multiple`` for details.
- This can only be changed for an existing osd offline,
- via ceph-objectstore-tool's apply-layout-settings command.
-
-:Type: Unsigned 32-bit Integer
-:Required: No
-:Default: ``20``
-
-
-``filestore update to``
-
-:Description: Limits filestore auto upgrade to specified version.
-:Type: Integer
-:Required: No
-:Default: ``1000``
-
-
-``filestore blackhole``
-
-:Description: Drop any new transactions on the floor.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``filestore dump file``
-
-:Description: File onto which store transaction dumps.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``filestore kill at``
-
-:Description: inject a failure at the n'th opportunity
-:Type: String
-:Required: No
-:Default: ``false``
-
-
-``filestore fail eio``
-
-:Description: Fail/Crash on eio.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
diff --git a/src/ceph/doc/rados/configuration/general-config-ref.rst b/src/ceph/doc/rados/configuration/general-config-ref.rst
deleted file mode 100644
index ca09ee5..0000000
--- a/src/ceph/doc/rados/configuration/general-config-ref.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-==========================
- General Config Reference
-==========================
-
-
-``fsid``
-
-:Description: The filesystem ID. One per cluster.
-:Type: UUID
-:Required: No.
-:Default: N/A. Usually generated by deployment tools.
-
-
-``admin socket``
-
-:Description: The socket for executing administrative commands on a daemon,
- irrespective of whether Ceph Monitors have established a quorum.
-
-:Type: String
-:Required: No
-:Default: ``/var/run/ceph/$cluster-$name.asok``
-
-
-``pid file``
-
-:Description: The file in which the mon, osd or mds will write its
- PID. For instance, ``/var/run/$cluster/$type.$id.pid``
- will create /var/run/ceph/mon.a.pid for the ``mon`` with
- id ``a`` running in the ``ceph`` cluster. The ``pid
- file`` is removed when the daemon stops gracefully. If
- the process is not daemonized (i.e. runs with the ``-f``
- or ``-d`` option), the ``pid file`` is not created.
-:Type: String
-:Required: No
-:Default: No
-
-
-``chdir``
-
-:Description: The directory Ceph daemons change to once they are
- up and running. Default ``/`` directory recommended.
-
-:Type: String
-:Required: No
-:Default: ``/``
-
-
-``max open files``
-
-:Description: If set, when the :term:`Ceph Storage Cluster` starts, Ceph sets
- the ``max open fds`` at the OS level (i.e., the max # of file
- descriptors). It helps prevents Ceph OSD Daemons from running out
- of file descriptors.
-
-:Type: 64-bit Integer
-:Required: No
-:Default: ``0``
-
-
-``fatal signal handlers``
-
-:Description: If set, we will install signal handlers for SEGV, ABRT, BUS, ILL,
- FPE, XCPU, XFSZ, SYS signals to generate a useful log message
-
-:Type: Boolean
-:Default: ``true``
diff --git a/src/ceph/doc/rados/configuration/index.rst b/src/ceph/doc/rados/configuration/index.rst
deleted file mode 100644
index 48b58ef..0000000
--- a/src/ceph/doc/rados/configuration/index.rst
+++ /dev/null
@@ -1,64 +0,0 @@
-===============
- Configuration
-===============
-
-Ceph can run with a cluster containing thousands of Object Storage Devices
-(OSDs). A minimal system will have at least two OSDs for data replication. To
-configure OSD clusters, you must provide settings in the configuration file.
-Ceph provides default values for many settings, which you can override in the
-configuration file. Additionally, you can make runtime modification to the
-configuration using command-line utilities.
-
-When Ceph starts, it activates three daemons:
-
-- ``ceph-mon`` (mandatory)
-- ``ceph-osd`` (mandatory)
-- ``ceph-mds`` (mandatory for cephfs only)
-
-Each process, daemon or utility loads the host's configuration file. A process
-may have information about more than one daemon instance (*i.e.,* multiple
-contexts). A daemon or utility only has information about a single daemon
-instance (a single context).
-
-.. note:: Ceph can run on a single host for evaluation purposes.
-
-
-.. raw:: html
-
- <table cellpadding="10"><colgroup><col width="50%"><col width="50%"></colgroup><tbody valign="top"><tr><td><h3>Configuring the Object Store</h3>
-
-For general object store configuration, refer to the following:
-
-.. toctree::
- :maxdepth: 1
-
- Storage devices <storage-devices>
- ceph-conf
-
-
-.. raw:: html
-
- </td><td><h3>Reference</h3>
-
-To optimize the performance of your cluster, refer to the following:
-
-.. toctree::
- :maxdepth: 1
-
- Network Settings <network-config-ref>
- Auth Settings <auth-config-ref>
- Monitor Settings <mon-config-ref>
- mon-lookup-dns
- Heartbeat Settings <mon-osd-interaction>
- OSD Settings <osd-config-ref>
- BlueStore Settings <bluestore-config-ref>
- FileStore Settings <filestore-config-ref>
- Journal Settings <journal-ref>
- Pool, PG & CRUSH Settings <pool-pg-config-ref.rst>
- Messaging Settings <ms-ref>
- General Settings <general-config-ref>
-
-
-.. raw:: html
-
- </td></tr></tbody></table>
diff --git a/src/ceph/doc/rados/configuration/journal-ref.rst b/src/ceph/doc/rados/configuration/journal-ref.rst
deleted file mode 100644
index 97300f4..0000000
--- a/src/ceph/doc/rados/configuration/journal-ref.rst
+++ /dev/null
@@ -1,116 +0,0 @@
-==========================
- Journal Config Reference
-==========================
-
-.. index:: journal; journal configuration
-
-Ceph OSDs use a journal for two reasons: speed and consistency.
-
-- **Speed:** The journal enables the Ceph OSD Daemon to commit small writes
- quickly. Ceph writes small, random i/o to the journal sequentially, which
- tends to speed up bursty workloads by allowing the backing filesystem more
- time to coalesce writes. The Ceph OSD Daemon's journal, however, can lead
- to spiky performance with short spurts of high-speed writes followed by
- periods without any write progress as the filesystem catches up to the
- journal.
-
-- **Consistency:** Ceph OSD Daemons require a filesystem interface that
- guarantees atomic compound operations. Ceph OSD Daemons write a description
- of the operation to the journal and apply the operation to the filesystem.
- This enables atomic updates to an object (for example, placement group
- metadata). Every few seconds--between ``filestore max sync interval`` and
- ``filestore min sync interval``--the Ceph OSD Daemon stops writes and
- synchronizes the journal with the filesystem, allowing Ceph OSD Daemons to
- trim operations from the journal and reuse the space. On failure, Ceph
- OSD Daemons replay the journal starting after the last synchronization
- operation.
-
-Ceph OSD Daemons support the following journal settings:
-
-
-``journal dio``
-
-:Description: Enables direct i/o to the journal. Requires ``journal block
- align`` set to ``true``.
-
-:Type: Boolean
-:Required: Yes when using ``aio``.
-:Default: ``true``
-
-
-
-``journal aio``
-
-.. versionchanged:: 0.61 Cuttlefish
-
-:Description: Enables using ``libaio`` for asynchronous writes to the journal.
- Requires ``journal dio`` set to ``true``.
-
-:Type: Boolean
-:Required: No.
-:Default: Version 0.61 and later, ``true``. Version 0.60 and earlier, ``false``.
-
-
-``journal block align``
-
-:Description: Block aligns write operations. Required for ``dio`` and ``aio``.
-:Type: Boolean
-:Required: Yes when using ``dio`` and ``aio``.
-:Default: ``true``
-
-
-``journal max write bytes``
-
-:Description: The maximum number of bytes the journal will write at
- any one time.
-
-:Type: Integer
-:Required: No
-:Default: ``10 << 20``
-
-
-``journal max write entries``
-
-:Description: The maximum number of entries the journal will write at
- any one time.
-
-:Type: Integer
-:Required: No
-:Default: ``100``
-
-
-``journal queue max ops``
-
-:Description: The maximum number of operations allowed in the queue at
- any one time.
-
-:Type: Integer
-:Required: No
-:Default: ``500``
-
-
-``journal queue max bytes``
-
-:Description: The maximum number of bytes allowed in the queue at
- any one time.
-
-:Type: Integer
-:Required: No
-:Default: ``10 << 20``
-
-
-``journal align min size``
-
-:Description: Align data payloads greater than the specified minimum.
-:Type: Integer
-:Required: No
-:Default: ``64 << 10``
-
-
-``journal zero on create``
-
-:Description: Causes the file store to overwrite the entire journal with
- ``0``'s during ``mkfs``.
-:Type: Boolean
-:Required: No
-:Default: ``false``
diff --git a/src/ceph/doc/rados/configuration/mon-config-ref.rst b/src/ceph/doc/rados/configuration/mon-config-ref.rst
deleted file mode 100644
index 6c8e92b..0000000
--- a/src/ceph/doc/rados/configuration/mon-config-ref.rst
+++ /dev/null
@@ -1,1222 +0,0 @@
-==========================
- Monitor Config Reference
-==========================
-
-Understanding how to configure a :term:`Ceph Monitor` is an important part of
-building a reliable :term:`Ceph Storage Cluster`. **All Ceph Storage Clusters
-have at least one monitor**. A monitor configuration usually remains fairly
-consistent, but you can add, remove or replace a monitor in a cluster. See
-`Adding/Removing a Monitor`_ and `Add/Remove a Monitor (ceph-deploy)`_ for
-details.
-
-
-.. index:: Ceph Monitor; Paxos
-
-Background
-==========
-
-Ceph Monitors maintain a "master copy" of the :term:`cluster map`, which means a
-:term:`Ceph Client` can determine the location of all Ceph Monitors, Ceph OSD
-Daemons, and Ceph Metadata Servers just by connecting to one Ceph Monitor and
-retrieving a current cluster map. Before Ceph Clients can read from or write to
-Ceph OSD Daemons or Ceph Metadata Servers, they must connect to a Ceph Monitor
-first. With a current copy of the cluster map and the CRUSH algorithm, a Ceph
-Client can compute the location for any object. The ability to compute object
-locations allows a Ceph Client to talk directly to Ceph OSD Daemons, which is a
-very important aspect of Ceph's high scalability and performance. See
-`Scalability and High Availability`_ for additional details.
-
-The primary role of the Ceph Monitor is to maintain a master copy of the cluster
-map. Ceph Monitors also provide authentication and logging services. Ceph
-Monitors write all changes in the monitor services to a single Paxos instance,
-and Paxos writes the changes to a key/value store for strong consistency. Ceph
-Monitors can query the most recent version of the cluster map during sync
-operations. Ceph Monitors leverage the key/value store's snapshots and iterators
-(using leveldb) to perform store-wide synchronization.
-
-.. ditaa::
-
- /-------------\ /-------------\
- | Monitor | Write Changes | Paxos |
- | cCCC +-------------->+ cCCC |
- | | | |
- +-------------+ \------+------/
- | Auth | |
- +-------------+ | Write Changes
- | Log | |
- +-------------+ v
- | Monitor Map | /------+------\
- +-------------+ | Key / Value |
- | OSD Map | | Store |
- +-------------+ | cCCC |
- | PG Map | \------+------/
- +-------------+ ^
- | MDS Map | | Read Changes
- +-------------+ |
- | cCCC |*---------------------+
- \-------------/
-
-
-.. deprecated:: version 0.58
-
-In Ceph versions 0.58 and earlier, Ceph Monitors use a Paxos instance for
-each service and store the map as a file.
-
-.. index:: Ceph Monitor; cluster map
-
-Cluster Maps
-------------
-
-The cluster map is a composite of maps, including the monitor map, the OSD map,
-the placement group map and the metadata server map. The cluster map tracks a
-number of important things: which processes are ``in`` the Ceph Storage Cluster;
-which processes that are ``in`` the Ceph Storage Cluster are ``up`` and running
-or ``down``; whether, the placement groups are ``active`` or ``inactive``, and
-``clean`` or in some other state; and, other details that reflect the current
-state of the cluster such as the total amount of storage space, and the amount
-of storage used.
-
-When there is a significant change in the state of the cluster--e.g., a Ceph OSD
-Daemon goes down, a placement group falls into a degraded state, etc.--the
-cluster map gets updated to reflect the current state of the cluster.
-Additionally, the Ceph Monitor also maintains a history of the prior states of
-the cluster. The monitor map, OSD map, placement group map and metadata server
-map each maintain a history of their map versions. We call each version an
-"epoch."
-
-When operating your Ceph Storage Cluster, keeping track of these states is an
-important part of your system administration duties. See `Monitoring a Cluster`_
-and `Monitoring OSDs and PGs`_ for additional details.
-
-.. index:: high availability; quorum
-
-Monitor Quorum
---------------
-
-Our Configuring ceph section provides a trivial `Ceph configuration file`_ that
-provides for one monitor in the test cluster. A cluster will run fine with a
-single monitor; however, **a single monitor is a single-point-of-failure**. To
-ensure high availability in a production Ceph Storage Cluster, you should run
-Ceph with multiple monitors so that the failure of a single monitor **WILL NOT**
-bring down your entire cluster.
-
-When a Ceph Storage Cluster runs multiple Ceph Monitors for high availability,
-Ceph Monitors use `Paxos`_ to establish consensus about the master cluster map.
-A consensus requires a majority of monitors running to establish a quorum for
-consensus about the cluster map (e.g., 1; 2 out of 3; 3 out of 5; 4 out of 6;
-etc.).
-
-``mon force quorum join``
-
-:Description: Force monitor to join quorum even if it has been previously removed from the map
-:Type: Boolean
-:Default: ``False``
-
-.. index:: Ceph Monitor; consistency
-
-Consistency
------------
-
-When you add monitor settings to your Ceph configuration file, you need to be
-aware of some of the architectural aspects of Ceph Monitors. **Ceph imposes
-strict consistency requirements** for a Ceph monitor when discovering another
-Ceph Monitor within the cluster. Whereas, Ceph Clients and other Ceph daemons
-use the Ceph configuration file to discover monitors, monitors discover each
-other using the monitor map (monmap), not the Ceph configuration file.
-
-A Ceph Monitor always refers to the local copy of the monmap when discovering
-other Ceph Monitors in the Ceph Storage Cluster. Using the monmap instead of the
-Ceph configuration file avoids errors that could break the cluster (e.g., typos
-in ``ceph.conf`` when specifying a monitor address or port). Since monitors use
-monmaps for discovery and they share monmaps with clients and other Ceph
-daemons, **the monmap provides monitors with a strict guarantee that their
-consensus is valid.**
-
-Strict consistency also applies to updates to the monmap. As with any other
-updates on the Ceph Monitor, changes to the monmap always run through a
-distributed consensus algorithm called `Paxos`_. The Ceph Monitors must agree on
-each update to the monmap, such as adding or removing a Ceph Monitor, to ensure
-that each monitor in the quorum has the same version of the monmap. Updates to
-the monmap are incremental so that Ceph Monitors have the latest agreed upon
-version, and a set of previous versions. Maintaining a history enables a Ceph
-Monitor that has an older version of the monmap to catch up with the current
-state of the Ceph Storage Cluster.
-
-If Ceph Monitors discovered each other through the Ceph configuration file
-instead of through the monmap, it would introduce additional risks because the
-Ceph configuration files are not updated and distributed automatically. Ceph
-Monitors might inadvertently use an older Ceph configuration file, fail to
-recognize a Ceph Monitor, fall out of a quorum, or develop a situation where
-`Paxos`_ is not able to determine the current state of the system accurately.
-
-
-.. index:: Ceph Monitor; bootstrapping monitors
-
-Bootstrapping Monitors
-----------------------
-
-In most configuration and deployment cases, tools that deploy Ceph may help
-bootstrap the Ceph Monitors by generating a monitor map for you (e.g.,
-``ceph-deploy``, etc). A Ceph Monitor requires a few explicit
-settings:
-
-- **Filesystem ID**: The ``fsid`` is the unique identifier for your
- object store. Since you can run multiple clusters on the same
- hardware, you must specify the unique ID of the object store when
- bootstrapping a monitor. Deployment tools usually do this for you
- (e.g., ``ceph-deploy`` can call a tool like ``uuidgen``), but you
- may specify the ``fsid`` manually too.
-
-- **Monitor ID**: A monitor ID is a unique ID assigned to each monitor within
- the cluster. It is an alphanumeric value, and by convention the identifier
- usually follows an alphabetical increment (e.g., ``a``, ``b``, etc.). This
- can be set in a Ceph configuration file (e.g., ``[mon.a]``, ``[mon.b]``, etc.),
- by a deployment tool, or using the ``ceph`` commandline.
-
-- **Keys**: The monitor must have secret keys. A deployment tool such as
- ``ceph-deploy`` usually does this for you, but you may
- perform this step manually too. See `Monitor Keyrings`_ for details.
-
-For additional details on bootstrapping, see `Bootstrapping a Monitor`_.
-
-.. index:: Ceph Monitor; configuring monitors
-
-Configuring Monitors
-====================
-
-To apply configuration settings to the entire cluster, enter the configuration
-settings under ``[global]``. To apply configuration settings to all monitors in
-your cluster, enter the configuration settings under ``[mon]``. To apply
-configuration settings to specific monitors, specify the monitor instance
-(e.g., ``[mon.a]``). By convention, monitor instance names use alpha notation.
-
-.. code-block:: ini
-
- [global]
-
- [mon]
-
- [mon.a]
-
- [mon.b]
-
- [mon.c]
-
-
-Minimum Configuration
----------------------
-
-The bare minimum monitor settings for a Ceph monitor via the Ceph configuration
-file include a hostname and a monitor address for each monitor. You can configure
-these under ``[mon]`` or under the entry for a specific monitor.
-
-.. code-block:: ini
-
- [mon]
- mon host = hostname1,hostname2,hostname3
- mon addr = 10.0.0.10:6789,10.0.0.11:6789,10.0.0.12:6789
-
-
-.. code-block:: ini
-
- [mon.a]
- host = hostname1
- mon addr = 10.0.0.10:6789
-
-See the `Network Configuration Reference`_ for details.
-
-.. note:: This minimum configuration for monitors assumes that a deployment
- tool generates the ``fsid`` and the ``mon.`` key for you.
-
-Once you deploy a Ceph cluster, you **SHOULD NOT** change the IP address of
-the monitors. However, if you decide to change the monitor's IP address, you
-must follow a specific procedure. See `Changing a Monitor's IP Address`_ for
-details.
-
-Monitors can also be found by clients using DNS SRV records. See `Monitor lookup through DNS`_ for details.
-
-Cluster ID
-----------
-
-Each Ceph Storage Cluster has a unique identifier (``fsid``). If specified, it
-usually appears under the ``[global]`` section of the configuration file.
-Deployment tools usually generate the ``fsid`` and store it in the monitor map,
-so the value may not appear in a configuration file. The ``fsid`` makes it
-possible to run daemons for multiple clusters on the same hardware.
-
-``fsid``
-
-:Description: The cluster ID. One per cluster.
-:Type: UUID
-:Required: Yes.
-:Default: N/A. May be generated by a deployment tool if not specified.
-
-.. note:: Do not set this value if you use a deployment tool that does
- it for you.
-
-
-.. index:: Ceph Monitor; initial members
-
-Initial Members
----------------
-
-We recommend running a production Ceph Storage Cluster with at least three Ceph
-Monitors to ensure high availability. When you run multiple monitors, you may
-specify the initial monitors that must be members of the cluster in order to
-establish a quorum. This may reduce the time it takes for your cluster to come
-online.
-
-.. code-block:: ini
-
- [mon]
- mon initial members = a,b,c
-
-
-``mon initial members``
-
-:Description: The IDs of initial monitors in a cluster during startup. If
- specified, Ceph requires an odd number of monitors to form an
- initial quorum (e.g., 3).
-
-:Type: String
-:Default: None
-
-.. note:: A *majority* of monitors in your cluster must be able to reach
- each other in order to establish a quorum. You can decrease the initial
- number of monitors to establish a quorum with this setting.
-
-.. index:: Ceph Monitor; data path
-
-Data
-----
-
-Ceph provides a default path where Ceph Monitors store data. For optimal
-performance in a production Ceph Storage Cluster, we recommend running Ceph
-Monitors on separate hosts and drives from Ceph OSD Daemons. As leveldb is using
-``mmap()`` for writing the data, Ceph Monitors flush their data from memory to disk
-very often, which can interfere with Ceph OSD Daemon workloads if the data
-store is co-located with the OSD Daemons.
-
-In Ceph versions 0.58 and earlier, Ceph Monitors store their data in files. This
-approach allows users to inspect monitor data with common tools like ``ls``
-and ``cat``. However, it doesn't provide strong consistency.
-
-In Ceph versions 0.59 and later, Ceph Monitors store their data as key/value
-pairs. Ceph Monitors require `ACID`_ transactions. Using a data store prevents
-recovering Ceph Monitors from running corrupted versions through Paxos, and it
-enables multiple modification operations in one single atomic batch, among other
-advantages.
-
-Generally, we do not recommend changing the default data location. If you modify
-the default location, we recommend that you make it uniform across Ceph Monitors
-by setting it in the ``[mon]`` section of the configuration file.
-
-
-``mon data``
-
-:Description: The monitor's data location.
-:Type: String
-:Default: ``/var/lib/ceph/mon/$cluster-$id``
-
-
-``mon data size warn``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log when the monitor's data
- store goes over 15GB.
-:Type: Integer
-:Default: 15*1024*1024*1024*
-
-
-``mon data avail warn``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log when the available disk
- space of monitor's data store is lower or equal to this
- percentage.
-:Type: Integer
-:Default: 30
-
-
-``mon data avail crit``
-
-:Description: Issue a ``HEALTH_ERR`` in cluster log when the available disk
- space of monitor's data store is lower or equal to this
- percentage.
-:Type: Integer
-:Default: 5
-
-
-``mon warn on cache pools without hit sets``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if a cache pool does not
- have the hitset type set set.
- See `hit set type <../operations/pools#hit-set-type>`_ for more
- details.
-:Type: Boolean
-:Default: True
-
-
-``mon warn on crush straw calc version zero``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if the CRUSH's
- ``straw_calc_version`` is zero. See
- `CRUSH map tunables <../operations/crush-map#tunables>`_ for
- details.
-:Type: Boolean
-:Default: True
-
-
-``mon warn on legacy crush tunables``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if
- CRUSH tunables are too old (older than ``mon_min_crush_required_version``)
-:Type: Boolean
-:Default: True
-
-
-``mon crush min required version``
-
-:Description: The minimum tunable profile version required by the cluster.
- See
- `CRUSH map tunables <../operations/crush-map#tunables>`_ for
- details.
-:Type: String
-:Default: ``firefly``
-
-
-``mon warn on osd down out interval zero``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if
- ``mon osd down out interval`` is zero. Having this option set to
- zero on the leader acts much like the ``noout`` flag. It's hard
- to figure out what's going wrong with clusters witout the
- ``noout`` flag set but acting like that just the same, so we
- report a warning in this case.
-:Type: Boolean
-:Default: True
-
-
-``mon cache target full warn ratio``
-
-:Description: Position between pool's ``cache_target_full`` and
- ``target_max_object`` where we start warning
-:Type: Float
-:Default: ``0.66``
-
-
-``mon health data update interval``
-
-:Description: How often (in seconds) the monitor in quorum shares its health
- status with its peers. (negative number disables it)
-:Type: Float
-:Default: ``60``
-
-
-``mon health to clog``
-
-:Description: Enable sending health summary to cluster log periodically.
-:Type: Boolean
-:Default: True
-
-
-``mon health to clog tick interval``
-
-:Description: How often (in seconds) the monitor send health summary to cluster
- log (a non-positive number disables it). If current health summary
- is empty or identical to the last time, monitor will not send it
- to cluster log.
-:Type: Integer
-:Default: 3600
-
-
-``mon health to clog interval``
-
-:Description: How often (in seconds) the monitor send health summary to cluster
- log (a non-positive number disables it). Monitor will always
- send the summary to cluster log no matter if the summary changes
- or not.
-:Type: Integer
-:Default: 60
-
-
-
-.. index:: Ceph Storage Cluster; capacity planning, Ceph Monitor; capacity planning
-
-Storage Capacity
-----------------
-
-When a Ceph Storage Cluster gets close to its maximum capacity (i.e., ``mon osd
-full ratio``), Ceph prevents you from writing to or reading from Ceph OSD
-Daemons as a safety measure to prevent data loss. Therefore, letting a
-production Ceph Storage Cluster approach its full ratio is not a good practice,
-because it sacrifices high availability. The default full ratio is ``.95``, or
-95% of capacity. This a very aggressive setting for a test cluster with a small
-number of OSDs.
-
-.. tip:: When monitoring your cluster, be alert to warnings related to the
- ``nearfull`` ratio. This means that a failure of some OSDs could result
- in a temporary service disruption if one or more OSDs fails. Consider adding
- more OSDs to increase storage capacity.
-
-A common scenario for test clusters involves a system administrator removing a
-Ceph OSD Daemon from the Ceph Storage Cluster to watch the cluster rebalance;
-then, removing another Ceph OSD Daemon, and so on until the Ceph Storage Cluster
-eventually reaches the full ratio and locks up. We recommend a bit of capacity
-planning even with a test cluster. Planning enables you to gauge how much spare
-capacity you will need in order to maintain high availability. Ideally, you want
-to plan for a series of Ceph OSD Daemon failures where the cluster can recover
-to an ``active + clean`` state without replacing those Ceph OSD Daemons
-immediately. You can run a cluster in an ``active + degraded`` state, but this
-is not ideal for normal operating conditions.
-
-The following diagram depicts a simplistic Ceph Storage Cluster containing 33
-Ceph Nodes with one Ceph OSD Daemon per host, each Ceph OSD Daemon reading from
-and writing to a 3TB drive. So this exemplary Ceph Storage Cluster has a maximum
-actual capacity of 99TB. With a ``mon osd full ratio`` of ``0.95``, if the Ceph
-Storage Cluster falls to 5TB of remaining capacity, the cluster will not allow
-Ceph Clients to read and write data. So the Ceph Storage Cluster's operating
-capacity is 95TB, not 99TB.
-
-.. ditaa::
-
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | Rack 1 | | Rack 2 | | Rack 3 | | Rack 4 | | Rack 5 | | Rack 6 |
- | cCCC | | cF00 | | cCCC | | cCCC | | cCCC | | cCCC |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 1 | | OSD 7 | | OSD 13 | | OSD 19 | | OSD 25 | | OSD 31 |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 2 | | OSD 8 | | OSD 14 | | OSD 20 | | OSD 26 | | OSD 32 |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 3 | | OSD 9 | | OSD 15 | | OSD 21 | | OSD 27 | | OSD 33 |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 4 | | OSD 10 | | OSD 16 | | OSD 22 | | OSD 28 | | Spare |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 5 | | OSD 11 | | OSD 17 | | OSD 23 | | OSD 29 | | Spare |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
- | OSD 6 | | OSD 12 | | OSD 18 | | OSD 24 | | OSD 30 | | Spare |
- +--------+ +--------+ +--------+ +--------+ +--------+ +--------+
-
-It is normal in such a cluster for one or two OSDs to fail. A less frequent but
-reasonable scenario involves a rack's router or power supply failing, which
-brings down multiple OSDs simultaneously (e.g., OSDs 7-12). In such a scenario,
-you should still strive for a cluster that can remain operational and achieve an
-``active + clean`` state--even if that means adding a few hosts with additional
-OSDs in short order. If your capacity utilization is too high, you may not lose
-data, but you could still sacrifice data availability while resolving an outage
-within a failure domain if capacity utilization of the cluster exceeds the full
-ratio. For this reason, we recommend at least some rough capacity planning.
-
-Identify two numbers for your cluster:
-
-#. The number of OSDs.
-#. The total capacity of the cluster
-
-If you divide the total capacity of your cluster by the number of OSDs in your
-cluster, you will find the mean average capacity of an OSD within your cluster.
-Consider multiplying that number by the number of OSDs you expect will fail
-simultaneously during normal operations (a relatively small number). Finally
-multiply the capacity of the cluster by the full ratio to arrive at a maximum
-operating capacity; then, subtract the number of amount of data from the OSDs
-you expect to fail to arrive at a reasonable full ratio. Repeat the foregoing
-process with a higher number of OSD failures (e.g., a rack of OSDs) to arrive at
-a reasonable number for a near full ratio.
-
-.. code-block:: ini
-
- [global]
-
- mon osd full ratio = .80
- mon osd backfillfull ratio = .75
- mon osd nearfull ratio = .70
-
-
-``mon osd full ratio``
-
-:Description: The percentage of disk space used before an OSD is
- considered ``full``.
-
-:Type: Float
-:Default: ``.95``
-
-
-``mon osd backfillfull ratio``
-
-:Description: The percentage of disk space used before an OSD is
- considered too ``full`` to backfill.
-
-:Type: Float
-:Default: ``.90``
-
-
-``mon osd nearfull ratio``
-
-:Description: The percentage of disk space used before an OSD is
- considered ``nearfull``.
-
-:Type: Float
-:Default: ``.85``
-
-
-.. tip:: If some OSDs are nearfull, but others have plenty of capacity, you
- may have a problem with the CRUSH weight for the nearfull OSDs.
-
-.. index:: heartbeat
-
-Heartbeat
----------
-
-Ceph monitors know about the cluster by requiring reports from each OSD, and by
-receiving reports from OSDs about the status of their neighboring OSDs. Ceph
-provides reasonable default settings for monitor/OSD interaction; however, you
-may modify them as needed. See `Monitor/OSD Interaction`_ for details.
-
-
-.. index:: Ceph Monitor; leader, Ceph Monitor; provider, Ceph Monitor; requester, Ceph Monitor; synchronization
-
-Monitor Store Synchronization
------------------------------
-
-When you run a production cluster with multiple monitors (recommended), each
-monitor checks to see if a neighboring monitor has a more recent version of the
-cluster map (e.g., a map in a neighboring monitor with one or more epoch numbers
-higher than the most current epoch in the map of the instant monitor).
-Periodically, one monitor in the cluster may fall behind the other monitors to
-the point where it must leave the quorum, synchronize to retrieve the most
-current information about the cluster, and then rejoin the quorum. For the
-purposes of synchronization, monitors may assume one of three roles:
-
-#. **Leader**: The `Leader` is the first monitor to achieve the most recent
- Paxos version of the cluster map.
-
-#. **Provider**: The `Provider` is a monitor that has the most recent version
- of the cluster map, but wasn't the first to achieve the most recent version.
-
-#. **Requester:** A `Requester` is a monitor that has fallen behind the leader
- and must synchronize in order to retrieve the most recent information about
- the cluster before it can rejoin the quorum.
-
-These roles enable a leader to delegate synchronization duties to a provider,
-which prevents synchronization requests from overloading the leader--improving
-performance. In the following diagram, the requester has learned that it has
-fallen behind the other monitors. The requester asks the leader to synchronize,
-and the leader tells the requester to synchronize with a provider.
-
-
-.. ditaa:: +-----------+ +---------+ +----------+
- | Requester | | Leader | | Provider |
- +-----------+ +---------+ +----------+
- | | |
- | | |
- | Ask to Synchronize | |
- |------------------->| |
- | | |
- |<-------------------| |
- | Tell Requester to | |
- | Sync with Provider | |
- | | |
- | Synchronize |
- |--------------------+-------------------->|
- | | |
- |<-------------------+---------------------|
- | Send Chunk to Requester |
- | (repeat as necessary) |
- | Requester Acks Chuck to Provider |
- |--------------------+-------------------->|
- | |
- | Sync Complete |
- | Notification |
- |------------------->|
- | |
- |<-------------------|
- | Ack |
- | |
-
-
-Synchronization always occurs when a new monitor joins the cluster. During
-runtime operations, monitors may receive updates to the cluster map at different
-times. This means the leader and provider roles may migrate from one monitor to
-another. If this happens while synchronizing (e.g., a provider falls behind the
-leader), the provider can terminate synchronization with a requester.
-
-Once synchronization is complete, Ceph requires trimming across the cluster.
-Trimming requires that the placement groups are ``active + clean``.
-
-
-``mon sync trim timeout``
-
-:Description:
-:Type: Double
-:Default: ``30.0``
-
-
-``mon sync heartbeat timeout``
-
-:Description:
-:Type: Double
-:Default: ``30.0``
-
-
-``mon sync heartbeat interval``
-
-:Description:
-:Type: Double
-:Default: ``5.0``
-
-
-``mon sync backoff timeout``
-
-:Description:
-:Type: Double
-:Default: ``30.0``
-
-
-``mon sync timeout``
-
-:Description: Number of seconds the monitor will wait for the next update
- message from its sync provider before it gives up and bootstrap
- again.
-:Type: Double
-:Default: ``30.0``
-
-
-``mon sync max retries``
-
-:Description:
-:Type: Integer
-:Default: ``5``
-
-
-``mon sync max payload size``
-
-:Description: The maximum size for a sync payload (in bytes).
-:Type: 32-bit Integer
-:Default: ``1045676``
-
-
-``paxos max join drift``
-
-:Description: The maximum Paxos iterations before we must first sync the
- monitor data stores. When a monitor finds that its peer is too
- far ahead of it, it will first sync with data stores before moving
- on.
-:Type: Integer
-:Default: ``10``
-
-``paxos stash full interval``
-
-:Description: How often (in commits) to stash a full copy of the PaxosService state.
- Current this setting only affects ``mds``, ``mon``, ``auth`` and ``mgr``
- PaxosServices.
-:Type: Integer
-:Default: 25
-
-``paxos propose interval``
-
-:Description: Gather updates for this time interval before proposing
- a map update.
-:Type: Double
-:Default: ``1.0``
-
-
-``paxos min``
-
-:Description: The minimum number of paxos states to keep around
-:Type: Integer
-:Default: 500
-
-
-``paxos min wait``
-
-:Description: The minimum amount of time to gather updates after a period of
- inactivity.
-:Type: Double
-:Default: ``0.05``
-
-
-``paxos trim min``
-
-:Description: Number of extra proposals tolerated before trimming
-:Type: Integer
-:Default: 250
-
-
-``paxos trim max``
-
-:Description: The maximum number of extra proposals to trim at a time
-:Type: Integer
-:Default: 500
-
-
-``paxos service trim min``
-
-:Description: The minimum amount of versions to trigger a trim (0 disables it)
-:Type: Integer
-:Default: 250
-
-
-``paxos service trim max``
-
-:Description: The maximum amount of versions to trim during a single proposal (0 disables it)
-:Type: Integer
-:Default: 500
-
-
-``mon max log epochs``
-
-:Description: The maximum amount of log epochs to trim during a single proposal
-:Type: Integer
-:Default: 500
-
-
-``mon max pgmap epochs``
-
-:Description: The maximum amount of pgmap epochs to trim during a single proposal
-:Type: Integer
-:Default: 500
-
-
-``mon mds force trim to``
-
-:Description: Force monitor to trim mdsmaps to this point (0 disables it.
- dangerous, use with care)
-:Type: Integer
-:Default: 0
-
-
-``mon osd force trim to``
-
-:Description: Force monitor to trim osdmaps to this point, even if there is
- PGs not clean at the specified epoch (0 disables it. dangerous,
- use with care)
-:Type: Integer
-:Default: 0
-
-``mon osd cache size``
-
-:Description: The size of osdmaps cache, not to rely on underlying store's cache
-:Type: Integer
-:Default: 10
-
-
-``mon election timeout``
-
-:Description: On election proposer, maximum waiting time for all ACKs in seconds.
-:Type: Float
-:Default: ``5``
-
-
-``mon lease``
-
-:Description: The length (in seconds) of the lease on the monitor's versions.
-:Type: Float
-:Default: ``5``
-
-
-``mon lease renew interval factor``
-
-:Description: ``mon lease`` \* ``mon lease renew interval factor`` will be the
- interval for the Leader to renew the other monitor's leases. The
- factor should be less than ``1.0``.
-:Type: Float
-:Default: ``0.6``
-
-
-``mon lease ack timeout factor``
-
-:Description: The Leader will wait ``mon lease`` \* ``mon lease ack timeout factor``
- for the Providers to acknowledge the lease extension.
-:Type: Float
-:Default: ``2.0``
-
-
-``mon accept timeout factor``
-
-:Description: The Leader will wait ``mon lease`` \* ``mon accept timeout factor``
- for the Requester(s) to accept a Paxos update. It is also used
- during the Paxos recovery phase for similar purposes.
-:Type: Float
-:Default: ``2.0``
-
-
-``mon min osdmap epochs``
-
-:Description: Minimum number of OSD map epochs to keep at all times.
-:Type: 32-bit Integer
-:Default: ``500``
-
-
-``mon max pgmap epochs``
-
-:Description: Maximum number of PG map epochs the monitor should keep.
-:Type: 32-bit Integer
-:Default: ``500``
-
-
-``mon max log epochs``
-
-:Description: Maximum number of Log epochs the monitor should keep.
-:Type: 32-bit Integer
-:Default: ``500``
-
-
-
-.. index:: Ceph Monitor; clock
-
-Clock
------
-
-Ceph daemons pass critical messages to each other, which must be processed
-before daemons reach a timeout threshold. If the clocks in Ceph monitors
-are not synchronized, it can lead to a number of anomalies. For example:
-
-- Daemons ignoring received messages (e.g., timestamps outdated)
-- Timeouts triggered too soon/late when a message wasn't received in time.
-
-See `Monitor Store Synchronization`_ for details.
-
-
-.. tip:: You SHOULD install NTP on your Ceph monitor hosts to
- ensure that the monitor cluster operates with synchronized clocks.
-
-Clock drift may still be noticeable with NTP even though the discrepancy is not
-yet harmful. Ceph's clock drift / clock skew warnings may get triggered even
-though NTP maintains a reasonable level of synchronization. Increasing your
-clock drift may be tolerable under such circumstances; however, a number of
-factors such as workload, network latency, configuring overrides to default
-timeouts and the `Monitor Store Synchronization`_ settings may influence
-the level of acceptable clock drift without compromising Paxos guarantees.
-
-Ceph provides the following tunable options to allow you to find
-acceptable values.
-
-
-``clock offset``
-
-:Description: How much to offset the system clock. See ``Clock.cc`` for details.
-:Type: Double
-:Default: ``0``
-
-
-.. deprecated:: 0.58
-
-``mon tick interval``
-
-:Description: A monitor's tick interval in seconds.
-:Type: 32-bit Integer
-:Default: ``5``
-
-
-``mon clock drift allowed``
-
-:Description: The clock drift in seconds allowed between monitors.
-:Type: Float
-:Default: ``.050``
-
-
-``mon clock drift warn backoff``
-
-:Description: Exponential backoff for clock drift warnings
-:Type: Float
-:Default: ``5``
-
-
-``mon timecheck interval``
-
-:Description: The time check interval (clock drift check) in seconds
- for the Leader.
-
-:Type: Float
-:Default: ``300.0``
-
-
-``mon timecheck skew interval``
-
-:Description: The time check interval (clock drift check) in seconds when in
- presence of a skew in seconds for the Leader.
-:Type: Float
-:Default: ``30.0``
-
-
-Client
-------
-
-``mon client hunt interval``
-
-:Description: The client will try a new monitor every ``N`` seconds until it
- establishes a connection.
-
-:Type: Double
-:Default: ``3.0``
-
-
-``mon client ping interval``
-
-:Description: The client will ping the monitor every ``N`` seconds.
-:Type: Double
-:Default: ``10.0``
-
-
-``mon client max log entries per message``
-
-:Description: The maximum number of log entries a monitor will generate
- per client message.
-
-:Type: Integer
-:Default: ``1000``
-
-
-``mon client bytes``
-
-:Description: The amount of client message data allowed in memory (in bytes).
-:Type: 64-bit Integer Unsigned
-:Default: ``100ul << 20``
-
-
-Pool settings
-=============
-Since version v0.94 there is support for pool flags which allow or disallow changes to be made to pools.
-
-Monitors can also disallow removal of pools if configured that way.
-
-``mon allow pool delete``
-
-:Description: If the monitors should allow pools to be removed. Regardless of what the pool flags say.
-:Type: Boolean
-:Default: ``false``
-
-``osd pool default flag hashpspool``
-
-:Description: Set the hashpspool flag on new pools
-:Type: Boolean
-:Default: ``true``
-
-``osd pool default flag nodelete``
-
-:Description: Set the nodelete flag on new pools. Prevents allow pool removal with this flag in any way.
-:Type: Boolean
-:Default: ``false``
-
-``osd pool default flag nopgchange``
-
-:Description: Set the nopgchange flag on new pools. Does not allow the number of PGs to be changed for a pool.
-:Type: Boolean
-:Default: ``false``
-
-``osd pool default flag nosizechange``
-
-:Description: Set the nosizechange flag on new pools. Does not allow the size to be changed of pool.
-:Type: Boolean
-:Default: ``false``
-
-For more information about the pool flags see `Pool values`_.
-
-Miscellaneous
-=============
-
-
-``mon max osd``
-
-:Description: The maximum number of OSDs allowed in the cluster.
-:Type: 32-bit Integer
-:Default: ``10000``
-
-``mon globalid prealloc``
-
-:Description: The number of global IDs to pre-allocate for clients and daemons in the cluster.
-:Type: 32-bit Integer
-:Default: ``100``
-
-``mon subscribe interval``
-
-:Description: The refresh interval (in seconds) for subscriptions. The
- subscription mechanism enables obtaining the cluster maps
- and log information.
-
-:Type: Double
-:Default: ``300``
-
-
-``mon stat smooth intervals``
-
-:Description: Ceph will smooth statistics over the last ``N`` PG maps.
-:Type: Integer
-:Default: ``2``
-
-
-``mon probe timeout``
-
-:Description: Number of seconds the monitor will wait to find peers before bootstrapping.
-:Type: Double
-:Default: ``2.0``
-
-
-``mon daemon bytes``
-
-:Description: The message memory cap for metadata server and OSD messages (in bytes).
-:Type: 64-bit Integer Unsigned
-:Default: ``400ul << 20``
-
-
-``mon max log entries per event``
-
-:Description: The maximum number of log entries per event.
-:Type: Integer
-:Default: ``4096``
-
-
-``mon osd prime pg temp``
-
-:Description: Enables or disable priming the PGMap with the previous OSDs when an out
- OSD comes back into the cluster. With the ``true`` setting the clients
- will continue to use the previous OSDs until the newly in OSDs as that
- PG peered.
-:Type: Boolean
-:Default: ``true``
-
-
-``mon osd prime pg temp max time``
-
-:Description: How much time in seconds the monitor should spend trying to prime the
- PGMap when an out OSD comes back into the cluster.
-:Type: Float
-:Default: ``0.5``
-
-
-``mon osd prime pg temp max time estimate``
-
-:Description: Maximum estimate of time spent on each PG before we prime all PGs
- in parallel.
-:Type: Float
-:Default: ``0.25``
-
-
-``mon osd allow primary affinity``
-
-:Description: allow ``primary_affinity`` to be set in the osdmap.
-:Type: Boolean
-:Default: False
-
-
-``mon osd pool ec fast read``
-
-:Description: Whether turn on fast read on the pool or not. It will be used as
- the default setting of newly created erasure pools if ``fast_read``
- is not specified at create time.
-:Type: Boolean
-:Default: False
-
-
-``mon mds skip sanity``
-
-:Description: Skip safety assertions on FSMap (in case of bugs where we want to
- continue anyway). Monitor terminates if the FSMap sanity check
- fails, but we can disable it by enabling this option.
-:Type: Boolean
-:Default: False
-
-
-``mon max mdsmap epochs``
-
-:Description: The maximum amount of mdsmap epochs to trim during a single proposal.
-:Type: Integer
-:Default: 500
-
-
-``mon config key max entry size``
-
-:Description: The maximum size of config-key entry (in bytes)
-:Type: Integer
-:Default: 4096
-
-
-``mon scrub interval``
-
-:Description: How often (in seconds) the monitor scrub its store by comparing
- the stored checksums with the computed ones of all the stored
- keys.
-:Type: Integer
-:Default: 3600*24
-
-
-``mon scrub max keys``
-
-:Description: The maximum number of keys to scrub each time.
-:Type: Integer
-:Default: 100
-
-
-``mon compact on start``
-
-:Description: Compact the database used as Ceph Monitor store on
- ``ceph-mon`` start. A manual compaction helps to shrink the
- monitor database and improve the performance of it if the regular
- compaction fails to work.
-:Type: Boolean
-:Default: False
-
-
-``mon compact on bootstrap``
-
-:Description: Compact the database used as Ceph Monitor store on
- on bootstrap. Monitor starts probing each other for creating
- a quorum after bootstrap. If it times out before joining the
- quorum, it will start over and bootstrap itself again.
-:Type: Boolean
-:Default: False
-
-
-``mon compact on trim``
-
-:Description: Compact a certain prefix (including paxos) when we trim its old states.
-:Type: Boolean
-:Default: True
-
-
-``mon cpu threads``
-
-:Description: Number of threads for performing CPU intensive work on monitor.
-:Type: Boolean
-:Default: True
-
-
-``mon osd mapping pgs per chunk``
-
-:Description: We calculate the mapping from placement group to OSDs in chunks.
- This option specifies the number of placement groups per chunk.
-:Type: Integer
-:Default: 4096
-
-
-``mon osd max split count``
-
-:Description: Largest number of PGs per "involved" OSD to let split create.
- When we increase the ``pg_num`` of a pool, the placement groups
- will be splitted on all OSDs serving that pool. We want to avoid
- extreme multipliers on PG splits.
-:Type: Integer
-:Default: 300
-
-
-``mon session timeout``
-
-:Description: Monitor will terminate inactive sessions stay idle over this
- time limit.
-:Type: Integer
-:Default: 300
-
-
-
-.. _Paxos: http://en.wikipedia.org/wiki/Paxos_(computer_science)
-.. _Monitor Keyrings: ../../../dev/mon-bootstrap#secret-keys
-.. _Ceph configuration file: ../ceph-conf/#monitors
-.. _Network Configuration Reference: ../network-config-ref
-.. _Monitor lookup through DNS: ../mon-lookup-dns
-.. _ACID: http://en.wikipedia.org/wiki/ACID
-.. _Adding/Removing a Monitor: ../../operations/add-or-rm-mons
-.. _Add/Remove a Monitor (ceph-deploy): ../../deployment/ceph-deploy-mon
-.. _Monitoring a Cluster: ../../operations/monitoring
-.. _Monitoring OSDs and PGs: ../../operations/monitoring-osd-pg
-.. _Bootstrapping a Monitor: ../../../dev/mon-bootstrap
-.. _Changing a Monitor's IP Address: ../../operations/add-or-rm-mons#changing-a-monitor-s-ip-address
-.. _Monitor/OSD Interaction: ../mon-osd-interaction
-.. _Scalability and High Availability: ../../../architecture#scalability-and-high-availability
-.. _Pool values: ../../operations/pools/#set-pool-values
diff --git a/src/ceph/doc/rados/configuration/mon-lookup-dns.rst b/src/ceph/doc/rados/configuration/mon-lookup-dns.rst
deleted file mode 100644
index e32b320..0000000
--- a/src/ceph/doc/rados/configuration/mon-lookup-dns.rst
+++ /dev/null
@@ -1,51 +0,0 @@
-===============================
-Looking op Monitors through DNS
-===============================
-
-Since version 11.0.0 RADOS supports looking up Monitors through DNS.
-
-This way daemons and clients do not require a *mon host* configuration directive in their ceph.conf configuration file.
-
-Using DNS SRV TCP records clients are able to look up the monitors.
-
-This allows for less configuration on clients and monitors. Using a DNS update clients and daemons can be made aware of changes in the monitor topology.
-
-By default clients and daemons will look for the TCP service called *ceph-mon* which is configured by the *mon_dns_srv_name* configuration directive.
-
-
-``mon dns srv name``
-
-:Description: the service name used querying the DNS for the monitor hosts/addresses
-:Type: String
-:Default: ``ceph-mon``
-
-Example
--------
-When the DNS search domain is set to *example.com* a DNS zone file might contain the following elements.
-
-First, create records for the Monitors, either IPv4 (A) or IPv6 (AAAA).
-
-::
-
- mon1.example.com. AAAA 2001:db8::100
- mon2.example.com. AAAA 2001:db8::200
- mon3.example.com. AAAA 2001:db8::300
-
-::
-
- mon1.example.com. A 192.168.0.1
- mon2.example.com. A 192.168.0.2
- mon3.example.com. A 192.168.0.3
-
-
-With those records now existing we can create the SRV TCP records with the name *ceph-mon* pointing to the three Monitors.
-
-::
-
- _ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon1.example.com.
- _ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon2.example.com.
- _ceph-mon._tcp.example.com. 60 IN SRV 10 60 6789 mon3.example.com.
-
-In this case the Monitors are running on port *6789*, and their priority and weight are all *10* and *60* respectively.
-
-The current implementation in clients and daemons will *only* respect the priority set in SRV records, and they will only connect to the monitors with lowest-numbered priority. The targets with the same priority will be selected at random.
diff --git a/src/ceph/doc/rados/configuration/mon-osd-interaction.rst b/src/ceph/doc/rados/configuration/mon-osd-interaction.rst
deleted file mode 100644
index e335ff0..0000000
--- a/src/ceph/doc/rados/configuration/mon-osd-interaction.rst
+++ /dev/null
@@ -1,408 +0,0 @@
-=====================================
- Configuring Monitor/OSD Interaction
-=====================================
-
-.. index:: heartbeat
-
-After you have completed your initial Ceph configuration, you may deploy and run
-Ceph. When you execute a command such as ``ceph health`` or ``ceph -s``, the
-:term:`Ceph Monitor` reports on the current state of the :term:`Ceph Storage
-Cluster`. The Ceph Monitor knows about the Ceph Storage Cluster by requiring
-reports from each :term:`Ceph OSD Daemon`, and by receiving reports from Ceph
-OSD Daemons about the status of their neighboring Ceph OSD Daemons. If the Ceph
-Monitor doesn't receive reports, or if it receives reports of changes in the
-Ceph Storage Cluster, the Ceph Monitor updates the status of the :term:`Ceph
-Cluster Map`.
-
-Ceph provides reasonable default settings for Ceph Monitor/Ceph OSD Daemon
-interaction. However, you may override the defaults. The following sections
-describe how Ceph Monitors and Ceph OSD Daemons interact for the purposes of
-monitoring the Ceph Storage Cluster.
-
-.. index:: heartbeat interval
-
-OSDs Check Heartbeats
-=====================
-
-Each Ceph OSD Daemon checks the heartbeat of other Ceph OSD Daemons every 6
-seconds. You can change the heartbeat interval by adding an ``osd heartbeat
-interval`` setting under the ``[osd]`` section of your Ceph configuration file,
-or by setting the value at runtime. If a neighboring Ceph OSD Daemon doesn't
-show a heartbeat within a 20 second grace period, the Ceph OSD Daemon may
-consider the neighboring Ceph OSD Daemon ``down`` and report it back to a Ceph
-Monitor, which will update the Ceph Cluster Map. You may change this grace
-period by adding an ``osd heartbeat grace`` setting under the ``[mon]``
-and ``[osd]`` or ``[global]`` section of your Ceph configuration file,
-or by setting the value at runtime.
-
-
-.. ditaa:: +---------+ +---------+
- | OSD 1 | | OSD 2 |
- +---------+ +---------+
- | |
- |----+ Heartbeat |
- | | Interval |
- |<---+ Exceeded |
- | |
- | Check |
- | Heartbeat |
- |------------------->|
- | |
- |<-------------------|
- | Heart Beating |
- | |
- |----+ Heartbeat |
- | | Interval |
- |<---+ Exceeded |
- | |
- | Check |
- | Heartbeat |
- |------------------->|
- | |
- |----+ Grace |
- | | Period |
- |<---+ Exceeded |
- | |
- |----+ Mark |
- | | OSD 2 |
- |<---+ Down |
-
-
-.. index:: OSD down report
-
-OSDs Report Down OSDs
-=====================
-
-By default, two Ceph OSD Daemons from different hosts must report to the Ceph
-Monitors that another Ceph OSD Daemon is ``down`` before the Ceph Monitors
-acknowledge that the reported Ceph OSD Daemon is ``down``. But there is chance
-that all the OSDs reporting the failure are hosted in a rack with a bad switch
-which has trouble connecting to another OSD. To avoid this sort of false alarm,
-we consider the peers reporting a failure a proxy for a potential "subcluster"
-over the overall cluster that is similarly laggy. This is clearly not true in
-all cases, but will sometimes help us localize the grace correction to a subset
-of the system that is unhappy. ``mon osd reporter subtree level`` is used to
-group the peers into the "subcluster" by their common ancestor type in CRUSH
-map. By default, only two reports from different subtree are required to report
-another Ceph OSD Daemon ``down``. You can change the number of reporters from
-unique subtrees and the common ancestor type required to report a Ceph OSD
-Daemon ``down`` to a Ceph Monitor by adding an ``mon osd min down reporters``
-and ``mon osd reporter subtree level`` settings under the ``[mon]`` section of
-your Ceph configuration file, or by setting the value at runtime.
-
-
-.. ditaa:: +---------+ +---------+ +---------+
- | OSD 1 | | OSD 2 | | Monitor |
- +---------+ +---------+ +---------+
- | | |
- | OSD 3 Is Down | |
- |---------------+--------------->|
- | | |
- | | |
- | | OSD 3 Is Down |
- | |--------------->|
- | | |
- | | |
- | | |---------+ Mark
- | | | | OSD 3
- | | |<--------+ Down
-
-
-.. index:: peering failure
-
-OSDs Report Peering Failure
-===========================
-
-If a Ceph OSD Daemon cannot peer with any of the Ceph OSD Daemons defined in its
-Ceph configuration file (or the cluster map), it will ping a Ceph Monitor for
-the most recent copy of the cluster map every 30 seconds. You can change the
-Ceph Monitor heartbeat interval by adding an ``osd mon heartbeat interval``
-setting under the ``[osd]`` section of your Ceph configuration file, or by
-setting the value at runtime.
-
-.. ditaa:: +---------+ +---------+ +-------+ +---------+
- | OSD 1 | | OSD 2 | | OSD 3 | | Monitor |
- +---------+ +---------+ +-------+ +---------+
- | | | |
- | Request To | | |
- | Peer | | |
- |-------------->| | |
- |<--------------| | |
- | Peering | |
- | | |
- | Request To | |
- | Peer | |
- |----------------------------->| |
- | |
- |----+ OSD Monitor |
- | | Heartbeat |
- |<---+ Interval Exceeded |
- | |
- | Failed to Peer with OSD 3 |
- |-------------------------------------------->|
- |<--------------------------------------------|
- | Receive New Cluster Map |
-
-
-.. index:: OSD status
-
-OSDs Report Their Status
-========================
-
-If an Ceph OSD Daemon doesn't report to a Ceph Monitor, the Ceph Monitor will
-consider the Ceph OSD Daemon ``down`` after the ``mon osd report timeout``
-elapses. A Ceph OSD Daemon sends a report to a Ceph Monitor when a reportable
-event such as a failure, a change in placement group stats, a change in
-``up_thru`` or when it boots within 5 seconds. You can change the Ceph OSD
-Daemon minimum report interval by adding an ``osd mon report interval min``
-setting under the ``[osd]`` section of your Ceph configuration file, or by
-setting the value at runtime. A Ceph OSD Daemon sends a report to a Ceph
-Monitor every 120 seconds irrespective of whether any notable changes occur.
-You can change the Ceph Monitor report interval by adding an ``osd mon report
-interval max`` setting under the ``[osd]`` section of your Ceph configuration
-file, or by setting the value at runtime.
-
-
-.. ditaa:: +---------+ +---------+
- | OSD 1 | | Monitor |
- +---------+ +---------+
- | |
- |----+ Report Min |
- | | Interval |
- |<---+ Exceeded |
- | |
- |----+ Reportable |
- | | Event |
- |<---+ Occurs |
- | |
- | Report To |
- | Monitor |
- |------------------->|
- | |
- |----+ Report Max |
- | | Interval |
- |<---+ Exceeded |
- | |
- | Report To |
- | Monitor |
- |------------------->|
- | |
- |----+ Monitor |
- | | Fails |
- |<---+ |
- +----+ Monitor OSD
- | | Report Timeout
- |<---+ Exceeded
- |
- +----+ Mark
- | | OSD 1
- |<---+ Down
-
-
-
-
-Configuration Settings
-======================
-
-When modifying heartbeat settings, you should include them in the ``[global]``
-section of your configuration file.
-
-.. index:: monitor heartbeat
-
-Monitor Settings
-----------------
-
-``mon osd min up ratio``
-
-:Description: The minimum ratio of ``up`` Ceph OSD Daemons before Ceph will
- mark Ceph OSD Daemons ``down``.
-
-:Type: Double
-:Default: ``.3``
-
-
-``mon osd min in ratio``
-
-:Description: The minimum ratio of ``in`` Ceph OSD Daemons before Ceph will
- mark Ceph OSD Daemons ``out``.
-
-:Type: Double
-:Default: ``.75``
-
-
-``mon osd laggy halflife``
-
-:Description: The number of seconds laggy estimates will decay.
-:Type: Integer
-:Default: ``60*60``
-
-
-``mon osd laggy weight``
-
-:Description: The weight for new samples in laggy estimation decay.
-:Type: Double
-:Default: ``0.3``
-
-
-
-``mon osd laggy max interval``
-
-:Description: Maximum value of ``laggy_interval`` in laggy estimations (in seconds).
- Monitor uses an adaptive approach to evaluate the ``laggy_interval`` of
- a certain OSD. This value will be used to calculate the grace time for
- that OSD.
-:Type: Integer
-:Default: 300
-
-``mon osd adjust heartbeat grace``
-
-:Description: If set to ``true``, Ceph will scale based on laggy estimations.
-:Type: Boolean
-:Default: ``true``
-
-
-``mon osd adjust down out interval``
-
-:Description: If set to ``true``, Ceph will scaled based on laggy estimations.
-:Type: Boolean
-:Default: ``true``
-
-
-``mon osd auto mark in``
-
-:Description: Ceph will mark any booting Ceph OSD Daemons as ``in``
- the Ceph Storage Cluster.
-
-:Type: Boolean
-:Default: ``false``
-
-
-``mon osd auto mark auto out in``
-
-:Description: Ceph will mark booting Ceph OSD Daemons auto marked ``out``
- of the Ceph Storage Cluster as ``in`` the cluster.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``mon osd auto mark new in``
-
-:Description: Ceph will mark booting new Ceph OSD Daemons as ``in`` the
- Ceph Storage Cluster.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``mon osd down out interval``
-
-:Description: The number of seconds Ceph waits before marking a Ceph OSD Daemon
- ``down`` and ``out`` if it doesn't respond.
-
-:Type: 32-bit Integer
-:Default: ``600``
-
-
-``mon osd down out subtree limit``
-
-:Description: The smallest :term:`CRUSH` unit type that Ceph will **not**
- automatically mark out. For instance, if set to ``host`` and if
- all OSDs of a host are down, Ceph will not automatically mark out
- these OSDs.
-
-:Type: String
-:Default: ``rack``
-
-
-``mon osd report timeout``
-
-:Description: The grace period in seconds before declaring
- unresponsive Ceph OSD Daemons ``down``.
-
-:Type: 32-bit Integer
-:Default: ``900``
-
-``mon osd min down reporters``
-
-:Description: The minimum number of Ceph OSD Daemons required to report a
- ``down`` Ceph OSD Daemon.
-
-:Type: 32-bit Integer
-:Default: ``2``
-
-
-``mon osd reporter subtree level``
-
-:Description: In which level of parent bucket the reporters are counted. The OSDs
- send failure reports to monitor if they find its peer is not responsive.
- And monitor mark the reported OSD out and then down after a grace period.
-:Type: String
-:Default: ``host``
-
-
-.. index:: OSD hearbeat
-
-OSD Settings
-------------
-
-``osd heartbeat address``
-
-:Description: An Ceph OSD Daemon's network address for heartbeats.
-:Type: Address
-:Default: The host address.
-
-
-``osd heartbeat interval``
-
-:Description: How often an Ceph OSD Daemon pings its peers (in seconds).
-:Type: 32-bit Integer
-:Default: ``6``
-
-
-``osd heartbeat grace``
-
-:Description: The elapsed time when a Ceph OSD Daemon hasn't shown a heartbeat
- that the Ceph Storage Cluster considers it ``down``.
- This setting has to be set in both the [mon] and [osd] or [global]
- section so that it is read by both the MON and OSD daemons.
-:Type: 32-bit Integer
-:Default: ``20``
-
-
-``osd mon heartbeat interval``
-
-:Description: How often the Ceph OSD Daemon pings a Ceph Monitor if it has no
- Ceph OSD Daemon peers.
-
-:Type: 32-bit Integer
-:Default: ``30``
-
-
-``osd mon report interval max``
-
-:Description: The maximum time in seconds that a Ceph OSD Daemon can wait before
- it must report to a Ceph Monitor.
-
-:Type: 32-bit Integer
-:Default: ``120``
-
-
-``osd mon report interval min``
-
-:Description: The minimum number of seconds a Ceph OSD Daemon may wait
- from startup or another reportable event before reporting
- to a Ceph Monitor.
-
-:Type: 32-bit Integer
-:Default: ``5``
-:Valid Range: Should be less than ``osd mon report interval max``
-
-
-``osd mon ack timeout``
-
-:Description: The number of seconds to wait for a Ceph Monitor to acknowledge a
- request for statistics.
-
-:Type: 32-bit Integer
-:Default: ``30``
diff --git a/src/ceph/doc/rados/configuration/ms-ref.rst b/src/ceph/doc/rados/configuration/ms-ref.rst
deleted file mode 100644
index 55d009e..0000000
--- a/src/ceph/doc/rados/configuration/ms-ref.rst
+++ /dev/null
@@ -1,154 +0,0 @@
-===========
- Messaging
-===========
-
-General Settings
-================
-
-``ms tcp nodelay``
-
-:Description: Disables nagle's algorithm on messenger tcp sessions.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``ms initial backoff``
-
-:Description: The initial time to wait before reconnecting on a fault.
-:Type: Double
-:Required: No
-:Default: ``.2``
-
-
-``ms max backoff``
-
-:Description: The maximum time to wait before reconnecting on a fault.
-:Type: Double
-:Required: No
-:Default: ``15.0``
-
-
-``ms nocrc``
-
-:Description: Disables crc on network messages. May increase performance if cpu limited.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``ms die on bad msg``
-
-:Description: Debug option; do not configure.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``ms dispatch throttle bytes``
-
-:Description: Throttles total size of messages waiting to be dispatched.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``100 << 20``
-
-
-``ms bind ipv6``
-
-:Description: Enable if you want your daemons to bind to IPv6 address instead of IPv4 ones. (Not required if you specify a daemon or cluster IP.)
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``ms rwthread stack bytes``
-
-:Description: Debug option for stack size; do not configure.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``1024 << 10``
-
-
-``ms tcp read timeout``
-
-:Description: Controls how long (in seconds) the messenger will wait before closing an idle connection.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``900``
-
-
-``ms inject socket failures``
-
-:Description: Debug option; do not configure.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``0``
-
-Async messenger options
-=======================
-
-
-``ms async transport type``
-
-:Description: Transport type used by Async Messenger. Can be ``posix``, ``dpdk``
- or ``rdma``. Posix uses standard TCP/IP networking and is default.
- Other transports may be experimental and support may be limited.
-:Type: String
-:Required: No
-:Default: ``posix``
-
-
-``ms async op threads``
-
-:Description: Initial number of worker threads used by each Async Messenger instance.
- Should be at least equal to highest number of replicas, but you can
- decrease it if you are low on CPU core count and/or you host a lot of
- OSDs on single server.
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``3``
-
-
-``ms async max op threads``
-
-:Description: Maximum number of worker threads used by each Async Messenger instance.
- Set to lower values when your machine has limited CPU count, and increase
- when your CPUs are underutilized (i. e. one or more of CPUs are
- constantly on 100% load during I/O operations).
-:Type: 64-bit Unsigned Integer
-:Required: No
-:Default: ``5``
-
-
-``ms async set affinity``
-
-:Description: Set to true to bind Async Messenger workers to particular CPU cores.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``ms async affinity cores``
-
-:Description: When ``ms async set affinity`` is true, this string specifies how Async
- Messenger workers are bound to CPU cores. For example, "0,2" will bind
- workers #1 and #2 to CPU cores #0 and #2, respectively.
- NOTE: when manually setting affinity, make sure to not assign workers to
- processors that are virtual CPUs created as an effect of Hyperthreading
- or similar technology, because they are slower than regular CPU cores.
-:Type: String
-:Required: No
-:Default: ``(empty)``
-
-
-``ms async send inline``
-
-:Description: Send messages directly from the thread that generated them instead of
- queuing and sending from Async Messenger thread. This option is known
- to decrease performance on systems with a lot of CPU cores, so it's
- disabled by default.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
diff --git a/src/ceph/doc/rados/configuration/network-config-ref.rst b/src/ceph/doc/rados/configuration/network-config-ref.rst
deleted file mode 100644
index 2d7f9d6..0000000
--- a/src/ceph/doc/rados/configuration/network-config-ref.rst
+++ /dev/null
@@ -1,494 +0,0 @@
-=================================
- Network Configuration Reference
-=================================
-
-Network configuration is critical for building a high performance :term:`Ceph
-Storage Cluster`. The Ceph Storage Cluster does not perform request routing or
-dispatching on behalf of the :term:`Ceph Client`. Instead, Ceph Clients make
-requests directly to Ceph OSD Daemons. Ceph OSD Daemons perform data replication
-on behalf of Ceph Clients, which means replication and other factors impose
-additional loads on Ceph Storage Cluster networks.
-
-Our Quick Start configurations provide a trivial `Ceph configuration file`_ that
-sets monitor IP addresses and daemon host names only. Unless you specify a
-cluster network, Ceph assumes a single "public" network. Ceph functions just
-fine with a public network only, but you may see significant performance
-improvement with a second "cluster" network in a large cluster.
-
-We recommend running a Ceph Storage Cluster with two networks: a public
-(front-side) network and a cluster (back-side) network. To support two networks,
-each :term:`Ceph Node` will need to have more than one NIC. See `Hardware
-Recommendations - Networks`_ for additional details.
-
-.. ditaa::
- +-------------+
- | Ceph Client |
- +----*--*-----+
- | ^
- Request | : Response
- v |
- /----------------------------------*--*-------------------------------------\
- | Public Network |
- \---*--*------------*--*-------------*--*------------*--*------------*--*---/
- ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
- | | | | | | | | | |
- | : | : | : | : | :
- v v v v v v v v v v
- +---*--*---+ +---*--*---+ +---*--*---+ +---*--*---+ +---*--*---+
- | Ceph MON | | Ceph MDS | | Ceph OSD | | Ceph OSD | | Ceph OSD |
- +----------+ +----------+ +---*--*---+ +---*--*---+ +---*--*---+
- ^ ^ ^ ^ ^ ^
- The cluster network relieves | | | | | |
- OSD replication and heartbeat | : | : | :
- traffic from the public network. v v v v v v
- /------------------------------------*--*------------*--*------------*--*---\
- | cCCC Cluster Network |
- \---------------------------------------------------------------------------/
-
-
-There are several reasons to consider operating two separate networks:
-
-#. **Performance:** Ceph OSD Daemons handle data replication for the Ceph
- Clients. When Ceph OSD Daemons replicate data more than once, the network
- load between Ceph OSD Daemons easily dwarfs the network load between Ceph
- Clients and the Ceph Storage Cluster. This can introduce latency and
- create a performance problem. Recovery and rebalancing can
- also introduce significant latency on the public network. See
- `Scalability and High Availability`_ for additional details on how Ceph
- replicates data. See `Monitor / OSD Interaction`_ for details on heartbeat
- traffic.
-
-#. **Security**: While most people are generally civil, a very tiny segment of
- the population likes to engage in what's known as a Denial of Service (DoS)
- attack. When traffic between Ceph OSD Daemons gets disrupted, placement
- groups may no longer reflect an ``active + clean`` state, which may prevent
- users from reading and writing data. A great way to defeat this type of
- attack is to maintain a completely separate cluster network that doesn't
- connect directly to the internet. Also, consider using `Message Signatures`_
- to defeat spoofing attacks.
-
-
-IP Tables
-=========
-
-By default, daemons `bind`_ to ports within the ``6800:7300`` range. You may
-configure this range at your discretion. Before configuring your IP tables,
-check the default ``iptables`` configuration.
-
- sudo iptables -L
-
-Some Linux distributions include rules that reject all inbound requests
-except SSH from all network interfaces. For example::
-
- REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
-
-You will need to delete these rules on both your public and cluster networks
-initially, and replace them with appropriate rules when you are ready to
-harden the ports on your Ceph Nodes.
-
-
-Monitor IP Tables
------------------
-
-Ceph Monitors listen on port ``6789`` by default. Additionally, Ceph Monitors
-always operate on the public network. When you add the rule using the example
-below, make sure you replace ``{iface}`` with the public network interface
-(e.g., ``eth0``, ``eth1``, etc.), ``{ip-address}`` with the IP address of the
-public network and ``{netmask}`` with the netmask for the public network. ::
-
- sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT
-
-
-MDS IP Tables
--------------
-
-A :term:`Ceph Metadata Server` listens on the first available port on the public
-network beginning at port 6800. Note that this behavior is not deterministic, so
-if you are running more than one OSD or MDS on the same host, or if you restart
-the daemons within a short window of time, the daemons will bind to higher
-ports. You should open the entire 6800-7300 range by default. When you add the
-rule using the example below, make sure you replace ``{iface}`` with the public
-network interface (e.g., ``eth0``, ``eth1``, etc.), ``{ip-address}`` with the IP
-address of the public network and ``{netmask}`` with the netmask of the public
-network.
-
-For example::
-
- sudo iptables -A INPUT -i {iface} -m multiport -p tcp -s {ip-address}/{netmask} --dports 6800:7300 -j ACCEPT
-
-
-OSD IP Tables
--------------
-
-By default, Ceph OSD Daemons `bind`_ to the first available ports on a Ceph Node
-beginning at port 6800. Note that this behavior is not deterministic, so if you
-are running more than one OSD or MDS on the same host, or if you restart the
-daemons within a short window of time, the daemons will bind to higher ports.
-Each Ceph OSD Daemon on a Ceph Node may use up to four ports:
-
-#. One for talking to clients and monitors.
-#. One for sending data to other OSDs.
-#. Two for heartbeating on each interface.
-
-.. ditaa::
- /---------------\
- | OSD |
- | +---+----------------+-----------+
- | | Clients & Monitors | Heartbeat |
- | +---+----------------+-----------+
- | |
- | +---+----------------+-----------+
- | | Data Replication | Heartbeat |
- | +---+----------------+-----------+
- | cCCC |
- \---------------/
-
-When a daemon fails and restarts without letting go of the port, the restarted
-daemon will bind to a new port. You should open the entire 6800-7300 port range
-to handle this possibility.
-
-If you set up separate public and cluster networks, you must add rules for both
-the public network and the cluster network, because clients will connect using
-the public network and other Ceph OSD Daemons will connect using the cluster
-network. When you add the rule using the example below, make sure you replace
-``{iface}`` with the network interface (e.g., ``eth0``, ``eth1``, etc.),
-``{ip-address}`` with the IP address and ``{netmask}`` with the netmask of the
-public or cluster network. For example::
-
- sudo iptables -A INPUT -i {iface} -m multiport -p tcp -s {ip-address}/{netmask} --dports 6800:7300 -j ACCEPT
-
-.. tip:: If you run Ceph Metadata Servers on the same Ceph Node as the
- Ceph OSD Daemons, you can consolidate the public network configuration step.
-
-
-Ceph Networks
-=============
-
-To configure Ceph networks, you must add a network configuration to the
-``[global]`` section of the configuration file. Our 5-minute Quick Start
-provides a trivial `Ceph configuration file`_ that assumes one public network
-with client and server on the same network and subnet. Ceph functions just fine
-with a public network only. However, Ceph allows you to establish much more
-specific criteria, including multiple IP network and subnet masks for your
-public network. You can also establish a separate cluster network to handle OSD
-heartbeat, object replication and recovery traffic. Don't confuse the IP
-addresses you set in your configuration with the public-facing IP addresses
-network clients may use to access your service. Typical internal IP networks are
-often ``192.168.0.0`` or ``10.0.0.0``.
-
-.. tip:: If you specify more than one IP address and subnet mask for
- either the public or the cluster network, the subnets within the network
- must be capable of routing to each other. Additionally, make sure you
- include each IP address/subnet in your IP tables and open ports for them
- as necessary.
-
-.. note:: Ceph uses `CIDR`_ notation for subnets (e.g., ``10.0.0.0/24``).
-
-When you have configured your networks, you may restart your cluster or restart
-each daemon. Ceph daemons bind dynamically, so you do not have to restart the
-entire cluster at once if you change your network configuration.
-
-
-Public Network
---------------
-
-To configure a public network, add the following option to the ``[global]``
-section of your Ceph configuration file.
-
-.. code-block:: ini
-
- [global]
- ...
- public network = {public-network/netmask}
-
-
-Cluster Network
----------------
-
-If you declare a cluster network, OSDs will route heartbeat, object replication
-and recovery traffic over the cluster network. This may improve performance
-compared to using a single network. To configure a cluster network, add the
-following option to the ``[global]`` section of your Ceph configuration file.
-
-.. code-block:: ini
-
- [global]
- ...
- cluster network = {cluster-network/netmask}
-
-We prefer that the cluster network is **NOT** reachable from the public network
-or the Internet for added security.
-
-
-Ceph Daemons
-============
-
-Ceph has one network configuration requirement that applies to all daemons: the
-Ceph configuration file **MUST** specify the ``host`` for each daemon. Ceph also
-requires that a Ceph configuration file specify the monitor IP address and its
-port.
-
-.. important:: Some deployment tools (e.g., ``ceph-deploy``, Chef) may create a
- configuration file for you. **DO NOT** set these values if the deployment
- tool does it for you.
-
-.. tip:: The ``host`` setting is the short name of the host (i.e., not
- an fqdn). It is **NOT** an IP address either. Enter ``hostname -s`` on
- the command line to retrieve the name of the host.
-
-
-.. code-block:: ini
-
- [mon.a]
-
- host = {hostname}
- mon addr = {ip-address}:6789
-
- [osd.0]
- host = {hostname}
-
-
-You do not have to set the host IP address for a daemon. If you have a static IP
-configuration and both public and cluster networks running, the Ceph
-configuration file may specify the IP address of the host for each daemon. To
-set a static IP address for a daemon, the following option(s) should appear in
-the daemon instance sections of your ``ceph.conf`` file.
-
-.. code-block:: ini
-
- [osd.0]
- public addr = {host-public-ip-address}
- cluster addr = {host-cluster-ip-address}
-
-
-.. topic:: One NIC OSD in a Two Network Cluster
-
- Generally, we do not recommend deploying an OSD host with a single NIC in a
- cluster with two networks. However, you may accomplish this by forcing the
- OSD host to operate on the public network by adding a ``public addr`` entry
- to the ``[osd.n]`` section of the Ceph configuration file, where ``n``
- refers to the number of the OSD with one NIC. Additionally, the public
- network and cluster network must be able to route traffic to each other,
- which we don't recommend for security reasons.
-
-
-Network Config Settings
-=======================
-
-Network configuration settings are not required. Ceph assumes a public network
-with all hosts operating on it unless you specifically configure a cluster
-network.
-
-
-Public Network
---------------
-
-The public network configuration allows you specifically define IP addresses
-and subnets for the public network. You may specifically assign static IP
-addresses or override ``public network`` settings using the ``public addr``
-setting for a specific daemon.
-
-``public network``
-
-:Description: The IP address and netmask of the public (front-side) network
- (e.g., ``192.168.0.0/24``). Set in ``[global]``. You may specify
- comma-delimited subnets.
-
-:Type: ``{ip-address}/{netmask} [, {ip-address}/{netmask}]``
-:Required: No
-:Default: N/A
-
-
-``public addr``
-
-:Description: The IP address for the public (front-side) network.
- Set for each daemon.
-
-:Type: IP Address
-:Required: No
-:Default: N/A
-
-
-
-Cluster Network
----------------
-
-The cluster network configuration allows you to declare a cluster network, and
-specifically define IP addresses and subnets for the cluster network. You may
-specifically assign static IP addresses or override ``cluster network``
-settings using the ``cluster addr`` setting for specific OSD daemons.
-
-
-``cluster network``
-
-:Description: The IP address and netmask of the cluster (back-side) network
- (e.g., ``10.0.0.0/24``). Set in ``[global]``. You may specify
- comma-delimited subnets.
-
-:Type: ``{ip-address}/{netmask} [, {ip-address}/{netmask}]``
-:Required: No
-:Default: N/A
-
-
-``cluster addr``
-
-:Description: The IP address for the cluster (back-side) network.
- Set for each daemon.
-
-:Type: Address
-:Required: No
-:Default: N/A
-
-
-Bind
-----
-
-Bind settings set the default port ranges Ceph OSD and MDS daemons use. The
-default range is ``6800:7300``. Ensure that your `IP Tables`_ configuration
-allows you to use the configured port range.
-
-You may also enable Ceph daemons to bind to IPv6 addresses instead of IPv4
-addresses.
-
-
-``ms bind port min``
-
-:Description: The minimum port number to which an OSD or MDS daemon will bind.
-:Type: 32-bit Integer
-:Default: ``6800``
-:Required: No
-
-
-``ms bind port max``
-
-:Description: The maximum port number to which an OSD or MDS daemon will bind.
-:Type: 32-bit Integer
-:Default: ``7300``
-:Required: No.
-
-
-``ms bind ipv6``
-
-:Description: Enables Ceph daemons to bind to IPv6 addresses. Currently the
- messenger *either* uses IPv4 or IPv6, but it cannot do both.
-:Type: Boolean
-:Default: ``false``
-:Required: No
-
-``public bind addr``
-
-:Description: In some dynamic deployments the Ceph MON daemon might bind
- to an IP address locally that is different from the ``public addr``
- advertised to other peers in the network. The environment must ensure
- that routing rules are set correclty. If ``public bind addr`` is set
- the Ceph MON daemon will bind to it locally and use ``public addr``
- in the monmaps to advertise its address to peers. This behavior is limited
- to the MON daemon.
-
-:Type: IP Address
-:Required: No
-:Default: N/A
-
-
-
-Hosts
------
-
-Ceph expects at least one monitor declared in the Ceph configuration file, with
-a ``mon addr`` setting under each declared monitor. Ceph expects a ``host``
-setting under each declared monitor, metadata server and OSD in the Ceph
-configuration file. Optionally, a monitor can be assigned with a priority, and
-the clients will always connect to the monitor with lower value of priority if
-specified.
-
-
-``mon addr``
-
-:Description: A list of ``{hostname}:{port}`` entries that clients can use to
- connect to a Ceph monitor. If not set, Ceph searches ``[mon.*]``
- sections.
-
-:Type: String
-:Required: No
-:Default: N/A
-
-``mon priority``
-
-:Description: The priority of the declared monitor, the lower value the more
- prefered when a client selects a monitor when trying to connect
- to the cluster.
-
-:Type: Unsigned 16-bit Integer
-:Required: No
-:Default: 0
-
-``host``
-
-:Description: The hostname. Use this setting for specific daemon instances
- (e.g., ``[osd.0]``).
-
-:Type: String
-:Required: Yes, for daemon instances.
-:Default: ``localhost``
-
-.. tip:: Do not use ``localhost``. To get your host name, execute
- ``hostname -s`` on your command line and use the name of your host
- (to the first period, not the fully-qualified domain name).
-
-.. important:: You should not specify any value for ``host`` when using a third
- party deployment system that retrieves the host name for you.
-
-
-
-TCP
----
-
-Ceph disables TCP buffering by default.
-
-
-``ms tcp nodelay``
-
-:Description: Ceph enables ``ms tcp nodelay`` so that each request is sent
- immediately (no buffering). Disabling `Nagle's algorithm`_
- increases network traffic, which can introduce latency. If you
- experience large numbers of small packets, you may try
- disabling ``ms tcp nodelay``.
-
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-
-``ms tcp rcvbuf``
-
-:Description: The size of the socket buffer on the receiving end of a network
- connection. Disable by default.
-
-:Type: 32-bit Integer
-:Required: No
-:Default: ``0``
-
-
-
-``ms tcp read timeout``
-
-:Description: If a client or daemon makes a request to another Ceph daemon and
- does not drop an unused connection, the ``ms tcp read timeout``
- defines the connection as idle after the specified number
- of seconds.
-
-:Type: Unsigned 64-bit Integer
-:Required: No
-:Default: ``900`` 15 minutes.
-
-
-
-.. _Scalability and High Availability: ../../../architecture#scalability-and-high-availability
-.. _Hardware Recommendations - Networks: ../../../start/hardware-recommendations#networks
-.. _Ceph configuration file: ../../../start/quick-ceph-deploy/#create-a-cluster
-.. _hardware recommendations: ../../../start/hardware-recommendations
-.. _Monitor / OSD Interaction: ../mon-osd-interaction
-.. _Message Signatures: ../auth-config-ref#signatures
-.. _CIDR: http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
-.. _Nagle's Algorithm: http://en.wikipedia.org/wiki/Nagle's_algorithm
diff --git a/src/ceph/doc/rados/configuration/osd-config-ref.rst b/src/ceph/doc/rados/configuration/osd-config-ref.rst
deleted file mode 100644
index fae7078..0000000
--- a/src/ceph/doc/rados/configuration/osd-config-ref.rst
+++ /dev/null
@@ -1,1105 +0,0 @@
-======================
- OSD Config Reference
-======================
-
-.. index:: OSD; configuration
-
-You can configure Ceph OSD Daemons in the Ceph configuration file, but Ceph OSD
-Daemons can use the default values and a very minimal configuration. A minimal
-Ceph OSD Daemon configuration sets ``osd journal size`` and ``host``, and
-uses default values for nearly everything else.
-
-Ceph OSD Daemons are numerically identified in incremental fashion, beginning
-with ``0`` using the following convention. ::
-
- osd.0
- osd.1
- osd.2
-
-In a configuration file, you may specify settings for all Ceph OSD Daemons in
-the cluster by adding configuration settings to the ``[osd]`` section of your
-configuration file. To add settings directly to a specific Ceph OSD Daemon
-(e.g., ``host``), enter it in an OSD-specific section of your configuration
-file. For example:
-
-.. code-block:: ini
-
- [osd]
- osd journal size = 1024
-
- [osd.0]
- host = osd-host-a
-
- [osd.1]
- host = osd-host-b
-
-
-.. index:: OSD; config settings
-
-General Settings
-================
-
-The following settings provide an Ceph OSD Daemon's ID, and determine paths to
-data and journals. Ceph deployment scripts typically generate the UUID
-automatically. We **DO NOT** recommend changing the default paths for data or
-journals, as it makes it more problematic to troubleshoot Ceph later.
-
-The journal size should be at least twice the product of the expected drive
-speed multiplied by ``filestore max sync interval``. However, the most common
-practice is to partition the journal drive (often an SSD), and mount it such
-that Ceph uses the entire partition for the journal.
-
-
-``osd uuid``
-
-:Description: The universally unique identifier (UUID) for the Ceph OSD Daemon.
-:Type: UUID
-:Default: The UUID.
-:Note: The ``osd uuid`` applies to a single Ceph OSD Daemon. The ``fsid``
- applies to the entire cluster.
-
-
-``osd data``
-
-:Description: The path to the OSDs data. You must create the directory when
- deploying Ceph. You should mount a drive for OSD data at this
- mount point. We do not recommend changing the default.
-
-:Type: String
-:Default: ``/var/lib/ceph/osd/$cluster-$id``
-
-
-``osd max write size``
-
-:Description: The maximum size of a write in megabytes.
-:Type: 32-bit Integer
-:Default: ``90``
-
-
-``osd client message size cap``
-
-:Description: The largest client data message allowed in memory.
-:Type: 64-bit Unsigned Integer
-:Default: 500MB default. ``500*1024L*1024L``
-
-
-``osd class dir``
-
-:Description: The class path for RADOS class plug-ins.
-:Type: String
-:Default: ``$libdir/rados-classes``
-
-
-.. index:: OSD; file system
-
-File System Settings
-====================
-Ceph builds and mounts file systems which are used for Ceph OSDs.
-
-``osd mkfs options {fs-type}``
-
-:Description: Options used when creating a new Ceph OSD of type {fs-type}.
-
-:Type: String
-:Default for xfs: ``-f -i 2048``
-:Default for other file systems: {empty string}
-
-For example::
- ``osd mkfs options xfs = -f -d agcount=24``
-
-``osd mount options {fs-type}``
-
-:Description: Options used when mounting a Ceph OSD of type {fs-type}.
-
-:Type: String
-:Default for xfs: ``rw,noatime,inode64``
-:Default for other file systems: ``rw, noatime``
-
-For example::
- ``osd mount options xfs = rw, noatime, inode64, logbufs=8``
-
-
-.. index:: OSD; journal settings
-
-Journal Settings
-================
-
-By default, Ceph expects that you will store an Ceph OSD Daemons journal with
-the following path::
-
- /var/lib/ceph/osd/$cluster-$id/journal
-
-Without performance optimization, Ceph stores the journal on the same disk as
-the Ceph OSD Daemons data. An Ceph OSD Daemon optimized for performance may use
-a separate disk to store journal data (e.g., a solid state drive delivers high
-performance journaling).
-
-Ceph's default ``osd journal size`` is 0, so you will need to set this in your
-``ceph.conf`` file. A journal size should find the product of the ``filestore
-max sync interval`` and the expected throughput, and multiply the product by
-two (2)::
-
- osd journal size = {2 * (expected throughput * filestore max sync interval)}
-
-The expected throughput number should include the expected disk throughput
-(i.e., sustained data transfer rate), and network throughput. For example,
-a 7200 RPM disk will likely have approximately 100 MB/s. Taking the ``min()``
-of the disk and network throughput should provide a reasonable expected
-throughput. Some users just start off with a 10GB journal size. For
-example::
-
- osd journal size = 10000
-
-
-``osd journal``
-
-:Description: The path to the OSD's journal. This may be a path to a file or a
- block device (such as a partition of an SSD). If it is a file,
- you must create the directory to contain it. We recommend using a
- drive separate from the ``osd data`` drive.
-
-:Type: String
-:Default: ``/var/lib/ceph/osd/$cluster-$id/journal``
-
-
-``osd journal size``
-
-:Description: The size of the journal in megabytes. If this is 0, and the
- journal is a block device, the entire block device is used.
- Since v0.54, this is ignored if the journal is a block device,
- and the entire block device is used.
-
-:Type: 32-bit Integer
-:Default: ``5120``
-:Recommended: Begin with 1GB. Should be at least twice the product of the
- expected speed multiplied by ``filestore max sync interval``.
-
-
-See `Journal Config Reference`_ for additional details.
-
-
-Monitor OSD Interaction
-=======================
-
-Ceph OSD Daemons check each other's heartbeats and report to monitors
-periodically. Ceph can use default values in many cases. However, if your
-network has latency issues, you may need to adopt longer intervals. See
-`Configuring Monitor/OSD Interaction`_ for a detailed discussion of heartbeats.
-
-
-Data Placement
-==============
-
-See `Pool & PG Config Reference`_ for details.
-
-
-.. index:: OSD; scrubbing
-
-Scrubbing
-=========
-
-In addition to making multiple copies of objects, Ceph insures data integrity by
-scrubbing placement groups. Ceph scrubbing is analogous to ``fsck`` on the
-object storage layer. For each placement group, Ceph generates a catalog of all
-objects and compares each primary object and its replicas to ensure that no
-objects are missing or mismatched. Light scrubbing (daily) checks the object
-size and attributes. Deep scrubbing (weekly) reads the data and uses checksums
-to ensure data integrity.
-
-Scrubbing is important for maintaining data integrity, but it can reduce
-performance. You can adjust the following settings to increase or decrease
-scrubbing operations.
-
-
-``osd max scrubs``
-
-:Description: The maximum number of simultaneous scrub operations for
- a Ceph OSD Daemon.
-
-:Type: 32-bit Int
-:Default: ``1``
-
-``osd scrub begin hour``
-
-:Description: The time of day for the lower bound when a scheduled scrub can be
- performed.
-:Type: Integer in the range of 0 to 24
-:Default: ``0``
-
-
-``osd scrub end hour``
-
-:Description: The time of day for the upper bound when a scheduled scrub can be
- performed. Along with ``osd scrub begin hour``, they define a time
- window, in which the scrubs can happen. But a scrub will be performed
- no matter the time window allows or not, as long as the placement
- group's scrub interval exceeds ``osd scrub max interval``.
-:Type: Integer in the range of 0 to 24
-:Default: ``24``
-
-
-``osd scrub during recovery``
-
-:Description: Allow scrub during recovery. Setting this to ``false`` will disable
- scheduling new scrub (and deep--scrub) while there is active recovery.
- Already running scrubs will be continued. This might be useful to reduce
- load on busy clusters.
-:Type: Boolean
-:Default: ``true``
-
-
-``osd scrub thread timeout``
-
-:Description: The maximum time in seconds before timing out a scrub thread.
-:Type: 32-bit Integer
-:Default: ``60``
-
-
-``osd scrub finalize thread timeout``
-
-:Description: The maximum time in seconds before timing out a scrub finalize
- thread.
-
-:Type: 32-bit Integer
-:Default: ``60*10``
-
-
-``osd scrub load threshold``
-
-:Description: The maximum load. Ceph will not scrub when the system load
- (as defined by ``getloadavg()``) is higher than this number.
- Default is ``0.5``.
-
-:Type: Float
-:Default: ``0.5``
-
-
-``osd scrub min interval``
-
-:Description: The minimal interval in seconds for scrubbing the Ceph OSD Daemon
- when the Ceph Storage Cluster load is low.
-
-:Type: Float
-:Default: Once per day. ``60*60*24``
-
-
-``osd scrub max interval``
-
-:Description: The maximum interval in seconds for scrubbing the Ceph OSD Daemon
- irrespective of cluster load.
-
-:Type: Float
-:Default: Once per week. ``7*60*60*24``
-
-
-``osd scrub chunk min``
-
-:Description: The minimal number of object store chunks to scrub during single operation.
- Ceph blocks writes to single chunk during scrub.
-
-:Type: 32-bit Integer
-:Default: 5
-
-
-``osd scrub chunk max``
-
-:Description: The maximum number of object store chunks to scrub during single operation.
-
-:Type: 32-bit Integer
-:Default: 25
-
-
-``osd scrub sleep``
-
-:Description: Time to sleep before scrubbing next group of chunks. Increasing this value will slow
- down whole scrub operation while client operations will be less impacted.
-
-:Type: Float
-:Default: 0
-
-
-``osd deep scrub interval``
-
-:Description: The interval for "deep" scrubbing (fully reading all data). The
- ``osd scrub load threshold`` does not affect this setting.
-
-:Type: Float
-:Default: Once per week. ``60*60*24*7``
-
-
-``osd scrub interval randomize ratio``
-
-:Description: Add a random delay to ``osd scrub min interval`` when scheduling
- the next scrub job for a placement group. The delay is a random
- value less than ``osd scrub min interval`` \*
- ``osd scrub interval randomized ratio``. So the default setting
- practically randomly spreads the scrubs out in the allowed time
- window of ``[1, 1.5]`` \* ``osd scrub min interval``.
-:Type: Float
-:Default: ``0.5``
-
-``osd deep scrub stride``
-
-:Description: Read size when doing a deep scrub.
-:Type: 32-bit Integer
-:Default: 512 KB. ``524288``
-
-
-.. index:: OSD; operations settings
-
-Operations
-==========
-
-Operations settings allow you to configure the number of threads for servicing
-requests. If you set ``osd op threads`` to ``0``, it disables multi-threading.
-By default, Ceph uses two threads with a 30 second timeout and a 30 second
-complaint time if an operation doesn't complete within those time parameters.
-You can set operations priority weights between client operations and
-recovery operations to ensure optimal performance during recovery.
-
-
-``osd op threads``
-
-:Description: The number of threads to service Ceph OSD Daemon operations.
- Set to ``0`` to disable it. Increasing the number may increase
- the request processing rate.
-
-:Type: 32-bit Integer
-:Default: ``2``
-
-
-``osd op queue``
-
-:Description: This sets the type of queue to be used for prioritizing ops
- in the OSDs. Both queues feature a strict sub-queue which is
- dequeued before the normal queue. The normal queue is different
- between implementations. The original PrioritizedQueue (``prio``) uses a
- token bucket system which when there are sufficient tokens will
- dequeue high priority queues first. If there are not enough
- tokens available, queues are dequeued low priority to high priority.
- The WeightedPriorityQueue (``wpq``) dequeues all priorities in
- relation to their priorities to prevent starvation of any queue.
- WPQ should help in cases where a few OSDs are more overloaded
- than others. The new mClock based OpClassQueue
- (``mclock_opclass``) prioritizes operations based on which class
- they belong to (recovery, scrub, snaptrim, client op, osd subop).
- And, the mClock based ClientQueue (``mclock_client``) also
- incorporates the client identifier in order to promote fairness
- between clients. See `QoS Based on mClock`_. Requires a restart.
-
-:Type: String
-:Valid Choices: prio, wpq, mclock_opclass, mclock_client
-:Default: ``prio``
-
-
-``osd op queue cut off``
-
-:Description: This selects which priority ops will be sent to the strict
- queue verses the normal queue. The ``low`` setting sends all
- replication ops and higher to the strict queue, while the ``high``
- option sends only replication acknowledgement ops and higher to
- the strict queue. Setting this to ``high`` should help when a few
- OSDs in the cluster are very busy especially when combined with
- ``wpq`` in the ``osd op queue`` setting. OSDs that are very busy
- handling replication traffic could starve primary client traffic
- on these OSDs without these settings. Requires a restart.
-
-:Type: String
-:Valid Choices: low, high
-:Default: ``low``
-
-
-``osd client op priority``
-
-:Description: The priority set for client operations. It is relative to
- ``osd recovery op priority``.
-
-:Type: 32-bit Integer
-:Default: ``63``
-:Valid Range: 1-63
-
-
-``osd recovery op priority``
-
-:Description: The priority set for recovery operations. It is relative to
- ``osd client op priority``.
-
-:Type: 32-bit Integer
-:Default: ``3``
-:Valid Range: 1-63
-
-
-``osd scrub priority``
-
-:Description: The priority set for scrub operations. It is relative to
- ``osd client op priority``.
-
-:Type: 32-bit Integer
-:Default: ``5``
-:Valid Range: 1-63
-
-
-``osd snap trim priority``
-
-:Description: The priority set for snap trim operations. It is relative to
- ``osd client op priority``.
-
-:Type: 32-bit Integer
-:Default: ``5``
-:Valid Range: 1-63
-
-
-``osd op thread timeout``
-
-:Description: The Ceph OSD Daemon operation thread timeout in seconds.
-:Type: 32-bit Integer
-:Default: ``15``
-
-
-``osd op complaint time``
-
-:Description: An operation becomes complaint worthy after the specified number
- of seconds have elapsed.
-
-:Type: Float
-:Default: ``30``
-
-
-``osd disk threads``
-
-:Description: The number of disk threads, which are used to perform background
- disk intensive OSD operations such as scrubbing and snap
- trimming.
-
-:Type: 32-bit Integer
-:Default: ``1``
-
-``osd disk thread ioprio class``
-
-:Description: Warning: it will only be used if both ``osd disk thread
- ioprio class`` and ``osd disk thread ioprio priority`` are
- set to a non default value. Sets the ioprio_set(2) I/O
- scheduling ``class`` for the disk thread. Acceptable
- values are ``idle``, ``be`` or ``rt``. The ``idle``
- class means the disk thread will have lower priority
- than any other thread in the OSD. This is useful to slow
- down scrubbing on an OSD that is busy handling client
- operations. ``be`` is the default and is the same
- priority as all other threads in the OSD. ``rt`` means
- the disk thread will have precendence over all other
- threads in the OSD. Note: Only works with the Linux Kernel
- CFQ scheduler. Since Jewel scrubbing is no longer carried
- out by the disk iothread, see osd priority options instead.
-:Type: String
-:Default: the empty string
-
-``osd disk thread ioprio priority``
-
-:Description: Warning: it will only be used if both ``osd disk thread
- ioprio class`` and ``osd disk thread ioprio priority`` are
- set to a non default value. It sets the ioprio_set(2)
- I/O scheduling ``priority`` of the disk thread ranging
- from 0 (highest) to 7 (lowest). If all OSDs on a given
- host were in class ``idle`` and compete for I/O
- (i.e. due to controller congestion), it can be used to
- lower the disk thread priority of one OSD to 7 so that
- another OSD with priority 0 can have priority.
- Note: Only works with the Linux Kernel CFQ scheduler.
-:Type: Integer in the range of 0 to 7 or -1 if not to be used.
-:Default: ``-1``
-
-``osd op history size``
-
-:Description: The maximum number of completed operations to track.
-:Type: 32-bit Unsigned Integer
-:Default: ``20``
-
-
-``osd op history duration``
-
-:Description: The oldest completed operation to track.
-:Type: 32-bit Unsigned Integer
-:Default: ``600``
-
-
-``osd op log threshold``
-
-:Description: How many operations logs to display at once.
-:Type: 32-bit Integer
-:Default: ``5``
-
-
-QoS Based on mClock
--------------------
-
-Ceph's use of mClock is currently in the experimental phase and should
-be approached with an exploratory mindset.
-
-Core Concepts
-`````````````
-
-The QoS support of Ceph is implemented using a queueing scheduler
-based on `the dmClock algorithm`_. This algorithm allocates the I/O
-resources of the Ceph cluster in proportion to weights, and enforces
-the constraits of minimum reservation and maximum limitation, so that
-the services can compete for the resources fairly. Currently the
-*mclock_opclass* operation queue divides Ceph services involving I/O
-resources into following buckets:
-
-- client op: the iops issued by client
-- osd subop: the iops issued by primary OSD
-- snap trim: the snap trimming related requests
-- pg recovery: the recovery related requests
-- pg scrub: the scrub related requests
-
-And the resources are partitioned using following three sets of tags. In other
-words, the share of each type of service is controlled by three tags:
-
-#. reservation: the minimum IOPS allocated for the service.
-#. limitation: the maximum IOPS allocated for the service.
-#. weight: the proportional share of capacity if extra capacity or system
- oversubscribed.
-
-In Ceph operations are graded with "cost". And the resources allocated
-for serving various services are consumed by these "costs". So, for
-example, the more reservation a services has, the more resource it is
-guaranteed to possess, as long as it requires. Assuming there are 2
-services: recovery and client ops:
-
-- recovery: (r:1, l:5, w:1)
-- client ops: (r:2, l:0, w:9)
-
-The settings above ensure that the recovery won't get more than 5
-requests per second serviced, even if it requires so (see CURRENT
-IMPLEMENTATION NOTE below), and no other services are competing with
-it. But if the clients start to issue large amount of I/O requests,
-neither will they exhaust all the I/O resources. 1 request per second
-is always allocated for recovery jobs as long as there are any such
-requests. So the recovery jobs won't be starved even in a cluster with
-high load. And in the meantime, the client ops can enjoy a larger
-portion of the I/O resource, because its weight is "9", while its
-competitor "1". In the case of client ops, it is not clamped by the
-limit setting, so it can make use of all the resources if there is no
-recovery ongoing.
-
-Along with *mclock_opclass* another mclock operation queue named
-*mclock_client* is available. It divides operations based on category
-but also divides them based on the client making the request. This
-helps not only manage the distribution of resources spent on different
-classes of operations but also tries to insure fairness among clients.
-
-CURRENT IMPLEMENTATION NOTE: the current experimental implementation
-does not enforce the limit values. As a first approximation we decided
-not to prevent operations that would otherwise enter the operation
-sequencer from doing so.
-
-Subtleties of mClock
-````````````````````
-
-The reservation and limit values have a unit of requests per
-second. The weight, however, does not technically have a unit and the
-weights are relative to one another. So if one class of requests has a
-weight of 1 and another a weight of 9, then the latter class of
-requests should get 9 executed at a 9 to 1 ratio as the first class.
-However that will only happen once the reservations are met and those
-values include the operations executed under the reservation phase.
-
-Even though the weights do not have units, one must be careful in
-choosing their values due how the algorithm assigns weight tags to
-requests. If the weight is *W*, then for a given class of requests,
-the next one that comes in will have a weight tag of *1/W* plus the
-previous weight tag or the current time, whichever is larger. That
-means if *W* is sufficiently large and therefore *1/W* is sufficiently
-small, the calculated tag may never be assigned as it will get a value
-of the current time. The ultimate lesson is that values for weight
-should not be too large. They should be under the number of requests
-one expects to ve serviced each second.
-
-Caveats
-```````
-
-There are some factors that can reduce the impact of the mClock op
-queues within Ceph. First, requests to an OSD are sharded by their
-placement group identifier. Each shard has its own mClock queue and
-these queues neither interact nor share information among them. The
-number of shards can be controlled with the configuration options
-``osd_op_num_shards``, ``osd_op_num_shards_hdd``, and
-``osd_op_num_shards_ssd``. A lower number of shards will increase the
-impact of the mClock queues, but may have other deliterious effects.
-
-Second, requests are transferred from the operation queue to the
-operation sequencer, in which they go through the phases of
-execution. The operation queue is where mClock resides and mClock
-determines the next op to transfer to the operation sequencer. The
-number of operations allowed in the operation sequencer is a complex
-issue. In general we want to keep enough operations in the sequencer
-so it's always getting work done on some operations while it's waiting
-for disk and network access to complete on other operations. On the
-other hand, once an operation is transferred to the operation
-sequencer, mClock no longer has control over it. Therefore to maximize
-the impact of mClock, we want to keep as few operations in the
-operation sequencer as possible. So we have an inherent tension.
-
-The configuration options that influence the number of operations in
-the operation sequencer are ``bluestore_throttle_bytes``,
-``bluestore_throttle_deferred_bytes``,
-``bluestore_throttle_cost_per_io``,
-``bluestore_throttle_cost_per_io_hdd``, and
-``bluestore_throttle_cost_per_io_ssd``.
-
-A third factor that affects the impact of the mClock algorithm is that
-we're using a distributed system, where requests are made to multiple
-OSDs and each OSD has (can have) multiple shards. Yet we're currently
-using the mClock algorithm, which is not distributed (note: dmClock is
-the distributed version of mClock).
-
-Various organizations and individuals are currently experimenting with
-mClock as it exists in this code base along with their modifications
-to the code base. We hope you'll share you're experiences with your
-mClock and dmClock experiments in the ceph-devel mailing list.
-
-
-``osd push per object cost``
-
-:Description: the overhead for serving a push op
-
-:Type: Unsigned Integer
-:Default: 1000
-
-``osd recovery max chunk``
-
-:Description: the maximum total size of data chunks a recovery op can carry.
-
-:Type: Unsigned Integer
-:Default: 8 MiB
-
-
-``osd op queue mclock client op res``
-
-:Description: the reservation of client op.
-
-:Type: Float
-:Default: 1000.0
-
-
-``osd op queue mclock client op wgt``
-
-:Description: the weight of client op.
-
-:Type: Float
-:Default: 500.0
-
-
-``osd op queue mclock client op lim``
-
-:Description: the limit of client op.
-
-:Type: Float
-:Default: 1000.0
-
-
-``osd op queue mclock osd subop res``
-
-:Description: the reservation of osd subop.
-
-:Type: Float
-:Default: 1000.0
-
-
-``osd op queue mclock osd subop wgt``
-
-:Description: the weight of osd subop.
-
-:Type: Float
-:Default: 500.0
-
-
-``osd op queue mclock osd subop lim``
-
-:Description: the limit of osd subop.
-
-:Type: Float
-:Default: 0.0
-
-
-``osd op queue mclock snap res``
-
-:Description: the reservation of snap trimming.
-
-:Type: Float
-:Default: 0.0
-
-
-``osd op queue mclock snap wgt``
-
-:Description: the weight of snap trimming.
-
-:Type: Float
-:Default: 1.0
-
-
-``osd op queue mclock snap lim``
-
-:Description: the limit of snap trimming.
-
-:Type: Float
-:Default: 0.001
-
-
-``osd op queue mclock recov res``
-
-:Description: the reservation of recovery.
-
-:Type: Float
-:Default: 0.0
-
-
-``osd op queue mclock recov wgt``
-
-:Description: the weight of recovery.
-
-:Type: Float
-:Default: 1.0
-
-
-``osd op queue mclock recov lim``
-
-:Description: the limit of recovery.
-
-:Type: Float
-:Default: 0.001
-
-
-``osd op queue mclock scrub res``
-
-:Description: the reservation of scrub jobs.
-
-:Type: Float
-:Default: 0.0
-
-
-``osd op queue mclock scrub wgt``
-
-:Description: the weight of scrub jobs.
-
-:Type: Float
-:Default: 1.0
-
-
-``osd op queue mclock scrub lim``
-
-:Description: the limit of scrub jobs.
-
-:Type: Float
-:Default: 0.001
-
-.. _the dmClock algorithm: https://www.usenix.org/legacy/event/osdi10/tech/full_papers/Gulati.pdf
-
-
-.. index:: OSD; backfilling
-
-Backfilling
-===========
-
-When you add or remove Ceph OSD Daemons to a cluster, the CRUSH algorithm will
-want to rebalance the cluster by moving placement groups to or from Ceph OSD
-Daemons to restore the balance. The process of migrating placement groups and
-the objects they contain can reduce the cluster's operational performance
-considerably. To maintain operational performance, Ceph performs this migration
-with 'backfilling', which allows Ceph to set backfill operations to a lower
-priority than requests to read or write data.
-
-
-``osd max backfills``
-
-:Description: The maximum number of backfills allowed to or from a single OSD.
-:Type: 64-bit Unsigned Integer
-:Default: ``1``
-
-
-``osd backfill scan min``
-
-:Description: The minimum number of objects per backfill scan.
-
-:Type: 32-bit Integer
-:Default: ``64``
-
-
-``osd backfill scan max``
-
-:Description: The maximum number of objects per backfill scan.
-
-:Type: 32-bit Integer
-:Default: ``512``
-
-
-``osd backfill retry interval``
-
-:Description: The number of seconds to wait before retrying backfill requests.
-:Type: Double
-:Default: ``10.0``
-
-.. index:: OSD; osdmap
-
-OSD Map
-=======
-
-OSD maps reflect the OSD daemons operating in the cluster. Over time, the
-number of map epochs increases. Ceph provides some settings to ensure that
-Ceph performs well as the OSD map grows larger.
-
-
-``osd map dedup``
-
-:Description: Enable removing duplicates in the OSD map.
-:Type: Boolean
-:Default: ``true``
-
-
-``osd map cache size``
-
-:Description: The number of OSD maps to keep cached.
-:Type: 32-bit Integer
-:Default: ``500``
-
-
-``osd map cache bl size``
-
-:Description: The size of the in-memory OSD map cache in OSD daemons.
-:Type: 32-bit Integer
-:Default: ``50``
-
-
-``osd map cache bl inc size``
-
-:Description: The size of the in-memory OSD map cache incrementals in
- OSD daemons.
-
-:Type: 32-bit Integer
-:Default: ``100``
-
-
-``osd map message max``
-
-:Description: The maximum map entries allowed per MOSDMap message.
-:Type: 32-bit Integer
-:Default: ``100``
-
-
-
-.. index:: OSD; recovery
-
-Recovery
-========
-
-When the cluster starts or when a Ceph OSD Daemon crashes and restarts, the OSD
-begins peering with other Ceph OSD Daemons before writes can occur. See
-`Monitoring OSDs and PGs`_ for details.
-
-If a Ceph OSD Daemon crashes and comes back online, usually it will be out of
-sync with other Ceph OSD Daemons containing more recent versions of objects in
-the placement groups. When this happens, the Ceph OSD Daemon goes into recovery
-mode and seeks to get the latest copy of the data and bring its map back up to
-date. Depending upon how long the Ceph OSD Daemon was down, the OSD's objects
-and placement groups may be significantly out of date. Also, if a failure domain
-went down (e.g., a rack), more than one Ceph OSD Daemon may come back online at
-the same time. This can make the recovery process time consuming and resource
-intensive.
-
-To maintain operational performance, Ceph performs recovery with limitations on
-the number recovery requests, threads and object chunk sizes which allows Ceph
-perform well in a degraded state.
-
-
-``osd recovery delay start``
-
-:Description: After peering completes, Ceph will delay for the specified number
- of seconds before starting to recover objects.
-
-:Type: Float
-:Default: ``0``
-
-
-``osd recovery max active``
-
-:Description: The number of active recovery requests per OSD at one time. More
- requests will accelerate recovery, but the requests places an
- increased load on the cluster.
-
-:Type: 32-bit Integer
-:Default: ``3``
-
-
-``osd recovery max chunk``
-
-:Description: The maximum size of a recovered chunk of data to push.
-:Type: 64-bit Unsigned Integer
-:Default: ``8 << 20``
-
-
-``osd recovery max single start``
-
-:Description: The maximum number of recovery operations per OSD that will be
- newly started when an OSD is recovering.
-:Type: 64-bit Unsigned Integer
-:Default: ``1``
-
-
-``osd recovery thread timeout``
-
-:Description: The maximum time in seconds before timing out a recovery thread.
-:Type: 32-bit Integer
-:Default: ``30``
-
-
-``osd recover clone overlap``
-
-:Description: Preserves clone overlap during recovery. Should always be set
- to ``true``.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``osd recovery sleep``
-
-:Description: Time in seconds to sleep before next recovery or backfill op.
- Increasing this value will slow down recovery operation while
- client operations will be less impacted.
-
-:Type: Float
-:Default: ``0``
-
-
-``osd recovery sleep hdd``
-
-:Description: Time in seconds to sleep before next recovery or backfill op
- for HDDs.
-
-:Type: Float
-:Default: ``0.1``
-
-
-``osd recovery sleep ssd``
-
-:Description: Time in seconds to sleep before next recovery or backfill op
- for SSDs.
-
-:Type: Float
-:Default: ``0``
-
-
-``osd recovery sleep hybrid``
-
-:Description: Time in seconds to sleep before next recovery or backfill op
- when osd data is on HDD and osd journal is on SSD.
-
-:Type: Float
-:Default: ``0.025``
-
-Tiering
-=======
-
-``osd agent max ops``
-
-:Description: The maximum number of simultaneous flushing ops per tiering agent
- in the high speed mode.
-:Type: 32-bit Integer
-:Default: ``4``
-
-
-``osd agent max low ops``
-
-:Description: The maximum number of simultaneous flushing ops per tiering agent
- in the low speed mode.
-:Type: 32-bit Integer
-:Default: ``2``
-
-See `cache target dirty high ratio`_ for when the tiering agent flushes dirty
-objects within the high speed mode.
-
-Miscellaneous
-=============
-
-
-``osd snap trim thread timeout``
-
-:Description: The maximum time in seconds before timing out a snap trim thread.
-:Type: 32-bit Integer
-:Default: ``60*60*1``
-
-
-``osd backlog thread timeout``
-
-:Description: The maximum time in seconds before timing out a backlog thread.
-:Type: 32-bit Integer
-:Default: ``60*60*1``
-
-
-``osd default notify timeout``
-
-:Description: The OSD default notification timeout (in seconds).
-:Type: 32-bit Unsigned Integer
-:Default: ``30``
-
-
-``osd check for log corruption``
-
-:Description: Check log files for corruption. Can be computationally expensive.
-:Type: Boolean
-:Default: ``false``
-
-
-``osd remove thread timeout``
-
-:Description: The maximum time in seconds before timing out a remove OSD thread.
-:Type: 32-bit Integer
-:Default: ``60*60``
-
-
-``osd command thread timeout``
-
-:Description: The maximum time in seconds before timing out a command thread.
-:Type: 32-bit Integer
-:Default: ``10*60``
-
-
-``osd command max records``
-
-:Description: Limits the number of lost objects to return.
-:Type: 32-bit Integer
-:Default: ``256``
-
-
-``osd auto upgrade tmap``
-
-:Description: Uses ``tmap`` for ``omap`` on old objects.
-:Type: Boolean
-:Default: ``true``
-
-
-``osd tmapput sets users tmap``
-
-:Description: Uses ``tmap`` for debugging only.
-:Type: Boolean
-:Default: ``false``
-
-
-``osd fast fail on connection refused``
-
-:Description: If this option is enabled, crashed OSDs are marked down
- immediately by connected peers and MONs (assuming that the
- crashed OSD host survives). Disable it to restore old
- behavior, at the expense of possible long I/O stalls when
- OSDs crash in the middle of I/O operations.
-:Type: Boolean
-:Default: ``true``
-
-
-
-.. _pool: ../../operations/pools
-.. _Configuring Monitor/OSD Interaction: ../mon-osd-interaction
-.. _Monitoring OSDs and PGs: ../../operations/monitoring-osd-pg#peering
-.. _Pool & PG Config Reference: ../pool-pg-config-ref
-.. _Journal Config Reference: ../journal-ref
-.. _cache target dirty high ratio: ../../operations/pools#cache-target-dirty-high-ratio
diff --git a/src/ceph/doc/rados/configuration/pool-pg-config-ref.rst b/src/ceph/doc/rados/configuration/pool-pg-config-ref.rst
deleted file mode 100644
index 89a3707..0000000
--- a/src/ceph/doc/rados/configuration/pool-pg-config-ref.rst
+++ /dev/null
@@ -1,270 +0,0 @@
-======================================
- Pool, PG and CRUSH Config Reference
-======================================
-
-.. index:: pools; configuration
-
-When you create pools and set the number of placement groups for the pool, Ceph
-uses default values when you don't specifically override the defaults. **We
-recommend** overridding some of the defaults. Specifically, we recommend setting
-a pool's replica size and overriding the default number of placement groups. You
-can specifically set these values when running `pool`_ commands. You can also
-override the defaults by adding new ones in the ``[global]`` section of your
-Ceph configuration file.
-
-
-.. literalinclude:: pool-pg.conf
- :language: ini
-
-
-
-``mon max pool pg num``
-
-:Description: The maximum number of placement groups per pool.
-:Type: Integer
-:Default: ``65536``
-
-
-``mon pg create interval``
-
-:Description: Number of seconds between PG creation in the same
- Ceph OSD Daemon.
-
-:Type: Float
-:Default: ``30.0``
-
-
-``mon pg stuck threshold``
-
-:Description: Number of seconds after which PGs can be considered as
- being stuck.
-
-:Type: 32-bit Integer
-:Default: ``300``
-
-``mon pg min inactive``
-
-:Description: Issue a ``HEALTH_ERR`` in cluster log if the number of PGs stay
- inactive longer than ``mon_pg_stuck_threshold`` exceeds this
- setting. A non-positive number means disabled, never go into ERR.
-:Type: Integer
-:Default: ``1``
-
-
-``mon pg warn min per osd``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if the average number
- of PGs per (in) OSD is under this number. (a non-positive number
- disables this)
-:Type: Integer
-:Default: ``30``
-
-
-``mon pg warn max per osd``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if the average number
- of PGs per (in) OSD is above this number. (a non-positive number
- disables this)
-:Type: Integer
-:Default: ``300``
-
-
-``mon pg warn min objects``
-
-:Description: Do not warn if the total number of objects in cluster is below
- this number
-:Type: Integer
-:Default: ``1000``
-
-
-``mon pg warn min pool objects``
-
-:Description: Do not warn on pools whose object number is below this number
-:Type: Integer
-:Default: ``1000``
-
-
-``mon pg check down all threshold``
-
-:Description: Threshold of down OSDs percentage after which we check all PGs
- for stale ones.
-:Type: Float
-:Default: ``0.5``
-
-
-``mon pg warn max object skew``
-
-:Description: Issue a ``HEALTH_WARN`` in cluster log if the average object number
- of a certain pool is greater than ``mon pg warn max object skew`` times
- the average object number of the whole pool. (a non-positive number
- disables this)
-:Type: Float
-:Default: ``10``
-
-
-``mon delta reset interval``
-
-:Description: Seconds of inactivity before we reset the pg delta to 0. We keep
- track of the delta of the used space of each pool, so, for
- example, it would be easier for us to understand the progress of
- recovery or the performance of cache tier. But if there's no
- activity reported for a certain pool, we just reset the history of
- deltas of that pool.
-:Type: Integer
-:Default: ``10``
-
-
-``mon osd max op age``
-
-:Description: Maximum op age before we get concerned (make it a power of 2).
- A ``HEALTH_WARN`` will be issued if a request has been blocked longer
- than this limit.
-:Type: Float
-:Default: ``32.0``
-
-
-``osd pg bits``
-
-:Description: Placement group bits per Ceph OSD Daemon.
-:Type: 32-bit Integer
-:Default: ``6``
-
-
-``osd pgp bits``
-
-:Description: The number of bits per Ceph OSD Daemon for PGPs.
-:Type: 32-bit Integer
-:Default: ``6``
-
-
-``osd crush chooseleaf type``
-
-:Description: The bucket type to use for ``chooseleaf`` in a CRUSH rule. Uses
- ordinal rank rather than name.
-
-:Type: 32-bit Integer
-:Default: ``1``. Typically a host containing one or more Ceph OSD Daemons.
-
-
-``osd crush initial weight``
-
-:Description: The initial crush weight for newly added osds into crushmap.
-
-:Type: Double
-:Default: ``the size of newly added osd in TB``. By default, the initial crush
- weight for the newly added osd is set to its volume size in TB.
- See `Weighting Bucket Items`_ for details.
-
-
-``osd pool default crush replicated ruleset``
-
-:Description: The default CRUSH ruleset to use when creating a replicated pool.
-:Type: 8-bit Integer
-:Default: ``CEPH_DEFAULT_CRUSH_REPLICATED_RULESET``, which means "pick
- a ruleset with the lowest numerical ID and use that". This is to
- make pool creation work in the absence of ruleset 0.
-
-
-``osd pool erasure code stripe unit``
-
-:Description: Sets the default size, in bytes, of a chunk of an object
- stripe for erasure coded pools. Every object of size S
- will be stored as N stripes, with each data chunk
- receiving ``stripe unit`` bytes. Each stripe of ``N *
- stripe unit`` bytes will be encoded/decoded
- individually. This option can is overridden by the
- ``stripe_unit`` setting in an erasure code profile.
-
-:Type: Unsigned 32-bit Integer
-:Default: ``4096``
-
-
-``osd pool default size``
-
-:Description: Sets the number of replicas for objects in the pool. The default
- value is the same as
- ``ceph osd pool set {pool-name} size {size}``.
-
-:Type: 32-bit Integer
-:Default: ``3``
-
-
-``osd pool default min size``
-
-:Description: Sets the minimum number of written replicas for objects in the
- pool in order to acknowledge a write operation to the client.
- If minimum is not met, Ceph will not acknowledge the write to the
- client. This setting ensures a minimum number of replicas when
- operating in ``degraded`` mode.
-
-:Type: 32-bit Integer
-:Default: ``0``, which means no particular minimum. If ``0``,
- minimum is ``size - (size / 2)``.
-
-
-``osd pool default pg num``
-
-:Description: The default number of placement groups for a pool. The default
- value is the same as ``pg_num`` with ``mkpool``.
-
-:Type: 32-bit Integer
-:Default: ``8``
-
-
-``osd pool default pgp num``
-
-:Description: The default number of placement groups for placement for a pool.
- The default value is the same as ``pgp_num`` with ``mkpool``.
- PG and PGP should be equal (for now).
-
-:Type: 32-bit Integer
-:Default: ``8``
-
-
-``osd pool default flags``
-
-:Description: The default flags for new pools.
-:Type: 32-bit Integer
-:Default: ``0``
-
-
-``osd max pgls``
-
-:Description: The maximum number of placement groups to list. A client
- requesting a large number can tie up the Ceph OSD Daemon.
-
-:Type: Unsigned 64-bit Integer
-:Default: ``1024``
-:Note: Default should be fine.
-
-
-``osd min pg log entries``
-
-:Description: The minimum number of placement group logs to maintain
- when trimming log files.
-
-:Type: 32-bit Int Unsigned
-:Default: ``1000``
-
-
-``osd default data pool replay window``
-
-:Description: The time (in seconds) for an OSD to wait for a client to replay
- a request.
-
-:Type: 32-bit Integer
-:Default: ``45``
-
-``osd max pg per osd hard ratio``
-
-:Description: The ratio of number of PGs per OSD allowed by the cluster before
- OSD refuses to create new PGs. OSD stops creating new PGs if the number
- of PGs it serves exceeds
- ``osd max pg per osd hard ratio`` \* ``mon max pg per osd``.
-
-:Type: Float
-:Default: ``2``
-
-.. _pool: ../../operations/pools
-.. _Monitoring OSDs and PGs: ../../operations/monitoring-osd-pg#peering
-.. _Weighting Bucket Items: ../../operations/crush-map#weightingbucketitems
diff --git a/src/ceph/doc/rados/configuration/pool-pg.conf b/src/ceph/doc/rados/configuration/pool-pg.conf
deleted file mode 100644
index 5f1b3b7..0000000
--- a/src/ceph/doc/rados/configuration/pool-pg.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-[global]
-
- # By default, Ceph makes 3 replicas of objects. If you want to make four
- # copies of an object the default value--a primary copy and three replica
- # copies--reset the default values as shown in 'osd pool default size'.
- # If you want to allow Ceph to write a lesser number of copies in a degraded
- # state, set 'osd pool default min size' to a number less than the
- # 'osd pool default size' value.
-
- osd pool default size = 4 # Write an object 4 times.
- osd pool default min size = 1 # Allow writing one copy in a degraded state.
-
- # Ensure you have a realistic number of placement groups. We recommend
- # approximately 100 per OSD. E.g., total number of OSDs multiplied by 100
- # divided by the number of replicas (i.e., osd pool default size). So for
- # 10 OSDs and osd pool default size = 4, we'd recommend approximately
- # (100 * 10) / 4 = 250.
-
- osd pool default pg num = 250
- osd pool default pgp num = 250
diff --git a/src/ceph/doc/rados/configuration/storage-devices.rst b/src/ceph/doc/rados/configuration/storage-devices.rst
deleted file mode 100644
index 83c0c9b..0000000
--- a/src/ceph/doc/rados/configuration/storage-devices.rst
+++ /dev/null
@@ -1,83 +0,0 @@
-=================
- Storage Devices
-=================
-
-There are two Ceph daemons that store data on disk:
-
-* **Ceph OSDs** (or Object Storage Daemons) are where most of the
- data is stored in Ceph. Generally speaking, each OSD is backed by
- a single storage device, like a traditional hard disk (HDD) or
- solid state disk (SSD). OSDs can also be backed by a combination
- of devices, like a HDD for most data and an SSD (or partition of an
- SSD) for some metadata. The number of OSDs in a cluster is
- generally a function of how much data will be stored, how big each
- storage device will be, and the level and type of redundancy
- (replication or erasure coding).
-* **Ceph Monitor** daemons manage critical cluster state like cluster
- membership and authentication information. For smaller clusters a
- few gigabytes is all that is needed, although for larger clusters
- the monitor database can reach tens or possibly hundreds of
- gigabytes.
-
-
-OSD Backends
-============
-
-There are two ways that OSDs can manage the data they store. Starting
-with the Luminous 12.2.z release, the new default (and recommended) backend is
-*BlueStore*. Prior to Luminous, the default (and only option) was
-*FileStore*.
-
-BlueStore
----------
-
-BlueStore is a special-purpose storage backend designed specifically
-for managing data on disk for Ceph OSD workloads. It is motivated by
-experience supporting and managing OSDs using FileStore over the
-last ten years. Key BlueStore features include:
-
-* Direct management of storage devices. BlueStore consumes raw block
- devices or partitions. This avoids any intervening layers of
- abstraction (such as local file systems like XFS) that may limit
- performance or add complexity.
-* Metadata management with RocksDB. We embed RocksDB's key/value database
- in order to manage internal metadata, such as the mapping from object
- names to block locations on disk.
-* Full data and metadata checksumming. By default all data and
- metadata written to BlueStore is protected by one or more
- checksums. No data or metadata will be read from disk or returned
- to the user without being verified.
-* Inline compression. Data written may be optionally compressed
- before being written to disk.
-* Multi-device metadata tiering. BlueStore allows its internal
- journal (write-ahead log) to be written to a separate, high-speed
- device (like an SSD, NVMe, or NVDIMM) to increased performance. If
- a significant amount of faster storage is available, internal
- metadata can also be stored on the faster device.
-* Efficient copy-on-write. RBD and CephFS snapshots rely on a
- copy-on-write *clone* mechanism that is implemented efficiently in
- BlueStore. This results in efficient IO both for regular snapshots
- and for erasure coded pools (which rely on cloning to implement
- efficient two-phase commits).
-
-For more information, see :doc:`bluestore-config-ref`.
-
-FileStore
----------
-
-FileStore is the legacy approach to storing objects in Ceph. It
-relies on a standard file system (normally XFS) in combination with a
-key/value database (traditionally LevelDB, now RocksDB) for some
-metadata.
-
-FileStore is well-tested and widely used in production but suffers
-from many performance deficiencies due to its overall design and
-reliance on a traditional file system for storing object data.
-
-Although FileStore is generally capable of functioning on most
-POSIX-compatible file systems (including btrfs and ext4), we only
-recommend that XFS be used. Both btrfs and ext4 have known bugs and
-deficiencies and their use may lead to data loss. By default all Ceph
-provisioning tools will use XFS.
-
-For more information, see :doc:`filestore-config-ref`.
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-admin.rst b/src/ceph/doc/rados/deployment/ceph-deploy-admin.rst
deleted file mode 100644
index a91f69c..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-admin.rst
+++ /dev/null
@@ -1,38 +0,0 @@
-=============
- Admin Tasks
-=============
-
-Once you have set up a cluster with ``ceph-deploy``, you may
-provide the client admin key and the Ceph configuration file
-to another host so that a user on the host may use the ``ceph``
-command line as an administrative user.
-
-
-Create an Admin Host
-====================
-
-To enable a host to execute ceph commands with administrator
-privileges, use the ``admin`` command. ::
-
- ceph-deploy admin {host-name [host-name]...}
-
-
-Deploy Config File
-==================
-
-To send an updated copy of the Ceph configuration file to hosts
-in your cluster, use the ``config push`` command. ::
-
- ceph-deploy config push {host-name [host-name]...}
-
-.. tip:: With a base name and increment host-naming convention,
- it is easy to deploy configuration files via simple scripts
- (e.g., ``ceph-deploy config hostname{1,2,3,4,5}``).
-
-Retrieve Config File
-====================
-
-To retrieve a copy of the Ceph configuration file from a host
-in your cluster, use the ``config pull`` command. ::
-
- ceph-deploy config pull {host-name [host-name]...}
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-install.rst b/src/ceph/doc/rados/deployment/ceph-deploy-install.rst
deleted file mode 100644
index 849d68e..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-install.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-====================
- Package Management
-====================
-
-Install
-=======
-
-To install Ceph packages on your cluster hosts, open a command line on your
-client machine and type the following::
-
- ceph-deploy install {hostname [hostname] ...}
-
-Without additional arguments, ``ceph-deploy`` will install the most recent
-major release of Ceph to the cluster host(s). To specify a particular package,
-you may select from the following:
-
-- ``--release <code-name>``
-- ``--testing``
-- ``--dev <branch-or-tag>``
-
-For example::
-
- ceph-deploy install --release cuttlefish hostname1
- ceph-deploy install --testing hostname2
- ceph-deploy install --dev wip-some-branch hostname{1,2,3,4,5}
-
-For additional usage, execute::
-
- ceph-deploy install -h
-
-
-Uninstall
-=========
-
-To uninstall Ceph packages from your cluster hosts, open a terminal on
-your admin host and type the following::
-
- ceph-deploy uninstall {hostname [hostname] ...}
-
-On a Debian or Ubuntu system, you may also::
-
- ceph-deploy purge {hostname [hostname] ...}
-
-The tool will unininstall ``ceph`` packages from the specified hosts. Purge
-additionally removes configuration files.
-
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-keys.rst b/src/ceph/doc/rados/deployment/ceph-deploy-keys.rst
deleted file mode 100644
index 3e106c9..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-keys.rst
+++ /dev/null
@@ -1,32 +0,0 @@
-=================
- Keys Management
-=================
-
-
-Gather Keys
-===========
-
-Before you can provision a host to run OSDs or metadata servers, you must gather
-monitor keys and the OSD and MDS bootstrap keyrings. To gather keys, enter the
-following::
-
- ceph-deploy gatherkeys {monitor-host}
-
-
-.. note:: To retrieve the keys, you specify a host that has a
- Ceph monitor.
-
-.. note:: If you have specified multiple monitors in the setup of the cluster,
- make sure, that all monitors are up and running. If the monitors haven't
- formed quorum, ``ceph-create-keys`` will not finish and the keys are not
- generated.
-
-Forget Keys
-===========
-
-When you are no longer using ``ceph-deploy`` (or if you are recreating a
-cluster), you should delete the keys in the local directory of your admin host.
-To delete keys, enter the following::
-
- ceph-deploy forgetkeys
-
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-mds.rst b/src/ceph/doc/rados/deployment/ceph-deploy-mds.rst
deleted file mode 100644
index d2afaec..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-mds.rst
+++ /dev/null
@@ -1,46 +0,0 @@
-============================
- Add/Remove Metadata Server
-============================
-
-With ``ceph-deploy``, adding and removing metadata servers is a simple task. You
-just add or remove one or more metadata servers on the command line with one
-command.
-
-.. important:: You must deploy at least one metadata server to use CephFS.
- There is experimental support for running multiple metadata servers.
- Do not run multiple active metadata servers in production.
-
-See `MDS Config Reference`_ for details on configuring metadata servers.
-
-
-Add a Metadata Server
-=====================
-
-Once you deploy monitors and OSDs you may deploy the metadata server(s). ::
-
- ceph-deploy mds create {host-name}[:{daemon-name}] [{host-name}[:{daemon-name}] ...]
-
-You may specify a daemon instance a name (optional) if you would like to run
-multiple daemons on a single server.
-
-
-Remove a Metadata Server
-========================
-
-Coming soon...
-
-.. If you have a metadata server in your cluster that you'd like to remove, you may use
-.. the ``destroy`` option. ::
-
-.. ceph-deploy mds destroy {host-name}[:{daemon-name}] [{host-name}[:{daemon-name}] ...]
-
-.. You may specify a daemon instance a name (optional) if you would like to destroy
-.. a particular daemon that runs on a single server with multiple MDS daemons.
-
-.. .. note:: Ensure that if you remove a metadata server, the remaining metadata
- servers will be able to service requests from CephFS clients. If that is not
- possible, consider adding a metadata server before destroying the metadata
- server you would like to take offline.
-
-
-.. _MDS Config Reference: ../../../cephfs/mds-config-ref
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-mon.rst b/src/ceph/doc/rados/deployment/ceph-deploy-mon.rst
deleted file mode 100644
index bda34fe..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-mon.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-=====================
- Add/Remove Monitors
-=====================
-
-With ``ceph-deploy``, adding and removing monitors is a simple task. You just
-add or remove one or more monitors on the command line with one command. Before
-``ceph-deploy``, the process of `adding and removing monitors`_ involved
-numerous manual steps. Using ``ceph-deploy`` imposes a restriction: **you may
-only install one monitor per host.**
-
-.. note:: We do not recommend comingling monitors and OSDs on
- the same host.
-
-For high availability, you should run a production Ceph cluster with **AT
-LEAST** three monitors. Ceph uses the Paxos algorithm, which requires a
-consensus among the majority of monitors in a quorum. With Paxos, the monitors
-cannot determine a majority for establishing a quorum with only two monitors. A
-majority of monitors must be counted as such: 1:1, 2:3, 3:4, 3:5, 4:6, etc.
-
-See `Monitor Config Reference`_ for details on configuring monitors.
-
-
-Add a Monitor
-=============
-
-Once you create a cluster and install Ceph packages to the monitor host(s), you
-may deploy the monitor(s) to the monitor host(s). When using ``ceph-deploy``,
-the tool enforces a single monitor per host. ::
-
- ceph-deploy mon create {host-name [host-name]...}
-
-
-.. note:: Ensure that you add monitors such that they may arrive at a consensus
- among a majority of monitors, otherwise other steps (like ``ceph-deploy gatherkeys``)
- will fail.
-
-.. note:: When adding a monitor on a host that was not in hosts initially defined
- with the ``ceph-deploy new`` command, a ``public network`` statement needs
- to be added to the ceph.conf file.
-
-Remove a Monitor
-================
-
-If you have a monitor in your cluster that you'd like to remove, you may use
-the ``destroy`` option. ::
-
- ceph-deploy mon destroy {host-name [host-name]...}
-
-
-.. note:: Ensure that if you remove a monitor, the remaining monitors will be
- able to establish a consensus. If that is not possible, consider adding a
- monitor before removing the monitor you would like to take offline.
-
-
-.. _adding and removing monitors: ../../operations/add-or-rm-mons
-.. _Monitor Config Reference: ../../configuration/mon-config-ref
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-new.rst b/src/ceph/doc/rados/deployment/ceph-deploy-new.rst
deleted file mode 100644
index 5eb37a9..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-new.rst
+++ /dev/null
@@ -1,66 +0,0 @@
-==================
- Create a Cluster
-==================
-
-The first step in using Ceph with ``ceph-deploy`` is to create a new Ceph
-cluster. A new Ceph cluster has:
-
-- A Ceph configuration file, and
-- A monitor keyring.
-
-The Ceph configuration file consists of at least:
-
-- Its own filesystem ID (``fsid``)
-- The initial monitor(s) hostname(s), and
-- The initial monitor(s) and IP address(es).
-
-For additional details, see the `Monitor Configuration Reference`_.
-
-The ``ceph-deploy`` tool also creates a monitor keyring and populates it with a
-``[mon.]`` key. For additional details, see the `Cephx Guide`_.
-
-
-Usage
------
-
-To create a cluster with ``ceph-deploy``, use the ``new`` command and specify
-the host(s) that will be initial members of the monitor quorum. ::
-
- ceph-deploy new {host [host], ...}
-
-For example::
-
- ceph-deploy new mon1.foo.com
- ceph-deploy new mon{1,2,3}
-
-The ``ceph-deploy`` utility will use DNS to resolve hostnames to IP
-addresses. The monitors will be named using the first component of
-the name (e.g., ``mon1`` above). It will add the specified host names
-to the Ceph configuration file. For additional details, execute::
-
- ceph-deploy new -h
-
-
-Naming a Cluster
-----------------
-
-By default, Ceph clusters have a cluster name of ``ceph``. You can specify
-a cluster name if you want to run multiple clusters on the same hardware. For
-example, if you want to optimize a cluster for use with block devices, and
-another for use with the gateway, you can run two different clusters on the same
-hardware if they have a different ``fsid`` and cluster name. ::
-
- ceph-deploy --cluster {cluster-name} new {host [host], ...}
-
-For example::
-
- ceph-deploy --cluster rbdcluster new ceph-mon1
- ceph-deploy --cluster rbdcluster new ceph-mon{1,2,3}
-
-.. note:: If you run multiple clusters, ensure you adjust the default
- port settings and open ports for your additional cluster(s) so that
- the networks of the two different clusters don't conflict with each other.
-
-
-.. _Monitor Configuration Reference: ../../configuration/mon-config-ref
-.. _Cephx Guide: ../../../dev/mon-bootstrap#secret-keys
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-osd.rst b/src/ceph/doc/rados/deployment/ceph-deploy-osd.rst
deleted file mode 100644
index a4eb4d1..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-osd.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-=================
- Add/Remove OSDs
-=================
-
-Adding and removing Ceph OSD Daemons to your cluster may involve a few more
-steps when compared to adding and removing other Ceph daemons. Ceph OSD Daemons
-write data to the disk and to journals. So you need to provide a disk for the
-OSD and a path to the journal partition (i.e., this is the most common
-configuration, but you may configure your system to your own needs).
-
-In Ceph v0.60 and later releases, Ceph supports ``dm-crypt`` on disk encryption.
-You may specify the ``--dmcrypt`` argument when preparing an OSD to tell
-``ceph-deploy`` that you want to use encryption. You may also specify the
-``--dmcrypt-key-dir`` argument to specify the location of ``dm-crypt``
-encryption keys.
-
-You should test various drive configurations to gauge their throughput before
-before building out a large cluster. See `Data Storage`_ for additional details.
-
-
-List Disks
-==========
-
-To list the disks on a node, execute the following command::
-
- ceph-deploy disk list {node-name [node-name]...}
-
-
-Zap Disks
-=========
-
-To zap a disk (delete its partition table) in preparation for use with Ceph,
-execute the following::
-
- ceph-deploy disk zap {osd-server-name}:{disk-name}
- ceph-deploy disk zap osdserver1:sdb
-
-.. important:: This will delete all data.
-
-
-Prepare OSDs
-============
-
-Once you create a cluster, install Ceph packages, and gather keys, you
-may prepare the OSDs and deploy them to the OSD node(s). If you need to
-identify a disk or zap it prior to preparing it for use as an OSD,
-see `List Disks`_ and `Zap Disks`_. ::
-
- ceph-deploy osd prepare {node-name}:{data-disk}[:{journal-disk}]
- ceph-deploy osd prepare osdserver1:sdb:/dev/ssd
- ceph-deploy osd prepare osdserver1:sdc:/dev/ssd
-
-The ``prepare`` command only prepares the OSD. On most operating
-systems, the ``activate`` phase will automatically run when the
-partitions are created on the disk (using Ceph ``udev`` rules). If not
-use the ``activate`` command. See `Activate OSDs`_ for
-details.
-
-The foregoing example assumes a disk dedicated to one Ceph OSD Daemon, and
-a path to an SSD journal partition. We recommend storing the journal on
-a separate drive to maximize throughput. You may dedicate a single drive
-for the journal too (which may be expensive) or place the journal on the
-same disk as the OSD (not recommended as it impairs performance). In the
-foregoing example we store the journal on a partitioned solid state drive.
-
-You can use the settings --fs-type or --bluestore to choose which file system
-you want to install in the OSD drive. (More information by running
-'ceph-deploy osd prepare --help').
-
-.. note:: When running multiple Ceph OSD daemons on a single node, and
- sharing a partioned journal with each OSD daemon, you should consider
- the entire node the minimum failure domain for CRUSH purposes, because
- if the SSD drive fails, all of the Ceph OSD daemons that journal to it
- will fail too.
-
-
-Activate OSDs
-=============
-
-Once you prepare an OSD you may activate it with the following command. ::
-
- ceph-deploy osd activate {node-name}:{data-disk-partition}[:{journal-disk-partition}]
- ceph-deploy osd activate osdserver1:/dev/sdb1:/dev/ssd1
- ceph-deploy osd activate osdserver1:/dev/sdc1:/dev/ssd2
-
-The ``activate`` command will cause your OSD to come ``up`` and be placed
-``in`` the cluster. The ``activate`` command uses the path to the partition
-created when running the ``prepare`` command.
-
-
-Create OSDs
-===========
-
-You may prepare OSDs, deploy them to the OSD node(s) and activate them in one
-step with the ``create`` command. The ``create`` command is a convenience method
-for executing the ``prepare`` and ``activate`` command sequentially. ::
-
- ceph-deploy osd create {node-name}:{disk}[:{path/to/journal}]
- ceph-deploy osd create osdserver1:sdb:/dev/ssd1
-
-.. List OSDs
-.. =========
-
-.. To list the OSDs deployed on a node(s), execute the following command::
-
-.. ceph-deploy osd list {node-name}
-
-
-Destroy OSDs
-============
-
-.. note:: Coming soon. See `Remove OSDs`_ for manual procedures.
-
-.. To destroy an OSD, execute the following command::
-
-.. ceph-deploy osd destroy {node-name}:{path-to-disk}[:{path/to/journal}]
-
-.. Destroying an OSD will take it ``down`` and ``out`` of the cluster.
-
-.. _Data Storage: ../../../start/hardware-recommendations#data-storage
-.. _Remove OSDs: ../../operations/add-or-rm-osds#removing-osds-manual
diff --git a/src/ceph/doc/rados/deployment/ceph-deploy-purge.rst b/src/ceph/doc/rados/deployment/ceph-deploy-purge.rst
deleted file mode 100644
index 685c3c4..0000000
--- a/src/ceph/doc/rados/deployment/ceph-deploy-purge.rst
+++ /dev/null
@@ -1,25 +0,0 @@
-==============
- Purge a Host
-==============
-
-When you remove Ceph daemons and uninstall Ceph, there may still be extraneous
-data from the cluster on your server. The ``purge`` and ``purgedata`` commands
-provide a convenient means of cleaning up a host.
-
-
-Purge Data
-==========
-
-To remove all data from ``/var/lib/ceph`` (but leave Ceph packages intact),
-execute the ``purgedata`` command.
-
- ceph-deploy purgedata {hostname} [{hostname} ...]
-
-
-Purge
-=====
-
-To remove all data from ``/var/lib/ceph`` and uninstall Ceph packages, execute
-the ``purge`` command.
-
- ceph-deploy purge {hostname} [{hostname} ...] \ No newline at end of file
diff --git a/src/ceph/doc/rados/deployment/index.rst b/src/ceph/doc/rados/deployment/index.rst
deleted file mode 100644
index 0853e4a..0000000
--- a/src/ceph/doc/rados/deployment/index.rst
+++ /dev/null
@@ -1,58 +0,0 @@
-=================
- Ceph Deployment
-=================
-
-The ``ceph-deploy`` tool is a way to deploy Ceph relying only upon SSH access to
-the servers, ``sudo``, and some Python. It runs on your workstation, and does
-not require servers, databases, or any other tools. If you set up and
-tear down Ceph clusters a lot, and want minimal extra bureaucracy,
-``ceph-deploy`` is an ideal tool. The ``ceph-deploy`` tool is not a generic
-deployment system. It was designed exclusively for Ceph users who want to get
-Ceph up and running quickly with sensible initial configuration settings without
-the overhead of installing Chef, Puppet or Juju. Users who want fine-control
-over security settings, partitions or directory locations should use a tool
-such as Juju, Puppet, `Chef`_ or Crowbar.
-
-
-With ``ceph-deploy``, you can develop scripts to install Ceph packages on remote
-hosts, create a cluster, add monitors, gather (or forget) keys, add OSDs and
-metadata servers, configure admin hosts, and tear down the clusters.
-
-.. raw:: html
-
- <table cellpadding="10"><tbody valign="top"><tr><td>
-
-.. toctree::
-
- Preflight Checklist <preflight-checklist>
- Install Ceph <ceph-deploy-install>
-
-.. raw:: html
-
- </td><td>
-
-.. toctree::
-
- Create a Cluster <ceph-deploy-new>
- Add/Remove Monitor(s) <ceph-deploy-mon>
- Key Management <ceph-deploy-keys>
- Add/Remove OSD(s) <ceph-deploy-osd>
- Add/Remove MDS(s) <ceph-deploy-mds>
-
-
-.. raw:: html
-
- </td><td>
-
-.. toctree::
-
- Purge Hosts <ceph-deploy-purge>
- Admin Tasks <ceph-deploy-admin>
-
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-
-.. _Chef: http://tracker.ceph.com/projects/ceph/wiki/Deploying_Ceph_with_Chef
diff --git a/src/ceph/doc/rados/deployment/preflight-checklist.rst b/src/ceph/doc/rados/deployment/preflight-checklist.rst
deleted file mode 100644
index 64a669f..0000000
--- a/src/ceph/doc/rados/deployment/preflight-checklist.rst
+++ /dev/null
@@ -1,109 +0,0 @@
-=====================
- Preflight Checklist
-=====================
-
-.. versionadded:: 0.60
-
-This **Preflight Checklist** will help you prepare an admin node for use with
-``ceph-deploy``, and server nodes for use with passwordless ``ssh`` and
-``sudo``.
-
-Before you can deploy Ceph using ``ceph-deploy``, you need to ensure that you
-have a few things set up first on your admin node and on nodes running Ceph
-daemons.
-
-
-Install an Operating System
-===========================
-
-Install a recent release of Debian or Ubuntu (e.g., 12.04 LTS, 14.04 LTS) on
-your nodes. For additional details on operating systems or to use other
-operating systems other than Debian or Ubuntu, see `OS Recommendations`_.
-
-
-Install an SSH Server
-=====================
-
-The ``ceph-deploy`` utility requires ``ssh``, so your server node(s) require an
-SSH server. ::
-
- sudo apt-get install openssh-server
-
-
-Create a User
-=============
-
-Create a user on nodes running Ceph daemons.
-
-.. tip:: We recommend a username that brute force attackers won't
- guess easily (e.g., something other than ``root``, ``ceph``, etc).
-
-::
-
- ssh user@ceph-server
- sudo useradd -d /home/ceph -m ceph
- sudo passwd ceph
-
-
-``ceph-deploy`` installs packages onto your nodes. This means that
-the user you create requires passwordless ``sudo`` privileges.
-
-.. note:: We **DO NOT** recommend enabling the ``root`` password
- for security reasons.
-
-To provide full privileges to the user, add the following to
-``/etc/sudoers.d/ceph``. ::
-
- echo "ceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph
- sudo chmod 0440 /etc/sudoers.d/ceph
-
-
-Configure SSH
-=============
-
-Configure your admin machine with password-less SSH access to each node
-running Ceph daemons (leave the passphrase empty). ::
-
- ssh-keygen
- Generating public/private key pair.
- Enter file in which to save the key (/ceph-client/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /ceph-client/.ssh/id_rsa.
- Your public key has been saved in /ceph-client/.ssh/id_rsa.pub.
-
-Copy the key to each node running Ceph daemons::
-
- ssh-copy-id ceph@ceph-server
-
-Modify your ~/.ssh/config file of your admin node so that it defaults
-to logging in as the user you created when no username is specified. ::
-
- Host ceph-server
- Hostname ceph-server.fqdn-or-ip-address.com
- User ceph
-
-
-Install ceph-deploy
-===================
-
-To install ``ceph-deploy``, execute the following::
-
- wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
- echo deb http://ceph.com/debian-dumpling/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
- sudo apt-get update
- sudo apt-get install ceph-deploy
-
-
-Ensure Connectivity
-===================
-
-Ensure that your Admin node has connectivity to the network and to your Server
-node (e.g., ensure ``iptables``, ``ufw`` or other tools that may prevent
-connections, traffic forwarding, etc. to allow what you need).
-
-
-Once you have completed this pre-flight checklist, you are ready to begin using
-``ceph-deploy``.
-
-.. _OS Recommendations: ../../../start/os-recommendations
diff --git a/src/ceph/doc/rados/index.rst b/src/ceph/doc/rados/index.rst
deleted file mode 100644
index 929bb7e..0000000
--- a/src/ceph/doc/rados/index.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-======================
- Ceph Storage Cluster
-======================
-
-The :term:`Ceph Storage Cluster` is the foundation for all Ceph deployments.
-Based upon :abbr:`RADOS (Reliable Autonomic Distributed Object Store)`, Ceph
-Storage Clusters consist of two types of daemons: a :term:`Ceph OSD Daemon`
-(OSD) stores data as objects on a storage node; and a :term:`Ceph Monitor` (MON)
-maintains a master copy of the cluster map. A Ceph Storage Cluster may contain
-thousands of storage nodes. A minimal system will have at least one
-Ceph Monitor and two Ceph OSD Daemons for data replication.
-
-The Ceph Filesystem, Ceph Object Storage and Ceph Block Devices read data from
-and write data to the Ceph Storage Cluster.
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="33%"><col width="33%"><col width="33%"></colgroup><tbody valign="top"><tr><td><h3>Config and Deploy</h3>
-
-Ceph Storage Clusters have a few required settings, but most configuration
-settings have default values. A typical deployment uses a deployment tool
-to define a cluster and bootstrap a monitor. See `Deployment`_ for details
-on ``ceph-deploy.``
-
-.. toctree::
- :maxdepth: 2
-
- Configuration <configuration/index>
- Deployment <deployment/index>
-
-.. raw:: html
-
- </td><td><h3>Operations</h3>
-
-Once you have a deployed a Ceph Storage Cluster, you may begin operating
-your cluster.
-
-.. toctree::
- :maxdepth: 2
-
-
- Operations <operations/index>
-
-.. toctree::
- :maxdepth: 1
-
- Man Pages <man/index>
-
-
-.. toctree::
- :hidden:
-
- troubleshooting/index
-
-.. raw:: html
-
- </td><td><h3>APIs</h3>
-
-Most Ceph deployments use `Ceph Block Devices`_, `Ceph Object Storage`_ and/or the
-`Ceph Filesystem`_. You may also develop applications that talk directly to
-the Ceph Storage Cluster.
-
-.. toctree::
- :maxdepth: 2
-
- APIs <api/index>
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-.. _Ceph Block Devices: ../rbd/
-.. _Ceph Filesystem: ../cephfs/
-.. _Ceph Object Storage: ../radosgw/
-.. _Deployment: ../rados/deployment/
diff --git a/src/ceph/doc/rados/man/index.rst b/src/ceph/doc/rados/man/index.rst
deleted file mode 100644
index abeb88b..0000000
--- a/src/ceph/doc/rados/man/index.rst
+++ /dev/null
@@ -1,34 +0,0 @@
-=======================
- Object Store Manpages
-=======================
-
-.. toctree::
- :maxdepth: 1
-
- ../../man/8/ceph-disk.rst
- ../../man/8/ceph-volume.rst
- ../../man/8/ceph-volume-systemd.rst
- ../../man/8/ceph.rst
- ../../man/8/ceph-deploy.rst
- ../../man/8/ceph-rest-api.rst
- ../../man/8/ceph-authtool.rst
- ../../man/8/ceph-clsinfo.rst
- ../../man/8/ceph-conf.rst
- ../../man/8/ceph-debugpack.rst
- ../../man/8/ceph-dencoder.rst
- ../../man/8/ceph-mon.rst
- ../../man/8/ceph-osd.rst
- ../../man/8/ceph-kvstore-tool.rst
- ../../man/8/ceph-run.rst
- ../../man/8/ceph-syn.rst
- ../../man/8/crushtool.rst
- ../../man/8/librados-config.rst
- ../../man/8/monmaptool.rst
- ../../man/8/osdmaptool.rst
- ../../man/8/rados.rst
-
-
-.. toctree::
- :hidden:
-
- ../../man/8/ceph-post-file.rst
diff --git a/src/ceph/doc/rados/operations/add-or-rm-mons.rst b/src/ceph/doc/rados/operations/add-or-rm-mons.rst
deleted file mode 100644
index 0cdc431..0000000
--- a/src/ceph/doc/rados/operations/add-or-rm-mons.rst
+++ /dev/null
@@ -1,370 +0,0 @@
-==========================
- Adding/Removing Monitors
-==========================
-
-When you have a cluster up and running, you may add or remove monitors
-from the cluster at runtime. To bootstrap a monitor, see `Manual Deployment`_
-or `Monitor Bootstrap`_.
-
-Adding Monitors
-===============
-
-Ceph monitors are light-weight processes that maintain a master copy of the
-cluster map. You can run a cluster with 1 monitor. We recommend at least 3
-monitors for a production cluster. Ceph monitors use a variation of the
-`Paxos`_ protocol to establish consensus about maps and other critical
-information across the cluster. Due to the nature of Paxos, Ceph requires
-a majority of monitors running to establish a quorum (thus establishing
-consensus).
-
-It is advisable to run an odd-number of monitors but not mandatory. An
-odd-number of monitors has a higher resiliency to failures than an
-even-number of monitors. For instance, on a 2 monitor deployment, no
-failures can be tolerated in order to maintain a quorum; with 3 monitors,
-one failure can be tolerated; in a 4 monitor deployment, one failure can
-be tolerated; with 5 monitors, two failures can be tolerated. This is
-why an odd-number is advisable. Summarizing, Ceph needs a majority of
-monitors to be running (and able to communicate with each other), but that
-majority can be achieved using a single monitor, or 2 out of 2 monitors,
-2 out of 3, 3 out of 4, etc.
-
-For an initial deployment of a multi-node Ceph cluster, it is advisable to
-deploy three monitors, increasing the number two at a time if a valid need
-for more than three exists.
-
-Since monitors are light-weight, it is possible to run them on the same
-host as an OSD; however, we recommend running them on separate hosts,
-because fsync issues with the kernel may impair performance.
-
-.. note:: A *majority* of monitors in your cluster must be able to
- reach each other in order to establish a quorum.
-
-Deploy your Hardware
---------------------
-
-If you are adding a new host when adding a new monitor, see `Hardware
-Recommendations`_ for details on minimum recommendations for monitor hardware.
-To add a monitor host to your cluster, first make sure you have an up-to-date
-version of Linux installed (typically Ubuntu 14.04 or RHEL 7).
-
-Add your monitor host to a rack in your cluster, connect it to the network
-and ensure that it has network connectivity.
-
-.. _Hardware Recommendations: ../../../start/hardware-recommendations
-
-Install the Required Software
------------------------------
-
-For manually deployed clusters, you must install Ceph packages
-manually. See `Installing Packages`_ for details.
-You should configure SSH to a user with password-less authentication
-and root permissions.
-
-.. _Installing Packages: ../../../install/install-storage-cluster
-
-
-.. _Adding a Monitor (Manual):
-
-Adding a Monitor (Manual)
--------------------------
-
-This procedure creates a ``ceph-mon`` data directory, retrieves the monitor map
-and monitor keyring, and adds a ``ceph-mon`` daemon to your cluster. If
-this results in only two monitor daemons, you may add more monitors by
-repeating this procedure until you have a sufficient number of ``ceph-mon``
-daemons to achieve a quorum.
-
-At this point you should define your monitor's id. Traditionally, monitors
-have been named with single letters (``a``, ``b``, ``c``, ...), but you are
-free to define the id as you see fit. For the purpose of this document,
-please take into account that ``{mon-id}`` should be the id you chose,
-without the ``mon.`` prefix (i.e., ``{mon-id}`` should be the ``a``
-on ``mon.a``).
-
-#. Create the default directory on the machine that will host your
- new monitor. ::
-
- ssh {new-mon-host}
- sudo mkdir /var/lib/ceph/mon/ceph-{mon-id}
-
-#. Create a temporary directory ``{tmp}`` to keep the files needed during
- this process. This directory should be different from the monitor's default
- directory created in the previous step, and can be removed after all the
- steps are executed. ::
-
- mkdir {tmp}
-
-#. Retrieve the keyring for your monitors, where ``{tmp}`` is the path to
- the retrieved keyring, and ``{key-filename}`` is the name of the file
- containing the retrieved monitor key. ::
-
- ceph auth get mon. -o {tmp}/{key-filename}
-
-#. Retrieve the monitor map, where ``{tmp}`` is the path to
- the retrieved monitor map, and ``{map-filename}`` is the name of the file
- containing the retrieved monitor monitor map. ::
-
- ceph mon getmap -o {tmp}/{map-filename}
-
-#. Prepare the monitor's data directory created in the first step. You must
- specify the path to the monitor map so that you can retrieve the
- information about a quorum of monitors and their ``fsid``. You must also
- specify a path to the monitor keyring::
-
- sudo ceph-mon -i {mon-id} --mkfs --monmap {tmp}/{map-filename} --keyring {tmp}/{key-filename}
-
-
-#. Start the new monitor and it will automatically join the cluster.
- The daemon needs to know which address to bind to, either via
- ``--public-addr {ip:port}`` or by setting ``mon addr`` in the
- appropriate section of ``ceph.conf``. For example::
-
- ceph-mon -i {mon-id} --public-addr {ip:port}
-
-
-Removing Monitors
-=================
-
-When you remove monitors from a cluster, consider that Ceph monitors use
-PAXOS to establish consensus about the master cluster map. You must have
-a sufficient number of monitors to establish a quorum for consensus about
-the cluster map.
-
-.. _Removing a Monitor (Manual):
-
-Removing a Monitor (Manual)
----------------------------
-
-This procedure removes a ``ceph-mon`` daemon from your cluster. If this
-procedure results in only two monitor daemons, you may add or remove another
-monitor until you have a number of ``ceph-mon`` daemons that can achieve a
-quorum.
-
-#. Stop the monitor. ::
-
- service ceph -a stop mon.{mon-id}
-
-#. Remove the monitor from the cluster. ::
-
- ceph mon remove {mon-id}
-
-#. Remove the monitor entry from ``ceph.conf``.
-
-
-Removing Monitors from an Unhealthy Cluster
--------------------------------------------
-
-This procedure removes a ``ceph-mon`` daemon from an unhealthy
-cluster, for example a cluster where the monitors cannot form a
-quorum.
-
-
-#. Stop all ``ceph-mon`` daemons on all monitor hosts. ::
-
- ssh {mon-host}
- service ceph stop mon || stop ceph-mon-all
- # and repeat for all mons
-
-#. Identify a surviving monitor and log in to that host. ::
-
- ssh {mon-host}
-
-#. Extract a copy of the monmap file. ::
-
- ceph-mon -i {mon-id} --extract-monmap {map-path}
- # in most cases, that's
- ceph-mon -i `hostname` --extract-monmap /tmp/monmap
-
-#. Remove the non-surviving or problematic monitors. For example, if
- you have three monitors, ``mon.a``, ``mon.b``, and ``mon.c``, where
- only ``mon.a`` will survive, follow the example below::
-
- monmaptool {map-path} --rm {mon-id}
- # for example,
- monmaptool /tmp/monmap --rm b
- monmaptool /tmp/monmap --rm c
-
-#. Inject the surviving map with the removed monitors into the
- surviving monitor(s). For example, to inject a map into monitor
- ``mon.a``, follow the example below::
-
- ceph-mon -i {mon-id} --inject-monmap {map-path}
- # for example,
- ceph-mon -i a --inject-monmap /tmp/monmap
-
-#. Start only the surviving monitors.
-
-#. Verify the monitors form a quorum (``ceph -s``).
-
-#. You may wish to archive the removed monitors' data directory in
- ``/var/lib/ceph/mon`` in a safe location, or delete it if you are
- confident the remaining monitors are healthy and are sufficiently
- redundant.
-
-.. _Changing a Monitor's IP address:
-
-Changing a Monitor's IP Address
-===============================
-
-.. important:: Existing monitors are not supposed to change their IP addresses.
-
-Monitors are critical components of a Ceph cluster, and they need to maintain a
-quorum for the whole system to work properly. To establish a quorum, the
-monitors need to discover each other. Ceph has strict requirements for
-discovering monitors.
-
-Ceph clients and other Ceph daemons use ``ceph.conf`` to discover monitors.
-However, monitors discover each other using the monitor map, not ``ceph.conf``.
-For example, if you refer to `Adding a Monitor (Manual)`_ you will see that you
-need to obtain the current monmap for the cluster when creating a new monitor,
-as it is one of the required arguments of ``ceph-mon -i {mon-id} --mkfs``. The
-following sections explain the consistency requirements for Ceph monitors, and a
-few safe ways to change a monitor's IP address.
-
-
-Consistency Requirements
-------------------------
-
-A monitor always refers to the local copy of the monmap when discovering other
-monitors in the cluster. Using the monmap instead of ``ceph.conf`` avoids
-errors that could break the cluster (e.g., typos in ``ceph.conf`` when
-specifying a monitor address or port). Since monitors use monmaps for discovery
-and they share monmaps with clients and other Ceph daemons, the monmap provides
-monitors with a strict guarantee that their consensus is valid.
-
-Strict consistency also applies to updates to the monmap. As with any other
-updates on the monitor, changes to the monmap always run through a distributed
-consensus algorithm called `Paxos`_. The monitors must agree on each update to
-the monmap, such as adding or removing a monitor, to ensure that each monitor in
-the quorum has the same version of the monmap. Updates to the monmap are
-incremental so that monitors have the latest agreed upon version, and a set of
-previous versions, allowing a monitor that has an older version of the monmap to
-catch up with the current state of the cluster.
-
-If monitors discovered each other through the Ceph configuration file instead of
-through the monmap, it would introduce additional risks because the Ceph
-configuration files are not updated and distributed automatically. Monitors
-might inadvertently use an older ``ceph.conf`` file, fail to recognize a
-monitor, fall out of a quorum, or develop a situation where `Paxos`_ is not able
-to determine the current state of the system accurately. Consequently, making
-changes to an existing monitor's IP address must be done with great care.
-
-
-Changing a Monitor's IP address (The Right Way)
------------------------------------------------
-
-Changing a monitor's IP address in ``ceph.conf`` only is not sufficient to
-ensure that other monitors in the cluster will receive the update. To change a
-monitor's IP address, you must add a new monitor with the IP address you want
-to use (as described in `Adding a Monitor (Manual)`_), ensure that the new
-monitor successfully joins the quorum; then, remove the monitor that uses the
-old IP address. Then, update the ``ceph.conf`` file to ensure that clients and
-other daemons know the IP address of the new monitor.
-
-For example, lets assume there are three monitors in place, such as ::
-
- [mon.a]
- host = host01
- addr = 10.0.0.1:6789
- [mon.b]
- host = host02
- addr = 10.0.0.2:6789
- [mon.c]
- host = host03
- addr = 10.0.0.3:6789
-
-To change ``mon.c`` to ``host04`` with the IP address ``10.0.0.4``, follow the
-steps in `Adding a Monitor (Manual)`_ by adding a new monitor ``mon.d``. Ensure
-that ``mon.d`` is running before removing ``mon.c``, or it will break the
-quorum. Remove ``mon.c`` as described on `Removing a Monitor (Manual)`_. Moving
-all three monitors would thus require repeating this process as many times as
-needed.
-
-
-Changing a Monitor's IP address (The Messy Way)
------------------------------------------------
-
-There may come a time when the monitors must be moved to a different network, a
-different part of the datacenter or a different datacenter altogether. While it
-is possible to do it, the process becomes a bit more hazardous.
-
-In such a case, the solution is to generate a new monmap with updated IP
-addresses for all the monitors in the cluster, and inject the new map on each
-individual monitor. This is not the most user-friendly approach, but we do not
-expect this to be something that needs to be done every other week. As it is
-clearly stated on the top of this section, monitors are not supposed to change
-IP addresses.
-
-Using the previous monitor configuration as an example, assume you want to move
-all the monitors from the ``10.0.0.x`` range to ``10.1.0.x``, and these
-networks are unable to communicate. Use the following procedure:
-
-#. Retrieve the monitor map, where ``{tmp}`` is the path to
- the retrieved monitor map, and ``{filename}`` is the name of the file
- containing the retrieved monitor monitor map. ::
-
- ceph mon getmap -o {tmp}/{filename}
-
-#. The following example demonstrates the contents of the monmap. ::
-
- $ monmaptool --print {tmp}/{filename}
-
- monmaptool: monmap file {tmp}/{filename}
- epoch 1
- fsid 224e376d-c5fe-4504-96bb-ea6332a19e61
- last_changed 2012-12-17 02:46:41.591248
- created 2012-12-17 02:46:41.591248
- 0: 10.0.0.1:6789/0 mon.a
- 1: 10.0.0.2:6789/0 mon.b
- 2: 10.0.0.3:6789/0 mon.c
-
-#. Remove the existing monitors. ::
-
- $ monmaptool --rm a --rm b --rm c {tmp}/{filename}
-
- monmaptool: monmap file {tmp}/{filename}
- monmaptool: removing a
- monmaptool: removing b
- monmaptool: removing c
- monmaptool: writing epoch 1 to {tmp}/{filename} (0 monitors)
-
-#. Add the new monitor locations. ::
-
- $ monmaptool --add a 10.1.0.1:6789 --add b 10.1.0.2:6789 --add c 10.1.0.3:6789 {tmp}/{filename}
-
- monmaptool: monmap file {tmp}/{filename}
- monmaptool: writing epoch 1 to {tmp}/{filename} (3 monitors)
-
-#. Check new contents. ::
-
- $ monmaptool --print {tmp}/{filename}
-
- monmaptool: monmap file {tmp}/{filename}
- epoch 1
- fsid 224e376d-c5fe-4504-96bb-ea6332a19e61
- last_changed 2012-12-17 02:46:41.591248
- created 2012-12-17 02:46:41.591248
- 0: 10.1.0.1:6789/0 mon.a
- 1: 10.1.0.2:6789/0 mon.b
- 2: 10.1.0.3:6789/0 mon.c
-
-At this point, we assume the monitors (and stores) are installed at the new
-location. The next step is to propagate the modified monmap to the new
-monitors, and inject the modified monmap into each new monitor.
-
-#. First, make sure to stop all your monitors. Injection must be done while
- the daemon is not running.
-
-#. Inject the monmap. ::
-
- ceph-mon -i {mon-id} --inject-monmap {tmp}/{filename}
-
-#. Restart the monitors.
-
-After this step, migration to the new location is complete and
-the monitors should operate successfully.
-
-
-.. _Manual Deployment: ../../../install/manual-deployment
-.. _Monitor Bootstrap: ../../../dev/mon-bootstrap
-.. _Paxos: http://en.wikipedia.org/wiki/Paxos_(computer_science)
diff --git a/src/ceph/doc/rados/operations/add-or-rm-osds.rst b/src/ceph/doc/rados/operations/add-or-rm-osds.rst
deleted file mode 100644
index 59ce4c7..0000000
--- a/src/ceph/doc/rados/operations/add-or-rm-osds.rst
+++ /dev/null
@@ -1,366 +0,0 @@
-======================
- Adding/Removing OSDs
-======================
-
-When you have a cluster up and running, you may add OSDs or remove OSDs
-from the cluster at runtime.
-
-Adding OSDs
-===========
-
-When you want to expand a cluster, you may add an OSD at runtime. With Ceph, an
-OSD is generally one Ceph ``ceph-osd`` daemon for one storage drive within a
-host machine. If your host has multiple storage drives, you may map one
-``ceph-osd`` daemon for each drive.
-
-Generally, it's a good idea to check the capacity of your cluster to see if you
-are reaching the upper end of its capacity. As your cluster reaches its ``near
-full`` ratio, you should add one or more OSDs to expand your cluster's capacity.
-
-.. warning:: Do not let your cluster reach its ``full ratio`` before
- adding an OSD. OSD failures that occur after the cluster reaches
- its ``near full`` ratio may cause the cluster to exceed its
- ``full ratio``.
-
-Deploy your Hardware
---------------------
-
-If you are adding a new host when adding a new OSD, see `Hardware
-Recommendations`_ for details on minimum recommendations for OSD hardware. To
-add an OSD host to your cluster, first make sure you have an up-to-date version
-of Linux installed, and you have made some initial preparations for your
-storage drives. See `Filesystem Recommendations`_ for details.
-
-Add your OSD host to a rack in your cluster, connect it to the network
-and ensure that it has network connectivity. See the `Network Configuration
-Reference`_ for details.
-
-.. _Hardware Recommendations: ../../../start/hardware-recommendations
-.. _Filesystem Recommendations: ../../configuration/filesystem-recommendations
-.. _Network Configuration Reference: ../../configuration/network-config-ref
-
-Install the Required Software
------------------------------
-
-For manually deployed clusters, you must install Ceph packages
-manually. See `Installing Ceph (Manual)`_ for details.
-You should configure SSH to a user with password-less authentication
-and root permissions.
-
-.. _Installing Ceph (Manual): ../../../install
-
-
-Adding an OSD (Manual)
-----------------------
-
-This procedure sets up a ``ceph-osd`` daemon, configures it to use one drive,
-and configures the cluster to distribute data to the OSD. If your host has
-multiple drives, you may add an OSD for each drive by repeating this procedure.
-
-To add an OSD, create a data directory for it, mount a drive to that directory,
-add the OSD to the cluster, and then add it to the CRUSH map.
-
-When you add the OSD to the CRUSH map, consider the weight you give to the new
-OSD. Hard drive capacity grows 40% per year, so newer OSD hosts may have larger
-hard drives than older hosts in the cluster (i.e., they may have greater
-weight).
-
-.. tip:: Ceph prefers uniform hardware across pools. If you are adding drives
- of dissimilar size, you can adjust their weights. However, for best
- performance, consider a CRUSH hierarchy with drives of the same type/size.
-
-#. Create the OSD. If no UUID is given, it will be set automatically when the
- OSD starts up. The following command will output the OSD number, which you
- will need for subsequent steps. ::
-
- ceph osd create [{uuid} [{id}]]
-
- If the optional parameter {id} is given it will be used as the OSD id.
- Note, in this case the command may fail if the number is already in use.
-
- .. warning:: In general, explicitly specifying {id} is not recommended.
- IDs are allocated as an array, and skipping entries consumes some extra
- memory. This can become significant if there are large gaps and/or
- clusters are large. If {id} is not specified, the smallest available is
- used.
-
-#. Create the default directory on your new OSD. ::
-
- ssh {new-osd-host}
- sudo mkdir /var/lib/ceph/osd/ceph-{osd-number}
-
-
-#. If the OSD is for a drive other than the OS drive, prepare it
- for use with Ceph, and mount it to the directory you just created::
-
- ssh {new-osd-host}
- sudo mkfs -t {fstype} /dev/{drive}
- sudo mount -o user_xattr /dev/{hdd} /var/lib/ceph/osd/ceph-{osd-number}
-
-
-#. Initialize the OSD data directory. ::
-
- ssh {new-osd-host}
- ceph-osd -i {osd-num} --mkfs --mkkey
-
- The directory must be empty before you can run ``ceph-osd``.
-
-#. Register the OSD authentication key. The value of ``ceph`` for
- ``ceph-{osd-num}`` in the path is the ``$cluster-$id``. If your
- cluster name differs from ``ceph``, use your cluster name instead.::
-
- ceph auth add osd.{osd-num} osd 'allow *' mon 'allow rwx' -i /var/lib/ceph/osd/ceph-{osd-num}/keyring
-
-
-#. Add the OSD to the CRUSH map so that the OSD can begin receiving data. The
- ``ceph osd crush add`` command allows you to add OSDs to the CRUSH hierarchy
- wherever you wish. If you specify at least one bucket, the command
- will place the OSD into the most specific bucket you specify, *and* it will
- move that bucket underneath any other buckets you specify. **Important:** If
- you specify only the root bucket, the command will attach the OSD directly
- to the root, but CRUSH rules expect OSDs to be inside of hosts.
-
- For Argonaut (v 0.48), execute the following::
-
- ceph osd crush add {id} {name} {weight} [{bucket-type}={bucket-name} ...]
-
- For Bobtail (v 0.56) and later releases, execute the following::
-
- ceph osd crush add {id-or-name} {weight} [{bucket-type}={bucket-name} ...]
-
- You may also decompile the CRUSH map, add the OSD to the device list, add the
- host as a bucket (if it's not already in the CRUSH map), add the device as an
- item in the host, assign it a weight, recompile it and set it. See
- `Add/Move an OSD`_ for details.
-
-
-.. topic:: Argonaut (v0.48) Best Practices
-
- To limit impact on user I/O performance, add an OSD to the CRUSH map
- with an initial weight of ``0``. Then, ramp up the CRUSH weight a
- little bit at a time. For example, to ramp by increments of ``0.2``,
- start with::
-
- ceph osd crush reweight {osd-id} .2
-
- and allow migration to complete before reweighting to ``0.4``,
- ``0.6``, and so on until the desired CRUSH weight is reached.
-
- To limit the impact of OSD failures, you can set::
-
- mon osd down out interval = 0
-
- which prevents down OSDs from automatically being marked out, and then
- ramp them down manually with::
-
- ceph osd reweight {osd-num} .8
-
- Again, wait for the cluster to finish migrating data, and then adjust
- the weight further until you reach a weight of 0. Note that this
- problem prevents the cluster to automatically re-replicate data after
- a failure, so please ensure that sufficient monitoring is in place for
- an administrator to intervene promptly.
-
- Note that this practice will no longer be necessary in Bobtail and
- subsequent releases.
-
-
-Replacing an OSD
-----------------
-
-When disks fail, or if an admnistrator wants to reprovision OSDs with a new
-backend, for instance, for switching from FileStore to BlueStore, OSDs need to
-be replaced. Unlike `Removing the OSD`_, replaced OSD's id and CRUSH map entry
-need to be keep intact after the OSD is destroyed for replacement.
-
-#. Destroy the OSD first::
-
- ceph osd destroy {id} --yes-i-really-mean-it
-
-#. Zap a disk for the new OSD, if the disk was used before for other purposes.
- It's not necessary for a new disk::
-
- ceph-disk zap /dev/sdX
-
-#. Prepare the disk for replacement by using the previously destroyed OSD id::
-
- ceph-disk prepare --bluestore /dev/sdX --osd-id {id} --osd-uuid `uuidgen`
-
-#. And activate the OSD::
-
- ceph-disk activate /dev/sdX1
-
-
-Starting the OSD
-----------------
-
-After you add an OSD to Ceph, the OSD is in your configuration. However,
-it is not yet running. The OSD is ``down`` and ``in``. You must start
-your new OSD before it can begin receiving data. You may use
-``service ceph`` from your admin host or start the OSD from its host
-machine.
-
-For Ubuntu Trusty use Upstart. ::
-
- sudo start ceph-osd id={osd-num}
-
-For all other distros use systemd. ::
-
- sudo systemctl start ceph-osd@{osd-num}
-
-
-Once you start your OSD, it is ``up`` and ``in``.
-
-
-Observe the Data Migration
---------------------------
-
-Once you have added your new OSD to the CRUSH map, Ceph will begin rebalancing
-the server by migrating placement groups to your new OSD. You can observe this
-process with the `ceph`_ tool. ::
-
- ceph -w
-
-You should see the placement group states change from ``active+clean`` to
-``active, some degraded objects``, and finally ``active+clean`` when migration
-completes. (Control-c to exit.)
-
-
-.. _Add/Move an OSD: ../crush-map#addosd
-.. _ceph: ../monitoring
-
-
-
-Removing OSDs (Manual)
-======================
-
-When you want to reduce the size of a cluster or replace hardware, you may
-remove an OSD at runtime. With Ceph, an OSD is generally one Ceph ``ceph-osd``
-daemon for one storage drive within a host machine. If your host has multiple
-storage drives, you may need to remove one ``ceph-osd`` daemon for each drive.
-Generally, it's a good idea to check the capacity of your cluster to see if you
-are reaching the upper end of its capacity. Ensure that when you remove an OSD
-that your cluster is not at its ``near full`` ratio.
-
-.. warning:: Do not let your cluster reach its ``full ratio`` when
- removing an OSD. Removing OSDs could cause the cluster to reach
- or exceed its ``full ratio``.
-
-
-Take the OSD out of the Cluster
------------------------------------
-
-Before you remove an OSD, it is usually ``up`` and ``in``. You need to take it
-out of the cluster so that Ceph can begin rebalancing and copying its data to
-other OSDs. ::
-
- ceph osd out {osd-num}
-
-
-Observe the Data Migration
---------------------------
-
-Once you have taken your OSD ``out`` of the cluster, Ceph will begin
-rebalancing the cluster by migrating placement groups out of the OSD you
-removed. You can observe this process with the `ceph`_ tool. ::
-
- ceph -w
-
-You should see the placement group states change from ``active+clean`` to
-``active, some degraded objects``, and finally ``active+clean`` when migration
-completes. (Control-c to exit.)
-
-.. note:: Sometimes, typically in a "small" cluster with few hosts (for
- instance with a small testing cluster), the fact to take ``out`` the
- OSD can spawn a CRUSH corner case where some PGs remain stuck in the
- ``active+remapped`` state. If you are in this case, you should mark
- the OSD ``in`` with:
-
- ``ceph osd in {osd-num}``
-
- to come back to the initial state and then, instead of marking ``out``
- the OSD, set its weight to 0 with:
-
- ``ceph osd crush reweight osd.{osd-num} 0``
-
- After that, you can observe the data migration which should come to its
- end. The difference between marking ``out`` the OSD and reweighting it
- to 0 is that in the first case the weight of the bucket which contains
- the OSD is not changed whereas in the second case the weight of the bucket
- is updated (and decreased of the OSD weight). The reweight command could
- be sometimes favoured in the case of a "small" cluster.
-
-
-
-Stopping the OSD
-----------------
-
-After you take an OSD out of the cluster, it may still be running.
-That is, the OSD may be ``up`` and ``out``. You must stop
-your OSD before you remove it from the configuration. ::
-
- ssh {osd-host}
- sudo systemctl stop ceph-osd@{osd-num}
-
-Once you stop your OSD, it is ``down``.
-
-
-Removing the OSD
-----------------
-
-This procedure removes an OSD from a cluster map, removes its authentication
-key, removes the OSD from the OSD map, and removes the OSD from the
-``ceph.conf`` file. If your host has multiple drives, you may need to remove an
-OSD for each drive by repeating this procedure.
-
-#. Let the cluster forget the OSD first. This step removes the OSD from the CRUSH
- map, removes its authentication key. And it is removed from the OSD map as
- well. Please note the `purge subcommand`_ is introduced in Luminous, for older
- versions, please see below ::
-
- ceph osd purge {id} --yes-i-really-mean-it
-
-#. Navigate to the host where you keep the master copy of the cluster's
- ``ceph.conf`` file. ::
-
- ssh {admin-host}
- cd /etc/ceph
- vim ceph.conf
-
-#. Remove the OSD entry from your ``ceph.conf`` file (if it exists). ::
-
- [osd.1]
- host = {hostname}
-
-#. From the host where you keep the master copy of the cluster's ``ceph.conf`` file,
- copy the updated ``ceph.conf`` file to the ``/etc/ceph`` directory of other
- hosts in your cluster.
-
-If your Ceph cluster is older than Luminous, instead of using ``ceph osd purge``,
-you need to perform this step manually:
-
-
-#. Remove the OSD from the CRUSH map so that it no longer receives data. You may
- also decompile the CRUSH map, remove the OSD from the device list, remove the
- device as an item in the host bucket or remove the host bucket (if it's in the
- CRUSH map and you intend to remove the host), recompile the map and set it.
- See `Remove an OSD`_ for details. ::
-
- ceph osd crush remove {name}
-
-#. Remove the OSD authentication key. ::
-
- ceph auth del osd.{osd-num}
-
- The value of ``ceph`` for ``ceph-{osd-num}`` in the path is the ``$cluster-$id``.
- If your cluster name differs from ``ceph``, use your cluster name instead.
-
-#. Remove the OSD. ::
-
- ceph osd rm {osd-num}
- #for example
- ceph osd rm 1
-
-
-.. _Remove an OSD: ../crush-map#removeosd
-.. _purge subcommand: /man/8/ceph#osd
diff --git a/src/ceph/doc/rados/operations/cache-tiering.rst b/src/ceph/doc/rados/operations/cache-tiering.rst
deleted file mode 100644
index 322c6ff..0000000
--- a/src/ceph/doc/rados/operations/cache-tiering.rst
+++ /dev/null
@@ -1,461 +0,0 @@
-===============
- Cache Tiering
-===============
-
-A cache tier provides Ceph Clients with better I/O performance for a subset of
-the data stored in a backing storage tier. Cache tiering involves creating a
-pool of relatively fast/expensive storage devices (e.g., solid state drives)
-configured to act as a cache tier, and a backing pool of either erasure-coded
-or relatively slower/cheaper devices configured to act as an economical storage
-tier. The Ceph objecter handles where to place the objects and the tiering
-agent determines when to flush objects from the cache to the backing storage
-tier. So the cache tier and the backing storage tier are completely transparent
-to Ceph clients.
-
-
-.. ditaa::
- +-------------+
- | Ceph Client |
- +------+------+
- ^
- Tiering is |
- Transparent | Faster I/O
- to Ceph | +---------------+
- Client Ops | | |
- | +----->+ Cache Tier |
- | | | |
- | | +-----+---+-----+
- | | | ^
- v v | | Active Data in Cache Tier
- +------+----+--+ | |
- | Objecter | | |
- +-----------+--+ | |
- ^ | | Inactive Data in Storage Tier
- | v |
- | +-----+---+-----+
- | | |
- +----->| Storage Tier |
- | |
- +---------------+
- Slower I/O
-
-
-The cache tiering agent handles the migration of data between the cache tier
-and the backing storage tier automatically. However, admins have the ability to
-configure how this migration takes place. There are two main scenarios:
-
-- **Writeback Mode:** When admins configure tiers with ``writeback`` mode, Ceph
- clients write data to the cache tier and receive an ACK from the cache tier.
- In time, the data written to the cache tier migrates to the storage tier
- and gets flushed from the cache tier. Conceptually, the cache tier is
- overlaid "in front" of the backing storage tier. When a Ceph client needs
- data that resides in the storage tier, the cache tiering agent migrates the
- data to the cache tier on read, then it is sent to the Ceph client.
- Thereafter, the Ceph client can perform I/O using the cache tier, until the
- data becomes inactive. This is ideal for mutable data (e.g., photo/video
- editing, transactional data, etc.).
-
-- **Read-proxy Mode:** This mode will use any objects that already
- exist in the cache tier, but if an object is not present in the
- cache the request will be proxied to the base tier. This is useful
- for transitioning from ``writeback`` mode to a disabled cache as it
- allows the workload to function properly while the cache is drained,
- without adding any new objects to the cache.
-
-A word of caution
-=================
-
-Cache tiering will *degrade* performance for most workloads. Users should use
-extreme caution before using this feature.
-
-* *Workload dependent*: Whether a cache will improve performance is
- highly dependent on the workload. Because there is a cost
- associated with moving objects into or out of the cache, it can only
- be effective when there is a *large skew* in the access pattern in
- the data set, such that most of the requests touch a small number of
- objects. The cache pool should be large enough to capture the
- working set for your workload to avoid thrashing.
-
-* *Difficult to benchmark*: Most benchmarks that users run to measure
- performance will show terrible performance with cache tiering, in
- part because very few of them skew requests toward a small set of
- objects, it can take a long time for the cache to "warm up," and
- because the warm-up cost can be high.
-
-* *Usually slower*: For workloads that are not cache tiering-friendly,
- performance is often slower than a normal RADOS pool without cache
- tiering enabled.
-
-* *librados object enumeration*: The librados-level object enumeration
- API is not meant to be coherent in the presence of the case. If
- your applicatoin is using librados directly and relies on object
- enumeration, cache tiering will probably not work as expected.
- (This is not a problem for RGW, RBD, or CephFS.)
-
-* *Complexity*: Enabling cache tiering means that a lot of additional
- machinery and complexity within the RADOS cluster is being used.
- This increases the probability that you will encounter a bug in the system
- that other users have not yet encountered and will put your deployment at a
- higher level of risk.
-
-Known Good Workloads
---------------------
-
-* *RGW time-skewed*: If the RGW workload is such that almost all read
- operations are directed at recently written objects, a simple cache
- tiering configuration that destages recently written objects from
- the cache to the base tier after a configurable period can work
- well.
-
-Known Bad Workloads
--------------------
-
-The following configurations are *known to work poorly* with cache
-tiering.
-
-* *RBD with replicated cache and erasure-coded base*: This is a common
- request, but usually does not perform well. Even reasonably skewed
- workloads still send some small writes to cold objects, and because
- small writes are not yet supported by the erasure-coded pool, entire
- (usually 4 MB) objects must be migrated into the cache in order to
- satisfy a small (often 4 KB) write. Only a handful of users have
- successfully deployed this configuration, and it only works for them
- because their data is extremely cold (backups) and they are not in
- any way sensitive to performance.
-
-* *RBD with replicated cache and base*: RBD with a replicated base
- tier does better than when the base is erasure coded, but it is
- still highly dependent on the amount of skew in the workload, and
- very difficult to validate. The user will need to have a good
- understanding of their workload and will need to tune the cache
- tiering parameters carefully.
-
-
-Setting Up Pools
-================
-
-To set up cache tiering, you must have two pools. One will act as the
-backing storage and the other will act as the cache.
-
-
-Setting Up a Backing Storage Pool
----------------------------------
-
-Setting up a backing storage pool typically involves one of two scenarios:
-
-- **Standard Storage**: In this scenario, the pool stores multiple copies
- of an object in the Ceph Storage Cluster.
-
-- **Erasure Coding:** In this scenario, the pool uses erasure coding to
- store data much more efficiently with a small performance tradeoff.
-
-In the standard storage scenario, you can setup a CRUSH ruleset to establish
-the failure domain (e.g., osd, host, chassis, rack, row, etc.). Ceph OSD
-Daemons perform optimally when all storage drives in the ruleset are of the
-same size, speed (both RPMs and throughput) and type. See `CRUSH Maps`_
-for details on creating a ruleset. Once you have created a ruleset, create
-a backing storage pool.
-
-In the erasure coding scenario, the pool creation arguments will generate the
-appropriate ruleset automatically. See `Create a Pool`_ for details.
-
-In subsequent examples, we will refer to the backing storage pool
-as ``cold-storage``.
-
-
-Setting Up a Cache Pool
------------------------
-
-Setting up a cache pool follows the same procedure as the standard storage
-scenario, but with this difference: the drives for the cache tier are typically
-high performance drives that reside in their own servers and have their own
-ruleset. When setting up a ruleset, it should take account of the hosts that
-have the high performance drives while omitting the hosts that don't. See
-`Placing Different Pools on Different OSDs`_ for details.
-
-
-In subsequent examples, we will refer to the cache pool as ``hot-storage`` and
-the backing pool as ``cold-storage``.
-
-For cache tier configuration and default values, see
-`Pools - Set Pool Values`_.
-
-
-Creating a Cache Tier
-=====================
-
-Setting up a cache tier involves associating a backing storage pool with
-a cache pool ::
-
- ceph osd tier add {storagepool} {cachepool}
-
-For example ::
-
- ceph osd tier add cold-storage hot-storage
-
-To set the cache mode, execute the following::
-
- ceph osd tier cache-mode {cachepool} {cache-mode}
-
-For example::
-
- ceph osd tier cache-mode hot-storage writeback
-
-The cache tiers overlay the backing storage tier, so they require one
-additional step: you must direct all client traffic from the storage pool to
-the cache pool. To direct client traffic directly to the cache pool, execute
-the following::
-
- ceph osd tier set-overlay {storagepool} {cachepool}
-
-For example::
-
- ceph osd tier set-overlay cold-storage hot-storage
-
-
-Configuring a Cache Tier
-========================
-
-Cache tiers have several configuration options. You may set
-cache tier configuration options with the following usage::
-
- ceph osd pool set {cachepool} {key} {value}
-
-See `Pools - Set Pool Values`_ for details.
-
-
-Target Size and Type
---------------------
-
-Ceph's production cache tiers use a `Bloom Filter`_ for the ``hit_set_type``::
-
- ceph osd pool set {cachepool} hit_set_type bloom
-
-For example::
-
- ceph osd pool set hot-storage hit_set_type bloom
-
-The ``hit_set_count`` and ``hit_set_period`` define how much time each HitSet
-should cover, and how many such HitSets to store. ::
-
- ceph osd pool set {cachepool} hit_set_count 12
- ceph osd pool set {cachepool} hit_set_period 14400
- ceph osd pool set {cachepool} target_max_bytes 1000000000000
-
-.. note:: A larger ``hit_set_count`` results in more RAM consumed by
- the ``ceph-osd`` process.
-
-Binning accesses over time allows Ceph to determine whether a Ceph client
-accessed an object at least once, or more than once over a time period
-("age" vs "temperature").
-
-The ``min_read_recency_for_promote`` defines how many HitSets to check for the
-existence of an object when handling a read operation. The checking result is
-used to decide whether to promote the object asynchronously. Its value should be
-between 0 and ``hit_set_count``. If it's set to 0, the object is always promoted.
-If it's set to 1, the current HitSet is checked. And if this object is in the
-current HitSet, it's promoted. Otherwise not. For the other values, the exact
-number of archive HitSets are checked. The object is promoted if the object is
-found in any of the most recent ``min_read_recency_for_promote`` HitSets.
-
-A similar parameter can be set for the write operation, which is
-``min_write_recency_for_promote``. ::
-
- ceph osd pool set {cachepool} min_read_recency_for_promote 2
- ceph osd pool set {cachepool} min_write_recency_for_promote 2
-
-.. note:: The longer the period and the higher the
- ``min_read_recency_for_promote`` and
- ``min_write_recency_for_promote``values, the more RAM the ``ceph-osd``
- daemon consumes. In particular, when the agent is active to flush
- or evict cache objects, all ``hit_set_count`` HitSets are loaded
- into RAM.
-
-
-Cache Sizing
-------------
-
-The cache tiering agent performs two main functions:
-
-- **Flushing:** The agent identifies modified (or dirty) objects and forwards
- them to the storage pool for long-term storage.
-
-- **Evicting:** The agent identifies objects that haven't been modified
- (or clean) and evicts the least recently used among them from the cache.
-
-
-Absolute Sizing
-~~~~~~~~~~~~~~~
-
-The cache tiering agent can flush or evict objects based upon the total number
-of bytes or the total number of objects. To specify a maximum number of bytes,
-execute the following::
-
- ceph osd pool set {cachepool} target_max_bytes {#bytes}
-
-For example, to flush or evict at 1 TB, execute the following::
-
- ceph osd pool set hot-storage target_max_bytes 1099511627776
-
-
-To specify the maximum number of objects, execute the following::
-
- ceph osd pool set {cachepool} target_max_objects {#objects}
-
-For example, to flush or evict at 1M objects, execute the following::
-
- ceph osd pool set hot-storage target_max_objects 1000000
-
-.. note:: Ceph is not able to determine the size of a cache pool automatically, so
- the configuration on the absolute size is required here, otherwise the
- flush/evict will not work. If you specify both limits, the cache tiering
- agent will begin flushing or evicting when either threshold is triggered.
-
-.. note:: All client requests will be blocked only when ``target_max_bytes`` or
- ``target_max_objects`` reached
-
-Relative Sizing
-~~~~~~~~~~~~~~~
-
-The cache tiering agent can flush or evict objects relative to the size of the
-cache pool(specified by ``target_max_bytes`` / ``target_max_objects`` in
-`Absolute sizing`_). When the cache pool consists of a certain percentage of
-modified (or dirty) objects, the cache tiering agent will flush them to the
-storage pool. To set the ``cache_target_dirty_ratio``, execute the following::
-
- ceph osd pool set {cachepool} cache_target_dirty_ratio {0.0..1.0}
-
-For example, setting the value to ``0.4`` will begin flushing modified
-(dirty) objects when they reach 40% of the cache pool's capacity::
-
- ceph osd pool set hot-storage cache_target_dirty_ratio 0.4
-
-When the dirty objects reaches a certain percentage of its capacity, flush dirty
-objects with a higher speed. To set the ``cache_target_dirty_high_ratio``::
-
- ceph osd pool set {cachepool} cache_target_dirty_high_ratio {0.0..1.0}
-
-For example, setting the value to ``0.6`` will begin aggressively flush dirty objects
-when they reach 60% of the cache pool's capacity. obviously, we'd better set the value
-between dirty_ratio and full_ratio::
-
- ceph osd pool set hot-storage cache_target_dirty_high_ratio 0.6
-
-When the cache pool reaches a certain percentage of its capacity, the cache
-tiering agent will evict objects to maintain free capacity. To set the
-``cache_target_full_ratio``, execute the following::
-
- ceph osd pool set {cachepool} cache_target_full_ratio {0.0..1.0}
-
-For example, setting the value to ``0.8`` will begin flushing unmodified
-(clean) objects when they reach 80% of the cache pool's capacity::
-
- ceph osd pool set hot-storage cache_target_full_ratio 0.8
-
-
-Cache Age
----------
-
-You can specify the minimum age of an object before the cache tiering agent
-flushes a recently modified (or dirty) object to the backing storage pool::
-
- ceph osd pool set {cachepool} cache_min_flush_age {#seconds}
-
-For example, to flush modified (or dirty) objects after 10 minutes, execute
-the following::
-
- ceph osd pool set hot-storage cache_min_flush_age 600
-
-You can specify the minimum age of an object before it will be evicted from
-the cache tier::
-
- ceph osd pool {cache-tier} cache_min_evict_age {#seconds}
-
-For example, to evict objects after 30 minutes, execute the following::
-
- ceph osd pool set hot-storage cache_min_evict_age 1800
-
-
-Removing a Cache Tier
-=====================
-
-Removing a cache tier differs depending on whether it is a writeback
-cache or a read-only cache.
-
-
-Removing a Read-Only Cache
---------------------------
-
-Since a read-only cache does not have modified data, you can disable
-and remove it without losing any recent changes to objects in the cache.
-
-#. Change the cache-mode to ``none`` to disable it. ::
-
- ceph osd tier cache-mode {cachepool} none
-
- For example::
-
- ceph osd tier cache-mode hot-storage none
-
-#. Remove the cache pool from the backing pool. ::
-
- ceph osd tier remove {storagepool} {cachepool}
-
- For example::
-
- ceph osd tier remove cold-storage hot-storage
-
-
-
-Removing a Writeback Cache
---------------------------
-
-Since a writeback cache may have modified data, you must take steps to ensure
-that you do not lose any recent changes to objects in the cache before you
-disable and remove it.
-
-
-#. Change the cache mode to ``forward`` so that new and modified objects will
- flush to the backing storage pool. ::
-
- ceph osd tier cache-mode {cachepool} forward
-
- For example::
-
- ceph osd tier cache-mode hot-storage forward
-
-
-#. Ensure that the cache pool has been flushed. This may take a few minutes::
-
- rados -p {cachepool} ls
-
- If the cache pool still has objects, you can flush them manually.
- For example::
-
- rados -p {cachepool} cache-flush-evict-all
-
-
-#. Remove the overlay so that clients will not direct traffic to the cache. ::
-
- ceph osd tier remove-overlay {storagetier}
-
- For example::
-
- ceph osd tier remove-overlay cold-storage
-
-
-#. Finally, remove the cache tier pool from the backing storage pool. ::
-
- ceph osd tier remove {storagepool} {cachepool}
-
- For example::
-
- ceph osd tier remove cold-storage hot-storage
-
-
-.. _Create a Pool: ../pools#create-a-pool
-.. _Pools - Set Pool Values: ../pools#set-pool-values
-.. _Placing Different Pools on Different OSDs: ../crush-map/#placing-different-pools-on-different-osds
-.. _Bloom Filter: http://en.wikipedia.org/wiki/Bloom_filter
-.. _CRUSH Maps: ../crush-map
-.. _Absolute Sizing: #absolute-sizing
diff --git a/src/ceph/doc/rados/operations/control.rst b/src/ceph/doc/rados/operations/control.rst
deleted file mode 100644
index 1a58076..0000000
--- a/src/ceph/doc/rados/operations/control.rst
+++ /dev/null
@@ -1,453 +0,0 @@
-.. index:: control, commands
-
-==================
- Control Commands
-==================
-
-
-Monitor Commands
-================
-
-Monitor commands are issued using the ceph utility::
-
- ceph [-m monhost] {command}
-
-The command is usually (though not always) of the form::
-
- ceph {subsystem} {command}
-
-
-System Commands
-===============
-
-Execute the following to display the current status of the cluster. ::
-
- ceph -s
- ceph status
-
-Execute the following to display a running summary of the status of the cluster,
-and major events. ::
-
- ceph -w
-
-Execute the following to show the monitor quorum, including which monitors are
-participating and which one is the leader. ::
-
- ceph quorum_status
-
-Execute the following to query the status of a single monitor, including whether
-or not it is in the quorum. ::
-
- ceph [-m monhost] mon_status
-
-
-Authentication Subsystem
-========================
-
-To add a keyring for an OSD, execute the following::
-
- ceph auth add {osd} {--in-file|-i} {path-to-osd-keyring}
-
-To list the cluster's keys and their capabilities, execute the following::
-
- ceph auth ls
-
-
-Placement Group Subsystem
-=========================
-
-To display the statistics for all placement groups, execute the following::
-
- ceph pg dump [--format {format}]
-
-The valid formats are ``plain`` (default) and ``json``.
-
-To display the statistics for all placement groups stuck in a specified state,
-execute the following::
-
- ceph pg dump_stuck inactive|unclean|stale|undersized|degraded [--format {format}] [-t|--threshold {seconds}]
-
-
-``--format`` may be ``plain`` (default) or ``json``
-
-``--threshold`` defines how many seconds "stuck" is (default: 300)
-
-**Inactive** Placement groups cannot process reads or writes because they are waiting for an OSD
-with the most up-to-date data to come back.
-
-**Unclean** Placement groups contain objects that are not replicated the desired number
-of times. They should be recovering.
-
-**Stale** Placement groups are in an unknown state - the OSDs that host them have not
-reported to the monitor cluster in a while (configured by
-``mon_osd_report_timeout``).
-
-Delete "lost" objects or revert them to their prior state, either a previous version
-or delete them if they were just created. ::
-
- ceph pg {pgid} mark_unfound_lost revert|delete
-
-
-OSD Subsystem
-=============
-
-Query OSD subsystem status. ::
-
- ceph osd stat
-
-Write a copy of the most recent OSD map to a file. See
-`osdmaptool`_. ::
-
- ceph osd getmap -o file
-
-.. _osdmaptool: ../../man/8/osdmaptool
-
-Write a copy of the crush map from the most recent OSD map to
-file. ::
-
- ceph osd getcrushmap -o file
-
-The foregoing functionally equivalent to ::
-
- ceph osd getmap -o /tmp/osdmap
- osdmaptool /tmp/osdmap --export-crush file
-
-Dump the OSD map. Valid formats for ``-f`` are ``plain`` and ``json``. If no
-``--format`` option is given, the OSD map is dumped as plain text. ::
-
- ceph osd dump [--format {format}]
-
-Dump the OSD map as a tree with one line per OSD containing weight
-and state. ::
-
- ceph osd tree [--format {format}]
-
-Find out where a specific object is or would be stored in the system::
-
- ceph osd map <pool-name> <object-name>
-
-Add or move a new item (OSD) with the given id/name/weight at the specified
-location. ::
-
- ceph osd crush set {id} {weight} [{loc1} [{loc2} ...]]
-
-Remove an existing item (OSD) from the CRUSH map. ::
-
- ceph osd crush remove {name}
-
-Remove an existing bucket from the CRUSH map. ::
-
- ceph osd crush remove {bucket-name}
-
-Move an existing bucket from one position in the hierarchy to another. ::
-
- ceph osd crush move {id} {loc1} [{loc2} ...]
-
-Set the weight of the item given by ``{name}`` to ``{weight}``. ::
-
- ceph osd crush reweight {name} {weight}
-
-Mark an OSD as lost. This may result in permanent data loss. Use with caution. ::
-
- ceph osd lost {id} [--yes-i-really-mean-it]
-
-Create a new OSD. If no UUID is given, it will be set automatically when the OSD
-starts up. ::
-
- ceph osd create [{uuid}]
-
-Remove the given OSD(s). ::
-
- ceph osd rm [{id}...]
-
-Query the current max_osd parameter in the OSD map. ::
-
- ceph osd getmaxosd
-
-Import the given crush map. ::
-
- ceph osd setcrushmap -i file
-
-Set the ``max_osd`` parameter in the OSD map. This is necessary when
-expanding the storage cluster. ::
-
- ceph osd setmaxosd
-
-Mark OSD ``{osd-num}`` down. ::
-
- ceph osd down {osd-num}
-
-Mark OSD ``{osd-num}`` out of the distribution (i.e. allocated no data). ::
-
- ceph osd out {osd-num}
-
-Mark ``{osd-num}`` in the distribution (i.e. allocated data). ::
-
- ceph osd in {osd-num}
-
-Set or clear the pause flags in the OSD map. If set, no IO requests
-will be sent to any OSD. Clearing the flags via unpause results in
-resending pending requests. ::
-
- ceph osd pause
- ceph osd unpause
-
-Set the weight of ``{osd-num}`` to ``{weight}``. Two OSDs with the
-same weight will receive roughly the same number of I/O requests and
-store approximately the same amount of data. ``ceph osd reweight``
-sets an override weight on the OSD. This value is in the range 0 to 1,
-and forces CRUSH to re-place (1-weight) of the data that would
-otherwise live on this drive. It does not change the weights assigned
-to the buckets above the OSD in the crush map, and is a corrective
-measure in case the normal CRUSH distribution is not working out quite
-right. For instance, if one of your OSDs is at 90% and the others are
-at 50%, you could reduce this weight to try and compensate for it. ::
-
- ceph osd reweight {osd-num} {weight}
-
-Reweights all the OSDs by reducing the weight of OSDs which are
-heavily overused. By default it will adjust the weights downward on
-OSDs which have 120% of the average utilization, but if you include
-threshold it will use that percentage instead. ::
-
- ceph osd reweight-by-utilization [threshold]
-
-Describes what reweight-by-utilization would do. ::
-
- ceph osd test-reweight-by-utilization
-
-Adds/removes the address to/from the blacklist. When adding an address,
-you can specify how long it should be blacklisted in seconds; otherwise,
-it will default to 1 hour. A blacklisted address is prevented from
-connecting to any OSD. Blacklisting is most often used to prevent a
-lagging metadata server from making bad changes to data on the OSDs.
-
-These commands are mostly only useful for failure testing, as
-blacklists are normally maintained automatically and shouldn't need
-manual intervention. ::
-
- ceph osd blacklist add ADDRESS[:source_port] [TIME]
- ceph osd blacklist rm ADDRESS[:source_port]
-
-Creates/deletes a snapshot of a pool. ::
-
- ceph osd pool mksnap {pool-name} {snap-name}
- ceph osd pool rmsnap {pool-name} {snap-name}
-
-Creates/deletes/renames a storage pool. ::
-
- ceph osd pool create {pool-name} pg_num [pgp_num]
- ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
- ceph osd pool rename {old-name} {new-name}
-
-Changes a pool setting. ::
-
- ceph osd pool set {pool-name} {field} {value}
-
-Valid fields are:
-
- * ``size``: Sets the number of copies of data in the pool.
- * ``pg_num``: The placement group number.
- * ``pgp_num``: Effective number when calculating pg placement.
- * ``crush_ruleset``: rule number for mapping placement.
-
-Get the value of a pool setting. ::
-
- ceph osd pool get {pool-name} {field}
-
-Valid fields are:
-
- * ``pg_num``: The placement group number.
- * ``pgp_num``: Effective number of placement groups when calculating placement.
- * ``lpg_num``: The number of local placement groups.
- * ``lpgp_num``: The number used for placing the local placement groups.
-
-
-Sends a scrub command to OSD ``{osd-num}``. To send the command to all OSDs, use ``*``. ::
-
- ceph osd scrub {osd-num}
-
-Sends a repair command to OSD.N. To send the command to all OSDs, use ``*``. ::
-
- ceph osd repair N
-
-Runs a simple throughput benchmark against OSD.N, writing ``TOTAL_DATA_BYTES``
-in write requests of ``BYTES_PER_WRITE`` each. By default, the test
-writes 1 GB in total in 4-MB increments.
-The benchmark is non-destructive and will not overwrite existing live
-OSD data, but might temporarily affect the performance of clients
-concurrently accessing the OSD. ::
-
- ceph tell osd.N bench [TOTAL_DATA_BYTES] [BYTES_PER_WRITE]
-
-
-MDS Subsystem
-=============
-
-Change configuration parameters on a running mds. ::
-
- ceph tell mds.{mds-id} injectargs --{switch} {value} [--{switch} {value}]
-
-Example::
-
- ceph tell mds.0 injectargs --debug_ms 1 --debug_mds 10
-
-Enables debug messages. ::
-
- ceph mds stat
-
-Displays the status of all metadata servers. ::
-
- ceph mds fail 0
-
-Marks the active MDS as failed, triggering failover to a standby if present.
-
-.. todo:: ``ceph mds`` subcommands missing docs: set, dump, getmap, stop, setmap
-
-
-Mon Subsystem
-=============
-
-Show monitor stats::
-
- ceph mon stat
-
- e2: 3 mons at {a=127.0.0.1:40000/0,b=127.0.0.1:40001/0,c=127.0.0.1:40002/0}, election epoch 6, quorum 0,1,2 a,b,c
-
-
-The ``quorum`` list at the end lists monitor nodes that are part of the current quorum.
-
-This is also available more directly::
-
- ceph quorum_status -f json-pretty
-
-.. code-block:: javascript
-
- {
- "election_epoch": 6,
- "quorum": [
- 0,
- 1,
- 2
- ],
- "quorum_names": [
- "a",
- "b",
- "c"
- ],
- "quorum_leader_name": "a",
- "monmap": {
- "epoch": 2,
- "fsid": "ba807e74-b64f-4b72-b43f-597dfe60ddbc",
- "modified": "2016-12-26 14:42:09.288066",
- "created": "2016-12-26 14:42:03.573585",
- "features": {
- "persistent": [
- "kraken"
- ],
- "optional": []
- },
- "mons": [
- {
- "rank": 0,
- "name": "a",
- "addr": "127.0.0.1:40000\/0",
- "public_addr": "127.0.0.1:40000\/0"
- },
- {
- "rank": 1,
- "name": "b",
- "addr": "127.0.0.1:40001\/0",
- "public_addr": "127.0.0.1:40001\/0"
- },
- {
- "rank": 2,
- "name": "c",
- "addr": "127.0.0.1:40002\/0",
- "public_addr": "127.0.0.1:40002\/0"
- }
- ]
- }
- }
-
-
-The above will block until a quorum is reached.
-
-For a status of just the monitor you connect to (use ``-m HOST:PORT``
-to select)::
-
- ceph mon_status -f json-pretty
-
-
-.. code-block:: javascript
-
- {
- "name": "b",
- "rank": 1,
- "state": "peon",
- "election_epoch": 6,
- "quorum": [
- 0,
- 1,
- 2
- ],
- "features": {
- "required_con": "9025616074522624",
- "required_mon": [
- "kraken"
- ],
- "quorum_con": "1152921504336314367",
- "quorum_mon": [
- "kraken"
- ]
- },
- "outside_quorum": [],
- "extra_probe_peers": [],
- "sync_provider": [],
- "monmap": {
- "epoch": 2,
- "fsid": "ba807e74-b64f-4b72-b43f-597dfe60ddbc",
- "modified": "2016-12-26 14:42:09.288066",
- "created": "2016-12-26 14:42:03.573585",
- "features": {
- "persistent": [
- "kraken"
- ],
- "optional": []
- },
- "mons": [
- {
- "rank": 0,
- "name": "a",
- "addr": "127.0.0.1:40000\/0",
- "public_addr": "127.0.0.1:40000\/0"
- },
- {
- "rank": 1,
- "name": "b",
- "addr": "127.0.0.1:40001\/0",
- "public_addr": "127.0.0.1:40001\/0"
- },
- {
- "rank": 2,
- "name": "c",
- "addr": "127.0.0.1:40002\/0",
- "public_addr": "127.0.0.1:40002\/0"
- }
- ]
- }
- }
-
-A dump of the monitor state::
-
- ceph mon dump
-
- dumped monmap epoch 2
- epoch 2
- fsid ba807e74-b64f-4b72-b43f-597dfe60ddbc
- last_changed 2016-12-26 14:42:09.288066
- created 2016-12-26 14:42:03.573585
- 0: 127.0.0.1:40000/0 mon.a
- 1: 127.0.0.1:40001/0 mon.b
- 2: 127.0.0.1:40002/0 mon.c
-
diff --git a/src/ceph/doc/rados/operations/crush-map-edits.rst b/src/ceph/doc/rados/operations/crush-map-edits.rst
deleted file mode 100644
index 5222270..0000000
--- a/src/ceph/doc/rados/operations/crush-map-edits.rst
+++ /dev/null
@@ -1,654 +0,0 @@
-Manually editing a CRUSH Map
-============================
-
-.. note:: Manually editing the CRUSH map is considered an advanced
- administrator operation. All CRUSH changes that are
- necessary for the overwhelming majority of installations are
- possible via the standard ceph CLI and do not require manual
- CRUSH map edits. If you have identified a use case where
- manual edits *are* necessary, consider contacting the Ceph
- developers so that future versions of Ceph can make this
- unnecessary.
-
-To edit an existing CRUSH map:
-
-#. `Get the CRUSH map`_.
-#. `Decompile`_ the CRUSH map.
-#. Edit at least one of `Devices`_, `Buckets`_ and `Rules`_.
-#. `Recompile`_ the CRUSH map.
-#. `Set the CRUSH map`_.
-
-To activate CRUSH map rules for a specific pool, identify the common ruleset
-number for those rules and specify that ruleset number for the pool. See `Set
-Pool Values`_ for details.
-
-.. _Get the CRUSH map: #getcrushmap
-.. _Decompile: #decompilecrushmap
-.. _Devices: #crushmapdevices
-.. _Buckets: #crushmapbuckets
-.. _Rules: #crushmaprules
-.. _Recompile: #compilecrushmap
-.. _Set the CRUSH map: #setcrushmap
-.. _Set Pool Values: ../pools#setpoolvalues
-
-.. _getcrushmap:
-
-Get a CRUSH Map
----------------
-
-To get the CRUSH map for your cluster, execute the following::
-
- ceph osd getcrushmap -o {compiled-crushmap-filename}
-
-Ceph will output (-o) a compiled CRUSH map to the filename you specified. Since
-the CRUSH map is in a compiled form, you must decompile it first before you can
-edit it.
-
-.. _decompilecrushmap:
-
-Decompile a CRUSH Map
----------------------
-
-To decompile a CRUSH map, execute the following::
-
- crushtool -d {compiled-crushmap-filename} -o {decompiled-crushmap-filename}
-
-
-Sections
---------
-
-There are six main sections to a CRUSH Map.
-
-#. **tunables:** The preamble at the top of the map described any *tunables*
- for CRUSH behavior that vary from the historical/legacy CRUSH behavior. These
- correct for old bugs, optimizations, or other changes in behavior that have
- been made over the years to improve CRUSH's behavior.
-
-#. **devices:** Devices are individual ``ceph-osd`` daemons that can
- store data.
-
-#. **types**: Bucket ``types`` define the types of buckets used in
- your CRUSH hierarchy. Buckets consist of a hierarchical aggregation
- of storage locations (e.g., rows, racks, chassis, hosts, etc.) and
- their assigned weights.
-
-#. **buckets:** Once you define bucket types, you must define each node
- in the hierarchy, its type, and which devices or other nodes it
- containes.
-
-#. **rules:** Rules define policy about how data is distributed across
- devices in the hierarchy.
-
-#. **choose_args:** Choose_args are alternative weights associated with
- the hierarchy that have been adjusted to optimize data placement. A single
- choose_args map can be used for the entire cluster, or one can be
- created for each individual pool.
-
-
-.. _crushmapdevices:
-
-CRUSH Map Devices
------------------
-
-Devices are individual ``ceph-osd`` daemons that can store data. You
-will normally have one defined here for each OSD daemon in your
-cluster. Devices are identified by an id (a non-negative integer) and
-a name, normally ``osd.N`` where ``N`` is the device id.
-
-Devices may also have a *device class* associated with them (e.g.,
-``hdd`` or ``ssd``), allowing them to be conveniently targetted by a
-crush rule.
-
-::
-
- # devices
- device {num} {osd.name} [class {class}]
-
-For example::
-
- # devices
- device 0 osd.0 class ssd
- device 1 osd.1 class hdd
- device 2 osd.2
- device 3 osd.3
-
-In most cases, each device maps to a single ``ceph-osd`` daemon. This
-is normally a single storage device, a pair of devices (for example,
-one for data and one for a journal or metadata), or in some cases a
-small RAID device.
-
-
-
-
-
-CRUSH Map Bucket Types
-----------------------
-
-The second list in the CRUSH map defines 'bucket' types. Buckets facilitate
-a hierarchy of nodes and leaves. Node (or non-leaf) buckets typically represent
-physical locations in a hierarchy. Nodes aggregate other nodes or leaves.
-Leaf buckets represent ``ceph-osd`` daemons and their corresponding storage
-media.
-
-.. tip:: The term "bucket" used in the context of CRUSH means a node in
- the hierarchy, i.e. a location or a piece of physical hardware. It
- is a different concept from the term "bucket" when used in the
- context of RADOS Gateway APIs.
-
-To add a bucket type to the CRUSH map, create a new line under your list of
-bucket types. Enter ``type`` followed by a unique numeric ID and a bucket name.
-By convention, there is one leaf bucket and it is ``type 0``; however, you may
-give it any name you like (e.g., osd, disk, drive, storage, etc.)::
-
- #types
- type {num} {bucket-name}
-
-For example::
-
- # types
- type 0 osd
- type 1 host
- type 2 chassis
- type 3 rack
- type 4 row
- type 5 pdu
- type 6 pod
- type 7 room
- type 8 datacenter
- type 9 region
- type 10 root
-
-
-
-.. _crushmapbuckets:
-
-CRUSH Map Bucket Hierarchy
---------------------------
-
-The CRUSH algorithm distributes data objects among storage devices according
-to a per-device weight value, approximating a uniform probability distribution.
-CRUSH distributes objects and their replicas according to the hierarchical
-cluster map you define. Your CRUSH map represents the available storage
-devices and the logical elements that contain them.
-
-To map placement groups to OSDs across failure domains, a CRUSH map defines a
-hierarchical list of bucket types (i.e., under ``#types`` in the generated CRUSH
-map). The purpose of creating a bucket hierarchy is to segregate the
-leaf nodes by their failure domains, such as hosts, chassis, racks, power
-distribution units, pods, rows, rooms, and data centers. With the exception of
-the leaf nodes representing OSDs, the rest of the hierarchy is arbitrary, and
-you may define it according to your own needs.
-
-We recommend adapting your CRUSH map to your firms's hardware naming conventions
-and using instances names that reflect the physical hardware. Your naming
-practice can make it easier to administer the cluster and troubleshoot
-problems when an OSD and/or other hardware malfunctions and the administrator
-need access to physical hardware.
-
-In the following example, the bucket hierarchy has a leaf bucket named ``osd``,
-and two node buckets named ``host`` and ``rack`` respectively.
-
-.. ditaa::
- +-----------+
- | {o}rack |
- | Bucket |
- +-----+-----+
- |
- +---------------+---------------+
- | |
- +-----+-----+ +-----+-----+
- | {o}host | | {o}host |
- | Bucket | | Bucket |
- +-----+-----+ +-----+-----+
- | |
- +-------+-------+ +-------+-------+
- | | | |
- +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
- | osd | | osd | | osd | | osd |
- | Bucket | | Bucket | | Bucket | | Bucket |
- +-----------+ +-----------+ +-----------+ +-----------+
-
-.. note:: The higher numbered ``rack`` bucket type aggregates the lower
- numbered ``host`` bucket type.
-
-Since leaf nodes reflect storage devices declared under the ``#devices`` list
-at the beginning of the CRUSH map, you do not need to declare them as bucket
-instances. The second lowest bucket type in your hierarchy usually aggregates
-the devices (i.e., it's usually the computer containing the storage media, and
-uses whatever term you prefer to describe it, such as "node", "computer",
-"server," "host", "machine", etc.). In high density environments, it is
-increasingly common to see multiple hosts/nodes per chassis. You should account
-for chassis failure too--e.g., the need to pull a chassis if a node fails may
-result in bringing down numerous hosts/nodes and their OSDs.
-
-When declaring a bucket instance, you must specify its type, give it a unique
-name (string), assign it a unique ID expressed as a negative integer (optional),
-specify a weight relative to the total capacity/capability of its item(s),
-specify the bucket algorithm (usually ``straw``), and the hash (usually ``0``,
-reflecting hash algorithm ``rjenkins1``). A bucket may have one or more items.
-The items may consist of node buckets or leaves. Items may have a weight that
-reflects the relative weight of the item.
-
-You may declare a node bucket with the following syntax::
-
- [bucket-type] [bucket-name] {
- id [a unique negative numeric ID]
- weight [the relative capacity/capability of the item(s)]
- alg [the bucket type: uniform | list | tree | straw ]
- hash [the hash type: 0 by default]
- item [item-name] weight [weight]
- }
-
-For example, using the diagram above, we would define two host buckets
-and one rack bucket. The OSDs are declared as items within the host buckets::
-
- host node1 {
- id -1
- alg straw
- hash 0
- item osd.0 weight 1.00
- item osd.1 weight 1.00
- }
-
- host node2 {
- id -2
- alg straw
- hash 0
- item osd.2 weight 1.00
- item osd.3 weight 1.00
- }
-
- rack rack1 {
- id -3
- alg straw
- hash 0
- item node1 weight 2.00
- item node2 weight 2.00
- }
-
-.. note:: In the foregoing example, note that the rack bucket does not contain
- any OSDs. Rather it contains lower level host buckets, and includes the
- sum total of their weight in the item entry.
-
-.. topic:: Bucket Types
-
- Ceph supports four bucket types, each representing a tradeoff between
- performance and reorganization efficiency. If you are unsure of which bucket
- type to use, we recommend using a ``straw`` bucket. For a detailed
- discussion of bucket types, refer to
- `CRUSH - Controlled, Scalable, Decentralized Placement of Replicated Data`_,
- and more specifically to **Section 3.4**. The bucket types are:
-
- #. **Uniform:** Uniform buckets aggregate devices with **exactly** the same
- weight. For example, when firms commission or decommission hardware, they
- typically do so with many machines that have exactly the same physical
- configuration (e.g., bulk purchases). When storage devices have exactly
- the same weight, you may use the ``uniform`` bucket type, which allows
- CRUSH to map replicas into uniform buckets in constant time. With
- non-uniform weights, you should use another bucket algorithm.
-
- #. **List**: List buckets aggregate their content as linked lists. Based on
- the :abbr:`RUSH (Replication Under Scalable Hashing)` :sub:`P` algorithm,
- a list is a natural and intuitive choice for an **expanding cluster**:
- either an object is relocated to the newest device with some appropriate
- probability, or it remains on the older devices as before. The result is
- optimal data migration when items are added to the bucket. Items removed
- from the middle or tail of the list, however, can result in a signiï¬cant
- amount of unnecessary movement, making list buckets most suitable for
- circumstances in which they **never (or very rarely) shrink**.
-
- #. **Tree**: Tree buckets use a binary search tree. They are more efficient
- than list buckets when a bucket contains a larger set of items. Based on
- the :abbr:`RUSH (Replication Under Scalable Hashing)` :sub:`R` algorithm,
- tree buckets reduce the placement time to O(log :sub:`n`), making them
- suitable for managing much larger sets of devices or nested buckets.
-
- #. **Straw:** List and Tree buckets use a divide and conquer strategy
- in a way that either gives certain items precedence (e.g., those
- at the beginning of a list) or obviates the need to consider entire
- subtrees of items at all. That improves the performance of the replica
- placement process, but can also introduce suboptimal reorganization
- behavior when the contents of a bucket change due an addition, removal,
- or re-weighting of an item. The straw bucket type allows all items to
- fairly “compete†against each other for replica placement through a
- process analogous to a draw of straws.
-
-.. topic:: Hash
-
- Each bucket uses a hash algorithm. Currently, Ceph supports ``rjenkins1``.
- Enter ``0`` as your hash setting to select ``rjenkins1``.
-
-
-.. _weightingbucketitems:
-
-.. topic:: Weighting Bucket Items
-
- Ceph expresses bucket weights as doubles, which allows for fine
- weighting. A weight is the relative difference between device capacities. We
- recommend using ``1.00`` as the relative weight for a 1TB storage device.
- In such a scenario, a weight of ``0.5`` would represent approximately 500GB,
- and a weight of ``3.00`` would represent approximately 3TB. Higher level
- buckets have a weight that is the sum total of the leaf items aggregated by
- the bucket.
-
- A bucket item weight is one dimensional, but you may also calculate your
- item weights to reflect the performance of the storage drive. For example,
- if you have many 1TB drives where some have relatively low data transfer
- rate and the others have a relatively high data transfer rate, you may
- weight them differently, even though they have the same capacity (e.g.,
- a weight of 0.80 for the first set of drives with lower total throughput,
- and 1.20 for the second set of drives with higher total throughput).
-
-
-.. _crushmaprules:
-
-CRUSH Map Rules
----------------
-
-CRUSH maps support the notion of 'CRUSH rules', which are the rules that
-determine data placement for a pool. For large clusters, you will likely create
-many pools where each pool may have its own CRUSH ruleset and rules. The default
-CRUSH map has a rule for each pool, and one ruleset assigned to each of the
-default pools.
-
-.. note:: In most cases, you will not need to modify the default rules. When
- you create a new pool, its default ruleset is ``0``.
-
-
-CRUSH rules define placement and replication strategies or distribution policies
-that allow you to specify exactly how CRUSH places object replicas. For
-example, you might create a rule selecting a pair of targets for 2-way
-mirroring, another rule for selecting three targets in two different data
-centers for 3-way mirroring, and yet another rule for erasure coding over six
-storage devices. For a detailed discussion of CRUSH rules, refer to
-`CRUSH - Controlled, Scalable, Decentralized Placement of Replicated Data`_,
-and more specifically to **Section 3.2**.
-
-A rule takes the following form::
-
- rule <rulename> {
-
- ruleset <ruleset>
- type [ replicated | erasure ]
- min_size <min-size>
- max_size <max-size>
- step take <bucket-name> [class <device-class>]
- step [choose|chooseleaf] [firstn|indep] <N> <bucket-type>
- step emit
- }
-
-
-``ruleset``
-
-:Description: A means of classifying a rule as belonging to a set of rules.
- Activated by `setting the ruleset in a pool`_.
-
-:Purpose: A component of the rule mask.
-:Type: Integer
-:Required: Yes
-:Default: 0
-
-.. _setting the ruleset in a pool: ../pools#setpoolvalues
-
-
-``type``
-
-:Description: Describes a rule for either a storage drive (replicated)
- or a RAID.
-
-:Purpose: A component of the rule mask.
-:Type: String
-:Required: Yes
-:Default: ``replicated``
-:Valid Values: Currently only ``replicated`` and ``erasure``
-
-``min_size``
-
-:Description: If a pool makes fewer replicas than this number, CRUSH will
- **NOT** select this rule.
-
-:Type: Integer
-:Purpose: A component of the rule mask.
-:Required: Yes
-:Default: ``1``
-
-``max_size``
-
-:Description: If a pool makes more replicas than this number, CRUSH will
- **NOT** select this rule.
-
-:Type: Integer
-:Purpose: A component of the rule mask.
-:Required: Yes
-:Default: 10
-
-
-``step take <bucket-name> [class <device-class>]``
-
-:Description: Takes a bucket name, and begins iterating down the tree.
- If the ``device-class`` is specified, it must match
- a class previously used when defining a device. All
- devices that do not belong to the class are excluded.
-:Purpose: A component of the rule.
-:Required: Yes
-:Example: ``step take data``
-
-
-``step choose firstn {num} type {bucket-type}``
-
-:Description: Selects the number of buckets of the given type. The number is
- usually the number of replicas in the pool (i.e., pool size).
-
- - If ``{num} == 0``, choose ``pool-num-replicas`` buckets (all available).
- - If ``{num} > 0 && < pool-num-replicas``, choose that many buckets.
- - If ``{num} < 0``, it means ``pool-num-replicas - {num}``.
-
-:Purpose: A component of the rule.
-:Prerequisite: Follows ``step take`` or ``step choose``.
-:Example: ``step choose firstn 1 type row``
-
-
-``step chooseleaf firstn {num} type {bucket-type}``
-
-:Description: Selects a set of buckets of ``{bucket-type}`` and chooses a leaf
- node from the subtree of each bucket in the set of buckets. The
- number of buckets in the set is usually the number of replicas in
- the pool (i.e., pool size).
-
- - If ``{num} == 0``, choose ``pool-num-replicas`` buckets (all available).
- - If ``{num} > 0 && < pool-num-replicas``, choose that many buckets.
- - If ``{num} < 0``, it means ``pool-num-replicas - {num}``.
-
-:Purpose: A component of the rule. Usage removes the need to select a device using two steps.
-:Prerequisite: Follows ``step take`` or ``step choose``.
-:Example: ``step chooseleaf firstn 0 type row``
-
-
-
-``step emit``
-
-:Description: Outputs the current value and empties the stack. Typically used
- at the end of a rule, but may also be used to pick from different
- trees in the same rule.
-
-:Purpose: A component of the rule.
-:Prerequisite: Follows ``step choose``.
-:Example: ``step emit``
-
-.. important:: To activate one or more rules with a common ruleset number to a
- pool, set the ruleset number of the pool.
-
-
-Placing Different Pools on Different OSDS:
-==========================================
-
-Suppose you want to have most pools default to OSDs backed by large hard drives,
-but have some pools mapped to OSDs backed by fast solid-state drives (SSDs).
-It's possible to have multiple independent CRUSH hierarchies within the same
-CRUSH map. Define two hierarchies with two different root nodes--one for hard
-disks (e.g., "root platter") and one for SSDs (e.g., "root ssd") as shown
-below::
-
- device 0 osd.0
- device 1 osd.1
- device 2 osd.2
- device 3 osd.3
- device 4 osd.4
- device 5 osd.5
- device 6 osd.6
- device 7 osd.7
-
- host ceph-osd-ssd-server-1 {
- id -1
- alg straw
- hash 0
- item osd.0 weight 1.00
- item osd.1 weight 1.00
- }
-
- host ceph-osd-ssd-server-2 {
- id -2
- alg straw
- hash 0
- item osd.2 weight 1.00
- item osd.3 weight 1.00
- }
-
- host ceph-osd-platter-server-1 {
- id -3
- alg straw
- hash 0
- item osd.4 weight 1.00
- item osd.5 weight 1.00
- }
-
- host ceph-osd-platter-server-2 {
- id -4
- alg straw
- hash 0
- item osd.6 weight 1.00
- item osd.7 weight 1.00
- }
-
- root platter {
- id -5
- alg straw
- hash 0
- item ceph-osd-platter-server-1 weight 2.00
- item ceph-osd-platter-server-2 weight 2.00
- }
-
- root ssd {
- id -6
- alg straw
- hash 0
- item ceph-osd-ssd-server-1 weight 2.00
- item ceph-osd-ssd-server-2 weight 2.00
- }
-
- rule data {
- ruleset 0
- type replicated
- min_size 2
- max_size 2
- step take platter
- step chooseleaf firstn 0 type host
- step emit
- }
-
- rule metadata {
- ruleset 1
- type replicated
- min_size 0
- max_size 10
- step take platter
- step chooseleaf firstn 0 type host
- step emit
- }
-
- rule rbd {
- ruleset 2
- type replicated
- min_size 0
- max_size 10
- step take platter
- step chooseleaf firstn 0 type host
- step emit
- }
-
- rule platter {
- ruleset 3
- type replicated
- min_size 0
- max_size 10
- step take platter
- step chooseleaf firstn 0 type host
- step emit
- }
-
- rule ssd {
- ruleset 4
- type replicated
- min_size 0
- max_size 4
- step take ssd
- step chooseleaf firstn 0 type host
- step emit
- }
-
- rule ssd-primary {
- ruleset 5
- type replicated
- min_size 5
- max_size 10
- step take ssd
- step chooseleaf firstn 1 type host
- step emit
- step take platter
- step chooseleaf firstn -1 type host
- step emit
- }
-
-You can then set a pool to use the SSD rule by::
-
- ceph osd pool set <poolname> crush_ruleset 4
-
-Similarly, using the ``ssd-primary`` rule will cause each placement group in the
-pool to be placed with an SSD as the primary and platters as the replicas.
-
-
-Tuning CRUSH, the hard way
---------------------------
-
-If you can ensure that all clients are running recent code, you can
-adjust the tunables by extracting the CRUSH map, modifying the values,
-and reinjecting it into the cluster.
-
-* Extract the latest CRUSH map::
-
- ceph osd getcrushmap -o /tmp/crush
-
-* Adjust tunables. These values appear to offer the best behavior
- for both large and small clusters we tested with. You will need to
- additionally specify the ``--enable-unsafe-tunables`` argument to
- ``crushtool`` for this to work. Please use this option with
- extreme care.::
-
- crushtool -i /tmp/crush --set-choose-local-tries 0 --set-choose-local-fallback-tries 0 --set-choose-total-tries 50 -o /tmp/crush.new
-
-* Reinject modified map::
-
- ceph osd setcrushmap -i /tmp/crush.new
-
-Legacy values
--------------
-
-For reference, the legacy values for the CRUSH tunables can be set
-with::
-
- crushtool -i /tmp/crush --set-choose-local-tries 2 --set-choose-local-fallback-tries 5 --set-choose-total-tries 19 --set-chooseleaf-descend-once 0 --set-chooseleaf-vary-r 0 -o /tmp/crush.legacy
-
-Again, the special ``--enable-unsafe-tunables`` option is required.
-Further, as noted above, be careful running old versions of the
-``ceph-osd`` daemon after reverting to legacy values as the feature
-bit is not perfectly enforced.
diff --git a/src/ceph/doc/rados/operations/crush-map.rst b/src/ceph/doc/rados/operations/crush-map.rst
deleted file mode 100644
index 05fa4ff..0000000
--- a/src/ceph/doc/rados/operations/crush-map.rst
+++ /dev/null
@@ -1,956 +0,0 @@
-============
- CRUSH Maps
-============
-
-The :abbr:`CRUSH (Controlled Replication Under Scalable Hashing)` algorithm
-determines how to store and retrieve data by computing data storage locations.
-CRUSH empowers Ceph clients to communicate with OSDs directly rather than
-through a centralized server or broker. With an algorithmically determined
-method of storing and retrieving data, Ceph avoids a single point of failure, a
-performance bottleneck, and a physical limit to its scalability.
-
-CRUSH requires a map of your cluster, and uses the CRUSH map to pseudo-randomly
-store and retrieve data in OSDs with a uniform distribution of data across the
-cluster. For a detailed discussion of CRUSH, see
-`CRUSH - Controlled, Scalable, Decentralized Placement of Replicated Data`_
-
-CRUSH maps contain a list of :abbr:`OSDs (Object Storage Devices)`, a list of
-'buckets' for aggregating the devices into physical locations, and a list of
-rules that tell CRUSH how it should replicate data in a Ceph cluster's pools. By
-reflecting the underlying physical organization of the installation, CRUSH can
-model—and thereby address—potential sources of correlated device failures.
-Typical sources include physical proximity, a shared power source, and a shared
-network. By encoding this information into the cluster map, CRUSH placement
-policies can separate object replicas across different failure domains while
-still maintaining the desired distribution. For example, to address the
-possibility of concurrent failures, it may be desirable to ensure that data
-replicas are on devices using different shelves, racks, power supplies,
-controllers, and/or physical locations.
-
-When you deploy OSDs they are automatically placed within the CRUSH map under a
-``host`` node named with the hostname for the host they are running on. This,
-combined with the default CRUSH failure domain, ensures that replicas or erasure
-code shards are separated across hosts and a single host failure will not
-affect availability. For larger clusters, however, administrators should carefully consider their choice of failure domain. Separating replicas across racks,
-for example, is common for mid- to large-sized clusters.
-
-
-CRUSH Location
-==============
-
-The location of an OSD in terms of the CRUSH map's hierarchy is
-referred to as a ``crush location``. This location specifier takes the
-form of a list of key and value pairs describing a position. For
-example, if an OSD is in a particular row, rack, chassis and host, and
-is part of the 'default' CRUSH tree (this is the case for the vast
-majority of clusters), its crush location could be described as::
-
- root=default row=a rack=a2 chassis=a2a host=a2a1
-
-Note:
-
-#. Note that the order of the keys does not matter.
-#. The key name (left of ``=``) must be a valid CRUSH ``type``. By default
- these include root, datacenter, room, row, pod, pdu, rack, chassis and host,
- but those types can be customized to be anything appropriate by modifying
- the CRUSH map.
-#. Not all keys need to be specified. For example, by default, Ceph
- automatically sets a ``ceph-osd`` daemon's location to be
- ``root=default host=HOSTNAME`` (based on the output from ``hostname -s``).
-
-The crush location for an OSD is normally expressed via the ``crush location``
-config option being set in the ``ceph.conf`` file. Each time the OSD starts,
-it verifies it is in the correct location in the CRUSH map and, if it is not,
-it moved itself. To disable this automatic CRUSH map management, add the
-following to your configuration file in the ``[osd]`` section::
-
- osd crush update on start = false
-
-
-Custom location hooks
----------------------
-
-A customized location hook can be used to generate a more complete
-crush location on startup. The sample ``ceph-crush-location`` utility
-will generate a CRUSH location string for a given daemon. The
-location is based on, in order of preference:
-
-#. A ``crush location`` option in ceph.conf.
-#. A default of ``root=default host=HOSTNAME`` where the hostname is
- generated with the ``hostname -s`` command.
-
-This is not useful by itself, as the OSD itself has the exact same
-behavior. However, the script can be modified to provide additional
-location fields (for example, the rack or datacenter), and then the
-hook enabled via the config option::
-
- crush location hook = /path/to/customized-ceph-crush-location
-
-This hook is passed several arguments (below) and should output a single line
-to stdout with the CRUSH location description.::
-
- $ ceph-crush-location --cluster CLUSTER --id ID --type TYPE
-
-where the cluster name is typically 'ceph', the id is the daemon
-identifier (the OSD number), and the daemon type is typically ``osd``.
-
-
-CRUSH structure
-===============
-
-The CRUSH map consists of, loosely speaking, a hierarchy describing
-the physical topology of the cluster, and a set of rules defining
-policy about how we place data on those devices. The hierarchy has
-devices (``ceph-osd`` daemons) at the leaves, and internal nodes
-corresponding to other physical features or groupings: hosts, racks,
-rows, datacenters, and so on. The rules describe how replicas are
-placed in terms of that hierarchy (e.g., 'three replicas in different
-racks').
-
-Devices
--------
-
-Devices are individual ``ceph-osd`` daemons that can store data. You
-will normally have one defined here for each OSD daemon in your
-cluster. Devices are identified by an id (a non-negative integer) and
-a name, normally ``osd.N`` where ``N`` is the device id.
-
-Devices may also have a *device class* associated with them (e.g.,
-``hdd`` or ``ssd``), allowing them to be conveniently targetted by a
-crush rule.
-
-Types and Buckets
------------------
-
-A bucket is the CRUSH term for internal nodes in the hierarchy: hosts,
-racks, rows, etc. The CRUSH map defines a series of *types* that are
-used to describe these nodes. By default, these types include:
-
-- osd (or device)
-- host
-- chassis
-- rack
-- row
-- pdu
-- pod
-- room
-- datacenter
-- region
-- root
-
-Most clusters make use of only a handful of these types, and others
-can be defined as needed.
-
-The hierarchy is built with devices (normally type ``osd``) at the
-leaves, interior nodes with non-device types, and a root node of type
-``root``. For example,
-
-.. ditaa::
-
- +-----------------+
- | {o}root default |
- +--------+--------+
- |
- +---------------+---------------+
- | |
- +-------+-------+ +-----+-------+
- | {o}host foo | | {o}host bar |
- +-------+-------+ +-----+-------+
- | |
- +-------+-------+ +-------+-------+
- | | | |
- +-----+-----+ +-----+-----+ +-----+-----+ +-----+-----+
- | osd.0 | | osd.1 | | osd.2 | | osd.3 |
- +-----------+ +-----------+ +-----------+ +-----------+
-
-Each node (device or bucket) in the hierarchy has a *weight*
-associated with it, indicating the relative proportion of the total
-data that device or hierarchy subtree should store. Weights are set
-at the leaves, indicating the size of the device, and automatically
-sum up the tree from there, such that the weight of the default node
-will be the total of all devices contained beneath it. Normally
-weights are in units of terabytes (TB).
-
-You can get a simple view the CRUSH hierarchy for your cluster,
-including the weights, with::
-
- ceph osd crush tree
-
-Rules
------
-
-Rules define policy about how data is distributed across the devices
-in the hierarchy.
-
-CRUSH rules define placement and replication strategies or
-distribution policies that allow you to specify exactly how CRUSH
-places object replicas. For example, you might create a rule selecting
-a pair of targets for 2-way mirroring, another rule for selecting
-three targets in two different data centers for 3-way mirroring, and
-yet another rule for erasure coding over six storage devices. For a
-detailed discussion of CRUSH rules, refer to `CRUSH - Controlled,
-Scalable, Decentralized Placement of Replicated Data`_, and more
-specifically to **Section 3.2**.
-
-In almost all cases, CRUSH rules can be created via the CLI by
-specifying the *pool type* they will be used for (replicated or
-erasure coded), the *failure domain*, and optionally a *device class*.
-In rare cases rules must be written by hand by manually editing the
-CRUSH map.
-
-You can see what rules are defined for your cluster with::
-
- ceph osd crush rule ls
-
-You can view the contents of the rules with::
-
- ceph osd crush rule dump
-
-Device classes
---------------
-
-Each device can optionally have a *class* associated with it. By
-default, OSDs automatically set their class on startup to either
-`hdd`, `ssd`, or `nvme` based on the type of device they are backed
-by.
-
-The device class for one or more OSDs can be explicitly set with::
-
- ceph osd crush set-device-class <class> <osd-name> [...]
-
-Once a device class is set, it cannot be changed to another class
-until the old class is unset with::
-
- ceph osd crush rm-device-class <osd-name> [...]
-
-This allows administrators to set device classes without the class
-being changed on OSD restart or by some other script.
-
-A placement rule that targets a specific device class can be created with::
-
- ceph osd crush rule create-replicated <rule-name> <root> <failure-domain> <class>
-
-A pool can then be changed to use the new rule with::
-
- ceph osd pool set <pool-name> crush_rule <rule-name>
-
-Device classes are implemented by creating a "shadow" CRUSH hierarchy
-for each device class in use that contains only devices of that class.
-Rules can then distribute data over the shadow hierarchy. One nice
-thing about this approach is that it is fully backward compatible with
-old Ceph clients. You can view the CRUSH hierarchy with shadow items
-with::
-
- ceph osd crush tree --show-shadow
-
-
-Weights sets
-------------
-
-A *weight set* is an alternative set of weights to use when
-calculating data placement. The normal weights associated with each
-device in the CRUSH map are set based on the device size and indicate
-how much data we *should* be storing where. However, because CRUSH is
-based on a pseudorandom placement process, there is always some
-variation from this ideal distribution, the same way that rolling a
-dice sixty times will not result in rolling exactly 10 ones and 10
-sixes. Weight sets allow the cluster to do a numerical optimization
-based on the specifics of your cluster (hierarchy, pools, etc.) to achieve
-a balanced distribution.
-
-There are two types of weight sets supported:
-
- #. A **compat** weight set is a single alternative set of weights for
- each device and node in the cluster. This is not well-suited for
- correcting for all anomalies (for example, placement groups for
- different pools may be different sizes and have different load
- levels, but will be mostly treated the same by the balancer).
- However, compat weight sets have the huge advantage that they are
- *backward compatible* with previous versions of Ceph, which means
- that even though weight sets were first introduced in Luminous
- v12.2.z, older clients (e.g., firefly) can still connect to the
- cluster when a compat weight set is being used to balance data.
- #. A **per-pool** weight set is more flexible in that it allows
- placement to be optimized for each data pool. Additionally,
- weights can be adjusted for each position of placement, allowing
- the optimizer to correct for a suble skew of data toward devices
- with small weights relative to their peers (and effect that is
- usually only apparently in very large clusters but which can cause
- balancing problems).
-
-When weight sets are in use, the weights associated with each node in
-the hierarchy is visible as a separate column (labeled either
-``(compat)`` or the pool name) from the command::
-
- ceph osd crush tree
-
-When both *compat* and *per-pool* weight sets are in use, data
-placement for a particular pool will use its own per-pool weight set
-if present. If not, it will use the compat weight set if present. If
-neither are present, it will use the normal CRUSH weights.
-
-Although weight sets can be set up and manipulated by hand, it is
-recommended that the *balancer* module be enabled to do so
-automatically.
-
-
-Modifying the CRUSH map
-=======================
-
-.. _addosd:
-
-Add/Move an OSD
----------------
-
-.. note: OSDs are normally automatically added to the CRUSH map when
- the OSD is created. This command is rarely needed.
-
-To add or move an OSD in the CRUSH map of a running cluster::
-
- ceph osd crush set {name} {weight} root={root} [{bucket-type}={bucket-name} ...]
-
-Where:
-
-``name``
-
-:Description: The full name of the OSD.
-:Type: String
-:Required: Yes
-:Example: ``osd.0``
-
-
-``weight``
-
-:Description: The CRUSH weight for the OSD, normally its size measure in terabytes (TB).
-:Type: Double
-:Required: Yes
-:Example: ``2.0``
-
-
-``root``
-
-:Description: The root node of the tree in which the OSD resides (normally ``default``)
-:Type: Key/value pair.
-:Required: Yes
-:Example: ``root=default``
-
-
-``bucket-type``
-
-:Description: You may specify the OSD's location in the CRUSH hierarchy.
-:Type: Key/value pairs.
-:Required: No
-:Example: ``datacenter=dc1 room=room1 row=foo rack=bar host=foo-bar-1``
-
-
-The following example adds ``osd.0`` to the hierarchy, or moves the
-OSD from a previous location. ::
-
- ceph osd crush set osd.0 1.0 root=default datacenter=dc1 room=room1 row=foo rack=bar host=foo-bar-1
-
-
-Adjust OSD weight
------------------
-
-.. note: Normally OSDs automatically add themselves to the CRUSH map
- with the correct weight when they are created. This command
- is rarely needed.
-
-To adjust an OSD's crush weight in the CRUSH map of a running cluster, execute
-the following::
-
- ceph osd crush reweight {name} {weight}
-
-Where:
-
-``name``
-
-:Description: The full name of the OSD.
-:Type: String
-:Required: Yes
-:Example: ``osd.0``
-
-
-``weight``
-
-:Description: The CRUSH weight for the OSD.
-:Type: Double
-:Required: Yes
-:Example: ``2.0``
-
-
-.. _removeosd:
-
-Remove an OSD
--------------
-
-.. note: OSDs are normally removed from the CRUSH as part of the
- ``ceph osd purge`` command. This command is rarely needed.
-
-To remove an OSD from the CRUSH map of a running cluster, execute the
-following::
-
- ceph osd crush remove {name}
-
-Where:
-
-``name``
-
-:Description: The full name of the OSD.
-:Type: String
-:Required: Yes
-:Example: ``osd.0``
-
-
-Add a Bucket
-------------
-
-.. note: Buckets are normally implicitly created when an OSD is added
- that specifies a ``{bucket-type}={bucket-name}`` as part of its
- location and a bucket with that name does not already exist. This
- command is typically used when manually adjusting the structure of the
- hierarchy after OSDs have been created (for example, to move a
- series of hosts underneath a new rack-level bucket).
-
-To add a bucket in the CRUSH map of a running cluster, execute the
-``ceph osd crush add-bucket`` command::
-
- ceph osd crush add-bucket {bucket-name} {bucket-type}
-
-Where:
-
-``bucket-name``
-
-:Description: The full name of the bucket.
-:Type: String
-:Required: Yes
-:Example: ``rack12``
-
-
-``bucket-type``
-
-:Description: The type of the bucket. The type must already exist in the hierarchy.
-:Type: String
-:Required: Yes
-:Example: ``rack``
-
-
-The following example adds the ``rack12`` bucket to the hierarchy::
-
- ceph osd crush add-bucket rack12 rack
-
-Move a Bucket
--------------
-
-To move a bucket to a different location or position in the CRUSH map
-hierarchy, execute the following::
-
- ceph osd crush move {bucket-name} {bucket-type}={bucket-name}, [...]
-
-Where:
-
-``bucket-name``
-
-:Description: The name of the bucket to move/reposition.
-:Type: String
-:Required: Yes
-:Example: ``foo-bar-1``
-
-``bucket-type``
-
-:Description: You may specify the bucket's location in the CRUSH hierarchy.
-:Type: Key/value pairs.
-:Required: No
-:Example: ``datacenter=dc1 room=room1 row=foo rack=bar host=foo-bar-1``
-
-Remove a Bucket
----------------
-
-To remove a bucket from the CRUSH map hierarchy, execute the following::
-
- ceph osd crush remove {bucket-name}
-
-.. note:: A bucket must be empty before removing it from the CRUSH hierarchy.
-
-Where:
-
-``bucket-name``
-
-:Description: The name of the bucket that you'd like to remove.
-:Type: String
-:Required: Yes
-:Example: ``rack12``
-
-The following example removes the ``rack12`` bucket from the hierarchy::
-
- ceph osd crush remove rack12
-
-Creating a compat weight set
-----------------------------
-
-.. note: This step is normally done automatically by the ``balancer``
- module when enabled.
-
-To create a *compat* weight set::
-
- ceph osd crush weight-set create-compat
-
-Weights for the compat weight set can be adjusted with::
-
- ceph osd crush weight-set reweight-compat {name} {weight}
-
-The compat weight set can be destroyed with::
-
- ceph osd crush weight-set rm-compat
-
-Creating per-pool weight sets
------------------------------
-
-To create a weight set for a specific pool,::
-
- ceph osd crush weight-set create {pool-name} {mode}
-
-.. note:: Per-pool weight sets require that all servers and daemons
- run Luminous v12.2.z or later.
-
-Where:
-
-``pool-name``
-
-:Description: The name of a RADOS pool
-:Type: String
-:Required: Yes
-:Example: ``rbd``
-
-``mode``
-
-:Description: Either ``flat`` or ``positional``. A *flat* weight set
- has a single weight for each device or bucket. A
- *positional* weight set has a potentially different
- weight for each position in the resulting placement
- mapping. For example, if a pool has a replica count of
- 3, then a positional weight set will have three weights
- for each device and bucket.
-:Type: String
-:Required: Yes
-:Example: ``flat``
-
-To adjust the weight of an item in a weight set::
-
- ceph osd crush weight-set reweight {pool-name} {item-name} {weight [...]}
-
-To list existing weight sets,::
-
- ceph osd crush weight-set ls
-
-To remove a weight set,::
-
- ceph osd crush weight-set rm {pool-name}
-
-Creating a rule for a replicated pool
--------------------------------------
-
-For a replicated pool, the primary decision when creating the CRUSH
-rule is what the failure domain is going to be. For example, if a
-failure domain of ``host`` is selected, then CRUSH will ensure that
-each replica of the data is stored on a different host. If ``rack``
-is selected, then each replica will be stored in a different rack.
-What failure domain you choose primarily depends on the size of your
-cluster and how your hierarchy is structured.
-
-Normally, the entire cluster hierarchy is nested beneath a root node
-named ``default``. If you have customized your hierarchy, you may
-want to create a rule nested at some other node in the hierarchy. It
-doesn't matter what type is associated with that node (it doesn't have
-to be a ``root`` node).
-
-It is also possible to create a rule that restricts data placement to
-a specific *class* of device. By default, Ceph OSDs automatically
-classify themselves as either ``hdd`` or ``ssd``, depending on the
-underlying type of device being used. These classes can also be
-customized.
-
-To create a replicated rule,::
-
- ceph osd crush rule create-replicated {name} {root} {failure-domain-type} [{class}]
-
-Where:
-
-``name``
-
-:Description: The name of the rule
-:Type: String
-:Required: Yes
-:Example: ``rbd-rule``
-
-``root``
-
-:Description: The name of the node under which data should be placed.
-:Type: String
-:Required: Yes
-:Example: ``default``
-
-``failure-domain-type``
-
-:Description: The type of CRUSH nodes across which we should separate replicas.
-:Type: String
-:Required: Yes
-:Example: ``rack``
-
-``class``
-
-:Description: The device class data should be placed on.
-:Type: String
-:Required: No
-:Example: ``ssd``
-
-Creating a rule for an erasure coded pool
------------------------------------------
-
-For an erasure-coded pool, the same basic decisions need to be made as
-with a replicated pool: what is the failure domain, what node in the
-hierarchy will data be placed under (usually ``default``), and will
-placement be restricted to a specific device class. Erasure code
-pools are created a bit differently, however, because they need to be
-constructed carefully based on the erasure code being used. For this reason,
-you must include this information in the *erasure code profile*. A CRUSH
-rule will then be created from that either explicitly or automatically when
-the profile is used to create a pool.
-
-The erasure code profiles can be listed with::
-
- ceph osd erasure-code-profile ls
-
-An existing profile can be viewed with::
-
- ceph osd erasure-code-profile get {profile-name}
-
-Normally profiles should never be modified; instead, a new profile
-should be created and used when creating a new pool or creating a new
-rule for an existing pool.
-
-An erasure code profile consists of a set of key=value pairs. Most of
-these control the behavior of the erasure code that is encoding data
-in the pool. Those that begin with ``crush-``, however, affect the
-CRUSH rule that is created.
-
-The erasure code profile properties of interest are:
-
- * **crush-root**: the name of the CRUSH node to place data under [default: ``default``].
- * **crush-failure-domain**: the CRUSH type to separate erasure-coded shards across [default: ``host``].
- * **crush-device-class**: the device class to place data on [default: none, meaning all devices are used].
- * **k** and **m** (and, for the ``lrc`` plugin, **l**): these determine the number of erasure code shards, affecting the resulting CRUSH rule.
-
-Once a profile is defined, you can create a CRUSH rule with::
-
- ceph osd crush rule create-erasure {name} {profile-name}
-
-.. note: When creating a new pool, it is not actually necessary to
- explicitly create the rule. If the erasure code profile alone is
- specified and the rule argument is left off then Ceph will create
- the CRUSH rule automatically.
-
-Deleting rules
---------------
-
-Rules that are not in use by pools can be deleted with::
-
- ceph osd crush rule rm {rule-name}
-
-
-Tunables
-========
-
-Over time, we have made (and continue to make) improvements to the
-CRUSH algorithm used to calculate the placement of data. In order to
-support the change in behavior, we have introduced a series of tunable
-options that control whether the legacy or improved variation of the
-algorithm is used.
-
-In order to use newer tunables, both clients and servers must support
-the new version of CRUSH. For this reason, we have created
-``profiles`` that are named after the Ceph version in which they were
-introduced. For example, the ``firefly`` tunables are first supported
-in the firefly release, and will not work with older (e.g., dumpling)
-clients. Once a given set of tunables are changed from the legacy
-default behavior, the ``ceph-mon`` and ``ceph-osd`` will prevent older
-clients who do not support the new CRUSH features from connecting to
-the cluster.
-
-argonaut (legacy)
------------------
-
-The legacy CRUSH behavior used by argonaut and older releases works
-fine for most clusters, provided there are not too many OSDs that have
-been marked out.
-
-bobtail (CRUSH_TUNABLES2)
--------------------------
-
-The bobtail tunable profile fixes a few key misbehaviors:
-
- * For hierarchies with a small number of devices in the leaf buckets,
- some PGs map to fewer than the desired number of replicas. This
- commonly happens for hierarchies with "host" nodes with a small
- number (1-3) of OSDs nested beneath each one.
-
- * For large clusters, some small percentages of PGs map to less than
- the desired number of OSDs. This is more prevalent when there are
- several layers of the hierarchy (e.g., row, rack, host, osd).
-
- * When some OSDs are marked out, the data tends to get redistributed
- to nearby OSDs instead of across the entire hierarchy.
-
-The new tunables are:
-
- * ``choose_local_tries``: Number of local retries. Legacy value is
- 2, optimal value is 0.
-
- * ``choose_local_fallback_tries``: Legacy value is 5, optimal value
- is 0.
-
- * ``choose_total_tries``: Total number of attempts to choose an item.
- Legacy value was 19, subsequent testing indicates that a value of
- 50 is more appropriate for typical clusters. For extremely large
- clusters, a larger value might be necessary.
-
- * ``chooseleaf_descend_once``: Whether a recursive chooseleaf attempt
- will retry, or only try once and allow the original placement to
- retry. Legacy default is 0, optimal value is 1.
-
-Migration impact:
-
- * Moving from argonaut to bobtail tunables triggers a moderate amount
- of data movement. Use caution on a cluster that is already
- populated with data.
-
-firefly (CRUSH_TUNABLES3)
--------------------------
-
-The firefly tunable profile fixes a problem
-with the ``chooseleaf`` CRUSH rule behavior that tends to result in PG
-mappings with too few results when too many OSDs have been marked out.
-
-The new tunable is:
-
- * ``chooseleaf_vary_r``: Whether a recursive chooseleaf attempt will
- start with a non-zero value of r, based on how many attempts the
- parent has already made. Legacy default is 0, but with this value
- CRUSH is sometimes unable to find a mapping. The optimal value (in
- terms of computational cost and correctness) is 1.
-
-Migration impact:
-
- * For existing clusters that have lots of existing data, changing
- from 0 to 1 will cause a lot of data to move; a value of 4 or 5
- will allow CRUSH to find a valid mapping but will make less data
- move.
-
-straw_calc_version tunable (introduced with Firefly too)
---------------------------------------------------------
-
-There were some problems with the internal weights calculated and
-stored in the CRUSH map for ``straw`` buckets. Specifically, when
-there were items with a CRUSH weight of 0 or both a mix of weights and
-some duplicated weights CRUSH would distribute data incorrectly (i.e.,
-not in proportion to the weights).
-
-The new tunable is:
-
- * ``straw_calc_version``: A value of 0 preserves the old, broken
- internal weight calculation; a value of 1 fixes the behavior.
-
-Migration impact:
-
- * Moving to straw_calc_version 1 and then adjusting a straw bucket
- (by adding, removing, or reweighting an item, or by using the
- reweight-all command) can trigger a small to moderate amount of
- data movement *if* the cluster has hit one of the problematic
- conditions.
-
-This tunable option is special because it has absolutely no impact
-concerning the required kernel version in the client side.
-
-hammer (CRUSH_V4)
------------------
-
-The hammer tunable profile does not affect the
-mapping of existing CRUSH maps simply by changing the profile. However:
-
- * There is a new bucket type (``straw2``) supported. The new
- ``straw2`` bucket type fixes several limitations in the original
- ``straw`` bucket. Specifically, the old ``straw`` buckets would
- change some mappings that should have changed when a weight was
- adjusted, while ``straw2`` achieves the original goal of only
- changing mappings to or from the bucket item whose weight has
- changed.
-
- * ``straw2`` is the default for any newly created buckets.
-
-Migration impact:
-
- * Changing a bucket type from ``straw`` to ``straw2`` will result in
- a reasonably small amount of data movement, depending on how much
- the bucket item weights vary from each other. When the weights are
- all the same no data will move, and when item weights vary
- significantly there will be more movement.
-
-jewel (CRUSH_TUNABLES5)
------------------------
-
-The jewel tunable profile improves the
-overall behavior of CRUSH such that significantly fewer mappings
-change when an OSD is marked out of the cluster.
-
-The new tunable is:
-
- * ``chooseleaf_stable``: Whether a recursive chooseleaf attempt will
- use a better value for an inner loop that greatly reduces the number
- of mapping changes when an OSD is marked out. The legacy value is 0,
- while the new value of 1 uses the new approach.
-
-Migration impact:
-
- * Changing this value on an existing cluster will result in a very
- large amount of data movement as almost every PG mapping is likely
- to change.
-
-
-
-
-Which client versions support CRUSH_TUNABLES
---------------------------------------------
-
- * argonaut series, v0.48.1 or later
- * v0.49 or later
- * Linux kernel version v3.6 or later (for the file system and RBD kernel clients)
-
-Which client versions support CRUSH_TUNABLES2
----------------------------------------------
-
- * v0.55 or later, including bobtail series (v0.56.x)
- * Linux kernel version v3.9 or later (for the file system and RBD kernel clients)
-
-Which client versions support CRUSH_TUNABLES3
----------------------------------------------
-
- * v0.78 (firefly) or later
- * Linux kernel version v3.15 or later (for the file system and RBD kernel clients)
-
-Which client versions support CRUSH_V4
---------------------------------------
-
- * v0.94 (hammer) or later
- * Linux kernel version v4.1 or later (for the file system and RBD kernel clients)
-
-Which client versions support CRUSH_TUNABLES5
----------------------------------------------
-
- * v10.0.2 (jewel) or later
- * Linux kernel version v4.5 or later (for the file system and RBD kernel clients)
-
-Warning when tunables are non-optimal
--------------------------------------
-
-Starting with version v0.74, Ceph will issue a health warning if the
-current CRUSH tunables don't include all the optimal values from the
-``default`` profile (see below for the meaning of the ``default`` profile).
-To make this warning go away, you have two options:
-
-1. Adjust the tunables on the existing cluster. Note that this will
- result in some data movement (possibly as much as 10%). This is the
- preferred route, but should be taken with care on a production cluster
- where the data movement may affect performance. You can enable optimal
- tunables with::
-
- ceph osd crush tunables optimal
-
- If things go poorly (e.g., too much load) and not very much
- progress has been made, or there is a client compatibility problem
- (old kernel cephfs or rbd clients, or pre-bobtail librados
- clients), you can switch back with::
-
- ceph osd crush tunables legacy
-
-2. You can make the warning go away without making any changes to CRUSH by
- adding the following option to your ceph.conf ``[mon]`` section::
-
- mon warn on legacy crush tunables = false
-
- For the change to take effect, you will need to restart the monitors, or
- apply the option to running monitors with::
-
- ceph tell mon.\* injectargs --no-mon-warn-on-legacy-crush-tunables
-
-
-A few important points
-----------------------
-
- * Adjusting these values will result in the shift of some PGs between
- storage nodes. If the Ceph cluster is already storing a lot of
- data, be prepared for some fraction of the data to move.
- * The ``ceph-osd`` and ``ceph-mon`` daemons will start requiring the
- feature bits of new connections as soon as they get
- the updated map. However, already-connected clients are
- effectively grandfathered in, and will misbehave if they do not
- support the new feature.
- * If the CRUSH tunables are set to non-legacy values and then later
- changed back to the defult values, ``ceph-osd`` daemons will not be
- required to support the feature. However, the OSD peering process
- requires examining and understanding old maps. Therefore, you
- should not run old versions of the ``ceph-osd`` daemon
- if the cluster has previously used non-legacy CRUSH values, even if
- the latest version of the map has been switched back to using the
- legacy defaults.
-
-Tuning CRUSH
-------------
-
-The simplest way to adjust the crush tunables is by changing to a known
-profile. Those are:
-
- * ``legacy``: the legacy behavior from argonaut and earlier.
- * ``argonaut``: the legacy values supported by the original argonaut release
- * ``bobtail``: the values supported by the bobtail release
- * ``firefly``: the values supported by the firefly release
- * ``hammer``: the values supported by the hammer release
- * ``jewel``: the values supported by the jewel release
- * ``optimal``: the best (ie optimal) values of the current version of Ceph
- * ``default``: the default values of a new cluster installed from
- scratch. These values, which depend on the current version of Ceph,
- are hard coded and are generally a mix of optimal and legacy values.
- These values generally match the ``optimal`` profile of the previous
- LTS release, or the most recent release for which we generally except
- more users to have up to date clients for.
-
-You can select a profile on a running cluster with the command::
-
- ceph osd crush tunables {PROFILE}
-
-Note that this may result in some data movement.
-
-
-.. _CRUSH - Controlled, Scalable, Decentralized Placement of Replicated Data: https://ceph.com/wp-content/uploads/2016/08/weil-crush-sc06.pdf
-
-
-Primary Affinity
-================
-
-When a Ceph Client reads or writes data, it always contacts the primary OSD in
-the acting set. For set ``[2, 3, 4]``, ``osd.2`` is the primary. Sometimes an
-OSD is not well suited to act as a primary compared to other OSDs (e.g., it has
-a slow disk or a slow controller). To prevent performance bottlenecks
-(especially on read operations) while maximizing utilization of your hardware,
-you can set a Ceph OSD's primary affinity so that CRUSH is less likely to use
-the OSD as a primary in an acting set. ::
-
- ceph osd primary-affinity <osd-id> <weight>
-
-Primary affinity is ``1`` by default (*i.e.,* an OSD may act as a primary). You
-may set the OSD primary range from ``0-1``, where ``0`` means that the OSD may
-**NOT** be used as a primary and ``1`` means that an OSD may be used as a
-primary. When the weight is ``< 1``, it is less likely that CRUSH will select
-the Ceph OSD Daemon to act as a primary.
-
-
-
diff --git a/src/ceph/doc/rados/operations/data-placement.rst b/src/ceph/doc/rados/operations/data-placement.rst
deleted file mode 100644
index 27966b0..0000000
--- a/src/ceph/doc/rados/operations/data-placement.rst
+++ /dev/null
@@ -1,37 +0,0 @@
-=========================
- Data Placement Overview
-=========================
-
-Ceph stores, replicates and rebalances data objects across a RADOS cluster
-dynamically. With many different users storing objects in different pools for
-different purposes on countless OSDs, Ceph operations require some data
-placement planning. The main data placement planning concepts in Ceph include:
-
-- **Pools:** Ceph stores data within pools, which are logical groups for storing
- objects. Pools manage the number of placement groups, the number of replicas,
- and the ruleset for the pool. To store data in a pool, you must have
- an authenticated user with permissions for the pool. Ceph can snapshot pools.
- See `Pools`_ for additional details.
-
-- **Placement Groups:** Ceph maps objects to placement groups (PGs).
- Placement groups (PGs) are shards or fragments of a logical object pool
- that place objects as a group into OSDs. Placement groups reduce the amount
- of per-object metadata when Ceph stores the data in OSDs. A larger number of
- placement groups (e.g., 100 per OSD) leads to better balancing. See
- `Placement Groups`_ for additional details.
-
-- **CRUSH Maps:** CRUSH is a big part of what allows Ceph to scale without
- performance bottlenecks, without limitations to scalability, and without a
- single point of failure. CRUSH maps provide the physical topology of the
- cluster to the CRUSH algorithm to determine where the data for an object
- and its replicas should be stored, and how to do so across failure domains
- for added data safety among other things. See `CRUSH Maps`_ for additional
- details.
-
-When you initially set up a test cluster, you can use the default values. Once
-you begin planning for a large Ceph cluster, refer to pools, placement groups
-and CRUSH for data placement operations.
-
-.. _Pools: ../pools
-.. _Placement Groups: ../placement-groups
-.. _CRUSH Maps: ../crush-map
diff --git a/src/ceph/doc/rados/operations/erasure-code-isa.rst b/src/ceph/doc/rados/operations/erasure-code-isa.rst
deleted file mode 100644
index b52933a..0000000
--- a/src/ceph/doc/rados/operations/erasure-code-isa.rst
+++ /dev/null
@@ -1,105 +0,0 @@
-=======================
-ISA erasure code plugin
-=======================
-
-The *isa* plugin encapsulates the `ISA
-<https://01.org/intel%C2%AE-storage-acceleration-library-open-source-version/>`_
-library. It only runs on Intel processors.
-
-Create an isa profile
-=====================
-
-To create a new *isa* erasure code profile::
-
- ceph osd erasure-code-profile set {name} \
- plugin=isa \
- technique={reed_sol_van|cauchy} \
- [k={data-chunks}] \
- [m={coding-chunks}] \
- [crush-root={root}] \
- [crush-failure-domain={bucket-type}] \
- [crush-device-class={device-class}] \
- [directory={directory}] \
- [--force]
-
-Where:
-
-``k={data chunks}``
-
-:Description: Each object is split in **data-chunks** parts,
- each stored on a different OSD.
-
-:Type: Integer
-:Required: No.
-:Default: 7
-
-``m={coding-chunks}``
-
-:Description: Compute **coding chunks** for each object and store them
- on different OSDs. The number of coding chunks is also
- the number of OSDs that can be down without losing data.
-
-:Type: Integer
-:Required: No.
-:Default: 3
-
-``technique={reed_sol_van|cauchy}``
-
-:Description: The ISA plugin comes in two `Reed Solomon
- <https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction>`_
- forms. If *reed_sol_van* is set, it is `Vandermonde
- <https://en.wikipedia.org/wiki/Vandermonde_matrix>`_, if
- *cauchy* is set, it is `Cauchy
- <https://en.wikipedia.org/wiki/Cauchy_matrix>`_.
-
-:Type: String
-:Required: No.
-:Default: reed_sol_van
-
-``crush-root={root}``
-
-:Description: The name of the crush bucket used for the first step of
- the ruleset. For intance **step take default**.
-
-:Type: String
-:Required: No.
-:Default: default
-
-``crush-failure-domain={bucket-type}``
-
-:Description: Ensure that no two chunks are in a bucket with the same
- failure domain. For instance, if the failure domain is
- **host** no two chunks will be stored on the same
- host. It is used to create a ruleset step such as **step
- chooseleaf host**.
-
-:Type: String
-:Required: No.
-:Default: host
-
-``crush-device-class={device-class}``
-
-:Description: Restrict placement to devices of a specific class (e.g.,
- ``ssd`` or ``hdd``), using the crush device class names
- in the CRUSH map.
-
-:Type: String
-:Required: No.
-:Default:
-
-``directory={directory}``
-
-:Description: Set the **directory** name from which the erasure code
- plugin is loaded.
-
-:Type: String
-:Required: No.
-:Default: /usr/lib/ceph/erasure-code
-
-``--force``
-
-:Description: Override an existing profile by the same name.
-
-:Type: String
-:Required: No.
-
diff --git a/src/ceph/doc/rados/operations/erasure-code-jerasure.rst b/src/ceph/doc/rados/operations/erasure-code-jerasure.rst
deleted file mode 100644
index e8da097..0000000
--- a/src/ceph/doc/rados/operations/erasure-code-jerasure.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-============================
-Jerasure erasure code plugin
-============================
-
-The *jerasure* plugin is the most generic and flexible plugin, it is
-also the default for Ceph erasure coded pools.
-
-The *jerasure* plugin encapsulates the `Jerasure
-<http://jerasure.org>`_ library. It is
-recommended to read the *jerasure* documentation to get a better
-understanding of the parameters.
-
-Create a jerasure profile
-=========================
-
-To create a new *jerasure* erasure code profile::
-
- ceph osd erasure-code-profile set {name} \
- plugin=jerasure \
- k={data-chunks} \
- m={coding-chunks} \
- technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion} \
- [crush-root={root}] \
- [crush-failure-domain={bucket-type}] \
- [crush-device-class={device-class}] \
- [directory={directory}] \
- [--force]
-
-Where:
-
-``k={data chunks}``
-
-:Description: Each object is split in **data-chunks** parts,
- each stored on a different OSD.
-
-:Type: Integer
-:Required: Yes.
-:Example: 4
-
-``m={coding-chunks}``
-
-:Description: Compute **coding chunks** for each object and store them
- on different OSDs. The number of coding chunks is also
- the number of OSDs that can be down without losing data.
-
-:Type: Integer
-:Required: Yes.
-:Example: 2
-
-``technique={reed_sol_van|reed_sol_r6_op|cauchy_orig|cauchy_good|liberation|blaum_roth|liber8tion}``
-
-:Description: The more flexible technique is *reed_sol_van* : it is
- enough to set *k* and *m*. The *cauchy_good* technique
- can be faster but you need to chose the *packetsize*
- carefully. All of *reed_sol_r6_op*, *liberation*,
- *blaum_roth*, *liber8tion* are *RAID6* equivalents in
- the sense that they can only be configured with *m=2*.
-
-:Type: String
-:Required: No.
-:Default: reed_sol_van
-
-``packetsize={bytes}``
-
-:Description: The encoding will be done on packets of *bytes* size at
- a time. Chosing the right packet size is difficult. The
- *jerasure* documentation contains extensive information
- on this topic.
-
-:Type: Integer
-:Required: No.
-:Default: 2048
-
-``crush-root={root}``
-
-:Description: The name of the crush bucket used for the first step of
- the ruleset. For intance **step take default**.
-
-:Type: String
-:Required: No.
-:Default: default
-
-``crush-failure-domain={bucket-type}``
-
-:Description: Ensure that no two chunks are in a bucket with the same
- failure domain. For instance, if the failure domain is
- **host** no two chunks will be stored on the same
- host. It is used to create a ruleset step such as **step
- chooseleaf host**.
-
-:Type: String
-:Required: No.
-:Default: host
-
-``crush-device-class={device-class}``
-
-:Description: Restrict placement to devices of a specific class (e.g.,
- ``ssd`` or ``hdd``), using the crush device class names
- in the CRUSH map.
-
-:Type: String
-:Required: No.
-:Default:
-
- ``directory={directory}``
-
-:Description: Set the **directory** name from which the erasure code
- plugin is loaded.
-
-:Type: String
-:Required: No.
-:Default: /usr/lib/ceph/erasure-code
-
-``--force``
-
-:Description: Override an existing profile by the same name.
-
-:Type: String
-:Required: No.
-
diff --git a/src/ceph/doc/rados/operations/erasure-code-lrc.rst b/src/ceph/doc/rados/operations/erasure-code-lrc.rst
deleted file mode 100644
index 447ce23..0000000
--- a/src/ceph/doc/rados/operations/erasure-code-lrc.rst
+++ /dev/null
@@ -1,371 +0,0 @@
-======================================
-Locally repairable erasure code plugin
-======================================
-
-With the *jerasure* plugin, when an erasure coded object is stored on
-multiple OSDs, recovering from the loss of one OSD requires reading
-from all the others. For instance if *jerasure* is configured with
-*k=8* and *m=4*, losing one OSD requires reading from the eleven
-others to repair.
-
-The *lrc* erasure code plugin creates local parity chunks to be able
-to recover using less OSDs. For instance if *lrc* is configured with
-*k=8*, *m=4* and *l=4*, it will create an additional parity chunk for
-every four OSDs. When a single OSD is lost, it can be recovered with
-only four OSDs instead of eleven.
-
-Erasure code profile examples
-=============================
-
-Reduce recovery bandwidth between hosts
----------------------------------------
-
-Although it is probably not an interesting use case when all hosts are
-connected to the same switch, reduced bandwidth usage can actually be
-observed.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- k=4 m=2 l=3 \
- crush-failure-domain=host
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-
-Reduce recovery bandwidth between racks
----------------------------------------
-
-In Firefly the reduced bandwidth will only be observed if the primary
-OSD is in the same rack as the lost chunk.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- k=4 m=2 l=3 \
- crush-locality=rack \
- crush-failure-domain=host
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-
-Create an lrc profile
-=====================
-
-To create a new lrc erasure code profile::
-
- ceph osd erasure-code-profile set {name} \
- plugin=lrc \
- k={data-chunks} \
- m={coding-chunks} \
- l={locality} \
- [crush-root={root}] \
- [crush-locality={bucket-type}] \
- [crush-failure-domain={bucket-type}] \
- [crush-device-class={device-class}] \
- [directory={directory}] \
- [--force]
-
-Where:
-
-``k={data chunks}``
-
-:Description: Each object is split in **data-chunks** parts,
- each stored on a different OSD.
-
-:Type: Integer
-:Required: Yes.
-:Example: 4
-
-``m={coding-chunks}``
-
-:Description: Compute **coding chunks** for each object and store them
- on different OSDs. The number of coding chunks is also
- the number of OSDs that can be down without losing data.
-
-:Type: Integer
-:Required: Yes.
-:Example: 2
-
-``l={locality}``
-
-:Description: Group the coding and data chunks into sets of size
- **locality**. For instance, for **k=4** and **m=2**,
- when **locality=3** two groups of three are created.
- Each set can be recovered without reading chunks
- from another set.
-
-:Type: Integer
-:Required: Yes.
-:Example: 3
-
-``crush-root={root}``
-
-:Description: The name of the crush bucket used for the first step of
- the ruleset. For intance **step take default**.
-
-:Type: String
-:Required: No.
-:Default: default
-
-``crush-locality={bucket-type}``
-
-:Description: The type of the crush bucket in which each set of chunks
- defined by **l** will be stored. For instance, if it is
- set to **rack**, each group of **l** chunks will be
- placed in a different rack. It is used to create a
- ruleset step such as **step choose rack**. If it is not
- set, no such grouping is done.
-
-:Type: String
-:Required: No.
-
-``crush-failure-domain={bucket-type}``
-
-:Description: Ensure that no two chunks are in a bucket with the same
- failure domain. For instance, if the failure domain is
- **host** no two chunks will be stored on the same
- host. It is used to create a ruleset step such as **step
- chooseleaf host**.
-
-:Type: String
-:Required: No.
-:Default: host
-
-``crush-device-class={device-class}``
-
-:Description: Restrict placement to devices of a specific class (e.g.,
- ``ssd`` or ``hdd``), using the crush device class names
- in the CRUSH map.
-
-:Type: String
-:Required: No.
-:Default:
-
-``directory={directory}``
-
-:Description: Set the **directory** name from which the erasure code
- plugin is loaded.
-
-:Type: String
-:Required: No.
-:Default: /usr/lib/ceph/erasure-code
-
-``--force``
-
-:Description: Override an existing profile by the same name.
-
-:Type: String
-:Required: No.
-
-Low level plugin configuration
-==============================
-
-The sum of **k** and **m** must be a multiple of the **l** parameter.
-The low level configuration parameters do not impose such a
-restriction and it may be more convienient to use it for specific
-purposes. It is for instance possible to define two groups, one with 4
-chunks and another with 3 chunks. It is also possible to recursively
-define locality sets, for instance datacenters and racks into
-datacenters. The **k/m/l** are implemented by generating a low level
-configuration.
-
-The *lrc* erasure code plugin recursively applies erasure code
-techniques so that recovering from the loss of some chunks only
-requires a subset of the available chunks, most of the time.
-
-For instance, when three coding steps are described as::
-
- chunk nr 01234567
- step 1 _cDD_cDD
- step 2 cDDD____
- step 3 ____cDDD
-
-where *c* are coding chunks calculated from the data chunks *D*, the
-loss of chunk *7* can be recovered with the last four chunks. And the
-loss of chunk *2* chunk can be recovered with the first four
-chunks.
-
-Erasure code profile examples using low level configuration
-===========================================================
-
-Minimal testing
----------------
-
-It is strictly equivalent to using the default erasure code profile. The *DD*
-implies *K=2*, the *c* implies *M=1* and the *jerasure* plugin is used
-by default.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- mapping=DD_ \
- layers='[ [ "DDc", "" ] ]'
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-Reduce recovery bandwidth between hosts
----------------------------------------
-
-Although it is probably not an interesting use case when all hosts are
-connected to the same switch, reduced bandwidth usage can actually be
-observed. It is equivalent to **k=4**, **m=2** and **l=3** although
-the layout of the chunks is different::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- mapping=__DD__DD \
- layers='[
- [ "_cDD_cDD", "" ],
- [ "cDDD____", "" ],
- [ "____cDDD", "" ],
- ]'
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-
-Reduce recovery bandwidth between racks
----------------------------------------
-
-In Firefly the reduced bandwidth will only be observed if the primary
-OSD is in the same rack as the lost chunk.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- mapping=__DD__DD \
- layers='[
- [ "_cDD_cDD", "" ],
- [ "cDDD____", "" ],
- [ "____cDDD", "" ],
- ]' \
- crush-steps='[
- [ "choose", "rack", 2 ],
- [ "chooseleaf", "host", 4 ],
- ]'
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-Testing with different Erasure Code backends
---------------------------------------------
-
-LRC now uses jerasure as the default EC backend. It is possible to
-specify the EC backend/algorithm on a per layer basis using the low
-level configuration. The second argument in layers='[ [ "DDc", "" ] ]'
-is actually an erasure code profile to be used for this level. The
-example below specifies the ISA backend with the cauchy technique to
-be used in the lrcpool.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- mapping=DD_ \
- layers='[ [ "DDc", "plugin=isa technique=cauchy" ] ]'
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-You could also use a different erasure code profile for for each
-layer.::
-
- $ ceph osd erasure-code-profile set LRCprofile \
- plugin=lrc \
- mapping=__DD__DD \
- layers='[
- [ "_cDD_cDD", "plugin=isa technique=cauchy" ],
- [ "cDDD____", "plugin=isa" ],
- [ "____cDDD", "plugin=jerasure" ],
- ]'
- $ ceph osd pool create lrcpool 12 12 erasure LRCprofile
-
-
-
-Erasure coding and decoding algorithm
-=====================================
-
-The steps found in the layers description::
-
- chunk nr 01234567
-
- step 1 _cDD_cDD
- step 2 cDDD____
- step 3 ____cDDD
-
-are applied in order. For instance, if a 4K object is encoded, it will
-first go thru *step 1* and be divided in four 1K chunks (the four
-uppercase D). They are stored in the chunks 2, 3, 6 and 7, in
-order. From these, two coding chunks are calculated (the two lowercase
-c). The coding chunks are stored in the chunks 1 and 5, respectively.
-
-The *step 2* re-uses the content created by *step 1* in a similar
-fashion and stores a single coding chunk *c* at position 0. The last four
-chunks, marked with an underscore (*_*) for readability, are ignored.
-
-The *step 3* stores a single coding chunk *c* at position 4. The three
-chunks created by *step 1* are used to compute this coding chunk,
-i.e. the coding chunk from *step 1* becomes a data chunk in *step 3*.
-
-If chunk *2* is lost::
-
- chunk nr 01234567
-
- step 1 _c D_cDD
- step 2 cD D____
- step 3 __ _cDDD
-
-decoding will attempt to recover it by walking the steps in reverse
-order: *step 3* then *step 2* and finally *step 1*.
-
-The *step 3* knows nothing about chunk *2* (i.e. it is an underscore)
-and is skipped.
-
-The coding chunk from *step 2*, stored in chunk *0*, allows it to
-recover the content of chunk *2*. There are no more chunks to recover
-and the process stops, without considering *step 1*.
-
-Recovering chunk *2* requires reading chunks *0, 1, 3* and writing
-back chunk *2*.
-
-If chunk *2, 3, 6* are lost::
-
- chunk nr 01234567
-
- step 1 _c _c D
- step 2 cD __ _
- step 3 __ cD D
-
-The *step 3* can recover the content of chunk *6*::
-
- chunk nr 01234567
-
- step 1 _c _cDD
- step 2 cD ____
- step 3 __ cDDD
-
-The *step 2* fails to recover and is skipped because there are two
-chunks missing (*2, 3*) and it can only recover from one missing
-chunk.
-
-The coding chunk from *step 1*, stored in chunk *1, 5*, allows it to
-recover the content of chunk *2, 3*::
-
- chunk nr 01234567
-
- step 1 _cDD_cDD
- step 2 cDDD____
- step 3 ____cDDD
-
-Controlling crush placement
-===========================
-
-The default crush ruleset provides OSDs that are on different hosts. For instance::
-
- chunk nr 01234567
-
- step 1 _cDD_cDD
- step 2 cDDD____
- step 3 ____cDDD
-
-needs exactly *8* OSDs, one for each chunk. If the hosts are in two
-adjacent racks, the first four chunks can be placed in the first rack
-and the last four in the second rack. So that recovering from the loss
-of a single OSD does not require using bandwidth between the two
-racks.
-
-For instance::
-
- crush-steps='[ [ "choose", "rack", 2 ], [ "chooseleaf", "host", 4 ] ]'
-
-will create a ruleset that will select two crush buckets of type
-*rack* and for each of them choose four OSDs, each of them located in
-different buckets of type *host*.
-
-The ruleset can also be manually crafted for finer control.
diff --git a/src/ceph/doc/rados/operations/erasure-code-profile.rst b/src/ceph/doc/rados/operations/erasure-code-profile.rst
deleted file mode 100644
index ddf772d..0000000
--- a/src/ceph/doc/rados/operations/erasure-code-profile.rst
+++ /dev/null
@@ -1,121 +0,0 @@
-=====================
-Erasure code profiles
-=====================
-
-Erasure code is defined by a **profile** and is used when creating an
-erasure coded pool and the associated crush ruleset.
-
-The **default** erasure code profile (which is created when the Ceph
-cluster is initialized) provides the same level of redundancy as two
-copies but requires 25% less disk space. It is described as a profile
-with **k=2** and **m=1**, meaning the information is spread over three
-OSD (k+m == 3) and one of them can be lost.
-
-To improve redundancy without increasing raw storage requirements, a
-new profile can be created. For instance, a profile with **k=10** and
-**m=4** can sustain the loss of four (**m=4**) OSDs by distributing an
-object on fourteen (k+m=14) OSDs. The object is first divided in
-**10** chunks (if the object is 10MB, each chunk is 1MB) and **4**
-coding chunks are computed, for recovery (each coding chunk has the
-same size as the data chunk, i.e. 1MB). The raw space overhead is only
-40% and the object will not be lost even if four OSDs break at the
-same time.
-
-.. _list of available plugins:
-
-.. toctree::
- :maxdepth: 1
-
- erasure-code-jerasure
- erasure-code-isa
- erasure-code-lrc
- erasure-code-shec
-
-osd erasure-code-profile set
-============================
-
-To create a new erasure code profile::
-
- ceph osd erasure-code-profile set {name} \
- [{directory=directory}] \
- [{plugin=plugin}] \
- [{stripe_unit=stripe_unit}] \
- [{key=value} ...] \
- [--force]
-
-Where:
-
-``{directory=directory}``
-
-:Description: Set the **directory** name from which the erasure code
- plugin is loaded.
-
-:Type: String
-:Required: No.
-:Default: /usr/lib/ceph/erasure-code
-
-``{plugin=plugin}``
-
-:Description: Use the erasure code **plugin** to compute coding chunks
- and recover missing chunks. See the `list of available
- plugins`_ for more information.
-
-:Type: String
-:Required: No.
-:Default: jerasure
-
-``{stripe_unit=stripe_unit}``
-
-:Description: The amount of data in a data chunk, per stripe. For
- example, a profile with 2 data chunks and stripe_unit=4K
- would put the range 0-4K in chunk 0, 4K-8K in chunk 1,
- then 8K-12K in chunk 0 again. This should be a multiple
- of 4K for best performance. The default value is taken
- from the monitor config option
- ``osd_pool_erasure_code_stripe_unit`` when a pool is
- created. The stripe_width of a pool using this profile
- will be the number of data chunks multiplied by this
- stripe_unit.
-
-:Type: String
-:Required: No.
-
-``{key=value}``
-
-:Description: The semantic of the remaining key/value pairs is defined
- by the erasure code plugin.
-
-:Type: String
-:Required: No.
-
-``--force``
-
-:Description: Override an existing profile by the same name, and allow
- setting a non-4K-aligned stripe_unit.
-
-:Type: String
-:Required: No.
-
-osd erasure-code-profile rm
-============================
-
-To remove an erasure code profile::
-
- ceph osd erasure-code-profile rm {name}
-
-If the profile is referenced by a pool, the deletion will fail.
-
-osd erasure-code-profile get
-============================
-
-To display an erasure code profile::
-
- ceph osd erasure-code-profile get {name}
-
-osd erasure-code-profile ls
-===========================
-
-To list the names of all erasure code profiles::
-
- ceph osd erasure-code-profile ls
-
diff --git a/src/ceph/doc/rados/operations/erasure-code-shec.rst b/src/ceph/doc/rados/operations/erasure-code-shec.rst
deleted file mode 100644
index e3bab37..0000000
--- a/src/ceph/doc/rados/operations/erasure-code-shec.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-========================
-SHEC erasure code plugin
-========================
-
-The *shec* plugin encapsulates the `multiple SHEC
-<http://tracker.ceph.com/projects/ceph/wiki/Shingled_Erasure_Code_(SHEC)>`_
-library. It allows ceph to recover data more efficiently than Reed Solomon codes.
-
-Create an SHEC profile
-======================
-
-To create a new *shec* erasure code profile::
-
- ceph osd erasure-code-profile set {name} \
- plugin=shec \
- [k={data-chunks}] \
- [m={coding-chunks}] \
- [c={durability-estimator}] \
- [crush-root={root}] \
- [crush-failure-domain={bucket-type}] \
- [crush-device-class={device-class}] \
- [directory={directory}] \
- [--force]
-
-Where:
-
-``k={data-chunks}``
-
-:Description: Each object is split in **data-chunks** parts,
- each stored on a different OSD.
-
-:Type: Integer
-:Required: No.
-:Default: 4
-
-``m={coding-chunks}``
-
-:Description: Compute **coding-chunks** for each object and store them on
- different OSDs. The number of **coding-chunks** does not necessarily
- equal the number of OSDs that can be down without losing data.
-
-:Type: Integer
-:Required: No.
-:Default: 3
-
-``c={durability-estimator}``
-
-:Description: The number of parity chunks each of which includes each data chunk in its
- calculation range. The number is used as a **durability estimator**.
- For instance, if c=2, 2 OSDs can be down without losing data.
-
-:Type: Integer
-:Required: No.
-:Default: 2
-
-``crush-root={root}``
-
-:Description: The name of the crush bucket used for the first step of
- the ruleset. For intance **step take default**.
-
-:Type: String
-:Required: No.
-:Default: default
-
-``crush-failure-domain={bucket-type}``
-
-:Description: Ensure that no two chunks are in a bucket with the same
- failure domain. For instance, if the failure domain is
- **host** no two chunks will be stored on the same
- host. It is used to create a ruleset step such as **step
- chooseleaf host**.
-
-:Type: String
-:Required: No.
-:Default: host
-
-``crush-device-class={device-class}``
-
-:Description: Restrict placement to devices of a specific class (e.g.,
- ``ssd`` or ``hdd``), using the crush device class names
- in the CRUSH map.
-
-:Type: String
-:Required: No.
-:Default:
-
-``directory={directory}``
-
-:Description: Set the **directory** name from which the erasure code
- plugin is loaded.
-
-:Type: String
-:Required: No.
-:Default: /usr/lib/ceph/erasure-code
-
-``--force``
-
-:Description: Override an existing profile by the same name.
-
-:Type: String
-:Required: No.
-
-Brief description of SHEC's layouts
-===================================
-
-Space Efficiency
-----------------
-
-Space efficiency is a ratio of data chunks to all ones in a object and
-represented as k/(k+m).
-In order to improve space efficiency, you should increase k or decrease m.
-
-::
-
- space efficiency of SHEC(4,3,2) = 4/(4+3) = 0.57
- SHEC(5,3,2) or SHEC(4,2,2) improves SHEC(4,3,2)'s space efficiency
-
-Durability
-----------
-
-The third parameter of SHEC (=c) is a durability estimator, which approximates
-the number of OSDs that can be down without losing data.
-
-``durability estimator of SHEC(4,3,2) = 2``
-
-Recovery Efficiency
--------------------
-
-Describing calculation of recovery efficiency is beyond the scope of this document,
-but at least increasing m without increasing c achieves improvement of recovery efficiency.
-(However, we must pay attention to the sacrifice of space efficiency in this case.)
-
-``SHEC(4,2,2) -> SHEC(4,3,2) : achieves improvement of recovery efficiency``
-
-Erasure code profile examples
-=============================
-
-::
-
- $ ceph osd erasure-code-profile set SHECprofile \
- plugin=shec \
- k=8 m=4 c=3 \
- crush-failure-domain=host
- $ ceph osd pool create shecpool 256 256 erasure SHECprofile
diff --git a/src/ceph/doc/rados/operations/erasure-code.rst b/src/ceph/doc/rados/operations/erasure-code.rst
deleted file mode 100644
index 6ec5a09..0000000
--- a/src/ceph/doc/rados/operations/erasure-code.rst
+++ /dev/null
@@ -1,195 +0,0 @@
-=============
- Erasure code
-=============
-
-A Ceph pool is associated to a type to sustain the loss of an OSD
-(i.e. a disk since most of the time there is one OSD per disk). The
-default choice when `creating a pool <../pools>`_ is *replicated*,
-meaning every object is copied on multiple disks. The `Erasure Code
-<https://en.wikipedia.org/wiki/Erasure_code>`_ pool type can be used
-instead to save space.
-
-Creating a sample erasure coded pool
-------------------------------------
-
-The simplest erasure coded pool is equivalent to `RAID5
-<https://en.wikipedia.org/wiki/Standard_RAID_levels#RAID_5>`_ and
-requires at least three hosts::
-
- $ ceph osd pool create ecpool 12 12 erasure
- pool 'ecpool' created
- $ echo ABCDEFGHI | rados --pool ecpool put NYAN -
- $ rados --pool ecpool get NYAN -
- ABCDEFGHI
-
-.. note:: the 12 in *pool create* stands for
- `the number of placement groups <../pools>`_.
-
-Erasure code profiles
----------------------
-
-The default erasure code profile sustains the loss of a single OSD. It
-is equivalent to a replicated pool of size two but requires 1.5TB
-instead of 2TB to store 1TB of data. The default profile can be
-displayed with::
-
- $ ceph osd erasure-code-profile get default
- k=2
- m=1
- plugin=jerasure
- crush-failure-domain=host
- technique=reed_sol_van
-
-Choosing the right profile is important because it cannot be modified
-after the pool is created: a new pool with a different profile needs
-to be created and all objects from the previous pool moved to the new.
-
-The most important parameters of the profile are *K*, *M* and
-*crush-failure-domain* because they define the storage overhead and
-the data durability. For instance, if the desired architecture must
-sustain the loss of two racks with a storage overhead of 40% overhead,
-the following profile can be defined::
-
- $ ceph osd erasure-code-profile set myprofile \
- k=3 \
- m=2 \
- crush-failure-domain=rack
- $ ceph osd pool create ecpool 12 12 erasure myprofile
- $ echo ABCDEFGHI | rados --pool ecpool put NYAN -
- $ rados --pool ecpool get NYAN -
- ABCDEFGHI
-
-The *NYAN* object will be divided in three (*K=3*) and two additional
-*chunks* will be created (*M=2*). The value of *M* defines how many
-OSD can be lost simultaneously without losing any data. The
-*crush-failure-domain=rack* will create a CRUSH ruleset that ensures
-no two *chunks* are stored in the same rack.
-
-.. ditaa::
- +-------------------+
- name | NYAN |
- +-------------------+
- content | ABCDEFGHI |
- +--------+----------+
- |
- |
- v
- +------+------+
- +---------------+ encode(3,2) +-----------+
- | +--+--+---+---+ |
- | | | | |
- | +-------+ | +-----+ |
- | | | | |
- +--v---+ +--v---+ +--v---+ +--v---+ +--v---+
- name | NYAN | | NYAN | | NYAN | | NYAN | | NYAN |
- +------+ +------+ +------+ +------+ +------+
- shard | 1 | | 2 | | 3 | | 4 | | 5 |
- +------+ +------+ +------+ +------+ +------+
- content | ABC | | DEF | | GHI | | YXY | | QGC |
- +--+---+ +--+---+ +--+---+ +--+---+ +--+---+
- | | | | |
- | | v | |
- | | +--+---+ | |
- | | | OSD1 | | |
- | | +------+ | |
- | | | |
- | | +------+ | |
- | +------>| OSD2 | | |
- | +------+ | |
- | | |
- | +------+ | |
- | | OSD3 |<----+ |
- | +------+ |
- | |
- | +------+ |
- | | OSD4 |<--------------+
- | +------+
- |
- | +------+
- +----------------->| OSD5 |
- +------+
-
-
-More information can be found in the `erasure code profiles
-<../erasure-code-profile>`_ documentation.
-
-
-Erasure Coding with Overwrites
-------------------------------
-
-By default, erasure coded pools only work with uses like RGW that
-perform full object writes and appends.
-
-Since Luminous, partial writes for an erasure coded pool may be
-enabled with a per-pool setting. This lets RBD and Cephfs store their
-data in an erasure coded pool::
-
- ceph osd pool set ec_pool allow_ec_overwrites true
-
-This can only be enabled on a pool residing on bluestore OSDs, since
-bluestore's checksumming is used to detect bitrot or other corruption
-during deep-scrub. In addition to being unsafe, using filestore with
-ec overwrites yields low performance compared to bluestore.
-
-Erasure coded pools do not support omap, so to use them with RBD and
-Cephfs you must instruct them to store their data in an ec pool, and
-their metadata in a replicated pool. For RBD, this means using the
-erasure coded pool as the ``--data-pool`` during image creation::
-
- rbd create --size 1G --data-pool ec_pool replicated_pool/image_name
-
-For Cephfs, using an erasure coded pool means setting that pool in
-a `file layout <../../../cephfs/file-layouts>`_.
-
-
-Erasure coded pool and cache tiering
-------------------------------------
-
-Erasure coded pools require more resources than replicated pools and
-lack some functionalities such as omap. To overcome these
-limitations, one can set up a `cache tier <../cache-tiering>`_
-before the erasure coded pool.
-
-For instance, if the pool *hot-storage* is made of fast storage::
-
- $ ceph osd tier add ecpool hot-storage
- $ ceph osd tier cache-mode hot-storage writeback
- $ ceph osd tier set-overlay ecpool hot-storage
-
-will place the *hot-storage* pool as tier of *ecpool* in *writeback*
-mode so that every write and read to the *ecpool* are actually using
-the *hot-storage* and benefit from its flexibility and speed.
-
-More information can be found in the `cache tiering
-<../cache-tiering>`_ documentation.
-
-Glossary
---------
-
-*chunk*
- when the encoding function is called, it returns chunks of the same
- size. Data chunks which can be concatenated to reconstruct the original
- object and coding chunks which can be used to rebuild a lost chunk.
-
-*K*
- the number of data *chunks*, i.e. the number of *chunks* in which the
- original object is divided. For instance if *K* = 2 a 10KB object
- will be divided into *K* objects of 5KB each.
-
-*M*
- the number of coding *chunks*, i.e. the number of additional *chunks*
- computed by the encoding functions. If there are 2 coding *chunks*,
- it means 2 OSDs can be out without losing data.
-
-
-Table of content
-----------------
-
-.. toctree::
- :maxdepth: 1
-
- erasure-code-profile
- erasure-code-jerasure
- erasure-code-isa
- erasure-code-lrc
- erasure-code-shec
diff --git a/src/ceph/doc/rados/operations/health-checks.rst b/src/ceph/doc/rados/operations/health-checks.rst
deleted file mode 100644
index c1e2200..0000000
--- a/src/ceph/doc/rados/operations/health-checks.rst
+++ /dev/null
@@ -1,527 +0,0 @@
-
-=============
-Health checks
-=============
-
-Overview
-========
-
-There is a finite set of possible health messages that a Ceph cluster can
-raise -- these are defined as *health checks* which have unique identifiers.
-
-The identifier is a terse pseudo-human-readable (i.e. like a variable name)
-string. It is intended to enable tools (such as UIs) to make sense of
-health checks, and present them in a way that reflects their meaning.
-
-This page lists the health checks that are raised by the monitor and manager
-daemons. In addition to these, you may also see health checks that originate
-from MDS daemons (see :doc:`/cephfs/health-messages`), and health checks
-that are defined by ceph-mgr python modules.
-
-Definitions
-===========
-
-
-OSDs
-----
-
-OSD_DOWN
-________
-
-One or more OSDs are marked down. The ceph-osd daemon may have been
-stopped, or peer OSDs may be unable to reach the OSD over the network.
-Common causes include a stopped or crashed daemon, a down host, or a
-network outage.
-
-Verify the host is healthy, the daemon is started, and network is
-functioning. If the daemon has crashed, the daemon log file
-(``/var/log/ceph/ceph-osd.*``) may contain debugging information.
-
-OSD_<crush type>_DOWN
-_____________________
-
-(e.g. OSD_HOST_DOWN, OSD_ROOT_DOWN)
-
-All the OSDs within a particular CRUSH subtree are marked down, for example
-all OSDs on a host.
-
-OSD_ORPHAN
-__________
-
-An OSD is referenced in the CRUSH map hierarchy but does not exist.
-
-The OSD can be removed from the CRUSH hierarchy with::
-
- ceph osd crush rm osd.<id>
-
-OSD_OUT_OF_ORDER_FULL
-_____________________
-
-The utilization thresholds for `backfillfull`, `nearfull`, `full`,
-and/or `failsafe_full` are not ascending. In particular, we expect
-`backfillfull < nearfull`, `nearfull < full`, and `full <
-failsafe_full`.
-
-The thresholds can be adjusted with::
-
- ceph osd set-backfillfull-ratio <ratio>
- ceph osd set-nearfull-ratio <ratio>
- ceph osd set-full-ratio <ratio>
-
-
-OSD_FULL
-________
-
-One or more OSDs has exceeded the `full` threshold and is preventing
-the cluster from servicing writes.
-
-Utilization by pool can be checked with::
-
- ceph df
-
-The currently defined `full` ratio can be seen with::
-
- ceph osd dump | grep full_ratio
-
-A short-term workaround to restore write availability is to raise the full
-threshold by a small amount::
-
- ceph osd set-full-ratio <ratio>
-
-New storage should be added to the cluster by deploying more OSDs or
-existing data should be deleted in order to free up space.
-
-OSD_BACKFILLFULL
-________________
-
-One or more OSDs has exceeded the `backfillfull` threshold, which will
-prevent data from being allowed to rebalance to this device. This is
-an early warning that rebalancing may not be able to complete and that
-the cluster is approaching full.
-
-Utilization by pool can be checked with::
-
- ceph df
-
-OSD_NEARFULL
-____________
-
-One or more OSDs has exceeded the `nearfull` threshold. This is an early
-warning that the cluster is approaching full.
-
-Utilization by pool can be checked with::
-
- ceph df
-
-OSDMAP_FLAGS
-____________
-
-One or more cluster flags of interest has been set. These flags include:
-
-* *full* - the cluster is flagged as full and cannot service writes
-* *pauserd*, *pausewr* - paused reads or writes
-* *noup* - OSDs are not allowed to start
-* *nodown* - OSD failure reports are being ignored, such that the
- monitors will not mark OSDs `down`
-* *noin* - OSDs that were previously marked `out` will not be marked
- back `in` when they start
-* *noout* - down OSDs will not automatically be marked out after the
- configured interval
-* *nobackfill*, *norecover*, *norebalance* - recovery or data
- rebalancing is suspended
-* *noscrub*, *nodeep_scrub* - scrubbing is disabled
-* *notieragent* - cache tiering activity is suspended
-
-With the exception of *full*, these flags can be set or cleared with::
-
- ceph osd set <flag>
- ceph osd unset <flag>
-
-OSD_FLAGS
-_________
-
-One or more OSDs has a per-OSD flag of interest set. These flags include:
-
-* *noup*: OSD is not allowed to start
-* *nodown*: failure reports for this OSD will be ignored
-* *noin*: if this OSD was previously marked `out` automatically
- after a failure, it will not be marked in when it stats
-* *noout*: if this OSD is down it will not automatically be marked
- `out` after the configured interval
-
-Per-OSD flags can be set and cleared with::
-
- ceph osd add-<flag> <osd-id>
- ceph osd rm-<flag> <osd-id>
-
-For example, ::
-
- ceph osd rm-nodown osd.123
-
-OLD_CRUSH_TUNABLES
-__________________
-
-The CRUSH map is using very old settings and should be updated. The
-oldest tunables that can be used (i.e., the oldest client version that
-can connect to the cluster) without triggering this health warning is
-determined by the ``mon_crush_min_required_version`` config option.
-See :doc:`/rados/operations/crush-map/#tunables` for more information.
-
-OLD_CRUSH_STRAW_CALC_VERSION
-____________________________
-
-The CRUSH map is using an older, non-optimal method for calculating
-intermediate weight values for ``straw`` buckets.
-
-The CRUSH map should be updated to use the newer method
-(``straw_calc_version=1``). See
-:doc:`/rados/operations/crush-map/#tunables` for more information.
-
-CACHE_POOL_NO_HIT_SET
-_____________________
-
-One or more cache pools is not configured with a *hit set* to track
-utilization, which will prevent the tiering agent from identifying
-cold objects to flush and evict from the cache.
-
-Hit sets can be configured on the cache pool with::
-
- ceph osd pool set <poolname> hit_set_type <type>
- ceph osd pool set <poolname> hit_set_period <period-in-seconds>
- ceph osd pool set <poolname> hit_set_count <number-of-hitsets>
- ceph osd pool set <poolname> hit_set_fpp <target-false-positive-rate>
-
-OSD_NO_SORTBITWISE
-__________________
-
-No pre-luminous v12.y.z OSDs are running but the ``sortbitwise`` flag has not
-been set.
-
-The ``sortbitwise`` flag must be set before luminous v12.y.z or newer
-OSDs can start. You can safely set the flag with::
-
- ceph osd set sortbitwise
-
-POOL_FULL
-_________
-
-One or more pools has reached its quota and is no longer allowing writes.
-
-Pool quotas and utilization can be seen with::
-
- ceph df detail
-
-You can either raise the pool quota with::
-
- ceph osd pool set-quota <poolname> max_objects <num-objects>
- ceph osd pool set-quota <poolname> max_bytes <num-bytes>
-
-or delete some existing data to reduce utilization.
-
-
-Data health (pools & placement groups)
---------------------------------------
-
-PG_AVAILABILITY
-_______________
-
-Data availability is reduced, meaning that the cluster is unable to
-service potential read or write requests for some data in the cluster.
-Specifically, one or more PGs is in a state that does not allow IO
-requests to be serviced. Problematic PG states include *peering*,
-*stale*, *incomplete*, and the lack of *active* (if those conditions do not clear
-quickly).
-
-Detailed information about which PGs are affected is available from::
-
- ceph health detail
-
-In most cases the root cause is that one or more OSDs is currently
-down; see the dicussion for ``OSD_DOWN`` above.
-
-The state of specific problematic PGs can be queried with::
-
- ceph tell <pgid> query
-
-PG_DEGRADED
-___________
-
-Data redundancy is reduced for some data, meaning the cluster does not
-have the desired number of replicas for all data (for replicated
-pools) or erasure code fragments (for erasure coded pools).
-Specifically, one or more PGs:
-
-* has the *degraded* or *undersized* flag set, meaning there are not
- enough instances of that placement group in the cluster;
-* has not had the *clean* flag set for some time.
-
-Detailed information about which PGs are affected is available from::
-
- ceph health detail
-
-In most cases the root cause is that one or more OSDs is currently
-down; see the dicussion for ``OSD_DOWN`` above.
-
-The state of specific problematic PGs can be queried with::
-
- ceph tell <pgid> query
-
-
-PG_DEGRADED_FULL
-________________
-
-Data redundancy may be reduced or at risk for some data due to a lack
-of free space in the cluster. Specifically, one or more PGs has the
-*backfill_toofull* or *recovery_toofull* flag set, meaning that the
-cluster is unable to migrate or recover data because one or more OSDs
-is above the *backfillfull* threshold.
-
-See the discussion for *OSD_BACKFILLFULL* or *OSD_FULL* above for
-steps to resolve this condition.
-
-PG_DAMAGED
-__________
-
-Data scrubbing has discovered some problems with data consistency in
-the cluster. Specifically, one or more PGs has the *inconsistent* or
-*snaptrim_error* flag is set, indicating an earlier scrub operation
-found a problem, or that the *repair* flag is set, meaning a repair
-for such an inconsistency is currently in progress.
-
-See :doc:`pg-repair` for more information.
-
-OSD_SCRUB_ERRORS
-________________
-
-Recent OSD scrubs have uncovered inconsistencies. This error is generally
-paired with *PG_DAMANGED* (see above).
-
-See :doc:`pg-repair` for more information.
-
-CACHE_POOL_NEAR_FULL
-____________________
-
-A cache tier pool is nearly full. Full in this context is determined
-by the ``target_max_bytes`` and ``target_max_objects`` properties on
-the cache pool. Once the pool reaches the target threshold, write
-requests to the pool may block while data is flushed and evicted
-from the cache, a state that normally leads to very high latencies and
-poor performance.
-
-The cache pool target size can be adjusted with::
-
- ceph osd pool set <cache-pool-name> target_max_bytes <bytes>
- ceph osd pool set <cache-pool-name> target_max_objects <objects>
-
-Normal cache flush and evict activity may also be throttled due to reduced
-availability or performance of the base tier, or overall cluster load.
-
-TOO_FEW_PGS
-___________
-
-The number of PGs in use in the cluster is below the configurable
-threshold of ``mon_pg_warn_min_per_osd`` PGs per OSD. This can lead
-to suboptimizal distribution and balance of data across the OSDs in
-the cluster, and similar reduce overall performance.
-
-This may be an expected condition if data pools have not yet been
-created.
-
-The PG count for existing pools can be increased or new pools can be
-created. Please refer to
-:doc:`placement-groups#Choosing-the-number-of-Placement-Groups` for
-more information.
-
-TOO_MANY_PGS
-____________
-
-The number of PGs in use in the cluster is above the configurable
-threshold of ``mon_max_pg_per_osd`` PGs per OSD. If this threshold is
-exceed the cluster will not allow new pools to be created, pool `pg_num` to
-be increased, or pool replication to be increased (any of which would lead to
-more PGs in the cluster). A large number of PGs can lead
-to higher memory utilization for OSD daemons, slower peering after
-cluster state changes (like OSD restarts, additions, or removals), and
-higher load on the Manager and Monitor daemons.
-
-The simplest way to mitigate the problem is to increase the number of
-OSDs in the cluster by adding more hardware. Note that the OSD count
-used for the purposes of this health check is the number of "in" OSDs,
-so marking "out" OSDs "in" (if there are any) can also help::
-
- ceph osd in <osd id(s)>
-
-Please refer to
-:doc:`placement-groups#Choosing-the-number-of-Placement-Groups` for
-more information.
-
-SMALLER_PGP_NUM
-_______________
-
-One or more pools has a ``pgp_num`` value less than ``pg_num``. This
-is normally an indication that the PG count was increased without
-also increasing the placement behavior.
-
-This is sometimes done deliberately to separate out the `split` step
-when the PG count is adjusted from the data migration that is needed
-when ``pgp_num`` is changed.
-
-This is normally resolved by setting ``pgp_num`` to match ``pg_num``,
-triggering the data migration, with::
-
- ceph osd pool set <pool> pgp_num <pg-num-value>
-
-MANY_OBJECTS_PER_PG
-___________________
-
-One or more pools has an average number of objects per PG that is
-significantly higher than the overall cluster average. The specific
-threshold is controlled by the ``mon_pg_warn_max_object_skew``
-configuration value.
-
-This is usually an indication that the pool(s) containing most of the
-data in the cluster have too few PGs, and/or that other pools that do
-not contain as much data have too many PGs. See the discussion of
-*TOO_MANY_PGS* above.
-
-The threshold can be raised to silence the health warning by adjusting
-the ``mon_pg_warn_max_object_skew`` config option on the monitors.
-
-POOL_APP_NOT_ENABLED
-____________________
-
-A pool exists that contains one or more objects but has not been
-tagged for use by a particular application.
-
-Resolve this warning by labeling the pool for use by an application. For
-example, if the pool is used by RBD,::
-
- rbd pool init <poolname>
-
-If the pool is being used by a custom application 'foo', you can also label
-via the low-level command::
-
- ceph osd pool application enable foo
-
-For more information, see :doc:`pools.rst#associate-pool-to-application`.
-
-POOL_FULL
-_________
-
-One or more pools has reached (or is very close to reaching) its
-quota. The threshold to trigger this error condition is controlled by
-the ``mon_pool_quota_crit_threshold`` configuration option.
-
-Pool quotas can be adjusted up or down (or removed) with::
-
- ceph osd pool set-quota <pool> max_bytes <bytes>
- ceph osd pool set-quota <pool> max_objects <objects>
-
-Setting the quota value to 0 will disable the quota.
-
-POOL_NEAR_FULL
-______________
-
-One or more pools is approaching is quota. The threshold to trigger
-this warning condition is controlled by the
-``mon_pool_quota_warn_threshold`` configuration option.
-
-Pool quotas can be adjusted up or down (or removed) with::
-
- ceph osd pool set-quota <pool> max_bytes <bytes>
- ceph osd pool set-quota <pool> max_objects <objects>
-
-Setting the quota value to 0 will disable the quota.
-
-OBJECT_MISPLACED
-________________
-
-One or more objects in the cluster is not stored on the node the
-cluster would like it to be stored on. This is an indication that
-data migration due to some recent cluster change has not yet completed.
-
-Misplaced data is not a dangerous condition in and of itself; data
-consistency is never at risk, and old copies of objects are never
-removed until the desired number of new copies (in the desired
-locations) are present.
-
-OBJECT_UNFOUND
-______________
-
-One or more objects in the cluster cannot be found. Specifically, the
-OSDs know that a new or updated copy of an object should exist, but a
-copy of that version of the object has not been found on OSDs that are
-currently online.
-
-Read or write requests to unfound objects will block.
-
-Ideally, a down OSD can be brought back online that has the more
-recent copy of the unfound object. Candidate OSDs can be identified from the
-peering state for the PG(s) responsible for the unfound object::
-
- ceph tell <pgid> query
-
-If the latest copy of the object is not available, the cluster can be
-told to roll back to a previous version of the object. See
-:doc:`troubleshooting-pg#Unfound-objects` for more information.
-
-REQUEST_SLOW
-____________
-
-One or more OSD requests is taking a long time to process. This can
-be an indication of extreme load, a slow storage device, or a software
-bug.
-
-The request queue on the OSD(s) in question can be queried with the
-following command, executed from the OSD host::
-
- ceph daemon osd.<id> ops
-
-A summary of the slowest recent requests can be seen with::
-
- ceph daemon osd.<id> dump_historic_ops
-
-The location of an OSD can be found with::
-
- ceph osd find osd.<id>
-
-REQUEST_STUCK
-_____________
-
-One or more OSD requests has been blocked for an extremely long time.
-This is an indication that either the cluster has been unhealthy for
-an extended period of time (e.g., not enough running OSDs) or there is
-some internal problem with the OSD. See the dicussion of
-*REQUEST_SLOW* above.
-
-PG_NOT_SCRUBBED
-_______________
-
-One or more PGs has not been scrubbed recently. PGs are normally
-scrubbed every ``mon_scrub_interval`` seconds, and this warning
-triggers when ``mon_warn_not_scrubbed`` such intervals have elapsed
-without a scrub.
-
-PGs will not scrub if they are not flagged as *clean*, which may
-happen if they are misplaced or degraded (see *PG_AVAILABILITY* and
-*PG_DEGRADED* above).
-
-You can manually initiate a scrub of a clean PG with::
-
- ceph pg scrub <pgid>
-
-PG_NOT_DEEP_SCRUBBED
-____________________
-
-One or more PGs has not been deep scrubbed recently. PGs are normally
-scrubbed every ``osd_deep_mon_scrub_interval`` seconds, and this warning
-triggers when ``mon_warn_not_deep_scrubbed`` such intervals have elapsed
-without a scrub.
-
-PGs will not (deep) scrub if they are not flagged as *clean*, which may
-happen if they are misplaced or degraded (see *PG_AVAILABILITY* and
-*PG_DEGRADED* above).
-
-You can manually initiate a scrub of a clean PG with::
-
- ceph pg deep-scrub <pgid>
diff --git a/src/ceph/doc/rados/operations/index.rst b/src/ceph/doc/rados/operations/index.rst
deleted file mode 100644
index aacf764..0000000
--- a/src/ceph/doc/rados/operations/index.rst
+++ /dev/null
@@ -1,90 +0,0 @@
-====================
- Cluster Operations
-====================
-
-.. raw:: html
-
- <table><colgroup><col width="50%"><col width="50%"></colgroup><tbody valign="top"><tr><td><h3>High-level Operations</h3>
-
-High-level cluster operations consist primarily of starting, stopping, and
-restarting a cluster with the ``ceph`` service; checking the cluster's health;
-and, monitoring an operating cluster.
-
-.. toctree::
- :maxdepth: 1
-
- operating
- health-checks
- monitoring
- monitoring-osd-pg
- user-management
-
-.. raw:: html
-
- </td><td><h3>Data Placement</h3>
-
-Once you have your cluster up and running, you may begin working with data
-placement. Ceph supports petabyte-scale data storage clusters, with storage
-pools and placement groups that distribute data across the cluster using Ceph's
-CRUSH algorithm.
-
-.. toctree::
- :maxdepth: 1
-
- data-placement
- pools
- erasure-code
- cache-tiering
- placement-groups
- upmap
- crush-map
- crush-map-edits
-
-
-
-.. raw:: html
-
- </td></tr><tr><td><h3>Low-level Operations</h3>
-
-Low-level cluster operations consist of starting, stopping, and restarting a
-particular daemon within a cluster; changing the settings of a particular
-daemon or subsystem; and, adding a daemon to the cluster or removing a daemon
-from the cluster. The most common use cases for low-level operations include
-growing or shrinking the Ceph cluster and replacing legacy or failed hardware
-with new hardware.
-
-.. toctree::
- :maxdepth: 1
-
- add-or-rm-osds
- add-or-rm-mons
- Command Reference <control>
-
-
-
-.. raw:: html
-
- </td><td><h3>Troubleshooting</h3>
-
-Ceph is still on the leading edge, so you may encounter situations that require
-you to evaluate your Ceph configuration and modify your logging and debugging
-settings to identify and remedy issues you are encountering with your cluster.
-
-.. toctree::
- :maxdepth: 1
-
- ../troubleshooting/community
- ../troubleshooting/troubleshooting-mon
- ../troubleshooting/troubleshooting-osd
- ../troubleshooting/troubleshooting-pg
- ../troubleshooting/log-and-debug
- ../troubleshooting/cpu-profiling
- ../troubleshooting/memory-profiling
-
-
-
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
diff --git a/src/ceph/doc/rados/operations/monitoring-osd-pg.rst b/src/ceph/doc/rados/operations/monitoring-osd-pg.rst
deleted file mode 100644
index 0107e34..0000000
--- a/src/ceph/doc/rados/operations/monitoring-osd-pg.rst
+++ /dev/null
@@ -1,617 +0,0 @@
-=========================
- Monitoring OSDs and PGs
-=========================
-
-High availability and high reliability require a fault-tolerant approach to
-managing hardware and software issues. Ceph has no single point-of-failure, and
-can service requests for data in a "degraded" mode. Ceph's `data placement`_
-introduces a layer of indirection to ensure that data doesn't bind directly to
-particular OSD addresses. This means that tracking down system faults requires
-finding the `placement group`_ and the underlying OSDs at root of the problem.
-
-.. tip:: A fault in one part of the cluster may prevent you from accessing a
- particular object, but that doesn't mean that you cannot access other objects.
- When you run into a fault, don't panic. Just follow the steps for monitoring
- your OSDs and placement groups. Then, begin troubleshooting.
-
-Ceph is generally self-repairing. However, when problems persist, monitoring
-OSDs and placement groups will help you identify the problem.
-
-
-Monitoring OSDs
-===============
-
-An OSD's status is either in the cluster (``in``) or out of the cluster
-(``out``); and, it is either up and running (``up``), or it is down and not
-running (``down``). If an OSD is ``up``, it may be either ``in`` the cluster
-(you can read and write data) or it is ``out`` of the cluster. If it was
-``in`` the cluster and recently moved ``out`` of the cluster, Ceph will migrate
-placement groups to other OSDs. If an OSD is ``out`` of the cluster, CRUSH will
-not assign placement groups to the OSD. If an OSD is ``down``, it should also be
-``out``.
-
-.. note:: If an OSD is ``down`` and ``in``, there is a problem and the cluster
- will not be in a healthy state.
-
-.. ditaa:: +----------------+ +----------------+
- | | | |
- | OSD #n In | | OSD #n Up |
- | | | |
- +----------------+ +----------------+
- ^ ^
- | |
- | |
- v v
- +----------------+ +----------------+
- | | | |
- | OSD #n Out | | OSD #n Down |
- | | | |
- +----------------+ +----------------+
-
-If you execute a command such as ``ceph health``, ``ceph -s`` or ``ceph -w``,
-you may notice that the cluster does not always echo back ``HEALTH OK``. Don't
-panic. With respect to OSDs, you should expect that the cluster will **NOT**
-echo ``HEALTH OK`` in a few expected circumstances:
-
-#. You haven't started the cluster yet (it won't respond).
-#. You have just started or restarted the cluster and it's not ready yet,
- because the placement groups are getting created and the OSDs are in
- the process of peering.
-#. You just added or removed an OSD.
-#. You just have modified your cluster map.
-
-An important aspect of monitoring OSDs is to ensure that when the cluster
-is up and running that all OSDs that are ``in`` the cluster are ``up`` and
-running, too. To see if all OSDs are running, execute::
-
- ceph osd stat
-
-The result should tell you the map epoch (eNNNN), the total number of OSDs (x),
-how many are ``up`` (y) and how many are ``in`` (z). ::
-
- eNNNN: x osds: y up, z in
-
-If the number of OSDs that are ``in`` the cluster is more than the number of
-OSDs that are ``up``, execute the following command to identify the ``ceph-osd``
-daemons that are not running::
-
- ceph osd tree
-
-::
-
- dumped osdmap tree epoch 1
- # id weight type name up/down reweight
- -1 2 pool openstack
- -3 2 rack dell-2950-rack-A
- -2 2 host dell-2950-A1
- 0 1 osd.0 up 1
- 1 1 osd.1 down 1
-
-
-.. tip:: The ability to search through a well-designed CRUSH hierarchy may help
- you troubleshoot your cluster by identifying the physcial locations faster.
-
-If an OSD is ``down``, start it::
-
- sudo systemctl start ceph-osd@1
-
-See `OSD Not Running`_ for problems associated with OSDs that stopped, or won't
-restart.
-
-
-PG Sets
-=======
-
-When CRUSH assigns placement groups to OSDs, it looks at the number of replicas
-for the pool and assigns the placement group to OSDs such that each replica of
-the placement group gets assigned to a different OSD. For example, if the pool
-requires three replicas of a placement group, CRUSH may assign them to
-``osd.1``, ``osd.2`` and ``osd.3`` respectively. CRUSH actually seeks a
-pseudo-random placement that will take into account failure domains you set in
-your `CRUSH map`_, so you will rarely see placement groups assigned to nearest
-neighbor OSDs in a large cluster. We refer to the set of OSDs that should
-contain the replicas of a particular placement group as the **Acting Set**. In
-some cases, an OSD in the Acting Set is ``down`` or otherwise not able to
-service requests for objects in the placement group. When these situations
-arise, don't panic. Common examples include:
-
-- You added or removed an OSD. Then, CRUSH reassigned the placement group to
- other OSDs--thereby changing the composition of the Acting Set and spawning
- the migration of data with a "backfill" process.
-- An OSD was ``down``, was restarted, and is now ``recovering``.
-- An OSD in the Acting Set is ``down`` or unable to service requests,
- and another OSD has temporarily assumed its duties.
-
-Ceph processes a client request using the **Up Set**, which is the set of OSDs
-that will actually handle the requests. In most cases, the Up Set and the Acting
-Set are virtually identical. When they are not, it may indicate that Ceph is
-migrating data, an OSD is recovering, or that there is a problem (i.e., Ceph
-usually echoes a "HEALTH WARN" state with a "stuck stale" message in such
-scenarios).
-
-To retrieve a list of placement groups, execute::
-
- ceph pg dump
-
-To view which OSDs are within the Acting Set or the Up Set for a given placement
-group, execute::
-
- ceph pg map {pg-num}
-
-The result should tell you the osdmap epoch (eNNN), the placement group number
-({pg-num}), the OSDs in the Up Set (up[]), and the OSDs in the acting set
-(acting[]). ::
-
- osdmap eNNN pg {pg-num} -> up [0,1,2] acting [0,1,2]
-
-.. note:: If the Up Set and Acting Set do not match, this may be an indicator
- that the cluster rebalancing itself or of a potential problem with
- the cluster.
-
-
-Peering
-=======
-
-Before you can write data to a placement group, it must be in an ``active``
-state, and it **should** be in a ``clean`` state. For Ceph to determine the
-current state of a placement group, the primary OSD of the placement group
-(i.e., the first OSD in the acting set), peers with the secondary and tertiary
-OSDs to establish agreement on the current state of the placement group
-(assuming a pool with 3 replicas of the PG).
-
-
-.. ditaa:: +---------+ +---------+ +-------+
- | OSD 1 | | OSD 2 | | OSD 3 |
- +---------+ +---------+ +-------+
- | | |
- | Request To | |
- | Peer | |
- |-------------->| |
- |<--------------| |
- | Peering |
- | |
- | Request To |
- | Peer |
- |----------------------------->|
- |<-----------------------------|
- | Peering |
-
-The OSDs also report their status to the monitor. See `Configuring Monitor/OSD
-Interaction`_ for details. To troubleshoot peering issues, see `Peering
-Failure`_.
-
-
-Monitoring Placement Group States
-=================================
-
-If you execute a command such as ``ceph health``, ``ceph -s`` or ``ceph -w``,
-you may notice that the cluster does not always echo back ``HEALTH OK``. After
-you check to see if the OSDs are running, you should also check placement group
-states. You should expect that the cluster will **NOT** echo ``HEALTH OK`` in a
-number of placement group peering-related circumstances:
-
-#. You have just created a pool and placement groups haven't peered yet.
-#. The placement groups are recovering.
-#. You have just added an OSD to or removed an OSD from the cluster.
-#. You have just modified your CRUSH map and your placement groups are migrating.
-#. There is inconsistent data in different replicas of a placement group.
-#. Ceph is scrubbing a placement group's replicas.
-#. Ceph doesn't have enough storage capacity to complete backfilling operations.
-
-If one of the foregoing circumstances causes Ceph to echo ``HEALTH WARN``, don't
-panic. In many cases, the cluster will recover on its own. In some cases, you
-may need to take action. An important aspect of monitoring placement groups is
-to ensure that when the cluster is up and running that all placement groups are
-``active``, and preferably in the ``clean`` state. To see the status of all
-placement groups, execute::
-
- ceph pg stat
-
-The result should tell you the placement group map version (vNNNNNN), the total
-number of placement groups (x), and how many placement groups are in a
-particular state such as ``active+clean`` (y). ::
-
- vNNNNNN: x pgs: y active+clean; z bytes data, aa MB used, bb GB / cc GB avail
-
-.. note:: It is common for Ceph to report multiple states for placement groups.
-
-In addition to the placement group states, Ceph will also echo back the amount
-of data used (aa), the amount of storage capacity remaining (bb), and the total
-storage capacity for the placement group. These numbers can be important in a
-few cases:
-
-- You are reaching your ``near full ratio`` or ``full ratio``.
-- Your data is not getting distributed across the cluster due to an
- error in your CRUSH configuration.
-
-
-.. topic:: Placement Group IDs
-
- Placement group IDs consist of the pool number (not pool name) followed
- by a period (.) and the placement group ID--a hexadecimal number. You
- can view pool numbers and their names from the output of ``ceph osd
- lspools``. For example, the default pool ``rbd`` corresponds to
- pool number ``0``. A fully qualified placement group ID has the
- following form::
-
- {pool-num}.{pg-id}
-
- And it typically looks like this::
-
- 0.1f
-
-
-To retrieve a list of placement groups, execute the following::
-
- ceph pg dump
-
-You can also format the output in JSON format and save it to a file::
-
- ceph pg dump -o {filename} --format=json
-
-To query a particular placement group, execute the following::
-
- ceph pg {poolnum}.{pg-id} query
-
-Ceph will output the query in JSON format.
-
-.. code-block:: javascript
-
- {
- "state": "active+clean",
- "up": [
- 1,
- 0
- ],
- "acting": [
- 1,
- 0
- ],
- "info": {
- "pgid": "1.e",
- "last_update": "4'1",
- "last_complete": "4'1",
- "log_tail": "0'0",
- "last_backfill": "MAX",
- "purged_snaps": "[]",
- "history": {
- "epoch_created": 1,
- "last_epoch_started": 537,
- "last_epoch_clean": 537,
- "last_epoch_split": 534,
- "same_up_since": 536,
- "same_interval_since": 536,
- "same_primary_since": 536,
- "last_scrub": "4'1",
- "last_scrub_stamp": "2013-01-25 10:12:23.828174"
- },
- "stats": {
- "version": "4'1",
- "reported": "536'782",
- "state": "active+clean",
- "last_fresh": "2013-01-25 10:12:23.828271",
- "last_change": "2013-01-25 10:12:23.828271",
- "last_active": "2013-01-25 10:12:23.828271",
- "last_clean": "2013-01-25 10:12:23.828271",
- "last_unstale": "2013-01-25 10:12:23.828271",
- "mapping_epoch": 535,
- "log_start": "0'0",
- "ondisk_log_start": "0'0",
- "created": 1,
- "last_epoch_clean": 1,
- "parent": "0.0",
- "parent_split_bits": 0,
- "last_scrub": "4'1",
- "last_scrub_stamp": "2013-01-25 10:12:23.828174",
- "log_size": 128,
- "ondisk_log_size": 128,
- "stat_sum": {
- "num_bytes": 205,
- "num_objects": 1,
- "num_object_clones": 0,
- "num_object_copies": 0,
- "num_objects_missing_on_primary": 0,
- "num_objects_degraded": 0,
- "num_objects_unfound": 0,
- "num_read": 1,
- "num_read_kb": 0,
- "num_write": 3,
- "num_write_kb": 1
- },
- "stat_cat_sum": {
-
- },
- "up": [
- 1,
- 0
- ],
- "acting": [
- 1,
- 0
- ]
- },
- "empty": 0,
- "dne": 0,
- "incomplete": 0
- },
- "recovery_state": [
- {
- "name": "Started\/Primary\/Active",
- "enter_time": "2013-01-23 09:35:37.594691",
- "might_have_unfound": [
-
- ],
- "scrub": {
- "scrub_epoch_start": "536",
- "scrub_active": 0,
- "scrub_block_writes": 0,
- "finalizing_scrub": 0,
- "scrub_waiting_on": 0,
- "scrub_waiting_on_whom": [
-
- ]
- }
- },
- {
- "name": "Started",
- "enter_time": "2013-01-23 09:35:31.581160"
- }
- ]
- }
-
-
-
-The following subsections describe common states in greater detail.
-
-Creating
---------
-
-When you create a pool, it will create the number of placement groups you
-specified. Ceph will echo ``creating`` when it is creating one or more
-placement groups. Once they are created, the OSDs that are part of a placement
-group's Acting Set will peer. Once peering is complete, the placement group
-status should be ``active+clean``, which means a Ceph client can begin writing
-to the placement group.
-
-.. ditaa::
-
- /-----------\ /-----------\ /-----------\
- | Creating |------>| Peering |------>| Active |
- \-----------/ \-----------/ \-----------/
-
-Peering
--------
-
-When Ceph is Peering a placement group, Ceph is bringing the OSDs that
-store the replicas of the placement group into **agreement about the state**
-of the objects and metadata in the placement group. When Ceph completes peering,
-this means that the OSDs that store the placement group agree about the current
-state of the placement group. However, completion of the peering process does
-**NOT** mean that each replica has the latest contents.
-
-.. topic:: Authoratative History
-
- Ceph will **NOT** acknowledge a write operation to a client, until
- all OSDs of the acting set persist the write operation. This practice
- ensures that at least one member of the acting set will have a record
- of every acknowledged write operation since the last successful
- peering operation.
-
- With an accurate record of each acknowledged write operation, Ceph can
- construct and disseminate a new authoritative history of the placement
- group--a complete, and fully ordered set of operations that, if performed,
- would bring an OSD’s copy of a placement group up to date.
-
-
-Active
-------
-
-Once Ceph completes the peering process, a placement group may become
-``active``. The ``active`` state means that the data in the placement group is
-generally available in the primary placement group and the replicas for read
-and write operations.
-
-
-Clean
------
-
-When a placement group is in the ``clean`` state, the primary OSD and the
-replica OSDs have successfully peered and there are no stray replicas for the
-placement group. Ceph replicated all objects in the placement group the correct
-number of times.
-
-
-Degraded
---------
-
-When a client writes an object to the primary OSD, the primary OSD is
-responsible for writing the replicas to the replica OSDs. After the primary OSD
-writes the object to storage, the placement group will remain in a ``degraded``
-state until the primary OSD has received an acknowledgement from the replica
-OSDs that Ceph created the replica objects successfully.
-
-The reason a placement group can be ``active+degraded`` is that an OSD may be
-``active`` even though it doesn't hold all of the objects yet. If an OSD goes
-``down``, Ceph marks each placement group assigned to the OSD as ``degraded``.
-The OSDs must peer again when the OSD comes back online. However, a client can
-still write a new object to a ``degraded`` placement group if it is ``active``.
-
-If an OSD is ``down`` and the ``degraded`` condition persists, Ceph may mark the
-``down`` OSD as ``out`` of the cluster and remap the data from the ``down`` OSD
-to another OSD. The time between being marked ``down`` and being marked ``out``
-is controlled by ``mon osd down out interval``, which is set to ``600`` seconds
-by default.
-
-A placement group can also be ``degraded``, because Ceph cannot find one or more
-objects that Ceph thinks should be in the placement group. While you cannot
-read or write to unfound objects, you can still access all of the other objects
-in the ``degraded`` placement group.
-
-
-Recovering
-----------
-
-Ceph was designed for fault-tolerance at a scale where hardware and software
-problems are ongoing. When an OSD goes ``down``, its contents may fall behind
-the current state of other replicas in the placement groups. When the OSD is
-back ``up``, the contents of the placement groups must be updated to reflect the
-current state. During that time period, the OSD may reflect a ``recovering``
-state.
-
-Recovery is not always trivial, because a hardware failure might cause a
-cascading failure of multiple OSDs. For example, a network switch for a rack or
-cabinet may fail, which can cause the OSDs of a number of host machines to fall
-behind the current state of the cluster. Each one of the OSDs must recover once
-the fault is resolved.
-
-Ceph provides a number of settings to balance the resource contention between
-new service requests and the need to recover data objects and restore the
-placement groups to the current state. The ``osd recovery delay start`` setting
-allows an OSD to restart, re-peer and even process some replay requests before
-starting the recovery process. The ``osd
-recovery thread timeout`` sets a thread timeout, because multiple OSDs may fail,
-restart and re-peer at staggered rates. The ``osd recovery max active`` setting
-limits the number of recovery requests an OSD will entertain simultaneously to
-prevent the OSD from failing to serve . The ``osd recovery max chunk`` setting
-limits the size of the recovered data chunks to prevent network congestion.
-
-
-Back Filling
-------------
-
-When a new OSD joins the cluster, CRUSH will reassign placement groups from OSDs
-in the cluster to the newly added OSD. Forcing the new OSD to accept the
-reassigned placement groups immediately can put excessive load on the new OSD.
-Back filling the OSD with the placement groups allows this process to begin in
-the background. Once backfilling is complete, the new OSD will begin serving
-requests when it is ready.
-
-During the backfill operations, you may see one of several states:
-``backfill_wait`` indicates that a backfill operation is pending, but is not
-underway yet; ``backfill`` indicates that a backfill operation is underway;
-and, ``backfill_too_full`` indicates that a backfill operation was requested,
-but couldn't be completed due to insufficient storage capacity. When a
-placement group cannot be backfilled, it may be considered ``incomplete``.
-
-Ceph provides a number of settings to manage the load spike associated with
-reassigning placement groups to an OSD (especially a new OSD). By default,
-``osd_max_backfills`` sets the maximum number of concurrent backfills to or from
-an OSD to 10. The ``backfill full ratio`` enables an OSD to refuse a
-backfill request if the OSD is approaching its full ratio (90%, by default) and
-change with ``ceph osd set-backfillfull-ratio`` comand.
-If an OSD refuses a backfill request, the ``osd backfill retry interval``
-enables an OSD to retry the request (after 10 seconds, by default). OSDs can
-also set ``osd backfill scan min`` and ``osd backfill scan max`` to manage scan
-intervals (64 and 512, by default).
-
-
-Remapped
---------
-
-When the Acting Set that services a placement group changes, the data migrates
-from the old acting set to the new acting set. It may take some time for a new
-primary OSD to service requests. So it may ask the old primary to continue to
-service requests until the placement group migration is complete. Once data
-migration completes, the mapping uses the primary OSD of the new acting set.
-
-
-Stale
------
-
-While Ceph uses heartbeats to ensure that hosts and daemons are running, the
-``ceph-osd`` daemons may also get into a ``stuck`` state where they are not
-reporting statistics in a timely manner (e.g., a temporary network fault). By
-default, OSD daemons report their placement group, up thru, boot and failure
-statistics every half second (i.e., ``0.5``), which is more frequent than the
-heartbeat thresholds. If the **Primary OSD** of a placement group's acting set
-fails to report to the monitor or if other OSDs have reported the primary OSD
-``down``, the monitors will mark the placement group ``stale``.
-
-When you start your cluster, it is common to see the ``stale`` state until
-the peering process completes. After your cluster has been running for awhile,
-seeing placement groups in the ``stale`` state indicates that the primary OSD
-for those placement groups is ``down`` or not reporting placement group statistics
-to the monitor.
-
-
-Identifying Troubled PGs
-========================
-
-As previously noted, a placement group is not necessarily problematic just
-because its state is not ``active+clean``. Generally, Ceph's ability to self
-repair may not be working when placement groups get stuck. The stuck states
-include:
-
-- **Unclean**: Placement groups contain objects that are not replicated the
- desired number of times. They should be recovering.
-- **Inactive**: Placement groups cannot process reads or writes because they
- are waiting for an OSD with the most up-to-date data to come back ``up``.
-- **Stale**: Placement groups are in an unknown state, because the OSDs that
- host them have not reported to the monitor cluster in a while (configured
- by ``mon osd report timeout``).
-
-To identify stuck placement groups, execute the following::
-
- ceph pg dump_stuck [unclean|inactive|stale|undersized|degraded]
-
-See `Placement Group Subsystem`_ for additional details. To troubleshoot
-stuck placement groups, see `Troubleshooting PG Errors`_.
-
-
-Finding an Object Location
-==========================
-
-To store object data in the Ceph Object Store, a Ceph client must:
-
-#. Set an object name
-#. Specify a `pool`_
-
-The Ceph client retrieves the latest cluster map and the CRUSH algorithm
-calculates how to map the object to a `placement group`_, and then calculates
-how to assign the placement group to an OSD dynamically. To find the object
-location, all you need is the object name and the pool name. For example::
-
- ceph osd map {poolname} {object-name}
-
-.. topic:: Exercise: Locate an Object
-
- As an exercise, lets create an object. Specify an object name, a path to a
- test file containing some object data and a pool name using the
- ``rados put`` command on the command line. For example::
-
- rados put {object-name} {file-path} --pool=data
- rados put test-object-1 testfile.txt --pool=data
-
- To verify that the Ceph Object Store stored the object, execute the following::
-
- rados -p data ls
-
- Now, identify the object location::
-
- ceph osd map {pool-name} {object-name}
- ceph osd map data test-object-1
-
- Ceph should output the object's location. For example::
-
- osdmap e537 pool 'data' (0) object 'test-object-1' -> pg 0.d1743484 (0.4) -> up [1,0] acting [1,0]
-
- To remove the test object, simply delete it using the ``rados rm`` command.
- For example::
-
- rados rm test-object-1 --pool=data
-
-
-As the cluster evolves, the object location may change dynamically. One benefit
-of Ceph's dynamic rebalancing is that Ceph relieves you from having to perform
-the migration manually. See the `Architecture`_ section for details.
-
-.. _data placement: ../data-placement
-.. _pool: ../pools
-.. _placement group: ../placement-groups
-.. _Architecture: ../../../architecture
-.. _OSD Not Running: ../../troubleshooting/troubleshooting-osd#osd-not-running
-.. _Troubleshooting PG Errors: ../../troubleshooting/troubleshooting-pg#troubleshooting-pg-errors
-.. _Peering Failure: ../../troubleshooting/troubleshooting-pg#failures-osd-peering
-.. _CRUSH map: ../crush-map
-.. _Configuring Monitor/OSD Interaction: ../../configuration/mon-osd-interaction/
-.. _Placement Group Subsystem: ../control#placement-group-subsystem
diff --git a/src/ceph/doc/rados/operations/monitoring.rst b/src/ceph/doc/rados/operations/monitoring.rst
deleted file mode 100644
index c291440..0000000
--- a/src/ceph/doc/rados/operations/monitoring.rst
+++ /dev/null
@@ -1,351 +0,0 @@
-======================
- Monitoring a Cluster
-======================
-
-Once you have a running cluster, you may use the ``ceph`` tool to monitor your
-cluster. Monitoring a cluster typically involves checking OSD status, monitor
-status, placement group status and metadata server status.
-
-Using the command line
-======================
-
-Interactive mode
-----------------
-
-To run the ``ceph`` tool in interactive mode, type ``ceph`` at the command line
-with no arguments. For example::
-
- ceph
- ceph> health
- ceph> status
- ceph> quorum_status
- ceph> mon_status
-
-Non-default paths
------------------
-
-If you specified non-default locations for your configuration or keyring,
-you may specify their locations::
-
- ceph -c /path/to/conf -k /path/to/keyring health
-
-Checking a Cluster's Status
-===========================
-
-After you start your cluster, and before you start reading and/or
-writing data, check your cluster's status first.
-
-To check a cluster's status, execute the following::
-
- ceph status
-
-Or::
-
- ceph -s
-
-In interactive mode, type ``status`` and press **Enter**. ::
-
- ceph> status
-
-Ceph will print the cluster status. For example, a tiny Ceph demonstration
-cluster with one of each service may print the following:
-
-::
-
- cluster:
- id: 477e46f1-ae41-4e43-9c8f-72c918ab0a20
- health: HEALTH_OK
-
- services:
- mon: 1 daemons, quorum a
- mgr: x(active)
- mds: 1/1/1 up {0=a=up:active}
- osd: 1 osds: 1 up, 1 in
-
- data:
- pools: 2 pools, 16 pgs
- objects: 21 objects, 2246 bytes
- usage: 546 GB used, 384 GB / 931 GB avail
- pgs: 16 active+clean
-
-
-.. topic:: How Ceph Calculates Data Usage
-
- The ``usage`` value reflects the *actual* amount of raw storage used. The
- ``xxx GB / xxx GB`` value means the amount available (the lesser number)
- of the overall storage capacity of the cluster. The notional number reflects
- the size of the stored data before it is replicated, cloned or snapshotted.
- Therefore, the amount of data actually stored typically exceeds the notional
- amount stored, because Ceph creates replicas of the data and may also use
- storage capacity for cloning and snapshotting.
-
-
-Watching a Cluster
-==================
-
-In addition to local logging by each daemon, Ceph clusters maintain
-a *cluster log* that records high level events about the whole system.
-This is logged to disk on monitor servers (as ``/var/log/ceph/ceph.log`` by
-default), but can also be monitored via the command line.
-
-To follow the cluster log, use the following command
-
-::
-
- ceph -w
-
-Ceph will print the status of the system, followed by each log message as it
-is emitted. For example:
-
-::
-
- cluster:
- id: 477e46f1-ae41-4e43-9c8f-72c918ab0a20
- health: HEALTH_OK
-
- services:
- mon: 1 daemons, quorum a
- mgr: x(active)
- mds: 1/1/1 up {0=a=up:active}
- osd: 1 osds: 1 up, 1 in
-
- data:
- pools: 2 pools, 16 pgs
- objects: 21 objects, 2246 bytes
- usage: 546 GB used, 384 GB / 931 GB avail
- pgs: 16 active+clean
-
-
- 2017-07-24 08:15:11.329298 mon.a mon.0 172.21.9.34:6789/0 23 : cluster [INF] osd.0 172.21.9.34:6806/20527 boot
- 2017-07-24 08:15:14.258143 mon.a mon.0 172.21.9.34:6789/0 39 : cluster [INF] Activating manager daemon x
- 2017-07-24 08:15:15.446025 mon.a mon.0 172.21.9.34:6789/0 47 : cluster [INF] Manager daemon x is now available
-
-
-In addition to using ``ceph -w`` to print log lines as they are emitted,
-use ``ceph log last [n]`` to see the most recent ``n`` lines from the cluster
-log.
-
-Monitoring Health Checks
-========================
-
-Ceph continously runs various *health checks* against its own status. When
-a health check fails, this is reflected in the output of ``ceph status`` (or
-``ceph health``). In addition, messages are sent to the cluster log to
-indicate when a check fails, and when the cluster recovers.
-
-For example, when an OSD goes down, the ``health`` section of the status
-output may be updated as follows:
-
-::
-
- health: HEALTH_WARN
- 1 osds down
- Degraded data redundancy: 21/63 objects degraded (33.333%), 16 pgs unclean, 16 pgs degraded
-
-At this time, cluster log messages are also emitted to record the failure of the
-health checks:
-
-::
-
- 2017-07-25 10:08:58.265945 mon.a mon.0 172.21.9.34:6789/0 91 : cluster [WRN] Health check failed: 1 osds down (OSD_DOWN)
- 2017-07-25 10:09:01.302624 mon.a mon.0 172.21.9.34:6789/0 94 : cluster [WRN] Health check failed: Degraded data redundancy: 21/63 objects degraded (33.333%), 16 pgs unclean, 16 pgs degraded (PG_DEGRADED)
-
-When the OSD comes back online, the cluster log records the cluster's return
-to a health state:
-
-::
-
- 2017-07-25 10:11:11.526841 mon.a mon.0 172.21.9.34:6789/0 109 : cluster [WRN] Health check update: Degraded data redundancy: 2 pgs unclean, 2 pgs degraded, 2 pgs undersized (PG_DEGRADED)
- 2017-07-25 10:11:13.535493 mon.a mon.0 172.21.9.34:6789/0 110 : cluster [INF] Health check cleared: PG_DEGRADED (was: Degraded data redundancy: 2 pgs unclean, 2 pgs degraded, 2 pgs undersized)
- 2017-07-25 10:11:13.535577 mon.a mon.0 172.21.9.34:6789/0 111 : cluster [INF] Cluster is now healthy
-
-
-Detecting configuration issues
-==============================
-
-In addition to the health checks that Ceph continuously runs on its
-own status, there are some configuration issues that may only be detected
-by an external tool.
-
-Use the `ceph-medic`_ tool to run these additional checks on your Ceph
-cluster's configuration.
-
-Checking a Cluster's Usage Stats
-================================
-
-To check a cluster's data usage and data distribution among pools, you can
-use the ``df`` option. It is similar to Linux ``df``. Execute
-the following::
-
- ceph df
-
-The **GLOBAL** section of the output provides an overview of the amount of
-storage your cluster uses for your data.
-
-- **SIZE:** The overall storage capacity of the cluster.
-- **AVAIL:** The amount of free space available in the cluster.
-- **RAW USED:** The amount of raw storage used.
-- **% RAW USED:** The percentage of raw storage used. Use this number in
- conjunction with the ``full ratio`` and ``near full ratio`` to ensure that
- you are not reaching your cluster's capacity. See `Storage Capacity`_ for
- additional details.
-
-The **POOLS** section of the output provides a list of pools and the notional
-usage of each pool. The output from this section **DOES NOT** reflect replicas,
-clones or snapshots. For example, if you store an object with 1MB of data, the
-notional usage will be 1MB, but the actual usage may be 2MB or more depending
-on the number of replicas, clones and snapshots.
-
-- **NAME:** The name of the pool.
-- **ID:** The pool ID.
-- **USED:** The notional amount of data stored in kilobytes, unless the number
- appends **M** for megabytes or **G** for gigabytes.
-- **%USED:** The notional percentage of storage used per pool.
-- **MAX AVAIL:** An estimate of the notional amount of data that can be written
- to this pool.
-- **Objects:** The notional number of objects stored per pool.
-
-.. note:: The numbers in the **POOLS** section are notional. They are not
- inclusive of the number of replicas, shapshots or clones. As a result,
- the sum of the **USED** and **%USED** amounts will not add up to the
- **RAW USED** and **%RAW USED** amounts in the **GLOBAL** section of the
- output.
-
-.. note:: The **MAX AVAIL** value is a complicated function of the
- replication or erasure code used, the CRUSH rule that maps storage
- to devices, the utilization of those devices, and the configured
- mon_osd_full_ratio.
-
-
-
-Checking OSD Status
-===================
-
-You can check OSDs to ensure they are ``up`` and ``in`` by executing::
-
- ceph osd stat
-
-Or::
-
- ceph osd dump
-
-You can also check view OSDs according to their position in the CRUSH map. ::
-
- ceph osd tree
-
-Ceph will print out a CRUSH tree with a host, its OSDs, whether they are up
-and their weight. ::
-
- # id weight type name up/down reweight
- -1 3 pool default
- -3 3 rack mainrack
- -2 3 host osd-host
- 0 1 osd.0 up 1
- 1 1 osd.1 up 1
- 2 1 osd.2 up 1
-
-For a detailed discussion, refer to `Monitoring OSDs and Placement Groups`_.
-
-Checking Monitor Status
-=======================
-
-If your cluster has multiple monitors (likely), you should check the monitor
-quorum status after you start the cluster before reading and/or writing data. A
-quorum must be present when multiple monitors are running. You should also check
-monitor status periodically to ensure that they are running.
-
-To see display the monitor map, execute the following::
-
- ceph mon stat
-
-Or::
-
- ceph mon dump
-
-To check the quorum status for the monitor cluster, execute the following::
-
- ceph quorum_status
-
-Ceph will return the quorum status. For example, a Ceph cluster consisting of
-three monitors may return the following:
-
-.. code-block:: javascript
-
- { "election_epoch": 10,
- "quorum": [
- 0,
- 1,
- 2],
- "monmap": { "epoch": 1,
- "fsid": "444b489c-4f16-4b75-83f0-cb8097468898",
- "modified": "2011-12-12 13:28:27.505520",
- "created": "2011-12-12 13:28:27.505520",
- "mons": [
- { "rank": 0,
- "name": "a",
- "addr": "127.0.0.1:6789\/0"},
- { "rank": 1,
- "name": "b",
- "addr": "127.0.0.1:6790\/0"},
- { "rank": 2,
- "name": "c",
- "addr": "127.0.0.1:6791\/0"}
- ]
- }
- }
-
-Checking MDS Status
-===================
-
-Metadata servers provide metadata services for Ceph FS. Metadata servers have
-two sets of states: ``up | down`` and ``active | inactive``. To ensure your
-metadata servers are ``up`` and ``active``, execute the following::
-
- ceph mds stat
-
-To display details of the metadata cluster, execute the following::
-
- ceph fs dump
-
-
-Checking Placement Group States
-===============================
-
-Placement groups map objects to OSDs. When you monitor your
-placement groups, you will want them to be ``active`` and ``clean``.
-For a detailed discussion, refer to `Monitoring OSDs and Placement Groups`_.
-
-.. _Monitoring OSDs and Placement Groups: ../monitoring-osd-pg
-
-
-Using the Admin Socket
-======================
-
-The Ceph admin socket allows you to query a daemon via a socket interface.
-By default, Ceph sockets reside under ``/var/run/ceph``. To access a daemon
-via the admin socket, login to the host running the daemon and use the
-following command::
-
- ceph daemon {daemon-name}
- ceph daemon {path-to-socket-file}
-
-For example, the following are equivalent::
-
- ceph daemon osd.0 foo
- ceph daemon /var/run/ceph/ceph-osd.0.asok foo
-
-To view the available admin socket commands, execute the following command::
-
- ceph daemon {daemon-name} help
-
-The admin socket command enables you to show and set your configuration at
-runtime. See `Viewing a Configuration at Runtime`_ for details.
-
-Additionally, you can set configuration values at runtime directly (i.e., the
-admin socket bypasses the monitor, unlike ``ceph tell {daemon-type}.{id}
-injectargs``, which relies on the monitor but doesn't require you to login
-directly to the host in question ).
-
-.. _Viewing a Configuration at Runtime: ../../configuration/ceph-conf#ceph-runtime-config
-.. _Storage Capacity: ../../configuration/mon-config-ref#storage-capacity
-.. _ceph-medic: http://docs.ceph.com/ceph-medic/master/
diff --git a/src/ceph/doc/rados/operations/operating.rst b/src/ceph/doc/rados/operations/operating.rst
deleted file mode 100644
index 791941a..0000000
--- a/src/ceph/doc/rados/operations/operating.rst
+++ /dev/null
@@ -1,251 +0,0 @@
-=====================
- Operating a Cluster
-=====================
-
-.. index:: systemd; operating a cluster
-
-
-Running Ceph with systemd
-==========================
-
-For all distributions that support systemd (CentOS 7, Fedora, Debian
-Jessie 8 and later, SUSE), ceph daemons are now managed using native
-systemd files instead of the legacy sysvinit scripts. For example::
-
- sudo systemctl start ceph.target # start all daemons
- sudo systemctl status ceph-osd@12 # check status of osd.12
-
-To list the Ceph systemd units on a node, execute::
-
- sudo systemctl status ceph\*.service ceph\*.target
-
-Starting all Daemons
---------------------
-
-To start all daemons on a Ceph Node (irrespective of type), execute the
-following::
-
- sudo systemctl start ceph.target
-
-
-Stopping all Daemons
---------------------
-
-To stop all daemons on a Ceph Node (irrespective of type), execute the
-following::
-
- sudo systemctl stop ceph\*.service ceph\*.target
-
-
-Starting all Daemons by Type
-----------------------------
-
-To start all daemons of a particular type on a Ceph Node, execute one of the
-following::
-
- sudo systemctl start ceph-osd.target
- sudo systemctl start ceph-mon.target
- sudo systemctl start ceph-mds.target
-
-
-Stopping all Daemons by Type
-----------------------------
-
-To stop all daemons of a particular type on a Ceph Node, execute one of the
-following::
-
- sudo systemctl stop ceph-mon\*.service ceph-mon.target
- sudo systemctl stop ceph-osd\*.service ceph-osd.target
- sudo systemctl stop ceph-mds\*.service ceph-mds.target
-
-
-Starting a Daemon
------------------
-
-To start a specific daemon instance on a Ceph Node, execute one of the
-following::
-
- sudo systemctl start ceph-osd@{id}
- sudo systemctl start ceph-mon@{hostname}
- sudo systemctl start ceph-mds@{hostname}
-
-For example::
-
- sudo systemctl start ceph-osd@1
- sudo systemctl start ceph-mon@ceph-server
- sudo systemctl start ceph-mds@ceph-server
-
-
-Stopping a Daemon
------------------
-
-To stop a specific daemon instance on a Ceph Node, execute one of the
-following::
-
- sudo systemctl stop ceph-osd@{id}
- sudo systemctl stop ceph-mon@{hostname}
- sudo systemctl stop ceph-mds@{hostname}
-
-For example::
-
- sudo systemctl stop ceph-osd@1
- sudo systemctl stop ceph-mon@ceph-server
- sudo systemctl stop ceph-mds@ceph-server
-
-
-.. index:: Ceph service; Upstart; operating a cluster
-
-
-
-Running Ceph with Upstart
-=========================
-
-When deploying Ceph with ``ceph-deploy`` on Ubuntu Trusty, you may start and
-stop Ceph daemons on a :term:`Ceph Node` using the event-based `Upstart`_.
-Upstart does not require you to define daemon instances in the Ceph
-configuration file.
-
-To list the Ceph Upstart jobs and instances on a node, execute::
-
- sudo initctl list | grep ceph
-
-See `initctl`_ for additional details.
-
-
-Starting all Daemons
---------------------
-
-To start all daemons on a Ceph Node (irrespective of type), execute the
-following::
-
- sudo start ceph-all
-
-
-Stopping all Daemons
---------------------
-
-To stop all daemons on a Ceph Node (irrespective of type), execute the
-following::
-
- sudo stop ceph-all
-
-
-Starting all Daemons by Type
-----------------------------
-
-To start all daemons of a particular type on a Ceph Node, execute one of the
-following::
-
- sudo start ceph-osd-all
- sudo start ceph-mon-all
- sudo start ceph-mds-all
-
-
-Stopping all Daemons by Type
-----------------------------
-
-To stop all daemons of a particular type on a Ceph Node, execute one of the
-following::
-
- sudo stop ceph-osd-all
- sudo stop ceph-mon-all
- sudo stop ceph-mds-all
-
-
-Starting a Daemon
------------------
-
-To start a specific daemon instance on a Ceph Node, execute one of the
-following::
-
- sudo start ceph-osd id={id}
- sudo start ceph-mon id={hostname}
- sudo start ceph-mds id={hostname}
-
-For example::
-
- sudo start ceph-osd id=1
- sudo start ceph-mon id=ceph-server
- sudo start ceph-mds id=ceph-server
-
-
-Stopping a Daemon
------------------
-
-To stop a specific daemon instance on a Ceph Node, execute one of the
-following::
-
- sudo stop ceph-osd id={id}
- sudo stop ceph-mon id={hostname}
- sudo stop ceph-mds id={hostname}
-
-For example::
-
- sudo stop ceph-osd id=1
- sudo start ceph-mon id=ceph-server
- sudo start ceph-mds id=ceph-server
-
-
-.. index:: Ceph service; sysvinit; operating a cluster
-
-
-Running Ceph
-============
-
-Each time you to **start**, **restart**, and **stop** Ceph daemons (or your
-entire cluster) you must specify at least one option and one command. You may
-also specify a daemon type or a daemon instance. ::
-
- {commandline} [options] [commands] [daemons]
-
-
-The ``ceph`` options include:
-
-+-----------------+----------+-------------------------------------------------+
-| Option | Shortcut | Description |
-+=================+==========+=================================================+
-| ``--verbose`` | ``-v`` | Use verbose logging. |
-+-----------------+----------+-------------------------------------------------+
-| ``--valgrind`` | ``N/A`` | (Dev and QA only) Use `Valgrind`_ debugging. |
-+-----------------+----------+-------------------------------------------------+
-| ``--allhosts`` | ``-a`` | Execute on all nodes in ``ceph.conf.`` |
-| | | Otherwise, it only executes on ``localhost``. |
-+-----------------+----------+-------------------------------------------------+
-| ``--restart`` | ``N/A`` | Automatically restart daemon if it core dumps. |
-+-----------------+----------+-------------------------------------------------+
-| ``--norestart`` | ``N/A`` | Don't restart a daemon if it core dumps. |
-+-----------------+----------+-------------------------------------------------+
-| ``--conf`` | ``-c`` | Use an alternate configuration file. |
-+-----------------+----------+-------------------------------------------------+
-
-The ``ceph`` commands include:
-
-+------------------+------------------------------------------------------------+
-| Command | Description |
-+==================+============================================================+
-| ``start`` | Start the daemon(s). |
-+------------------+------------------------------------------------------------+
-| ``stop`` | Stop the daemon(s). |
-+------------------+------------------------------------------------------------+
-| ``forcestop`` | Force the daemon(s) to stop. Same as ``kill -9`` |
-+------------------+------------------------------------------------------------+
-| ``killall`` | Kill all daemons of a particular type. |
-+------------------+------------------------------------------------------------+
-| ``cleanlogs`` | Cleans out the log directory. |
-+------------------+------------------------------------------------------------+
-| ``cleanalllogs`` | Cleans out **everything** in the log directory. |
-+------------------+------------------------------------------------------------+
-
-For subsystem operations, the ``ceph`` service can target specific daemon types
-by adding a particular daemon type for the ``[daemons]`` option. Daemon types
-include:
-
-- ``mon``
-- ``osd``
-- ``mds``
-
-
-
-.. _Valgrind: http://www.valgrind.org/
-.. _Upstart: http://upstart.ubuntu.com/index.html
-.. _initctl: http://manpages.ubuntu.com/manpages/raring/en/man8/initctl.8.html
diff --git a/src/ceph/doc/rados/operations/pg-concepts.rst b/src/ceph/doc/rados/operations/pg-concepts.rst
deleted file mode 100644
index 636d6bf..0000000
--- a/src/ceph/doc/rados/operations/pg-concepts.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-==========================
- Placement Group Concepts
-==========================
-
-When you execute commands like ``ceph -w``, ``ceph osd dump``, and other
-commands related to placement groups, Ceph may return values using some
-of the following terms:
-
-*Peering*
- The process of bringing all of the OSDs that store
- a Placement Group (PG) into agreement about the state
- of all of the objects (and their metadata) in that PG.
- Note that agreeing on the state does not mean that
- they all have the latest contents.
-
-*Acting Set*
- The ordered list of OSDs who are (or were as of some epoch)
- responsible for a particular placement group.
-
-*Up Set*
- The ordered list of OSDs responsible for a particular placement
- group for a particular epoch according to CRUSH. Normally this
- is the same as the *Acting Set*, except when the *Acting Set* has
- been explicitly overridden via ``pg_temp`` in the OSD Map.
-
-*Current Interval* or *Past Interval*
- A sequence of OSD map epochs during which the *Acting Set* and *Up
- Set* for particular placement group do not change.
-
-*Primary*
- The member (and by convention first) of the *Acting Set*,
- that is responsible for coordination peering, and is
- the only OSD that will accept client-initiated
- writes to objects in a placement group.
-
-*Replica*
- A non-primary OSD in the *Acting Set* for a placement group
- (and who has been recognized as such and *activated* by the primary).
-
-*Stray*
- An OSD that is not a member of the current *Acting Set*, but
- has not yet been told that it can delete its copies of a
- particular placement group.
-
-*Recovery*
- Ensuring that copies of all of the objects in a placement group
- are on all of the OSDs in the *Acting Set*. Once *Peering* has
- been performed, the *Primary* can start accepting write operations,
- and *Recovery* can proceed in the background.
-
-*PG Info*
- Basic metadata about the placement group's creation epoch, the version
- for the most recent write to the placement group, *last epoch started*,
- *last epoch clean*, and the beginning of the *current interval*. Any
- inter-OSD communication about placement groups includes the *PG Info*,
- such that any OSD that knows a placement group exists (or once existed)
- also has a lower bound on *last epoch clean* or *last epoch started*.
-
-*PG Log*
- A list of recent updates made to objects in a placement group.
- Note that these logs can be truncated after all OSDs
- in the *Acting Set* have acknowledged up to a certain
- point.
-
-*Missing Set*
- Each OSD notes update log entries and if they imply updates to
- the contents of an object, adds that object to a list of needed
- updates. This list is called the *Missing Set* for that ``<OSD,PG>``.
-
-*Authoritative History*
- A complete, and fully ordered set of operations that, if
- performed, would bring an OSD's copy of a placement group
- up to date.
-
-*Epoch*
- A (monotonically increasing) OSD map version number
-
-*Last Epoch Start*
- The last epoch at which all nodes in the *Acting Set*
- for a particular placement group agreed on an
- *Authoritative History*. At this point, *Peering* is
- deemed to have been successful.
-
-*up_thru*
- Before a *Primary* can successfully complete the *Peering* process,
- it must inform a monitor that is alive through the current
- OSD map *Epoch* by having the monitor set its *up_thru* in the osd
- map. This helps *Peering* ignore previous *Acting Sets* for which
- *Peering* never completed after certain sequences of failures, such as
- the second interval below:
-
- - *acting set* = [A,B]
- - *acting set* = [A]
- - *acting set* = [] very shortly after (e.g., simultaneous failure, but staggered detection)
- - *acting set* = [B] (B restarts, A does not)
-
-*Last Epoch Clean*
- The last *Epoch* at which all nodes in the *Acting set*
- for a particular placement group were completely
- up to date (both placement group logs and object contents).
- At this point, *recovery* is deemed to have been
- completed.
diff --git a/src/ceph/doc/rados/operations/pg-repair.rst b/src/ceph/doc/rados/operations/pg-repair.rst
deleted file mode 100644
index 0d6692a..0000000
--- a/src/ceph/doc/rados/operations/pg-repair.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-Repairing PG inconsistencies
-============================
-
-
diff --git a/src/ceph/doc/rados/operations/pg-states.rst b/src/ceph/doc/rados/operations/pg-states.rst
deleted file mode 100644
index 0fbd3dc..0000000
--- a/src/ceph/doc/rados/operations/pg-states.rst
+++ /dev/null
@@ -1,80 +0,0 @@
-========================
- Placement Group States
-========================
-
-When checking a cluster's status (e.g., running ``ceph -w`` or ``ceph -s``),
-Ceph will report on the status of the placement groups. A placement group has
-one or more states. The optimum state for placement groups in the placement group
-map is ``active + clean``.
-
-*Creating*
- Ceph is still creating the placement group.
-
-*Active*
- Ceph will process requests to the placement group.
-
-*Clean*
- Ceph replicated all objects in the placement group the correct number of times.
-
-*Down*
- A replica with necessary data is down, so the placement group is offline.
-
-*Scrubbing*
- Ceph is checking the placement group for inconsistencies.
-
-*Degraded*
- Ceph has not replicated some objects in the placement group the correct number of times yet.
-
-*Inconsistent*
- Ceph detects inconsistencies in the one or more replicas of an object in the placement group
- (e.g. objects are the wrong size, objects are missing from one replica *after* recovery finished, etc.).
-
-*Peering*
- The placement group is undergoing the peering process
-
-*Repair*
- Ceph is checking the placement group and repairing any inconsistencies it finds (if possible).
-
-*Recovering*
- Ceph is migrating/synchronizing objects and their replicas.
-
-*Forced-Recovery*
- High recovery priority of that PG is enforced by user.
-
-*Backfill*
- Ceph is scanning and synchronizing the entire contents of a placement group
- instead of inferring what contents need to be synchronized from the logs of
- recent operations. *Backfill* is a special case of recovery.
-
-*Forced-Backfill*
- High backfill priority of that PG is enforced by user.
-
-*Wait-backfill*
- The placement group is waiting in line to start backfill.
-
-*Backfill-toofull*
- A backfill operation is waiting because the destination OSD is over its
- full ratio.
-
-*Incomplete*
- Ceph detects that a placement group is missing information about
- writes that may have occurred, or does not have any healthy
- copies. If you see this state, try to start any failed OSDs that may
- contain the needed information. In the case of an erasure coded pool
- temporarily reducing min_size may allow recovery.
-
-*Stale*
- The placement group is in an unknown state - the monitors have not received
- an update for it since the placement group mapping changed.
-
-*Remapped*
- The placement group is temporarily mapped to a different set of OSDs from what
- CRUSH specified.
-
-*Undersized*
- The placement group fewer copies than the configured pool replication level.
-
-*Peered*
- The placement group has peered, but cannot serve client IO due to not having
- enough copies to reach the pool's configured min_size parameter. Recovery
- may occur in this state, so the pg may heal up to min_size eventually.
diff --git a/src/ceph/doc/rados/operations/placement-groups.rst b/src/ceph/doc/rados/operations/placement-groups.rst
deleted file mode 100644
index fee833a..0000000
--- a/src/ceph/doc/rados/operations/placement-groups.rst
+++ /dev/null
@@ -1,469 +0,0 @@
-==================
- Placement Groups
-==================
-
-.. _preselection:
-
-A preselection of pg_num
-========================
-
-When creating a new pool with::
-
- ceph osd pool create {pool-name} pg_num
-
-it is mandatory to choose the value of ``pg_num`` because it cannot be
-calculated automatically. Here are a few values commonly used:
-
-- Less than 5 OSDs set ``pg_num`` to 128
-
-- Between 5 and 10 OSDs set ``pg_num`` to 512
-
-- Between 10 and 50 OSDs set ``pg_num`` to 1024
-
-- If you have more than 50 OSDs, you need to understand the tradeoffs
- and how to calculate the ``pg_num`` value by yourself
-
-- For calculating ``pg_num`` value by yourself please take help of `pgcalc`_ tool
-
-As the number of OSDs increases, chosing the right value for pg_num
-becomes more important because it has a significant influence on the
-behavior of the cluster as well as the durability of the data when
-something goes wrong (i.e. the probability that a catastrophic event
-leads to data loss).
-
-How are Placement Groups used ?
-===============================
-
-A placement group (PG) aggregates objects within a pool because
-tracking object placement and object metadata on a per-object basis is
-computationally expensive--i.e., a system with millions of objects
-cannot realistically track placement on a per-object basis.
-
-.. ditaa::
- /-----\ /-----\ /-----\ /-----\ /-----\
- | obj | | obj | | obj | | obj | | obj |
- \-----/ \-----/ \-----/ \-----/ \-----/
- | | | | |
- +--------+--------+ +---+----+
- | |
- v v
- +-----------------------+ +-----------------------+
- | Placement Group #1 | | Placement Group #2 |
- | | | |
- +-----------------------+ +-----------------------+
- | |
- +------------------------------+
- |
- v
- +-----------------------+
- | Pool |
- | |
- +-----------------------+
-
-The Ceph client will calculate which placement group an object should
-be in. It does this by hashing the object ID and applying an operation
-based on the number of PGs in the defined pool and the ID of the pool.
-See `Mapping PGs to OSDs`_ for details.
-
-The object's contents within a placement group are stored in a set of
-OSDs. For instance, in a replicated pool of size two, each placement
-group will store objects on two OSDs, as shown below.
-
-.. ditaa::
-
- +-----------------------+ +-----------------------+
- | Placement Group #1 | | Placement Group #2 |
- | | | |
- +-----------------------+ +-----------------------+
- | | | |
- v v v v
- /----------\ /----------\ /----------\ /----------\
- | | | | | | | |
- | OSD #1 | | OSD #2 | | OSD #2 | | OSD #3 |
- | | | | | | | |
- \----------/ \----------/ \----------/ \----------/
-
-
-Should OSD #2 fail, another will be assigned to Placement Group #1 and
-will be filled with copies of all objects in OSD #1. If the pool size
-is changed from two to three, an additional OSD will be assigned to
-the placement group and will receive copies of all objects in the
-placement group.
-
-Placement groups do not own the OSD, they share it with other
-placement groups from the same pool or even other pools. If OSD #2
-fails, the Placement Group #2 will also have to restore copies of
-objects, using OSD #3.
-
-When the number of placement groups increases, the new placement
-groups will be assigned OSDs. The result of the CRUSH function will
-also change and some objects from the former placement groups will be
-copied over to the new Placement Groups and removed from the old ones.
-
-Placement Groups Tradeoffs
-==========================
-
-Data durability and even distribution among all OSDs call for more
-placement groups but their number should be reduced to the minimum to
-save CPU and memory.
-
-.. _data durability:
-
-Data durability
----------------
-
-After an OSD fails, the risk of data loss increases until the data it
-contained is fully recovered. Let's imagine a scenario that causes
-permanent data loss in a single placement group:
-
-- The OSD fails and all copies of the object it contains are lost.
- For all objects within the placement group the number of replica
- suddently drops from three to two.
-
-- Ceph starts recovery for this placement group by chosing a new OSD
- to re-create the third copy of all objects.
-
-- Another OSD, within the same placement group, fails before the new
- OSD is fully populated with the third copy. Some objects will then
- only have one surviving copies.
-
-- Ceph picks yet another OSD and keeps copying objects to restore the
- desired number of copies.
-
-- A third OSD, within the same placement group, fails before recovery
- is complete. If this OSD contained the only remaining copy of an
- object, it is permanently lost.
-
-In a cluster containing 10 OSDs with 512 placement groups in a three
-replica pool, CRUSH will give each placement groups three OSDs. In the
-end, each OSDs will end up hosting (512 * 3) / 10 = ~150 Placement
-Groups. When the first OSD fails, the above scenario will therefore
-start recovery for all 150 placement groups at the same time.
-
-The 150 placement groups being recovered are likely to be
-homogeneously spread over the 9 remaining OSDs. Each remaining OSD is
-therefore likely to send copies of objects to all others and also
-receive some new objects to be stored because they became part of a
-new placement group.
-
-The amount of time it takes for this recovery to complete entirely
-depends on the architecture of the Ceph cluster. Let say each OSD is
-hosted by a 1TB SSD on a single machine and all of them are connected
-to a 10Gb/s switch and the recovery for a single OSD completes within
-M minutes. If there are two OSDs per machine using spinners with no
-SSD journal and a 1Gb/s switch, it will at least be an order of
-magnitude slower.
-
-In a cluster of this size, the number of placement groups has almost
-no influence on data durability. It could be 128 or 8192 and the
-recovery would not be slower or faster.
-
-However, growing the same Ceph cluster to 20 OSDs instead of 10 OSDs
-is likely to speed up recovery and therefore improve data durability
-significantly. Each OSD now participates in only ~75 placement groups
-instead of ~150 when there were only 10 OSDs and it will still require
-all 19 remaining OSDs to perform the same amount of object copies in
-order to recover. But where 10 OSDs had to copy approximately 100GB
-each, they now have to copy 50GB each instead. If the network was the
-bottleneck, recovery will happen twice as fast. In other words,
-recovery goes faster when the number of OSDs increases.
-
-If this cluster grows to 40 OSDs, each of them will only host ~35
-placement groups. If an OSD dies, recovery will keep going faster
-unless it is blocked by another bottleneck. However, if this cluster
-grows to 200 OSDs, each of them will only host ~7 placement groups. If
-an OSD dies, recovery will happen between at most of ~21 (7 * 3) OSDs
-in these placement groups: recovery will take longer than when there
-were 40 OSDs, meaning the number of placement groups should be
-increased.
-
-No matter how short the recovery time is, there is a chance for a
-second OSD to fail while it is in progress. In the 10 OSDs cluster
-described above, if any of them fail, then ~17 placement groups
-(i.e. ~150 / 9 placement groups being recovered) will only have one
-surviving copy. And if any of the 8 remaining OSD fail, the last
-objects of two placement groups are likely to be lost (i.e. ~17 / 8
-placement groups with only one remaining copy being recovered).
-
-When the size of the cluster grows to 20 OSDs, the number of Placement
-Groups damaged by the loss of three OSDs drops. The second OSD lost
-will degrade ~4 (i.e. ~75 / 19 placement groups being recovered)
-instead of ~17 and the third OSD lost will only lose data if it is one
-of the four OSDs containing the surviving copy. In other words, if the
-probability of losing one OSD is 0.0001% during the recovery time
-frame, it goes from 17 * 10 * 0.0001% in the cluster with 10 OSDs to 4 * 20 *
-0.0001% in the cluster with 20 OSDs.
-
-In a nutshell, more OSDs mean faster recovery and a lower risk of
-cascading failures leading to the permanent loss of a Placement
-Group. Having 512 or 4096 Placement Groups is roughly equivalent in a
-cluster with less than 50 OSDs as far as data durability is concerned.
-
-Note: It may take a long time for a new OSD added to the cluster to be
-populated with placement groups that were assigned to it. However
-there is no degradation of any object and it has no impact on the
-durability of the data contained in the Cluster.
-
-.. _object distribution:
-
-Object distribution within a pool
----------------------------------
-
-Ideally objects are evenly distributed in each placement group. Since
-CRUSH computes the placement group for each object, but does not
-actually know how much data is stored in each OSD within this
-placement group, the ratio between the number of placement groups and
-the number of OSDs may influence the distribution of the data
-significantly.
-
-For instance, if there was single a placement group for ten OSDs in a
-three replica pool, only three OSD would be used because CRUSH would
-have no other choice. When more placement groups are available,
-objects are more likely to be evenly spread among them. CRUSH also
-makes every effort to evenly spread OSDs among all existing Placement
-Groups.
-
-As long as there are one or two orders of magnitude more Placement
-Groups than OSDs, the distribution should be even. For instance, 300
-placement groups for 3 OSDs, 1000 placement groups for 10 OSDs etc.
-
-Uneven data distribution can be caused by factors other than the ratio
-between OSDs and placement groups. Since CRUSH does not take into
-account the size of the objects, a few very large objects may create
-an imbalance. Let say one million 4K objects totaling 4GB are evenly
-spread among 1000 placement groups on 10 OSDs. They will use 4GB / 10
-= 400MB on each OSD. If one 400MB object is added to the pool, the
-three OSDs supporting the placement group in which the object has been
-placed will be filled with 400MB + 400MB = 800MB while the seven
-others will remain occupied with only 400MB.
-
-.. _resource usage:
-
-Memory, CPU and network usage
------------------------------
-
-For each placement group, OSDs and MONs need memory, network and CPU
-at all times and even more during recovery. Sharing this overhead by
-clustering objects within a placement group is one of the main reasons
-they exist.
-
-Minimizing the number of placement groups saves significant amounts of
-resources.
-
-Choosing the number of Placement Groups
-=======================================
-
-If you have more than 50 OSDs, we recommend approximately 50-100
-placement groups per OSD to balance out resource usage, data
-durability and distribution. If you have less than 50 OSDs, chosing
-among the `preselection`_ above is best. For a single pool of objects,
-you can use the following formula to get a baseline::
-
- (OSDs * 100)
- Total PGs = ------------
- pool size
-
-Where **pool size** is either the number of replicas for replicated
-pools or the K+M sum for erasure coded pools (as returned by **ceph
-osd erasure-code-profile get**).
-
-You should then check if the result makes sense with the way you
-designed your Ceph cluster to maximize `data durability`_,
-`object distribution`_ and minimize `resource usage`_.
-
-The result should be **rounded up to the nearest power of two.**
-Rounding up is optional, but recommended for CRUSH to evenly balance
-the number of objects among placement groups.
-
-As an example, for a cluster with 200 OSDs and a pool size of 3
-replicas, you would estimate your number of PGs as follows::
-
- (200 * 100)
- ----------- = 6667. Nearest power of 2: 8192
- 3
-
-When using multiple data pools for storing objects, you need to ensure
-that you balance the number of placement groups per pool with the
-number of placement groups per OSD so that you arrive at a reasonable
-total number of placement groups that provides reasonably low variance
-per OSD without taxing system resources or making the peering process
-too slow.
-
-For instance a cluster of 10 pools each with 512 placement groups on
-ten OSDs is a total of 5,120 placement groups spread over ten OSDs,
-that is 512 placement groups per OSD. That does not use too many
-resources. However, if 1,000 pools were created with 512 placement
-groups each, the OSDs will handle ~50,000 placement groups each and it
-would require significantly more resources and time for peering.
-
-You may find the `PGCalc`_ tool helpful.
-
-
-.. _setting the number of placement groups:
-
-Set the Number of Placement Groups
-==================================
-
-To set the number of placement groups in a pool, you must specify the
-number of placement groups at the time you create the pool.
-See `Create a Pool`_ for details. Once you have set placement groups for a
-pool, you may increase the number of placement groups (but you cannot
-decrease the number of placement groups). To increase the number of
-placement groups, execute the following::
-
- ceph osd pool set {pool-name} pg_num {pg_num}
-
-Once you increase the number of placement groups, you must also
-increase the number of placement groups for placement (``pgp_num``)
-before your cluster will rebalance. The ``pgp_num`` will be the number of
-placement groups that will be considered for placement by the CRUSH
-algorithm. Increasing ``pg_num`` splits the placement groups but data
-will not be migrated to the newer placement groups until placement
-groups for placement, ie. ``pgp_num`` is increased. The ``pgp_num``
-should be equal to the ``pg_num``. To increase the number of
-placement groups for placement, execute the following::
-
- ceph osd pool set {pool-name} pgp_num {pgp_num}
-
-
-Get the Number of Placement Groups
-==================================
-
-To get the number of placement groups in a pool, execute the following::
-
- ceph osd pool get {pool-name} pg_num
-
-
-Get a Cluster's PG Statistics
-=============================
-
-To get the statistics for the placement groups in your cluster, execute the following::
-
- ceph pg dump [--format {format}]
-
-Valid formats are ``plain`` (default) and ``json``.
-
-
-Get Statistics for Stuck PGs
-============================
-
-To get the statistics for all placement groups stuck in a specified state,
-execute the following::
-
- ceph pg dump_stuck inactive|unclean|stale|undersized|degraded [--format <format>] [-t|--threshold <seconds>]
-
-**Inactive** Placement groups cannot process reads or writes because they are waiting for an OSD
-with the most up-to-date data to come up and in.
-
-**Unclean** Placement groups contain objects that are not replicated the desired number
-of times. They should be recovering.
-
-**Stale** Placement groups are in an unknown state - the OSDs that host them have not
-reported to the monitor cluster in a while (configured by ``mon_osd_report_timeout``).
-
-Valid formats are ``plain`` (default) and ``json``. The threshold defines the minimum number
-of seconds the placement group is stuck before including it in the returned statistics
-(default 300 seconds).
-
-
-Get a PG Map
-============
-
-To get the placement group map for a particular placement group, execute the following::
-
- ceph pg map {pg-id}
-
-For example::
-
- ceph pg map 1.6c
-
-Ceph will return the placement group map, the placement group, and the OSD status::
-
- osdmap e13 pg 1.6c (1.6c) -> up [1,0] acting [1,0]
-
-
-Get a PGs Statistics
-====================
-
-To retrieve statistics for a particular placement group, execute the following::
-
- ceph pg {pg-id} query
-
-
-Scrub a Placement Group
-=======================
-
-To scrub a placement group, execute the following::
-
- ceph pg scrub {pg-id}
-
-Ceph checks the primary and any replica nodes, generates a catalog of all objects
-in the placement group and compares them to ensure that no objects are missing
-or mismatched, and their contents are consistent. Assuming the replicas all
-match, a final semantic sweep ensures that all of the snapshot-related object
-metadata is consistent. Errors are reported via logs.
-
-Prioritize backfill/recovery of a Placement Group(s)
-====================================================
-
-You may run into a situation where a bunch of placement groups will require
-recovery and/or backfill, and some particular groups hold data more important
-than others (for example, those PGs may hold data for images used by running
-machines and other PGs may be used by inactive machines/less relevant data).
-In that case, you may want to prioritize recovery of those groups so
-performance and/or availability of data stored on those groups is restored
-earlier. To do this (mark particular placement group(s) as prioritized during
-backfill or recovery), execute the following::
-
- ceph pg force-recovery {pg-id} [{pg-id #2}] [{pg-id #3} ...]
- ceph pg force-backfill {pg-id} [{pg-id #2}] [{pg-id #3} ...]
-
-This will cause Ceph to perform recovery or backfill on specified placement
-groups first, before other placement groups. This does not interrupt currently
-ongoing backfills or recovery, but causes specified PGs to be processed
-as soon as possible. If you change your mind or prioritize wrong groups,
-use::
-
- ceph pg cancel-force-recovery {pg-id} [{pg-id #2}] [{pg-id #3} ...]
- ceph pg cancel-force-backfill {pg-id} [{pg-id #2}] [{pg-id #3} ...]
-
-This will remove "force" flag from those PGs and they will be processed
-in default order. Again, this doesn't affect currently processed placement
-group, only those that are still queued.
-
-The "force" flag is cleared automatically after recovery or backfill of group
-is done.
-
-Revert Lost
-===========
-
-If the cluster has lost one or more objects, and you have decided to
-abandon the search for the lost data, you must mark the unfound objects
-as ``lost``.
-
-If all possible locations have been queried and objects are still
-lost, you may have to give up on the lost objects. This is
-possible given unusual combinations of failures that allow the cluster
-to learn about writes that were performed before the writes themselves
-are recovered.
-
-Currently the only supported option is "revert", which will either roll back to
-a previous version of the object or (if it was a new object) forget about it
-entirely. To mark the "unfound" objects as "lost", execute the following::
-
- ceph pg {pg-id} mark_unfound_lost revert|delete
-
-.. important:: Use this feature with caution, because it may confuse
- applications that expect the object(s) to exist.
-
-
-.. toctree::
- :hidden:
-
- pg-states
- pg-concepts
-
-
-.. _Create a Pool: ../pools#createpool
-.. _Mapping PGs to OSDs: ../../../architecture#mapping-pgs-to-osds
-.. _pgcalc: http://ceph.com/pgcalc/
diff --git a/src/ceph/doc/rados/operations/pools.rst b/src/ceph/doc/rados/operations/pools.rst
deleted file mode 100644
index 7015593..0000000
--- a/src/ceph/doc/rados/operations/pools.rst
+++ /dev/null
@@ -1,798 +0,0 @@
-=======
- Pools
-=======
-
-When you first deploy a cluster without creating a pool, Ceph uses the default
-pools for storing data. A pool provides you with:
-
-- **Resilience**: You can set how many OSD are allowed to fail without losing data.
- For replicated pools, it is the desired number of copies/replicas of an object.
- A typical configuration stores an object and one additional copy
- (i.e., ``size = 2``), but you can determine the number of copies/replicas.
- For `erasure coded pools <../erasure-code>`_, it is the number of coding chunks
- (i.e. ``m=2`` in the **erasure code profile**)
-
-- **Placement Groups**: You can set the number of placement groups for the pool.
- A typical configuration uses approximately 100 placement groups per OSD to
- provide optimal balancing without using up too many computing resources. When
- setting up multiple pools, be careful to ensure you set a reasonable number of
- placement groups for both the pool and the cluster as a whole.
-
-- **CRUSH Rules**: When you store data in a pool, a CRUSH ruleset mapped to the
- pool enables CRUSH to identify a rule for the placement of the object
- and its replicas (or chunks for erasure coded pools) in your cluster.
- You can create a custom CRUSH rule for your pool.
-
-- **Snapshots**: When you create snapshots with ``ceph osd pool mksnap``,
- you effectively take a snapshot of a particular pool.
-
-To organize data into pools, you can list, create, and remove pools.
-You can also view the utilization statistics for each pool.
-
-List Pools
-==========
-
-To list your cluster's pools, execute::
-
- ceph osd lspools
-
-On a freshly installed cluster, only the ``rbd`` pool exists.
-
-
-.. _createpool:
-
-Create a Pool
-=============
-
-Before creating pools, refer to the `Pool, PG and CRUSH Config Reference`_.
-Ideally, you should override the default value for the number of placement
-groups in your Ceph configuration file, as the default is NOT ideal.
-For details on placement group numbers refer to `setting the number of placement groups`_
-
-.. note:: Starting with Luminous, all pools need to be associated to the
- application using the pool. See `Associate Pool to Application`_ below for
- more information.
-
-For example::
-
- osd pool default pg num = 100
- osd pool default pgp num = 100
-
-To create a pool, execute::
-
- ceph osd pool create {pool-name} {pg-num} [{pgp-num}] [replicated] \
- [crush-rule-name] [expected-num-objects]
- ceph osd pool create {pool-name} {pg-num} {pgp-num} erasure \
- [erasure-code-profile] [crush-rule-name] [expected_num_objects]
-
-Where:
-
-``{pool-name}``
-
-:Description: The name of the pool. It must be unique.
-:Type: String
-:Required: Yes.
-
-``{pg-num}``
-
-:Description: The total number of placement groups for the pool. See `Placement
- Groups`_ for details on calculating a suitable number. The
- default value ``8`` is NOT suitable for most systems.
-
-:Type: Integer
-:Required: Yes.
-:Default: 8
-
-``{pgp-num}``
-
-:Description: The total number of placement groups for placement purposes. This
- **should be equal to the total number of placement groups**, except
- for placement group splitting scenarios.
-
-:Type: Integer
-:Required: Yes. Picks up default or Ceph configuration value if not specified.
-:Default: 8
-
-``{replicated|erasure}``
-
-:Description: The pool type which may either be **replicated** to
- recover from lost OSDs by keeping multiple copies of the
- objects or **erasure** to get a kind of
- `generalized RAID5 <../erasure-code>`_ capability.
- The **replicated** pools require more
- raw storage but implement all Ceph operations. The
- **erasure** pools require less raw storage but only
- implement a subset of the available operations.
-
-:Type: String
-:Required: No.
-:Default: replicated
-
-``[crush-rule-name]``
-
-:Description: The name of a CRUSH rule to use for this pool. The specified
- rule must exist.
-
-:Type: String
-:Required: No.
-:Default: For **replicated** pools it is the ruleset specified by the ``osd
- pool default crush replicated ruleset`` config variable. This
- ruleset must exist.
- For **erasure** pools it is ``erasure-code`` if the ``default``
- `erasure code profile`_ is used or ``{pool-name}`` otherwise. This
- ruleset will be created implicitly if it doesn't exist already.
-
-
-``[erasure-code-profile=profile]``
-
-.. _erasure code profile: ../erasure-code-profile
-
-:Description: For **erasure** pools only. Use the `erasure code profile`_. It
- must be an existing profile as defined by
- **osd erasure-code-profile set**.
-
-:Type: String
-:Required: No.
-
-When you create a pool, set the number of placement groups to a reasonable value
-(e.g., ``100``). Consider the total number of placement groups per OSD too.
-Placement groups are computationally expensive, so performance will degrade when
-you have many pools with many placement groups (e.g., 50 pools with 100
-placement groups each). The point of diminishing returns depends upon the power
-of the OSD host.
-
-See `Placement Groups`_ for details on calculating an appropriate number of
-placement groups for your pool.
-
-.. _Placement Groups: ../placement-groups
-
-``[expected-num-objects]``
-
-:Description: The expected number of objects for this pool. By setting this value (
- together with a negative **filestore merge threshold**), the PG folder
- splitting would happen at the pool creation time, to avoid the latency
- impact to do a runtime folder splitting.
-
-:Type: Integer
-:Required: No.
-:Default: 0, no splitting at the pool creation time.
-
-Associate Pool to Application
-=============================
-
-Pools need to be associated with an application before use. Pools that will be
-used with CephFS or pools that are automatically created by RGW are
-automatically associated. Pools that are intended for use with RBD should be
-initialized using the ``rbd`` tool (see `Block Device Commands`_ for more
-information).
-
-For other cases, you can manually associate a free-form application name to
-a pool.::
-
- ceph osd pool application enable {pool-name} {application-name}
-
-.. note:: CephFS uses the application name ``cephfs``, RBD uses the
- application name ``rbd``, and RGW uses the application name ``rgw``.
-
-Set Pool Quotas
-===============
-
-You can set pool quotas for the maximum number of bytes and/or the maximum
-number of objects per pool. ::
-
- ceph osd pool set-quota {pool-name} [max_objects {obj-count}] [max_bytes {bytes}]
-
-For example::
-
- ceph osd pool set-quota data max_objects 10000
-
-To remove a quota, set its value to ``0``.
-
-
-Delete a Pool
-=============
-
-To delete a pool, execute::
-
- ceph osd pool delete {pool-name} [{pool-name} --yes-i-really-really-mean-it]
-
-
-To remove a pool the mon_allow_pool_delete flag must be set to true in the Monitor's
-configuration. Otherwise they will refuse to remove a pool.
-
-See `Monitor Configuration`_ for more information.
-
-.. _Monitor Configuration: ../../configuration/mon-config-ref
-
-If you created your own rulesets and rules for a pool you created, you should
-consider removing them when you no longer need your pool::
-
- ceph osd pool get {pool-name} crush_ruleset
-
-If the ruleset was "123", for example, you can check the other pools like so::
-
- ceph osd dump | grep "^pool" | grep "crush_ruleset 123"
-
-If no other pools use that custom ruleset, then it's safe to delete that
-ruleset from the cluster.
-
-If you created users with permissions strictly for a pool that no longer
-exists, you should consider deleting those users too::
-
- ceph auth ls | grep -C 5 {pool-name}
- ceph auth del {user}
-
-
-Rename a Pool
-=============
-
-To rename a pool, execute::
-
- ceph osd pool rename {current-pool-name} {new-pool-name}
-
-If you rename a pool and you have per-pool capabilities for an authenticated
-user, you must update the user's capabilities (i.e., caps) with the new pool
-name.
-
-.. note:: Version ``0.48`` Argonaut and above.
-
-Show Pool Statistics
-====================
-
-To show a pool's utilization statistics, execute::
-
- rados df
-
-
-Make a Snapshot of a Pool
-=========================
-
-To make a snapshot of a pool, execute::
-
- ceph osd pool mksnap {pool-name} {snap-name}
-
-.. note:: Version ``0.48`` Argonaut and above.
-
-
-Remove a Snapshot of a Pool
-===========================
-
-To remove a snapshot of a pool, execute::
-
- ceph osd pool rmsnap {pool-name} {snap-name}
-
-.. note:: Version ``0.48`` Argonaut and above.
-
-.. _setpoolvalues:
-
-
-Set Pool Values
-===============
-
-To set a value to a pool, execute the following::
-
- ceph osd pool set {pool-name} {key} {value}
-
-You may set values for the following keys:
-
-.. _compression_algorithm:
-
-``compression_algorithm``
-:Description: Sets inline compression algorithm to use for underlying BlueStore.
- This setting overrides the `global setting <rados/configuration/bluestore-config-ref/#inline-compression>`_ of ``bluestore compression algorithm``.
-
-:Type: String
-:Valid Settings: ``lz4``, ``snappy``, ``zlib``, ``zstd``
-
-``compression_mode``
-
-:Description: Sets the policy for the inline compression algorithm for underlying BlueStore.
- This setting overrides the `global setting <rados/configuration/bluestore-config-ref/#inline-compression>`_ of ``bluestore compression mode``.
-
-:Type: String
-:Valid Settings: ``none``, ``passive``, ``aggressive``, ``force``
-
-``compression_min_blob_size``
-
-:Description: Chunks smaller than this are never compressed.
- This setting overrides the `global setting <rados/configuration/bluestore-config-ref/#inline-compression>`_ of ``bluestore compression min blob *``.
-
-:Type: Unsigned Integer
-
-``compression_max_blob_size``
-
-:Description: Chunks larger than this are broken into smaller blobs sizing
- ``compression_max_blob_size`` before being compressed.
-
-:Type: Unsigned Integer
-
-.. _size:
-
-``size``
-
-:Description: Sets the number of replicas for objects in the pool.
- See `Set the Number of Object Replicas`_ for further details.
- Replicated pools only.
-
-:Type: Integer
-
-.. _min_size:
-
-``min_size``
-
-:Description: Sets the minimum number of replicas required for I/O.
- See `Set the Number of Object Replicas`_ for further details.
- Replicated pools only.
-
-:Type: Integer
-:Version: ``0.54`` and above
-
-.. _pg_num:
-
-``pg_num``
-
-:Description: The effective number of placement groups to use when calculating
- data placement.
-:Type: Integer
-:Valid Range: Superior to ``pg_num`` current value.
-
-.. _pgp_num:
-
-``pgp_num``
-
-:Description: The effective number of placement groups for placement to use
- when calculating data placement.
-
-:Type: Integer
-:Valid Range: Equal to or less than ``pg_num``.
-
-.. _crush_ruleset:
-
-``crush_ruleset``
-
-:Description: The ruleset to use for mapping object placement in the cluster.
-:Type: Integer
-
-.. _allow_ec_overwrites:
-
-``allow_ec_overwrites``
-
-:Description: Whether writes to an erasure coded pool can update part
- of an object, so cephfs and rbd can use it. See
- `Erasure Coding with Overwrites`_ for more details.
-:Type: Boolean
-:Version: ``12.2.0`` and above
-
-.. _hashpspool:
-
-``hashpspool``
-
-:Description: Set/Unset HASHPSPOOL flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-:Version: Version ``0.48`` Argonaut and above.
-
-.. _nodelete:
-
-``nodelete``
-
-:Description: Set/Unset NODELETE flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-:Version: Version ``FIXME``
-
-.. _nopgchange:
-
-``nopgchange``
-
-:Description: Set/Unset NOPGCHANGE flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-:Version: Version ``FIXME``
-
-.. _nosizechange:
-
-``nosizechange``
-
-:Description: Set/Unset NOSIZECHANGE flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-:Version: Version ``FIXME``
-
-.. _write_fadvise_dontneed:
-
-``write_fadvise_dontneed``
-
-:Description: Set/Unset WRITE_FADVISE_DONTNEED flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-
-.. _noscrub:
-
-``noscrub``
-
-:Description: Set/Unset NOSCRUB flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-
-.. _nodeep-scrub:
-
-``nodeep-scrub``
-
-:Description: Set/Unset NODEEP_SCRUB flag on a given pool.
-:Type: Integer
-:Valid Range: 1 sets flag, 0 unsets flag
-
-.. _hit_set_type:
-
-``hit_set_type``
-
-:Description: Enables hit set tracking for cache pools.
- See `Bloom Filter`_ for additional information.
-
-:Type: String
-:Valid Settings: ``bloom``, ``explicit_hash``, ``explicit_object``
-:Default: ``bloom``. Other values are for testing.
-
-.. _hit_set_count:
-
-``hit_set_count``
-
-:Description: The number of hit sets to store for cache pools. The higher
- the number, the more RAM consumed by the ``ceph-osd`` daemon.
-
-:Type: Integer
-:Valid Range: ``1``. Agent doesn't handle > 1 yet.
-
-.. _hit_set_period:
-
-``hit_set_period``
-
-:Description: The duration of a hit set period in seconds for cache pools.
- The higher the number, the more RAM consumed by the
- ``ceph-osd`` daemon.
-
-:Type: Integer
-:Example: ``3600`` 1hr
-
-.. _hit_set_fpp:
-
-``hit_set_fpp``
-
-:Description: The false positive probability for the ``bloom`` hit set type.
- See `Bloom Filter`_ for additional information.
-
-:Type: Double
-:Valid Range: 0.0 - 1.0
-:Default: ``0.05``
-
-.. _cache_target_dirty_ratio:
-
-``cache_target_dirty_ratio``
-
-:Description: The percentage of the cache pool containing modified (dirty)
- objects before the cache tiering agent will flush them to the
- backing storage pool.
-
-:Type: Double
-:Default: ``.4``
-
-.. _cache_target_dirty_high_ratio:
-
-``cache_target_dirty_high_ratio``
-
-:Description: The percentage of the cache pool containing modified (dirty)
- objects before the cache tiering agent will flush them to the
- backing storage pool with a higher speed.
-
-:Type: Double
-:Default: ``.6``
-
-.. _cache_target_full_ratio:
-
-``cache_target_full_ratio``
-
-:Description: The percentage of the cache pool containing unmodified (clean)
- objects before the cache tiering agent will evict them from the
- cache pool.
-
-:Type: Double
-:Default: ``.8``
-
-.. _target_max_bytes:
-
-``target_max_bytes``
-
-:Description: Ceph will begin flushing or evicting objects when the
- ``max_bytes`` threshold is triggered.
-
-:Type: Integer
-:Example: ``1000000000000`` #1-TB
-
-.. _target_max_objects:
-
-``target_max_objects``
-
-:Description: Ceph will begin flushing or evicting objects when the
- ``max_objects`` threshold is triggered.
-
-:Type: Integer
-:Example: ``1000000`` #1M objects
-
-
-``hit_set_grade_decay_rate``
-
-:Description: Temperature decay rate between two successive hit_sets
-:Type: Integer
-:Valid Range: 0 - 100
-:Default: ``20``
-
-
-``hit_set_search_last_n``
-
-:Description: Count at most N appearance in hit_sets for temperature calculation
-:Type: Integer
-:Valid Range: 0 - hit_set_count
-:Default: ``1``
-
-
-.. _cache_min_flush_age:
-
-``cache_min_flush_age``
-
-:Description: The time (in seconds) before the cache tiering agent will flush
- an object from the cache pool to the storage pool.
-
-:Type: Integer
-:Example: ``600`` 10min
-
-.. _cache_min_evict_age:
-
-``cache_min_evict_age``
-
-:Description: The time (in seconds) before the cache tiering agent will evict
- an object from the cache pool.
-
-:Type: Integer
-:Example: ``1800`` 30min
-
-.. _fast_read:
-
-``fast_read``
-
-:Description: On Erasure Coding pool, if this flag is turned on, the read request
- would issue sub reads to all shards, and waits until it receives enough
- shards to decode to serve the client. In the case of jerasure and isa
- erasure plugins, once the first K replies return, client's request is
- served immediately using the data decoded from these replies. This
- helps to tradeoff some resources for better performance. Currently this
- flag is only supported for Erasure Coding pool.
-
-:Type: Boolean
-:Defaults: ``0``
-
-.. _scrub_min_interval:
-
-``scrub_min_interval``
-
-:Description: The minimum interval in seconds for pool scrubbing when
- load is low. If it is 0, the value osd_scrub_min_interval
- from config is used.
-
-:Type: Double
-:Default: ``0``
-
-.. _scrub_max_interval:
-
-``scrub_max_interval``
-
-:Description: The maximum interval in seconds for pool scrubbing
- irrespective of cluster load. If it is 0, the value
- osd_scrub_max_interval from config is used.
-
-:Type: Double
-:Default: ``0``
-
-.. _deep_scrub_interval:
-
-``deep_scrub_interval``
-
-:Description: The interval in seconds for pool “deep†scrubbing. If it
- is 0, the value osd_deep_scrub_interval from config is used.
-
-:Type: Double
-:Default: ``0``
-
-
-Get Pool Values
-===============
-
-To get a value from a pool, execute the following::
-
- ceph osd pool get {pool-name} {key}
-
-You may get values for the following keys:
-
-``size``
-
-:Description: see size_
-
-:Type: Integer
-
-``min_size``
-
-:Description: see min_size_
-
-:Type: Integer
-:Version: ``0.54`` and above
-
-``pg_num``
-
-:Description: see pg_num_
-
-:Type: Integer
-
-
-``pgp_num``
-
-:Description: see pgp_num_
-
-:Type: Integer
-:Valid Range: Equal to or less than ``pg_num``.
-
-
-``crush_ruleset``
-
-:Description: see crush_ruleset_
-
-
-``hit_set_type``
-
-:Description: see hit_set_type_
-
-:Type: String
-:Valid Settings: ``bloom``, ``explicit_hash``, ``explicit_object``
-
-``hit_set_count``
-
-:Description: see hit_set_count_
-
-:Type: Integer
-
-
-``hit_set_period``
-
-:Description: see hit_set_period_
-
-:Type: Integer
-
-
-``hit_set_fpp``
-
-:Description: see hit_set_fpp_
-
-:Type: Double
-
-
-``cache_target_dirty_ratio``
-
-:Description: see cache_target_dirty_ratio_
-
-:Type: Double
-
-
-``cache_target_dirty_high_ratio``
-
-:Description: see cache_target_dirty_high_ratio_
-
-:Type: Double
-
-
-``cache_target_full_ratio``
-
-:Description: see cache_target_full_ratio_
-
-:Type: Double
-
-
-``target_max_bytes``
-
-:Description: see target_max_bytes_
-
-:Type: Integer
-
-
-``target_max_objects``
-
-:Description: see target_max_objects_
-
-:Type: Integer
-
-
-``cache_min_flush_age``
-
-:Description: see cache_min_flush_age_
-
-:Type: Integer
-
-
-``cache_min_evict_age``
-
-:Description: see cache_min_evict_age_
-
-:Type: Integer
-
-
-``fast_read``
-
-:Description: see fast_read_
-
-:Type: Boolean
-
-
-``scrub_min_interval``
-
-:Description: see scrub_min_interval_
-
-:Type: Double
-
-
-``scrub_max_interval``
-
-:Description: see scrub_max_interval_
-
-:Type: Double
-
-
-``deep_scrub_interval``
-
-:Description: see deep_scrub_interval_
-
-:Type: Double
-
-
-Set the Number of Object Replicas
-=================================
-
-To set the number of object replicas on a replicated pool, execute the following::
-
- ceph osd pool set {poolname} size {num-replicas}
-
-.. important:: The ``{num-replicas}`` includes the object itself.
- If you want the object and two copies of the object for a total of
- three instances of the object, specify ``3``.
-
-For example::
-
- ceph osd pool set data size 3
-
-You may execute this command for each pool. **Note:** An object might accept
-I/Os in degraded mode with fewer than ``pool size`` replicas. To set a minimum
-number of required replicas for I/O, you should use the ``min_size`` setting.
-For example::
-
- ceph osd pool set data min_size 2
-
-This ensures that no object in the data pool will receive I/O with fewer than
-``min_size`` replicas.
-
-
-Get the Number of Object Replicas
-=================================
-
-To get the number of object replicas, execute the following::
-
- ceph osd dump | grep 'replicated size'
-
-Ceph will list the pools, with the ``replicated size`` attribute highlighted.
-By default, ceph creates two replicas of an object (a total of three copies, or
-a size of 3).
-
-
-
-.. _Pool, PG and CRUSH Config Reference: ../../configuration/pool-pg-config-ref
-.. _Bloom Filter: http://en.wikipedia.org/wiki/Bloom_filter
-.. _setting the number of placement groups: ../placement-groups#set-the-number-of-placement-groups
-.. _Erasure Coding with Overwrites: ../erasure-code#erasure-coding-with-overwrites
-.. _Block Device Commands: ../../../rbd/rados-rbd-cmds/#create-a-block-device-pool
-
diff --git a/src/ceph/doc/rados/operations/upmap.rst b/src/ceph/doc/rados/operations/upmap.rst
deleted file mode 100644
index 58f6322..0000000
--- a/src/ceph/doc/rados/operations/upmap.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-Using the pg-upmap
-==================
-
-Starting in Luminous v12.2.z there is a new *pg-upmap* exception table
-in the OSDMap that allows the cluster to explicitly map specific PGs to
-specific OSDs. This allows the cluster to fine-tune the data
-distribution to, in most cases, perfectly distributed PGs across OSDs.
-
-The key caveat to this new mechanism is that it requires that all
-clients understand the new *pg-upmap* structure in the OSDMap.
-
-Enabling
---------
-
-To allow use of the feature, you must tell the cluster that it only
-needs to support luminous (and newer) clients with::
-
- ceph osd set-require-min-compat-client luminous
-
-This command will fail if any pre-luminous clients or daemons are
-connected to the monitors. You can see what client versions are in
-use with::
-
- ceph features
-
-A word of caution
------------------
-
-This is a new feature and not very user friendly. At the time of this
-writing we are working on a new `balancer` module for ceph-mgr that
-will eventually do all of this automatically.
-
-Until then,
-
-Offline optimization
---------------------
-
-Upmap entries are updated with an offline optimizer built into ``osdmaptool``.
-
-#. Grab the latest copy of your osdmap::
-
- ceph osd getmap -o om
-
-#. Run the optimizer::
-
- osdmaptool om --upmap out.txt [--upmap-pool <pool>] [--upmap-max <max-count>] [--upmap-deviation <max-deviation>]
-
- It is highly recommended that optimization be done for each pool
- individually, or for sets of similarly-utilized pools. You can
- specify the ``--upmap-pool`` option multiple times. "Similar pools"
- means pools that are mapped to the same devices and store the same
- kind of data (e.g., RBD image pools, yes; RGW index pool and RGW
- data pool, no).
-
- The ``max-count`` value is the maximum number of upmap entries to
- identify in the run. The default is 100, but you may want to make
- this a smaller number so that the tool completes more quickly (but
- does less work). If it cannot find any additional changes to make
- it will stop early (i.e., when the pool distribution is perfect).
-
- The ``max-deviation`` value defaults to `.01` (i.e., 1%). If an OSD
- utilization varies from the average by less than this amount it
- will be considered perfect.
-
-#. The proposed changes are written to the output file ``out.txt`` in
- the example above. These are normal ceph CLI commands that can be
- run to apply the changes to the cluster. This can be done with::
-
- source out.txt
-
-The above steps can be repeated as many times as necessary to achieve
-a perfect distribution of PGs for each set of pools.
-
-You can see some (gory) details about what the tool is doing by
-passing ``--debug-osd 10`` to ``osdmaptool``.
diff --git a/src/ceph/doc/rados/operations/user-management.rst b/src/ceph/doc/rados/operations/user-management.rst
deleted file mode 100644
index 8a35a50..0000000
--- a/src/ceph/doc/rados/operations/user-management.rst
+++ /dev/null
@@ -1,665 +0,0 @@
-=================
- User Management
-=================
-
-This document describes :term:`Ceph Client` users, and their authentication and
-authorization with the :term:`Ceph Storage Cluster`. Users are either
-individuals or system actors such as applications, which use Ceph clients to
-interact with the Ceph Storage Cluster daemons.
-
-.. ditaa:: +-----+
- | {o} |
- | |
- +--+--+ /---------\ /---------\
- | | Ceph | | Ceph |
- ---+---*----->| |<------------->| |
- | uses | Clients | | Servers |
- | \---------/ \---------/
- /--+--\
- | |
- | |
- actor
-
-
-When Ceph runs with authentication and authorization enabled (enabled by
-default), you must specify a user name and a keyring containing the secret key
-of the specified user (usually via the command line). If you do not specify a
-user name, Ceph will use ``client.admin`` as the default user name. If you do
-not specify a keyring, Ceph will look for a keyring via the ``keyring`` setting
-in the Ceph configuration. For example, if you execute the ``ceph health``
-command without specifying a user or keyring::
-
- ceph health
-
-Ceph interprets the command like this::
-
- ceph -n client.admin --keyring=/etc/ceph/ceph.client.admin.keyring health
-
-Alternatively, you may use the ``CEPH_ARGS`` environment variable to avoid
-re-entry of the user name and secret.
-
-For details on configuring the Ceph Storage Cluster to use authentication,
-see `Cephx Config Reference`_. For details on the architecture of Cephx, see
-`Architecture - High Availability Authentication`_.
-
-
-Background
-==========
-
-Irrespective of the type of Ceph client (e.g., Block Device, Object Storage,
-Filesystem, native API, etc.), Ceph stores all data as objects within `pools`_.
-Ceph users must have access to pools in order to read and write data.
-Additionally, Ceph users must have execute permissions to use Ceph's
-administrative commands. The following concepts will help you understand Ceph
-user management.
-
-
-User
-----
-
-A user is either an individual or a system actor such as an application.
-Creating users allows you to control who (or what) can access your Ceph Storage
-Cluster, its pools, and the data within pools.
-
-Ceph has the notion of a ``type`` of user. For the purposes of user management,
-the type will always be ``client``. Ceph identifies users in period (.)
-delimited form consisting of the user type and the user ID: for example,
-``TYPE.ID``, ``client.admin``, or ``client.user1``. The reason for user typing
-is that Ceph Monitors, OSDs, and Metadata Servers also use the Cephx protocol,
-but they are not clients. Distinguishing the user type helps to distinguish
-between client users and other users--streamlining access control, user
-monitoring and traceability.
-
-Sometimes Ceph's user type may seem confusing, because the Ceph command line
-allows you to specify a user with or without the type, depending upon your
-command line usage. If you specify ``--user`` or ``--id``, you can omit the
-type. So ``client.user1`` can be entered simply as ``user1``. If you specify
-``--name`` or ``-n``, you must specify the type and name, such as
-``client.user1``. We recommend using the type and name as a best practice
-wherever possible.
-
-.. note:: A Ceph Storage Cluster user is not the same as a Ceph Object Storage
- user or a Ceph Filesystem user. The Ceph Object Gateway uses a Ceph Storage
- Cluster user to communicate between the gateway daemon and the storage
- cluster, but the gateway has its own user management functionality for end
- users. The Ceph Filesystem uses POSIX semantics. The user space associated
- with the Ceph Filesystem is not the same as a Ceph Storage Cluster user.
-
-
-
-Authorization (Capabilities)
-----------------------------
-
-Ceph uses the term "capabilities" (caps) to describe authorizing an
-authenticated user to exercise the functionality of the monitors, OSDs and
-metadata servers. Capabilities can also restrict access to data within a pool or
-a namespace within a pool. A Ceph administrative user sets a user's
-capabilities when creating or updating a user.
-
-Capability syntax follows the form::
-
- {daemon-type} '{capspec}[, {capspec} ...]'
-
-- **Monitor Caps:** Monitor capabilities include ``r``, ``w``, ``x`` access
- settings or ``profile {name}``. For example::
-
- mon 'allow rwx'
- mon 'profile osd'
-
-- **OSD Caps:** OSD capabilities include ``r``, ``w``, ``x``, ``class-read``,
- ``class-write`` access settings or ``profile {name}``. Additionally, OSD
- capabilities also allow for pool and namespace settings. ::
-
- osd 'allow {access} [pool={pool-name} [namespace={namespace-name}]]'
- osd 'profile {name} [pool={pool-name} [namespace={namespace-name}]]'
-
-- **Metadata Server Caps:** For administrators, use ``allow *``. For all
- other users, such as CephFS clients, consult :doc:`/cephfs/client-auth`
-
-
-.. note:: The Ceph Object Gateway daemon (``radosgw``) is a client of the
- Ceph Storage Cluster, so it is not represented as a Ceph Storage
- Cluster daemon type.
-
-The following entries describe each capability.
-
-``allow``
-
-:Description: Precedes access settings for a daemon. Implies ``rw``
- for MDS only.
-
-
-``r``
-
-:Description: Gives the user read access. Required with monitors to retrieve
- the CRUSH map.
-
-
-``w``
-
-:Description: Gives the user write access to objects.
-
-
-``x``
-
-:Description: Gives the user the capability to call class methods
- (i.e., both read and write) and to conduct ``auth``
- operations on monitors.
-
-
-``class-read``
-
-:Descriptions: Gives the user the capability to call class read methods.
- Subset of ``x``.
-
-
-``class-write``
-
-:Description: Gives the user the capability to call class write methods.
- Subset of ``x``.
-
-
-``*``
-
-:Description: Gives the user read, write and execute permissions for a
- particular daemon/pool, and the ability to execute
- admin commands.
-
-
-``profile osd`` (Monitor only)
-
-:Description: Gives a user permissions to connect as an OSD to other OSDs or
- monitors. Conferred on OSDs to enable OSDs to handle replication
- heartbeat traffic and status reporting.
-
-
-``profile mds`` (Monitor only)
-
-:Description: Gives a user permissions to connect as a MDS to other MDSs or
- monitors.
-
-
-``profile bootstrap-osd`` (Monitor only)
-
-:Description: Gives a user permissions to bootstrap an OSD. Conferred on
- deployment tools such as ``ceph-disk``, ``ceph-deploy``, etc.
- so that they have permissions to add keys, etc. when
- bootstrapping an OSD.
-
-
-``profile bootstrap-mds`` (Monitor only)
-
-:Description: Gives a user permissions to bootstrap a metadata server.
- Conferred on deployment tools such as ``ceph-deploy``, etc.
- so they have permissions to add keys, etc. when bootstrapping
- a metadata server.
-
-``profile rbd`` (Monitor and OSD)
-
-:Description: Gives a user permissions to manipulate RBD images. When used
- as a Monitor cap, it provides the minimal privileges required
- by an RBD client application. When used as an OSD cap, it
- provides read-write access to an RBD client application.
-
-``profile rbd-read-only`` (OSD only)
-
-:Description: Gives a user read-only permissions to an RBD image.
-
-
-Pool
-----
-
-A pool is a logical partition where users store data.
-In Ceph deployments, it is common to create a pool as a logical partition for
-similar types of data. For example, when deploying Ceph as a backend for
-OpenStack, a typical deployment would have pools for volumes, images, backups
-and virtual machines, and users such as ``client.glance``, ``client.cinder``,
-etc.
-
-
-Namespace
----------
-
-Objects within a pool can be associated to a namespace--a logical group of
-objects within the pool. A user's access to a pool can be associated with a
-namespace such that reads and writes by the user take place only within the
-namespace. Objects written to a namespace within the pool can only be accessed
-by users who have access to the namespace.
-
-.. note:: Namespaces are primarily useful for applications written on top of
- ``librados`` where the logical grouping can alleviate the need to create
- different pools. Ceph Object Gateway (from ``luminous``) uses namespaces for various
- metadata objects.
-
-The rationale for namespaces is that pools can be a computationally expensive
-method of segregating data sets for the purposes of authorizing separate sets
-of users. For example, a pool should have ~100 placement groups per OSD. So an
-exemplary cluster with 1000 OSDs would have 100,000 placement groups for one
-pool. Each pool would create another 100,000 placement groups in the exemplary
-cluster. By contrast, writing an object to a namespace simply associates the
-namespace to the object name with out the computational overhead of a separate
-pool. Rather than creating a separate pool for a user or set of users, you may
-use a namespace. **Note:** Only available using ``librados`` at this time.
-
-
-Managing Users
-==============
-
-User management functionality provides Ceph Storage Cluster administrators with
-the ability to create, update and delete users directly in the Ceph Storage
-Cluster.
-
-When you create or delete users in the Ceph Storage Cluster, you may need to
-distribute keys to clients so that they can be added to keyrings. See `Keyring
-Management`_ for details.
-
-
-List Users
-----------
-
-To list the users in your cluster, execute the following::
-
- ceph auth ls
-
-Ceph will list out all users in your cluster. For example, in a two-node
-exemplary cluster, ``ceph auth ls`` will output something that looks like
-this::
-
- installed auth entries:
-
- osd.0
- key: AQCvCbtToC6MDhAATtuT70Sl+DymPCfDSsyV4w==
- caps: [mon] allow profile osd
- caps: [osd] allow *
- osd.1
- key: AQC4CbtTCFJBChAAVq5spj0ff4eHZICxIOVZeA==
- caps: [mon] allow profile osd
- caps: [osd] allow *
- client.admin
- key: AQBHCbtT6APDHhAA5W00cBchwkQjh3dkKsyPjw==
- caps: [mds] allow
- caps: [mon] allow *
- caps: [osd] allow *
- client.bootstrap-mds
- key: AQBICbtTOK9uGBAAdbe5zcIGHZL3T/u2g6EBww==
- caps: [mon] allow profile bootstrap-mds
- client.bootstrap-osd
- key: AQBHCbtT4GxqORAADE5u7RkpCN/oo4e5W0uBtw==
- caps: [mon] allow profile bootstrap-osd
-
-
-Note that the ``TYPE.ID`` notation for users applies such that ``osd.0`` is a
-user of type ``osd`` and its ID is ``0``, ``client.admin`` is a user of type
-``client`` and its ID is ``admin`` (i.e., the default ``client.admin`` user).
-Note also that each entry has a ``key: <value>`` entry, and one or more
-``caps:`` entries.
-
-You may use the ``-o {filename}`` option with ``ceph auth ls`` to
-save the output to a file.
-
-
-Get a User
-----------
-
-To retrieve a specific user, key and capabilities, execute the
-following::
-
- ceph auth get {TYPE.ID}
-
-For example::
-
- ceph auth get client.admin
-
-You may also use the ``-o {filename}`` option with ``ceph auth get`` to
-save the output to a file. Developers may also execute the following::
-
- ceph auth export {TYPE.ID}
-
-The ``auth export`` command is identical to ``auth get``, but also prints
-out the internal ``auid``, which is not relevant to end users.
-
-
-
-Add a User
-----------
-
-Adding a user creates a username (i.e., ``TYPE.ID``), a secret key and
-any capabilities included in the command you use to create the user.
-
-A user's key enables the user to authenticate with the Ceph Storage Cluster.
-The user's capabilities authorize the user to read, write, or execute on Ceph
-monitors (``mon``), Ceph OSDs (``osd``) or Ceph Metadata Servers (``mds``).
-
-There are a few ways to add a user:
-
-- ``ceph auth add``: This command is the canonical way to add a user. It
- will create the user, generate a key and add any specified capabilities.
-
-- ``ceph auth get-or-create``: This command is often the most convenient way
- to create a user, because it returns a keyfile format with the user name
- (in brackets) and the key. If the user already exists, this command
- simply returns the user name and key in the keyfile format. You may use the
- ``-o {filename}`` option to save the output to a file.
-
-- ``ceph auth get-or-create-key``: This command is a convenient way to create
- a user and return the user's key (only). This is useful for clients that
- need the key only (e.g., libvirt). If the user already exists, this command
- simply returns the key. You may use the ``-o {filename}`` option to save the
- output to a file.
-
-When creating client users, you may create a user with no capabilities. A user
-with no capabilities is useless beyond mere authentication, because the client
-cannot retrieve the cluster map from the monitor. However, you can create a
-user with no capabilities if you wish to defer adding capabilities later using
-the ``ceph auth caps`` command.
-
-A typical user has at least read capabilities on the Ceph monitor and
-read and write capability on Ceph OSDs. Additionally, a user's OSD permissions
-are often restricted to accessing a particular pool. ::
-
- ceph auth add client.john mon 'allow r' osd 'allow rw pool=liverpool'
- ceph auth get-or-create client.paul mon 'allow r' osd 'allow rw pool=liverpool'
- ceph auth get-or-create client.george mon 'allow r' osd 'allow rw pool=liverpool' -o george.keyring
- ceph auth get-or-create-key client.ringo mon 'allow r' osd 'allow rw pool=liverpool' -o ringo.key
-
-
-.. important:: If you provide a user with capabilities to OSDs, but you DO NOT
- restrict access to particular pools, the user will have access to ALL
- pools in the cluster!
-
-
-.. _modify-user-capabilities:
-
-Modify User Capabilities
-------------------------
-
-The ``ceph auth caps`` command allows you to specify a user and change the
-user's capabilities. Setting new capabilities will overwrite current capabilities.
-To view current capabilities run ``ceph auth get USERTYPE.USERID``. To add
-capabilities, you should also specify the existing capabilities when using the form::
-
- ceph auth caps USERTYPE.USERID {daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]' [{daemon} 'allow [r|w|x|*|...] [pool={pool-name}] [namespace={namespace-name}]']
-
-For example::
-
- ceph auth get client.john
- ceph auth caps client.john mon 'allow r' osd 'allow rw pool=liverpool'
- ceph auth caps client.paul mon 'allow rw' osd 'allow rwx pool=liverpool'
- ceph auth caps client.brian-manager mon 'allow *' osd 'allow *'
-
-To remove a capability, you may reset the capability. If you want the user
-to have no access to a particular daemon that was previously set, specify
-an empty string. For example::
-
- ceph auth caps client.ringo mon ' ' osd ' '
-
-See `Authorization (Capabilities)`_ for additional details on capabilities.
-
-
-Delete a User
--------------
-
-To delete a user, use ``ceph auth del``::
-
- ceph auth del {TYPE}.{ID}
-
-Where ``{TYPE}`` is one of ``client``, ``osd``, ``mon``, or ``mds``,
-and ``{ID}`` is the user name or ID of the daemon.
-
-
-Print a User's Key
-------------------
-
-To print a user's authentication key to standard output, execute the following::
-
- ceph auth print-key {TYPE}.{ID}
-
-Where ``{TYPE}`` is one of ``client``, ``osd``, ``mon``, or ``mds``,
-and ``{ID}`` is the user name or ID of the daemon.
-
-Printing a user's key is useful when you need to populate client
-software with a user's key (e.g., libvirt). ::
-
- mount -t ceph serverhost:/ mountpoint -o name=client.user,secret=`ceph auth print-key client.user`
-
-
-Import a User(s)
-----------------
-
-To import one or more users, use ``ceph auth import`` and
-specify a keyring::
-
- ceph auth import -i /path/to/keyring
-
-For example::
-
- sudo ceph auth import -i /etc/ceph/ceph.keyring
-
-
-.. note:: The ceph storage cluster will add new users, their keys and their
- capabilities and will update existing users, their keys and their
- capabilities.
-
-
-Keyring Management
-==================
-
-When you access Ceph via a Ceph client, the Ceph client will look for a local
-keyring. Ceph presets the ``keyring`` setting with the following four keyring
-names by default so you don't have to set them in your Ceph configuration file
-unless you want to override the defaults (not recommended):
-
-- ``/etc/ceph/$cluster.$name.keyring``
-- ``/etc/ceph/$cluster.keyring``
-- ``/etc/ceph/keyring``
-- ``/etc/ceph/keyring.bin``
-
-The ``$cluster`` metavariable is your Ceph cluster name as defined by the
-name of the Ceph configuration file (i.e., ``ceph.conf`` means the cluster name
-is ``ceph``; thus, ``ceph.keyring``). The ``$name`` metavariable is the user
-type and user ID (e.g., ``client.admin``; thus, ``ceph.client.admin.keyring``).
-
-.. note:: When executing commands that read or write to ``/etc/ceph``, you may
- need to use ``sudo`` to execute the command as ``root``.
-
-After you create a user (e.g., ``client.ringo``), you must get the key and add
-it to a keyring on a Ceph client so that the user can access the Ceph Storage
-Cluster.
-
-The `User Management`_ section details how to list, get, add, modify and delete
-users directly in the Ceph Storage Cluster. However, Ceph also provides the
-``ceph-authtool`` utility to allow you to manage keyrings from a Ceph client.
-
-
-Create a Keyring
-----------------
-
-When you use the procedures in the `Managing Users`_ section to create users,
-you need to provide user keys to the Ceph client(s) so that the Ceph client
-can retrieve the key for the specified user and authenticate with the Ceph
-Storage Cluster. Ceph Clients access keyrings to lookup a user name and
-retrieve the user's key.
-
-The ``ceph-authtool`` utility allows you to create a keyring. To create an
-empty keyring, use ``--create-keyring`` or ``-C``. For example::
-
- ceph-authtool --create-keyring /path/to/keyring
-
-When creating a keyring with multiple users, we recommend using the cluster name
-(e.g., ``$cluster.keyring``) for the keyring filename and saving it in the
-``/etc/ceph`` directory so that the ``keyring`` configuration default setting
-will pick up the filename without requiring you to specify it in the local copy
-of your Ceph configuration file. For example, create ``ceph.keyring`` by
-executing the following::
-
- sudo ceph-authtool -C /etc/ceph/ceph.keyring
-
-When creating a keyring with a single user, we recommend using the cluster name,
-the user type and the user name and saving it in the ``/etc/ceph`` directory.
-For example, ``ceph.client.admin.keyring`` for the ``client.admin`` user.
-
-To create a keyring in ``/etc/ceph``, you must do so as ``root``. This means
-the file will have ``rw`` permissions for the ``root`` user only, which is
-appropriate when the keyring contains administrator keys. However, if you
-intend to use the keyring for a particular user or group of users, ensure
-that you execute ``chown`` or ``chmod`` to establish appropriate keyring
-ownership and access.
-
-
-Add a User to a Keyring
------------------------
-
-When you `Add a User`_ to the Ceph Storage Cluster, you can use the `Get a
-User`_ procedure to retrieve a user, key and capabilities and save the user to a
-keyring.
-
-When you only want to use one user per keyring, the `Get a User`_ procedure with
-the ``-o`` option will save the output in the keyring file format. For example,
-to create a keyring for the ``client.admin`` user, execute the following::
-
- sudo ceph auth get client.admin -o /etc/ceph/ceph.client.admin.keyring
-
-Notice that we use the recommended file format for an individual user.
-
-When you want to import users to a keyring, you can use ``ceph-authtool``
-to specify the destination keyring and the source keyring.
-For example::
-
- sudo ceph-authtool /etc/ceph/ceph.keyring --import-keyring /etc/ceph/ceph.client.admin.keyring
-
-
-Create a User
--------------
-
-Ceph provides the `Add a User`_ function to create a user directly in the Ceph
-Storage Cluster. However, you can also create a user, keys and capabilities
-directly on a Ceph client keyring. Then, you can import the user to the Ceph
-Storage Cluster. For example::
-
- sudo ceph-authtool -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' /etc/ceph/ceph.keyring
-
-See `Authorization (Capabilities)`_ for additional details on capabilities.
-
-You can also create a keyring and add a new user to the keyring simultaneously.
-For example::
-
- sudo ceph-authtool -C /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx' --gen-key
-
-In the foregoing scenarios, the new user ``client.ringo`` is only in the
-keyring. To add the new user to the Ceph Storage Cluster, you must still add
-the new user to the Ceph Storage Cluster. ::
-
- sudo ceph auth add client.ringo -i /etc/ceph/ceph.keyring
-
-
-Modify a User
--------------
-
-To modify the capabilities of a user record in a keyring, specify the keyring,
-and the user followed by the capabilities. For example::
-
- sudo ceph-authtool /etc/ceph/ceph.keyring -n client.ringo --cap osd 'allow rwx' --cap mon 'allow rwx'
-
-To update the user to the Ceph Storage Cluster, you must update the user
-in the keyring to the user entry in the the Ceph Storage Cluster. ::
-
- sudo ceph auth import -i /etc/ceph/ceph.keyring
-
-See `Import a User(s)`_ for details on updating a Ceph Storage Cluster user
-from a keyring.
-
-You may also `Modify User Capabilities`_ directly in the cluster, store the
-results to a keyring file; then, import the keyring into your main
-``ceph.keyring`` file.
-
-
-Command Line Usage
-==================
-
-Ceph supports the following usage for user name and secret:
-
-``--id`` | ``--user``
-
-:Description: Ceph identifies users with a type and an ID (e.g., ``TYPE.ID`` or
- ``client.admin``, ``client.user1``). The ``id``, ``name`` and
- ``-n`` options enable you to specify the ID portion of the user
- name (e.g., ``admin``, ``user1``, ``foo``, etc.). You can specify
- the user with the ``--id`` and omit the type. For example,
- to specify user ``client.foo`` enter the following::
-
- ceph --id foo --keyring /path/to/keyring health
- ceph --user foo --keyring /path/to/keyring health
-
-
-``--name`` | ``-n``
-
-:Description: Ceph identifies users with a type and an ID (e.g., ``TYPE.ID`` or
- ``client.admin``, ``client.user1``). The ``--name`` and ``-n``
- options enables you to specify the fully qualified user name.
- You must specify the user type (typically ``client``) with the
- user ID. For example::
-
- ceph --name client.foo --keyring /path/to/keyring health
- ceph -n client.foo --keyring /path/to/keyring health
-
-
-``--keyring``
-
-:Description: The path to the keyring containing one or more user name and
- secret. The ``--secret`` option provides the same functionality,
- but it does not work with Ceph RADOS Gateway, which uses
- ``--secret`` for another purpose. You may retrieve a keyring with
- ``ceph auth get-or-create`` and store it locally. This is a
- preferred approach, because you can switch user names without
- switching the keyring path. For example::
-
- sudo rbd map --id foo --keyring /path/to/keyring mypool/myimage
-
-
-.. _pools: ../pools
-
-
-Limitations
-===========
-
-The ``cephx`` protocol authenticates Ceph clients and servers to each other. It
-is not intended to handle authentication of human users or application programs
-run on their behalf. If that effect is required to handle your access control
-needs, you must have another mechanism, which is likely to be specific to the
-front end used to access the Ceph object store. This other mechanism has the
-role of ensuring that only acceptable users and programs are able to run on the
-machine that Ceph will permit to access its object store.
-
-The keys used to authenticate Ceph clients and servers are typically stored in
-a plain text file with appropriate permissions in a trusted host.
-
-.. important:: Storing keys in plaintext files has security shortcomings, but
- they are difficult to avoid, given the basic authentication methods Ceph
- uses in the background. Those setting up Ceph systems should be aware of
- these shortcomings.
-
-In particular, arbitrary user machines, especially portable machines, should not
-be configured to interact directly with Ceph, since that mode of use would
-require the storage of a plaintext authentication key on an insecure machine.
-Anyone who stole that machine or obtained surreptitious access to it could
-obtain the key that will allow them to authenticate their own machines to Ceph.
-
-Rather than permitting potentially insecure machines to access a Ceph object
-store directly, users should be required to sign in to a trusted machine in
-your environment using a method that provides sufficient security for your
-purposes. That trusted machine will store the plaintext Ceph keys for the
-human users. A future version of Ceph may address these particular
-authentication issues more fully.
-
-At the moment, none of the Ceph authentication protocols provide secrecy for
-messages in transit. Thus, an eavesdropper on the wire can hear and understand
-all data sent between clients and servers in Ceph, even if it cannot create or
-alter them. Further, Ceph does not include options to encrypt user data in the
-object store. Users can hand-encrypt and store their own data in the Ceph
-object store, of course, but Ceph provides no features to perform object
-encryption itself. Those storing sensitive data in Ceph should consider
-encrypting their data before providing it to the Ceph system.
-
-
-.. _Architecture - High Availability Authentication: ../../../architecture#high-availability-authentication
-.. _Cephx Config Reference: ../../configuration/auth-config-ref
diff --git a/src/ceph/doc/rados/troubleshooting/community.rst b/src/ceph/doc/rados/troubleshooting/community.rst
deleted file mode 100644
index 9faad13..0000000
--- a/src/ceph/doc/rados/troubleshooting/community.rst
+++ /dev/null
@@ -1,29 +0,0 @@
-====================
- The Ceph Community
-====================
-
-The Ceph community is an excellent source of information and help. For
-operational issues with Ceph releases we recommend you `subscribe to the
-ceph-users email list`_. When you no longer want to receive emails, you can
-`unsubscribe from the ceph-users email list`_.
-
-You may also `subscribe to the ceph-devel email list`_. You should do so if
-your issue is:
-
-- Likely related to a bug
-- Related to a development release package
-- Related to a development testing package
-- Related to your own builds
-
-If you no longer want to receive emails from the ``ceph-devel`` email list, you
-may `unsubscribe from the ceph-devel email list`_.
-
-.. tip:: The Ceph community is growing rapidly, and community members can help
- you if you provide them with detailed information about your problem. You
- can attach the output of the ``ceph report`` command to help people understand your issues.
-
-.. _subscribe to the ceph-devel email list: mailto:majordomo@vger.kernel.org?body=subscribe+ceph-devel
-.. _unsubscribe from the ceph-devel email list: mailto:majordomo@vger.kernel.org?body=unsubscribe+ceph-devel
-.. _subscribe to the ceph-users email list: mailto:ceph-users-join@lists.ceph.com
-.. _unsubscribe from the ceph-users email list: mailto:ceph-users-leave@lists.ceph.com
-.. _ceph-devel: ceph-devel@vger.kernel.org \ No newline at end of file
diff --git a/src/ceph/doc/rados/troubleshooting/cpu-profiling.rst b/src/ceph/doc/rados/troubleshooting/cpu-profiling.rst
deleted file mode 100644
index 159f799..0000000
--- a/src/ceph/doc/rados/troubleshooting/cpu-profiling.rst
+++ /dev/null
@@ -1,67 +0,0 @@
-===============
- CPU Profiling
-===============
-
-If you built Ceph from source and compiled Ceph for use with `oprofile`_
-you can profile Ceph's CPU usage. See `Installing Oprofile`_ for details.
-
-
-Initializing oprofile
-=====================
-
-The first time you use ``oprofile`` you need to initialize it. Locate the
-``vmlinux`` image corresponding to the kernel you are now running. ::
-
- ls /boot
- sudo opcontrol --init
- sudo opcontrol --setup --vmlinux={path-to-image} --separate=library --callgraph=6
-
-
-Starting oprofile
-=================
-
-To start ``oprofile`` execute the following command::
-
- opcontrol --start
-
-Once you start ``oprofile``, you may run some tests with Ceph.
-
-
-Stopping oprofile
-=================
-
-To stop ``oprofile`` execute the following command::
-
- opcontrol --stop
-
-
-Retrieving oprofile Results
-===========================
-
-To retrieve the top ``cmon`` results, execute the following command::
-
- opreport -gal ./cmon | less
-
-
-To retrieve the top ``cmon`` results with call graphs attached, execute the
-following command::
-
- opreport -cal ./cmon | less
-
-.. important:: After reviewing results, you should reset ``oprofile`` before
- running it again. Resetting ``oprofile`` removes data from the session
- directory.
-
-
-Resetting oprofile
-==================
-
-To reset ``oprofile``, execute the following command::
-
- sudo opcontrol --reset
-
-.. important:: You should reset ``oprofile`` after analyzing data so that
- you do not commingle results from different tests.
-
-.. _oprofile: http://oprofile.sourceforge.net/about/
-.. _Installing Oprofile: ../../../dev/cpu-profiler
diff --git a/src/ceph/doc/rados/troubleshooting/index.rst b/src/ceph/doc/rados/troubleshooting/index.rst
deleted file mode 100644
index 80d14f3..0000000
--- a/src/ceph/doc/rados/troubleshooting/index.rst
+++ /dev/null
@@ -1,19 +0,0 @@
-=================
- Troubleshooting
-=================
-
-Ceph is still on the leading edge, so you may encounter situations that require
-you to examine your configuration, modify your logging output, troubleshoot
-monitors and OSDs, profile memory and CPU usage, and reach out to the
-Ceph community for help.
-
-.. toctree::
- :maxdepth: 1
-
- community
- log-and-debug
- troubleshooting-mon
- troubleshooting-osd
- troubleshooting-pg
- memory-profiling
- cpu-profiling
diff --git a/src/ceph/doc/rados/troubleshooting/log-and-debug.rst b/src/ceph/doc/rados/troubleshooting/log-and-debug.rst
deleted file mode 100644
index c91f272..0000000
--- a/src/ceph/doc/rados/troubleshooting/log-and-debug.rst
+++ /dev/null
@@ -1,550 +0,0 @@
-=======================
- Logging and Debugging
-=======================
-
-Typically, when you add debugging to your Ceph configuration, you do so at
-runtime. You can also add Ceph debug logging to your Ceph configuration file if
-you are encountering issues when starting your cluster. You may view Ceph log
-files under ``/var/log/ceph`` (the default location).
-
-.. tip:: When debug output slows down your system, the latency can hide
- race conditions.
-
-Logging is resource intensive. If you are encountering a problem in a specific
-area of your cluster, enable logging for that area of the cluster. For example,
-if your OSDs are running fine, but your metadata servers are not, you should
-start by enabling debug logging for the specific metadata server instance(s)
-giving you trouble. Enable logging for each subsystem as needed.
-
-.. important:: Verbose logging can generate over 1GB of data per hour. If your
- OS disk reaches its capacity, the node will stop working.
-
-If you enable or increase the rate of Ceph logging, ensure that you have
-sufficient disk space on your OS disk. See `Accelerating Log Rotation`_ for
-details on rotating log files. When your system is running well, remove
-unnecessary debugging settings to ensure your cluster runs optimally. Logging
-debug output messages is relatively slow, and a waste of resources when
-operating your cluster.
-
-See `Subsystem, Log and Debug Settings`_ for details on available settings.
-
-Runtime
-=======
-
-If you would like to see the configuration settings at runtime, you must log
-in to a host with a running daemon and execute the following::
-
- ceph daemon {daemon-name} config show | less
-
-For example,::
-
- ceph daemon osd.0 config show | less
-
-To activate Ceph's debugging output (*i.e.*, ``dout()``) at runtime, use the
-``ceph tell`` command to inject arguments into the runtime configuration::
-
- ceph tell {daemon-type}.{daemon id or *} injectargs --{name} {value} [--{name} {value}]
-
-Replace ``{daemon-type}`` with one of ``osd``, ``mon`` or ``mds``. You may apply
-the runtime setting to all daemons of a particular type with ``*``, or specify
-a specific daemon's ID. For example, to increase
-debug logging for a ``ceph-osd`` daemon named ``osd.0``, execute the following::
-
- ceph tell osd.0 injectargs --debug-osd 0/5
-
-The ``ceph tell`` command goes through the monitors. If you cannot bind to the
-monitor, you can still make the change by logging into the host of the daemon
-whose configuration you'd like to change using ``ceph daemon``.
-For example::
-
- sudo ceph daemon osd.0 config set debug_osd 0/5
-
-See `Subsystem, Log and Debug Settings`_ for details on available settings.
-
-
-Boot Time
-=========
-
-To activate Ceph's debugging output (*i.e.*, ``dout()``) at boot time, you must
-add settings to your Ceph configuration file. Subsystems common to each daemon
-may be set under ``[global]`` in your configuration file. Subsystems for
-particular daemons are set under the daemon section in your configuration file
-(*e.g.*, ``[mon]``, ``[osd]``, ``[mds]``). For example::
-
- [global]
- debug ms = 1/5
-
- [mon]
- debug mon = 20
- debug paxos = 1/5
- debug auth = 2
-
- [osd]
- debug osd = 1/5
- debug filestore = 1/5
- debug journal = 1
- debug monc = 5/20
-
- [mds]
- debug mds = 1
- debug mds balancer = 1
-
-
-See `Subsystem, Log and Debug Settings`_ for details.
-
-
-Accelerating Log Rotation
-=========================
-
-If your OS disk is relatively full, you can accelerate log rotation by modifying
-the Ceph log rotation file at ``/etc/logrotate.d/ceph``. Add a size setting
-after the rotation frequency to accelerate log rotation (via cronjob) if your
-logs exceed the size setting. For example, the default setting looks like
-this::
-
- rotate 7
- weekly
- compress
- sharedscripts
-
-Modify it by adding a ``size`` setting. ::
-
- rotate 7
- weekly
- size 500M
- compress
- sharedscripts
-
-Then, start the crontab editor for your user space. ::
-
- crontab -e
-
-Finally, add an entry to check the ``etc/logrotate.d/ceph`` file. ::
-
- 30 * * * * /usr/sbin/logrotate /etc/logrotate.d/ceph >/dev/null 2>&1
-
-The preceding example checks the ``etc/logrotate.d/ceph`` file every 30 minutes.
-
-
-Valgrind
-========
-
-Debugging may also require you to track down memory and threading issues.
-You can run a single daemon, a type of daemon, or the whole cluster with
-Valgrind. You should only use Valgrind when developing or debugging Ceph.
-Valgrind is computationally expensive, and will slow down your system otherwise.
-Valgrind messages are logged to ``stderr``.
-
-
-Subsystem, Log and Debug Settings
-=================================
-
-In most cases, you will enable debug logging output via subsystems.
-
-Ceph Subsystems
----------------
-
-Each subsystem has a logging level for its output logs, and for its logs
-in-memory. You may set different values for each of these subsystems by setting
-a log file level and a memory level for debug logging. Ceph's logging levels
-operate on a scale of ``1`` to ``20``, where ``1`` is terse and ``20`` is
-verbose [#]_ . In general, the logs in-memory are not sent to the output log unless:
-
-- a fatal signal is raised or
-- an ``assert`` in source code is triggered or
-- upon requested. Please consult `document on admin socket <http://docs.ceph.com/docs/master/man/8/ceph/#daemon>`_ for more details.
-
-A debug logging setting can take a single value for the log level and the
-memory level, which sets them both as the same value. For example, if you
-specify ``debug ms = 5``, Ceph will treat it as a log level and a memory level
-of ``5``. You may also specify them separately. The first setting is the log
-level, and the second setting is the memory level. You must separate them with
-a forward slash (/). For example, if you want to set the ``ms`` subsystem's
-debug logging level to ``1`` and its memory level to ``5``, you would specify it
-as ``debug ms = 1/5``. For example:
-
-
-
-.. code-block:: ini
-
- debug {subsystem} = {log-level}/{memory-level}
- #for example
- debug mds balancer = 1/20
-
-
-The following table provides a list of Ceph subsystems and their default log and
-memory levels. Once you complete your logging efforts, restore the subsystems
-to their default level or to a level suitable for normal operations.
-
-
-+--------------------+-----------+--------------+
-| Subsystem | Log Level | Memory Level |
-+====================+===========+==============+
-| ``default`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``lockdep`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``context`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``crush`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds balancer`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds locker`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds log`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds log expire`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``mds migrator`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``buffer`` | 0 | 0 |
-+--------------------+-----------+--------------+
-| ``timer`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``filer`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``objecter`` | 0 | 0 |
-+--------------------+-----------+--------------+
-| ``rados`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``rbd`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``journaler`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``objectcacher`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``client`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``osd`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``optracker`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``objclass`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``filestore`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``journal`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``ms`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``mon`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``monc`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``paxos`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``tp`` | 0 | 5 |
-+--------------------+-----------+--------------+
-| ``auth`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``finisher`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``heartbeatmap`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``perfcounter`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``rgw`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``javaclient`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``asok`` | 1 | 5 |
-+--------------------+-----------+--------------+
-| ``throttle`` | 1 | 5 |
-+--------------------+-----------+--------------+
-
-
-Logging Settings
-----------------
-
-Logging and debugging settings are not required in a Ceph configuration file,
-but you may override default settings as needed. Ceph supports the following
-settings:
-
-
-``log file``
-
-:Description: The location of the logging file for your cluster.
-:Type: String
-:Required: No
-:Default: ``/var/log/ceph/$cluster-$name.log``
-
-
-``log max new``
-
-:Description: The maximum number of new log files.
-:Type: Integer
-:Required: No
-:Default: ``1000``
-
-
-``log max recent``
-
-:Description: The maximum number of recent events to include in a log file.
-:Type: Integer
-:Required: No
-:Default: ``1000000``
-
-
-``log to stderr``
-
-:Description: Determines if logging messages should appear in ``stderr``.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``err to stderr``
-
-:Description: Determines if error messages should appear in ``stderr``.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``log to syslog``
-
-:Description: Determines if logging messages should appear in ``syslog``.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``err to syslog``
-
-:Description: Determines if error messages should appear in ``syslog``.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``log flush on exit``
-
-:Description: Determines if Ceph should flush the log files after exit.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``clog to monitors``
-
-:Description: Determines if ``clog`` messages should be sent to monitors.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``clog to syslog``
-
-:Description: Determines if ``clog`` messages should be sent to syslog.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``mon cluster log to syslog``
-
-:Description: Determines if the cluster log should be output to the syslog.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``mon cluster log file``
-
-:Description: The location of the cluster's log file.
-:Type: String
-:Required: No
-:Default: ``/var/log/ceph/$cluster.log``
-
-
-
-OSD
----
-
-
-``osd debug drop ping probability``
-
-:Description: ?
-:Type: Double
-:Required: No
-:Default: 0
-
-
-``osd debug drop ping duration``
-
-:Description:
-:Type: Integer
-:Required: No
-:Default: 0
-
-``osd debug drop pg create probability``
-
-:Description:
-:Type: Integer
-:Required: No
-:Default: 0
-
-``osd debug drop pg create duration``
-
-:Description: ?
-:Type: Double
-:Required: No
-:Default: 1
-
-
-``osd tmapput sets uses tmap``
-
-:Description: Uses ``tmap``. For debug only.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``osd min pg log entries``
-
-:Description: The minimum number of log entries for placement groups.
-:Type: 32-bit Unsigned Integer
-:Required: No
-:Default: 1000
-
-
-``osd op log threshold``
-
-:Description: How many op log messages to show up in one pass.
-:Type: Integer
-:Required: No
-:Default: 5
-
-
-
-Filestore
----------
-
-``filestore debug omap check``
-
-:Description: Debugging check on synchronization. This is an expensive operation.
-:Type: Boolean
-:Required: No
-:Default: 0
-
-
-MDS
----
-
-
-``mds debug scatterstat``
-
-:Description: Ceph will assert that various recursive stat invariants are true
- (for developers only).
-
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``mds debug frag``
-
-:Description: Ceph will verify directory fragmentation invariants when
- convenient (developers only).
-
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``mds debug auth pins``
-
-:Description: The debug auth pin invariants (for developers only).
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``mds debug subtrees``
-
-:Description: The debug subtree invariants (for developers only).
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-
-RADOS Gateway
--------------
-
-
-``rgw log nonexistent bucket``
-
-:Description: Should we log a non-existent buckets?
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``rgw log object name``
-
-:Description: Should an object's name be logged. // man date to see codes (a subset are supported)
-:Type: String
-:Required: No
-:Default: ``%Y-%m-%d-%H-%i-%n``
-
-
-``rgw log object name utc``
-
-:Description: Object log name contains UTC?
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-
-``rgw enable ops log``
-
-:Description: Enables logging of every RGW operation.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``rgw enable usage log``
-
-:Description: Enable logging of RGW's bandwidth usage.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``rgw usage log flush threshold``
-
-:Description: Threshold to flush pending log data.
-:Type: Integer
-:Required: No
-:Default: ``1024``
-
-
-``rgw usage log tick interval``
-
-:Description: Flush pending log data every ``s`` seconds.
-:Type: Integer
-:Required: No
-:Default: 30
-
-
-``rgw intent log object name``
-
-:Description:
-:Type: String
-:Required: No
-:Default: ``%Y-%m-%d-%i-%n``
-
-
-``rgw intent log object name utc``
-
-:Description: Include a UTC timestamp in the intent log object name.
-:Type: Boolean
-:Required: No
-:Default: ``false``
-
-.. [#] there are levels >20 in some rare cases and that they are extremely verbose.
diff --git a/src/ceph/doc/rados/troubleshooting/memory-profiling.rst b/src/ceph/doc/rados/troubleshooting/memory-profiling.rst
deleted file mode 100644
index e2396e2..0000000
--- a/src/ceph/doc/rados/troubleshooting/memory-profiling.rst
+++ /dev/null
@@ -1,142 +0,0 @@
-==================
- Memory Profiling
-==================
-
-Ceph MON, OSD and MDS can generate heap profiles using
-``tcmalloc``. To generate heap profiles, ensure you have
-``google-perftools`` installed::
-
- sudo apt-get install google-perftools
-
-The profiler dumps output to your ``log file`` directory (i.e.,
-``/var/log/ceph``). See `Logging and Debugging`_ for details.
-To view the profiler logs with Google's performance tools, execute the
-following::
-
- google-pprof --text {path-to-daemon} {log-path/filename}
-
-For example::
-
- $ ceph tell osd.0 heap start_profiler
- $ ceph tell osd.0 heap dump
- osd.0 tcmalloc heap stats:------------------------------------------------
- MALLOC: 2632288 ( 2.5 MiB) Bytes in use by application
- MALLOC: + 499712 ( 0.5 MiB) Bytes in page heap freelist
- MALLOC: + 543800 ( 0.5 MiB) Bytes in central cache freelist
- MALLOC: + 327680 ( 0.3 MiB) Bytes in transfer cache freelist
- MALLOC: + 1239400 ( 1.2 MiB) Bytes in thread cache freelists
- MALLOC: + 1142936 ( 1.1 MiB) Bytes in malloc metadata
- MALLOC: ------------
- MALLOC: = 6385816 ( 6.1 MiB) Actual memory used (physical + swap)
- MALLOC: + 0 ( 0.0 MiB) Bytes released to OS (aka unmapped)
- MALLOC: ------------
- MALLOC: = 6385816 ( 6.1 MiB) Virtual address space used
- MALLOC:
- MALLOC: 231 Spans in use
- MALLOC: 56 Thread heaps in use
- MALLOC: 8192 Tcmalloc page size
- ------------------------------------------------
- Call ReleaseFreeMemory() to release freelist memory to the OS (via madvise()).
- Bytes released to the OS take up virtual address space but no physical memory.
- $ google-pprof --text \
- /usr/bin/ceph-osd \
- /var/log/ceph/ceph-osd.0.profile.0001.heap
- Total: 3.7 MB
- 1.9 51.1% 51.1% 1.9 51.1% ceph::log::Log::create_entry
- 1.8 47.3% 98.4% 1.8 47.3% std::string::_Rep::_S_create
- 0.0 0.4% 98.9% 0.0 0.6% SimpleMessenger::add_accept_pipe
- 0.0 0.4% 99.2% 0.0 0.6% decode_message
- ...
-
-Another heap dump on the same daemon will add another file. It is
-convenient to compare to a previous heap dump to show what has grown
-in the interval. For instance::
-
- $ google-pprof --text --base out/osd.0.profile.0001.heap \
- ceph-osd out/osd.0.profile.0003.heap
- Total: 0.2 MB
- 0.1 50.3% 50.3% 0.1 50.3% ceph::log::Log::create_entry
- 0.1 46.6% 96.8% 0.1 46.6% std::string::_Rep::_S_create
- 0.0 0.9% 97.7% 0.0 26.1% ReplicatedPG::do_op
- 0.0 0.8% 98.5% 0.0 0.8% __gnu_cxx::new_allocator::allocate
-
-Refer to `Google Heap Profiler`_ for additional details.
-
-Once you have the heap profiler installed, start your cluster and
-begin using the heap profiler. You may enable or disable the heap
-profiler at runtime, or ensure that it runs continuously. For the
-following commandline usage, replace ``{daemon-type}`` with ``mon``,
-``osd`` or ``mds``, and replace ``{daemon-id}`` with the OSD number or
-the MON or MDS id.
-
-
-Starting the Profiler
----------------------
-
-To start the heap profiler, execute the following::
-
- ceph tell {daemon-type}.{daemon-id} heap start_profiler
-
-For example::
-
- ceph tell osd.1 heap start_profiler
-
-Alternatively the profile can be started when the daemon starts
-running if the ``CEPH_HEAP_PROFILER_INIT=true`` variable is found in
-the environment.
-
-Printing Stats
---------------
-
-To print out statistics, execute the following::
-
- ceph tell {daemon-type}.{daemon-id} heap stats
-
-For example::
-
- ceph tell osd.0 heap stats
-
-.. note:: Printing stats does not require the profiler to be running and does
- not dump the heap allocation information to a file.
-
-
-Dumping Heap Information
-------------------------
-
-To dump heap information, execute the following::
-
- ceph tell {daemon-type}.{daemon-id} heap dump
-
-For example::
-
- ceph tell mds.a heap dump
-
-.. note:: Dumping heap information only works when the profiler is running.
-
-
-Releasing Memory
-----------------
-
-To release memory that ``tcmalloc`` has allocated but which is not being used by
-the Ceph daemon itself, execute the following::
-
- ceph tell {daemon-type}{daemon-id} heap release
-
-For example::
-
- ceph tell osd.2 heap release
-
-
-Stopping the Profiler
----------------------
-
-To stop the heap profiler, execute the following::
-
- ceph tell {daemon-type}.{daemon-id} heap stop_profiler
-
-For example::
-
- ceph tell osd.0 heap stop_profiler
-
-.. _Logging and Debugging: ../log-and-debug
-.. _Google Heap Profiler: http://goog-perftools.sourceforge.net/doc/heap_profiler.html
diff --git a/src/ceph/doc/rados/troubleshooting/troubleshooting-mon.rst b/src/ceph/doc/rados/troubleshooting/troubleshooting-mon.rst
deleted file mode 100644
index 89fb94c..0000000
--- a/src/ceph/doc/rados/troubleshooting/troubleshooting-mon.rst
+++ /dev/null
@@ -1,567 +0,0 @@
-=================================
- Troubleshooting Monitors
-=================================
-
-.. index:: monitor, high availability
-
-When a cluster encounters monitor-related troubles there's a tendency to
-panic, and some times with good reason. You should keep in mind that losing
-a monitor, or a bunch of them, don't necessarily mean that your cluster is
-down, as long as a majority is up, running and with a formed quorum.
-Regardless of how bad the situation is, the first thing you should do is to
-calm down, take a breath and try answering our initial troubleshooting script.
-
-
-Initial Troubleshooting
-========================
-
-
-**Are the monitors running?**
-
- First of all, we need to make sure the monitors are running. You would be
- amazed by how often people forget to run the monitors, or restart them after
- an upgrade. There's no shame in that, but let's try not losing a couple of
- hours chasing an issue that is not there.
-
-**Are you able to connect to the monitor's servers?**
-
- Doesn't happen often, but sometimes people do have ``iptables`` rules that
- block accesses to monitor servers or monitor ports. Usually leftovers from
- monitor stress-testing that were forgotten at some point. Try ssh'ing into
- the server and, if that succeeds, try connecting to the monitor's port
- using you tool of choice (telnet, nc,...).
-
-**Does ceph -s run and obtain a reply from the cluster?**
-
- If the answer is yes then your cluster is up and running. One thing you
- can take for granted is that the monitors will only answer to a ``status``
- request if there is a formed quorum.
-
- If ``ceph -s`` blocked however, without obtaining a reply from the cluster
- or showing a lot of ``fault`` messages, then it is likely that your monitors
- are either down completely or just a portion is up -- a portion that is not
- enough to form a quorum (keep in mind that a quorum if formed by a majority
- of monitors).
-
-**What if ceph -s doesn't finish?**
-
- If you haven't gone through all the steps so far, please go back and do.
-
- For those running on Emperor 0.72-rc1 and forward, you will be able to
- contact each monitor individually asking them for their status, regardless
- of a quorum being formed. This an be achieved using ``ceph ping mon.ID``,
- ID being the monitor's identifier. You should perform this for each monitor
- in the cluster. In section `Understanding mon_status`_ we will explain how
- to interpret the output of this command.
-
- For the rest of you who don't tread on the bleeding edge, you will need to
- ssh into the server and use the monitor's admin socket. Please jump to
- `Using the monitor's admin socket`_.
-
-For other specific issues, keep on reading.
-
-
-Using the monitor's admin socket
-=================================
-
-The admin socket allows you to interact with a given daemon directly using a
-Unix socket file. This file can be found in your monitor's ``run`` directory.
-By default, the admin socket will be kept in ``/var/run/ceph/ceph-mon.ID.asok``
-but this can vary if you defined it otherwise. If you don't find it there,
-please check your ``ceph.conf`` for an alternative path or run::
-
- ceph-conf --name mon.ID --show-config-value admin_socket
-
-Please bear in mind that the admin socket will only be available while the
-monitor is running. When the monitor is properly shutdown, the admin socket
-will be removed. If however the monitor is not running and the admin socket
-still persists, it is likely that the monitor was improperly shutdown.
-Regardless, if the monitor is not running, you will not be able to use the
-admin socket, with ``ceph`` likely returning ``Error 111: Connection Refused``.
-
-Accessing the admin socket is as simple as telling the ``ceph`` tool to use
-the ``asok`` file. In pre-Dumpling Ceph, this can be achieved by::
-
- ceph --admin-daemon /var/run/ceph/ceph-mon.<id>.asok <command>
-
-while in Dumpling and beyond you can use the alternate (and recommended)
-format::
-
- ceph daemon mon.<id> <command>
-
-Using ``help`` as the command to the ``ceph`` tool will show you the
-supported commands available through the admin socket. Please take a look
-at ``config get``, ``config show``, ``mon_status`` and ``quorum_status``,
-as those can be enlightening when troubleshooting a monitor.
-
-
-Understanding mon_status
-=========================
-
-``mon_status`` can be obtained through the ``ceph`` tool when you have
-a formed quorum, or via the admin socket if you don't. This command will
-output a multitude of information about the monitor, including the same
-output you would get with ``quorum_status``.
-
-Take the following example of ``mon_status``::
-
-
- { "name": "c",
- "rank": 2,
- "state": "peon",
- "election_epoch": 38,
- "quorum": [
- 1,
- 2],
- "outside_quorum": [],
- "extra_probe_peers": [],
- "sync_provider": [],
- "monmap": { "epoch": 3,
- "fsid": "5c4e9d53-e2e1-478a-8061-f543f8be4cf8",
- "modified": "2013-10-30 04:12:01.945629",
- "created": "2013-10-29 14:14:41.914786",
- "mons": [
- { "rank": 0,
- "name": "a",
- "addr": "127.0.0.1:6789\/0"},
- { "rank": 1,
- "name": "b",
- "addr": "127.0.0.1:6790\/0"},
- { "rank": 2,
- "name": "c",
- "addr": "127.0.0.1:6795\/0"}]}}
-
-A couple of things are obvious: we have three monitors in the monmap (*a*, *b*
-and *c*), the quorum is formed by only two monitors, and *c* is in the quorum
-as a *peon*.
-
-Which monitor is out of the quorum?
-
- The answer would be **a**.
-
-Why?
-
- Take a look at the ``quorum`` set. We have two monitors in this set: *1*
- and *2*. These are not monitor names. These are monitor ranks, as established
- in the current monmap. We are missing the monitor with rank 0, and according
- to the monmap that would be ``mon.a``.
-
-By the way, how are ranks established?
-
- Ranks are (re)calculated whenever you add or remove monitors and follow a
- simple rule: the **greater** the ``IP:PORT`` combination, the **lower** the
- rank is. In this case, considering that ``127.0.0.1:6789`` is lower than all
- the remaining ``IP:PORT`` combinations, ``mon.a`` has rank 0.
-
-Most Common Monitor Issues
-===========================
-
-Have Quorum but at least one Monitor is down
----------------------------------------------
-
-When this happens, depending on the version of Ceph you are running,
-you should be seeing something similar to::
-
- $ ceph health detail
- [snip]
- mon.a (rank 0) addr 127.0.0.1:6789/0 is down (out of quorum)
-
-How to troubleshoot this?
-
- First, make sure ``mon.a`` is running.
-
- Second, make sure you are able to connect to ``mon.a``'s server from the
- other monitors' servers. Check the ports as well. Check ``iptables`` on
- all your monitor nodes and make sure you are not dropping/rejecting
- connections.
-
- If this initial troubleshooting doesn't solve your problems, then it's
- time to go deeper.
-
- First, check the problematic monitor's ``mon_status`` via the admin
- socket as explained in `Using the monitor's admin socket`_ and
- `Understanding mon_status`_.
-
- Considering the monitor is out of the quorum, its state should be one of
- ``probing``, ``electing`` or ``synchronizing``. If it happens to be either
- ``leader`` or ``peon``, then the monitor believes to be in quorum, while
- the remaining cluster is sure it is not; or maybe it got into the quorum
- while we were troubleshooting the monitor, so check you ``ceph -s`` again
- just to make sure. Proceed if the monitor is not yet in the quorum.
-
-What if the state is ``probing``?
-
- This means the monitor is still looking for the other monitors. Every time
- you start a monitor, the monitor will stay in this state for some time
- while trying to find the rest of the monitors specified in the ``monmap``.
- The time a monitor will spend in this state can vary. For instance, when on
- a single-monitor cluster, the monitor will pass through the probing state
- almost instantaneously, since there are no other monitors around. On a
- multi-monitor cluster, the monitors will stay in this state until they
- find enough monitors to form a quorum -- this means that if you have 2 out
- of 3 monitors down, the one remaining monitor will stay in this state
- indefinitively until you bring one of the other monitors up.
-
- If you have a quorum, however, the monitor should be able to find the
- remaining monitors pretty fast, as long as they can be reached. If your
- monitor is stuck probing and you have gone through with all the communication
- troubleshooting, then there is a fair chance that the monitor is trying
- to reach the other monitors on a wrong address. ``mon_status`` outputs the
- ``monmap`` known to the monitor: check if the other monitor's locations
- match reality. If they don't, jump to
- `Recovering a Monitor's Broken monmap`_; if they do, then it may be related
- to severe clock skews amongst the monitor nodes and you should refer to
- `Clock Skews`_ first, but if that doesn't solve your problem then it is
- the time to prepare some logs and reach out to the community (please refer
- to `Preparing your logs`_ on how to best prepare your logs).
-
-
-What if state is ``electing``?
-
- This means the monitor is in the middle of an election. These should be
- fast to complete, but at times the monitors can get stuck electing. This
- is usually a sign of a clock skew among the monitor nodes; jump to
- `Clock Skews`_ for more infos on that. If all your clocks are properly
- synchronized, it is best if you prepare some logs and reach out to the
- community. This is not a state that is likely to persist and aside from
- (*really*) old bugs there is not an obvious reason besides clock skews on
- why this would happen.
-
-What if state is ``synchronizing``?
-
- This means the monitor is synchronizing with the rest of the cluster in
- order to join the quorum. The synchronization process is as faster as
- smaller your monitor store is, so if you have a big store it may
- take a while. Don't worry, it should be finished soon enough.
-
- However, if you notice that the monitor jumps from ``synchronizing`` to
- ``electing`` and then back to ``synchronizing``, then you do have a
- problem: the cluster state is advancing (i.e., generating new maps) way
- too fast for the synchronization process to keep up. This used to be a
- thing in early Cuttlefish, but since then the synchronization process was
- quite refactored and enhanced to avoid just this sort of behavior. If this
- happens in later versions let us know. And bring some logs
- (see `Preparing your logs`_).
-
-What if state is ``leader`` or ``peon``?
-
- This should not happen. There is a chance this might happen however, and
- it has a lot to do with clock skews -- see `Clock Skews`_. If you are not
- suffering from clock skews, then please prepare your logs (see
- `Preparing your logs`_) and reach out to us.
-
-
-Recovering a Monitor's Broken monmap
--------------------------------------
-
-This is how a ``monmap`` usually looks like, depending on the number of
-monitors::
-
-
- epoch 3
- fsid 5c4e9d53-e2e1-478a-8061-f543f8be4cf8
- last_changed 2013-10-30 04:12:01.945629
- created 2013-10-29 14:14:41.914786
- 0: 127.0.0.1:6789/0 mon.a
- 1: 127.0.0.1:6790/0 mon.b
- 2: 127.0.0.1:6795/0 mon.c
-
-This may not be what you have however. For instance, in some versions of
-early Cuttlefish there was this one bug that could cause your ``monmap``
-to be nullified. Completely filled with zeros. This means that not even
-``monmaptool`` would be able to read it because it would find it hard to
-make sense of only-zeros. Some other times, you may end up with a monitor
-with a severely outdated monmap, thus being unable to find the remaining
-monitors (e.g., say ``mon.c`` is down; you add a new monitor ``mon.d``,
-then remove ``mon.a``, then add a new monitor ``mon.e`` and remove
-``mon.b``; you will end up with a totally different monmap from the one
-``mon.c`` knows).
-
-In this sort of situations, you have two possible solutions:
-
-Scrap the monitor and create a new one
-
- You should only take this route if you are positive that you won't
- lose the information kept by that monitor; that you have other monitors
- and that they are running just fine so that your new monitor is able
- to synchronize from the remaining monitors. Keep in mind that destroying
- a monitor, if there are no other copies of its contents, may lead to
- loss of data.
-
-Inject a monmap into the monitor
-
- Usually the safest path. You should grab the monmap from the remaining
- monitors and inject it into the monitor with the corrupted/lost monmap.
-
- These are the basic steps:
-
- 1. Is there a formed quorum? If so, grab the monmap from the quorum::
-
- $ ceph mon getmap -o /tmp/monmap
-
- 2. No quorum? Grab the monmap directly from another monitor (this
- assumes the monitor you are grabbing the monmap from has id ID-FOO
- and has been stopped)::
-
- $ ceph-mon -i ID-FOO --extract-monmap /tmp/monmap
-
- 3. Stop the monitor you are going to inject the monmap into.
-
- 4. Inject the monmap::
-
- $ ceph-mon -i ID --inject-monmap /tmp/monmap
-
- 5. Start the monitor
-
- Please keep in mind that the ability to inject monmaps is a powerful
- feature that can cause havoc with your monitors if misused as it will
- overwrite the latest, existing monmap kept by the monitor.
-
-
-Clock Skews
-------------
-
-Monitors can be severely affected by significant clock skews across the
-monitor nodes. This usually translates into weird behavior with no obvious
-cause. To avoid such issues, you should run a clock synchronization tool
-on your monitor nodes.
-
-
-What's the maximum tolerated clock skew?
-
- By default the monitors will allow clocks to drift up to ``0.05 seconds``.
-
-
-Can I increase the maximum tolerated clock skew?
-
- This value is configurable via the ``mon-clock-drift-allowed`` option, and
- although you *CAN* it doesn't mean you *SHOULD*. The clock skew mechanism
- is in place because clock skewed monitor may not properly behave. We, as
- developers and QA afficcionados, are comfortable with the current default
- value, as it will alert the user before the monitors get out hand. Changing
- this value without testing it first may cause unforeseen effects on the
- stability of the monitors and overall cluster healthiness, although there is
- no risk of dataloss.
-
-
-How do I know there's a clock skew?
-
- The monitors will warn you in the form of a ``HEALTH_WARN``. ``ceph health
- detail`` should show something in the form of::
-
- mon.c addr 10.10.0.1:6789/0 clock skew 0.08235s > max 0.05s (latency 0.0045s)
-
- That means that ``mon.c`` has been flagged as suffering from a clock skew.
-
-
-What should I do if there's a clock skew?
-
- Synchronize your clocks. Running an NTP client may help. If you are already
- using one and you hit this sort of issues, check if you are using some NTP
- server remote to your network and consider hosting your own NTP server on
- your network. This last option tends to reduce the amount of issues with
- monitor clock skews.
-
-
-Client Can't Connect or Mount
-------------------------------
-
-Check your IP tables. Some OS install utilities add a ``REJECT`` rule to
-``iptables``. The rule rejects all clients trying to connect to the host except
-for ``ssh``. If your monitor host's IP tables have such a ``REJECT`` rule in
-place, clients connecting from a separate node will fail to mount with a timeout
-error. You need to address ``iptables`` rules that reject clients trying to
-connect to Ceph daemons. For example, you would need to address rules that look
-like this appropriately::
-
- REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
-
-You may also need to add rules to IP tables on your Ceph hosts to ensure
-that clients can access the ports associated with your Ceph monitors (i.e., port
-6789 by default) and Ceph OSDs (i.e., 6800 through 7300 by default). For
-example::
-
- iptables -A INPUT -m multiport -p tcp -s {ip-address}/{netmask} --dports 6789,6800:7300 -j ACCEPT
-
-Monitor Store Failures
-======================
-
-Symptoms of store corruption
-----------------------------
-
-Ceph monitor stores the `cluster map`_ in a key/value store such as LevelDB. If
-a monitor fails due to the key/value store corruption, following error messages
-might be found in the monitor log::
-
- Corruption: error in middle of record
-
-or::
-
- Corruption: 1 missing files; e.g.: /var/lib/ceph/mon/mon.0/store.db/1234567.ldb
-
-Recovery using healthy monitor(s)
----------------------------------
-
-If there is any survivers, we can always `replace`_ the corrupted one with a
-new one. And after booting up, the new joiner will sync up with a healthy
-peer, and once it is fully sync'ed, it will be able to serve the clients.
-
-Recovery using OSDs
--------------------
-
-But what if all monitors fail at the same time? Since users are encouraged to
-deploy at least three monitors in a Ceph cluster, the chance of simultaneous
-failure is rare. But unplanned power-downs in a data center with improperly
-configured disk/fs settings could fail the underlying filesystem, and hence
-kill all the monitors. In this case, we can recover the monitor store with the
-information stored in OSDs.::
-
- ms=/tmp/mon-store
- mkdir $ms
- # collect the cluster map from OSDs
- for host in $hosts; do
- rsync -avz $ms user@host:$ms
- rm -rf $ms
- ssh user@host <<EOF
- for osd in /var/lib/osd/osd-*; do
- ceph-objectstore-tool --data-path \$osd --op update-mon-db --mon-store-path $ms
- done
- EOF
- rsync -avz user@host:$ms $ms
- done
- # rebuild the monitor store from the collected map, if the cluster does not
- # use cephx authentication, we can skip the following steps to update the
- # keyring with the caps, and there is no need to pass the "--keyring" option.
- # i.e. just use "ceph-monstore-tool /tmp/mon-store rebuild" instead
- ceph-authtool /path/to/admin.keyring -n mon. \
- --cap mon 'allow *'
- ceph-authtool /path/to/admin.keyring -n client.admin \
- --cap mon 'allow *' --cap osd 'allow *' --cap mds 'allow *'
- ceph-monstore-tool /tmp/mon-store rebuild -- --keyring /path/to/admin.keyring
- # backup corrupted store.db just in case
- mv /var/lib/ceph/mon/mon.0/store.db /var/lib/ceph/mon/mon.0/store.db.corrupted
- mv /tmp/mon-store/store.db /var/lib/ceph/mon/mon.0/store.db
- chown -R ceph:ceph /var/lib/ceph/mon/mon.0/store.db
-
-The steps above
-
-#. collect the map from all OSD hosts,
-#. then rebuild the store,
-#. fill the entities in keyring file with appropriate caps
-#. replace the corrupted store on ``mon.0`` with the recovered copy.
-
-Known limitations
-~~~~~~~~~~~~~~~~~
-
-Following information are not recoverable using the steps above:
-
-- **some added keyrings**: all the OSD keyrings added using ``ceph auth add`` command
- are recovered from the OSD's copy. And the ``client.admin`` keyring is imported
- using ``ceph-monstore-tool``. But the MDS keyrings and other keyrings are missing
- in the recovered monitor store. You might need to re-add them manually.
-
-- **pg settings**: the ``full ratio`` and ``nearfull ratio`` settings configured using
- ``ceph pg set_full_ratio`` and ``ceph pg set_nearfull_ratio`` will be lost.
-
-- **MDS Maps**: the MDS maps are lost.
-
-
-Everything Failed! Now What?
-=============================
-
-Reaching out for help
-----------------------
-
-You can find us on IRC at #ceph and #ceph-devel at OFTC (server irc.oftc.net)
-and on ``ceph-devel@vger.kernel.org`` and ``ceph-users@lists.ceph.com``. Make
-sure you have grabbed your logs and have them ready if someone asks: the faster
-the interaction and lower the latency in response, the better chances everyone's
-time is optimized.
-
-
-Preparing your logs
----------------------
-
-Monitor logs are, by default, kept in ``/var/log/ceph/ceph-mon.FOO.log*``. We
-may want them. However, your logs may not have the necessary information. If
-you don't find your monitor logs at their default location, you can check
-where they should be by running::
-
- ceph-conf --name mon.FOO --show-config-value log_file
-
-The amount of information in the logs are subject to the debug levels being
-enforced by your configuration files. If you have not enforced a specific
-debug level then Ceph is using the default levels and your logs may not
-contain important information to track down you issue.
-A first step in getting relevant information into your logs will be to raise
-debug levels. In this case we will be interested in the information from the
-monitor.
-Similarly to what happens on other components, different parts of the monitor
-will output their debug information on different subsystems.
-
-You will have to raise the debug levels of those subsystems more closely
-related to your issue. This may not be an easy task for someone unfamiliar
-with troubleshooting Ceph. For most situations, setting the following options
-on your monitors will be enough to pinpoint a potential source of the issue::
-
- debug mon = 10
- debug ms = 1
-
-If we find that these debug levels are not enough, there's a chance we may
-ask you to raise them or even define other debug subsystems to obtain infos
-from -- but at least we started off with some useful information, instead
-of a massively empty log without much to go on with.
-
-Do I need to restart a monitor to adjust debug levels?
-------------------------------------------------------
-
-No. You may do it in one of two ways:
-
-You have quorum
-
- Either inject the debug option into the monitor you want to debug::
-
- ceph tell mon.FOO injectargs --debug_mon 10/10
-
- or into all monitors at once::
-
- ceph tell mon.* injectargs --debug_mon 10/10
-
-No quourm
-
- Use the monitor's admin socket and directly adjust the configuration
- options::
-
- ceph daemon mon.FOO config set debug_mon 10/10
-
-
-Going back to default values is as easy as rerunning the above commands
-using the debug level ``1/10`` instead. You can check your current
-values using the admin socket and the following commands::
-
- ceph daemon mon.FOO config show
-
-or::
-
- ceph daemon mon.FOO config get 'OPTION_NAME'
-
-
-Reproduced the problem with appropriate debug levels. Now what?
-----------------------------------------------------------------
-
-Ideally you would send us only the relevant portions of your logs.
-We realise that figuring out the corresponding portion may not be the
-easiest of tasks. Therefore, we won't hold it to you if you provide the
-full log, but common sense should be employed. If your log has hundreds
-of thousands of lines, it may get tricky to go through the whole thing,
-specially if we are not aware at which point, whatever your issue is,
-happened. For instance, when reproducing, keep in mind to write down
-current time and date and to extract the relevant portions of your logs
-based on that.
-
-Finally, you should reach out to us on the mailing lists, on IRC or file
-a new issue on the `tracker`_.
-
-.. _cluster map: ../../architecture#cluster-map
-.. _replace: ../operation/add-or-rm-mons
-.. _tracker: http://tracker.ceph.com/projects/ceph/issues/new
diff --git a/src/ceph/doc/rados/troubleshooting/troubleshooting-osd.rst b/src/ceph/doc/rados/troubleshooting/troubleshooting-osd.rst
deleted file mode 100644
index 88307fe..0000000
--- a/src/ceph/doc/rados/troubleshooting/troubleshooting-osd.rst
+++ /dev/null
@@ -1,536 +0,0 @@
-======================
- Troubleshooting OSDs
-======================
-
-Before troubleshooting your OSDs, check your monitors and network first. If
-you execute ``ceph health`` or ``ceph -s`` on the command line and Ceph returns
-a health status, it means that the monitors have a quorum.
-If you don't have a monitor quorum or if there are errors with the monitor
-status, `address the monitor issues first <../troubleshooting-mon>`_.
-Check your networks to ensure they
-are running properly, because networks may have a significant impact on OSD
-operation and performance.
-
-
-
-Obtaining Data About OSDs
-=========================
-
-A good first step in troubleshooting your OSDs is to obtain information in
-addition to the information you collected while `monitoring your OSDs`_
-(e.g., ``ceph osd tree``).
-
-
-Ceph Logs
----------
-
-If you haven't changed the default path, you can find Ceph log files at
-``/var/log/ceph``::
-
- ls /var/log/ceph
-
-If you don't get enough log detail, you can change your logging level. See
-`Logging and Debugging`_ for details to ensure that Ceph performs adequately
-under high logging volume.
-
-
-Admin Socket
-------------
-
-Use the admin socket tool to retrieve runtime information. For details, list
-the sockets for your Ceph processes::
-
- ls /var/run/ceph
-
-Then, execute the following, replacing ``{daemon-name}`` with an actual
-daemon (e.g., ``osd.0``)::
-
- ceph daemon osd.0 help
-
-Alternatively, you can specify a ``{socket-file}`` (e.g., something in ``/var/run/ceph``)::
-
- ceph daemon {socket-file} help
-
-
-The admin socket, among other things, allows you to:
-
-- List your configuration at runtime
-- Dump historic operations
-- Dump the operation priority queue state
-- Dump operations in flight
-- Dump perfcounters
-
-
-Display Freespace
------------------
-
-Filesystem issues may arise. To display your filesystem's free space, execute
-``df``. ::
-
- df -h
-
-Execute ``df --help`` for additional usage.
-
-
-I/O Statistics
---------------
-
-Use `iostat`_ to identify I/O-related issues. ::
-
- iostat -x
-
-
-Diagnostic Messages
--------------------
-
-To retrieve diagnostic messages, use ``dmesg`` with ``less``, ``more``, ``grep``
-or ``tail``. For example::
-
- dmesg | grep scsi
-
-
-Stopping w/out Rebalancing
-==========================
-
-Periodically, you may need to perform maintenance on a subset of your cluster,
-or resolve a problem that affects a failure domain (e.g., a rack). If you do not
-want CRUSH to automatically rebalance the cluster as you stop OSDs for
-maintenance, set the cluster to ``noout`` first::
-
- ceph osd set noout
-
-Once the cluster is set to ``noout``, you can begin stopping the OSDs within the
-failure domain that requires maintenance work. ::
-
- stop ceph-osd id={num}
-
-.. note:: Placement groups within the OSDs you stop will become ``degraded``
- while you are addressing issues with within the failure domain.
-
-Once you have completed your maintenance, restart the OSDs. ::
-
- start ceph-osd id={num}
-
-Finally, you must unset the cluster from ``noout``. ::
-
- ceph osd unset noout
-
-
-
-.. _osd-not-running:
-
-OSD Not Running
-===============
-
-Under normal circumstances, simply restarting the ``ceph-osd`` daemon will
-allow it to rejoin the cluster and recover.
-
-An OSD Won't Start
-------------------
-
-If you start your cluster and an OSD won't start, check the following:
-
-- **Configuration File:** If you were not able to get OSDs running from
- a new installation, check your configuration file to ensure it conforms
- (e.g., ``host`` not ``hostname``, etc.).
-
-- **Check Paths:** Check the paths in your configuration, and the actual
- paths themselves for data and journals. If you separate the OSD data from
- the journal data and there are errors in your configuration file or in the
- actual mounts, you may have trouble starting OSDs. If you want to store the
- journal on a block device, you should partition your journal disk and assign
- one partition per OSD.
-
-- **Check Max Threadcount:** If you have a node with a lot of OSDs, you may be
- hitting the default maximum number of threads (e.g., usually 32k), especially
- during recovery. You can increase the number of threads using ``sysctl`` to
- see if increasing the maximum number of threads to the maximum possible
- number of threads allowed (i.e., 4194303) will help. For example::
-
- sysctl -w kernel.pid_max=4194303
-
- If increasing the maximum thread count resolves the issue, you can make it
- permanent by including a ``kernel.pid_max`` setting in the
- ``/etc/sysctl.conf`` file. For example::
-
- kernel.pid_max = 4194303
-
-- **Kernel Version:** Identify the kernel version and distribution you
- are using. Ceph uses some third party tools by default, which may be
- buggy or may conflict with certain distributions and/or kernel
- versions (e.g., Google perftools). Check the `OS recommendations`_
- to ensure you have addressed any issues related to your kernel.
-
-- **Segment Fault:** If there is a segment fault, turn your logging up
- (if it is not already), and try again. If it segment faults again,
- contact the ceph-devel email list and provide your Ceph configuration
- file, your monitor output and the contents of your log file(s).
-
-
-
-An OSD Failed
--------------
-
-When a ``ceph-osd`` process dies, the monitor will learn about the failure
-from surviving ``ceph-osd`` daemons and report it via the ``ceph health``
-command::
-
- ceph health
- HEALTH_WARN 1/3 in osds are down
-
-Specifically, you will get a warning whenever there are ``ceph-osd``
-processes that are marked ``in`` and ``down``. You can identify which
-``ceph-osds`` are ``down`` with::
-
- ceph health detail
- HEALTH_WARN 1/3 in osds are down
- osd.0 is down since epoch 23, last address 192.168.106.220:6800/11080
-
-If there is a disk
-failure or other fault preventing ``ceph-osd`` from functioning or
-restarting, an error message should be present in its log file in
-``/var/log/ceph``.
-
-If the daemon stopped because of a heartbeat failure, the underlying
-kernel file system may be unresponsive. Check ``dmesg`` output for disk
-or other kernel errors.
-
-If the problem is a software error (failed assertion or other
-unexpected error), it should be reported to the `ceph-devel`_ email list.
-
-
-No Free Drive Space
--------------------
-
-Ceph prevents you from writing to a full OSD so that you don't lose data.
-In an operational cluster, you should receive a warning when your cluster
-is getting near its full ratio. The ``mon osd full ratio`` defaults to
-``0.95``, or 95% of capacity before it stops clients from writing data.
-The ``mon osd backfillfull ratio`` defaults to ``0.90``, or 90 % of
-capacity when it blocks backfills from starting. The
-``mon osd nearfull ratio`` defaults to ``0.85``, or 85% of capacity
-when it generates a health warning.
-
-Full cluster issues usually arise when testing how Ceph handles an OSD
-failure on a small cluster. When one node has a high percentage of the
-cluster's data, the cluster can easily eclipse its nearfull and full ratio
-immediately. If you are testing how Ceph reacts to OSD failures on a small
-cluster, you should leave ample free disk space and consider temporarily
-lowering the ``mon osd full ratio``, ``mon osd backfillfull ratio`` and
-``mon osd nearfull ratio``.
-
-Full ``ceph-osds`` will be reported by ``ceph health``::
-
- ceph health
- HEALTH_WARN 1 nearfull osd(s)
-
-Or::
-
- ceph health detail
- HEALTH_ERR 1 full osd(s); 1 backfillfull osd(s); 1 nearfull osd(s)
- osd.3 is full at 97%
- osd.4 is backfill full at 91%
- osd.2 is near full at 87%
-
-The best way to deal with a full cluster is to add new ``ceph-osds``, allowing
-the cluster to redistribute data to the newly available storage.
-
-If you cannot start an OSD because it is full, you may delete some data by deleting
-some placement group directories in the full OSD.
-
-.. important:: If you choose to delete a placement group directory on a full OSD,
- **DO NOT** delete the same placement group directory on another full OSD, or
- **YOU MAY LOSE DATA**. You **MUST** maintain at least one copy of your data on
- at least one OSD.
-
-See `Monitor Config Reference`_ for additional details.
-
-
-OSDs are Slow/Unresponsive
-==========================
-
-A commonly recurring issue involves slow or unresponsive OSDs. Ensure that you
-have eliminated other troubleshooting possibilities before delving into OSD
-performance issues. For example, ensure that your network(s) is working properly
-and your OSDs are running. Check to see if OSDs are throttling recovery traffic.
-
-.. tip:: Newer versions of Ceph provide better recovery handling by preventing
- recovering OSDs from using up system resources so that ``up`` and ``in``
- OSDs are not available or are otherwise slow.
-
-
-Networking Issues
------------------
-
-Ceph is a distributed storage system, so it depends upon networks to peer with
-OSDs, replicate objects, recover from faults and check heartbeats. Networking
-issues can cause OSD latency and flapping OSDs. See `Flapping OSDs`_ for
-details.
-
-Ensure that Ceph processes and Ceph-dependent processes are connected and/or
-listening. ::
-
- netstat -a | grep ceph
- netstat -l | grep ceph
- sudo netstat -p | grep ceph
-
-Check network statistics. ::
-
- netstat -s
-
-
-Drive Configuration
--------------------
-
-A storage drive should only support one OSD. Sequential read and sequential
-write throughput can bottleneck if other processes share the drive, including
-journals, operating systems, monitors, other OSDs and non-Ceph processes.
-
-Ceph acknowledges writes *after* journaling, so fast SSDs are an
-attractive option to accelerate the response time--particularly when
-using the ``XFS`` or ``ext4`` filesystems. By contrast, the ``btrfs``
-filesystem can write and journal simultaneously. (Note, however, that
-we recommend against using ``btrfs`` for production deployments.)
-
-.. note:: Partitioning a drive does not change its total throughput or
- sequential read/write limits. Running a journal in a separate partition
- may help, but you should prefer a separate physical drive.
-
-
-Bad Sectors / Fragmented Disk
------------------------------
-
-Check your disks for bad sectors and fragmentation. This can cause total throughput
-to drop substantially.
-
-
-Co-resident Monitors/OSDs
--------------------------
-
-Monitors are generally light-weight processes, but they do lots of ``fsync()``,
-which can interfere with other workloads, particularly if monitors run on the
-same drive as your OSDs. Additionally, if you run monitors on the same host as
-the OSDs, you may incur performance issues related to:
-
-- Running an older kernel (pre-3.0)
-- Running Argonaut with an old ``glibc``
-- Running a kernel with no syncfs(2) syscall.
-
-In these cases, multiple OSDs running on the same host can drag each other down
-by doing lots of commits. That often leads to the bursty writes.
-
-
-Co-resident Processes
----------------------
-
-Spinning up co-resident processes such as a cloud-based solution, virtual
-machines and other applications that write data to Ceph while operating on the
-same hardware as OSDs can introduce significant OSD latency. Generally, we
-recommend optimizing a host for use with Ceph and using other hosts for other
-processes. The practice of separating Ceph operations from other applications
-may help improve performance and may streamline troubleshooting and maintenance.
-
-
-Logging Levels
---------------
-
-If you turned logging levels up to track an issue and then forgot to turn
-logging levels back down, the OSD may be putting a lot of logs onto the disk. If
-you intend to keep logging levels high, you may consider mounting a drive to the
-default path for logging (i.e., ``/var/log/ceph/$cluster-$name.log``).
-
-
-Recovery Throttling
--------------------
-
-Depending upon your configuration, Ceph may reduce recovery rates to maintain
-performance or it may increase recovery rates to the point that recovery
-impacts OSD performance. Check to see if the OSD is recovering.
-
-
-Kernel Version
---------------
-
-Check the kernel version you are running. Older kernels may not receive
-new backports that Ceph depends upon for better performance.
-
-
-Kernel Issues with SyncFS
--------------------------
-
-Try running one OSD per host to see if performance improves. Old kernels
-might not have a recent enough version of ``glibc`` to support ``syncfs(2)``.
-
-
-Filesystem Issues
------------------
-
-Currently, we recommend deploying clusters with XFS.
-
-We recommend against using btrfs or ext4. The btrfs filesystem has
-many attractive features, but bugs in the filesystem may lead to
-performance issues and suprious ENOSPC errors. We do not recommend
-ext4 because xattr size limitations break our support for long object
-names (needed for RGW).
-
-For more information, see `Filesystem Recommendations`_.
-
-.. _Filesystem Recommendations: ../configuration/filesystem-recommendations
-
-
-Insufficient RAM
-----------------
-
-We recommend 1GB of RAM per OSD daemon. You may notice that during normal
-operations, the OSD only uses a fraction of that amount (e.g., 100-200MB).
-Unused RAM makes it tempting to use the excess RAM for co-resident applications,
-VMs and so forth. However, when OSDs go into recovery mode, their memory
-utilization spikes. If there is no RAM available, the OSD performance will slow
-considerably.
-
-
-Old Requests or Slow Requests
------------------------------
-
-If a ``ceph-osd`` daemon is slow to respond to a request, it will generate log messages
-complaining about requests that are taking too long. The warning threshold
-defaults to 30 seconds, and is configurable via the ``osd op complaint time``
-option. When this happens, the cluster log will receive messages.
-
-Legacy versions of Ceph complain about 'old requests`::
-
- osd.0 192.168.106.220:6800/18813 312 : [WRN] old request osd_op(client.5099.0:790 fatty_26485_object789 [write 0~4096] 2.5e54f643) v4 received at 2012-03-06 15:42:56.054801 currently waiting for sub ops
-
-New versions of Ceph complain about 'slow requests`::
-
- {date} {osd.num} [WRN] 1 slow requests, 1 included below; oldest blocked for > 30.005692 secs
- {date} {osd.num} [WRN] slow request 30.005692 seconds old, received at {date-time}: osd_op(client.4240.0:8 benchmark_data_ceph-1_39426_object7 [write 0~4194304] 0.69848840) v4 currently waiting for subops from [610]
-
-
-Possible causes include:
-
-- A bad drive (check ``dmesg`` output)
-- A bug in the kernel file system bug (check ``dmesg`` output)
-- An overloaded cluster (check system load, iostat, etc.)
-- A bug in the ``ceph-osd`` daemon.
-
-Possible solutions
-
-- Remove VMs Cloud Solutions from Ceph Hosts
-- Upgrade Kernel
-- Upgrade Ceph
-- Restart OSDs
-
-Debugging Slow Requests
------------------------
-
-If you run "ceph daemon osd.<id> dump_historic_ops" or "dump_ops_in_flight",
-you will see a set of operations and a list of events each operation went
-through. These are briefly described below.
-
-Events from the Messenger layer:
-
-- header_read: when the messenger first started reading the message off the wire
-- throttled: when the messenger tried to acquire memory throttle space to read
- the message into memory
-- all_read: when the messenger finished reading the message off the wire
-- dispatched: when the messenger gave the message to the OSD
-- Initiated: <This is identical to header_read. The existence of both is a
- historical oddity.
-
-Events from the OSD as it prepares operations
-
-- queued_for_pg: the op has been put into the queue for processing by its PG
-- reached_pg: the PG has started doing the op
-- waiting for \*: the op is waiting for some other work to complete before it
- can proceed (a new OSDMap; for its object target to scrub; for the PG to
- finish peering; all as specified in the message)
-- started: the op has been accepted as something the OSD should actually do
- (reasons not to do it: failed security/permission checks; out-of-date local
- state; etc) and is now actually being performed
-- waiting for subops from: the op has been sent to replica OSDs
-
-Events from the FileStore
-
-- commit_queued_for_journal_write: the op has been given to the FileStore
-- write_thread_in_journal_buffer: the op is in the journal's buffer and waiting
- to be persisted (as the next disk write)
-- journaled_completion_queued: the op was journaled to disk and its callback
- queued for invocation
-
-Events from the OSD after stuff has been given to local disk
-
-- op_commit: the op has been committed (ie, written to journal) by the
- primary OSD
-- op_applied: The op has been write()'en to the backing FS (ie, applied in
- memory but not flushed out to disk) on the primary
-- sub_op_applied: op_applied, but for a replica's "subop"
-- sub_op_committed: op_commited, but for a replica's subop (only for EC pools)
-- sub_op_commit_rec/sub_op_apply_rec from <X>: the primary marks this when it
- hears about the above, but for a particular replica <X>
-- commit_sent: we sent a reply back to the client (or primary OSD, for sub ops)
-
-Many of these events are seemingly redundant, but cross important boundaries in
-the internal code (such as passing data across locks into new threads).
-
-Flapping OSDs
-=============
-
-We recommend using both a public (front-end) network and a cluster (back-end)
-network so that you can better meet the capacity requirements of object
-replication. Another advantage is that you can run a cluster network such that
-it is not connected to the internet, thereby preventing some denial of service
-attacks. When OSDs peer and check heartbeats, they use the cluster (back-end)
-network when it's available. See `Monitor/OSD Interaction`_ for details.
-
-However, if the cluster (back-end) network fails or develops significant latency
-while the public (front-end) network operates optimally, OSDs currently do not
-handle this situation well. What happens is that OSDs mark each other ``down``
-on the monitor, while marking themselves ``up``. We call this scenario
-'flapping`.
-
-If something is causing OSDs to 'flap' (repeatedly getting marked ``down`` and
-then ``up`` again), you can force the monitors to stop the flapping with::
-
- ceph osd set noup # prevent OSDs from getting marked up
- ceph osd set nodown # prevent OSDs from getting marked down
-
-These flags are recorded in the osdmap structure::
-
- ceph osd dump | grep flags
- flags no-up,no-down
-
-You can clear the flags with::
-
- ceph osd unset noup
- ceph osd unset nodown
-
-Two other flags are supported, ``noin`` and ``noout``, which prevent
-booting OSDs from being marked ``in`` (allocated data) or protect OSDs
-from eventually being marked ``out`` (regardless of what the current value for
-``mon osd down out interval`` is).
-
-.. note:: ``noup``, ``noout``, and ``nodown`` are temporary in the
- sense that once the flags are cleared, the action they were blocking
- should occur shortly after. The ``noin`` flag, on the other hand,
- prevents OSDs from being marked ``in`` on boot, and any daemons that
- started while the flag was set will remain that way.
-
-
-
-
-
-
-.. _iostat: http://en.wikipedia.org/wiki/Iostat
-.. _Ceph Logging and Debugging: ../../configuration/ceph-conf#ceph-logging-and-debugging
-.. _Logging and Debugging: ../log-and-debug
-.. _Debugging and Logging: ../debug
-.. _Monitor/OSD Interaction: ../../configuration/mon-osd-interaction
-.. _Monitor Config Reference: ../../configuration/mon-config-ref
-.. _monitoring your OSDs: ../../operations/monitoring-osd-pg
-.. _subscribe to the ceph-devel email list: mailto:majordomo@vger.kernel.org?body=subscribe+ceph-devel
-.. _unsubscribe from the ceph-devel email list: mailto:majordomo@vger.kernel.org?body=unsubscribe+ceph-devel
-.. _subscribe to the ceph-users email list: mailto:ceph-users-join@lists.ceph.com
-.. _unsubscribe from the ceph-users email list: mailto:ceph-users-leave@lists.ceph.com
-.. _OS recommendations: ../../../start/os-recommendations
-.. _ceph-devel: ceph-devel@vger.kernel.org
diff --git a/src/ceph/doc/rados/troubleshooting/troubleshooting-pg.rst b/src/ceph/doc/rados/troubleshooting/troubleshooting-pg.rst
deleted file mode 100644
index 4241fee..0000000
--- a/src/ceph/doc/rados/troubleshooting/troubleshooting-pg.rst
+++ /dev/null
@@ -1,668 +0,0 @@
-=====================
- Troubleshooting PGs
-=====================
-
-Placement Groups Never Get Clean
-================================
-
-When you create a cluster and your cluster remains in ``active``,
-``active+remapped`` or ``active+degraded`` status and never achieve an
-``active+clean`` status, you likely have a problem with your configuration.
-
-You may need to review settings in the `Pool, PG and CRUSH Config Reference`_
-and make appropriate adjustments.
-
-As a general rule, you should run your cluster with more than one OSD and a
-pool size greater than 1 object replica.
-
-One Node Cluster
-----------------
-
-Ceph no longer provides documentation for operating on a single node, because
-you would never deploy a system designed for distributed computing on a single
-node. Additionally, mounting client kernel modules on a single node containing a
-Ceph daemon may cause a deadlock due to issues with the Linux kernel itself
-(unless you use VMs for the clients). You can experiment with Ceph in a 1-node
-configuration, in spite of the limitations as described herein.
-
-If you are trying to create a cluster on a single node, you must change the
-default of the ``osd crush chooseleaf type`` setting from ``1`` (meaning
-``host`` or ``node``) to ``0`` (meaning ``osd``) in your Ceph configuration
-file before you create your monitors and OSDs. This tells Ceph that an OSD
-can peer with another OSD on the same host. If you are trying to set up a
-1-node cluster and ``osd crush chooseleaf type`` is greater than ``0``,
-Ceph will try to peer the PGs of one OSD with the PGs of another OSD on
-another node, chassis, rack, row, or even datacenter depending on the setting.
-
-.. tip:: DO NOT mount kernel clients directly on the same node as your
- Ceph Storage Cluster, because kernel conflicts can arise. However, you
- can mount kernel clients within virtual machines (VMs) on a single node.
-
-If you are creating OSDs using a single disk, you must create directories
-for the data manually first. For example::
-
- mkdir /var/local/osd0 /var/local/osd1
- ceph-deploy osd prepare {localhost-name}:/var/local/osd0 {localhost-name}:/var/local/osd1
- ceph-deploy osd activate {localhost-name}:/var/local/osd0 {localhost-name}:/var/local/osd1
-
-
-Fewer OSDs than Replicas
-------------------------
-
-If you have brought up two OSDs to an ``up`` and ``in`` state, but you still
-don't see ``active + clean`` placement groups, you may have an
-``osd pool default size`` set to greater than ``2``.
-
-There are a few ways to address this situation. If you want to operate your
-cluster in an ``active + degraded`` state with two replicas, you can set the
-``osd pool default min size`` to ``2`` so that you can write objects in
-an ``active + degraded`` state. You may also set the ``osd pool default size``
-setting to ``2`` so that you only have two stored replicas (the original and
-one replica), in which case the cluster should achieve an ``active + clean``
-state.
-
-.. note:: You can make the changes at runtime. If you make the changes in
- your Ceph configuration file, you may need to restart your cluster.
-
-
-Pool Size = 1
--------------
-
-If you have the ``osd pool default size`` set to ``1``, you will only have
-one copy of the object. OSDs rely on other OSDs to tell them which objects
-they should have. If a first OSD has a copy of an object and there is no
-second copy, then no second OSD can tell the first OSD that it should have
-that copy. For each placement group mapped to the first OSD (see
-``ceph pg dump``), you can force the first OSD to notice the placement groups
-it needs by running::
-
- ceph osd force-create-pg <pgid>
-
-
-CRUSH Map Errors
-----------------
-
-Another candidate for placement groups remaining unclean involves errors
-in your CRUSH map.
-
-
-Stuck Placement Groups
-======================
-
-It is normal for placement groups to enter states like "degraded" or "peering"
-following a failure. Normally these states indicate the normal progression
-through the failure recovery process. However, if a placement group stays in one
-of these states for a long time this may be an indication of a larger problem.
-For this reason, the monitor will warn when placement groups get "stuck" in a
-non-optimal state. Specifically, we check for:
-
-* ``inactive`` - The placement group has not been ``active`` for too long
- (i.e., it hasn't been able to service read/write requests).
-
-* ``unclean`` - The placement group has not been ``clean`` for too long
- (i.e., it hasn't been able to completely recover from a previous failure).
-
-* ``stale`` - The placement group status has not been updated by a ``ceph-osd``,
- indicating that all nodes storing this placement group may be ``down``.
-
-You can explicitly list stuck placement groups with one of::
-
- ceph pg dump_stuck stale
- ceph pg dump_stuck inactive
- ceph pg dump_stuck unclean
-
-For stuck ``stale`` placement groups, it is normally a matter of getting the
-right ``ceph-osd`` daemons running again. For stuck ``inactive`` placement
-groups, it is usually a peering problem (see :ref:`failures-osd-peering`). For
-stuck ``unclean`` placement groups, there is usually something preventing
-recovery from completing, like unfound objects (see
-:ref:`failures-osd-unfound`);
-
-
-
-.. _failures-osd-peering:
-
-Placement Group Down - Peering Failure
-======================================
-
-In certain cases, the ``ceph-osd`` `Peering` process can run into
-problems, preventing a PG from becoming active and usable. For
-example, ``ceph health`` might report::
-
- ceph health detail
- HEALTH_ERR 7 pgs degraded; 12 pgs down; 12 pgs peering; 1 pgs recovering; 6 pgs stuck unclean; 114/3300 degraded (3.455%); 1/3 in osds are down
- ...
- pg 0.5 is down+peering
- pg 1.4 is down+peering
- ...
- osd.1 is down since epoch 69, last address 192.168.106.220:6801/8651
-
-We can query the cluster to determine exactly why the PG is marked ``down`` with::
-
- ceph pg 0.5 query
-
-.. code-block:: javascript
-
- { "state": "down+peering",
- ...
- "recovery_state": [
- { "name": "Started\/Primary\/Peering\/GetInfo",
- "enter_time": "2012-03-06 14:40:16.169679",
- "requested_info_from": []},
- { "name": "Started\/Primary\/Peering",
- "enter_time": "2012-03-06 14:40:16.169659",
- "probing_osds": [
- 0,
- 1],
- "blocked": "peering is blocked due to down osds",
- "down_osds_we_would_probe": [
- 1],
- "peering_blocked_by": [
- { "osd": 1,
- "current_lost_at": 0,
- "comment": "starting or marking this osd lost may let us proceed"}]},
- { "name": "Started",
- "enter_time": "2012-03-06 14:40:16.169513"}
- ]
- }
-
-The ``recovery_state`` section tells us that peering is blocked due to
-down ``ceph-osd`` daemons, specifically ``osd.1``. In this case, we can start that ``ceph-osd``
-and things will recover.
-
-Alternatively, if there is a catastrophic failure of ``osd.1`` (e.g., disk
-failure), we can tell the cluster that it is ``lost`` and to cope as
-best it can.
-
-.. important:: This is dangerous in that the cluster cannot
- guarantee that the other copies of the data are consistent
- and up to date.
-
-To instruct Ceph to continue anyway::
-
- ceph osd lost 1
-
-Recovery will proceed.
-
-
-.. _failures-osd-unfound:
-
-Unfound Objects
-===============
-
-Under certain combinations of failures Ceph may complain about
-``unfound`` objects::
-
- ceph health detail
- HEALTH_WARN 1 pgs degraded; 78/3778 unfound (2.065%)
- pg 2.4 is active+degraded, 78 unfound
-
-This means that the storage cluster knows that some objects (or newer
-copies of existing objects) exist, but it hasn't found copies of them.
-One example of how this might come about for a PG whose data is on ceph-osds
-1 and 2:
-
-* 1 goes down
-* 2 handles some writes, alone
-* 1 comes up
-* 1 and 2 repeer, and the objects missing on 1 are queued for recovery.
-* Before the new objects are copied, 2 goes down.
-
-Now 1 knows that these object exist, but there is no live ``ceph-osd`` who
-has a copy. In this case, IO to those objects will block, and the
-cluster will hope that the failed node comes back soon; this is
-assumed to be preferable to returning an IO error to the user.
-
-First, you can identify which objects are unfound with::
-
- ceph pg 2.4 list_missing [starting offset, in json]
-
-.. code-block:: javascript
-
- { "offset": { "oid": "",
- "key": "",
- "snapid": 0,
- "hash": 0,
- "max": 0},
- "num_missing": 0,
- "num_unfound": 0,
- "objects": [
- { "oid": "object 1",
- "key": "",
- "hash": 0,
- "max": 0 },
- ...
- ],
- "more": 0}
-
-If there are too many objects to list in a single result, the ``more``
-field will be true and you can query for more. (Eventually the
-command line tool will hide this from you, but not yet.)
-
-Second, you can identify which OSDs have been probed or might contain
-data::
-
- ceph pg 2.4 query
-
-.. code-block:: javascript
-
- "recovery_state": [
- { "name": "Started\/Primary\/Active",
- "enter_time": "2012-03-06 15:15:46.713212",
- "might_have_unfound": [
- { "osd": 1,
- "status": "osd is down"}]},
-
-In this case, for example, the cluster knows that ``osd.1`` might have
-data, but it is ``down``. The full range of possible states include:
-
-* already probed
-* querying
-* OSD is down
-* not queried (yet)
-
-Sometimes it simply takes some time for the cluster to query possible
-locations.
-
-It is possible that there are other locations where the object can
-exist that are not listed. For example, if a ceph-osd is stopped and
-taken out of the cluster, the cluster fully recovers, and due to some
-future set of failures ends up with an unfound object, it won't
-consider the long-departed ceph-osd as a potential location to
-consider. (This scenario, however, is unlikely.)
-
-If all possible locations have been queried and objects are still
-lost, you may have to give up on the lost objects. This, again, is
-possible given unusual combinations of failures that allow the cluster
-to learn about writes that were performed before the writes themselves
-are recovered. To mark the "unfound" objects as "lost"::
-
- ceph pg 2.5 mark_unfound_lost revert|delete
-
-This the final argument specifies how the cluster should deal with
-lost objects.
-
-The "delete" option will forget about them entirely.
-
-The "revert" option (not available for erasure coded pools) will
-either roll back to a previous version of the object or (if it was a
-new object) forget about it entirely. Use this with caution, as it
-may confuse applications that expected the object to exist.
-
-
-Homeless Placement Groups
-=========================
-
-It is possible for all OSDs that had copies of a given placement groups to fail.
-If that's the case, that subset of the object store is unavailable, and the
-monitor will receive no status updates for those placement groups. To detect
-this situation, the monitor marks any placement group whose primary OSD has
-failed as ``stale``. For example::
-
- ceph health
- HEALTH_WARN 24 pgs stale; 3/300 in osds are down
-
-You can identify which placement groups are ``stale``, and what the last OSDs to
-store them were, with::
-
- ceph health detail
- HEALTH_WARN 24 pgs stale; 3/300 in osds are down
- ...
- pg 2.5 is stuck stale+active+remapped, last acting [2,0]
- ...
- osd.10 is down since epoch 23, last address 192.168.106.220:6800/11080
- osd.11 is down since epoch 13, last address 192.168.106.220:6803/11539
- osd.12 is down since epoch 24, last address 192.168.106.220:6806/11861
-
-If we want to get placement group 2.5 back online, for example, this tells us that
-it was last managed by ``osd.0`` and ``osd.2``. Restarting those ``ceph-osd``
-daemons will allow the cluster to recover that placement group (and, presumably,
-many others).
-
-
-Only a Few OSDs Receive Data
-============================
-
-If you have many nodes in your cluster and only a few of them receive data,
-`check`_ the number of placement groups in your pool. Since placement groups get
-mapped to OSDs, a small number of placement groups will not distribute across
-your cluster. Try creating a pool with a placement group count that is a
-multiple of the number of OSDs. See `Placement Groups`_ for details. The default
-placement group count for pools is not useful, but you can change it `here`_.
-
-
-Can't Write Data
-================
-
-If your cluster is up, but some OSDs are down and you cannot write data,
-check to ensure that you have the minimum number of OSDs running for the
-placement group. If you don't have the minimum number of OSDs running,
-Ceph will not allow you to write data because there is no guarantee
-that Ceph can replicate your data. See ``osd pool default min size``
-in the `Pool, PG and CRUSH Config Reference`_ for details.
-
-
-PGs Inconsistent
-================
-
-If you receive an ``active + clean + inconsistent`` state, this may happen
-due to an error during scrubbing. As always, we can identify the inconsistent
-placement group(s) with::
-
- $ ceph health detail
- HEALTH_ERR 1 pgs inconsistent; 2 scrub errors
- pg 0.6 is active+clean+inconsistent, acting [0,1,2]
- 2 scrub errors
-
-Or if you prefer inspecting the output in a programmatic way::
-
- $ rados list-inconsistent-pg rbd
- ["0.6"]
-
-There is only one consistent state, but in the worst case, we could have
-different inconsistencies in multiple perspectives found in more than one
-objects. If an object named ``foo`` in PG ``0.6`` is truncated, we will have::
-
- $ rados list-inconsistent-obj 0.6 --format=json-pretty
-
-.. code-block:: javascript
-
- {
- "epoch": 14,
- "inconsistents": [
- {
- "object": {
- "name": "foo",
- "nspace": "",
- "locator": "",
- "snap": "head",
- "version": 1
- },
- "errors": [
- "data_digest_mismatch",
- "size_mismatch"
- ],
- "union_shard_errors": [
- "data_digest_mismatch_oi",
- "size_mismatch_oi"
- ],
- "selected_object_info": "0:602f83fe:::foo:head(16'1 client.4110.0:1 dirty|data_digest|omap_digest s 968 uv 1 dd e978e67f od ffffffff alloc_hint [0 0 0])",
- "shards": [
- {
- "osd": 0,
- "errors": [],
- "size": 968,
- "omap_digest": "0xffffffff",
- "data_digest": "0xe978e67f"
- },
- {
- "osd": 1,
- "errors": [],
- "size": 968,
- "omap_digest": "0xffffffff",
- "data_digest": "0xe978e67f"
- },
- {
- "osd": 2,
- "errors": [
- "data_digest_mismatch_oi",
- "size_mismatch_oi"
- ],
- "size": 0,
- "omap_digest": "0xffffffff",
- "data_digest": "0xffffffff"
- }
- ]
- }
- ]
- }
-
-In this case, we can learn from the output:
-
-* The only inconsistent object is named ``foo``, and it is its head that has
- inconsistencies.
-* The inconsistencies fall into two categories:
-
- * ``errors``: these errors indicate inconsistencies between shards without a
- determination of which shard(s) are bad. Check for the ``errors`` in the
- `shards` array, if available, to pinpoint the problem.
-
- * ``data_digest_mismatch``: the digest of the replica read from OSD.2 is
- different from the ones of OSD.0 and OSD.1
- * ``size_mismatch``: the size of the replica read from OSD.2 is 0, while
- the size reported by OSD.0 and OSD.1 is 968.
- * ``union_shard_errors``: the union of all shard specific ``errors`` in
- ``shards`` array. The ``errors`` are set for the given shard that has the
- problem. They include errors like ``read_error``. The ``errors`` ending in
- ``oi`` indicate a comparison with ``selected_object_info``. Look at the
- ``shards`` array to determine which shard has which error(s).
-
- * ``data_digest_mismatch_oi``: the digest stored in the object-info is not
- ``0xffffffff``, which is calculated from the shard read from OSD.2
- * ``size_mismatch_oi``: the size stored in the object-info is different
- from the one read from OSD.2. The latter is 0.
-
-You can repair the inconsistent placement group by executing::
-
- ceph pg repair {placement-group-ID}
-
-Which overwrites the `bad` copies with the `authoritative` ones. In most cases,
-Ceph is able to choose authoritative copies from all available replicas using
-some predefined criteria. But this does not always work. For example, the stored
-data digest could be missing, and the calculated digest will be ignored when
-choosing the authoritative copies. So, please use the above command with caution.
-
-If ``read_error`` is listed in the ``errors`` attribute of a shard, the
-inconsistency is likely due to disk errors. You might want to check your disk
-used by that OSD.
-
-If you receive ``active + clean + inconsistent`` states periodically due to
-clock skew, you may consider configuring your `NTP`_ daemons on your
-monitor hosts to act as peers. See `The Network Time Protocol`_ and Ceph
-`Clock Settings`_ for additional details.
-
-
-Erasure Coded PGs are not active+clean
-======================================
-
-When CRUSH fails to find enough OSDs to map to a PG, it will show as a
-``2147483647`` which is ITEM_NONE or ``no OSD found``. For instance::
-
- [2,1,6,0,5,8,2147483647,7,4]
-
-Not enough OSDs
----------------
-
-If the Ceph cluster only has 8 OSDs and the erasure coded pool needs
-9, that is what it will show. You can either create another erasure
-coded pool that requires less OSDs::
-
- ceph osd erasure-code-profile set myprofile k=5 m=3
- ceph osd pool create erasurepool 16 16 erasure myprofile
-
-or add a new OSDs and the PG will automatically use them.
-
-CRUSH constraints cannot be satisfied
--------------------------------------
-
-If the cluster has enough OSDs, it is possible that the CRUSH ruleset
-imposes constraints that cannot be satisfied. If there are 10 OSDs on
-two hosts and the CRUSH rulesets require that no two OSDs from the
-same host are used in the same PG, the mapping may fail because only
-two OSD will be found. You can check the constraint by displaying the
-ruleset::
-
- $ ceph osd crush rule ls
- [
- "replicated_ruleset",
- "erasurepool"]
- $ ceph osd crush rule dump erasurepool
- { "rule_id": 1,
- "rule_name": "erasurepool",
- "ruleset": 1,
- "type": 3,
- "min_size": 3,
- "max_size": 20,
- "steps": [
- { "op": "take",
- "item": -1,
- "item_name": "default"},
- { "op": "chooseleaf_indep",
- "num": 0,
- "type": "host"},
- { "op": "emit"}]}
-
-
-You can resolve the problem by creating a new pool in which PGs are allowed
-to have OSDs residing on the same host with::
-
- ceph osd erasure-code-profile set myprofile crush-failure-domain=osd
- ceph osd pool create erasurepool 16 16 erasure myprofile
-
-CRUSH gives up too soon
------------------------
-
-If the Ceph cluster has just enough OSDs to map the PG (for instance a
-cluster with a total of 9 OSDs and an erasure coded pool that requires
-9 OSDs per PG), it is possible that CRUSH gives up before finding a
-mapping. It can be resolved by:
-
-* lowering the erasure coded pool requirements to use less OSDs per PG
- (that requires the creation of another pool as erasure code profiles
- cannot be dynamically modified).
-
-* adding more OSDs to the cluster (that does not require the erasure
- coded pool to be modified, it will become clean automatically)
-
-* use a hand made CRUSH ruleset that tries more times to find a good
- mapping. It can be done by setting ``set_choose_tries`` to a value
- greater than the default.
-
-You should first verify the problem with ``crushtool`` after
-extracting the crushmap from the cluster so your experiments do not
-modify the Ceph cluster and only work on a local files::
-
- $ ceph osd crush rule dump erasurepool
- { "rule_name": "erasurepool",
- "ruleset": 1,
- "type": 3,
- "min_size": 3,
- "max_size": 20,
- "steps": [
- { "op": "take",
- "item": -1,
- "item_name": "default"},
- { "op": "chooseleaf_indep",
- "num": 0,
- "type": "host"},
- { "op": "emit"}]}
- $ ceph osd getcrushmap > crush.map
- got crush map from osdmap epoch 13
- $ crushtool -i crush.map --test --show-bad-mappings \
- --rule 1 \
- --num-rep 9 \
- --min-x 1 --max-x $((1024 * 1024))
- bad mapping rule 8 x 43 num_rep 9 result [3,2,7,1,2147483647,8,5,6,0]
- bad mapping rule 8 x 79 num_rep 9 result [6,0,2,1,4,7,2147483647,5,8]
- bad mapping rule 8 x 173 num_rep 9 result [0,4,6,8,2,1,3,7,2147483647]
-
-Where ``--num-rep`` is the number of OSDs the erasure code crush
-ruleset needs, ``--rule`` is the value of the ``ruleset`` field
-displayed by ``ceph osd crush rule dump``. The test will try mapping
-one million values (i.e. the range defined by ``[--min-x,--max-x]``)
-and must display at least one bad mapping. If it outputs nothing it
-means all mappings are successfull and you can stop right there: the
-problem is elsewhere.
-
-The crush ruleset can be edited by decompiling the crush map::
-
- $ crushtool --decompile crush.map > crush.txt
-
-and adding the following line to the ruleset::
-
- step set_choose_tries 100
-
-The relevant part of of the ``crush.txt`` file should look something
-like::
-
- rule erasurepool {
- ruleset 1
- type erasure
- min_size 3
- max_size 20
- step set_chooseleaf_tries 5
- step set_choose_tries 100
- step take default
- step chooseleaf indep 0 type host
- step emit
- }
-
-It can then be compiled and tested again::
-
- $ crushtool --compile crush.txt -o better-crush.map
-
-When all mappings succeed, an histogram of the number of tries that
-were necessary to find all of them can be displayed with the
-``--show-choose-tries`` option of ``crushtool``::
-
- $ crushtool -i better-crush.map --test --show-bad-mappings \
- --show-choose-tries \
- --rule 1 \
- --num-rep 9 \
- --min-x 1 --max-x $((1024 * 1024))
- ...
- 11: 42
- 12: 44
- 13: 54
- 14: 45
- 15: 35
- 16: 34
- 17: 30
- 18: 25
- 19: 19
- 20: 22
- 21: 20
- 22: 17
- 23: 13
- 24: 16
- 25: 13
- 26: 11
- 27: 11
- 28: 13
- 29: 11
- 30: 10
- 31: 6
- 32: 5
- 33: 10
- 34: 3
- 35: 7
- 36: 5
- 37: 2
- 38: 5
- 39: 5
- 40: 2
- 41: 5
- 42: 4
- 43: 1
- 44: 2
- 45: 2
- 46: 3
- 47: 1
- 48: 0
- ...
- 102: 0
- 103: 1
- 104: 0
- ...
-
-It took 11 tries to map 42 PGs, 12 tries to map 44 PGs etc. The highest number of tries is the minimum value of ``set_choose_tries`` that prevents bad mappings (i.e. 103 in the above output because it did not take more than 103 tries for any PG to be mapped).
-
-.. _check: ../../operations/placement-groups#get-the-number-of-placement-groups
-.. _here: ../../configuration/pool-pg-config-ref
-.. _Placement Groups: ../../operations/placement-groups
-.. _Pool, PG and CRUSH Config Reference: ../../configuration/pool-pg-config-ref
-.. _NTP: http://en.wikipedia.org/wiki/Network_Time_Protocol
-.. _The Network Time Protocol: http://www.ntp.org/
-.. _Clock Settings: ../../configuration/mon-config-ref/#clock
-
-
diff --git a/src/ceph/doc/radosgw/admin.rst b/src/ceph/doc/radosgw/admin.rst
deleted file mode 100644
index c1f1904..0000000
--- a/src/ceph/doc/radosgw/admin.rst
+++ /dev/null
@@ -1,528 +0,0 @@
-=============
- Admin Guide
-=============
-
-Once you have your Ceph Object Storage service up and running, you may
-administer the service with user management, access controls, quotas
-and usage tracking among other features.
-
-
-User Management
-===============
-
-Ceph Object Storage user management refers to users of the Ceph Object Storage
-service (i.e., not the Ceph Object Gateway as a user of the Ceph Storage
-Cluster). You must create a user, access key and secret to enable end users to
-interact with Ceph Object Gateway services.
-
-There are two user types:
-
-- **User:** The term 'user' reflects a user of the S3 interface.
-
-- **Subuser:** The term 'subuser' reflects a user of the Swift interface. A subuser
- is associated to a user .
-
-.. ditaa:: +---------+
- | User |
- +----+----+
- |
- | +-----------+
- +-----+ Subuser |
- +-----------+
-
-You can create, modify, view, suspend and remove users and subusers. In addition
-to user and subuser IDs, you may add a display name and an email address for a
-user. You can specify a key and secret, or generate a key and secret
-automatically. When generating or specifying keys, note that user IDs correspond
-to an S3 key type and subuser IDs correspond to a swift key type. Swift keys
-also have access levels of ``read``, ``write``, ``readwrite`` and ``full``.
-
-
-Create a User
--------------
-
-To create a user (S3 interface), execute the following::
-
- radosgw-admin user create --uid={username} --display-name="{display-name}" [--email={email}]
-
-For example::
-
- radosgw-admin user create --uid=johndoe --display-name="John Doe" --email=john@example.com
-
-.. code-block:: javascript
-
- { "user_id": "johndoe",
- "display_name": "John Doe",
- "email": "john@example.com",
- "suspended": 0,
- "max_buckets": 1000,
- "auid": 0,
- "subusers": [],
- "keys": [
- { "user": "johndoe",
- "access_key": "11BS02LGFB6AL6H1ADMW",
- "secret_key": "vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY"}],
- "swift_keys": [],
- "caps": [],
- "op_mask": "read, write, delete",
- "default_placement": "",
- "placement_tags": [],
- "bucket_quota": { "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1},
- "user_quota": { "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1},
- "temp_url_keys": []}
-
-Creating a user also creates an ``access_key`` and ``secret_key`` entry for use
-with any S3 API-compatible client.
-
-.. important:: Check the key output. Sometimes ``radosgw-admin``
- generates a JSON escape (``\``) character, and some clients
- do not know how to handle JSON escape characters. Remedies include
- removing the JSON escape character (``\``), encapsulating the string
- in quotes, regenerating the key and ensuring that it
- does not have a JSON escape character or specify the key and secret
- manually.
-
-
-Create a Subuser
-----------------
-
-To create a subuser (Swift interface) for the user, you must specify the user ID
-(``--uid={username}``), a subuser ID and the access level for the subuser. ::
-
- radosgw-admin subuser create --uid={uid} --subuser={uid} --access=[ read | write | readwrite | full ]
-
-For example::
-
- radosgw-admin subuser create --uid=johndoe --subuser=johndoe:swift --access=full
-
-
-.. note:: ``full`` is not ``readwrite``, as it also includes the access control policy.
-
-.. code-block:: javascript
-
- { "user_id": "johndoe",
- "display_name": "John Doe",
- "email": "john@example.com",
- "suspended": 0,
- "max_buckets": 1000,
- "auid": 0,
- "subusers": [
- { "id": "johndoe:swift",
- "permissions": "full-control"}],
- "keys": [
- { "user": "johndoe",
- "access_key": "11BS02LGFB6AL6H1ADMW",
- "secret_key": "vzCEkuryfn060dfee4fgQPqFrncKEIkh3ZcdOANY"}],
- "swift_keys": [],
- "caps": [],
- "op_mask": "read, write, delete",
- "default_placement": "",
- "placement_tags": [],
- "bucket_quota": { "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1},
- "user_quota": { "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1},
- "temp_url_keys": []}
-
-
-Get User Info
--------------
-
-To get information about a user, you must specify ``user info`` and the user ID
-(``--uid={username}``) . ::
-
- radosgw-admin user info --uid=johndoe
-
-
-
-Modify User Info
-----------------
-
-To modify information about a user, you must specify the user ID (``--uid={username}``)
-and the attributes you want to modify. Typical modifications are to keys and secrets,
-email addresses, display names and access levels. For example::
-
- radosgw-admin user modify --uid=johndoe --display-name="John E. Doe"
-
-To modify subuser values, specify ``subuser modify`` and the subuser ID. For example::
-
- radosgw-admin subuser modify --uid=johndoe:swift --access=full
-
-
-User Enable/Suspend
--------------------
-
-When you create a user, the user is enabled by default. However, you may suspend
-user privileges and re-enable them at a later time. To suspend a user, specify
-``user suspend`` and the user ID. ::
-
- radosgw-admin user suspend --uid=johndoe
-
-To re-enable a suspended user, specify ``user enable`` and the user ID. ::
-
- radosgw-admin user enable --uid=johndoe
-
-.. note:: Disabling the user disables the subuser.
-
-
-Remove a User
--------------
-
-When you remove a user, the user and subuser are removed from the system.
-However, you may remove just the subuser if you wish. To remove a user (and
-subuser), specify ``user rm`` and the user ID. ::
-
- radosgw-admin user rm --uid=johndoe
-
-To remove the subuser only, specify ``subuser rm`` and the subuser ID. ::
-
- radosgw-admin subuser rm --subuser=johndoe:swift
-
-
-Options include:
-
-- **Purge Data:** The ``--purge-data`` option purges all data associated
- to the UID.
-
-- **Purge Keys:** The ``--purge-keys`` option purges all keys associated
- to the UID.
-
-
-Remove a Subuser
-----------------
-
-When you remove a sub user, you are removing access to the Swift interface.
-The user will remain in the system. To remove the subuser, specify
-``subuser rm`` and the subuser ID. ::
-
- radosgw-admin subuser rm --subuser=johndoe:swift
-
-
-
-Options include:
-
-- **Purge Keys:** The ``--purge-keys`` option purges all keys associated
- to the UID.
-
-
-Add / Remove a Key
-------------------------
-
-Both users and subusers require the key to access the S3 or Swift interface. To
-use S3, the user needs a key pair which is composed of an access key and a
-secret key. On the other hand, to use Swift, the user typically needs a secret
-key (password), and use it together with the associated user ID. You may create
-a key and either specify or generate the access key and/or secret key. You may
-also remove a key. Options include:
-
-- ``--key-type=<type>`` specifies the key type. The options are: s3, swift
-- ``--access-key=<key>`` manually specifies an S3 access key.
-- ``--secret-key=<key>`` manually specifies a S3 secret key or a Swift secret key.
-- ``--gen-access-key`` automatically generates a S3 key.
-- ``--gen-secret`` automatically generates a S3 secret key or a Swift secret key.
-
-An example how to add a specified S3 key pair for a user. ::
-
- radosgw-admin key create --uid=foo --key-type=s3 --access-key fooAccessKey --secret-key fooSecretKey
-
-.. code-block:: javascript
-
- { "user_id": "foo",
- "rados_uid": 0,
- "display_name": "foo",
- "email": "foo@example.com",
- "suspended": 0,
- "keys": [
- { "user": "foo",
- "access_key": "fooAccessKey",
- "secret_key": "fooSecretKey"}],
- }
-
-Note that you may create multiple S3 key pairs for a user.
-
-To attach a specified swift secret key for a subuser. ::
-
- radosgw-admin key create --subuser=foo:bar --key-type=swift --secret-key barSecret
-
-.. code-block:: javascript
-
- { "user_id": "foo",
- "rados_uid": 0,
- "display_name": "foo",
- "email": "foo@example.com",
- "suspended": 0,
- "subusers": [
- { "id": "foo:bar",
- "permissions": "full-control"}],
- "swift_keys": [
- { "user": "foo:bar",
- "secret_key": "asfghjghghmgm"}]}
-
-Note that a subuser can have only one swift secret key.
-
-Subusers can also be used with S3 APIs if the subuser is associated with a S3 key pair. ::
-
- radosgw-admin key create --subuser=foo:bar --key-type=s3 --access-key barAccessKey --secret-key barSecretKey
-
-.. code-block:: javascript
-
- { "user_id": "foo",
- "rados_uid": 0,
- "display_name": "foo",
- "email": "foo@example.com",
- "suspended": 0,
- "subusers": [
- { "id": "foo:bar",
- "permissions": "full-control"}],
- "keys": [
- { "user": "foo:bar",
- "access_key": "barAccessKey",
- "secret_key": "barSecretKey"}],
- }
-
-
-To remove a S3 key pair, specify the access key. ::
-
- radosgw-admin key rm --uid=foo --key-type=s3 --access-key=fooAccessKey
-
-To remove the swift secret key. ::
-
- radosgw-admin key rm -subuser=foo:bar --key-type=swift
-
-
-Add / Remove Admin Capabilities
--------------------------------
-
-The Ceph Storage Cluster provides an administrative API that enables users to
-execute administrative functions via the REST API. By default, users do NOT have
-access to this API. To enable a user to exercise administrative functionality,
-provide the user with administrative capabilities.
-
-To add administrative capabilities to a user, execute the following::
-
- radosgw-admin caps add --uid={uid} --caps={caps}
-
-
-You can add read, write or all capabilities to users, buckets, metadata and
-usage (utilization). For example::
-
- --caps="[users|buckets|metadata|usage|zone]=[*|read|write|read, write]"
-
-For example::
-
- radosgw-admin caps add --uid=johndoe --caps="users=*;buckets=*"
-
-
-To remove administrative capabilities from a user, execute the following::
-
- radosgw-admin caps rm --uid=johndoe --caps={caps}
-
-
-Quota Management
-================
-
-The Ceph Object Gateway enables you to set quotas on users and buckets owned by
-users. Quotas include the maximum number of objects in a bucket and the maximum
-storage size a bucket can hold.
-
-- **Bucket:** The ``--bucket`` option allows you to specify a quota for
- buckets the user owns.
-
-- **Maximum Objects:** The ``--max-objects`` setting allows you to specify
- the maximum number of objects. A negative value disables this setting.
-
-- **Maximum Size:** The ``--max-size`` option allows you to specify a quota
- size in B/K/M/G/T, where B is the default. A negative value disables this setting.
-
-- **Quota Scope:** The ``--quota-scope`` option sets the scope for the quota.
- The options are ``bucket`` and ``user``. Bucket quotas apply to buckets a
- user owns. User quotas apply to a user.
-
-
-Set User Quota
---------------
-
-Before you enable a quota, you must first set the quota parameters.
-For example::
-
- radosgw-admin quota set --quota-scope=user --uid=<uid> [--max-objects=<num objects>] [--max-size=<max size>]
-
-For example::
-
- radosgw-admin quota set --quota-scope=user --uid=johndoe --max-objects=1024 --max-size=1024B
-
-
-A negative value for num objects and / or max size means that the
-specific quota attribute check is disabled.
-
-
-Enable/Disable User Quota
--------------------------
-
-Once you set a user quota, you may enable it. For example::
-
- radosgw-admin quota enable --quota-scope=user --uid=<uid>
-
-You may disable an enabled user quota. For example::
-
- radosgw-admin quota disable --quota-scope=user --uid=<uid>
-
-
-Set Bucket Quota
-----------------
-
-Bucket quotas apply to the buckets owned by the specified ``uid``. They are
-independent of the user. ::
-
- radosgw-admin quota set --uid=<uid> --quota-scope=bucket [--max-objects=<num objects>] [--max-size=<max size]
-
-A negative value for num objects and / or max size means that the
-specific quota attribute check is disabled.
-
-
-Enable/Disable Bucket Quota
----------------------------
-
-Once you set a bucket quota, you may enable it. For example::
-
- radosgw-admin quota enable --quota-scope=bucket --uid=<uid>
-
-You may disable an enabled bucket quota. For example::
-
- radosgw-admin quota disable --quota-scope=bucket --uid=<uid>
-
-
-Get Quota Settings
-------------------
-
-You may access each user's quota settings via the user information
-API. To read user quota setting information with the CLI interface,
-execute the following::
-
- radosgw-admin user info --uid=<uid>
-
-
-Update Quota Stats
-------------------
-
-Quota stats get updated asynchronously. You can update quota
-statistics for all users and all buckets manually to retrieve
-the latest quota stats. ::
-
- radosgw-admin user stats --uid=<uid> --sync-stats
-
-
-Get User Usage Stats
---------------------
-
-To see how much of the quota a user has consumed, execute the following::
-
- radosgw-admin user stats --uid=<uid>
-
-.. note:: You should execute ``radosgw-admin user stats`` with the
- ``--sync-stats`` option to receive the latest data.
-
-Default Quotas
---------------
-
-You can set default quotas in the config. These defaults are used when
-creating a new user and have no effect on existing users. If the
-relevant default quota is set in config, then that quota is set on the
-new user, and that quota is enabled. See ``rgw bucket default quota max objects``,
-``rgw bucket default quota max size``, ``rgw user default quota max objects``, and
-``rgw user default quota max size`` in `Ceph Object Gateway Config Reference`_
-
-Quota Cache
------------
-
-Quota statistics are cached on each RGW instance. If there are multiple
-instances, then the cache can keep quotas from being perfectly enforced, as
-each instance will have a different view of quotas. The options that control
-this are ``rgw bucket quota ttl``, ``rgw user quota bucket sync interval`` and
-``rgw user quota sync interval``. The higher these values are, the more
-efficient quota operations are, but the more out-of-sync multiple instances
-will be. The lower these values are, the closer to perfect enforcement
-multiple instances will achieve. If all three are 0, then quota caching is
-effectively disabled, and multiple instances will have perfect quota
-enforcement. See `Ceph Object Gateway Config Reference`_
-
-Reading / Writing Global Quotas
--------------------------------
-
-You can read and write global quota settings in the period configuration. To
-view the global quota settings::
-
- radosgw-admin global quota get
-
-The global quota settings can be manipulated with the ``global quota``
-counterparts of the ``quota set``, ``quota enable``, and ``quota disable``
-commands. ::
-
- radosgw-admin global quota set --quota-scope bucket --max-objects 1024
- radosgw-admin global quota enable --quota-scope bucket
-
-.. note:: In a multisite configuration, where there is a realm and period
- present, changes to the global quotas must be committed using ``period
- update --commit``. If there is no period present, the rados gateway(s) must
- be restarted for the changes to take effect.
-
-
-Usage
-=====
-
-The Ceph Object Gateway logs usage for each user. You can track
-user usage within date ranges too.
-
-- Add ``rgw enable usage log = true`` in [client.rgw] section of ceph.conf and restart the radosgw service.
-
-Options include:
-
-- **Start Date:** The ``--start-date`` option allows you to filter usage
- stats from a particular start date (**format:** ``yyyy-mm-dd[HH:MM:SS]``).
-
-- **End Date:** The ``--end-date`` option allows you to filter usage up
- to a particular date (**format:** ``yyyy-mm-dd[HH:MM:SS]``).
-
-- **Log Entries:** The ``--show-log-entries`` option allows you to specify
- whether or not to include log entries with the usage stats
- (options: ``true`` | ``false``).
-
-.. note:: You may specify time with minutes and seconds, but it is stored
- with 1 hour resolution.
-
-
-Show Usage
-----------
-
-To show usage statistics, specify the ``usage show``. To show usage for a
-particular user, you must specify a user ID. You may also specify a start date,
-end date, and whether or not to show log entries.::
-
- radosgw-admin usage show --uid=johndoe --start-date=2012-03-01 --end-date=2012-04-01
-
-You may also show a summary of usage information for all users by omitting a user ID. ::
-
- radosgw-admin usage show --show-log-entries=false
-
-
-Trim Usage
-----------
-
-With heavy use, usage logs can begin to take up storage space. You can trim
-usage logs for all users and for specific users. You may also specify date
-ranges for trim operations. ::
-
- radosgw-admin usage trim --start-date=2010-01-01 --end-date=2010-12-31
- radosgw-admin usage trim --uid=johndoe
- radosgw-admin usage trim --uid=johndoe --end-date=2013-12-31
-
-
-.. _radosgw-admin: ../../man/8/radosgw-admin/
-.. _Pool Configuration: ../../rados/configuration/pool-pg-config-ref/
-.. _Ceph Object Gateway Config Reference: ../config-ref/
diff --git a/src/ceph/doc/radosgw/adminops.rst b/src/ceph/doc/radosgw/adminops.rst
deleted file mode 100644
index 422dd16..0000000
--- a/src/ceph/doc/radosgw/adminops.rst
+++ /dev/null
@@ -1,1946 +0,0 @@
-==================
- Admin Operations
-==================
-
-An admin API request will be done on a URI that starts with the configurable 'admin'
-resource entry point. Authorization for the admin API duplicates the S3 authorization
-mechanism. Some operations require that the user holds special administrative capabilities.
-The response entity type (XML or JSON) may be specified as the 'format' option in the
-request and defaults to JSON if not specified.
-
-Get Usage
-=========
-
-Request bandwidth usage information.
-
-Note: this feature is disabled by default, can be enabled by setting ``rgw
-enable usage log = true`` in the appropriate section of ceph.conf. For changes
-in ceph.conf to take effect, radosgw process restart is needed.
-
-:caps: usage=read
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/usage?format=json HTTP/1.1
- Host: {fqdn}
-
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user for which the information is requested. If not specified will apply to all users.
-:Type: String
-:Example: ``foo_user``
-:Required: No
-
-``start``
-
-:Description: Date and (optional) time that specifies the start time of the requested data.
-:Type: String
-:Example: ``2012-09-25 16:00:00``
-:Required: No
-
-``end``
-
-:Description: Date and (optional) time that specifies the end time of the requested data (non-inclusive).
-:Type: String
-:Example: ``2012-09-25 16:00:00``
-:Required: No
-
-
-``show-entries``
-
-:Description: Specifies whether data entries should be returned.
-:Type: Boolean
-:Example: True [True]
-:Required: No
-
-
-``show-summary``
-
-:Description: Specifies whether data summary should be returned.
-:Type: Boolean
-:Example: True [True]
-:Required: No
-
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the requested information.
-
-``usage``
-
-:Description: A container for the usage information.
-:Type: Container
-
-``entries``
-
-:Description: A container for the usage entries information.
-:Type: Container
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-
-``owner``
-
-:Description: The name of the user that owns the buckets.
-:Type: String
-
-``bucket``
-
-:Description: The bucket name.
-:Type: String
-
-``time``
-
-:Description: Time lower bound for which data is being specified (rounded to the beginning of the first relevant hour).
-:Type: String
-
-``epoch``
-
-:Description: The time specified in seconds since 1/1/1970.
-:Type: String
-
-``categories``
-
-:Description: A container for stats categories.
-:Type: Container
-
-``entry``
-
-:Description: A container for stats entry.
-:Type: Container
-
-``category``
-
-:Description: Name of request category for which the stats are provided.
-:Type: String
-
-``bytes_sent``
-
-:Description: Number of bytes sent by the RADOS Gateway.
-:Type: Integer
-
-``bytes_received``
-
-:Description: Number of bytes received by the RADOS Gateway.
-:Type: Integer
-
-``ops``
-
-:Description: Number of operations.
-:Type: Integer
-
-``successful_ops``
-
-:Description: Number of successful operations.
-:Type: Integer
-
-``summary``
-
-:Description: A container for stats summary.
-:Type: Container
-
-``total``
-
-:Description: A container for stats summary aggregated total.
-:Type: Container
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Trim Usage
-==========
-
-Remove usage information. With no dates specified, removes all usage
-information.
-
-Note: this feature is disabled by default, can be enabled by setting ``rgw
-enable usage log = true`` in the appropriate section of ceph.conf. For changes
-in ceph.conf to take effect, radosgw process restart is needed.
-
-:caps: usage=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/usage?format=json HTTP/1.1
- Host: {fqdn}
-
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user for which the information is requested. If not specified will apply to all users.
-:Type: String
-:Example: ``foo_user``
-:Required: No
-
-``start``
-
-:Description: Date and (optional) time that specifies the start time of the requested data.
-:Type: String
-:Example: ``2012-09-25 16:00:00``
-:Required: No
-
-``end``
-
-:Description: Date and (optional) time that specifies the end time of the requested data (none inclusive).
-:Type: String
-:Example: ``2012-09-25 16:00:00``
-:Required: No
-
-
-``remove-all``
-
-:Description: Required when uid is not specified, in order to acknowledge multi user data removal.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-TBD.
-
-Get User Info
-=============
-
-Get user information.
-
-:caps: users=read
-
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/user?format=json HTTP/1.1
- Host: {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user for which the information is requested.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the user information.
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-
-``user_id``
-
-:Description: The user id.
-:Type: String
-:Parent: ``user``
-
-``display_name``
-
-:Description: Display name for the user.
-:Type: String
-:Parent: ``user``
-
-``suspended``
-
-:Description: True if the user is suspended.
-:Type: Boolean
-:Parent: ``user``
-
-``max_buckets``
-
-:Description: The maximum number of buckets to be owned by the user.
-:Type: Integer
-:Parent: ``user``
-
-``subusers``
-
-:Description: Subusers associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``keys``
-
-:Description: S3 keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``swift_keys``
-
-:Description: Swift keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``caps``
-
-:Description: User capabilities.
-:Type: Container
-:Parent: ``user``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-None.
-
-Create User
-===========
-
-Create a new user. By default, a S3 key pair will be created automatically
-and returned in the response. If only one of ``access-key`` or ``secret-key``
-is provided, the omitted key will be automatically generated. By default, a
-generated key is added to the keyring without replacing an existing key pair.
-If ``access-key`` is specified and refers to an existing key owned by the user
-then it will be modified.
-
-.. versionadded:: Luminous
-
-A ``tenant`` may either be specified as a part of uid or as an additional
-request param.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/user?format=json HTTP/1.1
- Host: {fqdn}
-
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to be created.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-A tenant name may also specified as a part of ``uid``, by following the syntax ``tenant$user``, refer to `Multitenancy`_ for more details.
-
-``display-name``
-
-:Description: The display name of the user to be created.
-:Type: String
-:Example: ``foo user``
-:Required: Yes
-
-
-``email``
-
-:Description: The email address associated with the user.
-:Type: String
-:Example: ``foo@bar.com``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be generated, options are: swift, s3 (default).
-:Type: String
-:Example: ``s3`` [``s3``]
-:Required: No
-
-``access-key``
-
-:Description: Specify access key.
-:Type: String
-:Example: ``ABCD0EF12GHIJ2K34LMN``
-:Required: No
-
-
-``secret-key``
-
-:Description: Specify secret key.
-:Type: String
-:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
-:Required: No
-
-``user-caps``
-
-:Description: User capabilities.
-:Type: String
-:Example: ``usage=read, write; users=read``
-:Required: No
-
-``generate-key``
-
-:Description: Generate a new key pair and add to the existing keyring.
-:Type: Boolean
-:Example: True [True]
-:Required: No
-
-``max-buckets``
-
-:Description: Specify the maximum number of buckets the user can own.
-:Type: Integer
-:Example: 500 [1000]
-:Required: No
-
-``suspended``
-
-:Description: Specify whether the user should be suspended.
-:Type: Boolean
-:Example: False [False]
-:Required: No
-
-.. versionadded:: Jewel
-``tenant``
-
-:Description: the Tenant under which a user is a part of.
-:Type: string
-:Example: tenant1
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the user information.
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-
-``tenant``
-:Description: The tenant which user is a part of
-:Type: String
-:Parent: ``user``
-
-``user_id``
-
-:Description: The user id.
-:Type: String
-:Parent: ``user``
-
-``display_name``
-
-:Description: Display name for the user.
-:Type: String
-:Parent: ``user``
-
-``suspended``
-
-:Description: True if the user is suspended.
-:Type: Boolean
-:Parent: ``user``
-
-``max_buckets``
-
-:Description: The maximum number of buckets to be owned by the user.
-:Type: Integer
-:Parent: ``user``
-
-``subusers``
-
-:Description: Subusers associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``keys``
-
-:Description: S3 keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``swift_keys``
-
-:Description: Swift keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-``caps``
-
-:Description: User capabilities.
-:Type: Container
-:Parent: ``user``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``UserExists``
-
-:Description: Attempt to create existing user.
-:Code: 409 Conflict
-
-``InvalidAccessKey``
-
-:Description: Invalid access key specified.
-:Code: 400 Bad Request
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``InvalidSecretKey``
-
-:Description: Invalid secret key specified.
-:Code: 400 Bad Request
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``KeyExists``
-
-:Description: Provided access key exists and belongs to another user.
-:Code: 409 Conflict
-
-``EmailExists``
-
-:Description: Provided email address exists.
-:Code: 409 Conflict
-
-``InvalidCapability``
-
-:Description: Attempt to grant invalid admin capability.
-:Code: 400 Bad Request
-
-
-Modify User
-===========
-
-Modify a user.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- POST /{admin}/user?format=json HTTP/1.1
- Host: {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to be modified.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-``display-name``
-
-:Description: The display name of the user to be modified.
-:Type: String
-:Example: ``foo user``
-:Required: No
-
-``email``
-
-:Description: The email address to be associated with the user.
-:Type: String
-:Example: ``foo@bar.com``
-:Required: No
-
-``generate-key``
-
-:Description: Generate a new key pair and add to the existing keyring.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-``access-key``
-
-:Description: Specify access key.
-:Type: String
-:Example: ``ABCD0EF12GHIJ2K34LMN``
-:Required: No
-
-``secret-key``
-
-:Description: Specify secret key.
-:Type: String
-:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be generated, options are: swift, s3 (default).
-:Type: String
-:Example: ``s3``
-:Required: No
-
-``user-caps``
-
-:Description: User capabilities.
-:Type: String
-:Example: ``usage=read, write; users=read``
-:Required: No
-
-``max-buckets``
-
-:Description: Specify the maximum number of buckets the user can own.
-:Type: Integer
-:Example: 500 [1000]
-:Required: No
-
-``suspended``
-
-:Description: Specify whether the user should be suspended.
-:Type: Boolean
-:Example: False [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the user information.
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-
-``user_id``
-
-:Description: The user id.
-:Type: String
-:Parent: ``user``
-
-``display_name``
-
-:Description: Display name for the user.
-:Type: String
-:Parent: ``user``
-
-
-``suspended``
-
-:Description: True if the user is suspended.
-:Type: Boolean
-:Parent: ``user``
-
-
-``max_buckets``
-
-:Description: The maximum number of buckets to be owned by the user.
-:Type: Integer
-:Parent: ``user``
-
-
-``subusers``
-
-:Description: Subusers associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-
-``keys``
-
-:Description: S3 keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-
-``swift_keys``
-
-:Description: Swift keys associated with this user account.
-:Type: Container
-:Parent: ``user``
-
-
-``caps``
-
-:Description: User capabilities.
-:Type: Container
-:Parent: ``user``
-
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``InvalidAccessKey``
-
-:Description: Invalid access key specified.
-:Code: 400 Bad Request
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``InvalidSecretKey``
-
-:Description: Invalid secret key specified.
-:Code: 400 Bad Request
-
-``KeyExists``
-
-:Description: Provided access key exists and belongs to another user.
-:Code: 409 Conflict
-
-``EmailExists``
-
-:Description: Provided email address exists.
-:Code: 409 Conflict
-
-``InvalidCapability``
-
-:Description: Attempt to grant invalid admin capability.
-:Code: 400 Bad Request
-
-Remove User
-===========
-
-Remove an existing user.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/user?format=json HTTP/1.1
- Host: {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to be removed.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes.
-
-``purge-data``
-
-:Description: When specified the buckets and objects belonging
- to the user will also be removed.
-:Type: Boolean
-:Example: True
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-None.
-
-Create Subuser
-==============
-
-Create a new subuser (primarily useful for clients using the Swift API).
-Note that in general for a subuser to be useful, it must be granted
-permissions by specifying ``access``. As with user creation if
-``subuser`` is specified without ``secret``, then a secret key will
-be automatically generated.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/user?subuser&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID under which a subuser is to be created.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-
-``subuser``
-
-:Description: Specify the subuser ID to be created.
-:Type: String
-:Example: ``sub_foo``
-:Required: Yes
-
-``secret-key``
-
-:Description: Specify secret key.
-:Type: String
-:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be generated, options are: swift (default), s3.
-:Type: String
-:Example: ``swift`` [``swift``]
-:Required: No
-
-``access``
-
-:Description: Set access permissions for sub-user, should be one
- of ``read, write, readwrite, full``.
-:Type: String
-:Example: ``read``
-:Required: No
-
-``generate-secret``
-
-:Description: Generate the secret key.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the subuser information.
-
-
-``subusers``
-
-:Description: Subusers associated with the user account.
-:Type: Container
-
-``id``
-
-:Description: Subuser id.
-:Type: String
-:Parent: ``subusers``
-
-``permissions``
-
-:Description: Subuser access to user account.
-:Type: String
-:Parent: ``subusers``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``SubuserExists``
-
-:Description: Specified subuser exists.
-:Code: 409 Conflict
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``InvalidSecretKey``
-
-:Description: Invalid secret key specified.
-:Code: 400 Bad Request
-
-``InvalidAccess``
-
-:Description: Invalid subuser access specified.
-:Code: 400 Bad Request
-
-Modify Subuser
-==============
-
-Modify an existing subuser
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- POST /{admin}/user?subuser&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID under which the subuser is to be modified.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-``subuser``
-
-:Description: The subuser ID to be modified.
-:Type: String
-:Example: ``sub_foo``
-:Required: Yes
-
-``generate-secret``
-
-:Description: Generate a new secret key for the subuser,
- replacing the existing key.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-``secret``
-
-:Description: Specify secret key.
-:Type: String
-:Example: ``0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be generated, options are: swift (default), s3 .
-:Type: String
-:Example: ``swift`` [``swift``]
-:Required: No
-
-``access``
-
-:Description: Set access permissions for sub-user, should be one
- of ``read, write, readwrite, full``.
-:Type: String
-:Example: ``read``
-:Required: No
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the subuser information.
-
-
-``subusers``
-
-:Description: Subusers associated with the user account.
-:Type: Container
-
-``id``
-
-:Description: Subuser id.
-:Type: String
-:Parent: ``subusers``
-
-``permissions``
-
-:Description: Subuser access to user account.
-:Type: String
-:Parent: ``subusers``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``InvalidSecretKey``
-
-:Description: Invalid secret key specified.
-:Code: 400 Bad Request
-
-``InvalidAccess``
-
-:Description: Invalid subuser access specified.
-:Code: 400 Bad Request
-
-Remove Subuser
-==============
-
-Remove an existing subuser
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/user?subuser&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID under which the subuser is to be removed.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-
-``subuser``
-
-:Description: The subuser ID to be removed.
-:Type: String
-:Example: ``sub_foo``
-:Required: Yes
-
-``purge-keys``
-
-:Description: Remove keys belonging to the subuser.
-:Type: Boolean
-:Example: True [True]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-None.
-
-Create Key
-==========
-
-Create a new key. If a ``subuser`` is specified then by default created keys
-will be swift type. If only one of ``access-key`` or ``secret-key`` is provided the
-committed key will be automatically generated, that is if only ``secret-key`` is
-specified then ``access-key`` will be automatically generated. By default, a
-generated key is added to the keyring without replacing an existing key pair.
-If ``access-key`` is specified and refers to an existing key owned by the user
-then it will be modified. The response is a container listing all keys of the same
-type as the key created. Note that when creating a swift key, specifying the option
-``access-key`` will have no effect. Additionally, only one swift key may be held by
-each user or subuser.
-
-:caps: users=write
-
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/user?key&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to receive the new key.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-``subuser``
-
-:Description: The subuser ID to receive the new key.
-:Type: String
-:Example: ``sub_foo``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be generated, options are: swift, s3 (default).
-:Type: String
-:Example: ``s3`` [``s3``]
-:Required: No
-
-``access-key``
-
-:Description: Specify the access key.
-:Type: String
-:Example: ``AB01C2D3EF45G6H7IJ8K``
-:Required: No
-
-``secret-key``
-
-:Description: Specify the secret key.
-:Type: String
-:Example: ``0ab/CdeFGhij1klmnopqRSTUv1WxyZabcDEFgHij``
-:Required: No
-
-``generate-key``
-
-:Description: Generate a new key pair and add to the existing keyring.
-:Type: Boolean
-:Example: True [``True``]
-:Required: No
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-``keys``
-
-:Description: Keys of type created associated with this user account.
-:Type: Container
-
-``user``
-
-:Description: The user account associated with the key.
-:Type: String
-:Parent: ``keys``
-
-``access-key``
-
-:Description: The access key.
-:Type: String
-:Parent: ``keys``
-
-``secret-key``
-
-:Description: The secret key
-:Type: String
-:Parent: ``keys``
-
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``InvalidAccessKey``
-
-:Description: Invalid access key specified.
-:Code: 400 Bad Request
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``InvalidSecretKey``
-
-:Description: Invalid secret key specified.
-:Code: 400 Bad Request
-
-``InvalidKeyType``
-
-:Description: Invalid key type specified.
-:Code: 400 Bad Request
-
-``KeyExists``
-
-:Description: Provided access key exists and belongs to another user.
-:Code: 409 Conflict
-
-Remove Key
-==========
-
-Remove an existing key.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/user?key&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``access-key``
-
-:Description: The S3 access key belonging to the S3 key pair to remove.
-:Type: String
-:Example: ``AB01C2D3EF45G6H7IJ8K``
-:Required: Yes
-
-``uid``
-
-:Description: The user to remove the key from.
-:Type: String
-:Example: ``foo_user``
-:Required: No
-
-``subuser``
-
-:Description: The subuser to remove the key from.
-:Type: String
-:Example: ``sub_foo``
-:Required: No
-
-``key-type``
-
-:Description: Key type to be removed, options are: swift, s3.
- NOTE: Required to remove swift key.
-:Type: String
-:Example: ``swift``
-:Required: No
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-None.
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Get Bucket Info
-===============
-
-Get information about a subset of the existing buckets. If ``uid`` is specified
-without ``bucket`` then all buckets beloning to the user will be returned. If
-``bucket`` alone is specified, information for that particular bucket will be
-retrieved.
-
-:caps: buckets=read
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/bucket?format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket to return info on.
-:Type: String
-:Example: ``foo_bucket``
-:Required: No
-
-``uid``
-
-:Description: The user to retrieve bucket information for.
-:Type: String
-:Example: ``foo_user``
-:Required: No
-
-``stats``
-
-:Description: Return bucket statistics.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful the request returns a buckets container containing
-the desired bucket information.
-
-``stats``
-
-:Description: Per bucket information.
-:Type: Container
-
-``buckets``
-
-:Description: Contains a list of one or more bucket containers.
-:Type: Container
-
-``bucket``
-
-:Description: Container for single bucket information.
-:Type: Container
-:Parent: ``buckets``
-
-``name``
-
-:Description: The name of the bucket.
-:Type: String
-:Parent: ``bucket``
-
-``pool``
-
-:Description: The pool the bucket is stored in.
-:Type: String
-:Parent: ``bucket``
-
-``id``
-
-:Description: The unique bucket id.
-:Type: String
-:Parent: ``bucket``
-
-``marker``
-
-:Description: Internal bucket tag.
-:Type: String
-:Parent: ``bucket``
-
-``owner``
-
-:Description: The user id of the bucket owner.
-:Type: String
-:Parent: ``bucket``
-
-``usage``
-
-:Description: Storage usage information.
-:Type: Container
-:Parent: ``bucket``
-
-``index``
-
-:Description: Status of bucket index.
-:Type: String
-:Parent: ``bucket``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``IndexRepairFailed``
-
-:Description: Bucket index repair failed.
-:Code: 409 Conflict
-
-Check Bucket Index
-==================
-
-Check the index of an existing bucket. NOTE: to check multipart object
-accounting with ``check-objects``, ``fix`` must be set to True.
-
-:caps: buckets=write
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/bucket?index&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket to return info on.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``check-objects``
-
-:Description: Check multipart object accounting.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-``fix``
-
-:Description: Also fix the bucket index when checking.
-:Type: Boolean
-:Example: False [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-``index``
-
-:Description: Status of bucket index.
-:Type: String
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``IndexRepairFailed``
-
-:Description: Bucket index repair failed.
-:Code: 409 Conflict
-
-Remove Bucket
-=============
-
-Delete an existing bucket.
-
-:caps: buckets=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/bucket?format=json HTTP/1.1
- Host {fqdn}
-
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket to remove.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``purge-objects``
-
-:Description: Remove a buckets objects before deletion.
-:Type: Boolean
-:Example: True [False]
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``BucketNotEmpty``
-
-:Description: Attempted to delete non-empty bucket.
-:Code: 409 Conflict
-
-``ObjectRemovalFailed``
-
-:Description: Unable to remove objects.
-:Code: 409 Conflict
-
-Unlink Bucket
-=============
-
-Unlink a bucket from a specified user. Primarily useful for changing
-bucket ownership.
-
-:caps: buckets=write
-
-Syntax
-~~~~~~
-
-::
-
- POST /{admin}/bucket?format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket to unlink.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``uid``
-
-:Description: The user ID to unlink the bucket from.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``BucketUnlinkFailed``
-
-:Description: Unable to unlink bucket from specified user.
-:Code: 409 Conflict
-
-Link Bucket
-===========
-
-Link a bucket to a specified user, unlinking the bucket from
-any previous user.
-
-:caps: buckets=write
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/bucket?format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket name to unlink.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``bucket-id``
-
-:Description: The bucket id to unlink.
-:Type: String
-:Example: ``dev.6607669.420``
-:Required: Yes
-
-``uid``
-
-:Description: The user ID to link the bucket to.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: Container for single bucket information.
-:Type: Container
-
-``name``
-
-:Description: The name of the bucket.
-:Type: String
-:Parent: ``bucket``
-
-``pool``
-
-:Description: The pool the bucket is stored in.
-:Type: String
-:Parent: ``bucket``
-
-``id``
-
-:Description: The unique bucket id.
-:Type: String
-:Parent: ``bucket``
-
-``marker``
-
-:Description: Internal bucket tag.
-:Type: String
-:Parent: ``bucket``
-
-``owner``
-
-:Description: The user id of the bucket owner.
-:Type: String
-:Parent: ``bucket``
-
-``usage``
-
-:Description: Storage usage information.
-:Type: Container
-:Parent: ``bucket``
-
-``index``
-
-:Description: Status of bucket index.
-:Type: String
-:Parent: ``bucket``
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``BucketUnlinkFailed``
-
-:Description: Unable to unlink bucket from specified user.
-:Code: 409 Conflict
-
-``BucketLinkFailed``
-
-:Description: Unable to link bucket to specified user.
-:Code: 409 Conflict
-
-Remove Object
-=============
-
-Remove an existing object. NOTE: Does not require owner to be non-suspended.
-
-:caps: buckets=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/bucket?object&format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket containing the object to be removed.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``object``
-
-:Description: The object to remove.
-:Type: String
-:Example: ``foo.txt``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-None.
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``NoSuchObject``
-
-:Description: Specified object does not exist.
-:Code: 404 Not Found
-
-``ObjectRemovalFailed``
-
-:Description: Unable to remove objects.
-:Code: 409 Conflict
-
-
-
-Get Bucket or Object Policy
-===========================
-
-Read the policy of an object or bucket.
-
-:caps: buckets=read
-
-Syntax
-~~~~~~
-
-::
-
- GET /{admin}/bucket?policy&format=json HTTP/1.1
- Host {fqdn}
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``bucket``
-
-:Description: The bucket to read the policy from.
-:Type: String
-:Example: ``foo_bucket``
-:Required: Yes
-
-``object``
-
-:Description: The object to read the policy from.
-:Type: String
-:Example: ``foo.txt``
-:Required: No
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, returns the object or bucket policy
-
-``policy``
-
-:Description: Access control policy.
-:Type: Container
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``IncompleteBody``
-
-:Description: Either bucket was not specified for a bucket policy request or bucket
- and object were not specified for an object policy request.
-:Code: 400 Bad Request
-
-Add A User Capability
-=====================
-
-Add an administrative capability to a specified user.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{admin}/user?caps&format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to add an administrative capability to.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-``user-caps``
-
-:Description: The administrative capability to add to the user.
-:Type: String
-:Example: ``usage=read,write;user=write``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the user's capabilities.
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-:Parent: ``user``
-
-``user_id``
-
-:Description: The user id.
-:Type: String
-:Parent: ``user``
-
-``caps``
-
-:Description: User capabilities.
-:Type: Container
-:Parent: ``user``
-
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``InvalidCapability``
-
-:Description: Attempt to grant invalid admin capability.
-:Code: 400 Bad Request
-
-Example Request
-~~~~~~~~~~~~~~~
-
-::
-
- PUT /{admin}/user?caps&user-caps=usage=read,write;user=write&format=json HTTP/1.1
- Host: {fqdn}
- Content-Type: text/plain
- Authorization: {your-authorization-token}
-
-
-
-Remove A User Capability
-========================
-
-Remove an administrative capability from a specified user.
-
-:caps: users=write
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{admin}/user?caps&format=json HTTP/1.1
- Host {fqdn}
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``uid``
-
-:Description: The user ID to remove an administrative capability from.
-:Type: String
-:Example: ``foo_user``
-:Required: Yes
-
-``user-caps``
-
-:Description: The administrative capabilities to remove from the user.
-:Type: String
-:Example: ``usage=read, write``
-:Required: Yes
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-If successful, the response contains the user's capabilities.
-
-``user``
-
-:Description: A container for the user data information.
-:Type: Container
-:Parent: ``user``
-
-``user_id``
-
-:Description: The user id.
-:Type: String
-:Parent: ``user``
-
-``caps``
-
-:Description: User capabilities.
-:Type: Container
-:Parent: ``user``
-
-
-Special Error Responses
-~~~~~~~~~~~~~~~~~~~~~~~
-
-``InvalidCapability``
-
-:Description: Attempt to remove an invalid admin capability.
-:Code: 400 Bad Request
-
-``NoSuchCap``
-
-:Description: User does not possess specified capability.
-:Code: 404 Not Found
-
-
-Quotas
-======
-
-The Admin Operations API enables you to set quotas on users and on bucket owned
-by users. See `Quota Management`_ for additional details. Quotas include the
-maximum number of objects in a bucket and the maximum storage size in megabytes.
-
-To view quotas, the user must have a ``users=read`` capability. To set,
-modify or disable a quota, the user must have ``users=write`` capability.
-See the `Admin Guide`_ for details.
-
-Valid parameters for quotas include:
-
-- **Bucket:** The ``bucket`` option allows you to specify a quota for
- buckets owned by a user.
-
-- **Maximum Objects:** The ``max-objects`` setting allows you to specify
- the maximum number of objects. A negative value disables this setting.
-
-- **Maximum Size:** The ``max-size`` option allows you to specify a quota
- for the maximum number of bytes. A negative value disables this setting.
-
-- **Quota Type:** The ``quota-type`` option sets the scope for the quota.
- The options are ``bucket`` and ``user``.
-
-- **Enable/Disable Quota:** The ``enabled`` option specifies whether the
- quota should be enabled. The value should be either 'True' or 'False'.
-
-Get User Quota
-~~~~~~~~~~~~~~
-
-To get a quota, the user must have ``users`` capability set with ``read``
-permission. ::
-
- GET /admin/user?quota&uid=<uid>&quota-type=user
-
-
-Set User Quota
-~~~~~~~~~~~~~~
-
-To set a quota, the user must have ``users`` capability set with ``write``
-permission. ::
-
- PUT /admin/user?quota&uid=<uid>&quota-type=user
-
-
-The content must include a JSON representation of the quota settings
-as encoded in the corresponding read operation.
-
-
-Get Bucket Quota
-~~~~~~~~~~~~~~~~
-
-To get a quota, the user must have ``users`` capability set with ``read``
-permission. ::
-
- GET /admin/user?quota&uid=<uid>&quota-type=bucket
-
-
-Set Bucket Quota
-~~~~~~~~~~~~~~~~
-
-To set a quota, the user must have ``users`` capability set with ``write``
-permission. ::
-
- PUT /admin/user?quota&uid=<uid>&quota-type=bucket
-
-The content must include a JSON representation of the quota settings
-as encoded in the corresponding read operation.
-
-
-
-
-Standard Error Responses
-========================
-
-``AccessDenied``
-
-:Description: Access denied.
-:Code: 403 Forbidden
-
-``InternalError``
-
-:Description: Internal server error.
-:Code: 500 Internal Server Error
-
-``NoSuchUser``
-
-:Description: User does not exist.
-:Code: 404 Not Found
-
-``NoSuchBucket``
-
-:Description: Bucket does not exist.
-:Code: 404 Not Found
-
-``NoSuchKey``
-
-:Description: No such access key.
-:Code: 404 Not Found
-
-
-
-.. _Admin Guide: ../admin
-.. _Quota Management: ../admin#quota-management
-.. _Multitenancy: ./multitenancy
diff --git a/src/ceph/doc/radosgw/api.rst b/src/ceph/doc/radosgw/api.rst
deleted file mode 100644
index c01a3e5..0000000
--- a/src/ceph/doc/radosgw/api.rst
+++ /dev/null
@@ -1,14 +0,0 @@
-===============
-librgw (Python)
-===============
-
-.. highlight:: python
-
-The `rgw` python module provides file-like access to rgw.
-
-API Reference
-=============
-
-.. automodule:: rgw
- :members: LibRGWFS, FileHandle
-
diff --git a/src/ceph/doc/radosgw/barbican.rst b/src/ceph/doc/radosgw/barbican.rst
deleted file mode 100644
index 3a7fe6e..0000000
--- a/src/ceph/doc/radosgw/barbican.rst
+++ /dev/null
@@ -1,120 +0,0 @@
-==============================
-OpenStack Barbican Integration
-==============================
-
-OpenStack `Barbican`_ can be used as a secure key management service for
-`Server-Side Encryption`_.
-
-.. image:: ../images/rgw-encryption-barbican.png
-
-#. `Configure Keystone`_
-#. `Create a Keystone user`_
-#. `Configure the Ceph Object Gateway`_
-#. `Create a key in Barbican`_
-
-Configure Keystone
-==================
-
-Barbican depends on Keystone for authorization and access control of its keys.
-
-See `OpenStack Keystone Integration`_.
-
-Create a Keystone user
-======================
-
-Create a new user that will be used by the Ceph Object Gateway to retrieve
-keys.
-
-For example::
-
- user = rgwcrypt-user
- pass = rgwcrypt-password
- tenant = rgwcrypt
-
-See OpenStack documentation for `Manage projects, users, and roles`_.
-
-Create a key in Barbican
-========================
-
-See Barbican documentation for `How to Create a Secret`_. Requests to
-Barbican must include a valid Keystone token in the ``X-Auth-Token`` header.
-
-Example request::
-
- POST /v1/secrets HTTP/1.1
- Host: barbican.example.com:9311
- Accept: */*
- Content-Type: application/json
- X-Auth-Token: 7f7d588dd29b44df983bc961a6b73a10
- Content-Length: 299
-
- {
- "name": "my-key",
- "expiration": "2016-12-28T19:14:44.180394",
- "algorithm": "aes",
- "bit_length": 256,
- "mode": "cbc",
- "payload": "6b+WOZ1T3cqZMxgThRcXAQBrS5mXKdDUphvpxptl9/4=",
- "payload_content_type": "application/octet-stream",
- "payload_content_encoding": "base64"
- }
-
-Response::
-
- {"secret_ref": "http://barbican.example.com:9311/v1/secrets/d1e7ef3b-f841-4b7c-90b2-b7d90ca2d723"}
-
-In the response, ``d1e7ef3b-f841-4b7c-90b2-b7d90ca2d723`` is the key id that
-can be used in any `SSE-KMS`_ request.
-
-This newly created key is not accessible by user ``rgwcrypt-user``. This
-privilege must be added with an ACL. See `How to Set/Replace ACL`_ for more
-details.
-
-Example request (assuming that the Keystone id of ``rgwcrypt-user`` is
-``906aa90bd8a946c89cdff80d0869460f``)::
-
- PUT /v1/secrets/d1e7ef3b-f841-4b7c-90b2-b7d90ca2d723/acl HTTP/1.1
- Host: barbican.example.com:9311
- Accept: */*
- Content-Type: application/json
- X-Auth-Token: 7f7d588dd29b44df983bc961a6b73a10
- Content-Length: 101
-
- {
- "read":{
- "users":[ "906aa90bd8a946c89cdff80d0869460f" ],
- "project-access": true
- }
- }
-
-Response::
-
- {"acl_ref": "http://barbican.example.com:9311/v1/secrets/d1e7ef3b-f841-4b7c-90b2-b7d90ca2d723/acl"}
-
-Configure the Ceph Object Gateway
-=================================
-
-Edit the Ceph configuration file to add information about the Barbican server
-and Keystone user::
-
- rgw barbican url = http://barbican.example.com:9311
- rgw keystone barbican user = rgwcrypt-user
- rgw keystone barbican password = rgwcrypt-password
-
-When using Keystone API version 2::
-
- rgw keystone barbican tenant = rgwcrypt
-
-When using API version 3::
-
- rgw keystone barbican project
- rgw keystone barbican domain
-
-
-.. _Barbican: https://wiki.openstack.org/wiki/Barbican
-.. _Server-Side Encryption: ../encryption
-.. _OpenStack Keystone Integration: ../keystone
-.. _Manage projects, users, and roles: https://docs.openstack.org/admin-guide/cli-manage-projects-users-and-roles.html#create-a-user
-.. _How to Create a Secret: https://developer.openstack.org/api-guide/key-manager/secrets.html#how-to-create-a-secret
-.. _SSE-KMS: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
-.. _How to Set/Replace ACL: https://developer.openstack.org/api-guide/key-manager/acls.html#how-to-set-replace-acl
diff --git a/src/ceph/doc/radosgw/bucketpolicy.rst b/src/ceph/doc/radosgw/bucketpolicy.rst
deleted file mode 100644
index 85e7055..0000000
--- a/src/ceph/doc/radosgw/bucketpolicy.rst
+++ /dev/null
@@ -1,133 +0,0 @@
-===============
-Bucket Policies
-===============
-
-.. versionadded:: Luminous
-
-The Ceph Object Gateway supports a subset of the Amazon S3 policy
-language applied to buckets.
-
-
-Creation and Removal
-====================
-
-Bucket policies are managed through standard S3 operations rather than
-radosgw-admin.
-
-For example, one may use s3cmd to set or delete a policy thus::
-
- $ cat > examplepol
- {
- "Version": "2012-10-17",
- "Statement": [{
- "Effect": "Allow",
- "Principal": {"AWS": ["arn:aws:iam::usfolks:user/fred"]},
- "Action": "s3PutObjectAcl",
- "Resource": [
- "arn:aws:s3:::happybucket/*"
- ]
- }]
- }
-
- $ s3cmd setpolicy examplepol s3://happybucket
- $ s3cmd delpolicy s3://happybucket
-
-
-Limitations
-===========
-
-Currently, we support only the following actions:
-
-- s3:AbortMultipartUpload
-- s3:CreateBucket
-- s3:DeleteBucketPolicy
-- s3:DeleteBucket
-- s3:DeleteBucketWebsite
-- s3:DeleteObject
-- s3:DeleteObjectVersion
-- s3:DeleteReplicationConfiguration
-- s3:GetAccelerateConfiguration
-- s3:GetBucketAcl
-- s3:GetBucketCORS
-- s3:GetBucketLocation
-- s3:GetBucketLogging
-- s3:GetBucketNotification
-- s3:GetBucketPolicy
-- s3:GetBucketRequestPayment
-- s3:GetBucketTagging
-- s3:GetBucketVersioning
-- s3:GetBucketWebsite
-- s3:GetLifecycleConfiguration
-- s3:GetObjectAcl
-- s3:GetObject
-- s3:GetObjectTorrent
-- s3:GetObjectVersionAcl
-- s3:GetObjectVersion
-- s3:GetObjectVersionTorrent
-- s3:GetReplicationConfiguration
-- s3:ListAllMyBuckets
-- s3:ListBucketMultiPartUploads
-- s3:ListBucket
-- s3:ListBucketVersions
-- s3:ListMultipartUploadParts
-- s3:PutAccelerateConfiguration
-- s3:PutBucketAcl
-- s3:PutBucketCORS
-- s3:PutBucketLogging
-- s3:PutBucketNotification
-- s3:PutBucketPolicy
-- s3:PutBucketRequestPayment
-- s3:PutBucketTagging
-- s3:PutBucketVersioning
-- s3:PutBucketWebsite
-- s3:PutLifecycleConfiguration
-- s3:PutObjectAcl
-- s3:PutObject
-- s3:PutObjectVersionAcl
-- s3:PutReplicationConfiguration
-- s3:RestoreObject
-
-We do not yet support setting policies on users, groups, or roles.
-
-We use the RGW ‘tenant’ identifier in place of the Amazon twelve-digit
-account ID. In the future we may allow you to assign an account ID to
-a tenant, but for now if you want to use policies between AWS S3 and
-RGW S3 you will have to use the Amazon account ID as the tenant ID when
-creating users.
-
-Under AWS, all tenants share a single namespace. RGW gives every
-tenant its own namespace of buckets. There may be an option to enable
-an AWS-like 'flat' bucket namespace in future versions. At present, to
-access a bucket belonging to another tenant, address it as
-"tenant:bucket" in the S3 request.
-
-In AWS, a bucket policy can grant access to another account, and that
-account owner can then grant access to individual users with user
-permissions. Since we do not yet support user, role, and group
-permissions, account owners will currently need to grant access
-directly to individual users, and granting an entire account access to
-a bucket grants access to all users in that account.
-
-Bucket policies do not yet support string interpolation.
-
-Currently, the only condition keys we support are:
-- aws:CurrentTime
-- aws:EpochTime
-- aws:PrincipalType
-- aws:Referer
-- aws:SecureTransport
-- aws:SourceIp
-- aws:UserAgent
-- aws:username
-
-More may be supported soon as we integrate with the recently rewritten
-Authentication/Authorization subsystem.
-
-Swift
-=====
-
-There is no way to set bucket policies under Swift, but bucket
-policies that have been set govern Swift as well as S3 operations.
-
-Swift credentials are matched against Principals specified in a policy
-in a way specific to whatever backend is being used.
diff --git a/src/ceph/doc/radosgw/compression.rst b/src/ceph/doc/radosgw/compression.rst
deleted file mode 100644
index 41e535e..0000000
--- a/src/ceph/doc/radosgw/compression.rst
+++ /dev/null
@@ -1,79 +0,0 @@
-===========
-Compression
-===========
-
-.. versionadded:: Kraken
-
-The Ceph Object Gateway supports server-side compression of uploaded objects,
-using any of Ceph's existing compression plugins.
-
-
-Configuration
-=============
-
-Compression can be enabled on a Zone's placement target by providing the
-``--compression=<type>`` option to the ``radosgw-admin zone placement modify``
-command.
-
-The compression ``type`` refers to the name of the compression plugin to use
-when writing new object data. Each compressed object remembers which plugin
-was used, so changing this setting does not hinder the ability to decompress
-existing objects, not does it force existing objects to be recompressed.
-
-This compression setting applies to all new objects uploaded to buckets using
-this placement target. Compression can be disabled by setting the ``type`` to
-an empty string or ``none``.
-
-For example::
-
- $ radosgw-admin zone placement modify --rgw-zone=default --placement-id=default-placement --compression=zlib
- {
- ...
- "placement_pools": [
- {
- "key": "default-placement",
- "val": {
- "index_pool": "default.rgw.buckets.index",
- "data_pool": "default.rgw.buckets.data",
- "data_extra_pool": "default.rgw.buckets.non-ec",
- "index_type": 0,
- "compression": "zlib"
- }
- }
- ],
- ...
- }
-
-.. note:: A ``default`` zone is created for you if you have not done any
- previous `Multisite Configuration`_.
-
-
-Statistics
-==========
-
-While all existing commands and APIs continue to report object and bucket
-sizes based their uncompressed data, compression statistics for a given bucket
-are included in its ``bucket stats``::
-
- $ radosgw-admin bucket stats --bucket=<name>
- {
- ...
- "usage": {
- "rgw.main": {
- "size": 1075028,
- "size_actual": 1331200,
- "size_utilized": 592035,
- "size_kb": 1050,
- "size_kb_actual": 1300,
- "size_kb_utilized": 579,
- "num_objects": 104
- }
- },
- ...
- }
-
-The ``size_utilized`` and ``size_kb_utilized`` fields represent the total
-size of compressed data, in bytes and kilobytes respectively.
-
-
-.. _`Multisite Configuration`: ../multisite
diff --git a/src/ceph/doc/radosgw/config-ref.rst b/src/ceph/doc/radosgw/config-ref.rst
deleted file mode 100644
index ac96193..0000000
--- a/src/ceph/doc/radosgw/config-ref.rst
+++ /dev/null
@@ -1,850 +0,0 @@
-======================================
- Ceph Object Gateway Config Reference
-======================================
-
-The following settings may added to the Ceph configuration file (i.e., usually
-``ceph.conf``) under the ``[client.radosgw.{instance-name}]`` section. The
-settings may contain default values. If you do not specify each setting in the
-Ceph configuration file, the default value will be set automatically.
-
-Configuration variables set under the ``[client.radosgw.{instance-name}]``
-section will not apply to rgw or radosgw-admin commands without an instance-name
-specified in the command. Thus variables meant to be applied to all RGW
-instances or all radosgw-admin commands can be put into the ``[global]`` or the
-``[client]`` section to avoid specifying instance-name.
-
-``rgw data``
-
-:Description: Sets the location of the data files for Ceph Object Gateway.
-:Type: String
-:Default: ``/var/lib/ceph/radosgw/$cluster-$id``
-
-
-``rgw enable apis``
-
-:Description: Enables the specified APIs.
-:Type: String
-:Default: ``s3, swift, swift_auth, admin`` All APIs.
-
-
-``rgw cache enabled``
-
-:Description: Whether the Ceph Object Gateway cache is enabled.
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw cache lru size``
-
-:Description: The number of entries in the Ceph Object Gateway cache.
-:Type: Integer
-:Default: ``10000``
-
-
-``rgw socket path``
-
-:Description: The socket path for the domain socket. ``FastCgiExternalServer``
- uses this socket. If you do not specify a socket path, Ceph
- Object Gateway will not run as an external server. The path you
- specify here must be the same as the path specified in the
- ``rgw.conf`` file.
-
-:Type: String
-:Default: N/A
-
-``rgw fcgi socket backlog``
-
-:Description: The socket backlog for fcgi.
-:Type: Integer
-:Default: ``1024``
-
-``rgw host``
-
-:Description: The host for the Ceph Object Gateway instance. Can be an IP
- address or a hostname.
-
-:Type: String
-:Default: ``0.0.0.0``
-
-
-``rgw port``
-
-:Description: Port the instance listens for requests. If not specified,
- Ceph Object Gateway runs external FastCGI.
-
-:Type: String
-:Default: None
-
-
-``rgw dns name``
-
-:Description: The DNS name of the served domain. See also the ``hostnames`` setting within regions.
-:Type: String
-:Default: None
-
-
-``rgw script uri``
-
-:Description: The alternative value for the ``SCRIPT_URI`` if not set
- in the request.
-
-:Type: String
-:Default: None
-
-
-``rgw request uri``
-
-:Description: The alternative value for the ``REQUEST_URI`` if not set
- in the request.
-
-:Type: String
-:Default: None
-
-
-``rgw print continue``
-
-:Description: Enable ``100-continue`` if it is operational.
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw remote addr param``
-
-:Description: The remote address parameter. For example, the HTTP field
- containing the remote address, or the ``X-Forwarded-For``
- address if a reverse proxy is operational.
-
-:Type: String
-:Default: ``REMOTE_ADDR``
-
-
-``rgw op thread timeout``
-
-:Description: The timeout in seconds for open threads.
-:Type: Integer
-:Default: 600
-
-
-``rgw op thread suicide timeout``
-
-:Description: The time ``timeout`` in seconds before a Ceph Object Gateway
- process dies. Disabled if set to ``0``.
-
-:Type: Integer
-:Default: ``0``
-
-
-``rgw thread pool size``
-
-:Description: The size of the thread pool.
-:Type: Integer
-:Default: 100 threads.
-
-
-``rgw num rados handles``
-
-:Description: The number of `RADOS cluster handles`_ for Ceph Object Gateway.
- Having a configurable number of RADOS handles is resulting in
- significant performance boost for all types of workloads. Each RGW
- worker thread would now get to pick a RADOS handle for its lifetime,
- from the available bunch.
-
-:Type: Integer
-:Default: ``1``
-
-
-``rgw num control oids``
-
-:Description: The number of notification objects used for cache synchronization
- between different ``rgw`` instances.
-
-:Type: Integer
-:Default: ``8``
-
-
-``rgw init timeout``
-
-:Description: The number of seconds before Ceph Object Gateway gives up on
- initialization.
-
-:Type: Integer
-:Default: ``30``
-
-
-``rgw mime types file``
-
-:Description: The path and location of the MIME types. Used for Swift
- auto-detection of object types.
-
-:Type: String
-:Default: ``/etc/mime.types``
-
-
-``rgw gc max objs``
-
-:Description: The maximum number of objects that may be handled by
- garbage collection in one garbage collection processing cycle.
-
-:Type: Integer
-:Default: ``32``
-
-
-``rgw gc obj min wait``
-
-:Description: The minimum wait time before the object may be removed
- and handled by garbage collection processing.
-
-:Type: Integer
-:Default: ``2 * 3600``
-
-
-``rgw gc processor max time``
-
-:Description: The maximum time between the beginning of two consecutive garbage
- collection processing cycles.
-
-:Type: Integer
-:Default: ``3600``
-
-
-``rgw gc processor period``
-
-:Description: The cycle time for garbage collection processing.
-:Type: Integer
-:Default: ``3600``
-
-
-``rgw s3 success create obj status``
-
-:Description: The alternate success status response for ``create-obj``.
-:Type: Integer
-:Default: ``0``
-
-
-``rgw resolve cname``
-
-:Description: Whether ``rgw`` should use DNS CNAME record of the request
- hostname field (if hostname is not equal to ``rgw dns name``).
-
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw obj stripe size``
-
-:Description: The size of an object stripe for Ceph Object Gateway objects.
- See `Architecture`_ for details on striping.
-
-:Type: Integer
-:Default: ``4 << 20``
-
-
-``rgw extended http attrs``
-
-:Description: Add new set of attributes that could be set on an entity
- (user, bucket or object). These extra attributes can be set
- through HTTP header fields when putting the entity or modifying
- it using POST method. If set, these attributes will return as
- HTTP fields when doing GET/HEAD on the entity.
-
-:Type: String
-:Default: None
-:Example: "content_foo, content_bar, x-foo-bar"
-
-
-``rgw exit timeout secs``
-
-:Description: Number of seconds to wait for a process before exiting
- unconditionally.
-
-:Type: Integer
-:Default: ``120``
-
-
-``rgw get obj window size``
-
-:Description: The window size in bytes for a single object request.
-:Type: Integer
-:Default: ``16 << 20``
-
-
-``rgw get obj max req size``
-
-:Description: The maximum request size of a single get operation sent to the
- Ceph Storage Cluster.
-
-:Type: Integer
-:Default: ``4 << 20``
-
-
-``rgw relaxed s3 bucket names``
-
-:Description: Enables relaxed S3 bucket names rules for US region buckets.
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw list buckets max chunk``
-
-:Description: The maximum number of buckets to retrieve in a single operation
- when listing user buckets.
-
-:Type: Integer
-:Default: ``1000``
-
-
-``rgw override bucket index max shards``
-
-:Description: Represents the number of shards for the bucket index object,
- a value of zero indicates there is no sharding. It is not
- recommended to set a value too large (e.g. thousand) as it
- increases the cost for bucket listing.
- This variable should be set in the client or global sections
- so that it is automatically applied to radosgw-admin commands.
-
-:Type: Integer
-:Default: ``0``
-
-
-``rgw curl wait timeout ms``
-
-:Description: The timeout in milliseconds for certain ``curl`` calls.
-:Type: Integer
-:Default: ``1000``
-
-
-``rgw copy obj progress``
-
-:Description: Enables output of object progress during long copy operations.
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw copy obj progress every bytes``
-
-:Description: The minimum bytes between copy progress output.
-:Type: Integer
-:Default: ``1024 * 1024``
-
-
-``rgw admin entry``
-
-:Description: The entry point for an admin request URL.
-:Type: String
-:Default: ``admin``
-
-
-``rgw content length compat``
-
-:Description: Enable compatability handling of FCGI requests with both CONTENT_LENGTH AND HTTP_CONTENT_LENGTH set.
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw bucket quota ttl``
-
-:Description: The amount of time in seconds cached quota information is
- trusted. After this timeout, the quota information will be
- re-fetched from the cluster.
-:Type: Integer
-:Default: ``600``
-
-
-``rgw user quota bucket sync interval``
-
-:Description: The amount of time in seconds bucket quota information is
- accumulated before syncing to the cluster. During this time,
- other RGW instances will not see the changes in bucket quota
- stats from operations on this instance.
-:Type: Integer
-:Default: ``180``
-
-
-``rgw user quota sync interval``
-
-:Description: The amount of time in seconds user quota information is
- accumulated before syncing to the cluster. During this time,
- other RGW instances will not see the changes in user quota stats
- from operations on this instance.
-:Type: Integer
-:Default: ``180``
-
-
-``rgw bucket default quota max objects``
-
-:Description: Default max number of objects per bucket. Set on new users,
- if no other quota is specified. Has no effect on existing users.
- This variable should be set in the client or global sections
- so that it is automatically applied to radosgw-admin commands.
-:Type: Integer
-:Default: ``-1``
-
-
-``rgw bucket default quota max size``
-
-:Description: Default max capacity per bucket, in bytes. Set on new users,
- if no other quota is specified. Has no effect on existing users.
-:Type: Integer
-:Default: ``-1``
-
-
-``rgw user default quota max objects``
-
-:Description: Default max number of objects for a user. This includes all
- objects in all buckets owned by the user. Set on new users,
- if no other quota is specified. Has no effect on existing users.
-:Type: Integer
-:Default: ``-1``
-
-
-``rgw user default quota max size``
-
-:Description: The value for user max size quota in bytes set on new users,
- if no other quota is specified. Has no effect on existing users.
-:Type: Integer
-:Default: ``-1``
-
-
-``rgw verify ssl``
-
-:Description: Verify SSL certificates while making requests.
-:Type: Boolean
-:Default: ``true``
-
-
-Multisite Settings
-==================
-
-.. versionadded:: Jewel
-
-You may include the following settings in your Ceph configuration
-file under each ``[client.radosgw.{instance-name}]`` instance.
-
-
-``rgw zone``
-
-:Description: The name of the zone for the gateway instance. If no zone is
- set, a cluster-wide default can be configured with the command
- ``radosgw-admin zone default``.
-:Type: String
-:Default: None
-
-
-``rgw zonegroup``
-
-:Description: The name of the zonegroup for the gateway instance. If no
- zonegroup is set, a cluster-wide default can be configured with
- the command ``radosgw-admin zonegroup default``.
-:Type: String
-:Default: None
-
-
-``rgw realm``
-
-:Description: The name of the realm for the gateway instance. If no realm is
- set, a cluster-wide default can be configured with the command
- ``radosgw-admin realm default``.
-:Type: String
-:Default: None
-
-
-``rgw run sync thread``
-
-:Description: If there are other zones in the realm to sync from, spawn threads
- to handle the sync of data and metadata.
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw data log window``
-
-:Description: The data log entries window in seconds.
-:Type: Integer
-:Default: ``30``
-
-
-``rgw data log changes size``
-
-:Description: The number of in-memory entries to hold for the data changes log.
-:Type: Integer
-:Default: ``1000``
-
-
-``rgw data log obj prefix``
-
-:Description: The object name prefix for the data log.
-:Type: String
-:Default: ``data_log``
-
-
-``rgw data log num shards``
-
-:Description: The number of shards (objects) on which to keep the
- data changes log.
-
-:Type: Integer
-:Default: ``128``
-
-
-``rgw md log max shards``
-
-:Description: The maximum number of shards for the metadata log.
-:Type: Integer
-:Default: ``64``
-
-.. important:: The values of ``rgw data log num shards`` and
- ``rgw md log max shards`` should not be changed after sync has
- started.
-
-
-Swift Settings
-==============
-
-``rgw enforce swift acls``
-
-:Description: Enforces the Swift Access Control List (ACL) settings.
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw swift token expiration``
-
-:Description: The time in seconds for expiring a Swift token.
-:Type: Integer
-:Default: ``24 * 3600``
-
-
-``rgw swift url``
-
-:Description: The URL for the Ceph Object Gateway Swift API.
-:Type: String
-:Default: None
-
-
-``rgw swift url prefix``
-
-:Description: The URL prefix for the Swift StorageURL that goes in front of
- the "/v1" part. This allows to run several Gateway instances
- on the same host. For compatibility, setting this configuration
- variable to empty causes the default "/swift" to be used.
- Use explicit prefix "/" to start StorageURL at the root.
- WARNING: setting this option to "/" will NOT work if S3 API is
- enabled. From the other side disabling S3 will make impossible
- to deploy RadosGW in the multi-site configuration!
-:Default: ``swift``
-:Example: "/swift-testing"
-
-
-``rgw swift auth url``
-
-:Description: Default URL for verifying v1 auth tokens (if not using internal
- Swift auth).
-
-:Type: String
-:Default: None
-
-
-``rgw swift auth entry``
-
-:Description: The entry point for a Swift auth URL.
-:Type: String
-:Default: ``auth``
-
-
-``rgw swift versioning enabled``
-
-:Description: Enables the Object Versioning of OpenStack Object Storage API.
- This allows clients to put the ``X-Versions-Location`` attribute
- on containers that should be versioned. The attribute specifies
- the name of container storing archived versions. It must be owned
- by the same user that the versioned container due to access
- control verification - ACLs are NOT taken into consideration.
- Those containers cannot be versioned by the S3 object versioning
- mechanism.
-:Type: Boolean
-:Default: ``false``
-
-
-
-Logging Settings
-================
-
-
-``rgw log nonexistent bucket``
-
-:Description: Enables Ceph Object Gateway to log a request for a non-existent
- bucket.
-
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw log object name``
-
-:Description: The logging format for an object name. See manpage
- :manpage:`date` for details about format specifiers.
-
-:Type: Date
-:Default: ``%Y-%m-%d-%H-%i-%n``
-
-
-``rgw log object name utc``
-
-:Description: Whether a logged object name includes a UTC time.
- If ``false``, it uses the local time.
-
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw usage max shards``
-
-:Description: The maximum number of shards for usage logging.
-:Type: Integer
-:Default: ``32``
-
-
-``rgw usage max user shards``
-
-:Description: The maximum number of shards used for a single user's
- usage logging.
-
-:Type: Integer
-:Default: ``1``
-
-
-``rgw enable ops log``
-
-:Description: Enable logging for each successful Ceph Object Gateway operation.
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw enable usage log``
-
-:Description: Enable the usage log.
-:Type: Boolean
-:Default: ``false``
-
-
-``rgw ops log rados``
-
-:Description: Whether the operations log should be written to the
- Ceph Storage Cluster backend.
-
-:Type: Boolean
-:Default: ``true``
-
-
-``rgw ops log socket path``
-
-:Description: The Unix domain socket for writing operations logs.
-:Type: String
-:Default: None
-
-
-``rgw ops log data backlog``
-
-:Description: The maximum data backlog data size for operations logs written
- to a Unix domain socket.
-
-:Type: Integer
-:Default: ``5 << 20``
-
-
-``rgw usage log flush threshold``
-
-:Description: The number of dirty merged entries in the usage log before
- flushing synchronously.
-
-:Type: Integer
-:Default: 1024
-
-
-``rgw usage log tick interval``
-
-:Description: Flush pending usage log data every ``n`` seconds.
-:Type: Integer
-:Default: ``30``
-
-
-``rgw log http headers``
-
-:Description: Comma-delimited list of HTTP headers to include with ops
- log entries. Header names are case insensitive, and use
- the full header name with words separated by underscores.
-
-:Type: String
-:Default: None
-:Example: "http_x_forwarded_for, http_x_special_k"
-
-
-``rgw intent log object name``
-
-:Description: The logging format for the intent log object name. See manpage
- :manpage:`date` for details about format specifiers.
-
-:Type: Date
-:Default: ``%Y-%m-%d-%i-%n``
-
-
-``rgw intent log object name utc``
-
-:Description: Whether the intent log object name includes a UTC time.
- If ``false``, it uses the local time.
-
-:Type: Boolean
-:Default: ``false``
-
-
-
-Keystone Settings
-=================
-
-
-``rgw keystone url``
-
-:Description: The URL for the Keystone server.
-:Type: String
-:Default: None
-
-
-``rgw keystone api version``
-
-:Description: The version (2 or 3) of OpenStack Identity API that should be
- used for communication with the Keystone server.
-:Type: Integer
-:Default: ``2``
-
-
-``rgw keystone admin domain``
-
-:Description: The name of OpenStack domain with admin privilege when using
- OpenStack Identity API v3.
-:Type: String
-:Default: None
-
-
-``rgw keystone admin project``
-
-:Description: The name of OpenStack project with admin privilege when using
- OpenStack Identity API v3. If left unspecified, value of
- ``rgw keystone admin tenant`` will be used instead.
-:Type: String
-:Default: None
-
-
-``rgw keystone admin token``
-
-:Description: The Keystone admin token (shared secret). In Ceph RadosGW
- authentication with the admin token has priority over
- authentication with the admin credentials
- (``rgw keystone admin user``, ``rgw keystone admin password``,
- ``rgw keystone admin tenant``, ``rgw keystone admin project``,
- ``rgw keystone admin domain``). Admin token feature is considered
- as deprecated.
-:Type: String
-:Default: None
-
-
-``rgw keystone admin tenant``
-
-:Description: The name of OpenStack tenant with admin privilege (Service Tenant) when
- using OpenStack Identity API v2
-:Type: String
-:Default: None
-
-
-``rgw keystone admin user``
-
-:Description: The name of OpenStack user with admin privilege for Keystone
- authentication (Service User) when OpenStack Identity API v2
-:Type: String
-:Default: None
-
-
-``rgw keystone admin password``
-
-:Description: The password for OpenStack admin user when using OpenStack
- Identity API v2
-:Type: String
-:Default: None
-
-
-``rgw keystone accepted roles``
-
-:Description: The roles requires to serve requests.
-:Type: String
-:Default: ``Member, admin``
-
-
-``rgw keystone token cache size``
-
-:Description: The maximum number of entries in each Keystone token cache.
-:Type: Integer
-:Default: ``10000``
-
-
-``rgw keystone revocation interval``
-
-:Description: The number of seconds between token revocation checks.
-:Type: Integer
-:Default: ``15 * 60``
-
-
-``rgw keystone verify ssl``
-
-:Description: Verify SSL certificates while making token requests to keystone.
-:Type: Boolean
-:Default: ``true``
-
-Barbican Settings
-=================
-
-``rgw barbican url``
-
-:Description: The URL for the Barbican server.
-:Type: String
-:Default: None
-
-``rgw keystone barbican user``
-
-:Description: The name of the OpenStack user with access to the `Barbican`_
- secrets used for `Encryption`_.
-:Type: String
-:Default: None
-
-``rgw keystone barbican password``
-
-:Description: The password associated with the `Barbican`_ user.
-:Type: String
-:Default: None
-
-``rgw keystone barbican tenant``
-
-:Description: The name of the OpenStack tenant associated with the `Barbican`_
- user when using OpenStack Identity API v2.
-:Type: String
-:Default: None
-
-``rgw keystone barbican project``
-
-:Description: The name of the OpenStack project associated with the `Barbican`_
- user when using OpenStack Identity API v3.
-:Type: String
-:Default: None
-
-``rgw keystone barbican domain``
-
-:Description: The name of the OpenStack domain associated with the `Barbican`_
- user when using OpenStack Identity API v3.
-:Type: String
-:Default: None
-
-
-.. _Architecture: ../../architecture#data-striping
-.. _Pool Configuration: ../../rados/configuration/pool-pg-config-ref/
-.. _Cluster Pools: ../../rados/operations/pools
-.. _Rados cluster handles: ../../rados/api/librados-intro/#step-2-configuring-a-cluster-handle
-.. _Barbican: ../barbican
-.. _Encryption: ../encryption
diff --git a/src/ceph/doc/radosgw/encryption.rst b/src/ceph/doc/radosgw/encryption.rst
deleted file mode 100644
index a7bb7e2..0000000
--- a/src/ceph/doc/radosgw/encryption.rst
+++ /dev/null
@@ -1,56 +0,0 @@
-==========
-Encryption
-==========
-
-.. versionadded:: Luminous
-
-The Ceph Object Gateway supports server-side encryption of uploaded objects,
-with 3 options for the management of encryption keys. Server-side encryption
-means that the data is sent over HTTP in its unencrypted form, and the Ceph
-Object Gateway stores that data in the Ceph Storage Cluster in encrypted form.
-
-Customer-Provided Keys
-======================
-
-In this mode, the client passes an encryption key along with each request to
-read or write encrypted data. It is the client's responsibility to manage those
-keys and remember which key was used to encrypt each object.
-
-This is implemented in S3 according to the `Amazon SSE-C`_ specification.
-
-As all key management is handled by the client, no special configuration is
-needed to support this encryption mode.
-
-Key Management Service
-======================
-
-This mode allows keys to be stored in a secure key management service and
-retrieved on demand by the Ceph Object Gateway to serve requests to encrypt
-or decrypt data.
-
-This is implemented in S3 according to the `Amazon SSE-KMS`_ specification.
-
-In principle, any key management service could be used here, but currently
-only integration with `Barbican`_ is implemented.
-
-See `OpenStack Barbican Integration`_.
-
-Automatic Encryption (for testing only)
-=======================================
-
-A ``rgw crypt default encryption key`` can be set in ceph.conf to force the
-encryption of all objects that do not otherwise specify an encryption mode.
-
-The configuration expects a base64-encoded 256 bit key. For example::
-
- rgw crypt default encryption key = 4YSmvJtBv0aZ7geVgAsdpRnLBEwWSWlMIGnRS8a9TSA=
-
-.. important:: This mode is for diagnostic purposes only! The ceph configuration
- file is not a secure method for storing encryption keys. Keys that are
- accidentally exposed in this way should be considered compromised.
-
-
-.. _Amazon SSE-C: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
-.. _Amazon SSE-KMS: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
-.. _Barbican: https://wiki.openstack.org/wiki/Barbican
-.. _OpenStack Barbican Integration: ../barbican
diff --git a/src/ceph/doc/radosgw/index.rst b/src/ceph/doc/radosgw/index.rst
deleted file mode 100644
index 657a6f9..0000000
--- a/src/ceph/doc/radosgw/index.rst
+++ /dev/null
@@ -1,59 +0,0 @@
-=====================
- Ceph Object Gateway
-=====================
-
-:term:`Ceph Object Gateway` is an object storage interface built on top of
-``librados`` to provide applications with a RESTful gateway to
-Ceph Storage Clusters. :term:`Ceph Object Storage` supports two interfaces:
-
-#. **S3-compatible:** Provides object storage functionality with an interface
- that is compatible with a large subset of the Amazon S3 RESTful API.
-
-#. **Swift-compatible:** Provides object storage functionality with an interface
- that is compatible with a large subset of the OpenStack Swift API.
-
-Ceph Object Storage uses the Ceph Object Gateway daemon (``radosgw``), which is
-an HTTP server for interacting with a Ceph Storage Cluster. Since it
-provides interfaces compatible with OpenStack Swift and Amazon S3, the Ceph
-Object Gateway has its own user management. Ceph Object Gateway can store data
-in the same Ceph Storage Cluster used to store data from Ceph Filesystem clients
-or Ceph Block Device clients. The S3 and Swift APIs share a common namespace, so
-you may write data with one API and retrieve it with the other.
-
-.. ditaa:: +------------------------+ +------------------------+
- | S3 compatible API | | Swift compatible API |
- +------------------------+-+------------------------+
- | radosgw |
- +---------------------------------------------------+
- | librados |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-.. note:: Ceph Object Storage does **NOT** use the Ceph Metadata Server.
-
-
-.. toctree::
- :maxdepth: 1
-
- Manual Install w/Civetweb <../../install/install-ceph-gateway>
- Multisite Configuration <multisite>
- Configuring Pools <pools>
- Config Reference <config-ref>
- Admin Guide <admin>
- S3 API <s3>
- Swift API <swift>
- Admin Ops API <adminops>
- Python binding <api>
- Export over NFS <nfs>
- OpenStack Keystone Integration <keystone>
- OpenStack Barbican Integration <barbican>
- Multi-tenancy <multitenancy>
- Compression <compression>
- LDAP Authentication <ldap-auth>
- Server-Side Encryption <encryption>
- Bucket Policy <bucketpolicy>
- Data Layout in RADOS <layout>
- troubleshooting
- Manpage radosgw <../../man/8/radosgw>
- Manpage radosgw-admin <../../man/8/radosgw-admin>
diff --git a/src/ceph/doc/radosgw/keystone.rst b/src/ceph/doc/radosgw/keystone.rst
deleted file mode 100644
index 398276c..0000000
--- a/src/ceph/doc/radosgw/keystone.rst
+++ /dev/null
@@ -1,145 +0,0 @@
-=====================================
- Integrating with OpenStack Keystone
-=====================================
-
-It is possible to integrate the Ceph Object Gateway with Keystone, the OpenStack
-identity service. This sets up the gateway to accept Keystone as the users
-authority. A user that Keystone authorizes to access the gateway will also be
-automatically created on the Ceph Object Gateway (if didn't exist beforehand). A
-token that Keystone validates will be considered as valid by the gateway.
-
-The following configuration options are available for Keystone integration::
-
- [client.radosgw.gateway]
- rgw keystone api version = {keystone api version}
- rgw keystone url = {keystone server url:keystone server admin port}
- rgw keystone admin token = {keystone admin token}
- rgw keystone accepted roles = {accepted user roles}
- rgw keystone token cache size = {number of tokens to cache}
- rgw keystone revocation interval = {number of seconds before checking revoked tickets}
- rgw keystone implicit tenants = {true for private tenant for each new user}
- rgw s3 auth use keystone = true
- nss db path = {path to nss db}
-
-It is also possible to configure a Keystone service tenant, user & password for
-keystone (for v2.0 version of the OpenStack Identity API), similar to the way
-OpenStack services tend to be configured, this avoids the need for setting the
-shared secret ``rgw keystone admin token`` in the configuration file, which is
-recommended to be disabled in production environments. The service tenant
-credentials should have admin privileges, for more details refer the `Openstack
-keystone documentation`_, which explains the process in detail. The requisite
-configuration options for are::
-
- rgw keystone admin user = {keystone service tenant user name}
- rgw keystone admin password = {keystone service tenant user password}
- rgw keystone admin tenant = {keystone service tenant name}
-
-
-A Ceph Object Gateway user is mapped into a Keystone ``tenant``. A Keystone user
-has different roles assigned to it on possibly more than a single tenant. When
-the Ceph Object Gateway gets the ticket, it looks at the tenant, and the user
-roles that are assigned to that ticket, and accepts/rejects the request
-according to the ``rgw keystone accepted roles`` configurable.
-
-For a v3 version of the OpenStack Identity API you should replace
-``rgw keystone admin tenant`` with::
-
- rgw keystone admin domain = {keystone admin domain name}
- rgw keystone admin project = {keystone admin project name}
-
-
-Prior to Kilo
--------------
-
-Keystone itself needs to be configured to point to the Ceph Object Gateway as an
-object-storage endpoint::
-
- keystone service-create --name swift --type object-store
- keystone endpoint-create --service-id <id> --publicurl http://radosgw.example.com/swift/v1 \
- --internalurl http://radosgw.example.com/swift/v1 --adminurl http://radosgw.example.com/swift/v1
-
-
-As of Kilo
-----------
-
-Keystone itself needs to be configured to point to the Ceph Object Gateway as an
-object-storage endpoint::
-
- openstack service create --name=swift \
- --description="Swift Service" \
- object-store
- +-------------+----------------------------------+
- | Field | Value |
- +-------------+----------------------------------+
- | description | Swift Service |
- | enabled | True |
- | id | 37c4c0e79571404cb4644201a4a6e5ee |
- | name | swift |
- | type | object-store |
- +-------------+----------------------------------+
-
- openstack endpoint create --region RegionOne \
- --publicurl "http://radosgw.example.com:8080/swift/v1" \
- --adminurl "http://radosgw.example.com:8080/swift/v1" \
- --internalurl "http://radosgw.example.com:8080/swift/v1" \
- swift
- +--------------+------------------------------------------+
- | Field | Value |
- +--------------+------------------------------------------+
- | adminurl | http://radosgw.example.com:8080/swift/v1 |
- | id | e4249d2b60e44743a67b5e5b38c18dd3 |
- | internalurl | http://radosgw.example.com:8080/swift/v1 |
- | publicurl | http://radosgw.example.com:8080/swift/v1 |
- | region | RegionOne |
- | service_id | 37c4c0e79571404cb4644201a4a6e5ee |
- | service_name | swift |
- | service_type | object-store |
- +--------------+------------------------------------------+
-
- $ openstack endpoint show object-store
- +--------------+------------------------------------------+
- | Field | Value |
- +--------------+------------------------------------------+
- | adminurl | http://radosgw.example.com:8080/swift/v1 |
- | enabled | True |
- | id | e4249d2b60e44743a67b5e5b38c18dd3 |
- | internalurl | http://radosgw.example.com:8080/swift/v1 |
- | publicurl | http://radosgw.example.com:8080/swift/v1 |
- | region | RegionOne |
- | service_id | 37c4c0e79571404cb4644201a4a6e5ee |
- | service_name | swift |
- | service_type | object-store |
- +--------------+------------------------------------------+
-
-
-The keystone URL is the Keystone admin RESTful API URL. The admin token is the
-token that is configured internally in Keystone for admin requests.
-
-The Ceph Object Gateway will query Keystone periodically for a list of revoked
-tokens. These requests are encoded and signed. Also, Keystone may be configured
-to provide self-signed tokens, which are also encoded and signed. The gateway
-needs to be able to decode and verify these signed messages, and the process
-requires that the gateway be set up appropriately. Currently, the Ceph Object
-Gateway will only be able to perform the procedure if it was compiled with
-``--with-nss``. Configuring the Ceph Object Gateway to work with Keystone also
-requires converting the OpenSSL certificates that Keystone uses for creating the
-requests to the nss db format, for example::
-
- mkdir /var/ceph/nss
-
- openssl x509 -in /etc/keystone/ssl/certs/ca.pem -pubkey | \
- certutil -d /var/ceph/nss -A -n ca -t "TCu,Cu,Tuw"
- openssl x509 -in /etc/keystone/ssl/certs/signing_cert.pem -pubkey | \
- certutil -A -d /var/ceph/nss -n signing_cert -t "P,P,P"
-
-
-
-Openstack keystone may also be terminated with a self signed ssl certificate, in
-order for radosgw to interact with keystone in such a case, you could either
-install keystone's ssl certificate in the node running radosgw. Alternatively
-radosgw could be made to not verify the ssl certificate at all (similar to
-openstack clients with a ``--insecure`` switch) by setting the value of the
-configurable ``rgw keystone verify ssl`` to false.
-
-
-.. _Openstack keystone documentation: http://docs.openstack.org/developer/keystone/configuringservices.html#setting-up-projects-users-and-roles
diff --git a/src/ceph/doc/radosgw/layout.rst b/src/ceph/doc/radosgw/layout.rst
deleted file mode 100644
index 04a525b..0000000
--- a/src/ceph/doc/radosgw/layout.rst
+++ /dev/null
@@ -1,208 +0,0 @@
-===========================
- Rados Gateway Data Layout
-===========================
-
-Although the source code is the ultimate guide, this document helps
-new developers to get up to speed with the implementation details.
-
-Introduction
-------------
-
-Swift offers something called a container, that we use interchangeably with
-the term bucket. One may say that RGW's buckets implement Swift containers.
-
-This document does not consider how RGW operates on these structures,
-e.g. the use of encode() and decode() methods for serialization and so on.
-
-Conceptual View
----------------
-
-Although RADOS only knows about pools and objects with their xattrs and
-omap[1], conceptually RGW organizes its data into three different kinds:
-metadata, bucket index, and data.
-
-Metadata
-^^^^^^^^
-
-We have 3 'sections' of metadata: 'user', 'bucket', and 'bucket.instance'.
-You can use the following commands to introspect metadata entries: ::
-
- $ radosgw-admin metadata list
- $ radosgw-admin metadata list bucket
- $ radosgw-admin metadata list bucket.instance
- $ radosgw-admin metadata list user
-
- $ radosgw-admin metadata get bucket:<bucket>
- $ radosgw-admin metadata get bucket.instance:<bucket>:<bucket_id>
- $ radosgw-admin metadata get user:<user> # get or set
-
-Some variables have been used in above commands, they are:
-
-- user: Holds user information
-- bucket: Holds a mapping between bucket name and bucket instance id
-- bucket.instance: Holds bucket instance information[2]
-
-Every metadata entry is kept on a single rados object.
-See below for implementation defails.
-
-Note that the metadata is not indexed. When listing a metadata section we do a
-rados pgls operation on the containing pool.
-
-Bucket Index
-^^^^^^^^^^^^
-
-It's a different kind of metadata, and kept separately. The bucket index holds
-a key-value map in rados objects. By default it is a single rados object per
-bucket, but it is possible since Hammer to shard that map over multiple rados
-objects. The map itself is kept in omap, associated with each rados object.
-The key of each omap is the name of the objects, and the value holds some basic
-metadata of that object -- metadata that shows up when listing the bucket.
-Also, each omap holds a header, and we keep some bucket accounting metadata
-in that header (number of objects, total size, etc.).
-
-Note that we also hold other information in the bucket index, and it's kept in
-other key namespaces. We can hold the bucket index log there, and for versioned
-objects there is more information that we keep on other keys.
-
-Data
-^^^^
-
-Objects data is kept in one or more rados objects for each rgw object.
-
-Object Lookup Path
-------------------
-
-When accessing objects, ReST APIs come to RGW with three parameters:
-account information (access key in S3 or account name in Swift),
-bucket or container name, and object name (or key). At present, RGW only
-uses account information to find out the user ID and for access control.
-Only the bucket name and object key are used to address the object in a pool.
-
-The user ID in RGW is a string, typically the actual user name from the user
-credentials and not a hashed or mapped identifier.
-
-When accessing a user's data, the user record is loaded from an object
-"<user_id>" in pool "default.rgw.meta" with namespace "users.uid".
-
-Bucket names are represented in the pool "default.rgw.meta" with namespace
-"root". Bucket record is
-loaded in order to obtain so-called marker, which serves as a bucket ID.
-
-The object is located in pool "default.rgw.buckets.data".
-Object name is "<marker>_<key>",
-for example "default.7593.4_image.png", where the marker is "default.7593.4"
-and the key is "image.png". Since these concatenated names are not parsed,
-only passed down to RADOS, the choice of the separator is not important and
-causes no ambiguity. For the same reason, slashes are permitted in object
-names (keys).
-
-It is also possible to create multiple data pools and make it so that
-different users buckets will be created in different rados pools by default,
-thus providing the necessary scaling. The layout and naming of these pools
-is controlled by a 'policy' setting.[3]
-
-An RGW object may consist of several RADOS objects, the first of which
-is the head that contains the metadata, such as manifest, ACLs, content type,
-ETag, and user-defined metadata. The metadata is stored in xattrs.
-The head may also contain up to 512 kilobytes of object data, for efficiency
-and atomicity. The manifest describes how each object is laid out in RADOS
-objects.
-
-Bucket and Object Listing
--------------------------
-
-Buckets that belong to a given user are listed in an omap of an object named
-"<user_id>.buckets" (for example, "foo.buckets") in pool "default.rgw.meta"
-with namespace "users.uid".
-These objects are accessed when listing buckets, when updating bucket
-contents, and updating and retrieving bucket statistics (e.g. for quota).
-
-See the user-visible, encoded class 'cls_user_bucket_entry' and its
-nested class 'cls_user_bucket' for the values of these omap entires.
-
-These listings are kept consistent with buckets in pool ".rgw".
-
-Objects that belong to a given bucket are listed in a bucket index,
-as discussed in sub-section 'Bucket Index' above. The default naming
-for index objects is ".dir.<marker>" in pool "default.rgw.buckets.index".
-
-Footnotes
----------
-
-[1] Omap is a key-value store, associated with an object, in a way similar
-to how Extended Attributes associate with a POSIX file. An object's omap
-is not physically located in the object's storage, but its precise
-implementation is invisible and immaterial to RADOS Gateway.
-In Hammer, one LevelDB is used to store omap in each OSD.
-
-[2] Before the Dumpling release, the 'bucket.instance' metadata did not
-exist and the 'bucket' metadata contained its information. It is possible
-to encounter such buckets in old installations.
-
-[3] The pool names have been changed starting with the Infernalis release.
-If you are looking at an older setup, some details may be different. In
-particular there was a different pool for each of the namespaces that are
-now being used inside the default.root.meta pool.
-
-Appendix: Compendium
---------------------
-
-Known pools:
-
-.rgw.root
- Unspecified region, zone, and global information records, one per object.
-
-<zone>.rgw.control
- notify.<N>
-
-<zone>.rgw.meta
- Multiple namespaces with different kinds of metadata:
-
- namespace: root
- <bucket>
- .bucket.meta.<bucket>:<marker> # see put_bucket_instance_info()
-
- The tenant is used to disambiguate buckets, but not bucket instances.
- Example::
-
- .bucket.meta.prodtx:test%25star:default.84099.6
- .bucket.meta.testcont:default.4126.1
- .bucket.meta.prodtx:testcont:default.84099.4
- prodtx/testcont
- prodtx/test%25star
- testcont
-
- namespace: users.uid
- Contains _both_ per-user information (RGWUserInfo) in "<user>" objects
- and per-user lists of buckets in omaps of "<user>.buckets" objects.
- The "<user>" may contain the tenant if non-empty, for example::
-
- prodtx$prodt
- test2.buckets
- prodtx$prodt.buckets
- test2
-
- namespace: users.email
- Unimportant
-
- namespace: users.keys
- 47UA98JSTJZ9YAN3OS3O
-
- This allows radosgw to look up users by their access keys during authentication.
-
- namespace: users.swift
- test:tester
-
-<zone>.rgw.buckets.index
- Objects are named ".dir.<marker>", each contains a bucket index.
- If the index is sharded, each shard appends the shard index after
- the marker.
-
-<zone>.rgw.buckets.data
- default.7593.4__shadow_.488urDFerTYXavx4yAd-Op8mxehnvTI_1
- <marker>_<key>
-
-An example of a marker would be "default.16004.1" or "default.7593.4".
-The current format is "<zone>.<instance_id>.<bucket_id>". But once
-generated, a marker is not parsed again, so its format may change
-freely in the future.
diff --git a/src/ceph/doc/radosgw/ldap-auth.rst b/src/ceph/doc/radosgw/ldap-auth.rst
deleted file mode 100644
index c67da04..0000000
--- a/src/ceph/doc/radosgw/ldap-auth.rst
+++ /dev/null
@@ -1,138 +0,0 @@
-===================
-LDAP Authentication
-===================
-
-.. versionadded:: Jewel
-
-You can delegate the Ceph Object Gateway authentication to an LDAP server.
-
-How it works
-============
-
-The Ceph Object Gateway extracts the users LDAP credentials from a token. A
-search filter is constructed with the user name. The Ceph Object Gateway uses
-the configured service account to search the directory for a matching entry. If
-an entry is found, the Ceph Object Gateway attempts to bind to the found
-distinguished name with the password from the token. If the credentials are
-valid, the bind will succeed, and the Ceph Object Gateway will grant access.
-
-You can limit the allowed users by setting the base for the search to a
-specific organizational unit or by specifying a custom search filter, for
-example requiring specific group membership, custom object classes, or
-attributes.
-
-Requirements
-============
-
-- **LDAP or Active Directory:** A running LDAP instance accessible by the Ceph
- Object Gateway
-- **Service account:** LDAP credentials to be used by the Ceph Object Gateway
- with search permissions
-- **User account:** At least one user account in the LDAP directory
-- **Do not overlap LDAP and local users:** You should not use the same user
- names for local users and for users being authenticated by using LDAP. The
- Ceph Object Gateway cannot distinguish them and it treats them as the same
- user.
-
-Sanity checks
-=============
-
-Use the ``ldapsearch`` utility to verify the service account or the LDAP connection:
-
-::
-
- # ldapsearch -x -D "uid=ceph,ou=system,dc=example,dc=com" -W \
- -H ldaps://example.com -b "ou=users,dc=example,dc=com" 'uid=*' dn
-
-.. note:: Make sure to use the same LDAP parameters like in the Ceph configuration file to
- eliminate possible problems.
-
-Configuring the Ceph Object Gateway to use LDAP authentication
-==============================================================
-
-The following parameters in the Ceph configuration file are related to the LDAP
-authentication:
-
-- ``rgw_ldap_uri``: Specifies the LDAP server to use. Make sure to use the
- ``ldaps://<fqdn>:<port>`` parameter to not transmit clear text credentials
- over the wire.
-- ``rgw_ldap_binddn``: The Distinguished Name (DN) of the service account used
- by the Ceph Object Gateway
-- ``rgw_ldap_secret``: The password for the service account
-- ``rgw_ldap_searchdn``: Specifies the base in the directory information tree
- for searching users. This might be your users organizational unit or some
- more specific Organizational Unit (OU).
-- ``rgw_ldap_dnattr``: The attribute being used in the constructed search
- filter to match a username. Depending on your Directory Information Tree
- (DIT) this would probably be ``uid`` or ``cn``.
-- ``rgw_search_filter``: If not specified, the Ceph Object Gateway
- automatically constructs the search filter with the ``rgw_ldap_dnattr``
- setting. Use this parameter to narrow the list of allowed users in very
- flexible ways. Consult the *Using a custom search filter to limit user access
- section* for details
-
-Using a custom search filter to limit user access
-=================================================
-
-There are two ways to use the ``rgw_search_filter`` parameter:
-
-Specifying a partial filter to further limit the constructed search filter
---------------------------------------------------------------------------
-
-An example for a partial filter:
-
-::
-
- "objectclass=inetorgperson"
-
-The Ceph Object Gateway will generate the search filter as usual with the
-user name from the token and the value of ``rgw_ldap_dnattr``. The constructed
-filter is then combined with the partial filter from the ``rgw_search_filter``
-attribute. Depending on the user name and the settings the final search filter
-might become:
-
-::
-
- "(&(uid=hari)(objectclass=inetorgperson))"
-
-So user ``hari`` will only be granted access if he is found in the LDAP
-directory, has an object class of ``inetorgperson``, and did specify a valid
-password.
-
-Specifying a complete filter
-----------------------------
-
-A complete filter must contain a ``USERNAME`` token which will be substituted
-with the user name during the authentication attempt. The ``rgw_ldap_dnattr``
-parameter is not used anymore in this case. For example, to limit valid users
-to a specific group, use the following filter:
-
-::
-
- "(&(uid=USERNAME)(memberOf=cn=ceph-users,ou=groups,dc=mycompany,dc=com))"
-
-.. note:: Using the ``memberOf`` attribute in LDAP searches requires server side
- support from you specific LDAP server implementation.
-
-Generating an access token for LDAP authentication
-==================================================
-
-The ``radosgw-token`` utility generates the access token based on the LDAP
-user name and password. It will output a base-64 encoded string which is the
-access token.
-
-::
-
- # export RGW_ACCESS_KEY_ID="<username>"
- # export RGW_SECRET_ACCESS_KEY="<password>"
- # radosgw-token --encode --ttype=ldap
-
-.. note:: For Active Directroy use the ``--ttype=ad`` parameter.
-
-.. important:: The access token is a base-64 encoded JSON struct and contains
- the LDAP credentials as a clear text.
-
-Testing access
-==============
-
-Use your favorite S3 client and specify the token as the access key.
diff --git a/src/ceph/doc/radosgw/multisite.rst b/src/ceph/doc/radosgw/multisite.rst
deleted file mode 100644
index 0c2c442..0000000
--- a/src/ceph/doc/radosgw/multisite.rst
+++ /dev/null
@@ -1,1459 +0,0 @@
-==========
-Multi-Site
-==========
-
-.. versionadded:: Jewel
-
-A single zone configuration typically consists of one zone group containing one
-zone and one or more `ceph-radosgw` instances where you may load-balance gateway
-client requests between the instances. In a single zone configuration, typically
-multiple gateway instances point to a single Ceph storage cluster. However, Kraken
-supports several multi-site configuration options for the Ceph Object Gateway:
-
-- **Multi-zone:** A more advanced configuration consists of one zone group and
- multiple zones, each zone with one or more `ceph-radosgw` instances. Each zone
- is backed by its own Ceph Storage Cluster. Multiple zones in a zone group
- provides disaster recovery for the zone group should one of the zones experience
- a significant failure. In Kraken, each zone is active and may receive write
- operations. In addition to disaster recovery, multiple active zones may also
- serve as a foundation for content delivery networks.
-
-- **Multi-zone-group:** Formerly called 'regions', Ceph Object Gateway can also
- support multiple zone groups, each zone group with one or more zones. Objects
- stored to zones in one zone group within the same realm as another zone
- group will share a global object namespace, ensuring unique object IDs across
- zone groups and zones.
-
-- **Multiple Realms:** In Kraken, the Ceph Object Gateway supports the notion
- of realms, which can be a single zone group or multiple zone groups and
- a globally unique namespace for the realm. Multiple realms provide the ability
- to support numerous configurations and namespaces.
-
-Replicating object data between zones within a zone group looks something
-like this:
-
-.. image:: ../images/zone-sync2.png
- :align: center
-
-For additional details on setting up a cluster, see `Ceph Object Gateway for
-Production <https://access.redhat.com/documentation/en-us/red_hat_ceph_storage/2/html/ceph_object_gateway_for_production/>`__.
-
-Functional Changes from Infernalis
-==================================
-
-In Kraken, you can configure each Ceph Object Gateway to
-work in an active-active zone configuration, allowing for writes to
-non-master zones.
-
-The multi-site configuration is stored within a container called a
-"realm." The realm stores zone groups, zones, and a time "period" with
-multiple epochs for tracking changes to the configuration. In Kraken,
-the ``ceph-radosgw`` daemons handle the synchronization,
-eliminating the need for a separate synchronization agent. Additionally,
-the new approach to synchronization allows the Ceph Object Gateway to
-operate with an "active-active" configuration instead of
-"active-passive".
-
-Requirements and Assumptions
-============================
-
-A multi-site configuration requires at least two Ceph storage clusters,
-preferably given a distinct cluster name. At least two Ceph object
-gateway instances, one for each Ceph storage cluster.
-
-This guide assumes at least two Ceph storage clusters in geographically
-separate locations; however, the configuration can work on the same
-site. This guide also assumes two Ceph object gateway servers named
-``rgw1`` and ``rgw2``.
-
-A multi-site configuration requires a master zone group and a master
-zone. Additionally, each zone group requires a master zone. Zone groups
-may have one or more secondary or non-master zones.
-
-In this guide, the ``rgw1`` host will serve as the master zone of the
-master zone group; and, the ``rgw2`` host will serve as the secondary zone
-of the master zone group.
-
-See `Pools`_ for instructions on creating and tuning pools for Ceph
-Object Storage.
-
-
-Configuring a Master Zone
-=========================
-
-All gateways in a multi-site configuration will retrieve their
-configuration from a ``ceph-radosgw`` daemon on a host within the master
-zone group and master zone. To configure your gateways in a multi-site
-configuration, choose a ``ceph-radosgw`` instance to configure the
-master zone group and master zone.
-
-Create a Realm
---------------
-
-A realm contains the multi-site configuration of zone groups and zones
-and also serves to enforce a globally unique namespace within the realm.
-
-Create a new realm for the multi-site configuration by opening a command
-line interface on a host identified to serve in the master zone group
-and zone. Then, execute the following:
-
-::
-
- # radosgw-admin realm create --rgw-realm={realm-name} [--default]
-
-For example:
-
-::
-
- # radosgw-admin realm create --rgw-realm=movies --default
-
-If the cluster will have a single realm, specify the ``--default`` flag.
-If ``--default`` is specified, ``radosgw-admin`` will use this realm by
-default. If ``--default`` is not specified, adding zone-groups and zones
-requires specifying either the ``--rgw-realm`` flag or the
-``--realm-id`` flag to identify the realm when adding zone groups and
-zones.
-
-After creating the realm, ``radosgw-admin`` will echo back the realm
-configuration. For example:
-
-::
-
- {
- "id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62",
- "name": "movies",
- "current_period": "1950b710-3e63-4c41-a19e-46a715000980",
- "epoch": 1
- }
-
-.. note:: Ceph generates a unique ID for the realm, which allows the renaming
- of a realm if the need arises.
-
-Create a Master Zone Group
---------------------------
-
-A realm must have at least one zone group, which will serve as the
-master zone group for the realm.
-
-Create a new master zone group for the multi-site configuration by
-opening a command line interface on a host identified to serve in the
-master zone group and zone. Then, execute the following:
-
-::
-
- # radosgw-admin zonegroup create --rgw-zonegroup={name} --endpoints={url} [--rgw-realm={realm-name}|--realm-id={realm-id}] --master --default
-
-For example:
-
-::
-
- # radosgw-admin zonegroup create --rgw-zonegroup=us --endpoints=http://rgw1:80 --rgw-realm=movies --master --default
-
-If the realm will only have a single zone group, specify the
-``--default`` flag. If ``--default`` is specified, ``radosgw-admin``
-will use this zone group by default when adding new zones. If
-``--default`` is not specified, adding zones will require either the
-``--rgw-zonegroup`` flag or the ``--zonegroup-id`` flag to identify the
-zone group when adding or modifying zones.
-
-After creating the master zone group, ``radosgw-admin`` will echo back
-the zone group configuration. For example:
-
-::
-
- {
- "id": "f1a233f5-c354-4107-b36c-df66126475a6",
- "name": "us",
- "api_name": "us",
- "is_master": "true",
- "endpoints": [
- "http:\/\/rgw1:80"
- ],
- "hostnames": [],
- "hostnames_s3webzone": [],
- "master_zone": "",
- "zones": [],
- "placement_targets": [],
- "default_placement": "",
- "realm_id": "0956b174-fe14-4f97-8b50-bb7ec5e1cf62"
- }
-
-Create a Master Zone
---------------------
-
-.. important:: Zones must be created on a Ceph Object Gateway node that will be
- within the zone.
-
-Create a new master zone for the multi-site configuration by opening a
-command line interface on a host identified to serve in the master zone
-group and zone. Then, execute the following:
-
-::
-
- # radosgw-admin zone create --rgw-zonegroup={zone-group-name} \
- --rgw-zone={zone-name} \
- --master --default \
- --endpoints={http://fqdn}[,{http://fqdn}]
-
-
-For example:
-
-::
-
- # radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-east \
- --master --default \
- --endpoints={http://fqdn}[,{http://fqdn}]
-
-
-.. note:: The ``--access-key`` and ``--secret`` aren’t specified. These
- settings will be added to the zone once the user is created in the
- next section.
-
-.. important:: The following steps assume a multi-site configuration using newly
- installed systems that aren’t storing data yet. DO NOT DELETE the
- ``default`` zone and its pools if you are already using it to store
- data, or the data will be deleted and unrecoverable.
-
-Delete Default Zone Group and Zone
-----------------------------------
-
-Delete the ``default`` zone if it exists. Make sure to remove it from
-the default zone group first.
-
-::
-
- # radosgw-admin zonegroup remove --rgw-zonegroup=default --rgw-zone=default
- # radosgw-admin period update --commit
- # radosgw-admin zone delete --rgw-zone=default
- # radosgw-admin period update --commit
- # radosgw-admin zonegroup delete --rgw-zonegroup=default
- # radosgw-admin period update --commit
-
-Finally, delete the ``default`` pools in your Ceph storage cluster if
-they exist.
-
-.. important:: The following step assumes a multi-site configuration using newly
- installed systems that aren’t currently storing data. DO NOT DELETE
- the ``default`` zone group if you are already using it to store
- data.
-
-::
-
- # rados rmpool default.rgw.control default.rgw.control --yes-i-really-really-mean-it
- # rados rmpool default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it
- # rados rmpool default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
- # rados rmpool default.rgw.log default.rgw.log --yes-i-really-really-mean-it
- # rados rmpool default.rgw.users.uid default.rgw.users.uid --yes-i-really-really-mean-it
-
-Create a System User
---------------------
-
-The ``ceph-radosgw`` daemons must authenticate before pulling realm and
-period information. In the master zone, create a system user to
-facilitate authentication between daemons.
-
-::
-
- # radosgw-admin user create --uid="{user-name}" --display-name="{Display Name}" --system
-
-For example:
-
-::
-
- # radosgw-admin user create --uid="synchronization-user" --display-name="Synchronization User" --system
-
-Make a note of the ``access_key`` and ``secret_key``, as the secondary
-zones will require them to authenticate with the master zone.
-
-Finally, add the system user to the master zone.
-
-::
-
- # radosgw-admin zone modify --rgw-zone=us-east --access-key={access-key} --secret={secret}
- # radosgw-admin period update --commit
-
-Update the Period
------------------
-
-After updating the master zone configuration, update the period.
-
-::
-
- # radosgw-admin period update --commit
-
-.. note:: Updating the period changes the epoch, and ensures that other zones
- will receive the updated configuration.
-
-Update the Ceph Configuration File
-----------------------------------
-
-Update the Ceph configuration file on master zone hosts by adding the
-``rgw_zone`` configuration option and the name of the master zone to the
-instance entry.
-
-::
-
- [client.rgw.{instance-name}]
- ...
- rgw_zone={zone-name}
-
-For example:
-
-::
-
- [client.rgw.rgw1]
- host = rgw1
- rgw frontends = "civetweb port=80"
- rgw_zone=us-east
-
-Start the Gateway
------------------
-
-On the object gateway host, start and enable the Ceph Object Gateway
-service:
-
-::
-
- # systemctl start ceph-radosgw@rgw.`hostname -s`
- # systemctl enable ceph-radosgw@rgw.`hostname -s`
-
-Configure Secondary Zones
-=========================
-
-Zones within a zone group replicate all data to ensure that each zone
-has the same data. When creating the secondary zone, execute all of the
-following operations on a host identified to serve the secondary zone.
-
-.. note:: To add a third zone, follow the same procedures as for adding the
- secondary zone. Use different zone name.
-
-.. important:: You must execute metadata operations, such as user creation, on a
- host within the master zone. The master zone and the secondary zone
- can receive bucket operations, but the secondary zone redirects
- bucket operations to the master zone. If the master zone is down,
- bucket operations will fail.
-
-Pull the Realm
---------------
-
-Using the URL path, access key and secret of the master zone in the
-master zone group, pull the realm to the host. To pull a non-default
-realm, specify the realm using the ``--rgw-realm`` or ``--realm-id``
-configuration options.
-
-::
-
- # radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
-
-If this realm is the default realm or the only realm, make the realm the
-default realm.
-
-::
-
- # radosgw-admin realm default --rgw-realm={realm-name}
-
-Pull the Period
----------------
-
-Using the URL path, access key and secret of the master zone in the
-master zone group, pull the period to the host. To pull a period from a
-non-default realm, specify the realm using the ``--rgw-realm`` or
-``--realm-id`` configuration options.
-
-::
-
- # radosgw-admin period pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
-
-
-.. note:: Pulling the period retrieves the latest version of the zone group
- and zone configurations for the realm.
-
-Create a Secondary Zone
------------------------
-
-.. important:: Zones must be created on a Ceph Object Gateway node that will be
- within the zone.
-
-Create a secondary zone for the multi-site configuration by opening a
-command line interface on a host identified to serve the secondary zone.
-Specify the zone group ID, the new zone name and an endpoint for the
-zone. **DO NOT** use the ``--master`` or ``--default`` flags. In Kraken,
-all zones run in an active-active configuration by
-default; that is, a gateway client may write data to any zone and the
-zone will replicate the data to all other zones within the zone group.
-If the secondary zone should not accept write operations, specify the
-``--read-only`` flag to create an active-passive configuration between
-the master zone and the secondary zone. Additionally, provide the
-``access_key`` and ``secret_key`` of the generated system user stored in
-the master zone of the master zone group. Execute the following:
-
-::
-
- # radosgw-admin zone create --rgw-zonegroup={zone-group-name}\
- --rgw-zone={zone-name} --endpoints={url} \
- --access-key={system-key} --secret={secret}\
- --endpoints=http://{fqdn}:80 \
- [--read-only]
-
-For example:
-
-::
-
- # radosgw-admin zone create --rgw-zonegroup=us --rgw-zone=us-west \
- --access-key={system-key} --secret={secret} \
- --endpoints=http://rgw2:80
-
-.. important:: The following steps assume a multi-site configuration using newly
- installed systems that aren’t storing data. **DO NOT DELETE** the
- ``default`` zone and its pools if you are already using it to store
- data, or the data will be lost and unrecoverable.
-
-Delete the default zone if needed.
-
-::
-
- # radosgw-admin zone delete --rgw-zone=default
-
-Finally, delete the default pools in your Ceph storage cluster if
-needed.
-
-::
-
- # rados rmpool default.rgw.control default.rgw.control --yes-i-really-really-mean-it
- # rados rmpool default.rgw.data.root default.rgw.data.root --yes-i-really-really-mean-it
- # rados rmpool default.rgw.gc default.rgw.gc --yes-i-really-really-mean-it
- # rados rmpool default.rgw.log default.rgw.log --yes-i-really-really-mean-it
- # rados rmpool default.rgw.users.uid default.rgw.users.uid --yes-i-really-really-mean-it
-
-Update the Ceph Configuration File
-----------------------------------
-
-Update the Ceph configuration file on the secondary zone hosts by adding
-the ``rgw_zone`` configuration option and the name of the secondary zone
-to the instance entry.
-
-::
-
- [client.rgw.{instance-name}]
- ...
- rgw_zone={zone-name}
-
-For example:
-
-::
-
- [client.rgw.rgw2]
- host = rgw2
- rgw frontends = "civetweb port=80"
- rgw_zone=us-west
-
-Update the Period
------------------
-
-After updating the master zone configuration, update the period.
-
-::
-
- # radosgw-admin period update --commit
-
-.. note:: Updating the period changes the epoch, and ensures that other zones
- will receive the updated configuration.
-
-Start the Gateway
------------------
-
-On the object gateway host, start and enable the Ceph Object Gateway
-service:
-
-::
-
- # systemctl start ceph-radosgw@rgw.`hostname -s`
- # systemctl enable ceph-radosgw@rgw.`hostname -s`
-
-Check Synchronization Status
-----------------------------
-
-Once the secondary zone is up and running, check the synchronization
-status. Synchronization copies users and buckets created in the master
-zone to the secondary zone.
-
-::
-
- # radosgw-admin sync status
-
-The output will provide the status of synchronization operations. For
-example:
-
-::
-
- realm f3239bc5-e1a8-4206-a81d-e1576480804d (earth)
- zonegroup c50dbb7e-d9ce-47cc-a8bb-97d9b399d388 (us)
- zone 4c453b70-4a16-4ce8-8185-1893b05d346e (us-west)
- metadata sync syncing
- full sync: 0/64 shards
- metadata is caught up with master
- incremental sync: 64/64 shards
- data sync source: 1ee9da3e-114d-4ae3-a8a4-056e8a17f532 (us-east)
- syncing
- full sync: 0/128 shards
- incremental sync: 128/128 shards
- data is caught up with source
-
-.. note:: Secondary zones accept bucket operations; however, secondary zones
- redirect bucket operations to the master zone and then synchronize
- with the master zone to receive the result of the bucket operations.
- If the master zone is down, bucket operations executed on the
- secondary zone will fail, but object operations should succeed.
-
-
-Maintenance
-===========
-
-Checking the Sync Status
-------------------------
-
-Information about the replication status of a zone can be queried with::
-
- $ radosgw-admin sync status
- realm b3bc1c37-9c44-4b89-a03b-04c269bea5da (earth)
- zonegroup f54f9b22-b4b6-4a0e-9211-fa6ac1693f49 (us)
- zone adce11c9-b8ed-4a90-8bc5-3fc029ff0816 (us-2)
- metadata sync syncing
- full sync: 0/64 shards
- incremental sync: 64/64 shards
- metadata is behind on 1 shards
- oldest incremental change not applied: 2017-03-22 10:20:00.0.881361s
- data sync source: 341c2d81-4574-4d08-ab0f-5a2a7b168028 (us-1)
- syncing
- full sync: 0/128 shards
- incremental sync: 128/128 shards
- data is caught up with source
- source: 3b5d1a3f-3f27-4e4a-8f34-6072d4bb1275 (us-3)
- syncing
- full sync: 0/128 shards
- incremental sync: 128/128 shards
- data is caught up with source
-
-Changing the Metadata Master Zone
----------------------------------
-
-.. important:: Care must be taken when changing which zone is the metadata
- master. If a zone has not finished syncing metadata from the current master
- zone, it will be unable to serve any remaining entries when promoted to
- master and those changes will be lost. For this reason, waiting for a
- zone's ``radosgw-admin sync status`` to catch up on metadata sync before
- promoting it to master is recommended.
-
- Similarly, if changes to metadata are being processed by the current master
- zone while another zone is being promoted to master, those changes are
- likely to be lost. To avoid this, shutting down any ``radosgw`` instances
- on the previous master zone is recommended. After promoting another zone,
- its new period can be fetched with ``radosgw-admin period pull`` and the
- gateway(s) can be restarted.
-
-To promote a zone (for example, zone ``us-2`` in zonegroup ``us``) to metadata
-master, run the following commands on that zone::
-
- $ radosgw-admin zone modify --rgw-zone=us-2 --master
- $ radosgw-admin zonegroup modify --rgw-zonegroup=us --master
- $ radosgw-admin period update --commit
-
-This will generate a new period, and the radosgw instance(s) in zone ``us-2``
-will send this period to other zones.
-
-Failover and Disaster Recovery
-==============================
-
-If the master zone should fail, failover to the secondary zone for
-disaster recovery.
-
-1. Make the secondary zone the master and default zone. For example:
-
- ::
-
- # radosgw-admin zone modify --rgw-zone={zone-name} --master --default
-
- By default, Ceph Object Gateway will run in an active-active
- configuration. If the cluster was configured to run in an
- active-passive configuration, the secondary zone is a read-only zone.
- Remove the ``--read-only`` status to allow the zone to receive write
- operations. For example:
-
- ::
-
- # radosgw-admin zone modify --rgw-zone={zone-name} --master --default \
- --read-only=False
-
-2. Update the period to make the changes take effect.
-
- ::
-
- # radosgw-admin period update --commit
-
-3. Finally, restart the Ceph Object Gateway.
-
- ::
-
- # systemctl restart ceph-radosgw@rgw.`hostname -s`
-
-If the former master zone recovers, revert the operation.
-
-1. From the recovered zone, pull the period from the current master
- zone.
-
- ::
-
- # radosgw-admin period pull --url={url-to-master-zone-gateway} \
- --access-key={access-key} --secret={secret}
-
-2. Make the recovered zone the master and default zone.
-
- ::
-
- # radosgw-admin zone modify --rgw-zone={zone-name} --master --default
-
-3. Update the period to make the changes take effect.
-
- ::
-
- # radosgw-admin period update --commit
-
-4. Then, restart the Ceph Object Gateway in the recovered zone.
-
- ::
-
- # systemctl restart ceph-radosgw@rgw.`hostname -s`
-
-5. If the secondary zone needs to be a read-only configuration, update
- the secondary zone.
-
- ::
-
- # radosgw-admin zone modify --rgw-zone={zone-name} --read-only
-
-6. Update the period to make the changes take effect.
-
- ::
-
- # radosgw-admin period update --commit
-
-7. Finally, restart the Ceph Object Gateway in the secondary zone.
-
- ::
-
- # systemctl restart ceph-radosgw@rgw.`hostname -s`
-
-Migrating a Single Site System to Multi-Site
-============================================
-
-To migrate from a single site system with a ``default`` zone group and
-zone to a multi site system, use the following steps:
-
-1. Create a realm. Replace ``<name>`` with the realm name.
-
- ::
-
- # radosgw-admin realm create --rgw-realm=<name> --default
-
-2. Rename the default zone and zonegroup. Replace ``<name>`` with the
- zonegroup or zone name.
-
- ::
-
- # radosgw-admin zonegroup rename --rgw-zonegroup default --zonegroup-new-name=<name>
- # radosgw-admin zone rename --rgw-zone default --zone-new-name us-east-1 --rgw-zonegroup=<name>
-
-3. Configure the master zonegroup. Replace ``<name>`` with the realm or
- zonegroup name. Replace ``<fqdn>`` with the fully qualified domain
- name(s) in the zonegroup.
-
- ::
-
- # radosgw-admin zonegroup modify --rgw-realm=<name> --rgw-zonegroup=<name> --endpoints http://<fqdn>:80 --master --default
-
-4. Configure the master zone. Replace ``<name>`` with the realm,
- zonegroup or zone name. Replace ``<fqdn>`` with the fully qualified
- domain name(s) in the zonegroup.
-
- ::
-
- # radosgw-admin zone modify --rgw-realm=<name> --rgw-zonegroup=<name> \
- --rgw-zone=<name> --endpoints http://<fqdn>:80 \
- --access-key=<access-key> --secret=<secret-key> \
- --master --default
-
-5. Create a system user. Replace ``<user-id>`` with the username.
- Replace ``<display-name>`` with a display name. It may contain
- spaces.
-
- ::
-
- # radosgw-admin user create --uid=<user-id> --display-name="<display-name>"\
- --access-key=<access-key> --secret=<secret-key> --system
-
-6. Commit the updated configuration.
-
- ::
-
- # radosgw-admin period update --commit
-
-7. Finally, restart the Ceph Object Gateway.
-
- ::
-
- # systemctl restart ceph-radosgw@rgw.`hostname -s`
-
-After completing this procedure, proceed to `Configure a Secondary
-Zone <#configure-secondary-zones>`__ to create a secondary zone
-in the master zone group.
-
-
-Multi-Site Configuration Reference
-==================================
-
-The following sections provide additional details and command-line
-usage for realms, periods, zone groups and zones.
-
-Realms
-------
-
-A realm represents a globally unique namespace consisting of one or more
-zonegroups containing one or more zones, and zones containing buckets,
-which in turn contain objects. A realm enables the Ceph Object Gateway
-to support multiple namespaces and their configuration on the same
-hardware.
-
-A realm contains the notion of periods. Each period represents the state
-of the zone group and zone configuration in time. Each time you make a
-change to a zonegroup or zone, update the period and commit it.
-
-By default, the Ceph Object Gateway does not create a realm
-for backward compatibility with Infernalis and earlier releases.
-However, as a best practice, we recommend creating realms for new
-clusters.
-
-Create a Realm
-~~~~~~~~~~~~~~
-
-To create a realm, execute ``realm create`` and specify the realm name.
-If the realm is the default, specify ``--default``.
-
-::
-
- # radosgw-admin realm create --rgw-realm={realm-name} [--default]
-
-For example:
-
-::
-
- # radosgw-admin realm create --rgw-realm=movies --default
-
-By specifying ``--default``, the realm will be called implicitly with
-each ``radosgw-admin`` call unless ``--rgw-realm`` and the realm name
-are explicitly provided.
-
-Make a Realm the Default
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-One realm in the list of realms should be the default realm. There may
-be only one default realm. If there is only one realm and it wasn’t
-specified as the default realm when it was created, make it the default
-realm. Alternatively, to change which realm is the default, execute:
-
-::
-
- # radosgw-admin realm default --rgw-realm=movies
-
-.. note:: When the realm is default, the command line assumes
- ``--rgw-realm=<realm-name>`` as an argument.
-
-Delete a Realm
-~~~~~~~~~~~~~~
-
-To delete a realm, execute ``realm delete`` and specify the realm name.
-
-::
-
- # radosgw-admin realm delete --rgw-realm={realm-name}
-
-For example:
-
-::
-
- # radosgw-admin realm delete --rgw-realm=movies
-
-Get a Realm
-~~~~~~~~~~~
-
-To get a realm, execute ``realm get`` and specify the realm name.
-
-::
-
- #radosgw-admin realm get --rgw-realm=<name>
-
-For example:
-
-::
-
- # radosgw-admin realm get --rgw-realm=movies [> filename.json]
-
-The CLI will echo a JSON object with the realm properties.
-
-::
-
- {
- "id": "0a68d52e-a19c-4e8e-b012-a8f831cb3ebc",
- "name": "movies",
- "current_period": "b0c5bbef-4337-4edd-8184-5aeab2ec413b",
- "epoch": 1
- }
-
-Use ``>`` and an output file name to output the JSON object to a file.
-
-Set a Realm
-~~~~~~~~~~~
-
-To set a realm, execute ``realm set``, specify the realm name, and
-``--infile=`` with an input file name.
-
-::
-
- #radosgw-admin realm set --rgw-realm=<name> --infile=<infilename>
-
-For example:
-
-::
-
- # radosgw-admin realm set --rgw-realm=movies --infile=filename.json
-
-List Realms
-~~~~~~~~~~~
-
-To list realms, execute ``realm list``.
-
-::
-
- # radosgw-admin realm list
-
-List Realm Periods
-~~~~~~~~~~~~~~~~~~
-
-To list realm periods, execute ``realm list-periods``.
-
-::
-
- # radosgw-admin realm list-periods
-
-Pull a Realm
-~~~~~~~~~~~~
-
-To pull a realm from the node containing the master zone group and
-master zone to a node containing a secondary zone group or zone, execute
-``realm pull`` on the node that will receive the realm configuration.
-
-::
-
- # radosgw-admin realm pull --url={url-to-master-zone-gateway} --access-key={access-key} --secret={secret}
-
-Rename a Realm
-~~~~~~~~~~~~~~
-
-A realm is not part of the period. Consequently, renaming the realm is
-only applied locally, and will not get pulled with ``realm pull``. When
-renaming a realm with multiple zones, run the command on each zone. To
-rename a realm, execute the following:
-
-::
-
- # radosgw-admin realm rename --rgw-realm=<current-name> --realm-new-name=<new-realm-name>
-
-.. note:: DO NOT use ``realm set`` to change the ``name`` parameter. That
- changes the internal name only. Specifying ``--rgw-realm`` would
- still use the old realm name.
-
-Zone Groups
------------
-
-The Ceph Object Gateway supports multi-site deployments and a global
-namespace by using the notion of zone groups. Formerly called a region
-in Infernalis, a zone group defines the geographic location of one or more Ceph
-Object Gateway instances within one or more zones.
-
-Configuring zone groups differs from typical configuration procedures,
-because not all of the settings end up in a Ceph configuration file. You
-can list zone groups, get a zone group configuration, and set a zone
-group configuration.
-
-Create a Zone Group
-~~~~~~~~~~~~~~~~~~~
-
-Creating a zone group consists of specifying the zone group name.
-Creating a zone assumes it will live in the default realm unless
-``--rgw-realm=<realm-name>`` is specified. If the zonegroup is the
-default zonegroup, specify the ``--default`` flag. If the zonegroup is
-the master zonegroup, specify the ``--master`` flag. For example:
-
-::
-
- # radosgw-admin zonegroup create --rgw-zonegroup=<name> [--rgw-realm=<name>][--master] [--default]
-
-
-.. note:: Use ``zonegroup modify --rgw-zonegroup=<zonegroup-name>`` to modify
- an existing zone group’s settings.
-
-Make a Zone Group the Default
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-One zonegroup in the list of zonegroups should be the default zonegroup.
-There may be only one default zonegroup. If there is only one zonegroup
-and it wasn’t specified as the default zonegroup when it was created,
-make it the default zonegroup. Alternatively, to change which zonegroup
-is the default, execute:
-
-::
-
- # radosgw-admin zonegroup default --rgw-zonegroup=comedy
-
-.. note:: When the zonegroup is default, the command line assumes
- ``--rgw-zonegroup=<zonegroup-name>`` as an argument.
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Add a Zone to a Zone Group
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To add a zone to a zonegroup, execute the following:
-
-::
-
- # radosgw-admin zonegroup add --rgw-zonegroup=<name> --rgw-zone=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Remove a Zone from a Zone Group
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To remove a zone from a zonegroup, execute the following:
-
-::
-
- # radosgw-admin zonegroup remove --rgw-zonegroup=<name> --rgw-zone=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Rename a Zone Group
-~~~~~~~~~~~~~~~~~~~
-
-To rename a zonegroup, execute the following:
-
-::
-
- # radosgw-admin zonegroup rename --rgw-zonegroup=<name> --zonegroup-new-name=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Delete a Zone Group
-~~~~~~~~~~~~~~~~~~~
-
-To delete a zonegroup, execute the following:
-
-::
-
- # radosgw-admin zonegroup delete --rgw-zonegroup=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-List Zone Groups
-~~~~~~~~~~~~~~~~
-
-A Ceph cluster contains a list of zone groups. To list the zone groups,
-execute:
-
-::
-
- # radosgw-admin zonegroup list
-
-The ``radosgw-admin`` returns a JSON formatted list of zone groups.
-
-::
-
- {
- "default_info": "90b28698-e7c3-462c-a42d-4aa780d24eda",
- "zonegroups": [
- "us"
- ]
- }
-
-Get a Zone Group Map
-~~~~~~~~~~~~~~~~~~~~
-
-To list the details of each zone group, execute:
-
-::
-
- # radosgw-admin zonegroup-map get
-
-.. note:: If you receive a ``failed to read zonegroup map`` error, run
- ``radosgw-admin zonegroup-map update`` as ``root`` first.
-
-Get a Zone Group
-~~~~~~~~~~~~~~~~
-
-To view the configuration of a zone group, execute:
-
-::
-
- radosgw-admin zonegroup get [--rgw-zonegroup=<zonegroup>]
-
-The zone group configuration looks like this:
-
-::
-
- {
- "id": "90b28698-e7c3-462c-a42d-4aa780d24eda",
- "name": "us",
- "api_name": "us",
- "is_master": "true",
- "endpoints": [
- "http:\/\/rgw1:80"
- ],
- "hostnames": [],
- "hostnames_s3website": [],
- "master_zone": "9248cab2-afe7-43d8-a661-a40bf316665e",
- "zones": [
- {
- "id": "9248cab2-afe7-43d8-a661-a40bf316665e",
- "name": "us-east",
- "endpoints": [
- "http:\/\/rgw1"
- ],
- "log_meta": "true",
- "log_data": "true",
- "bucket_index_max_shards": 0,
- "read_only": "false"
- },
- {
- "id": "d1024e59-7d28-49d1-8222-af101965a939",
- "name": "us-west",
- "endpoints": [
- "http:\/\/rgw2:80"
- ],
- "log_meta": "false",
- "log_data": "true",
- "bucket_index_max_shards": 0,
- "read_only": "false"
- }
- ],
- "placement_targets": [
- {
- "name": "default-placement",
- "tags": []
- }
- ],
- "default_placement": "default-placement",
- "realm_id": "ae031368-8715-4e27-9a99-0c9468852cfe"
- }
-
-Set a Zone Group
-~~~~~~~~~~~~~~~~
-
-Defining a zone group consists of creating a JSON object, specifying at
-least the required settings:
-
-1. ``name``: The name of the zone group. Required.
-
-2. ``api_name``: The API name for the zone group. Optional.
-
-3. ``is_master``: Determines if the zone group is the master zone group.
- Required. **note:** You can only have one master zone group.
-
-4. ``endpoints``: A list of all the endpoints in the zone group. For
- example, you may use multiple domain names to refer to the same zone
- group. Remember to escape the forward slashes (``\/``). You may also
- specify a port (``fqdn:port``) for each endpoint. Optional.
-
-5. ``hostnames``: A list of all the hostnames in the zone group. For
- example, you may use multiple domain names to refer to the same zone
- group. Optional. The ``rgw dns name`` setting will automatically be
- included in this list. You should restart the gateway daemon(s) after
- changing this setting.
-
-6. ``master_zone``: The master zone for the zone group. Optional. Uses
- the default zone if not specified. **note:** You can only have one
- master zone per zone group.
-
-7. ``zones``: A list of all zones within the zone group. Each zone has a
- name (required), a list of endpoints (optional), and whether or not
- the gateway will log metadata and data operations (false by default).
-
-8. ``placement_targets``: A list of placement targets (optional). Each
- placement target contains a name (required) for the placement target
- and a list of tags (optional) so that only users with the tag can use
- the placement target (i.e., the user’s ``placement_tags`` field in
- the user info).
-
-9. ``default_placement``: The default placement target for the object
- index and object data. Set to ``default-placement`` by default. You
- may also set a per-user default placement in the user info for each
- user.
-
-To set a zone group, create a JSON object consisting of the required
-fields, save the object to a file (e.g., ``zonegroup.json``); then,
-execute the following command:
-
-::
-
- # radosgw-admin zonegroup set --infile zonegroup.json
-
-Where ``zonegroup.json`` is the JSON file you created.
-
-.. important:: The ``default`` zone group ``is_master`` setting is ``true`` by
- default. If you create a new zone group and want to make it the
- master zone group, you must either set the ``default`` zone group
- ``is_master`` setting to ``false``, or delete the ``default`` zone
- group.
-
-Finally, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Set a Zone Group Map
-~~~~~~~~~~~~~~~~~~~~
-
-Setting a zone group map consists of creating a JSON object consisting
-of one or more zone groups, and setting the ``master_zonegroup`` for the
-cluster. Each zone group in the zone group map consists of a key/value
-pair, where the ``key`` setting is equivalent to the ``name`` setting
-for an individual zone group configuration, and the ``val`` is a JSON
-object consisting of an individual zone group configuration.
-
-You may only have one zone group with ``is_master`` equal to ``true``,
-and it must be specified as the ``master_zonegroup`` at the end of the
-zone group map. The following JSON object is an example of a default
-zone group map.
-
-::
-
- {
- "zonegroups": [
- {
- "key": "90b28698-e7c3-462c-a42d-4aa780d24eda",
- "val": {
- "id": "90b28698-e7c3-462c-a42d-4aa780d24eda",
- "name": "us",
- "api_name": "us",
- "is_master": "true",
- "endpoints": [
- "http:\/\/rgw1:80"
- ],
- "hostnames": [],
- "hostnames_s3website": [],
- "master_zone": "9248cab2-afe7-43d8-a661-a40bf316665e",
- "zones": [
- {
- "id": "9248cab2-afe7-43d8-a661-a40bf316665e",
- "name": "us-east",
- "endpoints": [
- "http:\/\/rgw1"
- ],
- "log_meta": "true",
- "log_data": "true",
- "bucket_index_max_shards": 0,
- "read_only": "false"
- },
- {
- "id": "d1024e59-7d28-49d1-8222-af101965a939",
- "name": "us-west",
- "endpoints": [
- "http:\/\/rgw2:80"
- ],
- "log_meta": "false",
- "log_data": "true",
- "bucket_index_max_shards": 0,
- "read_only": "false"
- }
- ],
- "placement_targets": [
- {
- "name": "default-placement",
- "tags": []
- }
- ],
- "default_placement": "default-placement",
- "realm_id": "ae031368-8715-4e27-9a99-0c9468852cfe"
- }
- }
- ],
- "master_zonegroup": "90b28698-e7c3-462c-a42d-4aa780d24eda",
- "bucket_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- },
- "user_quota": {
- "enabled": false,
- "max_size_kb": -1,
- "max_objects": -1
- }
- }
-
-To set a zone group map, execute the following:
-
-::
-
- # radosgw-admin zonegroup-map set --infile zonegroupmap.json
-
-Where ``zonegroupmap.json`` is the JSON file you created. Ensure that
-you have zones created for the ones specified in the zone group map.
-Finally, update the period.
-
-::
-
- # radosgw-admin period update --commit
-
-Zones
------
-
-Ceph Object Gateway supports the notion of zones. A zone defines a
-logical group consisting of one or more Ceph Object Gateway instances.
-
-Configuring zones differs from typical configuration procedures, because
-not all of the settings end up in a Ceph configuration file. You can
-list zones, get a zone configuration and set a zone configuration.
-
-Create a Zone
-~~~~~~~~~~~~~
-
-To create a zone, specify a zone name. If it is a master zone, specify
-the ``--master`` option. Only one zone in a zone group may be a master
-zone. To add the zone to a zonegroup, specify the ``--rgw-zonegroup``
-option with the zonegroup name.
-
-::
-
- # radosgw-admin zone create --rgw-zone=<name> \
- [--zonegroup=<zonegroup-name]\
- [--endpoints=<endpoint>[,<endpoint>] \
- [--master] [--default] \
- --access-key $SYSTEM_ACCESS_KEY --secret $SYSTEM_SECRET_KEY
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Delete a Zone
-~~~~~~~~~~~~~
-
-To delete zone, first remove it from the zonegroup.
-
-::
-
- # radosgw-admin zonegroup remove --zonegroup=<name>\
- --zone=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Next, delete the zone. Execute the following:
-
-::
-
- # radosgw-admin zone delete --rgw-zone<name>
-
-Finally, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-.. important:: Do not delete a zone without removing it from a zone group first.
- Otherwise, updating the period will fail.
-
-If the pools for the deleted zone will not be used anywhere else,
-consider deleting the pools. Replace ``<del-zone>`` in the example below
-with the deleted zone’s name.
-
-.. important:: Only delete the pools with prepended zone names. Deleting the root
- pool, such as, ``.rgw.root`` will remove all of the system’s
- configuration.
-
-.. important:: Once the pools are deleted, all of the data within them are deleted
- in an unrecoverable manner. Only delete the pools if the pool
- contents are no longer needed.
-
-::
-
- # rados rmpool <del-zone>.rgw.control <del-zone>.rgw.control --yes-i-really-really-mean-it
- # rados rmpool <del-zone>.rgw.data.root <del-zone>.rgw.data.root --yes-i-really-really-mean-it
- # rados rmpool <del-zone>.rgw.gc <del-zone>.rgw.gc --yes-i-really-really-mean-it
- # rados rmpool <del-zone>.rgw.log <del-zone>.rgw.log --yes-i-really-really-mean-it
- # rados rmpool <del-zone>.rgw.users.uid <del-zone>.rgw.users.uid --yes-i-really-really-mean-it
-
-Modify a Zone
-~~~~~~~~~~~~~
-
-To modify a zone, specify the zone name and the parameters you wish to
-modify.
-
-::
-
- # radosgw-admin zone modify [options]
-
-Where ``[options]``:
-
-- ``--access-key=<key>``
-- ``--secret/--secret-key=<key>``
-- ``--master``
-- ``--default``
-- ``--endpoints=<list>``
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-List Zones
-~~~~~~~~~~
-
-As ``root``, to list the zones in a cluster, execute:
-
-::
-
- # radosgw-admin zone list
-
-Get a Zone
-~~~~~~~~~~
-
-As ``root``, to get the configuration of a zone, execute:
-
-::
-
- # radosgw-admin zone get [--rgw-zone=<zone>]
-
-The ``default`` zone looks like this:
-
-::
-
- { "domain_root": ".rgw",
- "control_pool": ".rgw.control",
- "gc_pool": ".rgw.gc",
- "log_pool": ".log",
- "intent_log_pool": ".intent-log",
- "usage_log_pool": ".usage",
- "user_keys_pool": ".users",
- "user_email_pool": ".users.email",
- "user_swift_pool": ".users.swift",
- "user_uid_pool": ".users.uid",
- "system_key": { "access_key": "", "secret_key": ""},
- "placement_pools": [
- { "key": "default-placement",
- "val": { "index_pool": ".rgw.buckets.index",
- "data_pool": ".rgw.buckets"}
- }
- ]
- }
-
-Set a Zone
-~~~~~~~~~~
-
-Configuring a zone involves specifying a series of Ceph Object Gateway
-pools. For consistency, we recommend using a pool prefix that is the
-same as the zone name. See
-`Pools <http://docs.ceph.com/docs/master/rados/operations/pools/#pools>`__
-for details of configuring pools.
-
-To set a zone, create a JSON object consisting of the pools, save the
-object to a file (e.g., ``zone.json``); then, execute the following
-command, replacing ``{zone-name}`` with the name of the zone:
-
-::
-
- # radosgw-admin zone set --rgw-zone={zone-name} --infile zone.json
-
-Where ``zone.json`` is the JSON file you created.
-
-Then, as ``root``, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Rename a Zone
-~~~~~~~~~~~~~
-
-To rename a zone, specify the zone name and the new zone name.
-
-::
-
- # radosgw-admin zone rename --rgw-zone=<name> --zone-new-name=<name>
-
-Then, update the period:
-
-::
-
- # radosgw-admin period update --commit
-
-Zone Group and Zone Settings
-----------------------------
-
-When configuring a default zone group and zone, the pool name includes
-the zone name. For example:
-
-- ``default.rgw.control``
-
-To change the defaults, include the following settings in your Ceph
-configuration file under each ``[client.radosgw.{instance-name}]``
-instance.
-
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| Name | Description | Type | Default |
-+=====================================+===================================+=========+=======================+
-| ``rgw_zone`` | The name of the zone for the | String | None |
-| | gateway instance. | | |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| ``rgw_zonegroup`` | The name of the zone group for | String | None |
-| | the gateway instance. | | |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| ``rgw_zonegroup_root_pool`` | The root pool for the zone group. | String | ``.rgw.root`` |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| ``rgw_zone_root_pool`` | The root pool for the zone. | String | ``.rgw.root`` |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| ``rgw_default_zone_group_info_oid`` | The OID for storing the default | String | ``default.zonegroup`` |
-| | zone group. We do not recommend | | |
-| | changing this setting. | | |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-| ``rgw_num_zone_opstate_shards`` | The maximum number of shards for | Integer | ``128`` |
-| | keeping inter-zone group | | |
-| | synchronization progress. | | |
-+-------------------------------------+-----------------------------------+---------+-----------------------+
-
-
-.. _`Pools`: ../pools
diff --git a/src/ceph/doc/radosgw/multitenancy.rst b/src/ceph/doc/radosgw/multitenancy.rst
deleted file mode 100644
index 95f22d7..0000000
--- a/src/ceph/doc/radosgw/multitenancy.rst
+++ /dev/null
@@ -1,107 +0,0 @@
-=================
-RGW Multi-tenancy
-=================
-
-.. versionadded:: Jewel
-
-The multi-tenancy feature allows to use buckets and users of the same
-name simultaneously by segregating them under so-called ``tenants``.
-This may be useful, for instance, to permit users of Swift API to
-create buckets with easily conflicting names such as "test" or "trove".
-
-From the Jewel release onward, each user and bucket lies under a tenant.
-For compatibility, a "legacy" tenant with an empty name is provided.
-Whenever a bucket is referred without an explicit tenant, an implicit
-tenant is used, taken from the user performing the operation. Since
-the pre-existing users are under the legacy tenant, they continue
-to create and access buckets as before. The layout of objects in RADOS
-is extended in a compatible way, ensuring a smooth upgrade to Jewel.
-
-Administering Users With Explicit Tenants
-=========================================
-
-Tenants as such do not have any operations on them. They appear and
-and disappear as needed, when users are administered. In order to create,
-modify, and remove users with explicit tenants, either an additional
-option --tenant is supplied, or a syntax "<tenant>$<user>" is used
-in the parameters of the radosgw-admin command.
-
-Examples
---------
-
-Create a user testx$tester to be accessed with S3::
-
- # radosgw-admin --tenant testx --uid tester --display-name "Test User" --access_key TESTER --secret test123 user create
-
-Create a user testx$tester to be accessed with Swift::
-
- # radosgw-admin --tenant testx --uid tester --display-name "Test User" --subuser tester:test --key-type swift --access full user create
- # radosgw-admin --subuser 'testx$tester:test' --key-type swift --secret test123
-
-.. note:: The subuser with explicit tenant has to be quoted in the shell.
-
- Tenant names may contain only alphanumeric characters and underscores.
-
-Accessing Buckets with Explicit Tenants
-=======================================
-
-When a client application accesses buckets, it always operates with
-credentials of a particular user. As mentioned above, every user belongs
-to a tenant. Therefore, every operation has an implicit tenant in its
-context, to be used if no tenant is specified explicitly. Thus a complete
-compatibility is maintained with previous releases, as long as the
-referred buckets and referring user belong to the same tenant.
-In other words, anything unusual occurs when accessing another tenant's
-buckets *only*.
-
-Extensions employed to specify an explicit tenant differ according
-to the protocol and authentication system used.
-
-S3
---
-
-In case of S3, a colon character is used to separate tenant and bucket.
-Thus a sample URL would be::
-
- https://ep.host.dom/tenant:bucket
-
-Here's a simple Python sample:
-
-.. code-block:: python
- :linenos:
-
- from boto.s3.connection import S3Connection, OrdinaryCallingFormat
- c = S3Connection(
- aws_access_key_id="TESTER",
- aws_secret_access_key="test123",
- host="ep.host.dom",
- calling_format = OrdinaryCallingFormat())
- bucket = c.get_bucket("test5b:testbucket")
-
-Note that it's not possible to supply an explicit tenant using
-a hostname. Hostnames cannot contain colons, or any other separators
-that are not already valid in bucket names. Using a period creates an
-ambiguous syntax. Therefore, the bucket-in-URL-path format has to be
-used.
-
-Swift with built-in authenticator
----------------------------------
-
-TBD -- not in test_multen.py yet
-
-Swift with Keystone
--------------------
-
-TBD -- don't forget to explain the function of
- rgw keystone implicit tenants = true
- in commit e9259486decab52a362443d3fd3dec33b0ec654f
-
-Notes and known issues
-----------------------
-
-Just to be clear, it is not possible to create buckets in other
-tenants at present. The owner of newly created bucket is extracted
-from authentication information.
-
-This document needs examples of administration of Keystone users.
-The keystone.rst may need to be updated.
diff --git a/src/ceph/doc/radosgw/nfs.rst b/src/ceph/doc/radosgw/nfs.rst
deleted file mode 100644
index 55b88af..0000000
--- a/src/ceph/doc/radosgw/nfs.rst
+++ /dev/null
@@ -1,366 +0,0 @@
-===
-NFS
-===
-
-.. versionadded:: Jewel
-
-Ceph Object Gateway namespaces can now be exported over file-based
-access protocols such as NFSv3 and NFSv4, alongside traditional HTTP access
-protocols (S3 and Swift).
-
-In particular, the Ceph Object Gateway can now be configured to
-provide file-based access when embedded in the NFS-Ganesha NFS server.
-
-librgw
-======
-
-The librgw.so shared library (Unix) provides a loadable interface to
-Ceph Object Gateway services, and instantiates a full Ceph Object Gateway
-instance on initialization.
-
-In turn, librgw.so exports rgw_file, a stateful API for file-oriented
-access to RGW buckets and objects. The API is general, but its design
-is strongly influenced by the File System Abstraction Layer (FSAL) API
-of NFS-Ganesha, for which it has been primarily designed.
-
-A set of Python bindings is also provided.
-
-Namespace Conventions
-=====================
-
-The implementation conforms to Amazon Web Services (AWS) hierarchical
-namespace conventions which map UNIX-style path names onto S3 buckets
-and objects.
-
-The top level of the attached namespace consists of S3 buckets,
-represented as NFS directories. Files and directories subordinate to
-buckets are each represented as objects, following S3 prefix and
-delimiter conventions, with '/' being the only supported path
-delimiter [#]_.
-
-For example, if an NFS client has mounted an RGW namespace at "/nfs",
-then a file "/nfs/mybucket/www/index.html" in the NFS namespace
-corresponds to an RGW object "www/index.html" in a bucket/container
-"mybucket."
-
-Although it is generally invisible to clients, the NFS namespace is
-assembled through concatenation of the corresponding paths implied by
-the objects in the namespace. Leaf objects, whether files or
-directories, will always be materialized in an RGW object of the
-corresponding key name, "<name>" if a file, "<name>/" if a directory.
-Non-leaf directories (e.g., "www" above) might only be implied by
-their appearance in the names of one or more leaf objects. Directories
-created within NFS or directly operated on by an NFS client (e.g., via
-an attribute-setting operation such as chown or chmod) always have a
-leaf object representation used to store materialized attributes such
-as Unix ownership and permissions.
-
-Supported Operations
-====================
-
-The RGW NFS interface supports most operations on files and
-directories, with the following restrictions:
-
-- Links, including symlinks, are not supported
-- NFS ACLs are not supported
-
- + Unix user and group ownership and permissions *are* supported
-
-- Directories may not be moved/renamed
-
- + files may be moved between directories
-
-- Only full, sequential *write* i/o is supported
-
- + i.e., write operations are constrained to be **uploads**
- + many typical i/o operations such as editing files in place will necessarily fail as they perform non-sequential stores
- + some file utilities *apparently* writing sequentially (e.g., some versions of GNU tar) may fail due to infrequent non-sequential stores
- + When mounting via NFS, sequential application i/o can generally be constrained to be written sequentially to the NFS server via a synchronous mount option (e.g. -osync in Linux)
- + NFS clients which cannot mount synchronously (e.g., MS Windows) will not be able to upload files
-
-Security
-========
-
-The RGW NFS interface provides a hybrid security model with the
-following characteristics:
-
-- NFS protocol security is provided by the NFS-Ganesha server, as negotiated by the NFS server and clients
-
- + e.g., clients can by trusted (AUTH_SYS), or required to present Kerberos user credentials (RPCSEC_GSS)
- + RPCSEC_GSS wire security can be integrity only (krb5i) or integrity and privacy (encryption, krb5p)
- + various NFS-specific security and permission rules are available
-
- * e.g., root-squashing
-
-- a set of RGW/S3 security credentials (unknown to NFS) is associated with each RGW NFS mount (i.e., NFS-Ganesha EXPORT)
-
- + all RGW object operations performed via the NFS server will be performed by the RGW user associated with the credentials stored in the export being accessed (currently only RGW and RGW LDAP credentials are supported)
-
- * additional RGW authentication types such as Keystone are not currently supported
-
-Configuring an NFS-Ganesha Instance
-===================================
-
-Each NFS RGW instance is an NFS-Ganesha server instance *embeddding*
-a full Ceph RGW instance.
-
-Therefore, the RGW NFS configuration includes Ceph and Ceph Object
-Gateway-specific configuration in a local ceph.conf, as well as
-NFS-Ganesha-specific configuration in the NFS-Ganesha config file,
-ganesha.conf.
-
-ceph.conf
----------
-
-Required ceph.conf configuration for RGW NFS includes:
-
-* valid [client.radosgw.{instance-name}] section
-* valid values for minimal instance configuration, in particular, an installed and correct ``keyring``
-
-Other config variables are optional, front-end-specific and front-end
-selection variables (e.g., ``rgw data`` and ``rgw frontends``) are
-optional and in some cases ignored.
-
-A small number of config variables (e.g., ``rgw_namespace_expire_secs``)
-are unique to RGW NFS.
-
-ganesha.conf
-------------
-
-A strictly minimal ganesha.conf for use with RGW NFS includes one
-EXPORT block with embedded FSAL block of type RGW::
-
- EXPORT
- {
- Export_ID={numeric-id};
- Path = "/";
- Pseudo = "/";
- Access_Type = RW;
- SecType = "sys";
- NFS_Protocols = 4;
- Transport_Protocols = TCP;
-
- # optional, permit unsquashed access by client "root" user
- #Squash = No_Root_Squash;
-
- FSAL {
- Name = RGW;
- User_Id = {s3-user-id};
- Access_Key_Id ="{s3-access-key}";
- Secret_Access_Key = "{s3-secret}";
- }
- }
-
-``Export_ID`` must have an integer value, e.g., "77"
-
-``Path`` (for RGW) should be "/"
-
-``Pseudo`` defines an NFSv4 pseudo root name (NFSv4 only)
-
-``SecType = sys;`` allows clients to attach without Kerberos
-authentication
-
-``Squash = No_Root_Squash;`` enables the client root user to override
-permissions (Unix convention). When root-squashing is enabled,
-operations attempted by the root user are performed as if by the local
-"nobody" (and "nogroup") user on the NFS-Ganesha server
-
-The RGW FSAL additionally supports RGW-specific configuration
-variables in the RGW config section::
-
- RGW {
- cluster = "{cluster name, default 'ceph'}";
- name = "client.rgw.{instance-name}";
- ceph_conf = "/opt/ceph-rgw/etc/ceph/ceph.conf";
- init_args = "-d --debug-rgw=16";
- }
-
-``cluster`` sets a Ceph cluster name (must match the cluster being exported)
-
-``name`` sets an RGW instance name (must match the cluster being exported)
-
-``ceph_conf`` gives a path to a non-default ceph.conf file to use
-
-
-Other useful NFS-Ganesha configuration:
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Any EXPORT block which should support NFSv3 should include version 3
-in the NFS_Protocols setting. Additionally, NFSv3 is the last major
-version to support the UDP transport. To enable UDP, include it in the
-Transport_Protocols setting. For example::
-
- EXPORT {
- ...
- NFS_Protocols = 3,4;
- Transport_Protocols = UDP,TCP;
- ...
- }
-
-One important family of options pertains to interaction with the Linux
-idmapping service, which is used to normalize user and group names
-across systems. Details of idmapper integration are not provided here.
-
-With Linux NFS clients, NFS-Ganesha can be configured
-to accept client-supplied numeric user and group identifiers with
-NFSv4, which by default stringifies these--this may be useful in small
-setups and for experimentation::
-
- NFSV4 {
- Allow_Numeric_Owners = true;
- Only_Numeric_Owners = true;
- }
-
-Troubleshooting
-~~~~~~~~~~~~~~~
-
-NFS-Ganesha configuration problems are usually debugged by running the
-server with debugging options, controlled by the LOG config section.
-
-NFS-Ganesha log messages are grouped into various components, logging
-can be enabled separately for each component. Valid values for
-component logging include::
-
- *FATAL* critical errors only
- *WARN* unusual condition
- *DEBUG* mildly verbose trace output
- *FULL_DEBUG* verbose trace output
-
-Example::
-
- LOG {
-
- Components {
- MEMLEAKS = FATAL;
- FSAL = FATAL;
- NFSPROTO = FATAL;
- NFS_V4 = FATAL;
- EXPORT = FATAL;
- FILEHANDLE = FATAL;
- DISPATCH = FATAL;
- CACHE_INODE = FATAL;
- CACHE_INODE_LRU = FATAL;
- HASHTABLE = FATAL;
- HASHTABLE_CACHE = FATAL;
- DUPREQ = FATAL;
- INIT = DEBUG;
- MAIN = DEBUG;
- IDMAPPER = FATAL;
- NFS_READDIR = FATAL;
- NFS_V4_LOCK = FATAL;
- CONFIG = FATAL;
- CLIENTID = FATAL;
- SESSIONS = FATAL;
- PNFS = FATAL;
- RW_LOCK = FATAL;
- NLM = FATAL;
- RPC = FATAL;
- NFS_CB = FATAL;
- THREAD = FATAL;
- NFS_V4_ACL = FATAL;
- STATE = FATAL;
- FSAL_UP = FATAL;
- DBUS = FATAL;
- }
- # optional: redirect log output
- # Facility {
- # name = FILE;
- # destination = "/tmp/ganesha-rgw.log";
- # enable = active;
- }
- }
-
-Running Multiple NFS Gateways
-=============================
-
-Each NFS-Ganesha instance acts as a full gateway endpoint, with the
-limitation that currently an NFS-Ganesha instance cannot be configured
-to export HTTP services. As with ordinary gateway instances, any
-number of NFS-Ganesha instances can be started, exporting the same or
-different resources from the cluster. This enables the clustering of
-NFS-Ganesha instances. However, this does not imply high availability.
-
-When regular gateway instances and NFS-Ganesha instances overlap the
-same data resources, they will be accessible from both the standard S3
-API and through the NFS-Ganesha instance as exported. You can
-co-locate the NFS-Ganesha instance with a Ceph Object Gateway instance
-on the same host.
-
-RGW vs RGW NFS
-==============
-
-Exporting an NFS namespace and other RGW namespaces (e.g., S3 or Swift
-via the Civetweb HTTP front-end) from the same program instance is
-currently not supported.
-
-When adding objects and buckets outside of NFS, those objects will
-appear in the NFS namespace in the time set by
-``rgw_nfs_namespace_expire_secs``, which defaults to 300 seconds (5 minutes).
-Override the default value for ``rgw_nfs_namespace_expire_secs`` in the
-Ceph configuration file to change the refresh rate.
-
-If exporting Swift containers that do not conform to valid S3 bucket
-naming requirements, set ``rgw_relaxed_s3_bucket_names`` to true in the
-[client.radosgw] section of the Ceph configuration file. For example,
-if a Swift container name contains underscores, it is not a valid S3
-bucket name and will be rejected unless ``rgw_relaxed_s3_bucket_names``
-is set to true.
-
-Configuring NFSv4 clients
-=========================
-
-To access the namespace, mount the configured NFS-Ganesha export(s)
-into desired locations in the local POSIX namespace. As noted, this
-implementation has a few unique restrictions:
-
-- NFS 4.1 and higher protocol flavors are preferred
-
- + NFSv4 OPEN and CLOSE operations are used to track upload transactions
-
-- To upload data successfully, clients must preserve write ordering
-
- + on Linux and many Unix NFS clients, use the -osync mount option
-
-Conventions for mounting NFS resources are platform-specific. The
-following conventions work on Linux and some Unix platforms:
-
-From the command line::
-
- mount -t nfs -o nfsvers=4,noauto,soft,proto=tcp <ganesha-host-name>:/ <mount-point>
-
-In /etc/fstab::
-
-<ganesha-host-name>:/ <mount-point> nfs noauto,soft,nfsvers=4.1,sync,proto=tcp 0 0
-
-Specify the NFS-Ganesha host name and the path to the mount point on
-the client.
-
-Configuring NFSv3 Clients
-=========================
-
-Linux clients can be configured to mount with NFSv3 by supplying
-``nfsvers=3`` and ``noacl`` as mount options. To use UDP as the
-transport, add ``proto=udp`` to the mount options. However, TCP is the
-preferred transport::
-
- <ganesha-host-name>:/ <mount-point> nfs noauto,noacl,soft,nfsvers=3,sync,proto=tcp 0 0
-
-Configure the NFS Ganesha EXPORT block Protocols setting with version
-3 and the Transports setting with UDP if the mount will use version 3 with UDP.
-
-NFSv3 Semantics
----------------
-
-Since NFSv3 does not communicate client OPEN and CLOSE operations to
-file servers, RGW NFS cannot use these operations to mark the
-beginning and ending of file upload transactions. Instead, RGW NFS
-starts a new upload when the first write is sent to a file at offset
-0, and finalizes the upload when no new writes to the file have been
-seen for a period of time, by default, 10 seconds. To change this
-timeout, set an alternate value for ``rgw_nfs_write_completion_interval_s``
-in the RGW section(s) of the Ceph configuration file.
-
-References
-==========
-
-.. [#] http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html
diff --git a/src/ceph/doc/radosgw/pools.rst b/src/ceph/doc/radosgw/pools.rst
deleted file mode 100644
index 2d88a3c..0000000
--- a/src/ceph/doc/radosgw/pools.rst
+++ /dev/null
@@ -1,55 +0,0 @@
-=====
-Pools
-=====
-
-The Ceph Object Gateway uses several pools for its various storage needs,
-which are listed in the Zone object (see ``radosgw-admin zone get``). A
-single zone named ``default`` is created automatically with pool names
-starting with ``default.rgw.``, but a `Multisite Configuration`_ will have
-multiple zones.
-
-Tuning
-======
-
-When ``radosgw`` first tries to operate on a zone pool that does not
-exist, it will create that pool with the default values from
-``osd pool default pg num`` and ``osd pool default pgp num``. These defaults
-are sufficient for some pools, but others (especially those listed in
-``placement_pools`` for the bucket index and data) will require additional
-tuning. We recommend using the `Ceph Placement Group’s per Pool
-Calculator <http://ceph.com/pgcalc/>`__ to calculate a suitable number of
-placement groups for these pools. See
-`Pools <http://docs.ceph.com/docs/master/rados/operations/pools/#pools>`__
-for details on pool creation.
-
-Pool Namespaces
-===============
-
-.. versionadded:: Luminous
-
-Pool names particular to a zone follow the naming convention
-``{zone-name}.pool-name``. For example, a zone named ``us-east`` will
-have the following pools:
-
-- ``.rgw.root``
-
-- ``us-east.rgw.control``
-
-- ``us-east.rgw.meta``
-
-- ``us-east.rgw.log``
-
-- ``us-east.rgw.buckets.index``
-
-- ``us-east.rgw.buckets.data``
-
-The zone definitions list several more pools than that, but many of those
-are consolidated through the use of rados namespaces. For example, all of
-the following pool entries use namespaces of the ``us-east.rgw.meta`` pool::
-
- "user_keys_pool": "us-east.rgw.meta:users.keys",
- "user_email_pool": "us-east.rgw.meta:users.email",
- "user_swift_pool": "us-east.rgw.meta:users.swift",
- "user_uid_pool": "us-east.rgw.meta:users.uid",
-
-.. _`Multisite Configuration`: ../multisite
diff --git a/src/ceph/doc/radosgw/s3.rst b/src/ceph/doc/radosgw/s3.rst
deleted file mode 100644
index 56c837a..0000000
--- a/src/ceph/doc/radosgw/s3.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-============================
- Ceph Object Gateway S3 API
-============================
-
-Ceph supports a RESTful API that is compatible with the basic data access model of the `Amazon S3 API`_.
-
-API
----
-
-.. toctree::
- :maxdepth: 1
-
- Common <s3/commons>
- Authentication <s3/authentication>
- Service Ops <s3/serviceops>
- Bucket Ops <s3/bucketops>
- Object Ops <s3/objectops>
- C++ <s3/cpp>
- C# <s3/csharp>
- Java <s3/java>
- Perl <s3/perl>
- PHP <s3/php>
- Python <s3/python>
- Ruby <s3/ruby>
-
-
-Features Support
-----------------
-
-The following table describes the support status for current Amazon S3 functional features:
-
-+---------------------------------+-----------------+----------------------------------------+
-| Feature | Status | Remarks |
-+=================================+=================+========================================+
-| **List Buckets** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Delete Bucket** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Create Bucket** | Supported | Different set of canned ACLs |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Lifecycle** | Supported | Removing expired files is supported |
-+---------------------------------+-----------------+----------------------------------------+
-| **Policy (Buckets, Objects)** | Not Supported | ACLs are supported |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Website** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket ACLs (Get, Put)** | Supported | Different set of canned ACLs |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Location** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Notification** | Not Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Object Versions** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Bucket Info (HEAD)** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Bucket Request Payment** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Put Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Delete Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Object ACLs (Get, Put)** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Object Info (HEAD)** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **POST Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Copy Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Multipart Uploads** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-
-Unsupported Header Fields
--------------------------
-
-The following common request header fields are not supported:
-
-+----------------------------+------------+
-| Name | Type |
-+============================+============+
-| **x-amz-security-token** | Request |
-+----------------------------+------------+
-| **Server** | Response |
-+----------------------------+------------+
-| **x-amz-delete-marker** | Response |
-+----------------------------+------------+
-| **x-amz-id-2** | Response |
-+----------------------------+------------+
-| **x-amz-version-id** | Response |
-+----------------------------+------------+
-
-.. _Amazon S3 API: http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html
diff --git a/src/ceph/doc/radosgw/s3/authentication.rst b/src/ceph/doc/radosgw/s3/authentication.rst
deleted file mode 100644
index b187538..0000000
--- a/src/ceph/doc/radosgw/s3/authentication.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-=========================
- Authentication and ACLs
-=========================
-
-Requests to the RADOS Gateway (RGW) can be either authenticated or
-unauthenticated. RGW assumes unauthenticated requests are sent by an anonymous
-user. RGW supports canned ACLs.
-
-Authentication
---------------
-Authenticating a request requires including an access key and a Hash-based
-Message Authentication Code (HMAC) in the request before it is sent to the
-RGW server. RGW uses an S3-compatible authentication approach.
-
-::
-
- HTTP/1.1
- PUT /buckets/bucket/object.mpeg
- Host: cname.domain.com
- Date: Mon, 2 Jan 2012 00:01:01 +0000
- Content-Encoding: mpeg
- Content-Length: 9999999
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-In the foregoing example, replace ``{access-key}`` with the value for your access
-key ID followed by a colon (``:``). Replace ``{hash-of-header-and-secret}`` with
-a hash of the header string and the secret corresponding to the access key ID.
-
-To generate the hash of the header string and secret, you must:
-
-#. Get the value of the header string.
-#. Normalize the request header string into canonical form.
-#. Generate an HMAC using a SHA-1 hashing algorithm.
- See `RFC 2104`_ and `HMAC`_ for details.
-#. Encode the ``hmac`` result as base-64.
-
-To normalize the header into canonical form:
-
-#. Get all fields beginning with ``x-amz-``.
-#. Ensure that the fields are all lowercase.
-#. Sort the fields lexicographically.
-#. Combine multiple instances of the same field name into a
- single field and separate the field values with a comma.
-#. Replace white space and line breaks in field values with a single space.
-#. Remove white space before and after colons.
-#. Append a new line after each field.
-#. Merge the fields back into the header.
-
-Replace the ``{hash-of-header-and-secret}`` with the base-64 encoded HMAC string.
-
-Access Control Lists (ACLs)
----------------------------
-
-RGW supports S3-compatible ACL functionality. An ACL is a list of access grants
-that specify which operations a user can perform on a bucket or on an object.
-Each grant has a different meaning when applied to a bucket versus applied to
-an object:
-
-+------------------+--------------------------------------------------------+----------------------------------------------+
-| Permission | Bucket | Object |
-+==================+========================================================+==============================================+
-| ``READ`` | Grantee can list the objects in the bucket. | Grantee can read the object. |
-+------------------+--------------------------------------------------------+----------------------------------------------+
-| ``WRITE`` | Grantee can write or delete objects in the bucket. | N/A |
-+------------------+--------------------------------------------------------+----------------------------------------------+
-| ``READ_ACP`` | Grantee can read bucket ACL. | Grantee can read the object ACL. |
-+------------------+--------------------------------------------------------+----------------------------------------------+
-| ``WRITE_ACP`` | Grantee can write bucket ACL. | Grantee can write to the object ACL. |
-+------------------+--------------------------------------------------------+----------------------------------------------+
-| ``FULL_CONTROL`` | Grantee has full permissions for object in the bucket. | Grantee can read or write to the object ACL. |
-+------------------+--------------------------------------------------------+----------------------------------------------+
-
-.. _RFC 2104: http://www.ietf.org/rfc/rfc2104.txt
-.. _HMAC: http://en.wikipedia.org/wiki/HMAC
diff --git a/src/ceph/doc/radosgw/s3/bucketops.rst b/src/ceph/doc/radosgw/s3/bucketops.rst
deleted file mode 100644
index c7cd5b4..0000000
--- a/src/ceph/doc/radosgw/s3/bucketops.rst
+++ /dev/null
@@ -1,377 +0,0 @@
-===================
- Bucket Operations
-===================
-
-PUT Bucket
-----------
-Creates a new bucket. To create a bucket, you must have a user ID and a valid AWS Access Key ID to authenticate requests. You may not
-create buckets as an anonymous user.
-
-.. note:: We do not support request entities for ``PUT /{bucket}`` in this release.
-
-Constraints
-~~~~~~~~~~~
-In general, bucket names should follow domain name constraints.
-
-- Bucket names must be unique.
-- Bucket names must begin and end with a lowercase letter.
-- Bucket names may contain a dash (-).
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{bucket} HTTP/1.1
- Host: cname.domain.com
- x-amz-acl: public-read-write
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-Parameters
-~~~~~~~~~~
-
-+---------------+----------------------+-----------------------------------------------------------------------------+------------+
-| Name | Description | Valid Values | Required |
-+===============+======================+=============================================================================+============+
-| ``x-amz-acl`` | Canned ACLs. | ``private``, ``public-read``, ``public-read-write``, ``authenticated-read`` | No |
-+---------------+----------------------+-----------------------------------------------------------------------------+------------+
-
-
-
-HTTP Response
-~~~~~~~~~~~~~
-
-If the bucket name is unique, within constraints and unused, the operation will succeed.
-If a bucket with the same name already exists and the user is the bucket owner, the operation will succeed.
-If the bucket name is already in use, the operation will fail.
-
-+---------------+-----------------------+----------------------------------------------------------+
-| HTTP Status | Status Code | Description |
-+===============+=======================+==========================================================+
-| ``409`` | BucketAlreadyExists | Bucket already exists under different user's ownership. |
-+---------------+-----------------------+----------------------------------------------------------+
-
-DELETE Bucket
--------------
-
-Deletes a bucket. You can reuse bucket names following a successful bucket removal.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{bucket} HTTP/1.1
- Host: cname.domain.com
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-HTTP Response
-~~~~~~~~~~~~~
-
-+---------------+---------------+------------------+
-| HTTP Status | Status Code | Description |
-+===============+===============+==================+
-| ``204`` | No Content | Bucket removed. |
-+---------------+---------------+------------------+
-
-GET Bucket
-----------
-Returns a list of bucket objects.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{bucket}?max-keys=25 HTTP/1.1
- Host: cname.domain.com
-
-Parameters
-~~~~~~~~~~
-
-+-----------------+-----------+-----------------------------------------------------------------------+
-| Name | Type | Description |
-+=================+===========+=======================================================================+
-| ``prefix`` | String | Only returns objects that contain the specified prefix. |
-+-----------------+-----------+-----------------------------------------------------------------------+
-| ``delimiter`` | String | The delimiter between the prefix and the rest of the object name. |
-+-----------------+-----------+-----------------------------------------------------------------------+
-| ``marker`` | String | A beginning index for the list of objects returned. |
-+-----------------+-----------+-----------------------------------------------------------------------+
-| ``max-keys`` | Integer | The maximum number of keys to return. Default is 1000. |
-+-----------------+-----------+-----------------------------------------------------------------------+
-
-
-HTTP Response
-~~~~~~~~~~~~~
-
-+---------------+---------------+--------------------+
-| HTTP Status | Status Code | Description |
-+===============+===============+====================+
-| ``200`` | OK | Buckets retrieved |
-+---------------+---------------+--------------------+
-
-Bucket Response Entities
-~~~~~~~~~~~~~~~~~~~~~~~~
-``GET /{bucket}`` returns a container for buckets with the following fields.
-
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| Name | Type | Description |
-+========================+===========+==================================================================================+
-| ``ListBucketResult`` | Entity | The container for the list of objects. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``Name`` | String | The name of the bucket whose contents will be returned. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``Prefix`` | String | A prefix for the object keys. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``Marker`` | String | A beginning index for the list of objects returned. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``MaxKeys`` | Integer | The maximum number of keys returned. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``Delimiter`` | String | If set, objects with the same prefix will appear in the ``CommonPrefixes`` list. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``IsTruncated`` | Boolean | If ``true``, only a subset of the bucket's contents were returned. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-| ``CommonPrefixes`` | Container | If multiple objects contain the same prefix, they will appear in this list. |
-+------------------------+-----------+----------------------------------------------------------------------------------+
-
-Object Response Entities
-~~~~~~~~~~~~~~~~~~~~~~~~
-The ``ListBucketResult`` contains objects, where each object is within a ``Contents`` container.
-
-+------------------------+-----------+------------------------------------------+
-| Name | Type | Description |
-+========================+===========+==========================================+
-| ``Contents`` | Object | A container for the object. |
-+------------------------+-----------+------------------------------------------+
-| ``Key`` | String | The object's key. |
-+------------------------+-----------+------------------------------------------+
-| ``LastModified`` | Date | The object's last-modified date/time. |
-+------------------------+-----------+------------------------------------------+
-| ``ETag`` | String | An MD-5 hash of the object. (entity tag) |
-+------------------------+-----------+------------------------------------------+
-| ``Size`` | Integer | The object's size. |
-+------------------------+-----------+------------------------------------------+
-| ``StorageClass`` | String | Should always return ``STANDARD``. |
-+------------------------+-----------+------------------------------------------+
-
-Get Bucket Location
--------------------
-Retrieves the bucket's region. The user needs to be the bucket owner
-to call this. A bucket can be constrained to a region by providing
-``LocationConstraint`` during a PUT request.
-
-Syntax
-~~~~~~
-Add the ``location`` subresource to bucket resource as shown below
-
-::
-
- GET /{bucket}?location HTTP/1.1
- Host: cname.domain.com
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-Response Entities
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-+------------------------+-----------+------------------------------------------+
-| Name | Type | Description |
-+========================+===========+==========================================+
-| ``LocationConstraint`` | String | The region where bucket resides, empty |
-| | | string for defult region |
-+------------------------+-----------+------------------------------------------+
-
-
-
-Get Bucket ACL
---------------
-Retrieves the bucket access control list. The user needs to be the bucket
-owner or to have been granted ``READ_ACP`` permission on the bucket.
-
-Syntax
-~~~~~~
-Add the ``acl`` subresource to the bucket request as shown below.
-
-::
-
- GET /{bucket}?acl HTTP/1.1
- Host: cname.domain.com
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+===========================+=============+==============================================================================================+
-| ``AccessControlPolicy`` | Container | A container for the response. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``AccessControlList`` | Container | A container for the ACL information. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the bucket owner's ``ID`` and ``DisplayName``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``ID`` | String | The bucket owner's ID. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The bucket owner's display name. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grant`` | Container | A container for ``Grantee`` and ``Permission``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grantee`` | Container | A container for the ``DisplayName`` and ``ID`` of the user receiving a grant of permission. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Permission`` | String | The permission given to the ``Grantee`` bucket. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-
-PUT Bucket ACL
---------------
-Sets an access control to an existing bucket. The user needs to be the bucket
-owner or to have been granted ``WRITE_ACP`` permission on the bucket.
-
-Syntax
-~~~~~~
-Add the ``acl`` subresource to the bucket request as shown below.
-
-::
-
- PUT /{bucket}?acl HTTP/1.1
-
-Request Entities
-~~~~~~~~~~~~~~~~
-
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+===========================+=============+==============================================================================================+
-| ``AccessControlPolicy`` | Container | A container for the request. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``AccessControlList`` | Container | A container for the ACL information. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the bucket owner's ``ID`` and ``DisplayName``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``ID`` | String | The bucket owner's ID. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The bucket owner's display name. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grant`` | Container | A container for ``Grantee`` and ``Permission``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grantee`` | Container | A container for the ``DisplayName`` and ``ID`` of the user receiving a grant of permission. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Permission`` | String | The permission given to the ``Grantee`` bucket. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-
-List Bucket Multipart Uploads
------------------------------
-
-``GET /?uploads`` returns a list of the current in-progress multipart uploads--i.e., the application initiates a multipart upload, but
-the service hasn't completed all the uploads yet.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{bucket}?uploads HTTP/1.1
-
-Parameters
-~~~~~~~~~~
-
-You may specify parameters for ``GET /{bucket}?uploads``, but none of them are required.
-
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+========================+===========+======================================================================================+
-| ``prefix`` | String | Returns in-progress uploads whose keys contains the specified prefix. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| ``delimiter`` | String | The delimiter between the prefix and the rest of the object name. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| ``key-marker`` | String | The beginning marker for the list of uploads. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| ``max-keys`` | Integer | The maximum number of in-progress uploads. The default is 1000. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| ``max-uploads`` | Integer | The maximum number of multipart uploads. The range from 1-1000. The default is 1000. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-| ``upload-id-marker`` | String | Ignored if ``key-marker`` is not specified. Specifies the ``ID`` of first |
-| | | upload to list in lexicographical order at or following the ``ID``. |
-+------------------------+-----------+--------------------------------------------------------------------------------------+
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+=========================================+=============+==========================================================================================================+
-| ``ListMultipartUploadsResult`` | Container | A container for the results. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``ListMultipartUploadsResult.Prefix`` | String | The prefix specified by the ``prefix`` request parameter (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Bucket`` | String | The bucket that will receive the bucket contents. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``KeyMarker`` | String | The key marker specified by the ``key-marker`` request parameter (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``UploadIdMarker`` | String | The marker specified by the ``upload-id-marker`` request parameter (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``NextKeyMarker`` | String | The key marker to use in a subsequent request if ``IsTruncated`` is ``true``. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``NextUploadIdMarker`` | String | The upload ID marker to use in a subsequent request if ``IsTruncated`` is ``true``. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``MaxUploads`` | Integer | The max uploads specified by the ``max-uploads`` request parameter. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Delimiter`` | String | If set, objects with the same prefix will appear in the ``CommonPrefixes`` list. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``IsTruncated`` | Boolean | If ``true``, only a subset of the bucket's upload contents were returned. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Upload`` | Container | A container for ``Key``, ``UploadId``, ``InitiatorOwner``, ``StorageClass``, and ``Initiated`` elements. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Key`` | String | The key of the object once the multipart upload is complete. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``UploadId`` | String | The ``ID`` that identifies the multipart upload. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Initiator`` | Container | Contains the ``ID`` and ``DisplayName`` of the user who initiated the upload. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The initiator's display name. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``ID`` | String | The initiator's ID. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the ``ID`` and ``DisplayName`` of the user who owns the uploaded object. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``StorageClass`` | String | The method used to store the resulting object. ``STANDARD`` or ``REDUCED_REDUNDANCY`` |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Initiated`` | Date | The date and time the user initiated the upload. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``CommonPrefixes`` | Container | If multiple objects contain the same prefix, they will appear in this list. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``CommonPrefixes.Prefix`` | String | The substring of the key after the prefix as defined by the ``prefix`` request parameter. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-
-ENABLE/SUSPEND BUCKET VERSIONING
---------------------------------
-
-``PUT /?versioning`` This subresource set the versioning state of an existing bucket. To set the versioning state, you must be the bucket owner.
-
-You can set the versioning state with one of the following values:
-
-- Enabled : Enables versioning for the objects in the bucket, All objects added to the bucket receive a unique version ID.
-- Suspended : Disables versioning for the objects in the bucket, All objects added to the bucket receive the version ID null.
-
-If the versioning state has never been set on a bucket, it has no versioning state; a GET versioning request does not return a versioning state value.
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{bucket}?versioning HTTP/1.1
-
-REQUEST ENTITIES
-~~~~~~~~~~~~~~~~
-
-+-----------------------------+-----------+---------------------------------------------------------------------------+
-| Name | Type | Description |
-+=============================+===========+===========================================================================+
-| ``VersioningConfiguration`` | Container | A container for the request. |
-+-----------------------------+-----------+---------------------------------------------------------------------------+
-| ``Status`` | String | Sets the versioning state of the bucket. Valid Values: Suspended/Enabled |
-+-----------------------------+-----------+---------------------------------------------------------------------------+
diff --git a/src/ceph/doc/radosgw/s3/commons.rst b/src/ceph/doc/radosgw/s3/commons.rst
deleted file mode 100644
index ca848bc..0000000
--- a/src/ceph/doc/radosgw/s3/commons.rst
+++ /dev/null
@@ -1,111 +0,0 @@
-=================
- Common Entities
-=================
-
-.. toctree::
- :maxdepth: -1
-
-Bucket and Host Name
---------------------
-There are two different modes of accessing the buckets. The first (preferred) method
-identifies the bucket as the top-level directory in the URI. ::
-
- GET /mybucket HTTP/1.1
- Host: cname.domain.com
-
-The second method identifies the bucket via a virtual bucket host name. For example::
-
- GET / HTTP/1.1
- Host: mybucket.cname.domain.com
-
-To configure virtual hosted buckets, you can either set ``rgw_dns_name = cname.domain.com`` in ceph.conf, or add ``cname.domain.com`` to the list of ``hostnames`` in your zonegroup configuration. See `Ceph Object Gateway - Multisite Configuration`_ for more on zonegroups.
-
-.. tip:: We prefer the first method, because the second method requires expensive domain certification and DNS wild cards.
-
-Common Request Headers
-----------------------
-
-+--------------------+------------------------------------------+
-| Request Header | Description |
-+====================+==========================================+
-| ``CONTENT_LENGTH`` | Length of the request body. |
-+--------------------+------------------------------------------+
-| ``DATE`` | Request time and date (in UTC). |
-+--------------------+------------------------------------------+
-| ``HOST`` | The name of the host server. |
-+--------------------+------------------------------------------+
-| ``AUTHORIZATION`` | Authorization token. |
-+--------------------+------------------------------------------+
-
-Common Response Status
-----------------------
-
-+---------------+-----------------------------------+
-| HTTP Status | Response Code |
-+===============+===================================+
-| ``100`` | Continue |
-+---------------+-----------------------------------+
-| ``200`` | Success |
-+---------------+-----------------------------------+
-| ``201`` | Created |
-+---------------+-----------------------------------+
-| ``202`` | Accepted |
-+---------------+-----------------------------------+
-| ``204`` | NoContent |
-+---------------+-----------------------------------+
-| ``206`` | Partial content |
-+---------------+-----------------------------------+
-| ``304`` | NotModified |
-+---------------+-----------------------------------+
-| ``400`` | InvalidArgument |
-+---------------+-----------------------------------+
-| ``400`` | InvalidDigest |
-+---------------+-----------------------------------+
-| ``400`` | BadDigest |
-+---------------+-----------------------------------+
-| ``400`` | InvalidBucketName |
-+---------------+-----------------------------------+
-| ``400`` | InvalidObjectName |
-+---------------+-----------------------------------+
-| ``400`` | UnresolvableGrantByEmailAddress |
-+---------------+-----------------------------------+
-| ``400`` | InvalidPart |
-+---------------+-----------------------------------+
-| ``400`` | InvalidPartOrder |
-+---------------+-----------------------------------+
-| ``400`` | RequestTimeout |
-+---------------+-----------------------------------+
-| ``400`` | EntityTooLarge |
-+---------------+-----------------------------------+
-| ``403`` | AccessDenied |
-+---------------+-----------------------------------+
-| ``403`` | UserSuspended |
-+---------------+-----------------------------------+
-| ``403`` | RequestTimeTooSkewed |
-+---------------+-----------------------------------+
-| ``404`` | NoSuchKey |
-+---------------+-----------------------------------+
-| ``404`` | NoSuchBucket |
-+---------------+-----------------------------------+
-| ``404`` | NoSuchUpload |
-+---------------+-----------------------------------+
-| ``405`` | MethodNotAllowed |
-+---------------+-----------------------------------+
-| ``408`` | RequestTimeout |
-+---------------+-----------------------------------+
-| ``409`` | BucketAlreadyExists |
-+---------------+-----------------------------------+
-| ``409`` | BucketNotEmpty |
-+---------------+-----------------------------------+
-| ``411`` | MissingContentLength |
-+---------------+-----------------------------------+
-| ``412`` | PreconditionFailed |
-+---------------+-----------------------------------+
-| ``416`` | InvalidRange |
-+---------------+-----------------------------------+
-| ``422`` | UnprocessableEntity |
-+---------------+-----------------------------------+
-| ``500`` | InternalError |
-+---------------+-----------------------------------+
-
-.. _`Ceph Object Gateway - Multisite Configuration`: ../../multisite
diff --git a/src/ceph/doc/radosgw/s3/cpp.rst b/src/ceph/doc/radosgw/s3/cpp.rst
deleted file mode 100644
index 3451aeb..0000000
--- a/src/ceph/doc/radosgw/s3/cpp.rst
+++ /dev/null
@@ -1,331 +0,0 @@
-.. _cpp:
-
-C++ S3 Examples
-===============
-
-Setup
------
-
-The following contains includes and globals that will be used in later examples:
-
-.. code-block:: cpp
-
- #include "libs3.h"
- #include <stdlib.h>
- #include <iostream>
- #include <fstream>
-
- const char access_key[] = "ACCESS_KEY";
- const char secret_key[] = "SECRET_KEY";
- const char host[] = "HOST";
- const char sample_bucket[] = "sample_bucket";
- const char sample_key[] = "hello.txt";
- const char sample_file[] = "resource/hello.txt";
-
- S3BucketContext bucketContext =
- {
- host,
- sample_bucket,
- S3ProtocolHTTP,
- S3UriStylePath,
- access_key,
- secret_key
- };
-
- S3Status responsePropertiesCallback(
- const S3ResponseProperties *properties,
- void *callbackData)
- {
- return S3StatusOK;
- }
-
- static void responseCompleteCallback(
- S3Status status,
- const S3ErrorDetails *error,
- void *callbackData)
- {
- return;
- }
-
- S3ResponseHandler responseHandler =
- {
- &responsePropertiesCallback,
- &responseCompleteCallback
- };
-
-
-Creating (and Closing) a Connection
------------------------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: cpp
-
- S3_initialize("s3", S3_INIT_ALL, host);
- // Do stuff...
- S3_deinitialize();
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of Buckets that you own.
-This also prints out the bucket name, owner ID, and display name
-for each bucket.
-
-.. code-block:: cpp
-
- static S3Status listServiceCallback(
- const char *ownerId,
- const char *ownerDisplayName,
- const char *bucketName,
- int64_t creationDate, void *callbackData)
- {
- bool *header_printed = (bool*) callbackData;
- if (!*header_printed) {
- *header_printed = true;
- printf("%-22s", " Bucket");
- printf(" %-20s %-12s", " Owner ID", "Display Name");
- printf("\n");
- printf("----------------------");
- printf(" --------------------" " ------------");
- printf("\n");
- }
-
- printf("%-22s", bucketName);
- printf(" %-20s %-12s", ownerId ? ownerId : "", ownerDisplayName ? ownerDisplayName : "");
- printf("\n");
-
- return S3StatusOK;
- }
-
- S3ListServiceHandler listServiceHandler =
- {
- responseHandler,
- &listServiceCallback
- };
- bool header_printed = false;
- S3_list_service(S3ProtocolHTTP, access_key, secret_key, host, 0, NULL, &listServiceHandler, &header_printed);
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket.
-
-.. code-block:: cpp
-
- S3_create_bucket(S3ProtocolHTTP, access_key, secret_key, NULL, host, sample_bucket, S3CannedAclPrivate, NULL, NULL, &responseHandler, NULL);
-
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of objects in the bucket.
-This also prints out each object's name, the file size, and
-last modified date.
-
-.. code-block:: cpp
-
- static S3Status listBucketCallback(
- int isTruncated,
- const char *nextMarker,
- int contentsCount,
- const S3ListBucketContent *contents,
- int commonPrefixesCount,
- const char **commonPrefixes,
- void *callbackData)
- {
- printf("%-22s", " Object Name");
- printf(" %-5s %-20s", "Size", " Last Modified");
- printf("\n");
- printf("----------------------");
- printf(" -----" " --------------------");
- printf("\n");
-
- for (int i = 0; i < contentsCount; i++) {
- char timebuf[256];
- char sizebuf[16];
- const S3ListBucketContent *content = &(contents[i]);
- time_t t = (time_t) content->lastModified;
-
- strftime(timebuf, sizeof(timebuf), "%Y-%m-%dT%H:%M:%SZ", gmtime(&t));
- sprintf(sizebuf, "%5llu", (unsigned long long) content->size);
- printf("%-22s %s %s\n", content->key, sizebuf, timebuf);
- }
-
- return S3StatusOK;
- }
-
- S3ListBucketHandler listBucketHandler =
- {
- responseHandler,
- &listBucketCallback
- };
- S3_list_bucket(&bucketContext, NULL, NULL, NULL, 0, NULL, &listBucketHandler, NULL);
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-.. note::
-
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: cpp
-
- S3_delete_bucket(S3ProtocolHTTP, S3UriStylePath, access_key, secret_key, host, sample_bucket, NULL, &responseHandler, NULL);
-
-
-Creating an Object (from a file)
---------------------------------
-
-This creates a file ``hello.txt``.
-
-.. code-block:: cpp
-
- #include <sys/stat.h>
- typedef struct put_object_callback_data
- {
- FILE *infile;
- uint64_t contentLength;
- } put_object_callback_data;
-
-
- static int putObjectDataCallback(int bufferSize, char *buffer, void *callbackData)
- {
- put_object_callback_data *data = (put_object_callback_data *) callbackData;
-
- int ret = 0;
-
- if (data->contentLength) {
- int toRead = ((data->contentLength > (unsigned) bufferSize) ? (unsigned) bufferSize : data->contentLength);
- ret = fread(buffer, 1, toRead, data->infile);
- }
- data->contentLength -= ret;
- return ret;
- }
-
- put_object_callback_data data;
- struct stat statbuf;
- if (stat(sample_file, &statbuf) == -1) {
- fprintf(stderr, "\nERROR: Failed to stat file %s: ", sample_file);
- perror(0);
- exit(-1);
- }
-
- int contentLength = statbuf.st_size;
- data.contentLength = contentLength;
-
- if (!(data.infile = fopen(sample_file, "r"))) {
- fprintf(stderr, "\nERROR: Failed to open input file %s: ", sample_file);
- perror(0);
- exit(-1);
- }
-
- S3PutObjectHandler putObjectHandler =
- {
- responseHandler,
- &putObjectDataCallback
- };
-
- S3_put_object(&bucketContext, sample_key, contentLength, NULL, NULL, &putObjectHandler, &data);
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads a file and prints the contents.
-
-.. code-block:: cpp
-
- static S3Status getObjectDataCallback(int bufferSize, const char *buffer, void *callbackData)
- {
- FILE *outfile = (FILE *) callbackData;
- size_t wrote = fwrite(buffer, 1, bufferSize, outfile);
- return ((wrote < (size_t) bufferSize) ? S3StatusAbortedByCallback : S3StatusOK);
- }
-
- S3GetObjectHandler getObjectHandler =
- {
- responseHandler,
- &getObjectDataCallback
- };
- FILE *outfile = stdout;
- S3_get_object(&bucketContext, sample_key, NULL, 0, 0, NULL, &getObjectHandler, outfile);
-
-
-Delete an Object
-----------------
-
-This deletes an object.
-
-.. code-block:: cpp
-
- S3ResponseHandler deleteResponseHandler =
- {
- 0,
- &responseCompleteCallback
- };
- S3_delete_object(&bucketContext, sample_key, 0, &deleteResponseHandler, 0);
-
-
-Change an Object's ACL
-----------------------
-
-This changes an object's ACL to grant full control to another user.
-
-
-.. code-block:: cpp
-
- #include <string.h>
- char ownerId[] = "owner";
- char ownerDisplayName[] = "owner";
- char granteeId[] = "grantee";
- char granteeDisplayName[] = "grantee";
-
- S3AclGrant grants[] = {
- {
- S3GranteeTypeCanonicalUser,
- {{}},
- S3PermissionFullControl
- },
- {
- S3GranteeTypeCanonicalUser,
- {{}},
- S3PermissionReadACP
- },
- {
- S3GranteeTypeAllUsers,
- {{}},
- S3PermissionRead
- }
- };
-
- strncpy(grants[0].grantee.canonicalUser.id, ownerId, S3_MAX_GRANTEE_USER_ID_SIZE);
- strncpy(grants[0].grantee.canonicalUser.displayName, ownerDisplayName, S3_MAX_GRANTEE_DISPLAY_NAME_SIZE);
-
- strncpy(grants[1].grantee.canonicalUser.id, granteeId, S3_MAX_GRANTEE_USER_ID_SIZE);
- strncpy(grants[1].grantee.canonicalUser.displayName, granteeDisplayName, S3_MAX_GRANTEE_DISPLAY_NAME_SIZE);
-
- S3_set_acl(&bucketContext, sample_key, ownerId, ownerDisplayName, 3, grants, 0, &responseHandler, 0);
-
-
-Generate Object Download URL (signed)
--------------------------------------
-
-This generates a signed download URL that will be valid for 5 minutes.
-
-.. code-block:: cpp
-
- #include <time.h>
- char buffer[S3_MAX_AUTHENTICATED_QUERY_STRING_SIZE];
- int64_t expires = time(NULL) + 60 * 5; // Current time + 5 minutes
-
- S3_generate_authenticated_query_string(buffer, &bucketContext, sample_key, expires, NULL);
-
diff --git a/src/ceph/doc/radosgw/s3/csharp.rst b/src/ceph/doc/radosgw/s3/csharp.rst
deleted file mode 100644
index af1c6e4..0000000
--- a/src/ceph/doc/radosgw/s3/csharp.rst
+++ /dev/null
@@ -1,199 +0,0 @@
-.. _csharp:
-
-C# S3 Examples
-==============
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: csharp
-
- using System;
- using Amazon;
- using Amazon.S3;
- using Amazon.S3.Model;
-
- string accessKey = "put your access key here!";
- string secretKey = "put your secret key here!";
-
- AmazonS3Config config = new AmazonS3Config();
- config.ServiceURL = "objects.dreamhost.com";
-
- AmazonS3Client s3Client = new AmazonS3Client(
- accessKey,
- secretKey,
- config
- );
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of Buckets that you own.
-This also prints out the bucket name and creation date of each bucket.
-
-.. code-block:: csharp
-
- ListBucketsResponse response = client.ListBuckets();
- foreach (S3Bucket b in response.Buckets)
- {
- Console.WriteLine("{0}\t{1}", b.BucketName, b.CreationDate);
- }
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: csharp
-
- PutBucketRequest request = new PutBucketRequest();
- request.BucketName = "my-new-bucket";
- client.PutBucket(request);
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of objects in the bucket.
-This also prints out each object's name, the file size, and last
-modified date.
-
-.. code-block:: csharp
-
- ListObjectsRequest request = new ListObjectsRequest();
- request.BucketName = "my-new-bucket";
- ListObjectsResponse response = client.ListObjects(request);
- foreach (S3Object o in response.S3Objects)
- {
- Console.WriteLine("{0}\t{1}\t{2}", o.Key, o.Size, o.LastModified);
- }
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-.. note::
-
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: csharp
-
- DeleteBucketRequest request = new DeleteBucketRequest();
- request.BucketName = "my-new-bucket";
- client.DeleteBucket(request);
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-
-.. attention::
-
- not available
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: csharp
-
- PutObjectRequest request = new PutObjectRequest();
- request.BucketName = "my-new-bucket";
- request.Key = "hello.txt";
- request.ContentType = "text/plain";
- request.ContentBody = "Hello World!";
- client.PutObject(request);
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable, and
-``secret_plans.txt`` to be private.
-
-.. code-block:: csharp
-
- PutACLRequest request = new PutACLRequest();
- request.BucketName = "my-new-bucket";
- request.Key = "hello.txt";
- request.CannedACL = S3CannedACL.PublicRead;
- client.PutACL(request);
-
- PutACLRequest request2 = new PutACLRequest();
- request2.BucketName = "my-new-bucket";
- request2.Key = "secret_plans.txt";
- request2.CannedACL = S3CannedACL.Private;
- client.PutACL(request2);
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``perl_poetry.pdf`` and saves it in
-``C:\Users\larry\Documents``
-
-.. code-block:: csharp
-
- GetObjectRequest request = new GetObjectRequest();
- request.BucketName = "my-new-bucket";
- request.Key = "perl_poetry.pdf";
- GetObjectResponse response = client.GetObject(request);
- response.WriteResponseStreamToFile("C:\\Users\\larry\\Documents\\perl_poetry.pdf");
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: csharp
-
- DeleteObjectRequest request = new DeleteObjectRequest();
- request.BucketName = "my-new-bucket";
- request.Key = "goodbye.txt";
- client.DeleteObject(request);
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-This then generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. note::
-
- The C# S3 Library does not have a method for generating unsigned
- URLs, so the following example only shows generating signed URLs.
-
-.. code-block:: csharp
-
- GetPreSignedUrlRequest request = new GetPreSignedUrlRequest();
- request.BucketName = "my-bucket-name";
- request.Key = "secret_plans.txt";
- request.Expires = DateTime.Now.AddHours(1);
- request.Protocol = Protocol.HTTP;
- string url = client.GetPreSignedURL(request);
- Console.WriteLine(url);
-
-The output of this will look something like::
-
- http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
diff --git a/src/ceph/doc/radosgw/s3/java.rst b/src/ceph/doc/radosgw/s3/java.rst
deleted file mode 100644
index 057c09c..0000000
--- a/src/ceph/doc/radosgw/s3/java.rst
+++ /dev/null
@@ -1,212 +0,0 @@
-.. _java:
-
-Java S3 Examples
-================
-
-Setup
------
-
-The following examples may require some or all of the following java
-classes to be imported:
-
-.. code-block:: java
-
- import java.io.ByteArrayInputStream;
- import java.io.File;
- import java.util.List;
- import com.amazonaws.auth.AWSCredentials;
- import com.amazonaws.auth.BasicAWSCredentials;
- import com.amazonaws.util.StringUtils;
- import com.amazonaws.services.s3.AmazonS3;
- import com.amazonaws.services.s3.AmazonS3Client;
- import com.amazonaws.services.s3.model.Bucket;
- import com.amazonaws.services.s3.model.CannedAccessControlList;
- import com.amazonaws.services.s3.model.GeneratePresignedUrlRequest;
- import com.amazonaws.services.s3.model.GetObjectRequest;
- import com.amazonaws.services.s3.model.ObjectListing;
- import com.amazonaws.services.s3.model.ObjectMetadata;
- import com.amazonaws.services.s3.model.S3ObjectSummary;
-
-
-If you are just testing the Ceph Object Storage services, consider
-using HTTP protocol instead of HTTPS protocol.
-
-First, import the ``ClientConfiguration`` and ``Protocol`` classes.
-
-.. code-block:: java
-
- import com.amazonaws.ClientConfiguration;
- import com.amazonaws.Protocol;
-
-
-Then, define the client configuration, and add the client configuration
-as an argument for the S3 client.
-
-.. code-block:: java
-
- AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
-
- ClientConfiguration clientConfig = new ClientConfiguration();
- clientConfig.setProtocol(Protocol.HTTP);
-
- AmazonS3 conn = new AmazonS3Client(credentials, clientConfig);
- conn.setEndpoint("endpoint.com");
-
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: java
-
- String accessKey = "insert your access key here!";
- String secretKey = "insert your secret key here!";
-
- AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
- AmazonS3 conn = new AmazonS3Client(credentials);
- conn.setEndpoint("objects.dreamhost.com");
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of Buckets that you own.
-This also prints out the bucket name and creation date of each bucket.
-
-.. code-block:: java
-
- List<Bucket> buckets = conn.listBuckets();
- for (Bucket bucket : buckets) {
- System.out.println(bucket.getName() + "\t" +
- StringUtils.fromDate(bucket.getCreationDate()));
- }
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: java
-
- Bucket bucket = conn.createBucket("my-new-bucket");
-
-
-Listing a Bucket's Content
---------------------------
-This gets a list of objects in the bucket.
-This also prints out each object's name, the file size, and last
-modified date.
-
-.. code-block:: java
-
- ObjectListing objects = conn.listObjects(bucket.getName());
- do {
- for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
- System.out.println(objectSummary.getKey() + "\t" +
- objectSummary.getSize() + "\t" +
- StringUtils.fromDate(objectSummary.getLastModified()));
- }
- objects = conn.listNextBatchOfObjects(objects);
- } while (objects.isTruncated());
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-.. note::
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: java
-
- conn.deleteBucket(bucket.getName());
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-.. attention::
- not available
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: java
-
- ByteArrayInputStream input = new ByteArrayInputStream("Hello World!".getBytes());
- conn.putObject(bucket.getName(), "hello.txt", input, new ObjectMetadata());
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable, and
-``secret_plans.txt`` to be private.
-
-.. code-block:: java
-
- conn.setObjectAcl(bucket.getName(), "hello.txt", CannedAccessControlList.PublicRead);
- conn.setObjectAcl(bucket.getName(), "secret_plans.txt", CannedAccessControlList.Private);
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``perl_poetry.pdf`` and saves it in
-``/home/larry/documents``
-
-.. code-block:: java
-
- conn.getObject(
- new GetObjectRequest(bucket.getName(), "perl_poetry.pdf"),
- new File("/home/larry/documents/perl_poetry.pdf")
- );
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: java
-
- conn.deleteObject(bucket.getName(), "goodbye.txt");
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-This then generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. note::
- The java library does not have a method for generating unsigned
- URLs, so the example below just generates a signed URL.
-
-.. code-block:: java
-
- GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucket.getName(), "secret_plans.txt");
- System.out.println(conn.generatePresignedUrl(request));
-
-The output will look something like this::
-
- https://my-bucket-name.objects.dreamhost.com/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
diff --git a/src/ceph/doc/radosgw/s3/objectops.rst b/src/ceph/doc/radosgw/s3/objectops.rst
deleted file mode 100644
index b8a2475..0000000
--- a/src/ceph/doc/radosgw/s3/objectops.rst
+++ /dev/null
@@ -1,403 +0,0 @@
-Object Operations
-=================
-
-Put Object
-----------
-Adds an object to a bucket. You must have write permissions on the bucket to perform this operation.
-
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{bucket}/{object} HTTP/1.1
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| Name | Description | Valid Values | Required |
-+======================+============================================+===============================================================================+============+
-| **content-md5** | A base64 encoded MD-5 hash of the message. | A string. No defaults or constraints. | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **content-type** | A standard MIME type. | Any MIME type. Default: ``binary/octet-stream`` | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **x-amz-meta-<...>** | User metadata. Stored with the object. | A string up to 8kb. No defaults. | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **x-amz-acl** | A canned ACL. | ``private``, ``public-read``, ``public-read-write``, ``authenticated-read`` | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-
-
-Copy Object
------------
-To copy an object, use ``PUT`` and specify a destination bucket and the object name.
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{dest-bucket}/{dest-object} HTTP/1.1
- x-amz-copy-source: {source-bucket}/{source-object}
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| Name | Description | Valid Values | Required |
-+======================================+=================================================+========================+============+
-| **x-amz-copy-source** | The source bucket name + object name. | {bucket}/{obj} | Yes |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| **x-amz-acl** | A canned ACL. | ``private``, | No |
-| | | ``public-read``, | |
-| | | ``public-read-write``, | |
-| | | ``authenticated-read`` | |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| **x-amz-copy-if-modified-since** | Copies only if modified since the timestamp. | Timestamp | No |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| **x-amz-copy-if-unmodified-since** | Copies only if unmodified since the timestamp. | Timestamp | No |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| **x-amz-copy-if-match** | Copies only if object ETag matches ETag. | Entity Tag | No |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-| **x-amz-copy-if-none-match** | Copies only if object ETag doesn't match. | Entity Tag | No |
-+--------------------------------------+-------------------------------------------------+------------------------+------------+
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+------------------------+-------------+-----------------------------------------------+
-| Name | Type | Description |
-+========================+=============+===============================================+
-| **CopyObjectResult** | Container | A container for the response elements. |
-+------------------------+-------------+-----------------------------------------------+
-| **LastModified** | Date | The last modified date of the source object. |
-+------------------------+-------------+-----------------------------------------------+
-| **Etag** | String | The ETag of the new object. |
-+------------------------+-------------+-----------------------------------------------+
-
-Remove Object
--------------
-
-Removes an object. Requires WRITE permission set on the containing bucket.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{bucket}/{object} HTTP/1.1
-
-
-
-Get Object
-----------
-Retrieves an object from a bucket within RADOS.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{bucket}/{object} HTTP/1.1
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| Name | Description | Valid Values | Required |
-+===========================+================================================+================================+============+
-| **range** | The range of the object to retrieve. | Range: bytes=beginbyte-endbyte | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-modified-since** | Gets only if modified since the timestamp. | Timestamp | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-unmodified-since** | Gets only if not modified since the timestamp. | Timestamp | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-match** | Gets only if object ETag matches ETag. | Entity Tag | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-none-match** | Gets only if object ETag matches ETag. | Entity Tag | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-
-Response Headers
-~~~~~~~~~~~~~~~~
-
-+-------------------+--------------------------------------------------------------------------------------------+
-| Name | Description |
-+===================+============================================================================================+
-| **Content-Range** | Data range, will only be returned if the range header field was specified in the request |
-+-------------------+--------------------------------------------------------------------------------------------+
-
-Get Object Info
----------------
-
-Returns information about object. This request will return the same
-header information as with the Get Object request, but will include
-the metadata only, not the object data payload.
-
-Syntax
-~~~~~~
-
-::
-
- HEAD /{bucket}/{object} HTTP/1.1
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| Name | Description | Valid Values | Required |
-+===========================+================================================+================================+============+
-| **range** | The range of the object to retrieve. | Range: bytes=beginbyte-endbyte | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-modified-since** | Gets only if modified since the timestamp. | Timestamp | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-unmodified-since** | Gets only if not modified since the timestamp. | Timestamp | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-match** | Gets only if object ETag matches ETag. | Entity Tag | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-| **if-none-match** | Gets only if object ETag matches ETag. | Entity Tag | No |
-+---------------------------+------------------------------------------------+--------------------------------+------------+
-
-Get Object ACL
---------------
-
-Syntax
-~~~~~~
-
-::
-
- GET /{bucket}/{object}?acl HTTP/1.1
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+===========================+=============+==============================================================================================+
-| ``AccessControlPolicy`` | Container | A container for the response. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``AccessControlList`` | Container | A container for the ACL information. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the object owner's ``ID`` and ``DisplayName``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``ID`` | String | The object owner's ID. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The object owner's display name. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grant`` | Container | A container for ``Grantee`` and ``Permission``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grantee`` | Container | A container for the ``DisplayName`` and ``ID`` of the user receiving a grant of permission. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Permission`` | String | The permission given to the ``Grantee`` object. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-
-
-
-Set Object ACL
---------------
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{bucket}/{object}?acl
-
-Request Entities
-~~~~~~~~~~~~~~~~
-
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+===========================+=============+==============================================================================================+
-| ``AccessControlPolicy`` | Container | A container for the response. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``AccessControlList`` | Container | A container for the ACL information. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the object owner's ``ID`` and ``DisplayName``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``ID`` | String | The object owner's ID. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The object owner's display name. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grant`` | Container | A container for ``Grantee`` and ``Permission``. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Grantee`` | Container | A container for the ``DisplayName`` and ``ID`` of the user receiving a grant of permission. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-| ``Permission`` | String | The permission given to the ``Grantee`` object. |
-+---------------------------+-------------+----------------------------------------------------------------------------------------------+
-
-
-
-Initiate Multi-part Upload
---------------------------
-
-Initiate a multi-part upload process.
-
-Syntax
-~~~~~~
-
-::
-
- POST /{bucket}/{object}?uploads
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| Name | Description | Valid Values | Required |
-+======================+============================================+===============================================================================+============+
-| **content-md5** | A base64 encoded MD-5 hash of the message. | A string. No defaults or constraints. | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **content-type** | A standard MIME type. | Any MIME type. Default: ``binary/octet-stream`` | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **x-amz-meta-<...>** | User metadata. Stored with the object. | A string up to 8kb. No defaults. | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-| **x-amz-acl** | A canned ACL. | ``private``, ``public-read``, ``public-read-write``, ``authenticated-read`` | No |
-+----------------------+--------------------------------------------+-------------------------------------------------------------------------------+------------+
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+=========================================+=============+==========================================================================================================+
-| ``InitiatedMultipartUploadsResult`` | Container | A container for the results. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Bucket`` | String | The bucket that will receive the object contents. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Key`` | String | The key specified by the ``key`` request parameter (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``UploadId`` | String | The ID specified by the ``upload-id`` request parameter identifying the multipart upload (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-
-
-Multipart Upload Part
----------------------
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{bucket}/{object}?partNumber=&uploadId= HTTP/1.1
-
-HTTP Response
-~~~~~~~~~~~~~
-
-The following HTTP response may be returned:
-
-+---------------+----------------+--------------------------------------------------------------------------+
-| HTTP Status | Status Code | Description |
-+===============+================+==========================================================================+
-| **404** | NoSuchUpload | Specified upload-id does not match any initiated upload on this object |
-+---------------+----------------+--------------------------------------------------------------------------+
-
-List Multipart Upload Parts
----------------------------
-
-Syntax
-~~~~~~
-
-::
-
- GET /{bucket}/{object}?uploadId=123 HTTP/1.1
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| Name | Type | Description |
-+=========================================+=============+==========================================================================================================+
-| ``ListPartsResult`` | Container | A container for the results. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Bucket`` | String | The bucket that will receive the object contents. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Key`` | String | The key specified by the ``key`` request parameter (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``UploadId`` | String | The ID specified by the ``upload-id`` request parameter identifying the multipart upload (if any). |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Initiator`` | Container | Contains the ``ID`` and ``DisplayName`` of the user who initiated the upload. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``ID`` | String | The initiator's ID. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``DisplayName`` | String | The initiator's display name. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Owner`` | Container | A container for the ``ID`` and ``DisplayName`` of the user who owns the uploaded object. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``StorageClass`` | String | The method used to store the resulting object. ``STANDARD`` or ``REDUCED_REDUNDANCY`` |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``PartNumberMarker`` | String | The part marker to use in a subsequent request if ``IsTruncated`` is ``true``. Precedes the list. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``NextPartNumberMarker`` | String | The next part marker to use in a subsequent request if ``IsTruncated`` is ``true``. The end of the list. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``MaxParts`` | Integer | The max parts allowed in the response as specified by the ``max-parts`` request parameter. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``IsTruncated`` | Boolean | If ``true``, only a subset of the object's upload contents were returned. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Part`` | Container | A container for ``LastModified``, ``PartNumber``, ``ETag`` and ``Size`` elements. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``LastModified`` | Date | Date and time at which the part was uploaded. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``PartNumber`` | Integer | The identification number of the part. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``ETag`` | String | The part's entity tag. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-| ``Size`` | Integer | The size of the uploaded part. |
-+-----------------------------------------+-------------+----------------------------------------------------------------------------------------------------------+
-
-
-
-Complete Multipart Upload
--------------------------
-Assembles uploaded parts and creates a new object, thereby completing a multipart upload.
-
-Syntax
-~~~~~~
-
-::
-
- POST /{bucket}/{object}?uploadId= HTTP/1.1
-
-Request Entities
-~~~~~~~~~~~~~~~~
-
-+----------------------------------+-------------+-----------------------------------------------------+----------+
-| Name | Type | Description | Required |
-+==================================+=============+=====================================================+==========+
-| ``CompleteMultipartUpload`` | Container | A container consisting of one or more parts. | Yes |
-+----------------------------------+-------------+-----------------------------------------------------+----------+
-| ``Part`` | Container | A container for the ``PartNumber`` and ``ETag``. | Yes |
-+----------------------------------+-------------+-----------------------------------------------------+----------+
-| ``PartNumber`` | Integer | The identifier of the part. | Yes |
-+----------------------------------+-------------+-----------------------------------------------------+----------+
-| ``ETag`` | String | The part's entity tag. | Yes |
-+----------------------------------+-------------+-----------------------------------------------------+----------+
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+-------------------------------------+-------------+-------------------------------------------------------+
-| Name | Type | Description |
-+=====================================+=============+=======================================================+
-| **CompleteMultipartUploadResult** | Container | A container for the response. |
-+-------------------------------------+-------------+-------------------------------------------------------+
-| **Location** | URI | The resource identifier (path) of the new object. |
-+-------------------------------------+-------------+-------------------------------------------------------+
-| **Bucket** | String | The name of the bucket that contains the new object. |
-+-------------------------------------+-------------+-------------------------------------------------------+
-| **Key** | String | The object's key. |
-+-------------------------------------+-------------+-------------------------------------------------------+
-| **ETag** | String | The entity tag of the new object. |
-+-------------------------------------+-------------+-------------------------------------------------------+
-
-Abort Multipart Upload
-----------------------
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{bucket}/{object}?uploadId= HTTP/1.1
diff --git a/src/ceph/doc/radosgw/s3/perl.rst b/src/ceph/doc/radosgw/s3/perl.rst
deleted file mode 100644
index f12e5c6..0000000
--- a/src/ceph/doc/radosgw/s3/perl.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-.. _perl:
-
-Perl S3 Examples
-================
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: perl
-
- use Amazon::S3;
- my $access_key = 'put your access key here!';
- my $secret_key = 'put your secret key here!';
-
- my $conn = Amazon::S3->new({
- aws_access_key_id => $access_key,
- aws_secret_access_key => $secret_key,
- host => 'objects.dreamhost.com',
- secure => 1,
- retry => 1,
- });
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of `Amazon::S3::Bucket`_ objects that you own.
-We'll also print out the bucket name and creation date of each bucket.
-
-.. code-block:: perl
-
- my @buckets = @{$conn->buckets->{buckets} || []};
- foreach my $bucket (@buckets) {
- print $bucket->bucket . "\t" . $bucket->creation_date . "\n";
- }
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: perl
-
- my $bucket = $conn->add_bucket({ bucket => 'my-new-bucket' });
-
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of hashes with info about each object in the bucket.
-We'll also print out each object's name, the file size, and last
-modified date.
-
-.. code-block:: perl
-
- my @keys = @{$bucket->list_all->{keys} || []};
- foreach my $key (@keys) {
- print "$key->{key}\t$key->{size}\t$key->{last_modified}\n";
- }
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-.. note::
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: perl
-
- $conn->delete_bucket($bucket);
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-
-.. attention::
-
- not available in the `Amazon::S3`_ perl module
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: perl
-
- $bucket->add_key(
- 'hello.txt', 'Hello World!',
- { content_type => 'text/plain' },
- );
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable and
-``secret_plans.txt`` to be private.
-
-.. code-block:: perl
-
- $bucket->set_acl({
- key => 'hello.txt',
- acl_short => 'public-read',
- });
- $bucket->set_acl({
- key => 'secret_plans.txt',
- acl_short => 'private',
- });
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``perl_poetry.pdf`` and saves it in
-``/home/larry/documents/``
-
-.. code-block:: perl
-
- $bucket->get_key_filename('perl_poetry.pdf', undef,
- '/home/larry/documents/perl_poetry.pdf');
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: perl
-
- $bucket->delete_key('goodbye.txt');
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-Then this generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. note::
- The `Amazon::S3`_ module does not have a way to generate download
- URLs, so we are going to be using another module instead. Unfortunately,
- most modules for generating these URLs assume that you are using Amazon,
- so we have had to go with using a more obscure module, `Muck::FS::S3`_. This
- should be the same as Amazon's sample S3 perl module, but this sample
- module is not in CPAN. So, you can either use CPAN to install
- `Muck::FS::S3`_, or install Amazon's sample S3 module manually. If you go
- the manual route, you can remove ``Muck::FS::`` from the example below.
-
-.. code-block:: perl
-
- use Muck::FS::S3::QueryStringAuthGenerator;
- my $generator = Muck::FS::S3::QueryStringAuthGenerator->new(
- $access_key,
- $secret_key,
- 0, # 0 means use 'http'. set this to 1 for 'https'
- 'objects.dreamhost.com',
- );
-
- my $hello_url = $generator->make_bare_url($bucket->bucket, 'hello.txt');
- print $hello_url . "\n";
-
- $generator->expires_in(3600); # 1 hour = 3600 seconds
- my $plans_url = $generator->get($bucket->bucket, 'secret_plans.txt');
- print $plans_url . "\n";
-
-The output will look something like this::
-
- http://objects.dreamhost.com:80/my-bucket-name/hello.txt
- http://objects.dreamhost.com:80/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
-
-.. _`Amazon::S3`: http://search.cpan.org/~tima/Amazon-S3-0.441/lib/Amazon/S3.pm
-.. _`Amazon::S3::Bucket`: http://search.cpan.org/~tima/Amazon-S3-0.441/lib/Amazon/S3/Bucket.pm
-.. _`Muck::FS::S3`: http://search.cpan.org/~mike/Muck-0.02/
-
diff --git a/src/ceph/doc/radosgw/s3/php.rst b/src/ceph/doc/radosgw/s3/php.rst
deleted file mode 100644
index 40542e0..0000000
--- a/src/ceph/doc/radosgw/s3/php.rst
+++ /dev/null
@@ -1,208 +0,0 @@
-.. _php:
-
-PHP S3 Examples
-===============
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: php
-
- <?php
- define('AWS_KEY', 'place access key here');
- define('AWS_SECRET_KEY', 'place secret key here');
- define('AWS_CANONICAL_ID', 'your DHO Username');
- define('AWS_CANONICAL_NAME', 'Also your DHO Username!');
- $HOST = 'objects.dreamhost.com';
-
- // require the amazon sdk for php library
- require_once 'AWSSDKforPHP/sdk.class.php';
-
- // Instantiate the S3 class and point it at the desired host
- $Connection = new AmazonS3(array(
- 'key' => AWS_KEY,
- 'secret' => AWS_SECRET_KEY,
- 'canonical_id' => AWS_CANONICAL_ID,
- 'canonical_name' => AWS_CANONICAL_NAME,
- ));
- $Connection->set_hostname($HOST);
- $Connection->allow_hostname_override(false);
-
- // Set the S3 class to use objects.dreamhost.com/bucket
- // instead of bucket.objects.dreamhost.com
- $Connection->enable_path_style();
-
-
-Listing Owned Buckets
----------------------
-This gets a list of CFSimpleXML objects representing buckets that you
-own. This also prints out the bucket name and creation date of each
-bucket.
-
-.. code-block:: php
-
- <?php
- $ListResponse = $Connection->list_buckets();
- $Buckets = $ListResponse->body->Buckets->Bucket;
- foreach ($Buckets as $Bucket) {
- echo $Bucket->Name . "\t" . $Bucket->CreationDate . "\n";
- }
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket`` and returns a
-``CFResponse`` object.
-
-.. note::
-
- This command requires a region as the second argument,
- so we use ``AmazonS3::REGION_US_E1``, because this constant is ``''``
-
-.. code-block:: php
-
- <?php
- $Connection->create_bucket('my-new-bucket', AmazonS3::REGION_US_E1);
-
-
-List a Bucket's Content
------------------------
-
-This gets an array of ``CFSimpleXML`` objects representing the objects
-in the bucket. This then prints out each object's name, the file size,
-and last modified date.
-
-.. code-block:: php
-
- <?php
- $ObjectsListResponse = $Connection->list_objects($bucketname);
- $Objects = $ObjectsListResponse->body->Contents;
- foreach ($Objects as $Object) {
- echo $Object->Key . "\t" . $Object->Size . "\t" . $Object->LastModified . "\n";
- }
-
-.. note::
-
- If there are more than 1000 objects in this bucket,
- you need to check $ObjectListResponse->body->isTruncated
- and run again with the name of the last key listed.
- Keep doing this until isTruncated is not true.
-
-The output will look something like this if the bucket has some files::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-This deletes the bucket called ``my-old-bucket`` and returns a
-``CFResponse`` object
-
-.. note::
-
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: php
-
- <?php
- $Connection->delete_bucket('my-old-bucket');
-
-
-Forced Delte for Non-empty Buckets
-----------------------------------
-
-This will delete the bucket even if it is not empty.
-
-.. code-block:: php
-
- <?php
- $Connection->delete_bucket('my-old-bucket', 1);
-
-
-Creating an Object
-------------------
-
-This creates an object ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: php
-
- <?php
- $Connection->create_object('my-bucket-name', 'hello.txt', array(
- 'body' => "Hello World!",
- ));
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable and
-``secret_plans.txt`` to be private.
-
-.. code-block:: php
-
- <?php
- $Connection->set_object_acl('my-bucket-name', 'hello.txt', AmazonS3::ACL_PUBLIC);
- $Connection->set_object_acl('my-bucket-name', 'secret_plans.txt', AmazonS3::ACL_PRIVATE);
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: php
-
- <?php
- $Connection->delete_object('my-bucket-name', 'goodbye.txt');
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``poetry.pdf`` and saves it in
-``/home/larry/documents/``
-
-.. code-block:: php
-
- <?php
- $FileHandle = fopen('/home/larry/documents/poetry.pdf', 'w+');
- $Connection->get_object('my-bucket-name', 'poetry.pdf', array(
- 'fileDownload' => $FileHandle,
- ));
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``.
-This works because we made ``hello.txt`` public by setting
-the ACL above. This then generates a signed download URL
-for ``secret_plans.txt`` that will work for 1 hour.
-Signed download URLs will work for the time period even
-if the object is private (when the time period is up,
-the URL will stop working).
-
-.. code-block:: php
-
- <?php
- my $plans_url = $Connection->get_object_url('my-bucket-name', 'hello.txt');
- echo $plans_url . "\n";
- my $secret_url = $Connection->get_object_url('my-bucket-name', 'secret_plans.txt', '1 hour');
- echo $secret_url . "\n";
-
-The output of this will look something like::
-
- http://objects.dreamhost.com/my-bucket-name/hello.txt
- http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
diff --git a/src/ceph/doc/radosgw/s3/python.rst b/src/ceph/doc/radosgw/s3/python.rst
deleted file mode 100644
index a2c6a59..0000000
--- a/src/ceph/doc/radosgw/s3/python.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-.. _python:
-
-Python S3 Examples
-==================
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: python
-
- import boto
- import boto.s3.connection
- access_key = 'put your access key here!'
- secret_key = 'put your secret key here!'
-
- conn = boto.connect_s3(
- aws_access_key_id = access_key,
- aws_secret_access_key = secret_key,
- host = 'objects.dreamhost.com',
- #is_secure=False, # uncomment if you are not using ssl
- calling_format = boto.s3.connection.OrdinaryCallingFormat(),
- )
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of Buckets that you own.
-This also prints out the bucket name and creation date of each bucket.
-
-.. code-block:: python
-
- for bucket in conn.get_all_buckets():
- print "{name}\t{created}".format(
- name = bucket.name,
- created = bucket.creation_date,
- )
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: python
-
- bucket = conn.create_bucket('my-new-bucket')
-
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of objects in the bucket.
-This also prints out each object's name, the file size, and last
-modified date.
-
-.. code-block:: python
-
- for key in bucket.list():
- print "{name}\t{size}\t{modified}".format(
- name = key.name,
- size = key.size,
- modified = key.last_modified,
- )
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-
-.. note::
-
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: python
-
- conn.delete_bucket(bucket.name)
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-
-.. attention::
-
- not available in python
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: python
-
- key = bucket.new_key('hello.txt')
- key.set_contents_from_string('Hello World!')
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable, and
-``secret_plans.txt`` to be private.
-
-.. code-block:: python
-
- hello_key = bucket.get_key('hello.txt')
- hello_key.set_canned_acl('public-read')
- plans_key = bucket.get_key('secret_plans.txt')
- plans_key.set_canned_acl('private')
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``perl_poetry.pdf`` and saves it in
-``/home/larry/documents/``
-
-.. code-block:: python
-
- key = bucket.get_key('perl_poetry.pdf')
- key.get_contents_to_filename('/home/larry/documents/perl_poetry.pdf')
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: python
-
- bucket.delete_key('goodbye.txt')
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-This then generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. code-block:: python
-
- hello_key = bucket.get_key('hello.txt')
- hello_url = hello_key.generate_url(0, query_auth=False, force_http=True)
- print hello_url
-
- plans_key = bucket.get_key('secret_plans.txt')
- plans_url = plans_key.generate_url(3600, query_auth=True, force_http=True)
- print plans_url
-
-The output of this will look something like::
-
- http://objects.dreamhost.com/my-bucket-name/hello.txt
- http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
diff --git a/src/ceph/doc/radosgw/s3/ruby.rst b/src/ceph/doc/radosgw/s3/ruby.rst
deleted file mode 100644
index 435b3c6..0000000
--- a/src/ceph/doc/radosgw/s3/ruby.rst
+++ /dev/null
@@ -1,364 +0,0 @@
-.. _ruby:
-
-Ruby `AWS::SDK`_ Examples (aws-sdk gem ~>2)
-===========================================
-
-Settings
----------------------
-
-You can setup the connection on global way:
-
-.. code-block:: ruby
-
- Aws.config.update(
- endpoint: 'https://objects.dreamhost.com.',
- access_key_id: 'my-access-key',
- secret_access_key: 'my-secret-key',
- force_path_style: true,
- region: 'us-east-1'
- )
-
-
-and instantiate a client object:
-
-.. code-block:: ruby
-
- s3_client = Aws::S3::Client.new
-
-Listing Owned Buckets
----------------------
-
-This gets a list of buckets that you own.
-This also prints out the bucket name and creation date of each bucket.
-
-.. code-block:: ruby
-
- s3_client.list_buckets.buckets.each do |bucket|
- puts "#{bucket.name}\t#{bucket.creation_date}"
- end
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: ruby
-
- s3_client.create_bucket(bucket: 'my-new-bucket')
-
-If you want a private bucket:
-
-`acl` option accepts: # private, public-read, public-read-write, authenticated-read
-
-.. code-block:: ruby
-
- s3_client.create_bucket(bucket: 'my-new-bucket', acl: 'private')
-
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of hashes with the contents of each object
-This also prints out each object's name, the file size, and last
-modified date.
-
-.. code-block:: ruby
-
- s3_client.get_objects(bucket: 'my-new-bucket').contents.each do |object|
- puts "#{object.key}\t#{object.size}\t#{object.last-modified}"
- end
-
-The output will look something like this if the bucket has some files::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-.. note::
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: ruby
-
- s3_client.delete_bucket(bucket: 'my-new-bucket')
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-First, you need to clear the bucket:
-
-.. code-block:: ruby
-
- Aws::S3::Bucket.new('my-new-bucket', client: s3_client).clear!
-
-after, you can destroy the bucket
-
-.. code-block:: ruby
-
- s3_client.delete_bucket(bucket: 'my-new-bucket')
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: ruby
-
- s3_client.put_object(
- key: 'hello.txt',
- body: 'Hello World!',
- bucket: 'my-new-bucket',
- content_type: 'text/plain'
- )
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable, and ``secret_plans.txt``
-to be private.
-
-.. code-block:: ruby
-
- s3_client.put_object_acl(bucket: 'my-new-bucket', key: 'hello.txt', acl: 'public-read')
-
- s3_client.put_object_acl(bucket: 'my-new-bucket', key: 'private.txt', acl: 'private')
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``poetry.pdf`` and saves it in
-``/home/larry/documents/``
-
-.. code-block:: ruby
-
- s3_client.get_object(bucket: 'my-new-bucket', key: 'poetry.pdf', response_target: '/home/larry/documents/poetry.pdf')
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: ruby
-
- s3_client.delete_object(key: 'goodbye.txt', bucket: 'my-new-bucket')
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-This then generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. code-block:: ruby
-
- puts Aws::S3::Object.new(
- key: 'hello.txt',
- bucket_name: 'my-new-bucket',
- client: s3_client
- ).public_url
-
- puts Aws::S3::Object.new(
- key: 'secret_plans.txt',
- bucket_name: 'hermes_ceph_gem',
- client: s3_client
- ).presigned_url(:get, expires_in: 60 * 60)
-
-The output of this will look something like::
-
- http://objects.dreamhost.com/my-bucket-name/hello.txt
- http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
-.. _`AWS::SDK`: http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html
-
-
-
-Ruby `AWS::S3`_ Examples (aws-s3 gem)
-=====================================
-
-Creating a Connection
----------------------
-
-This creates a connection so that you can interact with the server.
-
-.. code-block:: ruby
-
- AWS::S3::Base.establish_connection!(
- :server => 'objects.dreamhost.com',
- :use_ssl => true,
- :access_key_id => 'my-access-key',
- :secret_access_key => 'my-secret-key'
- )
-
-
-Listing Owned Buckets
----------------------
-
-This gets a list of `AWS::S3::Bucket`_ objects that you own.
-This also prints out the bucket name and creation date of each bucket.
-
-.. code-block:: ruby
-
- AWS::S3::Service.buckets.each do |bucket|
- puts "#{bucket.name}\t#{bucket.creation_date}"
- end
-
-The output will look something like this::
-
- mahbuckat1 2011-04-21T18:05:39.000Z
- mahbuckat2 2011-04-21T18:05:48.000Z
- mahbuckat3 2011-04-21T18:07:18.000Z
-
-
-Creating a Bucket
------------------
-
-This creates a new bucket called ``my-new-bucket``
-
-.. code-block:: ruby
-
- AWS::S3::Bucket.create('my-new-bucket')
-
-
-Listing a Bucket's Content
---------------------------
-
-This gets a list of hashes with the contents of each object
-This also prints out each object's name, the file size, and last
-modified date.
-
-.. code-block:: ruby
-
- new_bucket = AWS::S3::Bucket.find('my-new-bucket')
- new_bucket.each do |object|
- puts "#{object.key}\t#{object.about['content-length']}\t#{object.about['last-modified']}"
- end
-
-The output will look something like this if the bucket has some files::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Deleting a Bucket
------------------
-.. note::
- The Bucket must be empty! Otherwise it won't work!
-
-.. code-block:: ruby
-
- AWS::S3::Bucket.delete('my-new-bucket')
-
-
-Forced Delete for Non-empty Buckets
------------------------------------
-
-.. code-block:: ruby
-
- AWS::S3::Bucket.delete('my-new-bucket', :force => true)
-
-
-Creating an Object
-------------------
-
-This creates a file ``hello.txt`` with the string ``"Hello World!"``
-
-.. code-block:: ruby
-
- AWS::S3::S3Object.store(
- 'hello.txt',
- 'Hello World!',
- 'my-new-bucket',
- :content_type => 'text/plain'
- )
-
-
-Change an Object's ACL
-----------------------
-
-This makes the object ``hello.txt`` to be publicly readable, and ``secret_plans.txt``
-to be private.
-
-.. code-block:: ruby
-
- policy = AWS::S3::S3Object.acl('hello.txt', 'my-new-bucket')
- policy.grants = [ AWS::S3::ACL::Grant.grant(:public_read) ]
- AWS::S3::S3Object.acl('hello.txt', 'my-new-bucket', policy)
-
- policy = AWS::S3::S3Object.acl('secret_plans.txt', 'my-new-bucket')
- policy.grants = []
- AWS::S3::S3Object.acl('secret_plans.txt', 'my-new-bucket', policy)
-
-
-Download an Object (to a file)
-------------------------------
-
-This downloads the object ``poetry.pdf`` and saves it in
-``/home/larry/documents/``
-
-.. code-block:: ruby
-
- open('/home/larry/documents/poetry.pdf', 'w') do |file|
- AWS::S3::S3Object.stream('poetry.pdf', 'my-new-bucket') do |chunk|
- file.write(chunk)
- end
- end
-
-
-Delete an Object
-----------------
-
-This deletes the object ``goodbye.txt``
-
-.. code-block:: ruby
-
- AWS::S3::S3Object.delete('goodbye.txt', 'my-new-bucket')
-
-
-Generate Object Download URLs (signed and unsigned)
----------------------------------------------------
-
-This generates an unsigned download URL for ``hello.txt``. This works
-because we made ``hello.txt`` public by setting the ACL above.
-This then generates a signed download URL for ``secret_plans.txt`` that
-will work for 1 hour. Signed download URLs will work for the time
-period even if the object is private (when the time period is up, the
-URL will stop working).
-
-.. code-block:: ruby
-
- puts AWS::S3::S3Object.url_for(
- 'hello.txt',
- 'my-new-bucket',
- :authenticated => false
- )
-
- puts AWS::S3::S3Object.url_for(
- 'secret_plans.txt',
- 'my-new-bucket',
- :expires_in => 60 * 60
- )
-
-The output of this will look something like::
-
- http://objects.dreamhost.com/my-bucket-name/hello.txt
- http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX
-
-.. _`AWS::S3`: http://amazon.rubyforge.org/
-.. _`AWS::S3::Bucket`: http://amazon.rubyforge.org/doc/
-
diff --git a/src/ceph/doc/radosgw/s3/serviceops.rst b/src/ceph/doc/radosgw/s3/serviceops.rst
deleted file mode 100644
index c55ce98..0000000
--- a/src/ceph/doc/radosgw/s3/serviceops.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-Service Operations
-==================
-
-List Buckets
-------------
-``GET /`` returns a list of buckets created by the user making the request. ``GET /`` only
-returns buckets created by an authenticated user. You cannot make an anonymous request.
-
-Syntax
-~~~~~~
-::
-
- GET / HTTP/1.1
- Host: cname.domain.com
-
- Authorization: AWS {access-key}:{hash-of-header-and-secret}
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-+----------------------------+-------------+-----------------------------------------------------------------+
-| Name | Type | Description |
-+============================+=============+=================================================================+
-| ``Buckets`` | Container | Container for list of buckets. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``Bucket`` | Container | Container for bucket information. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``Name`` | String | Bucket name. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``CreationDate`` | Date | UTC time when the bucket was created. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``ListAllMyBucketsResult`` | Container | A container for the result. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``Owner`` | Container | A container for the bucket owner's ``ID`` and ``DisplayName``. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``ID`` | String | The bucket owner's ID. |
-+----------------------------+-------------+-----------------------------------------------------------------+
-| ``DisplayName`` | String | The bucket owner's display name. |
-+----------------------------+-------------+-----------------------------------------------------------------+
diff --git a/src/ceph/doc/radosgw/swift.rst b/src/ceph/doc/radosgw/swift.rst
deleted file mode 100644
index 42f21ff..0000000
--- a/src/ceph/doc/radosgw/swift.rst
+++ /dev/null
@@ -1,75 +0,0 @@
-===============================
- Ceph Object Gateway Swift API
-===============================
-
-Ceph supports a RESTful API that is compatible with the basic data access model of the `Swift API`_.
-
-API
----
-
-.. toctree::
- :maxdepth: 1
-
- Authentication <swift/auth>
- Service Ops <swift/serviceops>
- Container Ops <swift/containerops>
- Object Ops <swift/objectops>
- Temp URL Ops <swift/tempurl>
- Tutorial <swift/tutorial>
- Java <swift/java>
- Python <swift/python>
- Ruby <swift/ruby>
-
-
-Features Support
-----------------
-
-The following table describes the support status for current Swift functional features:
-
-+---------------------------------+-----------------+----------------------------------------+
-| Feature | Status | Remarks |
-+=================================+=================+========================================+
-| **Authentication** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Account Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Swift ACLs** | Supported | Supports a subset of Swift ACLs |
-+---------------------------------+-----------------+----------------------------------------+
-| **List Containers** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Delete Container** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Create Container** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Container Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Update Container Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Delete Container Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **List Objects** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Static Website** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Create Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Create Large Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Delete Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Copy Object** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Get Object Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Update Object Metadata** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Expiring Objects** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **Object Versioning** | Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-| **CORS** | Not Supported | |
-+---------------------------------+-----------------+----------------------------------------+
-
-.. _Swift API: http://developer.openstack.org/api-ref-objectstorage-v1.html
diff --git a/src/ceph/doc/radosgw/swift/auth.rst b/src/ceph/doc/radosgw/swift/auth.rst
deleted file mode 100644
index 2629050..0000000
--- a/src/ceph/doc/radosgw/swift/auth.rst
+++ /dev/null
@@ -1,77 +0,0 @@
-================
- Authentication
-================
-
-Swift API requests that require authentication must contain an
-``X-Storage-Token`` authentication token in the request header.
-The token may be retrieved from RADOS Gateway, or from another authenticator.
-To obtain a token from RADOS Gateway, you must create a user. For example::
-
- sudo radosgw-admin user create --subuser="{username}:{subusername}" --uid="{username}"
- --display-name="{Display Name}" --key-type=swift --secret="{password}" --access=full
-
-For details on RADOS Gateway administration, see `radosgw-admin`_.
-
-.. _radosgw-admin: ../../../man/8/radosgw-admin/
-
-Auth Get
---------
-
-To authenticate a user, make a request containing an ``X-Auth-User`` and a
-``X-Auth-Key`` in the header.
-
-Syntax
-~~~~~~
-
-::
-
- GET /auth HTTP/1.1
- Host: swift.radosgwhost.com
- X-Auth-User: johndoe
- X-Auth-Key: R7UUOLFDI2ZI9PRCQ53K
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Auth-User``
-
-:Description: The key RADOS GW username to authenticate.
-:Type: String
-:Required: Yes
-
-``X-Auth-Key``
-
-:Description: The key associated to a RADOS GW username.
-:Type: String
-:Required: Yes
-
-
-Response Headers
-~~~~~~~~~~~~~~~~
-
-The response from the server should include an ``X-Auth-Token`` value. The
-response may also contain a ``X-Storage-Url`` that provides the
-``{api version}/{account}`` prefix that is specified in other requests
-throughout the API documentation.
-
-
-``X-Storage-Token``
-
-:Description: The authorization token for the ``X-Auth-User`` specified in the request.
-:Type: String
-
-
-``X-Storage-Url``
-
-:Description: The URL and ``{api version}/{account}`` path for the user.
-:Type: String
-
-A typical response looks like this::
-
- HTTP/1.1 204 No Content
- Date: Mon, 16 Jul 2012 11:05:33 GMT
- Server: swift
- X-Storage-Url: https://swift.radosgwhost.com/v1/ACCT-12345
- X-Auth-Token: UOlCCC8TahFKlWuv9DB09TWHF0nDjpPElha0kAa
- Content-Length: 0
- Content-Type: text/plain; charset=UTF-8
diff --git a/src/ceph/doc/radosgw/swift/containerops.rst b/src/ceph/doc/radosgw/swift/containerops.rst
deleted file mode 100644
index 463d91c..0000000
--- a/src/ceph/doc/radosgw/swift/containerops.rst
+++ /dev/null
@@ -1,279 +0,0 @@
-======================
- Container Operations
-======================
-
-A container is a mechanism for storing data objects. An account may
-have many containers, but container names must be unique. This API enables a
-client to create a container, set access controls and metadata,
-retrieve a container's contents, and delete a container. Since this API
-makes requests related to information in a particular user's account, all
-requests in this API must be authenticated unless a container's access control
-is deliberately made publicly accessible (i.e., allows anonymous requests).
-
-.. note:: The Amazon S3 API uses the term 'bucket' to describe a data container.
- When you hear someone refer to a 'bucket' within the Swift API, the term
- 'bucket' may be construed as the equivalent of the term 'container.'
-
-One facet of object storage is that it does not support hierarchical paths
-or directories. Instead, it supports one level consisting of one or more
-containers, where each container may have objects. The RADOS Gateway's
-Swift-compatible API supports the notion of 'pseudo-hierarchical containers,'
-which is a means of using object naming to emulate a container (or directory)
-hierarchy without actually implementing one in the storage system. You may
-name objects with pseudo-hierarchical names
-(e.g., photos/buildings/empire-state.jpg), but container names cannot
-contain a forward slash (``/``) character.
-
-
-Create a Container
-==================
-
-To create a new container, make a ``PUT`` request with the API version, account,
-and the name of the new container. The container name must be unique, must not
-contain a forward-slash (/) character, and should be less than 256 bytes. You
-may include access control headers and metadata headers in the request. The
-operation is idempotent; that is, if you make a request to create a container
-that already exists, it will return with a HTTP 202 return code, but will not
-create another container.
-
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{api version}/{account}/{container} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
- X-Container-Read: {comma-separated-uids}
- X-Container-Write: {comma-separated-uids}
- X-Container-Meta-{key}: {value}
-
-
-Headers
-~~~~~~~
-
-``X-Container-Read``
-
-:Description: The user IDs with read permissions for the container.
-:Type: Comma-separated string values of user IDs.
-:Required: No
-
-``X-Container-Write``
-
-:Description: The user IDs with write permissions for the container.
-:Type: Comma-separated string values of user IDs.
-:Required: No
-
-``X-Container-Meta-{key}``
-
-:Description: A user-defined meta data key that takes an arbitrary string value.
-:Type: String
-:Required: No
-
-
-HTTP Response
-~~~~~~~~~~~~~
-
-If a container with the same name already exists, and the user is the
-container owner then the operation will succeed. Otherwise the operation
-will fail.
-
-``409``
-
-:Description: The container already exists under a different user's ownership.
-:Status Code: ``BucketAlreadyExists``
-
-
-
-
-List a Container's Objects
-==========================
-
-To list the objects within a container, make a ``GET`` request with the with the
-API version, account, and the name of the container. You can specify query
-parameters to filter the full list, or leave out the parameters to return a list
-of the first 10,000 object names stored in the container.
-
-
-Syntax
-~~~~~~
-
-::
-
- GET /{api version}/{container} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-Parameters
-~~~~~~~~~~
-
-``format``
-
-:Description: Defines the format of the result.
-:Type: String
-:Valid Values: ``json`` | ``xml``
-:Required: No
-
-``prefix``
-
-:Description: Limits the result set to objects beginning with the specified prefix.
-:Type: String
-:Required: No
-
-``marker``
-
-:Description: Returns a list of results greater than the marker value.
-:Type: String
-:Required: No
-
-``limit``
-
-:Description: Limits the number of results to the specified value.
-:Type: Integer
-:Valid Range: 0 - 10,000
-:Required: No
-
-``delimiter``
-
-:Description: The delimiter between the prefix and the rest of the object name.
-:Type: String
-:Required: No
-
-``path``
-
-:Description: The pseudo-hierarchical path of the objects.
-:Type: String
-:Required: No
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-``container``
-
-:Description: The container.
-:Type: Container
-
-``object``
-
-:Description: An object within the container.
-:Type: Container
-
-``name``
-
-:Description: The name of an object within the container.
-:Type: String
-
-``hash``
-
-:Description: A hash code of the object's contents.
-:Type: String
-
-``last_modified``
-
-:Description: The last time the object's contents were modified.
-:Type: Date
-
-``content_type``
-
-:Description: The type of content within the object.
-:Type: String
-
-
-
-Update a Container's ACLs
-=========================
-
-When a user creates a container, the user has read and write access to the
-container by default. To allow other users to read a container's contents or
-write to a container, you must specifically enable the user.
-You may also specify ``*`` in the ``X-Container-Read`` or ``X-Container-Write``
-settings, which effectively enables all users to either read from or write
-to the container. Setting ``*`` makes the container public. That is it
-enables anonymous users to either read from or write to the container.
-
-
-Syntax
-~~~~~~
-
-::
-
- POST /{api version}/{account}/{container} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
- X-Container-Read: *
- X-Container-Write: {uid1}, {uid2}, {uid3}
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Container-Read``
-
-:Description: The user IDs with read permissions for the container.
-:Type: Comma-separated string values of user IDs.
-:Required: No
-
-``X-Container-Write``
-
-:Description: The user IDs with write permissions for the container.
-:Type: Comma-separated string values of user IDs.
-:Required: No
-
-
-Add/Update Container Metadata
-=============================
-
-To add metadata to a container, make a ``POST`` request with the API version,
-account, and container name. You must have write permissions on the
-container to add or update metadata.
-
-Syntax
-~~~~~~
-
-::
-
- POST /{api version}/{account}/{container} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
- X-Container-Meta-Color: red
- X-Container-Meta-Taste: salty
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Container-Meta-{key}``
-
-:Description: A user-defined meta data key that takes an arbitrary string value.
-:Type: String
-:Required: No
-
-
-
-Delete a Container
-==================
-
-To delete a container, make a ``DELETE`` request with the API version, account,
-and the name of the container. The container must be empty. If you'd like to check
-if the container is empty, execute a ``HEAD`` request against the container. Once
-you have successfully removed the container, you will be able to reuse the container name.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{api version}/{account}/{container} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-HTTP Response
-~~~~~~~~~~~~~
-
-``204``
-
-:Description: The container was removed.
-:Status Code: ``NoContent``
-
diff --git a/src/ceph/doc/radosgw/swift/java.rst b/src/ceph/doc/radosgw/swift/java.rst
deleted file mode 100644
index 8977a3b..0000000
--- a/src/ceph/doc/radosgw/swift/java.rst
+++ /dev/null
@@ -1,175 +0,0 @@
-.. _java_swift:
-
-=====================
- Java Swift Examples
-=====================
-
-Setup
-=====
-
-The following examples may require some or all of the following Java
-classes to be imported:
-
-.. code-block:: java
-
- import org.javaswift.joss.client.factory.AccountConfig;
- import org.javaswift.joss.client.factory.AccountFactory;
- import org.javaswift.joss.client.factory.AuthenticationMethod;
- import org.javaswift.joss.model.Account;
- import org.javaswift.joss.model.Container;
- import org.javaswift.joss.model.StoredObject;
- import java.io.File;
- import java.io.IOException;
- import java.util.*;
-
-
-Create a Connection
-===================
-
-This creates a connection so that you can interact with the server:
-
-.. code-block:: java
-
- String username = "USERNAME";
- String password = "PASSWORD";
- String authUrl = "https://radosgw.endpoint/auth/1.0";
-
- AccountConfig config = new AccountConfig();
- config.setUsername(username);
- config.setPassword(password);
- config.setAuthUrl(authUrl);
- config.setAuthenticationMethod(AuthenticationMethod.BASIC);
- Account account = new AccountFactory(config).createAccount();
-
-
-Create a Container
-==================
-
-This creates a new container called ``my-new-container``:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- container.create();
-
-
-Create an Object
-================
-
-This creates an object ``foo.txt`` from the file named ``foo.txt`` in
-the container ``my-new-container``:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- StoredObject object = container.getObject("foo.txt");
- object.uploadObject(new File("foo.txt"));
-
-
-Add/Update Object Metadata
-==========================
-
-This adds the metadata key-value pair ``key``:``value`` to the object named
-``foo.txt`` in the container ``my-new-container``:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- StoredObject object = container.getObject("foo.txt");
- Map<String, Object> metadata = new TreeMap<String, Object>();
- metadata.put("key", "value");
- object.setMetadata(metadata);
-
-
-List Owned Containers
-=====================
-
-This gets a list of Containers that you own.
-This also prints out the container name.
-
-.. code-block:: java
-
- Collection<Container> containers = account.list();
- for (Container currentContainer : containers) {
- System.out.println(currentContainer.getName());
- }
-
-The output will look something like this::
-
- mahbuckat1
- mahbuckat2
- mahbuckat3
-
-
-List a Container's Content
-==========================
-
-This gets a list of objects in the container ``my-new-container``; and, it also
-prints out each object's name, the file size, and last modified date:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- Collection<StoredObject> objects = container.list();
- for (StoredObject currentObject : objects) {
- System.out.println(currentObject.getName());
- }
-
-The output will look something like this::
-
- myphoto1.jpg
- myphoto2.jpg
-
-
-Retrieve an Object's Metadata
-=============================
-
-This retrieves metadata and gets the MIME type for an object named ``foo.txt``
-in a container named ``my-new-container``:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- StoredObject object = container.getObject("foo.txt");
- Map<String, Object> returnedMetadata = object.getMetadata();
- for (String name : returnedMetadata.keySet()) {
- System.out.println("META / "+name+": "+returnedMetadata.get(name));
- }
-
-
-Retrieve an Object
-==================
-
-This downloads the object ``foo.txt`` in the container ``my-new-container``
-and saves it in ``./outfile.txt``:
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- StoredObject object = container.getObject("foo.txt");
- object.downloadObject(new File("outfile.txt"));
-
-
-Delete an Object
-================
-
-This deletes the object ``goodbye.txt`` in the container "my-new-container":
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- StoredObject object = container.getObject("foo.txt");
- object.delete();
-
-
-Delete a Container
-==================
-
-This deletes a container named "my-new-container":
-
-.. code-block:: java
-
- Container container = account.getContainer("my-new-container");
- container.delete();
-
-.. note:: The container must be empty! Otherwise it won't work!
diff --git a/src/ceph/doc/radosgw/swift/objectops.rst b/src/ceph/doc/radosgw/swift/objectops.rst
deleted file mode 100644
index fc8d219..0000000
--- a/src/ceph/doc/radosgw/swift/objectops.rst
+++ /dev/null
@@ -1,271 +0,0 @@
-===================
- Object Operations
-===================
-
-An object is a container for storing data and metadata. A container may
-have many objects, but the object names must be unique. This API enables a
-client to create an object, set access controls and metadata, retrieve an
-object's data and metadata, and delete an object. Since this API makes requests
-related to information in a particular user's account, all requests in this API
-must be authenticated unless the container or object's access control is
-deliberately made publicly accessible (i.e., allows anonymous requests).
-
-
-Create/Update an Object
-=======================
-
-To create a new object, make a ``PUT`` request with the API version, account,
-container name and the name of the new object. You must have write permission
-on the container to create or update an object. The object name must be
-unique within the container. The ``PUT`` request is not idempotent, so if you
-do not use a unique name, the request will update the object. However, you may
-use pseudo-hierarchical syntax in your object name to distinguish it from
-another object of the same name if it is under a different pseudo-hierarchical
-directory. You may include access control headers and metadata headers in the
-request.
-
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{api version}/{account}/{container}/{object} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``ETag``
-
-:Description: An MD5 hash of the object's contents. Recommended.
-:Type: String
-:Required: No
-
-
-``Content-Type``
-
-:Description: The type of content the object contains.
-:Type: String
-:Required: No
-
-
-``Transfer-Encoding``
-
-:Description: Indicates whether the object is part of a larger aggregate object.
-:Type: String
-:Valid Values: ``chunked``
-:Required: No
-
-
-Copy an Object
-==============
-
-Copying an object allows you to make a server-side copy of an object, so that
-you don't have to download it and upload it under another container/name.
-To copy the contents of one object to another object, you may make either a
-``PUT`` request or a ``COPY`` request with the API version, account, and the
-container name. For a ``PUT`` request, use the destination container and object
-name in the request, and the source container and object in the request header.
-For a ``Copy`` request, use the source container and object in the request, and
-the destination container and object in the request header. You must have write
-permission on the container to copy an object. The destination object name must be
-unique within the container. The request is not idempotent, so if you do not use
-a unique name, the request will update the destination object. However, you may
-use pseudo-hierarchical syntax in your object name to distinguish the destination
-object from the source object of the same name if it is under a different
-pseudo-hierarchical directory. You may include access control headers and metadata
-headers in the request.
-
-Syntax
-~~~~~~
-
-::
-
- PUT /{api version}/{account}/{dest-container}/{dest-object} HTTP/1.1
- X-Copy-From: {source-container}/{source-object}
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-or alternatively:
-
-::
-
- COPY /{api version}/{account}/{source-container}/{source-object} HTTP/1.1
- Destination: {dest-container}/{dest-object}
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Copy-From``
-
-:Description: Used with a ``PUT`` request to define the source container/object path.
-:Type: String
-:Required: Yes, if using ``PUT``
-
-
-``Destination``
-
-:Description: Used with a ``COPY`` request to define the destination container/object path.
-:Type: String
-:Required: Yes, if using ``COPY``
-
-
-``If-Modified-Since``
-
-:Description: Only copies if modified since the date/time of the source object's ``last_modified`` attribute.
-:Type: Date
-:Required: No
-
-
-``If-Unmodified-Since``
-
-:Description: Only copies if not modified since the date/time of the source object's ``last_modified`` attribute.
-:Type: Date
-:Required: No
-
-``Copy-If-Match``
-
-:Description: Copies only if the ETag in the request matches the source object's ETag.
-:Type: ETag.
-:Required: No
-
-
-``Copy-If-None-Match``
-
-:Description: Copies only if the ETag in the request does not match the source object's ETag.
-:Type: ETag.
-:Required: No
-
-
-Delete an Object
-================
-
-To delete an object, make a ``DELETE`` request with the API version, account,
-container and object name. You must have write permissions on the container to delete
-an object within it. Once you have successfully deleted the object, you will be able to
-reuse the object name.
-
-Syntax
-~~~~~~
-
-::
-
- DELETE /{api version}/{account}/{container}/{object} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-Get an Object
-=============
-
-To retrieve an object, make a ``GET`` request with the API version, account,
-container and object name. You must have read permissions on the container to
-retrieve an object within it.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{api version}/{account}/{container}/{object} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``range``
-
-:Description: To retrieve a subset of an object's contents, you may specify a byte range.
-:Type: Date
-:Required: No
-
-
-``If-Modified-Since``
-
-:Description: Only copies if modified since the date/time of the source object's ``last_modified`` attribute.
-:Type: Date
-:Required: No
-
-
-``If-Unmodified-Since``
-
-:Description: Only copies if not modified since the date/time of the source object's ``last_modified`` attribute.
-:Type: Date
-:Required: No
-
-``Copy-If-Match``
-
-:Description: Copies only if the ETag in the request matches the source object's ETag.
-:Type: ETag.
-:Required: No
-
-
-``Copy-If-None-Match``
-
-:Description: Copies only if the ETag in the request does not match the source object's ETag.
-:Type: ETag.
-:Required: No
-
-
-
-Response Headers
-~~~~~~~~~~~~~~~~
-
-``Content-Range``
-
-:Description: The range of the subset of object contents. Returned only if the range header field was specified in the request
-
-
-Get Object Metadata
-===================
-
-To retrieve an object's metadata, make a ``HEAD`` request with the API version,
-account, container and object name. You must have read permissions on the
-container to retrieve metadata from an object within the container. This request
-returns the same header information as the request for the object itself, but
-it does not return the object's data.
-
-Syntax
-~~~~~~
-
-::
-
- HEAD /{api version}/{account}/{container}/{object} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-
-Add/Update Object Metadata
-==========================
-
-To add metadata to an object, make a ``POST`` request with the API version,
-account, container and object name. You must have write permissions on the
-parent container to add or update metadata.
-
-
-Syntax
-~~~~~~
-
-::
-
- POST /{api version}/{account}/{container}/{object} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Object-Meta-{key}``
-
-:Description: A user-defined meta data key that takes an arbitrary string value.
-:Type: String
-:Required: No
-
diff --git a/src/ceph/doc/radosgw/swift/python.rst b/src/ceph/doc/radosgw/swift/python.rst
deleted file mode 100644
index 28d92d7..0000000
--- a/src/ceph/doc/radosgw/swift/python.rst
+++ /dev/null
@@ -1,114 +0,0 @@
-.. _python_swift:
-
-=====================
-Python Swift Examples
-=====================
-
-Create a Connection
-===================
-
-This creates a connection so that you can interact with the server:
-
-.. code-block:: python
-
- import swiftclient
- user = 'account_name:username'
- key = 'your_api_key'
-
- conn = swiftclient.Connection(
- user=user,
- key=key,
- authurl='https://objects.dreamhost.com/auth',
- )
-
-
-Create a Container
-==================
-
-This creates a new container called ``my-new-container``:
-
-.. code-block:: python
-
- container_name = 'my-new-container'
- conn.put_container(container_name)
-
-
-Create an Object
-================
-
-This creates a file ``hello.txt`` from the file named ``my_hello.txt``:
-
-.. code-block:: python
-
- with open('hello.txt', 'r') as hello_file:
- conn.put_object(container_name, 'hello.txt',
- contents= hello_file.read(),
- content_type='text/plain')
-
-
-List Owned Containers
-=====================
-
-This gets a list of containers that you own, and prints out the container name:
-
-.. code-block:: python
-
- for container in conn.get_account()[1]:
- print container['name']
-
-The output will look something like this::
-
- mahbuckat1
- mahbuckat2
- mahbuckat3
-
-List a Container's Content
-==========================
-
-This gets a list of objects in the container, and prints out each
-object's name, the file size, and last modified date:
-
-.. code-block:: python
-
- for data in conn.get_container(container_name)[1]:
- print '{0}\t{1}\t{2}'.format(data['name'], data['bytes'], data['last_modified'])
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-Retrieve an Object
-==================
-
-This downloads the object ``hello.txt`` and saves it in
-``./my_hello.txt``:
-
-.. code-block:: python
-
- obj_tuple = conn.get_object(container_name, 'hello.txt')
- with open('my_hello.txt', 'w') as my_hello:
- my_hello.write(obj_tuple[1])
-
-
-Delete an Object
-================
-
-This deletes the object ``hello.txt``:
-
-.. code-block:: python
-
- conn.delete_object(container_name, 'hello.txt')
-
-Delete a Container
-==================
-
-.. note::
-
- The container must be empty! Otherwise the request won't work!
-
-.. code-block:: python
-
- conn.delete_container(container_name)
-
diff --git a/src/ceph/doc/radosgw/swift/ruby.rst b/src/ceph/doc/radosgw/swift/ruby.rst
deleted file mode 100644
index a20b66d..0000000
--- a/src/ceph/doc/radosgw/swift/ruby.rst
+++ /dev/null
@@ -1,119 +0,0 @@
-.. _ruby_swift:
-
-=====================
- Ruby Swift Examples
-=====================
-
-Create a Connection
-===================
-
-This creates a connection so that you can interact with the server:
-
-.. code-block:: ruby
-
- require 'cloudfiles'
- username = 'account_name:user_name'
- api_key = 'your_secret_key'
-
- conn = CloudFiles::Connection.new(
- :username => username,
- :api_key => api_key,
- :auth_url => 'http://objects.dreamhost.com/auth'
- )
-
-
-Create a Container
-==================
-
-This creates a new container called ``my-new-container``
-
-.. code-block:: ruby
-
- container = conn.create_container('my-new-container')
-
-
-Create an Object
-================
-
-This creates a file ``hello.txt`` from the file named ``my_hello.txt``
-
-.. code-block:: ruby
-
- obj = container.create_object('hello.txt')
- obj.load_from_filename('./my_hello.txt')
- obj.content_type = 'text/plain'
-
-
-
-List Owned Containers
-=====================
-
-This gets a list of Containers that you own, and also prints out
-the container name:
-
-.. code-block:: ruby
-
- conn.containers.each do |container|
- puts container
- end
-
-The output will look something like this::
-
- mahbuckat1
- mahbuckat2
- mahbuckat3
-
-
-List a Container's Contents
-===========================
-
-This gets a list of objects in the container, and prints out each
-object's name, the file size, and last modified date:
-
-.. code-block:: ruby
-
- require 'date' # not necessary in the next version
-
- container.objects_detail.each do |name, data|
- puts "#{name}\t#{data[:bytes]}\t#{data[:last_modified]}"
- end
-
-The output will look something like this::
-
- myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
- myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
-
-
-
-Retrieve an Object
-==================
-
-This downloads the object ``hello.txt`` and saves it in
-``./my_hello.txt``:
-
-.. code-block:: ruby
-
- obj = container.object('hello.txt')
- obj.save_to_filename('./my_hello.txt')
-
-
-Delete an Object
-================
-
-This deletes the object ``goodbye.txt``:
-
-.. code-block:: ruby
-
- container.delete_object('goodbye.txt')
-
-
-Delete a Container
-==================
-
-.. note::
-
- The container must be empty! Otherwise the request won't work!
-
-.. code-block:: ruby
-
- container.delete_container('my-new-container')
diff --git a/src/ceph/doc/radosgw/swift/serviceops.rst b/src/ceph/doc/radosgw/swift/serviceops.rst
deleted file mode 100644
index a00f3d8..0000000
--- a/src/ceph/doc/radosgw/swift/serviceops.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-====================
- Service Operations
-====================
-
-To retrieve data about our Swift-compatible service, you may execute ``GET``
-requests using the ``X-Storage-Url`` value retrieved during authentication.
-
-List Containers
-===============
-
-A ``GET`` request that specifies the API version and the account will return
-a list of containers for a particular user account. Since the request returns
-a particular user's containers, the request requires an authentication token.
-The request cannot be made anonymously.
-
-Syntax
-~~~~~~
-
-::
-
- GET /{api version}/{account} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-
-
-Request Parameters
-~~~~~~~~~~~~~~~~~~
-
-``limit``
-
-:Description: Limits the number of results to the specified value.
-:Type: Integer
-:Required: No
-
-``format``
-
-:Description: Defines the format of the result.
-:Type: String
-:Valid Values: ``json`` | ``xml``
-:Required: No
-
-
-``marker``
-
-:Description: Returns a list of results greater than the marker value.
-:Type: String
-:Required: No
-
-
-
-Response Entities
-~~~~~~~~~~~~~~~~~
-
-The response contains a list of containers, or returns with an HTTP
-204 response code
-
-``account``
-
-:Description: A list for account information.
-:Type: Container
-
-``container``
-
-:Description: The list of containers.
-:Type: Container
-
-``name``
-
-:Description: The name of a container.
-:Type: String
-
-``bytes``
-
-:Description: The size of the container.
-:Type: Integer \ No newline at end of file
diff --git a/src/ceph/doc/radosgw/swift/tempurl.rst b/src/ceph/doc/radosgw/swift/tempurl.rst
deleted file mode 100644
index 517e5c3..0000000
--- a/src/ceph/doc/radosgw/swift/tempurl.rst
+++ /dev/null
@@ -1,84 +0,0 @@
-====================
- Temp URL Operations
-====================
-
-To allow temporary access (for eg for `GET` requests) to objects
-without the need to share credentials, temp url functionality is
-supported by swift endpoint of radosgw. For this functionality,
-initially the value of `X-Account-Meta-Temp-URL-Key` and optionally
-`X-Account-Meta-Temp-URL-Key-2` should be set. The Temp URL
-functionality relies on a HMAC-SHA1 signature against these secret
-keys.
-
-POST Temp-URL Keys
-==================
-
-A ``POST`` request to the swift account with the required Key will set
-the secret temp url key for the account against which temporary url
-access can be provided to accounts. Up to two keys are supported, and
-signatures are checked against both the keys, if present, so that keys
-can be rotated without invalidating the temporary urls.
-
-Syntax
-~~~~~~
-
-::
-
- POST /{api version}/{account} HTTP/1.1
- Host: {fqdn}
- X-Auth-Token: {auth-token}
-
-Request Headers
-~~~~~~~~~~~~~~~
-
-``X-Account-Meta-Temp-URL-Key``
-
-:Description: A user-defined key that takes an arbitrary string value.
-:Type: String
-:Required: Yes
-
-``X-Account-Meta-Temp-URL-Key-2``
-
-:Description: A user-defined key that takes an arbitrary string value.
-:Type: String
-:Required: No
-
-
-GET Temp-URL Objects
-====================
-
-Temporary URL uses a cryptographic HMAC-SHA1 signature, which includes
-the following elements:
-
-#. The value of the Request method, "GET" for instance
-#. The expiry time, in format of seconds since the epoch, ie Unix time
-#. The request path starting from "v1" onwards
-
-The above items are normalized with newlines appended between them,
-and a HMAC is generated using the SHA-1 hashing algorithm against one
-of the Temp URL Keys posted earlier.
-
-A sample python script to demonstrate the above is given below:
-
-
-.. code-block:: python
-
- import hmac
- from hashlib import sha1
- from time import time
-
- method = 'GET'
- host = 'https://objectstore.example.com/swift'
- duration_in_seconds = 300 # Duration for which the url is valid
- expires = int(time() + duration_in_seconds)
- path = '/v1/your-bucket/your-object'
- key = 'secret'
- hmac_body = '%s\n%s\n%s' % (method, expires, path)
- sig = hmac.new(key, hmac_body, sha1).hexdigest()
- rest_uri = "{host}{path}?temp_url_sig={sig}&temp_url_expires={expires}".format(
- host=host, path=path, sig=sig, expires=expires)
- print rest_uri
-
- # Example Output
- # https://objectstore.example.com/swift/v1/your-bucket/your-object?temp_url_sig=ff4657876227fc6025f04fcf1e82818266d022c6&temp_url_expires=1423200992
-
diff --git a/src/ceph/doc/radosgw/swift/tutorial.rst b/src/ceph/doc/radosgw/swift/tutorial.rst
deleted file mode 100644
index 8287d19..0000000
--- a/src/ceph/doc/radosgw/swift/tutorial.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-==========
- Tutorial
-==========
-
-The Swift-compatible API tutorials follow a simple container-based object
-lifecycle. The first step requires you to setup a connection between your
-client and the RADOS Gateway server. Then, you may follow a natural
-container and object lifecycle, including adding and retrieving object
-metadata. See example code for the following languages:
-
-- `Java`_
-- `Python`_
-- `Ruby`_
-
-
-.. ditaa:: +----------------------------+ +-----------------------------+
- | | | |
- | Create a Connection |------->| Create a Container |
- | | | |
- +----------------------------+ +-----------------------------+
- |
- +--------------------------------------+
- |
- v
- +----------------------------+ +-----------------------------+
- | | | |
- | Create an Object |------->| Add/Update Object Metadata |
- | | | |
- +----------------------------+ +-----------------------------+
- |
- +--------------------------------------+
- |
- v
- +----------------------------+ +-----------------------------+
- | | | |
- | List Owned Containers |------->| List a Container's Contents |
- | | | |
- +----------------------------+ +-----------------------------+
- |
- +--------------------------------------+
- |
- v
- +----------------------------+ +-----------------------------+
- | | | |
- | Get an Object's Metadata |------->| Retrieve an Object |
- | | | |
- +----------------------------+ +-----------------------------+
- |
- +--------------------------------------+
- |
- v
- +----------------------------+ +-----------------------------+
- | | | |
- | Delete an Object |------->| Delete a Container |
- | | | |
- +----------------------------+ +-----------------------------+
-
-.. _Java: ../java
-.. _Python: ../python
-.. _Ruby: ../ruby
diff --git a/src/ceph/doc/radosgw/troubleshooting.rst b/src/ceph/doc/radosgw/troubleshooting.rst
deleted file mode 100644
index 3e4a057..0000000
--- a/src/ceph/doc/radosgw/troubleshooting.rst
+++ /dev/null
@@ -1,179 +0,0 @@
-=================
- Troubleshooting
-=================
-
-
-The Gateway Won't Start
-=======================
-
-If you cannot start the gateway (i.e., there is no existing ``pid``),
-check to see if there is an existing ``.asok`` file from another
-user. If an ``.asok`` file from another user exists and there is no
-running ``pid``, remove the ``.asok`` file and try to start the
-process again.
-
-This may occur when you start the process as a ``root`` user and
-the startup script is trying to start the process as a
-``www-data`` or ``apache`` user and an existing ``.asok`` is
-preventing the script from starting the daemon.
-
-The radosgw init script (/etc/init.d/radosgw) also has a verbose argument that
-can provide some insight as to what could be the issue:
-
- /etc/init.d/radosgw start -v
-
-or
-
- /etc/init.d radosgw start --verbose
-
-HTTP Request Errors
-===================
-
-Examining the access and error logs for the web server itself is
-probably the first step in identifying what is going on. If there is
-a 500 error, that usually indicates a problem communicating with the
-``radosgw`` daemon. Ensure the daemon is running, its socket path is
-configured, and that the web server is looking for it in the proper
-location.
-
-
-Crashed ``radosgw`` process
-===========================
-
-If the ``radosgw`` process dies, you will normally see a 500 error
-from the web server (apache, nginx, etc.). In that situation, simply
-restarting radosgw will restore service.
-
-To diagnose the cause of the crash, check the log in ``/var/log/ceph``
-and/or the core file (if one was generated).
-
-
-Blocked ``radosgw`` Requests
-============================
-
-If some (or all) radosgw requests appear to be blocked, you can get
-some insight into the internal state of the ``radosgw`` daemon via
-its admin socket. By default, there will be a socket configured to
-reside in ``/var/run/ceph``, and the daemon can be queried with::
-
- ceph daemon /var/run/ceph/client.rgw help
-
- help list available commands
- objecter_requests show in-progress osd requests
- perfcounters_dump dump perfcounters value
- perfcounters_schema dump perfcounters schema
- version get protocol version
-
-Of particular interest::
-
- ceph daemon /var/run/ceph/client.rgw objecter_requests
- ...
-
-will dump information about current in-progress requests with the
-RADOS cluster. This allows one to identify if any requests are blocked
-by a non-responsive OSD. For example, one might see::
-
- { "ops": [
- { "tid": 1858,
- "pg": "2.d2041a48",
- "osd": 1,
- "last_sent": "2012-03-08 14:56:37.949872",
- "attempts": 1,
- "object_id": "fatty_25647_object1857",
- "object_locator": "@2",
- "snapid": "head",
- "snap_context": "0=[]",
- "mtime": "2012-03-08 14:56:37.949813",
- "osd_ops": [
- "write 0~4096"]},
- { "tid": 1873,
- "pg": "2.695e9f8e",
- "osd": 1,
- "last_sent": "2012-03-08 14:56:37.970615",
- "attempts": 1,
- "object_id": "fatty_25647_object1872",
- "object_locator": "@2",
- "snapid": "head",
- "snap_context": "0=[]",
- "mtime": "2012-03-08 14:56:37.970555",
- "osd_ops": [
- "write 0~4096"]}],
- "linger_ops": [],
- "pool_ops": [],
- "pool_stat_ops": [],
- "statfs_ops": []}
-
-In this dump, two requests are in progress. The ``last_sent`` field is
-the time the RADOS request was sent. If this is a while ago, it suggests
-that the OSD is not responding. For example, for request 1858, you could
-check the OSD status with::
-
- ceph pg map 2.d2041a48
-
- osdmap e9 pg 2.d2041a48 (2.0) -> up [1,0] acting [1,0]
-
-This tells us to look at ``osd.1``, the primary copy for this PG::
-
- ceph daemon osd.1 ops
- { "num_ops": 651,
- "ops": [
- { "description": "osd_op(client.4124.0:1858 fatty_25647_object1857 [write 0~4096] 2.d2041a48)",
- "received_at": "1331247573.344650",
- "age": "25.606449",
- "flag_point": "waiting for sub ops",
- "client_info": { "client": "client.4124",
- "tid": 1858}},
- ...
-
-The ``flag_point`` field indicates that the OSD is currently waiting
-for replicas to respond, in this case ``osd.0``.
-
-
-Java S3 API Troubleshooting
-===========================
-
-
-Peer Not Authenticated
-----------------------
-
-You may receive an error that looks like this::
-
- [java] INFO: Unable to execute HTTP request: peer not authenticated
-
-The Java SDK for S3 requires a valid certificate from a recognized certificate
-authority, because it uses HTTPS by default. If you are just testing the Ceph
-Object Storage services, you can resolve this problem in a few ways:
-
-#. Prepend the IP address or hostname with ``http://``. For example, change this::
-
- conn.setEndpoint("myserver");
-
- To::
-
- conn.setEndpoint("http://myserver")
-
-#. After setting your credentials, add a client configuration and set the
- protocol to ``Protocol.HTTP``. ::
-
- AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
-
- ClientConfiguration clientConfig = new ClientConfiguration();
- clientConfig.setProtocol(Protocol.HTTP);
-
- AmazonS3 conn = new AmazonS3Client(credentials, clientConfig);
-
-
-
-405 MethodNotAllowed
---------------------
-
-If you receive an 405 error, check to see if you have the S3 subdomain set up correctly.
-You will need to have a wild card setting in your DNS record for subdomain functionality
-to work properly.
-
-Also, check to ensure that the default site is disabled. ::
-
- [java] Exception in thread "main" Status Code: 405, AWS Service: Amazon S3, AWS Request ID: null, AWS Error Code: MethodNotAllowed, AWS Error Message: null, S3 Extended Request ID: null
-
-
-
diff --git a/src/ceph/doc/rbd/api/index.rst b/src/ceph/doc/rbd/api/index.rst
deleted file mode 100644
index 71f6809..0000000
--- a/src/ceph/doc/rbd/api/index.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-========================
- Ceph Block Device APIs
-========================
-
-.. toctree::
- :maxdepth: 2
-
- librados (Python) <librbdpy>
diff --git a/src/ceph/doc/rbd/api/librbdpy.rst b/src/ceph/doc/rbd/api/librbdpy.rst
deleted file mode 100644
index fa90331..0000000
--- a/src/ceph/doc/rbd/api/librbdpy.rst
+++ /dev/null
@@ -1,82 +0,0 @@
-================
- Librbd (Python)
-================
-
-.. highlight:: python
-
-The `rbd` python module provides file-like access to RBD images.
-
-
-Example: Creating and writing to an image
-=========================================
-
-To use `rbd`, you must first connect to RADOS and open an IO
-context::
-
- cluster = rados.Rados(conffile='my_ceph.conf')
- cluster.connect()
- ioctx = cluster.open_ioctx('mypool')
-
-Then you instantiate an :class:rbd.RBD object, which you use to create the
-image::
-
- rbd_inst = rbd.RBD()
- size = 4 * 1024**3 # 4 GiB
- rbd_inst.create(ioctx, 'myimage', size)
-
-To perform I/O on the image, you instantiate an :class:rbd.Image object::
-
- image = rbd.Image(ioctx, 'myimage')
- data = 'foo' * 200
- image.write(data, 0)
-
-This writes 'foo' to the first 600 bytes of the image. Note that data
-cannot be :type:unicode - `Librbd` does not know how to deal with
-characters wider than a :c:type:char.
-
-In the end, you will want to close the image, the IO context and the connection to RADOS::
-
- image.close()
- ioctx.close()
- cluster.shutdown()
-
-To be safe, each of these calls would need to be in a separate :finally
-block::
-
- cluster = rados.Rados(conffile='my_ceph_conf')
- try:
- ioctx = cluster.open_ioctx('my_pool')
- try:
- rbd_inst = rbd.RBD()
- size = 4 * 1024**3 # 4 GiB
- rbd_inst.create(ioctx, 'myimage', size)
- image = rbd.Image(ioctx, 'myimage')
- try:
- data = 'foo' * 200
- image.write(data, 0)
- finally:
- image.close()
- finally:
- ioctx.close()
- finally:
- cluster.shutdown()
-
-This can be cumbersome, so the :class:`Rados`, :class:`Ioctx`, and
-:class:`Image` classes can be used as context managers that close/shutdown
-automatically (see :pep:`343`). Using them as context managers, the
-above example becomes::
-
- with rados.Rados(conffile='my_ceph.conf') as cluster:
- with cluster.open_ioctx('mypool') as ioctx:
- rbd_inst = rbd.RBD()
- size = 4 * 1024**3 # 4 GiB
- rbd_inst.create(ioctx, 'myimage', size)
- with rbd.Image(ioctx, 'myimage') as image:
- data = 'foo' * 200
- image.write(data, 0)
-
-API Reference
-=============
-
-.. automodule:: rbd
- :members: RBD, Image, SnapIterator
diff --git a/src/ceph/doc/rbd/disk.conf b/src/ceph/doc/rbd/disk.conf
deleted file mode 100644
index 3db9b8a..0000000
--- a/src/ceph/doc/rbd/disk.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-<disk type='network' device='disk'>
- <source protocol='rbd' name='poolname/imagename'>
- <host name='{fqdn}' port='6789'/>
- <host name='{fqdn}' port='6790'/>
- <host name='{fqdn}' port='6791'/>
- </source>
- <target dev='vda' bus='virtio'/>
-</disk>
diff --git a/src/ceph/doc/rbd/index.rst b/src/ceph/doc/rbd/index.rst
deleted file mode 100644
index c297d0d..0000000
--- a/src/ceph/doc/rbd/index.rst
+++ /dev/null
@@ -1,72 +0,0 @@
-===================
- Ceph Block Device
-===================
-
-.. index:: Ceph Block Device; introduction
-
-A block is a sequence of bytes (for example, a 512-byte block of data).
-Block-based storage interfaces are the most common way to store data with
-rotating media such as hard disks, CDs, floppy disks, and even traditional
-9-track tape. The ubiquity of block device interfaces makes a virtual block
-device an ideal candidate to interact with a mass data storage system like Ceph.
-
-Ceph block devices are thin-provisioned, resizable and store data striped over
-multiple OSDs in a Ceph cluster. Ceph block devices leverage
-:abbr:`RADOS (Reliable Autonomic Distributed Object Store)` capabilities
-such as snapshotting, replication and consistency. Ceph's
-:abbr:`RADOS (Reliable Autonomic Distributed Object Store)` Block Devices (RBD)
-interact with OSDs using kernel modules or the ``librbd`` library.
-
-.. ditaa:: +------------------------+ +------------------------+
- | Kernel Module | | librbd |
- +------------------------+-+------------------------+
- | RADOS Protocol |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-.. note:: Kernel modules can use Linux page caching. For ``librbd``-based
- applications, Ceph supports `RBD Caching`_.
-
-Ceph's block devices deliver high performance with infinite scalability to
-`kernel modules`_, or to :abbr:`KVMs (kernel virtual machines)` such as `QEMU`_, and
-cloud-based computing systems like `OpenStack`_ and `CloudStack`_ that rely on
-libvirt and QEMU to integrate with Ceph block devices. You can use the same cluster
-to operate the `Ceph RADOS Gateway`_, the `Ceph FS filesystem`_, and Ceph block
-devices simultaneously.
-
-.. important:: To use Ceph Block Devices, you must have access to a running
- Ceph cluster.
-
-.. toctree::
- :maxdepth: 1
-
- Commands <rados-rbd-cmds>
- Kernel Modules <rbd-ko>
- Snapshots<rbd-snapshot>
- Mirroring <rbd-mirroring>
- iSCSI Gateway <iscsi-overview>
- QEMU <qemu-rbd>
- libvirt <libvirt>
- Cache Settings <rbd-config-ref/>
- OpenStack <rbd-openstack>
- CloudStack <rbd-cloudstack>
- RBD Replay <rbd-replay>
-
-.. toctree::
- :maxdepth: 2
-
- Manpages <man/index>
-
-.. toctree::
- :maxdepth: 2
-
- APIs <api/index>
-
-.. _RBD Caching: ../rbd-config-ref/
-.. _kernel modules: ../rbd-ko/
-.. _QEMU: ../qemu-rbd/
-.. _OpenStack: ../rbd-openstack
-.. _CloudStack: ../rbd-cloudstack
-.. _Ceph RADOS Gateway: ../../radosgw/
-.. _Ceph FS filesystem: ../../cephfs/
diff --git a/src/ceph/doc/rbd/iscsi-initiator-esx.rst b/src/ceph/doc/rbd/iscsi-initiator-esx.rst
deleted file mode 100644
index 18dd583..0000000
--- a/src/ceph/doc/rbd/iscsi-initiator-esx.rst
+++ /dev/null
@@ -1,36 +0,0 @@
-----------------------------------
-The iSCSI Initiator for VMware ESX
-----------------------------------
-
-**Prerequisite:**
-
-- VMware ESX 6.0 or later
-
-**iSCSI Discovery and Multipath Device Setup:**
-
-#. From vSphere, open the Storage Adapters, on the Configuration tab. Right click
- on the iSCSI Software Adapter and select Properties.
-
-#. In the General tab click the "Advanced" button and in the "Advanced Settings"
- set RecoveryTimeout to 25.
-
-#. If CHAP was setup on the iSCSI gateway, in the General tab click the "CHAP…​"
- button. If CHAP is not being used, skip to step 4.
-
-#. On the CHAP Credentials windows, select “Do not use CHAP unless required by targetâ€,
- and enter the "Name" and "Secret" values used on the initial setup for the iSCSI
- gateway, then click on the "OK" button.
-
-#. On the Dynamic Discovery tab, click the "Add…​" button, and enter the IP address
- and port of one of the iSCSI target portals. Click on the "OK" button.
-
-#. Close the iSCSI Initiator Properties window. A prompt will ask to rescan the
- iSCSI software adapter. Select Yes.
-
-#. In the Details pane, the LUN on the iSCSI target will be displayed. Right click
- on a device and select "Manage Paths".
-
-#. On the Manage Paths window, select “Most Recently Used (VMware)†for the policy
- path selection. Close and repeat for the other disks.
-
-Now the disks can be used for datastores.
diff --git a/src/ceph/doc/rbd/iscsi-initiator-rhel.rst b/src/ceph/doc/rbd/iscsi-initiator-rhel.rst
deleted file mode 100644
index 51248e4..0000000
--- a/src/ceph/doc/rbd/iscsi-initiator-rhel.rst
+++ /dev/null
@@ -1,90 +0,0 @@
-------------------------------------------------
-The iSCSI Initiator for Red Hat Enterprise Linux
-------------------------------------------------
-
-**Prerequisite:**
-
-- Package ``iscsi-initiator-utils-6.2.0.873-35`` or newer must be
- installed
-
-- Package ``device-mapper-multipath-0.4.9-99`` or newer must be
- installed
-
-**Installing:**
-
-Install the iSCSI initiator and multipath tools:
-
- ::
-
- # yum install iscsi-initiator-utils
- # yum install device-mapper-multipath
-
-**Configuring:**
-
-#. Create the default ``/etc/multipath.conf`` file and enable the
- ``multiapthd`` service:
-
- ::
-
- # mpathconf --enable --with_multipathd y
-
-#. Add the following to ``/etc/multipath.conf`` file:
-
- ::
-
- devices {
- device {
- vendor "LIO-ORG"
- hardware_handler "1 alua"
- path_grouping_policy "failover"
- path_selector "queue-length 0"
- failback 60
- path_checker tur
- prio alua
- prio_args exclusive_pref_bit
- fast_oi_fail_tmo 25
- no_path_retry queue
- }
- }
-
-#. Restart the ``multipathd`` service:
-
- ::
-
- # systemctl reload multipathd
-
-**iSCSI Discovery and Setup:**
-
-#. Discover the target portals:
-
- ::
-
- # iscsiadm -m discovery -t -st 192.168.56.101
- 192.168.56.101:3260,1 iqn.2003-01.org.linux-iscsi.rheln1
- 192.168.56.102:3260,2 iqn.2003-01.org.linux-iscsi.rheln1
-
-#. Login to target:
-
- ::
-
- # iscsiadm -m node -T iqn.2003-01.org.linux-iscsi.rheln1 -l
-
-**Multipath IO Setup:**
-
-The multipath daemon (``multipathd``), will set up devices automatically
-based on the ``multipath.conf`` settings. Running the ``multipath``
-command show devices setup in a failover configuration with a priority
-group for each path.
-
-::
-
- # multipath -ll
- mpathbt (360014059ca317516a69465c883a29603) dm-1 LIO-ORG ,IBLOCK
- size=1.0G features='0' hwhandler='1 alua' wp=rw
- |-+- policy='queue-length 0' prio=50 status=active
- | `- 28:0:0:1 sde 8:64 active ready running
- `-+- policy='queue-length 0' prio=10 status=enabled
- `- 29:0:0:1 sdc 8:32 active ready running
-
-You should now be able to use the RBD image like you would a normal
-multipath’d iSCSI disk.
diff --git a/src/ceph/doc/rbd/iscsi-initiator-win.rst b/src/ceph/doc/rbd/iscsi-initiator-win.rst
deleted file mode 100644
index 08a1cfb..0000000
--- a/src/ceph/doc/rbd/iscsi-initiator-win.rst
+++ /dev/null
@@ -1,100 +0,0 @@
------------------------------------------
-The iSCSI Initiator for Microsoft Windows
------------------------------------------
-
-**Prerequisite:**
-
-- Microsoft Windows 2016
-
-**iSCSI Initiator, Discovery and Setup:**
-
-#. Install the iSCSI initiator driver and MPIO tools.
-
-#. Launch the MPIO program, click on the “Discover Multi-Paths†tab select “Add
- support for iSCSI devicesâ€.
-
-#. On the iSCSI Initiator Properties window, on the "Discovery" tab, add a target
- portal. Enter the IP address or DNS name and Port of the Ceph iSCSI gateway.
-
-#. On the “Targets†tab, select the target and click on “Connectâ€.
-
-#. On the “Connect To Target†window, select the “Enable multi-path†option, and
- click the “Advanced†button.
-
-#. Under the "Connet using" section, select a “Target portal IP†. Select the
- “Enable CHAP login on†and enter the "Name" and "Target secret" values from the
- Ceph iSCSI Ansible client credentials section, and click OK.
-
-#. Repeat steps 5 and 6 for each target portal defined when setting up
- the iSCSI gateway.
-
-**Multipath IO Setup:**
-
-Configuring the MPIO load balancing policy, setting the timeout and
-retry options are using PowerShell with the ``mpclaim`` command. The
-reset is done in the MPIO tool.
-
-.. note::
- It is recommended to increase the ``PDORemovePeriod`` option to 120
- seconds from PowerShell. This value might need to be adjusted based
- on the application. When all paths are down, and 120 seconds
- expires, the operating system will start failing IO requests.
-
-::
-
- Set-MPIOSetting -NewPDORemovePeriod 120
-
-::
-
- mpclaim.exe -l -m 1
-
-::
-
- mpclaim -s -m
- MSDSM-wide Load Balance Policy: Fail Over Only
-
-#. Using the MPIO tool, from the “Targets†tab, click on the
- “Devices...†button.
-
-#. From the Devices window, select a disk and click the
- “MPIO...†button.
-
-#. On the "Device Details" window the paths to each target portal is
- displayed. If using the ``ceph-ansible`` setup method, the
- iSCSI gateway will use ALUA to tell the iSCSI initiator which path
- and iSCSI gateway should be used as the primary path. The Load
- Balancing Policy “Fail Over Only†must be selected
-
-::
-
- mpclaim -s -d $MPIO_DISK_ID
-
-.. note::
- For the ``ceph-ansible`` setup method, there will be one
- Active/Optimized path which is the path to the iSCSI gateway node
- that owns the LUN, and there will be an Active/Unoptimized path for
- each other iSCSI gateway node.
-
-**Tuning:**
-
-Consider using the following registry settings:
-
-- Windows Disk Timeout
-
- ::
-
- HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk
-
- ::
-
- TimeOutValue = 65
-
-- Microsoft iSCSI Initiator Driver
-
- ::
-
- HKEY_LOCAL_MACHINE\\SYSTEM\CurrentControlSet\Control\Class\{4D36E97B-E325-11CE-BFC1-08002BE10318}\<Instance_Number>\Parameters
-
- ::
- LinkDownTime = 25
- SRBTimeoutDelta = 15
diff --git a/src/ceph/doc/rbd/iscsi-initiators.rst b/src/ceph/doc/rbd/iscsi-initiators.rst
deleted file mode 100644
index d3ad633..0000000
--- a/src/ceph/doc/rbd/iscsi-initiators.rst
+++ /dev/null
@@ -1,10 +0,0 @@
---------------------------------
-Configuring the iSCSI Initiators
---------------------------------
-
-.. toctree::
- :maxdepth: 1
-
- The iSCSI Initiator for Red Hat Enterprise Linux <iscsi-initiator-rhel>
- The iSCSI Initiator for Microsoft Windows <iscsi-initiator-win>
- The iSCSI Initiator for VMware ESX <iscsi-initiator-esx>
diff --git a/src/ceph/doc/rbd/iscsi-monitoring.rst b/src/ceph/doc/rbd/iscsi-monitoring.rst
deleted file mode 100644
index d425232..0000000
--- a/src/ceph/doc/rbd/iscsi-monitoring.rst
+++ /dev/null
@@ -1,103 +0,0 @@
------------------------------
-Monitoring the iSCSI gateways
------------------------------
-
-Ceph provides an additional tool for iSCSI gateway environments
-to monitor performance of exported RADOS Block Device (RBD) images.
-
-The ``gwtop`` tool is a ``top``-like tool that displays aggregated
-performance metrics of RBD images that are exported to clients over
-iSCSI. The metrics are sourced from a Performance Metrics Domain Agent
-(PMDA). Information from the Linux-IO target (LIO) PMDA is used to list
-each exported RBD image with the connected client and its associated I/O
-metrics.
-
-**Requirements:**
-
-- A running Ceph iSCSI gateway
-
-**Installing:**
-
-#. As ``root``, install the ``ceph-iscsi-tools`` package on each iSCSI
- gateway node:
-
- ::
-
- # yum install ceph-iscsi-tools
-
-#. As ``root``, install the performance co-pilot package on each iSCSI
- gateway node:
-
- ::
-
- # yum install pcp
-
-#. As ``root``, install the LIO PMDA package on each iSCSI gateway node:
-
- ::
-
- # yum install pcp-pmda-lio
-
-#. As ``root``, enable and start the performance co-pilot service on
- each iSCSI gateway node:
-
- ::
-
- # systemctl enable pmcd
- # systemctl start pmcd
-
-#. As ``root``, register the ``pcp-pmda-lio`` agent:
-
- ::
-
- cd /var/lib/pcp/pmdas/lio
- ./Install
-
-By default, ``gwtop`` assumes the iSCSI gateway configuration object is
-stored in a RADOS object called ``gateway.conf`` in the ``rbd`` pool.
-This configuration defines the iSCSI gateways to contact for gathering
-the performance statistics. This can be overridden by using either the
-``-g`` or ``-c`` flags. See ``gwtop --help`` for more details.
-
-The LIO configuration determines which type of performance statistics to
-extract from performance co-pilot. When ``gwtop`` starts it looks at the
-LIO configuration, and if it find user-space disks, then ``gwtop``
-selects the LIO collector automatically.
-
-**Example ``gwtop`` Outputs**
-
-For kernel RBD-based devices:
-
-::
-
- gwtop 2/2 Gateways CPU% MIN: 4 MAX: 5 Network Total In: 2M Out: 3M 10:20:09
- Capacity: 8G Disks: 8 IOPS: 500 Clients: 1 Ceph: HEALTH_OK OSDs: 3
- Pool.Image Src Device Size r/s w/s rMB/s wMB/s await r_await w_await Client
- iscsi.t1703 rbd0 500M 0 0 0.00 0.00 0.00 0.00 0.00
- iscsi.testme1 rbd5 500M 0 0 0.00 0.00 0.00 0.00 0.00
- iscsi.testme2 rbd2 500M 0 0 0.00 0.00 0.00 0.00 0.00
- iscsi.testme3 rbd3 500M 0 0 0.00 0.00 0.00 0.00 0.00
- iscsi.testme5 rbd1 500M 0 0 0.00 0.00 0.00 0.00 0.00
- rbd.myhost_1 T rbd4 4G 500 0 1.95 0.00 2.37 2.37 0.00 rh460p(CON)
- rbd.test_2 rbd6 1G 0 0 0.00 0.00 0.00 0.00 0.00
- rbd.testme rbd7 500M 0 0 0.00 0.00 0.00 0.00 0.00
-
-For user backed storage (TCMU) devices:
-
-::
-
- gwtop 2/2 Gateways CPU% MIN: 4 MAX: 5 Network Total In: 2M Out: 3M 10:20:00
- Capacity: 8G Disks: 8 IOPS: 503 Clients: 1 Ceph: HEALTH_OK OSDs: 3
- Pool.Image Src Size iops rMB/s wMB/s Client
- iscsi.t1703 500M 0 0.00 0.00
- iscsi.testme1 500M 0 0.00 0.00
- iscsi.testme2 500M 0 0.00 0.00
- iscsi.testme3 500M 0 0.00 0.00
- iscsi.testme5 500M 0 0.00 0.00
- rbd.myhost_1 T 4G 504 1.95 0.00 rh460p(CON)
- rbd.test_2 1G 0 0.00 0.00
- rbd.testme 500M 0 0.00 0.00
-
-In the *Client* column, ``(CON)`` means the iSCSI initiator (client) is
-currently logged into the iSCSI gateway. If ``-multi-`` is displayed,
-then multiple clients are mapped to the single RBD image.
diff --git a/src/ceph/doc/rbd/iscsi-overview.rst b/src/ceph/doc/rbd/iscsi-overview.rst
deleted file mode 100644
index a8c64e2..0000000
--- a/src/ceph/doc/rbd/iscsi-overview.rst
+++ /dev/null
@@ -1,50 +0,0 @@
-==================
-Ceph iSCSI Gateway
-==================
-
-The iSCSI gateway is integrating Ceph Storage with the iSCSI standard to provide
-a Highly Available (HA) iSCSI target that exports RADOS Block Device (RBD) images
-as SCSI disks. The iSCSI protocol allows clients (initiators) to send SCSI commands
-to SCSI storage devices (targets) over a TCP/IP network. This allows for heterogeneous
-clients, such as Microsoft Windows, to access the Ceph Storage cluster.
-
-Each iSCSI gateway runs the Linux IO target kernel subsystem (LIO) to provide the
-iSCSI protocol support. LIO utilizes a userspace passthrough (TCMU) to interact
-with Ceph's librbd library and expose RBD images to iSCSI clients. With Ceph’s
-iSCSI gateway you can effectively run a fully integrated block-storage
-infrastructure with all the features and benefits of a conventional Storage Area
-Network (SAN).
-
-.. ditaa::
- Cluster Network
- +-------------------------------------------+
- | | | |
- +-------+ +-------+ +-------+ +-------+
- | | | | | | | |
- | OSD 1 | | OSD 2 | | OSD 3 | | OSD N |
- | {s}| | {s}| | {s}| | {s}|
- +-------+ +-------+ +-------+ +-------+
- | | | |
- +--------->| | +---------+ | |<---------+
- : | | | RBD | | | :
- | +----------------| Image |----------------+ |
- | Public Network | {d} | |
- | +---------+ |
- | |
- | +-------------------+ |
- | +--------------+ | iSCSI Initators | +--------------+ |
- | | iSCSI GW | | +-----------+ | | iSCSI GW | |
- +-->| RBD Module |<--+ | Various | +-->| RBD Module |<--+
- | | | | Operating | | | |
- +--------------+ | | Systems | | +--------------+
- | +-----------+ |
- +-------------------+
-
-
-.. toctree::
- :maxdepth: 1
-
- Requirements <iscsi-requirements>
- Configuring the iSCSI Target <iscsi-targets>
- Configuring the iSCSI Initiator <iscsi-initiators>
- Monitoring the iSCSI Gateways <iscsi-monitoring>
diff --git a/src/ceph/doc/rbd/iscsi-requirements.rst b/src/ceph/doc/rbd/iscsi-requirements.rst
deleted file mode 100644
index 1ae19e0..0000000
--- a/src/ceph/doc/rbd/iscsi-requirements.rst
+++ /dev/null
@@ -1,49 +0,0 @@
-==========================
-iSCSI Gateway Requirements
-==========================
-
-To implement the Ceph iSCSI gateway there are a few requirements. It is recommended
-to use two to four iSCSI gateway nodes for a highly available Ceph iSCSI gateway
-solution.
-
-For hardware recommendations, see the `Hardware Recommendation page <http://docs.ceph.com/docs/master/start/hardware-recommendations/>`_
-for more details.
-
-.. note::
- On the iSCSI gateway nodes, the memory footprint of the RBD images
- can grow to a large size. Plan memory requirements accordingly based
- off the number RBD images mapped.
-
-There are no specific iSCSI gateway options for the Ceph Monitors or
-OSDs, but it is important to lower the default timers for detecting
-down OSDs to reduce the possibility of initiator timeouts. The following
-configuration options are suggested for each OSD node in the storage
-cluster::
-
- [osd]
- osd heartbeat grace = 20
- osd heartbeat interval = 5
-
-- Online Updating Using the Ceph Monitor
-
- ::
-
- ceph tell <daemon_type>.<id> injectargs '--<parameter_name> <new_value>'
-
- ::
-
- ceph tell osd.0 injectargs '--osd_heartbeat_grace 20'
- ceph tell osd.0 injectargs '--osd_heartbeat_interval 5'
-
-- Online Updating on the OSD Node
-
- ::
-
- ceph daemon <daemon_type>.<id> config set osd_client_watch_timeout 15
-
- ::
-
- ceph daemon osd.0 config set osd_heartbeat_grace 20
- ceph daemon osd.0 config set osd_heartbeat_interval 5
-
-For more details on setting Ceph's configuration options, see the `Configuration page <http://docs.ceph.com/docs/master/rados/configuration/>`_.
diff --git a/src/ceph/doc/rbd/iscsi-target-ansible.rst b/src/ceph/doc/rbd/iscsi-target-ansible.rst
deleted file mode 100644
index 4169a9f..0000000
--- a/src/ceph/doc/rbd/iscsi-target-ansible.rst
+++ /dev/null
@@ -1,343 +0,0 @@
-==========================================
-Configuring the iSCSI Target using Ansible
-==========================================
-
-The Ceph iSCSI gateway is the iSCSI target node and also a Ceph client
-node. The Ceph iSCSI gateway can be a standalone node or be colocated on
-a Ceph Object Store Disk (OSD) node. Completing the following steps will
-install, and configure the Ceph iSCSI gateway for basic operation.
-
-**Requirements:**
-
-- A running Ceph Luminous (12.2.x) cluster or newer
-
-- RHEL/CentOS 7.4; or Linux kernel v4.14 or newer
-
-- The ``ceph-iscsi-config`` package installed on all the iSCSI gateway nodes
-
-**Installing:**
-
-#. On the Ansible installer node, which could be either the administration node
- or a dedicated deployment node, perform the following steps:
-
- #. As ``root``, install the ``ceph-ansible`` package:
-
- ::
-
- # yum install ceph-ansible
-
- #. Add an entry in ``/etc/ansible/hosts`` file for the gateway group:
-
- ::
-
- [ceph-iscsi-gw]
- ceph-igw-1
- ceph-igw-2
-
-.. note::
- If co-locating the iSCSI gateway with an OSD node, then add the OSD node to the
- ``[ceph-iscsi-gw]`` section.
-
-**Configuring:**
-
-The ``ceph-ansible`` package places a file in the ``/usr/share/ceph-ansible/group_vars/``
-directory called ``ceph-iscsi-gw.sample``. Create a copy of this sample file named
-``ceph-iscsi-gw.yml``. Review the following Ansible variables and descriptions,
-and update accordingly.
-
-+--------------------------------------+--------------------------------------+
-| Variable | Meaning/Purpose |
-+======================================+======================================+
-| ``seed_monitor`` | Each gateway needs access to the |
-| | ceph cluster for rados and rbd |
-| | calls. This means the iSCSI gateway |
-| | must have an appropriate |
-| | ``/etc/ceph/`` directory defined. |
-| | The ``seed_monitor`` host is used to |
-| | populate the iSCSI gateway’s |
-| | ``/etc/ceph/`` directory. |
-+--------------------------------------+--------------------------------------+
-| ``cluster_name`` | Define a custom storage cluster |
-| | name. |
-+--------------------------------------+--------------------------------------+
-| ``gateway_keyring`` | Define a custom keyring name. |
-+--------------------------------------+--------------------------------------+
-| ``deploy_settings`` | If set to ``true``, then deploy the |
-| | settings when the playbook is ran. |
-+--------------------------------------+--------------------------------------+
-| ``perform_system_checks`` | This is a boolean value that checks |
-| | for multipath and lvm configuration |
-| | settings on each gateway. It must be |
-| | set to true for at least the first |
-| | run to ensure multipathd and lvm are |
-| | configured properly. |
-+--------------------------------------+--------------------------------------+
-| ``gateway_iqn`` | This is the iSCSI IQN that all the |
-| | gateways will expose to clients. |
-| | This means each client will see the |
-| | gateway group as a single subsystem. |
-+--------------------------------------+--------------------------------------+
-| ``gateway_ip_list`` | The ip list defines the IP addresses |
-| | that will be used on the front end |
-| | network for iSCSI traffic. This IP |
-| | will be bound to the active target |
-| | portal group on each node, and is |
-| | the access point for iSCSI traffic. |
-| | Each IP should correspond to an IP |
-| | available on the hosts defined in |
-| | the ``ceph-iscsi-gw`` host group in |
-| | ``/etc/ansible/hosts``. |
-+--------------------------------------+--------------------------------------+
-| ``rbd_devices`` | This section defines the RBD images |
-| | that will be controlled and managed |
-| | within the iSCSI gateway |
-| | configuration. Parameters like |
-| | ``pool`` and ``image`` are self |
-| | explanatory. Here are the other |
-| | parameters: ``size`` = This defines |
-| | the size of the RBD. You may |
-| | increase the size later, by simply |
-| | changing this value, but shrinking |
-| | the size of an RBD is not supported |
-| | and is ignored. ``host`` = This is |
-| | the iSCSI gateway host name that |
-| | will be responsible for the rbd |
-| | allocation/resize. Every defined |
-| | ``rbd_device`` entry must have a |
-| | host assigned. ``state`` = This is |
-| | typical Ansible syntax for whether |
-| | the resource should be defined or |
-| | removed. A request with a state of |
-| | absent will first be checked to |
-| | ensure the rbd is not mapped to any |
-| | client. If the RBD is unallocated, |
-| | it will be removed from the iSCSI |
-| | gateway and deleted from the |
-| | configuration. |
-+--------------------------------------+--------------------------------------+
-| ``client_connections`` | This section defines the iSCSI |
-| | client connection details together |
-| | with the LUN (RBD image) masking. |
-| | Currently only CHAP is supported as |
-| | an authentication mechanism. Each |
-| | connection defines an ``image_list`` |
-| | which is a comma separated list of |
-| | the form |
-| | ``pool.rbd_image[,pool.rbd_image]``. |
-| | RBD images can be added and removed |
-| | from this list, to change the client |
-| | masking. Note that there are no |
-| | checks done to limit RBD sharing |
-| | across client connections. |
-+--------------------------------------+--------------------------------------+
-
-.. note::
- When using the ``gateway_iqn`` variable, and for Red Hat Enterprise Linux
- clients, installing the ``iscsi-initiator-utils`` package is required for
- retrieving the gateway’s IQN name. The iSCSI initiator name is located in the
- ``/etc/iscsi/initiatorname.iscsi`` file.
-
-**Deploying:**
-
-On the Ansible installer node, perform the following steps.
-
-#. As ``root``, execute the Ansible playbook:
-
- ::
-
- # cd /usr/share/ceph-ansible
- # ansible-playbook ceph-iscsi-gw.yml
-
- .. note::
- The Ansible playbook will handle RPM dependencies, RBD creation
- and Linux IO configuration.
-
-#. Verify the configuration from an iSCSI gateway node:
-
- ::
-
- # gwcli ls
-
- .. note::
- For more information on using the ``gwcli`` command to install and configure
- a Ceph iSCSI gateaway, see the `Configuring the iSCSI Target using the Command Line Interface`_
- section.
-
- .. important::
- Attempting to use the ``targetcli`` tool to change the configuration will
- result in the following issues, such as ALUA misconfiguration and path failover
- problems. There is the potential to corrupt data, to have mismatched
- configuration across iSCSI gateways, and to have mismatched WWN information,
- which will lead to client multipath problems.
-
-**Service Management:**
-
-The ``ceph-iscsi-config`` package installs the configuration management
-logic and a Systemd service called ``rbd-target-gw``. When the Systemd
-service is enabled, the ``rbd-target-gw`` will start at boot time and
-will restore the Linux IO state. The Ansible playbook disables the
-target service during the deployment. Below are the outcomes of when
-interacting with the ``rbd-target-gw`` Systemd service.
-
-::
-
- # systemctl <start|stop|restart|reload> rbd-target-gw
-
-- ``reload``
-
- A reload request will force ``rbd-target-gw`` to reread the
- configuration and apply it to the current running environment. This
- is normally not required, since changes are deployed in parallel from
- Ansible to all iSCSI gateway nodes
-
-- ``stop``
-
- A stop request will close the gateway’s portal interfaces, dropping
- connections to clients and wipe the current LIO configuration from
- the kernel. This returns the iSCSI gateway to a clean state. When
- clients are disconnected, active I/O is rescheduled to the other
- iSCSI gateways by the client side multipathing layer.
-
-**Administration:**
-
-Within the ``/usr/share/ceph-ansible/group_vars/ceph-iscsi-gw`` file
-there are a number of operational workflows that the Ansible playbook
-supports.
-
-.. warning::
- Before removing RBD images from the iSCSI gateway configuration,
- follow the standard procedures for removing a storage device from
- the operating system.
-
-+--------------------------------------+--------------------------------------+
-| I want to…​ | Update the ``ceph-iscsi-gw`` file |
-| | by…​ |
-+======================================+======================================+
-| Add more RBD images | Adding another entry to the |
-| | ``rbd_devices`` section with the new |
-| | image. |
-+--------------------------------------+--------------------------------------+
-| Resize an existing RBD image | Updating the size parameter within |
-| | the ``rbd_devices`` section. Client |
-| | side actions are required to pick up |
-| | the new size of the disk. |
-+--------------------------------------+--------------------------------------+
-| Add a client | Adding an entry to the |
-| | ``client_connections`` section. |
-+--------------------------------------+--------------------------------------+
-| Add another RBD to a client | Adding the relevant RBD |
-| | ``pool.image`` name to the |
-| | ``image_list`` variable for the |
-| | client. |
-+--------------------------------------+--------------------------------------+
-| Remove an RBD from a client | Removing the RBD ``pool.image`` name |
-| | from the clients ``image_list`` |
-| | variable. |
-+--------------------------------------+--------------------------------------+
-| Remove an RBD from the system | Changing the RBD entry state |
-| | variable to ``absent``. The RBD |
-| | image must be unallocated from the |
-| | operating system first for this to |
-| | succeed. |
-+--------------------------------------+--------------------------------------+
-| Change the clients CHAP credentials | Updating the relevant CHAP details |
-| | in ``client_connections``. This will |
-| | need to be coordinated with the |
-| | clients. For example, the client |
-| | issues an iSCSI logout, the |
-| | credentials are changed by the |
-| | Ansible playbook, the credentials |
-| | are changed at the client, then the |
-| | client performs an iSCSI login. |
-+--------------------------------------+--------------------------------------+
-| Remove a client | Updating the relevant |
-| | ``client_connections`` item with a |
-| | state of ``absent``. Once the |
-| | Ansible playbook is ran, the client |
-| | will be purged from the system, but |
-| | the disks will remain defined to |
-| | Linux IO for potential reuse. |
-+--------------------------------------+--------------------------------------+
-
-Once a change has been made, rerun the Ansible playbook to apply the
-change across the iSCSI gateway nodes.
-
-::
-
- # ansible-playbook ceph-iscsi-gw.yml
-
-**Removing the Configuration:**
-
-The ``ceph-ansible`` package provides an Ansible playbook to
-remove the iSCSI gateway configuration and related RBD images. The
-Ansible playbook is ``/usr/share/ceph-ansible/purge_gateways.yml``. When
-this Ansible playbook is ran a prompted for the type of purge to
-perform:
-
-*lio* :
-
-In this mode the LIO configuration is purged on all iSCSI gateways that
-are defined. Disks that were created are left untouched within the Ceph
-storage cluster.
-
-*all* :
-
-When ``all`` is chosen, the LIO configuration is removed together with
-**all** RBD images that were defined within the iSCSI gateway
-environment, other unrelated RBD images will not be removed. Ensure the
-correct mode is chosen, this operation will delete data.
-
-.. warning::
- A purge operation is destructive action against your iSCSI gateway
- environment.
-
-.. warning::
- A purge operation will fail, if RBD images have snapshots or clones
- and are exported through the Ceph iSCSI gateway.
-
-::
-
- [root@rh7-iscsi-client ceph-ansible]# ansible-playbook purge_gateways.yml
- Which configuration elements should be purged? (all, lio or abort) [abort]: all
-
-
- PLAY [Confirm removal of the iSCSI gateway configuration] *********************
-
-
- GATHERING FACTS ***************************************************************
- ok: [localhost]
-
-
- TASK: [Exit playbook if user aborted the purge] *******************************
- skipping: [localhost]
-
-
- TASK: [set_fact ] *************************************************************
- ok: [localhost]
-
-
- PLAY [Removing the gateway configuration] *************************************
-
-
- GATHERING FACTS ***************************************************************
- ok: [ceph-igw-1]
- ok: [ceph-igw-2]
-
-
- TASK: [igw_purge | purging the gateway configuration] *************************
- changed: [ceph-igw-1]
- changed: [ceph-igw-2]
-
-
- TASK: [igw_purge | deleting configured rbd devices] ***************************
- changed: [ceph-igw-1]
- changed: [ceph-igw-2]
-
-
- PLAY RECAP ********************************************************************
- ceph-igw-1 : ok=3 changed=2 unreachable=0 failed=0
- ceph-igw-2 : ok=3 changed=2 unreachable=0 failed=0
- localhost : ok=2 changed=0 unreachable=0 failed=0
-
-
-.. _Configuring the iSCSI Target using the Command Line Interface: ../iscsi-target-cli
diff --git a/src/ceph/doc/rbd/iscsi-target-cli.rst b/src/ceph/doc/rbd/iscsi-target-cli.rst
deleted file mode 100644
index 6da6f10..0000000
--- a/src/ceph/doc/rbd/iscsi-target-cli.rst
+++ /dev/null
@@ -1,163 +0,0 @@
-=============================================================
-Configuring the iSCSI Target using the Command Line Interface
-=============================================================
-
-The Ceph iSCSI gateway is the iSCSI target node and also a Ceph client
-node. The Ceph iSCSI gateway can be a standalone node or be colocated on
-a Ceph Object Store Disk (OSD) node. Completing the following steps will
-install, and configure the Ceph iSCSI gateway for basic operation.
-
-**Requirements:**
-
-- A running Ceph Luminous or later storage cluster
-
-- RHEL/CentOS 7.4; or Linux kernel v4.14 or newer
-
-- The following packages must be installed from your Linux distribution's software repository:
-
- - ``targetcli-2.1.fb47`` or newer package
-
- - ``python-rtslib-2.1.fb64`` or newer package
-
- - ``tcmu-runner-1.3.0`` or newer package
-
- - ``ceph-iscsi-config-2.3`` or newer package
-
- - ``ceph-iscsi-cli-2.5`` or newer package
-
- .. important::
- If previous versions of these packages exist, then they must
- be removed first before installing the newer versions.
-
-Do the following steps on the Ceph iSCSI gateway node before proceeding
-to the *Installing* section:
-
-#. If the Ceph iSCSI gateway is not colocated on an OSD node, then copy
- the Ceph configuration files, located in ``/etc/ceph/``, from a
- running Ceph node in the storage cluster to the iSCSI Gateway node.
- The Ceph configuration files must exist on the iSCSI gateway node
- under ``/etc/ceph/``.
-
-#. Install and configure the `Ceph Command-line
- Interface <http://docs.ceph.com/docs/master/start/quick-rbd/#install-ceph>`_
-
-#. If needed, open TCP ports 3260 and 5000 on the firewall.
-
-#. Create a new or use an existing RADOS Block Device (RBD).
-
-**Installing:**
-
-#. As ``root``, on all iSCSI gateway nodes, install the
- ``ceph-iscsi-cli`` package:
-
- ::
-
- # yum install ceph-iscsi-cli
-
-#. As ``root``, on all iSCSI gateway nodes, install the ``tcmu-runner``
- package:
-
- ::
-
- # yum install tcmu-runner
-
-#. As ``root``, on a iSCSI gateway node, create a file named
- ``iscsi-gateway.cfg`` in the ``/etc/ceph/`` directory:
-
- ::
-
- # touch /etc/ceph/iscsi-gateway.cfg
-
- #. Edit the ``iscsi-gateway.cfg`` file and add the following lines:
-
- ::
-
- [config]
- # Name of the Ceph storage cluster. A suitable Ceph configuration file allowing
- # access to the Ceph storage cluster from the gateway node is required, if not
- # colocated on an OSD node.
- cluster_name = ceph
-
- # Place a copy of the ceph cluster's admin keyring in the gateway's /etc/ceph
- # drectory and reference the filename here
- gateway_keyring = ceph.client.admin.keyring
-
-
- # API settings.
- # The API supports a number of options that allow you to tailor it to your
- # local environment. If you want to run the API under https, you will need to
- # create cert/key files that are compatible for each iSCSI gateway node, that is
- # not locked to a specific node. SSL cert and key files *must* be called
- # 'iscsi-gateway.crt' and 'iscsi-gateway.key' and placed in the '/etc/ceph/' directory
- # on *each* gateway node. With the SSL files in place, you can use 'api_secure = true'
- # to switch to https mode.
-
- # To support the API, the bear minimum settings are:
- api_secure = false
-
- # Additional API configuration options are as follows, defaults shown.
- # api_user = admin
- # api_password = admin
- # api_port = 5001
- # trusted_ip_list = 192.168.0.10,192.168.0.11
-
- .. important::
- The ``iscsi-gateway.cfg`` file must be identical on all iSCSI gateway nodes.
-
- #. As ``root``, copy the ``iscsi-gateway.cfg`` file to all iSCSI
- gateway nodes.
-
-#. As ``root``, on all iSCSI gateway nodes, enable and start the API
- service:
-
- ::
-
- # systemctl enable rbd-target-api
- # systemctl start rbd-target-api
-
-**Configuring:**
-
-#. As ``root``, on a iSCSI gateway node, start the iSCSI gateway
- command-line interface:
-
- ::
-
- # gwcli
-
-#. Creating the iSCSI gateways:
-
- ::
-
- >/iscsi-target create iqn.2003-01.com.redhat.iscsi-gw:<target_name>
- > goto gateways
- > create <iscsi_gw_name> <IP_addr_of_gw>
- > create <iscsi_gw_name> <IP_addr_of_gw>
-
-#. Adding a RADOS Block Device (RBD):
-
- ::
-
- > cd /iscsi-target/iqn.2003-01.com.redhat.iscsi-gw:<target_name>/disks/
- >/disks/ create pool=<pool_name> image=<image_name> size=<image_size>m|g|t
-
-#. Creating a client:
-
- ::
-
- > goto hosts
- > create iqn.1994-05.com.redhat:<client_name>
- > auth chap=<user_name>/<password> | nochap
-
-
- .. warning::
- CHAP must always be configured. Without CHAP, the target will
- reject any login requests.
-
-#. Adding disks to a client:
-
- ::
-
- >/iscsi-target..eph-igw/hosts> cd iqn.1994-05.com.redhat:<client_name>
- > disk add <pool_name>.<image_name>
-
-The next step is to configure the iSCSI initiators.
diff --git a/src/ceph/doc/rbd/iscsi-targets.rst b/src/ceph/doc/rbd/iscsi-targets.rst
deleted file mode 100644
index b7dcac7..0000000
--- a/src/ceph/doc/rbd/iscsi-targets.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-=============
-iSCSI Targets
-=============
-
-Traditionally, block-level access to a Ceph storage cluster has been
-limited to QEMU and ``librbd``, which is a key enabler for adoption
-within OpenStack environments. Starting with the Ceph Luminous release,
-block-level access is expanding to offer standard iSCSI support allowing
-wider platform usage, and potentially opening new use cases.
-
-- RHEL/CentOS 7.4; or Linux kernel v4.14 or newer
-
-- A working Ceph Storage cluster, deployed with ``ceph-ansible`` or using the command-line interface
-
-- iSCSI gateways nodes, which can either be colocated with OSD nodes or on dedicated nodes
-
-- Separate network subnets for iSCSI front-end traffic and Ceph back-end traffic
-
-A choice of using Ansible or the command-line interface are the
-available deployment methods for installing and configuring the Ceph
-iSCSI gateway:
-
-.. toctree::
- :maxdepth: 1
-
- Using Ansible <iscsi-target-ansible>
- Using the Command Line Interface <iscsi-target-cli>
diff --git a/src/ceph/doc/rbd/libvirt.rst b/src/ceph/doc/rbd/libvirt.rst
deleted file mode 100644
index f953b1f..0000000
--- a/src/ceph/doc/rbd/libvirt.rst
+++ /dev/null
@@ -1,319 +0,0 @@
-=================================
- Using libvirt with Ceph RBD
-=================================
-
-.. index:: Ceph Block Device; livirt
-
-The ``libvirt`` library creates a virtual machine abstraction layer between
-hypervisor interfaces and the software applications that use them. With
-``libvirt``, developers and system administrators can focus on a common
-management framework, common API, and common shell interface (i.e., ``virsh``)
-to many different hypervisors, including:
-
-- QEMU/KVM
-- XEN
-- LXC
-- VirtualBox
-- etc.
-
-Ceph block devices support QEMU/KVM. You can use Ceph block devices with
-software that interfaces with ``libvirt``. The following stack diagram
-illustrates how ``libvirt`` and QEMU use Ceph block devices via ``librbd``.
-
-
-.. ditaa:: +---------------------------------------------------+
- | libvirt |
- +------------------------+--------------------------+
- |
- | configures
- v
- +---------------------------------------------------+
- | QEMU |
- +---------------------------------------------------+
- | librbd |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-
-The most common ``libvirt`` use case involves providing Ceph block devices to
-cloud solutions like OpenStack or CloudStack. The cloud solution uses
-``libvirt`` to interact with QEMU/KVM, and QEMU/KVM interacts with Ceph block
-devices via ``librbd``. See `Block Devices and OpenStack`_ and `Block Devices
-and CloudStack`_ for details. See `Installation`_ for installation details.
-
-You can also use Ceph block devices with ``libvirt``, ``virsh`` and the
-``libvirt`` API. See `libvirt Virtualization API`_ for details.
-
-
-To create VMs that use Ceph block devices, use the procedures in the following
-sections. In the exemplary embodiment, we have used ``libvirt-pool`` for the pool
-name, ``client.libvirt`` for the user name, and ``new-libvirt-image`` for the
-image name. You may use any value you like, but ensure you replace those values
-when executing commands in the subsequent procedures.
-
-
-Configuring Ceph
-================
-
-To configure Ceph for use with ``libvirt``, perform the following steps:
-
-#. `Create a pool`_. The following example uses the
- pool name ``libvirt-pool`` with 128 placement groups. ::
-
- ceph osd pool create libvirt-pool 128 128
-
- Verify the pool exists. ::
-
- ceph osd lspools
-
-#. Use the ``rbd`` tool to initialize the pool for use by RBD::
-
- rbd pool init <pool-name>
-
-#. `Create a Ceph User`_ (or use ``client.admin`` for version 0.9.7 and
- earlier). The following example uses the Ceph user name ``client.libvirt``
- and references ``libvirt-pool``. ::
-
- ceph auth get-or-create client.libvirt mon 'profile rbd' osd 'profile rbd pool=libvirt-pool'
-
- Verify the name exists. ::
-
- ceph auth ls
-
- **NOTE**: ``libvirt`` will access Ceph using the ID ``libvirt``,
- not the Ceph name ``client.libvirt``. See `User Management - User`_ and
- `User Management - CLI`_ for a detailed explanation of the difference
- between ID and name.
-
-#. Use QEMU to `create an image`_ in your RBD pool.
- The following example uses the image name ``new-libvirt-image``
- and references ``libvirt-pool``. ::
-
- qemu-img create -f rbd rbd:libvirt-pool/new-libvirt-image 2G
-
- Verify the image exists. ::
-
- rbd -p libvirt-pool ls
-
- **NOTE:** You can also use `rbd create`_ to create an image, but we
- recommend ensuring that QEMU is working properly.
-
-.. tip:: Optionally, if you wish to enable debug logs and the admin socket for
- this client, you can add the following section to ``/etc/ceph/ceph.conf``::
-
- [client.libvirt]
- log file = /var/log/ceph/qemu-guest-$pid.log
- admin socket = /var/run/ceph/$cluster-$type.$id.$pid.$cctid.asok
-
- The ``client.libvirt`` section name should match the cephx user you created
- above. If SELinux or AppArmor is enabled, note that this could prevent the
- client process (qemu via libvirt) from writing the logs or admin socket to
- the destination locations (``/var/log/ceph`` or ``/var/run/ceph``).
-
-
-
-Preparing the VM Manager
-========================
-
-You may use ``libvirt`` without a VM manager, but you may find it simpler to
-create your first domain with ``virt-manager``.
-
-#. Install a virtual machine manager. See `KVM/VirtManager`_ for details. ::
-
- sudo apt-get install virt-manager
-
-#. Download an OS image (if necessary).
-
-#. Launch the virtual machine manager. ::
-
- sudo virt-manager
-
-
-
-Creating a VM
-=============
-
-To create a VM with ``virt-manager``, perform the following steps:
-
-#. Press the **Create New Virtual Machine** button.
-
-#. Name the new virtual machine domain. In the exemplary embodiment, we
- use the name ``libvirt-virtual-machine``. You may use any name you wish,
- but ensure you replace ``libvirt-virtual-machine`` with the name you
- choose in subsequent commandline and configuration examples. ::
-
- libvirt-virtual-machine
-
-#. Import the image. ::
-
- /path/to/image/recent-linux.img
-
- **NOTE:** Import a recent image. Some older images may not rescan for
- virtual devices properly.
-
-#. Configure and start the VM.
-
-#. You may use ``virsh list`` to verify the VM domain exists. ::
-
- sudo virsh list
-
-#. Login to the VM (root/root)
-
-#. Stop the VM before configuring it for use with Ceph.
-
-
-Configuring the VM
-==================
-
-When configuring the VM for use with Ceph, it is important to use ``virsh``
-where appropriate. Additionally, ``virsh`` commands often require root
-privileges (i.e., ``sudo``) and will not return appropriate results or notify
-you that that root privileges are required. For a reference of ``virsh``
-commands, refer to `Virsh Command Reference`_.
-
-
-#. Open the configuration file with ``virsh edit``. ::
-
- sudo virsh edit {vm-domain-name}
-
- Under ``<devices>`` there should be a ``<disk>`` entry. ::
-
- <devices>
- <emulator>/usr/bin/kvm</emulator>
- <disk type='file' device='disk'>
- <driver name='qemu' type='raw'/>
- <source file='/path/to/image/recent-linux.img'/>
- <target dev='vda' bus='virtio'/>
- <address type='drive' controller='0' bus='0' unit='0'/>
- </disk>
-
-
- Replace ``/path/to/image/recent-linux.img`` with the path to the OS image.
- The minimum kernel for using the faster ``virtio`` bus is 2.6.25. See
- `Virtio`_ for details.
-
- **IMPORTANT:** Use ``sudo virsh edit`` instead of a text editor. If you edit
- the configuration file under ``/etc/libvirt/qemu`` with a text editor,
- ``libvirt`` may not recognize the change. If there is a discrepancy between
- the contents of the XML file under ``/etc/libvirt/qemu`` and the result of
- ``sudo virsh dumpxml {vm-domain-name}``, then your VM may not work
- properly.
-
-
-#. Add the Ceph RBD image you created as a ``<disk>`` entry. ::
-
- <disk type='network' device='disk'>
- <source protocol='rbd' name='libvirt-pool/new-libvirt-image'>
- <host name='{monitor-host}' port='6789'/>
- </source>
- <target dev='vda' bus='virtio'/>
- </disk>
-
- Replace ``{monitor-host}`` with the name of your host, and replace the
- pool and/or image name as necessary. You may add multiple ``<host>``
- entries for your Ceph monitors. The ``dev`` attribute is the logical
- device name that will appear under the ``/dev`` directory of your
- VM. The optional ``bus`` attribute indicates the type of disk device to
- emulate. The valid settings are driver specific (e.g., "ide", "scsi",
- "virtio", "xen", "usb" or "sata").
-
- See `Disks`_ for details of the ``<disk>`` element, and its child elements
- and attributes.
-
-#. Save the file.
-
-#. If your Ceph Storage Cluster has `Ceph Authentication`_ enabled (it does by
- default), you must generate a secret. ::
-
- cat > secret.xml <<EOF
- <secret ephemeral='no' private='no'>
- <usage type='ceph'>
- <name>client.libvirt secret</name>
- </usage>
- </secret>
- EOF
-
-#. Define the secret. ::
-
- sudo virsh secret-define --file secret.xml
- <uuid of secret is output here>
-
-#. Get the ``client.libvirt`` key and save the key string to a file. ::
-
- ceph auth get-key client.libvirt | sudo tee client.libvirt.key
-
-#. Set the UUID of the secret. ::
-
- sudo virsh secret-set-value --secret {uuid of secret} --base64 $(cat client.libvirt.key) && rm client.libvirt.key secret.xml
-
- You must also set the secret manually by adding the following ``<auth>``
- entry to the ``<disk>`` element you entered earlier (replacing the
- ``uuid`` value with the result from the command line example above). ::
-
- sudo virsh edit {vm-domain-name}
-
- Then, add ``<auth></auth>`` element to the domain configuration file::
-
- ...
- </source>
- <auth username='libvirt'>
- <secret type='ceph' uuid='9ec59067-fdbc-a6c0-03ff-df165c0587b8'/>
- </auth>
- <target ...
-
-
- **NOTE:** The exemplary ID is ``libvirt``, not the Ceph name
- ``client.libvirt`` as generated at step 2 of `Configuring Ceph`_. Ensure
- you use the ID component of the Ceph name you generated. If for some reason
- you need to regenerate the secret, you will have to execute
- ``sudo virsh secret-undefine {uuid}`` before executing
- ``sudo virsh secret-set-value`` again.
-
-
-Summary
-=======
-
-Once you have configured the VM for use with Ceph, you can start the VM.
-To verify that the VM and Ceph are communicating, you may perform the
-following procedures.
-
-
-#. Check to see if Ceph is running::
-
- ceph health
-
-#. Check to see if the VM is running. ::
-
- sudo virsh list
-
-#. Check to see if the VM is communicating with Ceph. Replace
- ``{vm-domain-name}`` with the name of your VM domain::
-
- sudo virsh qemu-monitor-command --hmp {vm-domain-name} 'info block'
-
-#. Check to see if the device from ``<target dev='hdb' bus='ide'/>`` appears
- under ``/dev`` or under ``proc/partitions``. ::
-
- ls dev
- cat proc/partitions
-
-If everything looks okay, you may begin using the Ceph block device
-within your VM.
-
-
-.. _Installation: ../../install
-.. _libvirt Virtualization API: http://www.libvirt.org
-.. _Block Devices and OpenStack: ../rbd-openstack
-.. _Block Devices and CloudStack: ../rbd-cloudstack
-.. _Create a pool: ../../rados/operations/pools#create-a-pool
-.. _Create a Ceph User: ../../rados/operations/user-management#add-a-user
-.. _create an image: ../qemu-rbd#creating-images-with-qemu
-.. _Virsh Command Reference: http://www.libvirt.org/virshcmdref.html
-.. _KVM/VirtManager: https://help.ubuntu.com/community/KVM/VirtManager
-.. _Ceph Authentication: ../../rados/configuration/auth-config-ref
-.. _Disks: http://www.libvirt.org/formatdomain.html#elementsDisks
-.. _rbd create: ../rados-rbd-cmds#creating-a-block-device-image
-.. _User Management - User: ../../rados/operations/user-management#user
-.. _User Management - CLI: ../../rados/operations/user-management#command-line-usage
-.. _Virtio: http://www.linux-kvm.org/page/Virtio
diff --git a/src/ceph/doc/rbd/man/index.rst b/src/ceph/doc/rbd/man/index.rst
deleted file mode 100644
index 33a192a..0000000
--- a/src/ceph/doc/rbd/man/index.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-============================
- Ceph Block Device Manpages
-============================
-
-.. toctree::
- :maxdepth: 1
-
- rbd <../../man/8/rbd>
- rbd-fuse <../../man/8/rbd-fuse>
- rbd-nbd <../../man/8/rbd-nbd>
- rbd-ggate <../../man/8/rbd-ggate>
- ceph-rbdnamer <../../man/8/ceph-rbdnamer>
- rbd-replay-prep <../../man/8/rbd-replay-prep>
- rbd-replay <../../man/8/rbd-replay>
- rbd-replay-many <../../man/8/rbd-replay-many>
- rbd-map <../../man/8/rbdmap>
diff --git a/src/ceph/doc/rbd/qemu-rbd.rst b/src/ceph/doc/rbd/qemu-rbd.rst
deleted file mode 100644
index 80c5dcc..0000000
--- a/src/ceph/doc/rbd/qemu-rbd.rst
+++ /dev/null
@@ -1,218 +0,0 @@
-========================
- QEMU and Block Devices
-========================
-
-.. index:: Ceph Block Device; QEMU KVM
-
-The most frequent Ceph Block Device use case involves providing block device
-images to virtual machines. For example, a user may create a "golden" image
-with an OS and any relevant software in an ideal configuration. Then, the user
-takes a snapshot of the image. Finally, the user clones the snapshot (usually
-many times). See `Snapshots`_ for details. The ability to make copy-on-write
-clones of a snapshot means that Ceph can provision block device images to
-virtual machines quickly, because the client doesn't have to download an entire
-image each time it spins up a new virtual machine.
-
-
-.. ditaa:: +---------------------------------------------------+
- | QEMU |
- +---------------------------------------------------+
- | librbd |
- +---------------------------------------------------+
- | librados |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-
-Ceph Block Devices can integrate with the QEMU virtual machine. For details on
-QEMU, see `QEMU Open Source Processor Emulator`_. For QEMU documentation, see
-`QEMU Manual`_. For installation details, see `Installation`_.
-
-.. important:: To use Ceph Block Devices with QEMU, you must have access to a
- running Ceph cluster.
-
-
-Usage
-=====
-
-The QEMU command line expects you to specify the pool name and image name. You
-may also specify a snapshot name.
-
-QEMU will assume that the Ceph configuration file resides in the default
-location (e.g., ``/etc/ceph/$cluster.conf``) and that you are executing
-commands as the default ``client.admin`` user unless you expressly specify
-another Ceph configuration file path or another user. When specifying a user,
-QEMU uses the ``ID`` rather than the full ``TYPE:ID``. See `User Management -
-User`_ for details. Do not prepend the client type (i.e., ``client.``) to the
-beginning of the user ``ID``, or you will receive an authentication error. You
-should have the key for the ``admin`` user or the key of another user you
-specify with the ``:id={user}`` option in a keyring file stored in default path
-(i.e., ``/etc/ceph`` or the local directory with appropriate file ownership and
-permissions. Usage takes the following form::
-
- qemu-img {command} [options] rbd:{pool-name}/{image-name}[@snapshot-name][:option1=value1][:option2=value2...]
-
-For example, specifying the ``id`` and ``conf`` options might look like the following::
-
- qemu-img {command} [options] rbd:glance-pool/maipo:id=glance:conf=/etc/ceph/ceph.conf
-
-.. tip:: Configuration values containing ``:``, ``@``, or ``=`` can be escaped with a
- leading ``\`` character.
-
-
-Creating Images with QEMU
-=========================
-
-You can create a block device image from QEMU. You must specify ``rbd``, the
-pool name, and the name of the image you wish to create. You must also specify
-the size of the image. ::
-
- qemu-img create -f raw rbd:{pool-name}/{image-name} {size}
-
-For example::
-
- qemu-img create -f raw rbd:data/foo 10G
-
-.. important:: The ``raw`` data format is really the only sensible
- ``format`` option to use with RBD. Technically, you could use other
- QEMU-supported formats (such as ``qcow2`` or ``vmdk``), but doing
- so would add additional overhead, and would also render the volume
- unsafe for virtual machine live migration when caching (see below)
- is enabled.
-
-
-Resizing Images with QEMU
-=========================
-
-You can resize a block device image from QEMU. You must specify ``rbd``,
-the pool name, and the name of the image you wish to resize. You must also
-specify the size of the image. ::
-
- qemu-img resize rbd:{pool-name}/{image-name} {size}
-
-For example::
-
- qemu-img resize rbd:data/foo 10G
-
-
-Retrieving Image Info with QEMU
-===============================
-
-You can retrieve block device image information from QEMU. You must
-specify ``rbd``, the pool name, and the name of the image. ::
-
- qemu-img info rbd:{pool-name}/{image-name}
-
-For example::
-
- qemu-img info rbd:data/foo
-
-
-Running QEMU with RBD
-=====================
-
-QEMU can pass a block device from the host on to a guest, but since
-QEMU 0.15, there's no need to map an image as a block device on
-the host. Instead, QEMU can access an image as a virtual block
-device directly via ``librbd``. This performs better because it avoids
-an additional context switch, and can take advantage of `RBD caching`_.
-
-You can use ``qemu-img`` to convert existing virtual machine images to Ceph
-block device images. For example, if you have a qcow2 image, you could run::
-
- qemu-img convert -f qcow2 -O raw debian_squeeze.qcow2 rbd:data/squeeze
-
-To run a virtual machine booting from that image, you could run::
-
- qemu -m 1024 -drive format=raw,file=rbd:data/squeeze
-
-`RBD caching`_ can significantly improve performance.
-Since QEMU 1.2, QEMU's cache options control ``librbd`` caching::
-
- qemu -m 1024 -drive format=rbd,file=rbd:data/squeeze,cache=writeback
-
-If you have an older version of QEMU, you can set the ``librbd`` cache
-configuration (like any Ceph configuration option) as part of the
-'file' parameter::
-
- qemu -m 1024 -drive format=raw,file=rbd:data/squeeze:rbd_cache=true,cache=writeback
-
-.. important:: If you set rbd_cache=true, you must set cache=writeback
- or risk data loss. Without cache=writeback, QEMU will not send
- flush requests to librbd. If QEMU exits uncleanly in this
- configuration, filesystems on top of rbd can be corrupted.
-
-.. _RBD caching: ../rbd-config-ref/#rbd-cache-config-settings
-
-
-.. index:: Ceph Block Device; discard trim and libvirt
-
-Enabling Discard/TRIM
-=====================
-
-Since Ceph version 0.46 and QEMU version 1.1, Ceph Block Devices support the
-discard operation. This means that a guest can send TRIM requests to let a Ceph
-block device reclaim unused space. This can be enabled in the guest by mounting
-``ext4`` or ``XFS`` with the ``discard`` option.
-
-For this to be available to the guest, it must be explicitly enabled
-for the block device. To do this, you must specify a
-``discard_granularity`` associated with the drive::
-
- qemu -m 1024 -drive format=raw,file=rbd:data/squeeze,id=drive1,if=none \
- -device driver=ide-hd,drive=drive1,discard_granularity=512
-
-Note that this uses the IDE driver. The virtio driver does not
-support discard.
-
-If using libvirt, edit your libvirt domain's configuration file using ``virsh
-edit`` to include the ``xmlns:qemu`` value. Then, add a ``qemu:commandline``
-block as a child of that domain. The following example shows how to set two
-devices with ``qemu id=`` to different ``discard_granularity`` values.
-
-.. code-block:: guess
-
- <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
- <qemu:commandline>
- <qemu:arg value='-set'/>
- <qemu:arg value='block.scsi0-0-0.discard_granularity=4096'/>
- <qemu:arg value='-set'/>
- <qemu:arg value='block.scsi0-0-1.discard_granularity=65536'/>
- </qemu:commandline>
- </domain>
-
-
-.. index:: Ceph Block Device; cache options
-
-QEMU Cache Options
-==================
-
-QEMU's cache options correspond to the following Ceph `RBD Cache`_ settings.
-
-Writeback::
-
- rbd_cache = true
-
-Writethrough::
-
- rbd_cache = true
- rbd_cache_max_dirty = 0
-
-None::
-
- rbd_cache = false
-
-QEMU's cache settings override Ceph's cache settings (including settings that
-are explicitly set in the Ceph configuration file).
-
-.. note:: Prior to QEMU v2.4.0, if you explicitly set `RBD Cache`_ settings
- in the Ceph configuration file, your Ceph settings override the QEMU cache
- settings.
-
-.. _QEMU Open Source Processor Emulator: http://wiki.qemu.org/Main_Page
-.. _QEMU Manual: http://wiki.qemu.org/Manual
-.. _RBD Cache: ../rbd-config-ref/
-.. _Snapshots: ../rbd-snapshot/
-.. _Installation: ../../install
-.. _User Management - User: ../../rados/operations/user-management#user
diff --git a/src/ceph/doc/rbd/rados-rbd-cmds.rst b/src/ceph/doc/rbd/rados-rbd-cmds.rst
deleted file mode 100644
index 65f7737..0000000
--- a/src/ceph/doc/rbd/rados-rbd-cmds.rst
+++ /dev/null
@@ -1,223 +0,0 @@
-=======================
- Block Device Commands
-=======================
-
-.. index:: Ceph Block Device; image management
-
-The ``rbd`` command enables you to create, list, introspect and remove block
-device images. You can also use it to clone images, create snapshots,
-rollback an image to a snapshot, view a snapshot, etc. For details on using
-the ``rbd`` command, see `RBD – Manage RADOS Block Device (RBD) Images`_ for
-details.
-
-.. important:: To use Ceph Block Device commands, you must have access to
- a running Ceph cluster.
-
-Create a Block Device Pool
-==========================
-
-#. On the admin node, use the ``ceph`` tool to `create a pool`_.
-
-#. On the admin node, use the ``rbd`` tool to initialize the pool for use by RBD::
-
- rbd pool init <pool-name>
-
-.. note:: The ``rbd`` tool assumes a default pool name of 'rbd' when not
- provided.
-
-Create a Block Device User
-==========================
-
-Unless specified, the ``rbd`` command will access the Ceph cluster using the ID
-``admin``. This ID allows full administrative access to the cluster. It is
-recommended that you utilize a more restricted user wherever possible.
-
-To `create a Ceph user`_, with ``ceph`` specify the ``auth get-or-create``
-command, user name, monitor caps, and OSD caps::
-
- ceph auth get-or-create client.{ID} mon 'profile rbd' osd 'profile {profile name} [pool={pool-name}][, profile ...]'
-
-For example, to create a user ID named ``qemu`` with read-write access to the
-pool ``vms`` and read-only access to the pool ``images``, execute the
-following::
-
- ceph auth get-or-create client.qemu mon 'profile rbd' osd 'profile rbd pool=vms, profile rbd-read-only pool=images'
-
-The output from the ``ceph auth get-or-create`` command will be the keyring for
-the specified user, which can be written to ``/etc/ceph/ceph.client.{ID}.keyring``.
-
-.. note:: The user ID can be specified when using the ``rbd`` command by
- providing the ``--id {id}`` optional argument.
-
-Creating a Block Device Image
-=============================
-
-Before you can add a block device to a node, you must create an image for it in
-the :term:`Ceph Storage Cluster` first. To create a block device image, execute
-the following::
-
- rbd create --size {megabytes} {pool-name}/{image-name}
-
-For example, to create a 1GB image named ``bar`` that stores information in a
-pool named ``swimmingpool``, execute the following::
-
- rbd create --size 1024 swimmingpool/bar
-
-If you don't specify pool when creating an image, it will be stored in the
-default pool ``rbd``. For example, to create a 1GB image named ``foo`` stored in
-the default pool ``rbd``, execute the following::
-
- rbd create --size 1024 foo
-
-.. note:: You must create a pool first before you can specify it as a
- source. See `Storage Pools`_ for details.
-
-Listing Block Device Images
-===========================
-
-To list block devices in the ``rbd`` pool, execute the following
-(i.e., ``rbd`` is the default pool name)::
-
- rbd ls
-
-To list block devices in a particular pool, execute the following,
-but replace ``{poolname}`` with the name of the pool::
-
- rbd ls {poolname}
-
-For example::
-
- rbd ls swimmingpool
-
-To list deferred delete block devices in the ``rbd`` pool, execute the
-following::
-
- rbd trash ls
-
-To list deferred delete block devices in a particular pool, execute the
-following, but replace ``{poolname}`` with the name of the pool::
-
- rbd trash ls {poolname}
-
-For example::
-
- rbd trash ls swimmingpool
-
-Retrieving Image Information
-============================
-
-To retrieve information from a particular image, execute the following,
-but replace ``{image-name}`` with the name for the image::
-
- rbd info {image-name}
-
-For example::
-
- rbd info foo
-
-To retrieve information from an image within a pool, execute the following,
-but replace ``{image-name}`` with the name of the image and replace ``{pool-name}``
-with the name of the pool::
-
- rbd info {pool-name}/{image-name}
-
-For example::
-
- rbd info swimmingpool/bar
-
-Resizing a Block Device Image
-=============================
-
-:term:`Ceph Block Device` images are thin provisioned. They don't actually use
-any physical storage until you begin saving data to them. However, they do have
-a maximum capacity that you set with the ``--size`` option. If you want to
-increase (or decrease) the maximum size of a Ceph Block Device image, execute
-the following::
-
- rbd resize --size 2048 foo (to increase)
- rbd resize --size 2048 foo --allow-shrink (to decrease)
-
-
-Removing a Block Device Image
-=============================
-
-To remove a block device, execute the following, but replace ``{image-name}``
-with the name of the image you want to remove::
-
- rbd rm {image-name}
-
-For example::
-
- rbd rm foo
-
-To remove a block device from a pool, execute the following, but replace
-``{image-name}`` with the name of the image to remove and replace
-``{pool-name}`` with the name of the pool::
-
- rbd rm {pool-name}/{image-name}
-
-For example::
-
- rbd rm swimmingpool/bar
-
-To defer delete a block device from a pool, execute the following, but
-replace ``{image-name}`` with the name of the image to move and replace
-``{pool-name}`` with the name of the pool::
-
- rbd trash mv {pool-name}/{image-name}
-
-For example::
-
- rbd trash mv swimmingpool/bar
-
-To remove a deferred block device from a pool, execute the following, but
-replace ``{image-id}`` with the id of the image to remove and replace
-``{pool-name}`` with the name of the pool::
-
- rbd trash rm {pool-name}/{image-id}
-
-For example::
-
- rbd trash rm swimmingpool/2bf4474b0dc51
-
-.. note::
-
- * You can move an image to the trash even it has shapshot(s) or actively
- in-use by clones, but can not be removed from trash.
-
- * You can use *--delay* to set the defer time (default is 0), and if its
- deferment time has not expired, it can not be removed unless you use
- force.
-
-Restoring a Block Device Image
-==============================
-
-To restore a deferred delete block device in the rbd pool, execute the
-following, but replace ``{image-id}`` with the id of the image::
-
- rbd trash restore {image-d}
-
-For example::
-
- rbd trash restore 2bf4474b0dc51
-
-To restore a deferred delete block device in a particular pool, execute
-the following, but replace ``{image-id}`` with the id of the image and
-replace ``{pool-name}`` with the name of the pool::
-
- rbd trash restore {pool-name}/{image-id}
-
-For example::
-
- rbd trash restore swimmingpool/2bf4474b0dc51
-
-Also you can use *--image* to rename the iamge when restore it, for
-example::
-
- rbd trash restore swimmingpool/2bf4474b0dc51 --image new-name
-
-
-.. _create a pool: ../../rados/operations/pools/#create-a-pool
-.. _Storage Pools: ../../rados/operations/pools
-.. _RBD – Manage RADOS Block Device (RBD) Images: ../../man/8/rbd/
-.. _create a Ceph user: ../../rados/operations/user-management#add-a-user
diff --git a/src/ceph/doc/rbd/rbd-cloudstack.rst b/src/ceph/doc/rbd/rbd-cloudstack.rst
deleted file mode 100644
index f66d6d4..0000000
--- a/src/ceph/doc/rbd/rbd-cloudstack.rst
+++ /dev/null
@@ -1,135 +0,0 @@
-=============================
- Block Devices and CloudStack
-=============================
-
-You may use Ceph Block Device images with CloudStack 4.0 and higher through
-``libvirt``, which configures the QEMU interface to ``librbd``. Ceph stripes
-block device images as objects across the cluster, which means that large Ceph
-Block Device images have better performance than a standalone server!
-
-To use Ceph Block Devices with CloudStack 4.0 and higher, you must install QEMU,
-``libvirt``, and CloudStack first. We recommend using a separate physical host
-for your CloudStack installation. CloudStack recommends a minimum of 4GB of RAM
-and a dual-core processor, but more CPU and RAM will perform better. The
-following diagram depicts the CloudStack/Ceph technology stack.
-
-
-.. ditaa:: +---------------------------------------------------+
- | CloudStack |
- +---------------------------------------------------+
- | libvirt |
- +------------------------+--------------------------+
- |
- | configures
- v
- +---------------------------------------------------+
- | QEMU |
- +---------------------------------------------------+
- | librbd |
- +---------------------------------------------------+
- | librados |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-.. important:: To use Ceph Block Devices with CloudStack, you must have
- access to a running Ceph Storage Cluster.
-
-CloudStack integrates with Ceph's block devices to provide CloudStack with a
-back end for CloudStack's Primary Storage. The instructions below detail the
-setup for CloudStack Primary Storage.
-
-.. note:: We recommend installing with Ubuntu 14.04 or later so that
- you can use package installation instead of having to compile
- libvirt from source.
-
-Installing and configuring QEMU for use with CloudStack doesn't require any
-special handling. Ensure that you have a running Ceph Storage Cluster. Install
-QEMU and configure it for use with Ceph; then, install ``libvirt`` version
-0.9.13 or higher (you may need to compile from source) and ensure it is running
-with Ceph.
-
-
-.. note:: Ubuntu 14.04 and CentOS 7.2 will have ``libvirt`` with RBD storage
- pool support enabled by default.
-
-.. index:: pools; CloudStack
-
-Create a Pool
-=============
-
-By default, Ceph block devices use the ``rbd`` pool. Create a pool for
-CloudStack NFS Primary Storage. Ensure your Ceph cluster is running, then create
-the pool. ::
-
- ceph osd pool create cloudstack
-
-See `Create a Pool`_ for details on specifying the number of placement groups
-for your pools, and `Placement Groups`_ for details on the number of placement
-groups you should set for your pools.
-
-A newly created pool must initialized prior to use. Use the ``rbd`` tool
-to initialize the pool::
-
- rbd pool init cloudstack
-
-Create a Ceph User
-==================
-
-To access the Ceph cluster we require a Ceph user which has the correct
-credentials to access the ``cloudstack`` pool we just created. Although we could
-use ``client.admin`` for this, it's recommended to create a user with only
-access to the ``cloudstack`` pool. ::
-
- ceph auth get-or-create client.cloudstack mon 'profile rbd' osd 'profile rbd pool=cloudstack'
-
-Use the information returned by the command in the next step when adding the
-Primary Storage.
-
-See `User Management`_ for additional details.
-
-Add Primary Storage
-===================
-
-To add primary storage, refer to `Add Primary Storage (4.2.0)`_ to add a Ceph block device, the steps
-include:
-
-#. Log in to the CloudStack UI.
-#. Click **Infrastructure** on the left side navigation bar.
-#. Select the Zone you want to use for Primary Storage.
-#. Click the **Compute** tab.
-#. Select **View All** on the `Primary Storage` node in the diagram.
-#. Click **Add Primary Storage**.
-#. Follow the CloudStack instructions.
-
- - For **Protocol**, select ``RBD``.
- - Add cluster information (cephx is supported). Note: Do not include the ``client.`` part of the user.
- - Add ``rbd`` as a tag.
-
-
-Create a Disk Offering
-======================
-
-To create a new disk offering, refer to `Create a New Disk Offering (4.2.0)`_.
-Create a disk offering so that it matches the ``rbd`` tag.
-The ``StoragePoolAllocator`` will choose the ``rbd``
-pool when searching for a suitable storage pool. If the disk offering doesn't
-match the ``rbd`` tag, the ``StoragePoolAllocator`` may select the pool you
-created (e.g., ``cloudstack``).
-
-
-Limitations
-===========
-
-- CloudStack will only bind to one monitor (You can however create a Round Robin DNS record over multiple monitors)
-
-
-
-.. _Create a Pool: ../../rados/operations/pools#createpool
-.. _Placement Groups: ../../rados/operations/placement-groups
-.. _Install and Configure QEMU: ../qemu-rbd
-.. _Install and Configure libvirt: ../libvirt
-.. _KVM Hypervisor Host Installation: http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Installation_Guide/hypervisor-kvm-install-flow.html
-.. _Add Primary Storage (4.2.0): http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/primary-storage-add.html
-.. _Create a New Disk Offering (4.2.0): http://cloudstack.apache.org/docs/en-US/Apache_CloudStack/4.2.0/html/Admin_Guide/compute-disk-service-offerings.html#creating-disk-offerings
-.. _User Management: ../../rados/operations/user-management
diff --git a/src/ceph/doc/rbd/rbd-config-ref.rst b/src/ceph/doc/rbd/rbd-config-ref.rst
deleted file mode 100644
index db942f8..0000000
--- a/src/ceph/doc/rbd/rbd-config-ref.rst
+++ /dev/null
@@ -1,136 +0,0 @@
-=======================
- librbd Settings
-=======================
-
-See `Block Device`_ for additional details.
-
-Cache Settings
-=======================
-
-.. sidebar:: Kernel Caching
-
- The kernel driver for Ceph block devices can use the Linux page cache to
- improve performance.
-
-The user space implementation of the Ceph block device (i.e., ``librbd``) cannot
-take advantage of the Linux page cache, so it includes its own in-memory
-caching, called "RBD caching." RBD caching behaves just like well-behaved hard
-disk caching. When the OS sends a barrier or a flush request, all dirty data is
-written to the OSDs. This means that using write-back caching is just as safe as
-using a well-behaved physical hard disk with a VM that properly sends flushes
-(i.e. Linux kernel >= 2.6.32). The cache uses a Least Recently Used (LRU)
-algorithm, and in write-back mode it can coalesce contiguous requests for
-better throughput.
-
-.. versionadded:: 0.46
-
-Ceph supports write-back caching for RBD. To enable it, add ``rbd cache =
-true`` to the ``[client]`` section of your ``ceph.conf`` file. By default
-``librbd`` does not perform any caching. Writes and reads go directly to the
-storage cluster, and writes return only when the data is on disk on all
-replicas. With caching enabled, writes return immediately, unless there are more
-than ``rbd cache max dirty`` unflushed bytes. In this case, the write triggers
-writeback and blocks until enough bytes are flushed.
-
-.. versionadded:: 0.47
-
-Ceph supports write-through caching for RBD. You can set the size of
-the cache, and you can set targets and limits to switch from
-write-back caching to write through caching. To enable write-through
-mode, set ``rbd cache max dirty`` to 0. This means writes return only
-when the data is on disk on all replicas, but reads may come from the
-cache. The cache is in memory on the client, and each RBD image has
-its own. Since the cache is local to the client, there's no coherency
-if there are others accessing the image. Running GFS or OCFS on top of
-RBD will not work with caching enabled.
-
-The ``ceph.conf`` file settings for RBD should be set in the ``[client]``
-section of your configuration file. The settings include:
-
-
-``rbd cache``
-
-:Description: Enable caching for RADOS Block Device (RBD).
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-
-``rbd cache size``
-
-:Description: The RBD cache size in bytes.
-:Type: 64-bit Integer
-:Required: No
-:Default: ``32 MiB``
-
-
-``rbd cache max dirty``
-
-:Description: The ``dirty`` limit in bytes at which the cache triggers write-back. If ``0``, uses write-through caching.
-:Type: 64-bit Integer
-:Required: No
-:Constraint: Must be less than ``rbd cache size``.
-:Default: ``24 MiB``
-
-
-``rbd cache target dirty``
-
-:Description: The ``dirty target`` before the cache begins writing data to the data storage. Does not block writes to the cache.
-:Type: 64-bit Integer
-:Required: No
-:Constraint: Must be less than ``rbd cache max dirty``.
-:Default: ``16 MiB``
-
-
-``rbd cache max dirty age``
-
-:Description: The number of seconds dirty data is in the cache before writeback starts.
-:Type: Float
-:Required: No
-:Default: ``1.0``
-
-.. versionadded:: 0.60
-
-``rbd cache writethrough until flush``
-
-:Description: Start out in write-through mode, and switch to write-back after the first flush request is received. Enabling this is a conservative but safe setting in case VMs running on rbd are too old to send flushes, like the virtio driver in Linux before 2.6.32.
-:Type: Boolean
-:Required: No
-:Default: ``true``
-
-.. _Block Device: ../../rbd
-
-
-Read-ahead Settings
-=======================
-
-.. versionadded:: 0.86
-
-RBD supports read-ahead/prefetching to optimize small, sequential reads.
-This should normally be handled by the guest OS in the case of a VM,
-but boot loaders may not issue efficient reads.
-Read-ahead is automatically disabled if caching is disabled.
-
-
-``rbd readahead trigger requests``
-
-:Description: Number of sequential read requests necessary to trigger read-ahead.
-:Type: Integer
-:Required: No
-:Default: ``10``
-
-
-``rbd readahead max bytes``
-
-:Description: Maximum size of a read-ahead request. If zero, read-ahead is disabled.
-:Type: 64-bit Integer
-:Required: No
-:Default: ``512 KiB``
-
-
-``rbd readahead disable after bytes``
-
-:Description: After this many bytes have been read from an RBD image, read-ahead is disabled for that image until it is closed. This allows the guest OS to take over read-ahead once it is booted. If zero, read-ahead stays enabled.
-:Type: 64-bit Integer
-:Required: No
-:Default: ``50 MiB``
diff --git a/src/ceph/doc/rbd/rbd-ko.rst b/src/ceph/doc/rbd/rbd-ko.rst
deleted file mode 100644
index 951757c..0000000
--- a/src/ceph/doc/rbd/rbd-ko.rst
+++ /dev/null
@@ -1,59 +0,0 @@
-==========================
- Kernel Module Operations
-==========================
-
-.. index:: Ceph Block Device; kernel module
-
-.. important:: To use kernel module operations, you must have a running Ceph cluster.
-
-Get a List of Images
-====================
-
-To mount a block device image, first return a list of the images. ::
-
- rbd list
-
-Map a Block Device
-==================
-
-Use ``rbd`` to map an image name to a kernel module. You must specify the
-image name, the pool name, and the user name. ``rbd`` will load RBD kernel
-module on your behalf if it's not already loaded. ::
-
- sudo rbd map {pool-name}/{image-name} --id {user-name}
-
-For example::
-
- sudo rbd map rbd/myimage --id admin
-
-If you use `cephx`_ authentication, you must also specify a secret. It may come
-from a keyring or a file containing the secret. ::
-
- sudo rbd map rbd/myimage --id admin --keyring /path/to/keyring
- sudo rbd map rbd/myimage --id admin --keyfile /path/to/file
-
-
-Show Mapped Block Devices
-=========================
-
-To show block device images mapped to kernel modules with the ``rbd`` command,
-specify the ``showmapped`` option. ::
-
- rbd showmapped
-
-
-Unmapping a Block Device
-========================
-
-To unmap a block device image with the ``rbd`` command, specify the ``unmap``
-option and the device name (i.e., by convention the same as the block device
-image name). ::
-
- sudo rbd unmap /dev/rbd/{poolname}/{imagename}
-
-For example::
-
- sudo rbd unmap /dev/rbd/rbd/foo
-
-
-.. _cephx: ../../rados/operations/user-management/
diff --git a/src/ceph/doc/rbd/rbd-mirroring.rst b/src/ceph/doc/rbd/rbd-mirroring.rst
deleted file mode 100644
index 989f1fc..0000000
--- a/src/ceph/doc/rbd/rbd-mirroring.rst
+++ /dev/null
@@ -1,318 +0,0 @@
-===============
- RBD Mirroring
-===============
-
-.. index:: Ceph Block Device; mirroring
-
-RBD images can be asynchronously mirrored between two Ceph clusters. This
-capability uses the RBD journaling image feature to ensure crash-consistent
-replication between clusters. Mirroring is configured on a per-pool basis
-within peer clusters and can be configured to automatically mirror all
-images within a pool or only a specific subset of images. Mirroring is
-configured using the ``rbd`` command. The ``rbd-mirror`` daemon is responsible
-for pulling image updates from the remote, peer cluster and applying them to
-the image within the local cluster.
-
-.. note:: RBD mirroring requires the Ceph Jewel release or later.
-
-.. important:: To use RBD mirroring, you must have two Ceph clusters, each
- running the ``rbd-mirror`` daemon.
-
-Pool Configuration
-==================
-
-The following procedures demonstrate how to perform the basic administrative
-tasks to configure mirroring using the ``rbd`` command. Mirroring is
-configured on a per-pool basis within the Ceph clusters.
-
-The pool configuration steps should be performed on both peer clusters. These
-procedures assume two clusters, named "local" and "remote", are accessible from
-a single host for clarity.
-
-See the `rbd`_ manpage for additional details of how to connect to different
-Ceph clusters.
-
-.. note:: The cluster name in the following examples corresponds to a Ceph
- configuration file of the same name (e.g. /etc/ceph/remote.conf). See the
- `ceph-conf`_ documentation for how to configure multiple clusters.
-
-.. note:: Images in a given pool will be mirrored to a pool with the same name
- on the remote cluster. Images using a separate data-pool will use a data-pool
- with the same name on the remote cluster. E.g., if an image being mirrored is
- in the ``rbd`` pool on the local cluster and using a data-pool called
- ``rbd-ec``, pools called ``rbd`` and ``rbd-ec`` must exist on the remote
- cluster and will be used for mirroring the image.
-
-Enable Mirroring
-----------------
-
-To enable mirroring on a pool with ``rbd``, specify the ``mirror pool enable``
-command, the pool name, and the mirroring mode::
-
- rbd mirror pool enable {pool-name} {mode}
-
-The mirroring mode can either be ``pool`` or ``image``:
-
-* **pool**: When configured in ``pool`` mode, all images in the pool with the
- journaling feature enabled are mirrored.
-* **image**: When configured in ``image`` mode, mirroring needs to be
- `explicitly enabled`_ on each image.
-
-For example::
-
- rbd --cluster local mirror pool enable image-pool pool
- rbd --cluster remote mirror pool enable image-pool pool
-
-Disable Mirroring
------------------
-
-To disable mirroring on a pool with ``rbd``, specify the ``mirror pool disable``
-command and the pool name::
-
- rbd mirror pool disable {pool-name}
-
-When mirroring is disabled on a pool in this way, mirroring will also be
-disabled on any images (within the pool) for which mirroring was enabled
-explicitly.
-
-For example::
-
- rbd --cluster local mirror pool disable image-pool
- rbd --cluster remote mirror pool disable image-pool
-
-Add Cluster Peer
-----------------
-
-In order for the ``rbd-mirror`` daemon to discover its peer cluster, the peer
-needs to be registered to the pool. To add a mirroring peer Ceph cluster with
-``rbd``, specify the ``mirror pool peer add`` command, the pool name, and a
-cluster specification::
-
- rbd mirror pool peer add {pool-name} {client-name}@{cluster-name}
-
-For example::
-
- rbd --cluster local mirror pool peer add image-pool client.remote@remote
- rbd --cluster remote mirror pool peer add image-pool client.local@local
-
-Remove Cluster Peer
--------------------
-
-To remove a mirroring peer Ceph cluster with ``rbd``, specify the
-``mirror pool peer remove`` command, the pool name, and the peer UUID
-(available from the ``rbd mirror pool info`` command)::
-
- rbd mirror pool peer remove {pool-name} {peer-uuid}
-
-For example::
-
- rbd --cluster local mirror pool peer remove image-pool 55672766-c02b-4729-8567-f13a66893445
- rbd --cluster remote mirror pool peer remove image-pool 60c0e299-b38f-4234-91f6-eed0a367be08
-
-Image Configuration
-===================
-
-Unlike pool configuration, image configuration only needs to be performed against
-a single mirroring peer Ceph cluster.
-
-Mirrored RBD images are designated as either primary or non-primary. This is a
-property of the image and not the pool. Images that are designated as
-non-primary cannot be modified.
-
-Images are automatically promoted to primary when mirroring is first enabled on
-an image (either implicitly if the pool mirror mode was **pool** and the image
-has the journaling image feature enabled, or `explicitly enabled`_ by the
-``rbd`` command).
-
-Enable Image Journaling Support
--------------------------------
-
-RBD mirroring uses the RBD journaling feature to ensure that the replicated
-image always remains crash-consistent. Before an image can be mirrored to
-a peer cluster, the journaling feature must be enabled. The feature can be
-enabled at image creation time by providing the
-``--image-feature exclusive-lock,journaling`` option to the ``rbd`` command.
-
-Alternatively, the journaling feature can be dynamically enabled on
-pre-existing RBD images. To enable journaling with ``rbd``, specify
-the ``feature enable`` command, the pool and image name, and the feature name::
-
- rbd feature enable {pool-name}/{image-name} {feature-name}
-
-For example::
-
- rbd --cluster local feature enable image-pool/image-1 journaling
-
-.. note:: The journaling feature is dependent on the exclusive-lock feature. If
- the exclusive-lock feature is not already enabled, it should be enabled prior
- to enabling the journaling feature.
-
-.. tip:: You can enable journaling on all new images by default by adding
- ``rbd default features = 125`` to your Ceph configuration file.
-
-Enable Image Mirroring
-----------------------
-
-If the mirroring is configured in ``image`` mode for the image's pool, then it
-is necessary to explicitly enable mirroring for each image within the pool.
-To enable mirroring for a specific image with ``rbd``, specify the
-``mirror image enable`` command along with the pool and image name::
-
- rbd mirror image enable {pool-name}/{image-name}
-
-For example::
-
- rbd --cluster local mirror image enable image-pool/image-1
-
-Disable Image Mirroring
------------------------
-
-To disable mirroring for a specific image with ``rbd``, specify the
-``mirror image disable`` command along with the pool and image name::
-
- rbd mirror image disable {pool-name}/{image-name}
-
-For example::
-
- rbd --cluster local mirror image disable image-pool/image-1
-
-Image Promotion and Demotion
-----------------------------
-
-In a failover scenario where the primary designation needs to be moved to the
-image in the peer Ceph cluster, access to the primary image should be stopped
-(e.g. power down the VM or remove the associated drive from a VM), demote the
-current primary image, promote the new primary image, and resume access to the
-image on the alternate cluster.
-
-.. note:: RBD only provides the necessary tools to facilitate an orderly
- failover of an image. An external mechanism is required to coordinate the
- full failover process (e.g. closing the image before demotion).
-
-To demote a specific image to non-primary with ``rbd``, specify the
-``mirror image demote`` command along with the pool and image name::
-
- rbd mirror image demote {pool-name}/{image-name}
-
-For example::
-
- rbd --cluster local mirror image demote image-pool/image-1
-
-To demote all primary images within a pool to non-primary with ``rbd``, specify
-the ``mirror pool demote`` command along with the pool name::
-
- rbd mirror pool demote {pool-name}
-
-For example::
-
- rbd --cluster local mirror pool demote image-pool
-
-To promote a specific image to primary with ``rbd``, specify the
-``mirror image promote`` command along with the pool and image name::
-
- rbd mirror image promote [--force] {pool-name}/{image-name}
-
-For example::
-
- rbd --cluster remote mirror image promote image-pool/image-1
-
-To promote all non-primary images within a pool to primary with ``rbd``, specify
-the ``mirror pool promote`` command along with the pool name::
-
- rbd mirror pool promote [--force] {pool-name}
-
-For example::
-
- rbd --cluster local mirror pool promote image-pool
-
-.. tip:: Since the primary / non-primary status is per-image, it is possible to
- have two clusters split the IO load and stage failover / failback.
-
-.. note:: Promotion can be forced using the ``--force`` option. Forced
- promotion is needed when the demotion cannot be propagated to the peer
- Ceph cluster (e.g. Ceph cluster failure, communication outage). This will
- result in a split-brain scenario between the two peers and the image will no
- longer be in-sync until a `force resync command`_ is issued.
-
-Force Image Resync
-------------------
-
-If a split-brain event is detected by the ``rbd-mirror`` daemon, it will not
-attempt to mirror the affected image until corrected. To resume mirroring for an
-image, first `demote the image`_ determined to be out-of-date and then request a
-resync to the primary image. To request an image resync with ``rbd``, specify the
-``mirror image resync`` command along with the pool and image name::
-
- rbd mirror image resync {pool-name}/{image-name}
-
-For example::
-
- rbd mirror image resync image-pool/image-1
-
-.. note:: The ``rbd`` command only flags the image as requiring a resync. The
- local cluster's ``rbd-mirror`` daemon process is responsible for performing
- the resync asynchronously.
-
-Mirror Status
-=============
-
-The peer cluster replication status is stored for every primary mirrored image.
-This status can be retrieved using the ``mirror image status`` and
-``mirror pool status`` commands.
-
-To request the mirror image status with ``rbd``, specify the
-``mirror image status`` command along with the pool and image name::
-
- rbd mirror image status {pool-name}/{image-name}
-
-For example::
-
- rbd mirror image status image-pool/image-1
-
-To request the mirror pool summary status with ``rbd``, specify the
-``mirror pool status`` command along with the pool name::
-
- rbd mirror pool status {pool-name}
-
-For example::
-
- rbd mirror pool status image-pool
-
-.. note:: Adding ``--verbose`` option to the ``mirror pool status`` command will
- additionally output status details for every mirroring image in the pool.
-
-rbd-mirror Daemon
-=================
-
-The two ``rbd-mirror`` daemons are responsible for watching image journals on the
-remote, peer cluster and replaying the journal events against the local
-cluster. The RBD image journaling feature records all modifications to the
-image in the order they occur. This ensures that a crash-consistent mirror of
-the remote image is available locally.
-
-The ``rbd-mirror`` daemon is available within the optional ``rbd-mirror``
-distribution package.
-
-.. important:: Each ``rbd-mirror`` daemon requires the ability to connect
- to both clusters simultaneously.
-.. warning:: Pre-Luminous releases: only run a single ``rbd-mirror`` daemon per
- Ceph cluster.
-
-Each ``rbd-mirror`` daemon should use a unique Ceph user ID. To
-`create a Ceph user`_, with ``ceph`` specify the ``auth get-or-create``
-command, user name, monitor caps, and OSD caps::
-
- ceph auth get-or-create client.rbd-mirror.{unique id} mon 'profile rbd' osd 'profile rbd'
-
-The ``rbd-mirror`` daemon can be managed by ``systemd`` by specifying the user
-ID as the daemon instance::
-
- systemctl enable ceph-rbd-mirror@rbd-mirror.{unique id}
-
-.. _rbd: ../../man/8/rbd
-.. _ceph-conf: ../../rados/configuration/ceph-conf/#running-multiple-clusters
-.. _explicitly enabled: #enable-image-mirroring
-.. _force resync command: #force-image-resync
-.. _demote the image: #image-promotion-and-demotion
-.. _create a Ceph user: ../../rados/operations/user-management#add-a-user
-
diff --git a/src/ceph/doc/rbd/rbd-openstack.rst b/src/ceph/doc/rbd/rbd-openstack.rst
deleted file mode 100644
index db52028..0000000
--- a/src/ceph/doc/rbd/rbd-openstack.rst
+++ /dev/null
@@ -1,512 +0,0 @@
-=============================
- Block Devices and OpenStack
-=============================
-
-.. index:: Ceph Block Device; OpenStack
-
-You may use Ceph Block Device images with OpenStack through ``libvirt``, which
-configures the QEMU interface to ``librbd``. Ceph stripes block device images as
-objects across the cluster, which means that large Ceph Block Device images have
-better performance than a standalone server!
-
-To use Ceph Block Devices with OpenStack, you must install QEMU, ``libvirt``,
-and OpenStack first. We recommend using a separate physical node for your
-OpenStack installation. OpenStack recommends a minimum of 8GB of RAM and a
-quad-core processor. The following diagram depicts the OpenStack/Ceph
-technology stack.
-
-
-.. ditaa:: +---------------------------------------------------+
- | OpenStack |
- +---------------------------------------------------+
- | libvirt |
- +------------------------+--------------------------+
- |
- | configures
- v
- +---------------------------------------------------+
- | QEMU |
- +---------------------------------------------------+
- | librbd |
- +---------------------------------------------------+
- | librados |
- +------------------------+-+------------------------+
- | OSDs | | Monitors |
- +------------------------+ +------------------------+
-
-.. important:: To use Ceph Block Devices with OpenStack, you must have
- access to a running Ceph Storage Cluster.
-
-Three parts of OpenStack integrate with Ceph's block devices:
-
-- **Images**: OpenStack Glance manages images for VMs. Images are immutable.
- OpenStack treats images as binary blobs and downloads them accordingly.
-
-- **Volumes**: Volumes are block devices. OpenStack uses volumes to boot VMs,
- or to attach volumes to running VMs. OpenStack manages volumes using
- Cinder services.
-
-- **Guest Disks**: Guest disks are guest operating system disks. By default,
- when you boot a virtual machine, its disk appears as a file on the filesystem
- of the hypervisor (usually under ``/var/lib/nova/instances/<uuid>/``). Prior
- to OpenStack Havana, the only way to boot a VM in Ceph was to use the
- boot-from-volume functionality of Cinder. However, now it is possible to boot
- every virtual machine inside Ceph directly without using Cinder, which is
- advantageous because it allows you to perform maintenance operations easily
- with the live-migration process. Additionally, if your hypervisor dies it is
- also convenient to trigger ``nova evacuate`` and run the virtual machine
- elsewhere almost seamlessly.
-
-You can use OpenStack Glance to store images in a Ceph Block Device, and you
-can use Cinder to boot a VM using a copy-on-write clone of an image.
-
-The instructions below detail the setup for Glance, Cinder and Nova, although
-they do not have to be used together. You may store images in Ceph block devices
-while running VMs using a local disk, or vice versa.
-
-.. important:: Ceph doesn’t support QCOW2 for hosting a virtual machine disk.
- Thus if you want to boot virtual machines in Ceph (ephemeral backend or boot
- from volume), the Glance image format must be ``RAW``.
-
-.. tip:: This document describes using Ceph Block Devices with OpenStack Havana.
- For earlier versions of OpenStack see
- `Block Devices and OpenStack (Dumpling)`_.
-
-.. index:: pools; OpenStack
-
-Create a Pool
-=============
-
-By default, Ceph block devices use the ``rbd`` pool. You may use any available
-pool. We recommend creating a pool for Cinder and a pool for Glance. Ensure
-your Ceph cluster is running, then create the pools. ::
-
- ceph osd pool create volumes 128
- ceph osd pool create images 128
- ceph osd pool create backups 128
- ceph osd pool create vms 128
-
-See `Create a Pool`_ for detail on specifying the number of placement groups for
-your pools, and `Placement Groups`_ for details on the number of placement
-groups you should set for your pools.
-
-Newly created pools must initialized prior to use. Use the ``rbd`` tool
-to initialize the pools::
-
- rbd pool init volumes
- rbd pool init images
- rbd pool init backups
- rbd pool init vms
-
-.. _Create a Pool: ../../rados/operations/pools#createpool
-.. _Placement Groups: ../../rados/operations/placement-groups
-
-
-Configure OpenStack Ceph Clients
-================================
-
-The nodes running ``glance-api``, ``cinder-volume``, ``nova-compute`` and
-``cinder-backup`` act as Ceph clients. Each requires the ``ceph.conf`` file::
-
- ssh {your-openstack-server} sudo tee /etc/ceph/ceph.conf </etc/ceph/ceph.conf
-
-
-Install Ceph client packages
-----------------------------
-
-On the ``glance-api`` node, you will need the Python bindings for ``librbd``::
-
- sudo apt-get install python-rbd
- sudo yum install python-rbd
-
-On the ``nova-compute``, ``cinder-backup`` and on the ``cinder-volume`` node,
-use both the Python bindings and the client command line tools::
-
- sudo apt-get install ceph-common
- sudo yum install ceph-common
-
-
-Setup Ceph Client Authentication
---------------------------------
-
-If you have `cephx authentication`_ enabled, create a new user for Nova/Cinder
-and Glance. Execute the following::
-
- ceph auth get-or-create client.glance mon 'profile rbd' osd 'profile rbd pool=images'
- ceph auth get-or-create client.cinder mon 'profile rbd' osd 'profile rbd pool=volumes, profile rbd pool=vms, profile rbd pool=images'
- ceph auth get-or-create client.cinder-backup mon 'profile rbd' osd 'profile rbd pool=backups'
-
-Add the keyrings for ``client.cinder``, ``client.glance``, and
-``client.cinder-backup`` to the appropriate nodes and change their ownership::
-
- ceph auth get-or-create client.glance | ssh {your-glance-api-server} sudo tee /etc/ceph/ceph.client.glance.keyring
- ssh {your-glance-api-server} sudo chown glance:glance /etc/ceph/ceph.client.glance.keyring
- ceph auth get-or-create client.cinder | ssh {your-volume-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
- ssh {your-cinder-volume-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder.keyring
- ceph auth get-or-create client.cinder-backup | ssh {your-cinder-backup-server} sudo tee /etc/ceph/ceph.client.cinder-backup.keyring
- ssh {your-cinder-backup-server} sudo chown cinder:cinder /etc/ceph/ceph.client.cinder-backup.keyring
-
-Nodes running ``nova-compute`` need the keyring file for the ``nova-compute``
-process::
-
- ceph auth get-or-create client.cinder | ssh {your-nova-compute-server} sudo tee /etc/ceph/ceph.client.cinder.keyring
-
-They also need to store the secret key of the ``client.cinder`` user in
-``libvirt``. The libvirt process needs it to access the cluster while attaching
-a block device from Cinder.
-
-Create a temporary copy of the secret key on the nodes running
-``nova-compute``::
-
- ceph auth get-key client.cinder | ssh {your-compute-node} tee client.cinder.key
-
-Then, on the compute nodes, add the secret key to ``libvirt`` and remove the
-temporary copy of the key::
-
- uuidgen
- 457eb676-33da-42ec-9a8c-9293d545c337
-
- cat > secret.xml <<EOF
- <secret ephemeral='no' private='no'>
- <uuid>457eb676-33da-42ec-9a8c-9293d545c337</uuid>
- <usage type='ceph'>
- <name>client.cinder secret</name>
- </usage>
- </secret>
- EOF
- sudo virsh secret-define --file secret.xml
- Secret 457eb676-33da-42ec-9a8c-9293d545c337 created
- sudo virsh secret-set-value --secret 457eb676-33da-42ec-9a8c-9293d545c337 --base64 $(cat client.cinder.key) && rm client.cinder.key secret.xml
-
-Save the uuid of the secret for configuring ``nova-compute`` later.
-
-.. important:: You don't necessarily need the UUID on all the compute nodes.
- However from a platform consistency perspective, it's better to keep the
- same UUID.
-
-.. _cephx authentication: ../../rados/configuration/auth-config-ref/#enabling-disabling-cephx
-
-
-Configure OpenStack to use Ceph
-===============================
-
-Configuring Glance
-------------------
-
-Glance can use multiple back ends to store images. To use Ceph block devices by
-default, configure Glance like the following.
-
-Prior to Juno
-~~~~~~~~~~~~~~
-
-Edit ``/etc/glance/glance-api.conf`` and add under the ``[DEFAULT]`` section::
-
- default_store = rbd
- rbd_store_user = glance
- rbd_store_pool = images
- rbd_store_chunk_size = 8
-
-
-Juno
-~~~~
-
-Edit ``/etc/glance/glance-api.conf`` and add under the ``[glance_store]`` section::
-
- [DEFAULT]
- ...
- default_store = rbd
- ...
- [glance_store]
- stores = rbd
- rbd_store_pool = images
- rbd_store_user = glance
- rbd_store_ceph_conf = /etc/ceph/ceph.conf
- rbd_store_chunk_size = 8
-
-.. important:: Glance has not completely moved to 'store' yet.
- So we still need to configure the store in the DEFAULT section until Kilo.
-
-Kilo and after
-~~~~~~~~~~~~~~
-
-Edit ``/etc/glance/glance-api.conf`` and add under the ``[glance_store]`` section::
-
- [glance_store]
- stores = rbd
- default_store = rbd
- rbd_store_pool = images
- rbd_store_user = glance
- rbd_store_ceph_conf = /etc/ceph/ceph.conf
- rbd_store_chunk_size = 8
-
-For more information about the configuration options available in Glance please refer to the OpenStack Configuration Reference: http://docs.openstack.org/.
-
-Enable copy-on-write cloning of images
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Note that this exposes the back end location via Glance's API, so the endpoint
-with this option enabled should not be publicly accessible.
-
-Any OpenStack version except Mitaka
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-If you want to enable copy-on-write cloning of images, also add under the ``[DEFAULT]`` section::
-
- show_image_direct_url = True
-
-For Mitaka only
-^^^^^^^^^^^^^^^
-
-To enable image locations and take advantage of copy-on-write cloning for images, add under the ``[DEFAULT]`` section::
-
- show_multiple_locations = True
- show_image_direct_url = True
-
-Disable cache management (any OpenStack version)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Disable the Glance cache management to avoid images getting cached under ``/var/lib/glance/image-cache/``,
-assuming your configuration file has ``flavor = keystone+cachemanagement``::
-
- [paste_deploy]
- flavor = keystone
-
-Image properties
-~~~~~~~~~~~~~~~~
-
-We recommend to use the following properties for your images:
-
-- ``hw_scsi_model=virtio-scsi``: add the virtio-scsi controller and get better performance and support for discard operation
-- ``hw_disk_bus=scsi``: connect every cinder block devices to that controller
-- ``hw_qemu_guest_agent=yes``: enable the QEMU guest agent
-- ``os_require_quiesce=yes``: send fs-freeze/thaw calls through the QEMU guest agent
-
-
-Configuring Cinder
-------------------
-
-OpenStack requires a driver to interact with Ceph block devices. You must also
-specify the pool name for the block device. On your OpenStack node, edit
-``/etc/cinder/cinder.conf`` by adding::
-
- [DEFAULT]
- ...
- enabled_backends = ceph
- ...
- [ceph]
- volume_driver = cinder.volume.drivers.rbd.RBDDriver
- volume_backend_name = ceph
- rbd_pool = volumes
- rbd_ceph_conf = /etc/ceph/ceph.conf
- rbd_flatten_volume_from_snapshot = false
- rbd_max_clone_depth = 5
- rbd_store_chunk_size = 4
- rados_connect_timeout = -1
- glance_api_version = 2
-
-If you are using `cephx authentication`_, also configure the user and uuid of
-the secret you added to ``libvirt`` as documented earlier::
-
- [ceph]
- ...
- rbd_user = cinder
- rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
-
-Note that if you are configuring multiple cinder back ends,
-``glance_api_version = 2`` must be in the ``[DEFAULT]`` section.
-
-
-Configuring Cinder Backup
--------------------------
-
-OpenStack Cinder Backup requires a specific daemon so don't forget to install it.
-On your Cinder Backup node, edit ``/etc/cinder/cinder.conf`` and add::
-
- backup_driver = cinder.backup.drivers.ceph
- backup_ceph_conf = /etc/ceph/ceph.conf
- backup_ceph_user = cinder-backup
- backup_ceph_chunk_size = 134217728
- backup_ceph_pool = backups
- backup_ceph_stripe_unit = 0
- backup_ceph_stripe_count = 0
- restore_discard_excess_bytes = true
-
-
-Configuring Nova to attach Ceph RBD block device
-------------------------------------------------
-
-In order to attach Cinder devices (either normal block or by issuing a boot
-from volume), you must tell Nova (and libvirt) which user and UUID to refer to
-when attaching the device. libvirt will refer to this user when connecting and
-authenticating with the Ceph cluster. ::
-
- [libvirt]
- ...
- rbd_user = cinder
- rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
-
-These two flags are also used by the Nova ephemeral backend.
-
-
-Configuring Nova
-----------------
-
-In order to boot all the virtual machines directly into Ceph, you must
-configure the ephemeral backend for Nova.
-
-It is recommended to enable the RBD cache in your Ceph configuration file
-(enabled by default since Giant). Moreover, enabling the admin socket
-brings a lot of benefits while troubleshooting. Having one socket
-per virtual machine using a Ceph block device will help investigating performance and/or wrong behaviors.
-
-This socket can be accessed like this::
-
- ceph daemon /var/run/ceph/ceph-client.cinder.19195.32310016.asok help
-
-Now on every compute nodes edit your Ceph configuration file::
-
- [client]
- rbd cache = true
- rbd cache writethrough until flush = true
- admin socket = /var/run/ceph/guests/$cluster-$type.$id.$pid.$cctid.asok
- log file = /var/log/qemu/qemu-guest-$pid.log
- rbd concurrent management ops = 20
-
-Configure the permissions of these paths::
-
- mkdir -p /var/run/ceph/guests/ /var/log/qemu/
- chown qemu:libvirtd /var/run/ceph/guests /var/log/qemu/
-
-Note that user ``qemu`` and group ``libvirtd`` can vary depending on your system.
-The provided example works for RedHat based systems.
-
-.. tip:: If your virtual machine is already running you can simply restart it to get the socket
-
-
-Havana and Icehouse
-~~~~~~~~~~~~~~~~~~~
-
-Havana and Icehouse require patches to implement copy-on-write cloning and fix
-bugs with image size and live migration of ephemeral disks on rbd. These are
-available in branches based on upstream Nova `stable/havana`_ and
-`stable/icehouse`_. Using them is not mandatory but **highly recommended** in
-order to take advantage of the copy-on-write clone functionality.
-
-On every Compute node, edit ``/etc/nova/nova.conf`` and add::
-
- libvirt_images_type = rbd
- libvirt_images_rbd_pool = vms
- libvirt_images_rbd_ceph_conf = /etc/ceph/ceph.conf
- disk_cachemodes="network=writeback"
- rbd_user = cinder
- rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
-
-It is also a good practice to disable file injection. While booting an
-instance, Nova usually attempts to open the rootfs of the virtual machine.
-Then, Nova injects values such as password, ssh keys etc. directly into the
-filesystem. However, it is better to rely on the metadata service and
-``cloud-init``.
-
-On every Compute node, edit ``/etc/nova/nova.conf`` and add::
-
- libvirt_inject_password = false
- libvirt_inject_key = false
- libvirt_inject_partition = -2
-
-To ensure a proper live-migration, use the following flags::
-
- libvirt_live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
-
-Juno
-~~~~
-
-In Juno, Ceph block device was moved under the ``[libvirt]`` section.
-On every Compute node, edit ``/etc/nova/nova.conf`` under the ``[libvirt]``
-section and add::
-
- [libvirt]
- images_type = rbd
- images_rbd_pool = vms
- images_rbd_ceph_conf = /etc/ceph/ceph.conf
- rbd_user = cinder
- rbd_secret_uuid = 457eb676-33da-42ec-9a8c-9293d545c337
- disk_cachemodes="network=writeback"
-
-
-It is also a good practice to disable file injection. While booting an
-instance, Nova usually attempts to open the rootfs of the virtual machine.
-Then, Nova injects values such as password, ssh keys etc. directly into the
-filesystem. However, it is better to rely on the metadata service and
-``cloud-init``.
-
-On every Compute node, edit ``/etc/nova/nova.conf`` and add the following
-under the ``[libvirt]`` section::
-
- inject_password = false
- inject_key = false
- inject_partition = -2
-
-To ensure a proper live-migration, use the following flags (under the ``[libvirt]`` section)::
-
- live_migration_flag="VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST,VIR_MIGRATE_TUNNELLED"
-
-Kilo
-~~~~
-
-Enable discard support for virtual machine ephemeral root disk::
-
- [libvirt]
- ...
- ...
- hw_disk_discard = unmap # enable discard support (be careful of performance)
-
-
-Restart OpenStack
-=================
-
-To activate the Ceph block device driver and load the block device pool name
-into the configuration, you must restart OpenStack. Thus, for Debian based
-systems execute these commands on the appropriate nodes::
-
- sudo glance-control api restart
- sudo service nova-compute restart
- sudo service cinder-volume restart
- sudo service cinder-backup restart
-
-For Red Hat based systems execute::
-
- sudo service openstack-glance-api restart
- sudo service openstack-nova-compute restart
- sudo service openstack-cinder-volume restart
- sudo service openstack-cinder-backup restart
-
-Once OpenStack is up and running, you should be able to create a volume
-and boot from it.
-
-
-Booting from a Block Device
-===========================
-
-You can create a volume from an image using the Cinder command line tool::
-
- cinder create --image-id {id of image} --display-name {name of volume} {size of volume}
-
-Note that image must be RAW format. You can use `qemu-img`_ to convert
-from one format to another. For example::
-
- qemu-img convert -f {source-format} -O {output-format} {source-filename} {output-filename}
- qemu-img convert -f qcow2 -O raw precise-cloudimg.img precise-cloudimg.raw
-
-When Glance and Cinder are both using Ceph block devices, the image is a
-copy-on-write clone, so it can create a new volume quickly. In the OpenStack
-dashboard, you can boot from that volume by performing the following steps:
-
-#. Launch a new instance.
-#. Choose the image associated to the copy-on-write clone.
-#. Select 'boot from volume'.
-#. Select the volume you created.
-
-.. _qemu-img: ../qemu-rbd/#running-qemu-with-rbd
-.. _Block Devices and OpenStack (Dumpling): http://docs.ceph.com/docs/dumpling/rbd/rbd-openstack
-.. _stable/havana: https://github.com/jdurgin/nova/tree/havana-ephemeral-rbd
-.. _stable/icehouse: https://github.com/angdraug/nova/tree/rbd-ephemeral-clone-stable-icehouse
diff --git a/src/ceph/doc/rbd/rbd-replay.rst b/src/ceph/doc/rbd/rbd-replay.rst
deleted file mode 100644
index e1c96b2..0000000
--- a/src/ceph/doc/rbd/rbd-replay.rst
+++ /dev/null
@@ -1,42 +0,0 @@
-===================
- RBD Replay
-===================
-
-.. index:: Ceph Block Device; RBD Replay
-
-RBD Replay is a set of tools for capturing and replaying Rados Block Device
-(RBD) workloads. To capture an RBD workload, ``lttng-tools`` must be installed
-on the client, and ``librbd`` on the client must be the v0.87 (Giant) release
-or later. To replay an RBD workload, ``librbd`` on the client must be the Giant
-release or later.
-
-Capture and replay takes three steps:
-
-#. Capture the trace. Make sure to capture ``pthread_id`` context::
-
- mkdir -p traces
- lttng create -o traces librbd
- lttng enable-event -u 'librbd:*'
- lttng add-context -u -t pthread_id
- lttng start
- # run RBD workload here
- lttng stop
-
-#. Process the trace with `rbd-replay-prep`_::
-
- rbd-replay-prep traces/ust/uid/*/* replay.bin
-
-#. Replay the trace with `rbd-replay`_. Use read-only until you know
- it's doing what you want::
-
- rbd-replay --read-only replay.bin
-
-.. important:: ``rbd-replay`` will destroy data by default. Do not use against
- an image you wish to keep, unless you use the ``--read-only`` option.
-
-The replayed workload does not have to be against the same RBD image or even the
-same cluster as the captured workload. To account for differences, you may need
-to use the ``--pool`` and ``--map-image`` options of ``rbd-replay``.
-
-.. _rbd-replay: ../../man/8/rbd-replay
-.. _rbd-replay-prep: ../../man/8/rbd-replay-prep
diff --git a/src/ceph/doc/rbd/rbd-snapshot.rst b/src/ceph/doc/rbd/rbd-snapshot.rst
deleted file mode 100644
index 2e5af9f..0000000
--- a/src/ceph/doc/rbd/rbd-snapshot.rst
+++ /dev/null
@@ -1,308 +0,0 @@
-===========
- Snapshots
-===========
-
-.. index:: Ceph Block Device; snapshots
-
-A snapshot is a read-only copy of the state of an image at a particular point in
-time. One of the advanced features of Ceph block devices is that you can create
-snapshots of the images to retain a history of an image's state. Ceph also
-supports snapshot layering, which allows you to clone images (e.g., a VM image)
-quickly and easily. Ceph supports block device snapshots using the ``rbd``
-command and many higher level interfaces, including `QEMU`_, `libvirt`_,
-`OpenStack`_ and `CloudStack`_.
-
-.. important:: To use use RBD snapshots, you must have a running Ceph cluster.
-
-.. note:: If a snapshot is taken while `I/O` is still in progress in a image, the
- snapshot might not get the exact or latest data of the image and the snapshot
- may have to be cloned to a new image to be mountable. So, we recommend to stop
- `I/O` before taking a snapshot of an image. If the image contains a filesystem,
- the filesystem must be in a consistent state before taking a snapshot. To stop
- `I/O` you can use `fsfreeze` command. See `fsfreeze(8)` man page for more details.
- For virtual machines, `qemu-guest-agent` can be used to automatically freeze
- filesystems when creating a snapshot.
-
-.. ditaa:: +------------+ +-------------+
- | {s} | | {s} c999 |
- | Active |<-------*| Snapshot |
- | Image | | of Image |
- | (stop i/o) | | (read only) |
- +------------+ +-------------+
-
-
-Cephx Notes
-===========
-
-When `cephx`_ is enabled (it is by default), you must specify a user name or ID
-and a path to the keyring containing the corresponding key for the user. See
-`User Management`_ for details. You may also add the ``CEPH_ARGS`` environment
-variable to avoid re-entry of the following parameters. ::
-
- rbd --id {user-ID} --keyring=/path/to/secret [commands]
- rbd --name {username} --keyring=/path/to/secret [commands]
-
-For example::
-
- rbd --id admin --keyring=/etc/ceph/ceph.keyring [commands]
- rbd --name client.admin --keyring=/etc/ceph/ceph.keyring [commands]
-
-.. tip:: Add the user and secret to the ``CEPH_ARGS`` environment
- variable so that you don't need to enter them each time.
-
-
-Snapshot Basics
-===============
-
-The following procedures demonstrate how to create, list, and remove
-snapshots using the ``rbd`` command on the command line.
-
-Create Snapshot
----------------
-
-To create a snapshot with ``rbd``, specify the ``snap create`` option, the pool
-name and the image name. ::
-
- rbd snap create {pool-name}/{image-name}@{snap-name}
-
-For example::
-
- rbd snap create rbd/foo@snapname
-
-
-List Snapshots
---------------
-
-To list snapshots of an image, specify the pool name and the image name. ::
-
- rbd snap ls {pool-name}/{image-name}
-
-For example::
-
- rbd snap ls rbd/foo
-
-
-Rollback Snapshot
------------------
-
-To rollback to a snapshot with ``rbd``, specify the ``snap rollback`` option, the
-pool name, the image name and the snap name. ::
-
- rbd snap rollback {pool-name}/{image-name}@{snap-name}
-
-For example::
-
- rbd snap rollback rbd/foo@snapname
-
-
-.. note:: Rolling back an image to a snapshot means overwriting
- the current version of the image with data from a snapshot. The
- time it takes to execute a rollback increases with the size of the
- image. It is **faster to clone** from a snapshot **than to rollback**
- an image to a snapshot, and it is the preferred method of returning
- to a pre-existing state.
-
-
-Delete a Snapshot
------------------
-
-To delete a snapshot with ``rbd``, specify the ``snap rm`` option, the pool
-name, the image name and the snap name. ::
-
- rbd snap rm {pool-name}/{image-name}@{snap-name}
-
-For example::
-
- rbd snap rm rbd/foo@snapname
-
-
-.. note:: Ceph OSDs delete data asynchronously, so deleting a snapshot
- doesn't free up the disk space immediately.
-
-Purge Snapshots
----------------
-
-To delete all snapshots for an image with ``rbd``, specify the ``snap purge``
-option and the image name. ::
-
- rbd snap purge {pool-name}/{image-name}
-
-For example::
-
- rbd snap purge rbd/foo
-
-
-.. index:: Ceph Block Device; snapshot layering
-
-Layering
-========
-
-Ceph supports the ability to create many copy-on-write (COW) clones of a block
-device shapshot. Snapshot layering enables Ceph block device clients to create
-images very quickly. For example, you might create a block device image with a
-Linux VM written to it; then, snapshot the image, protect the snapshot, and
-create as many copy-on-write clones as you like. A snapshot is read-only,
-so cloning a snapshot simplifies semantics--making it possible to create
-clones rapidly.
-
-
-.. ditaa:: +-------------+ +-------------+
- | {s} c999 | | {s} |
- | Snapshot | Child refers | COW Clone |
- | of Image |<------------*| of Snapshot |
- | | to Parent | |
- | (read only) | | (writable) |
- +-------------+ +-------------+
-
- Parent Child
-
-.. note:: The terms "parent" and "child" mean a Ceph block device snapshot (parent),
- and the corresponding image cloned from the snapshot (child). These terms are
- important for the command line usage below.
-
-Each cloned image (child) stores a reference to its parent image, which enables
-the cloned image to open the parent snapshot and read it.
-
-A COW clone of a snapshot behaves exactly like any other Ceph block device
-image. You can read to, write from, clone, and resize cloned images. There are
-no special restrictions with cloned images. However, the copy-on-write clone of
-a snapshot refers to the snapshot, so you **MUST** protect the snapshot before
-you clone it. The following diagram depicts the process.
-
-.. note:: Ceph only supports cloning for format 2 images (i.e., created with
- ``rbd create --image-format 2``). The kernel client supports cloned images
- since kernel 3.10.
-
-Getting Started with Layering
------------------------------
-
-Ceph block device layering is a simple process. You must have an image. You must
-create a snapshot of the image. You must protect the snapshot. Once you have
-performed these steps, you can begin cloning the snapshot.
-
-.. ditaa:: +----------------------------+ +-----------------------------+
- | | | |
- | Create Block Device Image |------->| Create a Snapshot |
- | | | |
- +----------------------------+ +-----------------------------+
- |
- +--------------------------------------+
- |
- v
- +----------------------------+ +-----------------------------+
- | | | |
- | Protect the Snapshot |------->| Clone the Snapshot |
- | | | |
- +----------------------------+ +-----------------------------+
-
-
-The cloned image has a reference to the parent snapshot, and includes the pool
-ID, image ID and snapshot ID. The inclusion of the pool ID means that you may
-clone snapshots from one pool to images in another pool.
-
-
-#. **Image Template:** A common use case for block device layering is to create a
- a master image and a snapshot that serves as a template for clones. For example,
- a user may create an image for a Linux distribution (e.g., Ubuntu 12.04), and
- create a snapshot for it. Periodically, the user may update the image and create
- a new snapshot (e.g., ``sudo apt-get update``, ``sudo apt-get upgrade``,
- ``sudo apt-get dist-upgrade`` followed by ``rbd snap create``). As the image
- matures, the user can clone any one of the snapshots.
-
-#. **Extended Template:** A more advanced use case includes extending a template
- image that provides more information than a base image. For example, a user may
- clone an image (e.g., a VM template) and install other software (e.g., a database,
- a content management system, an analytics system, etc.) and then snapshot the
- extended image, which itself may be updated just like the base image.
-
-#. **Template Pool:** One way to use block device layering is to create a
- pool that contains master images that act as templates, and snapshots of those
- templates. You may then extend read-only privileges to users so that they
- may clone the snapshots without the ability to write or execute within the pool.
-
-#. **Image Migration/Recovery:** One way to use block device layering is to migrate
- or recover data from one pool into another pool.
-
-Protecting a Snapshot
----------------------
-
-Clones access the parent snapshots. All clones would break if a user inadvertently
-deleted the parent snapshot. To prevent data loss, you **MUST** protect the
-snapshot before you can clone it. ::
-
- rbd snap protect {pool-name}/{image-name}@{snapshot-name}
-
-For example::
-
- rbd snap protect rbd/my-image@my-snapshot
-
-.. note:: You cannot delete a protected snapshot.
-
-Cloning a Snapshot
-------------------
-
-To clone a snapshot, specify you need to specify the parent pool, image and
-snapshot; and, the child pool and image name. You must protect the snapshot
-before you can clone it. ::
-
- rbd clone {pool-name}/{parent-image}@{snap-name} {pool-name}/{child-image-name}
-
-For example::
-
- rbd clone rbd/my-image@my-snapshot rbd/new-image
-
-.. note:: You may clone a snapshot from one pool to an image in another pool. For example,
- you may maintain read-only images and snapshots as templates in one pool, and writeable
- clones in another pool.
-
-Unprotecting a Snapshot
------------------------
-
-Before you can delete a snapshot, you must unprotect it first. Additionally,
-you may *NOT* delete snapshots that have references from clones. You must
-flatten each clone of a snapshot, before you can delete the snapshot. ::
-
- rbd snap unprotect {pool-name}/{image-name}@{snapshot-name}
-
-For example::
-
- rbd snap unprotect rbd/my-image@my-snapshot
-
-
-Listing Children of a Snapshot
-------------------------------
-
-To list the children of a snapshot, execute the following::
-
- rbd children {pool-name}/{image-name}@{snapshot-name}
-
-For example::
-
- rbd children rbd/my-image@my-snapshot
-
-
-Flattening a Cloned Image
--------------------------
-
-Cloned images retain a reference to the parent snapshot. When you remove the
-reference from the child clone to the parent snapshot, you effectively "flatten"
-the image by copying the information from the snapshot to the clone. The time
-it takes to flatten a clone increases with the size of the snapshot. To delete
-a snapshot, you must flatten the child images first. ::
-
- rbd flatten {pool-name}/{image-name}
-
-For example::
-
- rbd flatten rbd/my-image
-
-.. note:: Since a flattened image contains all the information from the snapshot,
- a flattened image will take up more storage space than a layered clone.
-
-
-.. _cephx: ../../rados/configuration/auth-config-ref/
-.. _User Management: ../../operations/user-management
-.. _QEMU: ../qemu-rbd/
-.. _OpenStack: ../rbd-openstack/
-.. _CloudStack: ../rbd-cloudstack/
-.. _libvirt: ../libvirt/
diff --git a/src/ceph/doc/release-notes.rst b/src/ceph/doc/release-notes.rst
deleted file mode 100644
index 76a8977..0000000
--- a/src/ceph/doc/release-notes.rst
+++ /dev/null
@@ -1,19933 +0,0 @@
-===============
- Release Notes
-===============
-
-v12.1.2 Luminous (RC)
-=====================
-
-This is the third release candidate for Luminous, the next long term stable
-release.
-
-Ceph Luminous (v12.2.0) will be the foundation for the next long-term
-stable release series. There have been major changes since Kraken
-(v11.2.z) and Jewel (v10.2.z), and the upgrade process is non-trivial.
-Please read these release notes carefully.
-
-Major Changes from Kraken
--------------------------
-
-- *General*:
-
- * Ceph now has a simple, `built-in web-based dashboard
- <../mgr/dashboard>`_ for monitoring cluster status.
-
-- *RADOS*:
-
- * *BlueStore*:
-
- - The new *BlueStore* backend for *ceph-osd* is now stable and the
- new default for newly created OSDs. BlueStore manages data
- stored by each OSD by directly managing the physical HDDs or
- SSDs without the use of an intervening file system like XFS.
- This provides greater performance and features. See
- :doc:`/rados/configuration/storage-devices` and
- :doc:`/rados/configuration/bluestore-config-ref`.
- - BlueStore supports `full data and metadata checksums
- <../rados/configuration/bluestore-config-ref/#checksums`_ of all
- data stored by Ceph.
- - BlueStore supports `inline compression
- <../rados/configuration/bluestore-config-ref/#inline-compression>`_ using
- zlib, snappy, or LZ4. (Ceph also supports zstd for `RGW compression
- <../man/8/radosgw-admin/#options>`_ but zstd is not recommended for
- BlueStore for performance reasons.)
-
- * *Erasure coded* pools now have `full support for overwrites
- <../rados/operations/erasure-code/#erasure-coding-with-overwrites>`_,
- allowing them to be used with RBD and CephFS.
-
- * *ceph-mgr*:
-
- - There is a new daemon, *ceph-mgr*, which is a required part of any
- Ceph deployment. Although IO can continue when *ceph-mgr* is
- down, metrics will not refresh and some metrics-related calls
- (e.g., ``ceph df``) may block. We recommend deploying several instances of
- *ceph-mgr* for reliability. See the notes on `Upgrading`_ below.
- - The *ceph-mgr* daemon includes a `REST-based management API
- <../mgr/restful>`_. The API is still experimental and somewhat limited but
- will form the basis for API-based management of Ceph going forward.
- - *ceph-mgr* also includes a `Prometheus exporter <../mgr/prometheus>`_
- plugin, which can provide Ceph perfcounters to Prometheus.
-
- * The overall *scalability* of the cluster has improved. We have
- successfully tested clusters with up to 10,000 OSDs.
- * Each OSD can now have a `device class
- <../rados/operations/crush-map/#device-classes>`_ associated with
- it (e.g., `hdd` or `ssd`), allowing CRUSH rules to trivially map
- data to a subset of devices in the system. Manually writing CRUSH
- rules or manual editing of the CRUSH is normally not required.
- * You can now *optimize CRUSH weights* to maintain a *near-perfect
- distribution of data* across OSDs. FIXME DOCS
- * There is also a new `upmap <../rados/operations/upmap>`_ exception
- mechanism that allows individual PGs to be moved around to achieve
- a *perfect distribution* (this requires luminous clients).
- * Each OSD now adjusts its default configuration based on whether the
- backing device is an HDD or SSD. Manual tuning generally not required.
- * The prototype `mClock QoS queueing algorithm
- <../rados/configuration/osd-config-ref/#qos-based-on-mclock>`_ is now
- available.
- * There is now a *backoff* mechanism that prevents OSDs from being
- overloaded by requests to objects or PGs that are not currently able to
- process IO.
- * There is a simplified `OSD replacement process
- <../rados/operations/add-or-rm-osds/#replacing-an-osd>`_ that is more
- robust.
- * You can query the supported features and (apparent) releases of
- all connected daemons and clients with `ceph features
- <../man/8/ceph#features>`_.
- * You can configure the oldest Ceph client version you wish to allow to
- connect to the cluster via ``ceph osd set-require-min-compat-client`` and
- Ceph will prevent you from enabling features that will break compatibility
- with those clients.
- * Several `sleep` settings, include ``osd_recovery_sleep``,
- ``osd_snap_trim_sleep``, and ``osd_scrub_sleep`` have been
- reimplemented to work efficiently. (These are used in some cases
- to work around issues throttling background work.)
-
-- *RGW*:
-
- * RGW *metadata search* backed by ElasticSearch now supports end
- user requests service via RGW itself, and also supports custom
- metadata fields. A query language a set of RESTful APIs were
- created for users to be able to search objects by their
- metadata. New APIs that allow control of custom metadata fields
- were also added.
- * RGW now supports *dynamic bucket index sharding*. As the number
- of objects in a bucket grows, RGW will automatically reshard the
- bucket index in response. No user intervention or bucket size
- capacity planning is required.
- * RGW introduces *server side encryption* of uploaded objects with
- three options for the management of encryption keys: automatic
- encryption (only recommended for test setups), customer provided
- keys similar to Amazon SSE-C specification, and through the use of
- an external key management service (Openstack Barbican) similar
- to Amazon SSE-KMS specification.
- * RGW now has preliminary AWS-like bucket policy API support. For
- now, policy is a means to express a range of new authorization
- concepts. In the future it will be the foundation for additional
- auth capabilities such as STS and group policy.
- * RGW has consolidated the several metadata index pools via the use of rados
- namespaces.
-
-- *RBD*:
-
- * RBD now has full, stable support for *erasure coded pools* via the new
- ``--data-pool`` option to ``rbd create``.
- * RBD mirroring's rbd-mirror daemon is now highly available. We
- recommend deploying several instances of rbd-mirror for
- reliability.
- * RBD mirroring's rbd-mirror daemon should utilize unique Ceph user
- IDs per instance to support the new mirroring dashboard.
- * The default 'rbd' pool is no longer created automatically during
- cluster creation. Additionally, the name of the default pool used
- by the rbd CLI when no pool is specified can be overridden via a
- new ``rbd default pool = <pool name>`` configuration option.
- * Initial support for deferred image deletion via new ``rbd
- trash`` CLI commands. Images, even ones actively in-use by
- clones, can be moved to the trash and deleted at a later time.
- * New pool-level ``rbd mirror pool promote`` and ``rbd mirror pool
- demote`` commands to batch promote/demote all mirrored images
- within a pool.
- * Mirroring now optionally supports a configurable replication delay
- via the ``rbd mirroring replay delay = <seconds>`` configuration
- option.
- * Improved discard handling when the object map feature is enabled.
- * rbd CLI ``import`` and ``copy`` commands now detect sparse and
- preserve sparse regions.
- * Images and Snapshots will now include a creation timestamp.
-
-- *CephFS*:
-
- * *Multiple active MDS daemons* is now considered stable. The number
- of active MDS servers may be adjusted up or down on an active CephFS file
- system.
- * CephFS *directory fragmentation* is now stable and enabled by
- default on new filesystems. To enable it on existing filesystems
- use "ceph fs set <fs_name> allow_dirfrags". Large or very busy
- directories are sharded and (potentially) distributed across
- multiple MDS daemons automatically.
- * Directory subtrees can be explicitly pinned to specific MDS daemons in
- cases where the automatic load balancing is not desired or effective.
-
-- *Miscellaneous*:
-
- * Release packages are now being built for *Debian Stretch*. Note
- that QA is limited to CentOS and Ubuntu (xenial and trusty). The
- distributions we build for now includes:
-
- - CentOS 7 (x86_64 and aarch64)
- - Debian 8 Jessie (x86_64)
- - Debian 9 Stretch (x86_64)
- - Ubuntu 16.04 Xenial (x86_64 and aarch64)
- - Ubuntu 14.04 Trusty (x86_64)
-
- * *CLI changes*:
-
- - The ``ceph -s`` or ``ceph status`` command has a fresh look.
- - ``ceph mgr metadata`` will dump metadata associated with each mgr
- daemon.
- - ``ceph versions`` or ``ceph {osd,mds,mon,mgr} versions``
- summarize versions of running daemons.
- - ``ceph {osd,mds,mon,mgr} count-metadata <property>`` similarly
- tabulates any other daemon metadata visible via the ``ceph
- {osd,mds,mon,mgr} metadata`` commands.
- - ``ceph features`` summarizes features and releases of connected
- clients and daemons.
- - ``ceph osd require-osd-release <release>`` replaces the old
- ``require_RELEASE_osds`` flags.
- - ``ceph osd pg-upmap``, ``ceph osd rm-pg-upmap``, ``ceph osd
- pg-upmap-items``, ``ceph osd rm-pg-upmap-items`` can explicitly
- manage `upmap` items (see :doc:`/rados/operations/upmap`).
- - ``ceph osd getcrushmap`` returns a crush map version number on
- stderr, and ``ceph osd setcrushmap [version]`` will only inject
- an updated crush map if the version matches. This allows crush
- maps to be updated offline and then reinjected into the cluster
- without fear of clobbering racing changes (e.g., by newly added
- osds or changes by other administrators).
- - ``ceph osd create`` has been replaced by ``ceph osd new``. This
- should be hidden from most users by user-facing tools like
- `ceph-disk`.
- - ``ceph osd destroy`` will mark an OSD destroyed and remove its
- cephx and lockbox keys. However, the OSD id and CRUSH map entry
- will remain in place, allowing the id to be reused by a
- replacement device with minimal data rebalancing.
- - ``ceph osd purge`` will remove all traces of an OSD from the
- cluster, including its cephx encryption keys, dm-crypt lockbox
- keys, OSD id, and crush map entry.
- - ``ceph osd ls-tree <name>`` will output a list of OSD ids under
- the given CRUSH name (like a host or rack name). This is useful
- for applying changes to entire subtrees. For example, ``ceph
- osd down `ceph osd ls-tree rack1```.
- - ``ceph osd {add,rm}-{noout,noin,nodown,noup}`` allow the
- `noout`, `noin`, `nodown`, and `noup` flags to be applied to
- specific OSDs.
- - ``ceph osd safe-to-destroy <osd(s)>`` will report whether it is safe to
- remove or destroy OSD(s) without reducing data durability or redundancy.
- - ``ceph osd ok-to-stop <osd(s)>`` will report whether it is okay to stop
- OSD(s) without immediately compromising availability (i.e., all PGs
- should remain active but may be degraded).
- - ``ceph log last [n]`` will output the last *n* lines of the cluster
- log.
- - ``ceph mgr dump`` will dump the MgrMap, including the currently active
- ceph-mgr daemon and any standbys.
- - ``ceph mgr module ls`` will list active ceph-mgr modules.
- - ``ceph mgr module {enable,disable} <name>`` will enable or
- disable the named mgr module. The module must be present in the
- configured `mgr_module_path` on the host(s) where `ceph-mgr` is
- running.
- - ``ceph osd crush ls <node>`` will list items (OSDs or other CRUSH nodes)
- directly beneath a given CRUSH node.
- - ``ceph osd crush swap-bucket <src> <dest>`` will swap the
- contents of two CRUSH buckets in the hierarchy while preserving
- the buckets' ids. This allows an entire subtree of devices to
- be replaced (e.g., to replace an entire host of FileStore OSDs
- with newly-imaged BlueStore OSDs) without disrupting the
- distribution of data across neighboring devices.
- - ``ceph osd set-require-min-compat-client <release>`` configures
- the oldest client release the cluster is required to support.
- Other changes, like CRUSH tunables, will fail with an error if
- they would violate this setting. Changing this setting also
- fails if clients older than the specified release are currently
- connected to the cluster.
- - ``ceph config-key dump`` dumps config-key entries and their
- contents. (The existing ``ceph config-key list`` only dumps the key
- names, not the values.)
- - ``ceph config-key list`` is deprecated in favor of ``ceph config-key ls``.
- - ``ceph auth list`` is deprecated in favor of ``ceph auth ls``.
- - ``ceph osd crush rule list`` is deprecated in favor of ``ceph osd crush rule ls``.
- - ``ceph osd set-{full,nearfull,backfillfull}-ratio`` sets the
- cluster-wide ratio for various full thresholds (when the cluster
- refuses IO, when the cluster warns about being close to full,
- when an OSD will defer rebalancing a PG to itself,
- respectively).
- - ``ceph osd reweightn`` will specify the `reweight` values for
- multiple OSDs in a single command. This is equivalent to a series of
- ``ceph osd reweight`` commands.
- - ``ceph osd crush {set,rm}-device-class`` manage the new
- CRUSH *device class* feature. Note that manually creating or deleting
- a device class name is generally not necessary as it will be smart
- enough to be self-managed. ``ceph osd crush class ls`` and
- ``ceph osd crush class ls-osd`` will output all existing device classes
- and a list of OSD ids under the given device class respectively.
- - ``ceph osd crush rule create-replicated`` replaces the old
- ``ceph osd crush rule create-simple`` command to create a CRUSH
- rule for a replicated pool. Notably it takes a `class` argument
- for the *device class* the rule should target (e.g., `ssd` or
- `hdd`).
- - ``ceph mon feature ls`` will list monitor features recorded in the
- MonMap. ``ceph mon feature set`` will set an optional feature (none of
- these exist yet).
- - ``ceph tell <daemon> help`` will now return a usage summary.
-
-Major Changes from Jewel
-------------------------
-
-- *RADOS*:
-
- * We now default to the AsyncMessenger (``ms type = async``) instead
- of the legacy SimpleMessenger.  The most noticeable difference is
- that we now use a fixed sized thread pool for network connections
- (instead of two threads per socket with SimpleMessenger).
- * Some OSD failures are now detected almost immediately, whereas
- previously the heartbeat timeout (which defaults to 20 seconds)
- had to expire.  This prevents IO from blocking for an extended
- period for failures where the host remains up but the ceph-osd
- process is no longer running.
- * The size of encoded OSDMaps has been reduced.
- * The OSDs now quiesce scrubbing when recovery or rebalancing is in progress.
-
-- *RGW*:
-
- * RGW now supports the S3 multipart object copy-part API.
- * It is possible now to reshard an existing bucket offline. Offline
- bucket resharding currently requires that all IO (especially
- writes) to the specific bucket is quiesced. (For automatic online
- resharding, see the new feature in Luminous above.)
- * RGW now supports data compression for objects.
- * Civetweb version has been upgraded to 1.8
- * The Swift static website API is now supported (S3 support has been added
- previously).
- * S3 bucket lifecycle API has been added. Note that currently it only supports
- object expiration.
- * Support for custom search filters has been added to the LDAP auth
- implementation.
- * Support for NFS version 3 has been added to the RGW NFS gateway.
- * A Python binding has been created for librgw.
-
-- *RBD*:
-
- * The rbd-mirror daemon now supports replicating dynamic image
- feature updates and image metadata key/value pairs from the
- primary image to the non-primary image.
- * The number of image snapshots can be optionally restricted to a
- configurable maximum.
- * The rbd Python API now supports asynchronous IO operations.
-
-- *CephFS*:
-
- * libcephfs function definitions have been changed to enable proper
- uid/gid control. The library version has been increased to reflect the
- interface change.
- * Standby replay MDS daemons now consume less memory on workloads
- doing deletions.
- * Scrub now repairs backtrace, and populates `damage ls` with
- discovered errors.
- * A new `pg_files` subcommand to `cephfs-data-scan` can identify
- files affected by a damaged or lost RADOS PG.
- * The false-positive "failing to respond to cache pressure" warnings have
- been fixed.
-
-
-Upgrade from Jewel or Kraken
-----------------------------
-.. _Upgrading:
-
-#. Ensure that the ``sortbitwise`` flag is enabled::
-
- # ceph osd set sortbitwise
-
-#. Make sure your cluster is stable and healthy (no down or
- recoverying OSDs). (Optional, but recommended.)
-
-#. Do not create any new erasure-code pools while upgrading the monitors.
-
-#. You can monitor the progress of your upgrade at each stage with the
- ``ceph versions`` command, which will tell you what ceph version is
- running for each type of daemon.
-
-#. Set the ``noout`` flag for the duration of the upgrade. (Optional
- but recommended.)::
-
- # ceph osd set noout
-
-#. Upgrade monitors by installing the new packages and restarting the
- monitor daemons. Note that, unlike prior releases, the ceph-mon
- daemons *must* be upgraded first::
-
- # systemctl restart ceph-mon.target
-
- Verify the monitor upgrade is complete once all monitors are up by
- looking for the ``luminous`` feature string in the mon map. For
- example::
-
- # ceph mon feature ls
-
- should include `luminous` under persistent features::
-
- on current monmap (epoch NNN)
- persistent: [kraken,luminous]
- required: [kraken,luminous]
-
-#. Add or restart ``ceph-mgr`` daemons. If you are upgrading from
- kraken, upgrade packages and restart ceph-mgr daemons with::
-
- # systemctl restart ceph-mgr.target
-
- If you are upgrading from kraken, you may already have ceph-mgr
- daemons deployed. If not, or if you are upgrading from jewel, you
- can deploy new daemons with tools like ceph-deploy or ceph-ansible.
- For example::
-
- # ceph-deploy mgr create HOST
-
- Verify the ceph-mgr daemons are running by checking ``ceph -s``::
-
- # ceph -s
-
- ...
- services:
- mon: 3 daemons, quorum foo,bar,baz
- mgr: foo(active), standbys: bar, baz
- ...
-
-#. Upgrade all OSDs by installing the new packages and restarting the
- ceph-osd daemons on all hosts::
-
- # systemctl restart ceph-osd.target
-
- You can monitor the progress of the OSD upgrades with the new
- ``ceph versions`` or ``ceph osd versions`` command::
-
- # ceph osd versions
- {
- "ceph version 12.2.0 (...) luminous (stable)": 12,
- "ceph version 10.2.6 (...)": 3,
- }
-
-#. Upgrade all CephFS daemons by upgrading packages and restarting
- daemons on all hosts::
-
- # systemctl restart ceph-mds.target
-
-#. Upgrade all radosgw daemons by upgrading packages and restarting
- daemons on all hosts::
-
- # systemctl restart radosgw.target
-
-#. Complete the upgrade by disallowing pre-luminous OSDs::
-
- # ceph osd require-osd-release luminous
-
- If you set ``noout`` at the beginning, be sure to clear it with::
-
- # ceph osd unset noout
-
-#. Verify the cluster is healthy with ``ceph health``.
-
-
-Upgrading from pre-Jewel releases (like Hammer)
------------------------------------------------
-
-You *must* first upgrade to Jewel (10.2.z) before attempting an
-upgrade to Luminous.
-
-
-Upgrade compatibility notes, Kraken to Luminous
------------------------------------------------
-
-* The configuration option ``osd pool erasure code stripe width`` has
- been replaced by ``osd pool erasure code stripe unit``, and given
- the ability to be overridden by the erasure code profile setting
- ``stripe_unit``. For more details see
- :doc:`/rados/operations/erasure-code/#erasure-code-profiles`.
-
-* rbd and cephfs can use erasure coding with bluestore. This may be
- enabled by setting ``allow_ec_overwrites`` to ``true`` for a pool. Since
- this relies on bluestore's checksumming to do deep scrubbing,
- enabling this on a pool stored on filestore is not allowed.
-
-* The ``rados df`` JSON output now prints numeric values as numbers instead of
- strings.
-
-* The ``mon_osd_max_op_age`` option has been renamed to
- ``mon_osd_warn_op_age`` (default: 32 seconds), to indicate we
- generate a warning at this age. There is also a new
- ``mon_osd_err_op_age_ratio`` that is a expressed as a multitple of
- ``mon_osd_warn_op_age`` (default: 128, for roughly 60 minutes) to
- control when an error is generated.
-
-* The default maximum size for a single RADOS object has been reduced from
- 100GB to 128MB. The 100GB limit was completely impractical in practice
- while the 128MB limit is a bit high but not unreasonable. If you have an
- application written directly to librados that is using objects larger than
- 128MB you may need to adjust ``osd_max_object_size``.
-
-* The semantics of the ``rados ls`` and librados object listing
- operations have always been a bit confusing in that "whiteout"
- objects (which logically don't exist and will return ENOENT if you
- try to access them) are included in the results. Previously
- whiteouts only occurred in cache tier pools. In luminous, logically
- deleted but snapshotted objects now result in a whiteout object, and
- as a result they will appear in ``rados ls`` results, even though
- trying to read such an object will result in ENOENT. The ``rados
- listsnaps`` operation can be used in such a case to enumerate which
- snapshots are present.
-
- This may seem a bit strange, but is less strange than having a
- deleted-but-snapshotted object not appear at all and be completely
- hidden from librados's ability to enumerate objects. Future
- versions of Ceph will likely include an alternative object
- enumeration interface that makes it more natural and efficient to
- enumerate all objects along with their snapshot and clone metadata.
-
-* The deprecated ``crush_ruleset`` property has finally been removed;
- please use ``crush_rule`` instead for the ``osd pool get ...`` and ``osd
- pool set ...`` commands.
-
-* The ``osd pool default crush replicated ruleset`` option has been
- removed and replaced by the ``psd pool default crush rule`` option.
- By default it is -1, which means the mon will pick the first type
- replicated rule in the CRUSH map for replicated pools. Erasure
- coded pools have rules that are automatically created for them if
- they are not specified at pool creation time.
-
-* We no longer test the FileStore ceph-osd backend in combination with
- btrfs. We recommend against using btrfs. If you are using
- btrfs-based OSDs and want to upgrade to luminous you will need to
- add the follwing to your ceph.conf::
-
- enable experimental unrecoverable data corrupting features = btrfs
-
- The code is mature and unlikely to change, but we are only
- continuing to test the Jewel stable branch against btrfs. We
- recommend moving these OSDs to FileStore with XFS or BlueStore.
-* The ``ruleset-*`` properties for the erasure code profiles have been
- renamed to ``crush-*`` to (1) move away from the obsolete 'ruleset'
- term and to be more clear about their purpose. There is also a new
- optional ``crush-device-class`` property to specify a CRUSH device
- class to use for the erasure coded pool. Existing erasure code
- profiles will be converted automatically when upgrade completes
- (when the ``ceph osd require-osd-release luminous`` command is run)
- but any provisioning tools that create erasure coded pools may need
- to be updated.
-* The structure of the XML output for ``osd crush tree`` has changed
- slightly to better match the ``osd tree`` output. The top level
- structure is now ``nodes`` instead of ``crush_map_roots``.
-* When assigning a network to the public network and not to
- the cluster network the network specification of the public
- network will be used for the cluster network as well.
- In older versions this would lead to cluster services
- being bound to 0.0.0.0:<port>, thus making the
- cluster service even more publicly available than the
- public services. When only specifying a cluster network it
- will still result in the public services binding to 0.0.0.0.
-
-* In previous versions, if a client sent an op to the wrong OSD, the OSD
- would reply with ENXIO. The rationale here is that the client or OSD is
- clearly buggy and we want to surface the error as clearly as possible.
- We now only send the ENXIO reply if the osd_enxio_on_misdirected_op option
- is enabled (it's off by default). This means that a VM using librbd that
- previously would have gotten an EIO and gone read-only will now see a
- blocked/hung IO instead.
-
-* The "journaler allow split entries" config setting has been removed.
-
-- *librados*:
-
- * Some variants of the omap_get_keys and omap_get_vals librados
- functions have been deprecated in favor of omap_get_vals2 and
- omap_get_keys2. The new methods include an output argument
- indicating whether there are additional keys left to fetch.
- Previously this had to be inferred from the requested key count vs
- the number of keys returned, but this breaks with new OSD-side
- limits on the number of keys or bytes that can be returned by a
- single omap request. These limits were introduced by kraken but
- are effectively disabled by default (by setting a very large limit
- of 1 GB) because users of the newly deprecated interface cannot
- tell whether they should fetch more keys or not. In the case of
- the standalone calls in the C++ interface
- (IoCtx::get_omap_{keys,vals}), librados has been updated to loop on
- the client side to provide a correct result via multiple calls to
- the OSD. In the case of the methods used for building
- multi-operation transactions, however, client-side looping is not
- practical, and the methods have been deprecated. Note that use of
- either the IoCtx methods on older librados versions or the
- deprecated methods on any version of librados will lead to
- incomplete results if/when the new OSD limits are enabled.
-
- * The original librados rados_objects_list_open (C) and objects_begin
- (C++) object listing API, deprecated in Hammer, has finally been
- removed. Users of this interface must update their software to use
- either the rados_nobjects_list_open (C) and nobjects_begin (C++) API or
- the new rados_object_list_begin (C) and object_list_begin (C++) API
- before updating the client-side librados library to Luminous.
-
- Object enumeration (via any API) with the latest librados version
- and pre-Hammer OSDs is no longer supported. Note that no in-tree
- Ceph services rely on object enumeration via the deprecated APIs, so
- only external librados users might be affected.
-
- The newest (and recommended) rados_object_list_begin (C) and
- object_list_begin (C++) API is only usable on clusters with the
- SORTBITWISE flag enabled (Jewel and later). (Note that this flag is
- required to be set before upgrading beyond Jewel.)
-
-- *CephFS*:
-
- * When configuring ceph-fuse mounts in /etc/fstab, a new syntax is
- available that uses "ceph.<arg>=<val>" in the options column, instead
- of putting configuration in the device column. The old style syntax
- still works. See the documentation page "Mount CephFS in your
- file systems table" for details.
-
- * CephFS clients without the 'p' flag in their authentication capability
- string will no longer be able to set quotas or any layout fields. This
- flag previously only restricted modification of the pool and namespace
- fields in layouts.
- * CephFS will generate a health warning if you have fewer standby daemons
- than it thinks you wanted. By default this will be 1 if you ever had
- a standby, and 0 if you did not. You can customize this using
- ``ceph fs set <fs> standby_count_wanted <number>``. Setting it
- to zero will effectively disable the health check.
- * The "ceph mds tell ..." command has been removed. It is superceded
- by "ceph tell mds.<id> ..."
-
-
-Notable Changes since v12.1.1 (RC1)
------------------------------------
-
-* choose_args encoding has been changed to make it architecture-independent.
- If you deployed Luminous dev releases or 12.1.0 rc release and made use of
- the CRUSH choose_args feature, you need to remove all choose_args mappings
- from your CRUSH map before starting the upgrade.
-
-* The 'ceph health' structured output (JSON or XML) no longer contains
- a 'timechecks' section describing the time sync status. This
- information is now available via the 'ceph time-sync-status'
- command.
-
-* Certain extra fields in the 'ceph health' structured output that
- used to appear if the mons were low on disk space (which duplicated
- the information in the normal health warning messages) are now gone.
-
-* The "ceph -w" output no longer contains audit log entries by default.
- Add a "--watch-channel=audit" or "--watch-channel=*" to see them.
-
-* The 'apply' mode of cephfs-journal-tool has been removed
-
-* Added new configuration "public bind addr" to support dynamic environments
- like Kubernetes. When set the Ceph MON daemon could bind locally to an IP
- address and advertise a different IP address "public addr" on the network.
-
-* New "ceph -w" behavior - the "ceph -w" output no longer contains I/O rates,
- available space, pg info, etc. because these are no longer logged to the
- central log (which is what "ceph -w" shows). The same information can be
- obtained by running "ceph pg stat"; alternatively, I/O rates per pool can
- be determined using "ceph osd pool stats". Although these commands do not
- self-update like "ceph -w" did, they do have the ability to return formatted
- output by providing a "--format=<format>" option.
-
-* Pools are now expected to be associated with the application using them.
- Upon completing the upgrade to Luminous, the cluster will attempt to associate
- existing pools to known applications (i.e. CephFS, RBD, and RGW). In-use pools
- that are not associated to an application will generate a health warning. Any
- unassociated pools can be manually associated using the new
- "ceph osd pool application enable" command. For more details see
- "Associate Pool to Application" in the documentation.
-
-* ceph-mgr now has a Zabbix plugin. Using zabbix_sender it sends trapper
- events to a Zabbix server containing high-level information of the Ceph
- cluster. This makes it easy to monitor a Ceph cluster's status and send
- out notifications in case of a malfunction.
-
-* The 'mon_warn_osd_usage_min_max_delta' config option has been
- removed and the associated health warning has been disabled because
- it does not address clusters undergoing recovery or CRUSH rules that do
- not target all devices in the cluster.
-
-* Specifying user authorization capabilities for RBD clients has been
- simplified. The general syntax for using RBD capability profiles is
- "mon 'profile rbd' osd 'profile rbd[-read-only][ pool={pool-name}[, ...]]'".
- For more details see "User Management" in the documentation.
-
-* ``ceph config-key put`` has been deprecated in favor of ``ceph config-key set``.
-
-
-Notable Changes since v12.1.1 (RC2)
------------------------------------
-
-* New "ceph -w" behavior - the "ceph -w" output no longer contains I/O rates,
- available space, pg info, etc. because these are no longer logged to the
- central log (which is what "ceph -w" shows). The same information can be
- obtained by running "ceph pg stat"; alternatively, I/O rates per pool can
- be determined using "ceph osd pool stats". Although these commands do not
- self-update like "ceph -w" did, they do have the ability to return formatted
- output by providing a "--format=<format>" option.
-
-* Pools are now expected to be associated with the application using them.
- Upon completing the upgrade to Luminous, the cluster will attempt to associate
- existing pools to known applications (i.e. CephFS, RBD, and RGW). In-use pools
- that are not associated to an application will generate a health warning. Any
- unassociated pools can be manually associated using the new
- "ceph osd pool application enable" command. For more details see
- "Associate Pool to Application" in the documentation.
-
-* ceph-mgr now has a Zabbix plugin. Using zabbix_sender it sends trapper
- events to a Zabbix server containing high-level information of the Ceph
- cluster. This makes it easy to monitor a Ceph cluster's status and send
- out notifications in case of a malfunction.
-
-* The 'mon_warn_osd_usage_min_max_delta' config option has been
- removed and the associated health warning has been disabled because
- it does not address clusters undergoing recovery or CRUSH rules that do
- not target all devices in the cluster.
-
-* Specifying user authorization capabilities for RBD clients has been
- simplified. The general syntax for using RBD capability profiles is
- "mon 'profile rbd' osd 'profile rbd[-read-only][ pool={pool-name}[, ...]]'".
- For more details see "User Management" in the documentation.
-
-* RGW: bucket index resharding now uses the reshard namespace in log pool
- upgrade scenarios as well this is a changed behaviour from RC1 where a
- new pool for reshard was created
-
-* RGW multisite now supports for enabling or disabling sync at a bucket level.
-
-Other Notable Changes
----------------------
-* bluestore: bluestore/BlueFS: pass string as const ref (`pr#16600 <https://github.com/ceph/ceph/pull/16600>`_, dingdangzhang)
-* bluestore: common/options: make "blue{fs,store}_allocator" LEVEL_DEV (`issue#20660 <http://tracker.ceph.com/issues/20660>`_, `pr#16645 <https://github.com/ceph/ceph/pull/16645>`_, Kefu Chai)
-* bluestore: os/bluestore/BlueStore: Avoid double counting state_kv_queued_lat (`pr#16374 <https://github.com/ceph/ceph/pull/16374>`_, Jianpeng Ma)
-* bluestore: os/bluestore/BlueStore: remove unused code (`pr#16522 <https://github.com/ceph/ceph/pull/16522>`_, Jianpeng Ma)
-* bluestore: os/bluestore: move aio.h/cc from fs dir to bluestore dir (`pr#16409 <https://github.com/ceph/ceph/pull/16409>`_, Pan Liu)
-* bluestore: os/bluestore/StupidAllocator: rounded down len to an align boundary (`issue#20660 <http://tracker.ceph.com/issues/20660>`_, `pr#16593 <https://github.com/ceph/ceph/pull/16593>`_, Zhu Shangzhong)
-* bluestore: os/bluestore: use reference to avoid string copy (`pr#16364 <https://github.com/ceph/ceph/pull/16364>`_, Pan Liu)
-* build/ops: ceph-disk: don't activate suppressed journal devices (`issue#19489 <http://tracker.ceph.com/issues/19489>`_, `pr#16123 <https://github.com/ceph/ceph/pull/16123>`_, David Disseldorp)
-* build/ops: do_cmake.sh: fix syntax for /bin/sh (doesn't have +=) (`pr#16433 <https://github.com/ceph/ceph/pull/16433>`_, Dan Mick)
-* build/ops: include/assert: test c++ before using static_cast<> (`pr#16424 <https://github.com/ceph/ceph/pull/16424>`_, Kefu Chai)
-* build/ops: install-deps.sh: add missing dependencies for FreeBSD (`pr#16545 <https://github.com/ceph/ceph/pull/16545>`_, Alan Somers)
-* build/ops,rbd,rgw: CMakeLists: trim rbd/rgw forced dependencies (`pr#16574 <https://github.com/ceph/ceph/pull/16574>`_, Patrick Donnelly)
-* build/ops: rpm: Drop legacy libxio support (`pr#16449 <https://github.com/ceph/ceph/pull/16449>`_, Nathan Cutler)
-* build/ops: rpm: fix typo WTIH_BABELTRACE (`pr#16366 <https://github.com/ceph/ceph/pull/16366>`_, Nathan Cutler)
-* build/ops: rpm: put mgr python build dependencies in make_check bcond (`issue#20425 <http://tracker.ceph.com/issues/20425>`_, `pr#15940 <https://github.com/ceph/ceph/pull/15940>`_, Nathan Cutler, Tim Serong)
-* build/ops,tests: qa: make run-standalone work on FreeBSD (`pr#16595 <https://github.com/ceph/ceph/pull/16595>`_, Willem Jan Withagen)
-* cmake: disable -fvar-tracking-assignments for config.cc (`pr#16695 <https://github.com/ceph/ceph/pull/16695>`_, Kefu Chai)
-* cmake: use CMAKE_INSTALL_INCLUDEDIR (`pr#16483 <https://github.com/ceph/ceph/pull/16483>`_, David Disseldorp)
-* common: buffer: silence unused var warning on FreeBSD (`pr#16452 <https://github.com/ceph/ceph/pull/16452>`_, Willem Jan Withagen)
-* common: common/common_init: disable default dout logging for UTILITY_NODOUT too (`issue#20771 <http://tracker.ceph.com/issues/20771>`_, `pr#16578 <https://github.com/ceph/ceph/pull/16578>`_, Sage Weil)
-* common: common/options: refactors to set the properties in a more structured way (`pr#16482 <https://github.com/ceph/ceph/pull/16482>`_, Kefu Chai)
-* common: common/WorkQueue: use threadpoolname + threadaddr for heartbeat_han… (`pr#16563 <https://github.com/ceph/ceph/pull/16563>`_, huangjun)
-* common,core: osd,mds,mgr: do not dereference null rotating_keys (`issue#20667 <http://tracker.ceph.com/issues/20667>`_, `pr#16455 <https://github.com/ceph/ceph/pull/16455>`_, Sage Weil)
-* common: fix Option set_long_description (`pr#16668 <https://github.com/ceph/ceph/pull/16668>`_, Yan Jun)
-* common: follow up to new options infrastructure (`pr#16527 <https://github.com/ceph/ceph/pull/16527>`_, John Spray)
-* common: HashIndex.cc: add compat.h for ENODATA (`pr#16697 <https://github.com/ceph/ceph/pull/16697>`_, Willem Jan Withagen)
-* common: libradosstriper: fix format injection vulnerability (`issue#20240 <http://tracker.ceph.com/issues/20240>`_, `pr#15674 <https://github.com/ceph/ceph/pull/15674>`_, Stan K)
-* common,mon: crush,mon: add weight-set introspection and manipulation commands (`pr#16326 <https://github.com/ceph/ceph/pull/16326>`_, Sage Weil)
-* common: mon/MonClient: scale backoff interval down when we have a healthy mon session (`issue#20371 <http://tracker.ceph.com/issues/20371>`_, `pr#16576 <https://github.com/ceph/ceph/pull/16576>`_, Kefu Chai, Sage Weil)
-* common: prevent unset_dumpable from generating warnings (`pr#16462 <https://github.com/ceph/ceph/pull/16462>`_, Willem Jan Withagen)
-* common,rbd: osdc/Objecter: unify disparate EAGAIN handling paths into one (`pr#16627 <https://github.com/ceph/ceph/pull/16627>`_, Sage Weil)
-* common: remove config opt conversion utility (`pr#16480 <https://github.com/ceph/ceph/pull/16480>`_, John Spray)
-* common: Revamp config option definitions (`issue#20627 <http://tracker.ceph.com/issues/20627>`_, `pr#16211 <https://github.com/ceph/ceph/pull/16211>`_, John Spray, Kefu Chai, Sage Weil)
-* common,rgw: cls/refcount: store and use list of retired tags (`issue#20107 <http://tracker.ceph.com/issues/20107>`_, `pr#15673 <https://github.com/ceph/ceph/pull/15673>`_, Yehuda Sadeh)
-* common: the latency dumped by "ceph osd perf" is not real (`issue#20749 <http://tracker.ceph.com/issues/20749>`_, `pr#16512 <https://github.com/ceph/ceph/pull/16512>`_, Pan Liu)
-* common: use std::move() for better performance (`pr#16620 <https://github.com/ceph/ceph/pull/16620>`_, Xinying Song)
-* core: auth: Remove unused function in AuthSessionHandler (`pr#16666 <https://github.com/ceph/ceph/pull/16666>`_, Luo Kexue)
-* core: ceph: allow '-' with -i and -o for stdin/stdout (`pr#16359 <https://github.com/ceph/ceph/pull/16359>`_, Sage Weil)
-* core: ceph-disk: support osd new (`pr#15432 <https://github.com/ceph/ceph/pull/15432>`_, Loic Dachary, Sage Weil)
-* core: common/options: remove mon_warn_osd_usage_min_max_delta from options.cc too (`pr#16488 <https://github.com/ceph/ceph/pull/16488>`_, Sage Weil)
-* core: kv: resolve a crash issue in ~LevelDBStore() (`pr#16553 <https://github.com/ceph/ceph/pull/16553>`_, wumingqiao)
-* core: kv/RocksDBStore: use vector instead of VLA for holding slices (`pr#16615 <https://github.com/ceph/ceph/pull/16615>`_, Kefu Chai)
-* core: messages: default-initialize MOSDPGRecoveryDelete[Reply] members (`pr#16584 <https://github.com/ceph/ceph/pull/16584>`_, Greg Farnum)
-* core: mgr/MgrClient: do not attempt to access a global variable for config (`pr#16544 <https://github.com/ceph/ceph/pull/16544>`_, Jason Dillaman)
-* core,mgr,tests: qa: flush out monc's dropped msgs on msgr failure injection (`issue#20371 <http://tracker.ceph.com/issues/20371>`_, `pr#16484 <https://github.com/ceph/ceph/pull/16484>`_, Joao Eduardo Luis)
-* core,mon: crush, mon: simplify device class manipulation commands (`pr#16388 <https://github.com/ceph/ceph/pull/16388>`_, xie xingguo)
-* core: mon, osd: misc fixes (`pr#16283 <https://github.com/ceph/ceph/pull/16283>`_, xie xingguo)
-* core,mon,rbd: mon,osd: new rbd-based cephx cap profiles (`pr#15991 <https://github.com/ceph/ceph/pull/15991>`_, Jason Dillaman)
-* core: msg/async: fix the bug of inaccurate calculation of l_msgr_send_bytes (`pr#16526 <https://github.com/ceph/ceph/pull/16526>`_, Jin Cai)
-* core: objclass: modify omap_get_{keys,vals} api (`pr#16667 <https://github.com/ceph/ceph/pull/16667>`_, Yehuda Sadeh, Casey Bodley)
-* core: osd/PG: fix warning so we discard_event() on a no-op state change (`pr#16655 <https://github.com/ceph/ceph/pull/16655>`_, Sage Weil)
-* core: osd/PG: ignore CancelRecovery in NotRecovering (`issue#20804 <http://tracker.ceph.com/issues/20804>`_, `pr#16638 <https://github.com/ceph/ceph/pull/16638>`_, Sage Weil)
-* core: osd/PGLog: fix inaccurate missing assert (`issue#20753 <http://tracker.ceph.com/issues/20753>`_, `pr#16539 <https://github.com/ceph/ceph/pull/16539>`_, Josh Durgin)
-* core: osd/PrimaryLogPG: fix recovering hang when have unfound objects (`pr#16558 <https://github.com/ceph/ceph/pull/16558>`_, huangjun)
-* core: osd/PrimaryLogPG: skip deleted missing objects in pg[n]ls (`issue#20739 <http://tracker.ceph.com/issues/20739>`_, `pr#16490 <https://github.com/ceph/ceph/pull/16490>`_, Josh Durgin)
-* core,performance: kv/RocksDBStore: Table options for indexing and filtering (`pr#16450 <https://github.com/ceph/ceph/pull/16450>`_, Mark Nelson)
-* core,performance: osd/PG: make prioritized recovery possible (`pr#13723 <https://github.com/ceph/ceph/pull/13723>`_, Piotr Dałek)
-* core: PGLog: store extra duplicate ops beyond the normal log entries (`pr#16172 <https://github.com/ceph/ceph/pull/16172>`_, Josh Durgin, J. Eric Ivancich)
-* core,rgw,tests: qa/suits/rados/basic/tasks/rgw_snaps: wait for pools to be created (`pr#16509 <https://github.com/ceph/ceph/pull/16509>`_, Sage Weil)
-* core,tests: ceph_test_rados_api_watch_notify: flush after unwatch (`issue#20105 <http://tracker.ceph.com/issues/20105>`_, `pr#16402 <https://github.com/ceph/ceph/pull/16402>`_, Sage Weil)
-* core,tests: ceph_test_rados: max_stride_size must be more than min_stride_size (`issue#20775 <http://tracker.ceph.com/issues/20775>`_, `pr#16590 <https://github.com/ceph/ceph/pull/16590>`_, Lianne Wang)
-* core,tests: qa: move ceph-helpers-based make check tests to qa/standalone; run via teuthology (`pr#16513 <https://github.com/ceph/ceph/pull/16513>`_, Sage Weil)
-* core,tests: qa/suites/rados: at-end: ignore PG_{AVAILABILITY,DEGRADED} (`issue#20693 <http://tracker.ceph.com/issues/20693>`_, `pr#16575 <https://github.com/ceph/ceph/pull/16575>`_, Sage Weil)
-* core,tests: qa/tasks/ceph_manager: wait for osd to start after objectstore-tool sequence (`issue#20705 <http://tracker.ceph.com/issues/20705>`_, `pr#16454 <https://github.com/ceph/ceph/pull/16454>`_, Sage Weil)
-* core,tests: qa/tasks/ceph: wait for mgr to activate and pg stats to flush in health() (`issue#20744 <http://tracker.ceph.com/issues/20744>`_, `pr#16514 <https://github.com/ceph/ceph/pull/16514>`_, Sage Weil)
-* core,tests: qa/tasks/dump_stuck: fix dump_stuck test bug (`pr#16559 <https://github.com/ceph/ceph/pull/16559>`_, huangjun)
-* core,tests: qa/workunits/cephtool/test.sh: add sudo for daemon compact (`pr#16500 <https://github.com/ceph/ceph/pull/16500>`_, Sage Weil)
-* core,tests: test: add separate ceph-helpers-based smoke test (`pr#16572 <https://github.com/ceph/ceph/pull/16572>`_, Sage Weil)
-* core: throttle: Minimal destructor fix for Luminous (`pr#16661 <https://github.com/ceph/ceph/pull/16661>`_, Adam C. Emerson)
-* core: vstart.sh: start mgr after mon, before osds (`pr#16613 <https://github.com/ceph/ceph/pull/16613>`_, Sage Weil)
-* crush: a couple of weight-set fixes (`pr#16623 <https://github.com/ceph/ceph/pull/16623>`_, xie xingguo)
-* crush: enforce buckets-before-rules rule (`pr#16453 <https://github.com/ceph/ceph/pull/16453>`_, Sage Weil)
-* crush: s/ruleset/id/ in decompiled output; prevent compilation when ruleset != id (`pr#16400 <https://github.com/ceph/ceph/pull/16400>`_, Sage Weil)
-* doc: Add amitkumar50 affiliation to .organizationmap (`pr#16475 <https://github.com/ceph/ceph/pull/16475>`_, Amit Kumar)
-* doc: add doc requirements on PR submitters (`pr#16394 <https://github.com/ceph/ceph/pull/16394>`_, John Spray)
-* doc: added mgr caps to manual deployment documentation (`pr#16660 <https://github.com/ceph/ceph/pull/16660>`_, Nick Erdmann)
-* doc: add instructions for replacing an OSD (`pr#16314 <https://github.com/ceph/ceph/pull/16314>`_, Kefu Chai)
-* doc: add rbd new trash cli and cleanups in release-notes.rst (`issue#20702 <http://tracker.ceph.com/issues/20702>`_, `pr#16498 <https://github.com/ceph/ceph/pull/16498>`_, songweibin)
-* doc: Add Zabbix ceph-mgr plugin to PendingReleaseNotes (`pr#16412 <https://github.com/ceph/ceph/pull/16412>`_, Wido den Hollander)
-* doc: AUTHORS: update CephFS PTL (`pr#16399 <https://github.com/ceph/ceph/pull/16399>`_, Patrick Donnelly)
-* doc: ceph-disk: use '-' for feeding ceph cli with stdin (`pr#16362 <https://github.com/ceph/ceph/pull/16362>`_, Kefu Chai)
-* doc: common/options.cc: document bluestore config options (`pr#16489 <https://github.com/ceph/ceph/pull/16489>`_, Sage Weil)
-* doc: Describe mClock's use within Ceph in great detail (`pr#16707 <https://github.com/ceph/ceph/pull/16707>`_, J. Eric Ivancich)
-* doc: doc/install/manual-deployment: update osd creation steps (`pr#16573 <https://github.com/ceph/ceph/pull/16573>`_, Sage Weil)
-* doc: doc/mon: fix ceph-authtool command in rebuild mon's sample (`pr#16503 <https://github.com/ceph/ceph/pull/16503>`_, huanwen ren)
-* doc: doc/qa: cover `config help` command (`pr#16727 <https://github.com/ceph/ceph/pull/16727>`_, John Spray)
-* doc: doc/rados: add page for health checks and update monitoring.rst (`pr#16566 <https://github.com/ceph/ceph/pull/16566>`_, John Spray)
-* doc: doc/rados/operations/health-checks: osd section (`pr#16611 <https://github.com/ceph/ceph/pull/16611>`_, Sage Weil)
-* doc: doc/release-notes: fix upmap and osd replacement links; add fixme (`pr#16730 <https://github.com/ceph/ceph/pull/16730>`_, Sage Weil)
-* doc: [docs/quick-start]: update quick start to add a note for mgr create command for luminous+ builds (`pr#16350 <https://github.com/ceph/ceph/pull/16350>`_, Vasu Kulkarni)
-* doc: Documentation updates for July 2017 releases (`pr#16401 <https://github.com/ceph/ceph/pull/16401>`_, Bryan Stillwell)
-* doc: document mClock related options (`pr#16552 <https://github.com/ceph/ceph/pull/16552>`_, Kefu Chai)
-* doc: Fixed a typo in yum repo filename script (`pr#16431 <https://github.com/ceph/ceph/pull/16431>`_, Jeff Green)
-* doc: fix typo in config.rst (`pr#16721 <https://github.com/ceph/ceph/pull/16721>`_, Jos Collin)
-* doc: fix typos in config.rst (`pr#16681 <https://github.com/ceph/ceph/pull/16681>`_, Song Shun)
-* doc: mailmap: add affiliation for Zhu Shangzhong (`pr#16537 <https://github.com/ceph/ceph/pull/16537>`_, Zhu Shangzhong)
-* doc: .mailmap, .organizationmap: Update ztczll affiliation (`pr#16038 <https://github.com/ceph/ceph/pull/16038>`_, zhanglei)
-* doc: PendingReleaseNotes: "ceph -w" behavior has changed drastically (`pr#16425 <https://github.com/ceph/ceph/pull/16425>`_, Joao Eduardo Luis, Nathan Cutler)
-* doc: Remove contractions from the documentation (`pr#16629 <https://github.com/ceph/ceph/pull/16629>`_, John Wilkins)
-* doc: remove docs on non-existant command (`pr#16616 <https://github.com/ceph/ceph/pull/16616>`_, Luo Kexue, Kefu Chai)
-* doc: reword mds deactivate docs; add optional fs_name argument (`issue#20607 <http://tracker.ceph.com/issues/20607>`_, `pr#16471 <https://github.com/ceph/ceph/pull/16471>`_, Jan Fajerski)
-* doc: rgw clarify limitations when creating tenant names (`pr#16418 <https://github.com/ceph/ceph/pull/16418>`_, Abhishek Lekshmanan)
-* doc: update ceph(8) man page with new sub-commands (`pr#16437 <https://github.com/ceph/ceph/pull/16437>`_, Kefu Chai)
-* doc: Update .organizationmap (`pr#16507 <https://github.com/ceph/ceph/pull/16507>`_, luokexue)
-* doc: update the pool names created by vstart.sh by default (`pr#16652 <https://github.com/ceph/ceph/pull/16652>`_, Zhu Shangzhong)
-* doc: update the rados namespace docs (`pr#15838 <https://github.com/ceph/ceph/pull/15838>`_, Abhishek Lekshmanan)
-* doc: upmap docs; various missing links for release notes (`pr#16637 <https://github.com/ceph/ceph/pull/16637>`_, Sage Weil)
-* doc: various fixes (`pr#16723 <https://github.com/ceph/ceph/pull/16723>`_, Kefu Chai)
-* librados: add missing implementations for C service daemon API methods (`pr#16543 <https://github.com/ceph/ceph/pull/16543>`_, Jason Dillaman)
-* librbd: add compare and write API (`pr#14868 <https://github.com/ceph/ceph/pull/14868>`_, Zhengyong Wang, Jason Dillaman)
-* librbd: add LIBRBD_SUPPORTS_WRITESAME support (`pr#16583 <https://github.com/ceph/ceph/pull/16583>`_, Xiubo Li)
-* mgr: add per-DaemonState lock (`pr#16432 <https://github.com/ceph/ceph/pull/16432>`_, Sage Weil)
-* mgr: fix lock cycle (`pr#16508 <https://github.com/ceph/ceph/pull/16508>`_, Sage Weil)
-* mgr: mgr/dashboard: add OSD list view (`pr#16373 <https://github.com/ceph/ceph/pull/16373>`_, John Spray)
-* mgr: mgr_module interface to report health alerts (`pr#16487 <https://github.com/ceph/ceph/pull/16487>`_, Sage Weil)
-* mgr: mgr/PyState: shut up about get_config on nonexistent keys (`pr#16641 <https://github.com/ceph/ceph/pull/16641>`_, Sage Weil)
-* mgr: mon/MgrMonitor: fix standby addition to mgrmap (`issue#20647 <http://tracker.ceph.com/issues/20647>`_, `pr#16397 <https://github.com/ceph/ceph/pull/16397>`_, Sage Weil)
-* mgr,mon: mon/AuthMonitor: generate bootstrap-mgr key on upgrade (`issue#20666 <http://tracker.ceph.com/issues/20666>`_, `pr#16395 <https://github.com/ceph/ceph/pull/16395>`_, Joao Eduardo Luis)
-* mgr,mon: mon/MgrMonitor: reset mgrdigest timer with new subscription (`issue#20633 <http://tracker.ceph.com/issues/20633>`_, `pr#16582 <https://github.com/ceph/ceph/pull/16582>`_, Sage Weil)
-* mgr: perf schema fns/change notification and Prometheus plugin (`pr#16406 <https://github.com/ceph/ceph/pull/16406>`_, Dan Mick)
-* mgr: pybind/mgr/zabbix: fix health in non-compat mode (`issue#20767 <http://tracker.ceph.com/issues/20767>`_, `pr#16580 <https://github.com/ceph/ceph/pull/16580>`_, Sage Weil)
-* mgr,pybind,rbd: mgr/dashboard: show rbd image features (`pr#16468 <https://github.com/ceph/ceph/pull/16468>`_, Yanhu Cao)
-* mgr,rbd: mgr/dashboard: RBD iSCSI daemon status page (`pr#16547 <https://github.com/ceph/ceph/pull/16547>`_, Jason Dillaman)
-* mgr,rbd: mgr/dashboard: rbd mirroring status page (`pr#16360 <https://github.com/ceph/ceph/pull/16360>`_, Jason Dillaman)
-* mgr: vstart.sh: fix mgr vs restful command startup race (`pr#16564 <https://github.com/ceph/ceph/pull/16564>`_, Sage Weil)
-* mon: add force-create-pg back (`issue#20605 <http://tracker.ceph.com/issues/20605>`_, `pr#16353 <https://github.com/ceph/ceph/pull/16353>`_, Kefu Chai)
-* mon: add mgr metdata commands, and overall 'versions' command for all daemon versions (`pr#16460 <https://github.com/ceph/ceph/pull/16460>`_, Sage Weil)
-* mon: a few health fixes (`pr#16415 <https://github.com/ceph/ceph/pull/16415>`_, xie xingguo)
-* mon: 'config-key put' -> 'config-key set' (`pr#16569 <https://github.com/ceph/ceph/pull/16569>`_, Sage Weil)
-* mon: do not dereference empty mgr_commands (`pr#16501 <https://github.com/ceph/ceph/pull/16501>`_, Sage Weil)
-* mon: Fix deep_age copy paste error (`pr#16434 <https://github.com/ceph/ceph/pull/16434>`_, Brad Hubbard)
-* mon: Fix output text and doc (`pr#16367 <https://github.com/ceph/ceph/pull/16367>`_, Yan Jun)
-* mon: '\* list' -> '\* ls' (`pr#16423 <https://github.com/ceph/ceph/pull/16423>`_, Sage Weil)
-* mon: load mgr commands at runtime (`pr#16028 <https://github.com/ceph/ceph/pull/16028>`_, John Spray, Sage Weil)
-* mon: mon/HealthMonitor: avoid sending unnecessary MMonHealthChecks to leader (`pr#16478 <https://github.com/ceph/ceph/pull/16478>`_, xie xingguo)
-* mon: mon/HealthMonitor: trigger a proposal if stat updated (`pr#16477 <https://github.com/ceph/ceph/pull/16477>`_, Kefu Chai)
-* mon: mon/LogMonitor: don't read list's end() for log last (`pr#16376 <https://github.com/ceph/ceph/pull/16376>`_, Joao Eduardo Luis)
-* mon: mon/MDSMonitor: close object section of formatter (`pr#16516 <https://github.com/ceph/ceph/pull/16516>`_, Chang Liu)
-* mon: mon/MgrMonitor: only induce mgr epoch shortly after mkfs (`pr#16356 <https://github.com/ceph/ceph/pull/16356>`_, Sage Weil)
-* mon: mon/OSDMonitor: ensure UP is not set for newly-created OSDs (`issue#20751 <http://tracker.ceph.com/issues/20751>`_, `pr#16534 <https://github.com/ceph/ceph/pull/16534>`_, Sage Weil)
-* mon: mon/OSDMonitor: issue pool application related warning (`pr#16520 <https://github.com/ceph/ceph/pull/16520>`_, xie xingguo)
-* mon: mon/OSDMonitor: remove zeroed new_state updates (`issue#20751 <http://tracker.ceph.com/issues/20751>`_, `pr#16518 <https://github.com/ceph/ceph/pull/16518>`_, Sage Weil)
-* mon: mon/PGMap: remove skewed utilizatoin warning (`issue#20730 <http://tracker.ceph.com/issues/20730>`_, `pr#16461 <https://github.com/ceph/ceph/pull/16461>`_, Sage Weil)
-* mon: OSDMonitor: check mon_max_pool_pg_num when set pool pg_num (`pr#16511 <https://github.com/ceph/ceph/pull/16511>`_, chenhg)
-* mon: prime pg_temp and a few health warning fixes (`pr#16530 <https://github.com/ceph/ceph/pull/16530>`_, xie xingguo)
-* mon: show destroyed status in tree view; do not auto-out destroyed osds (`pr#16446 <https://github.com/ceph/ceph/pull/16446>`_, xie xingguo)
-* mon: stop issuing not-[deep]-scrubbed warnings if disabled (`pr#16465 <https://github.com/ceph/ceph/pull/16465>`_, xie xingguo)
-* mon: support pool application metadata key/values (`pr#15763 <https://github.com/ceph/ceph/pull/15763>`_, Jason Dillaman)
-* msg: messages/: always set header.version in encode_payload() (`issue#19939 <http://tracker.ceph.com/issues/19939>`_, `pr#16421 <https://github.com/ceph/ceph/pull/16421>`_, Kefu Chai)
-* msg: mgr/status: row has incorrect number of values (`issue#20750 <http://tracker.ceph.com/issues/20750>`_, `pr#16529 <https://github.com/ceph/ceph/pull/16529>`_, liuchang0812)
-* msg: msg/async: use auto iterator having more simple code and good performance (`pr#16524 <https://github.com/ceph/ceph/pull/16524>`_, dingdangzhang)
-* osd: add default_device_class to metadata (`pr#16634 <https://github.com/ceph/ceph/pull/16634>`_, Neha Ojha)
-* osd: add dump filter for tracked ops (`pr#16561 <https://github.com/ceph/ceph/pull/16561>`_, Yan Jun)
-* osd: Add recovery sleep configuration option for HDDs and SSDs (`pr#16328 <https://github.com/ceph/ceph/pull/16328>`_, Neha Ojha)
-* osd: cmpext operator should ignore -ENOENT on read (`pr#16622 <https://github.com/ceph/ceph/pull/16622>`_, Jason Dillaman)
-* osd: combine conditional statements (`pr#16391 <https://github.com/ceph/ceph/pull/16391>`_, Yan Jun)
-* osd: do not send pg_created unless luminous (`issue#20785 <http://tracker.ceph.com/issues/20785>`_, `pr#16677 <https://github.com/ceph/ceph/pull/16677>`_, Kefu Chai)
-* osd: EC read handling: don't grab an objectstore error to use as the read error (`pr#16663 <https://github.com/ceph/ceph/pull/16663>`_, David Zafman)
-* osd: fix a couple bugs with persisting the missing set when it contains deletes (`issue#20704 <http://tracker.ceph.com/issues/20704>`_, `pr#16459 <https://github.com/ceph/ceph/pull/16459>`_, Josh Durgin)
-* osd: fix OpRequest and tracked op dump information (`pr#16504 <https://github.com/ceph/ceph/pull/16504>`_, Yan Jun)
-* osd: fix pg ref leaks when osd shutdown (`issue#20684 <http://tracker.ceph.com/issues/20684>`_, `pr#16408 <https://github.com/ceph/ceph/pull/16408>`_, Yang Honggang)
-* osd: Log audit (`pr#16281 <https://github.com/ceph/ceph/pull/16281>`_, Brad Hubbard)
-* osd: moved OpFinisher logic from OSDOp to OpContext (`issue#20783 <http://tracker.ceph.com/issues/20783>`_, `pr#16617 <https://github.com/ceph/ceph/pull/16617>`_, Jason Dillaman)
-* osd: populate last_epoch_split during build_initial_pg_history (`issue#20754 <http://tracker.ceph.com/issues/20754>`_, `pr#16519 <https://github.com/ceph/ceph/pull/16519>`_, Sage Weil)
-* osd: PrimaryLogPG, PGBackend: complete callback even if interval changes (`issue#20747 <http://tracker.ceph.com/issues/20747>`_, `pr#16536 <https://github.com/ceph/ceph/pull/16536>`_, Josh Durgin)
-* osd: process deletes during recovery instead of peering (`issue#19971 <http://tracker.ceph.com/issues/19971>`_, `pr#15952 <https://github.com/ceph/ceph/pull/15952>`_, Josh Durgin)
-* osd: rephrase "wrongly marked me down" clog message (`pr#16365 <https://github.com/ceph/ceph/pull/16365>`_, John Spray)
-* osd: scrub_to specifies clone ver, but transaction include head write… (`issue#20041 <http://tracker.ceph.com/issues/20041>`_, `pr#16404 <https://github.com/ceph/ceph/pull/16404>`_, David Zafman)
-* osd: support cmpext operation on EC-backed pools (`pr#15693 <https://github.com/ceph/ceph/pull/15693>`_, Zhengyong Wang, Jason Dillaman)
-* performance,rgw: rgw_file: permit dirent offset computation (`pr#16275 <https://github.com/ceph/ceph/pull/16275>`_, Matt Benjamin)
-* pybind: pybind/mgr/restful: fix typo (`pr#16560 <https://github.com/ceph/ceph/pull/16560>`_, Nick Erdmann)
-* rbd: cls/rbd: silence warning from -Wunused-variable (`pr#16670 <https://github.com/ceph/ceph/pull/16670>`_, Yan Jun)
-* rbd: cls/rbd: trash_list should be iterable (`issue#20643 <http://tracker.ceph.com/issues/20643>`_, `pr#16372 <https://github.com/ceph/ceph/pull/16372>`_, Jason Dillaman)
-* rbd: fixed coverity 'Argument cannot be negative' warning (`pr#16686 <https://github.com/ceph/ceph/pull/16686>`_, amitkuma)
-* rbd: make it more understandable when adding peer returns error (`pr#16313 <https://github.com/ceph/ceph/pull/16313>`_, songweibin)
-* rbd-mirror: guard the deletion of non-primary images (`pr#16398 <https://github.com/ceph/ceph/pull/16398>`_, Jason Dillaman)
-* rbd-mirror: initialize timer context pointer to null (`pr#16603 <https://github.com/ceph/ceph/pull/16603>`_, Jason Dillaman)
-* rbd: modified some commands' description into imperative sentence (`pr#16694 <https://github.com/ceph/ceph/pull/16694>`_, songweibin)
-* rbd,tests: qa/tasks/rbd_fio: bump default fio version to 2.21 (`pr#16656 <https://github.com/ceph/ceph/pull/16656>`_, Ilya Dryomov)
-* rbd,tests: qa: thrash tests for backoff and upmap (`pr#16428 <https://github.com/ceph/ceph/pull/16428>`_, Ilya Dryomov)
-* rbd,tests: qa/workunits: adjust path to ceph-helpers.sh (`pr#16599 <https://github.com/ceph/ceph/pull/16599>`_, Sage Weil)
-* rgw: acl grants num limit (`pr#16291 <https://github.com/ceph/ceph/pull/16291>`_, Enming Zhang)
-* rgw: check placement existence when create bucket (`pr#16385 <https://github.com/ceph/ceph/pull/16385>`_, Jiaying Ren)
-* rgw: check placement target existence during bucket creation (`pr#16384 <https://github.com/ceph/ceph/pull/16384>`_, Jiaying Ren)
-* rgw: delete object in error path (`issue#20620 <http://tracker.ceph.com/issues/20620>`_, `pr#16324 <https://github.com/ceph/ceph/pull/16324>`_, Yehuda Sadeh)
-* rgw: Do not decrement stats cache when the cache values are zero (`issue#20661 <http://tracker.ceph.com/issues/20661>`_, `pr#16389 <https://github.com/ceph/ceph/pull/16389>`_, Pavan Rallabhandi)
-* rgw: Drop dump_usage_bucket_info() to silence warning from -Wunused-function (`pr#16497 <https://github.com/ceph/ceph/pull/16497>`_, Wei Qiaomiao)
-* rgw: drop unused find_replacement() and some function docs (`pr#16386 <https://github.com/ceph/ceph/pull/16386>`_, Jiaying Ren)
-* rgw: fix asctime when logging in rgw_lc (`pr#16422 <https://github.com/ceph/ceph/pull/16422>`_, Abhishek Lekshmanan)
-* rgw: fix error message in removing bucket with --bypass-gc flag (`issue#20688 <http://tracker.ceph.com/issues/20688>`_, `pr#16419 <https://github.com/ceph/ceph/pull/16419>`_, Abhishek Varshney)
-* rgw: fix err when copy object in bucket with specified placement rule (`issue#20378 <http://tracker.ceph.com/issues/20378>`_, `pr#15837 <https://github.com/ceph/ceph/pull/15837>`_, fang yuxiang)
-* rgw: Fix for Policy Parse exception in case of multiple statements (`pr#16689 <https://github.com/ceph/ceph/pull/16689>`_, Pritha Srivastava)
-* rgw: fix memory leaks during Swift Static Website's error handling (`issue#20757 <http://tracker.ceph.com/issues/20757>`_, `pr#16531 <https://github.com/ceph/ceph/pull/16531>`_, Radoslaw Zarzynski)
-* rgw: fix parse/eval of policy conditions with IfExists (`issue#20708 <http://tracker.ceph.com/issues/20708>`_, `pr#16463 <https://github.com/ceph/ceph/pull/16463>`_, Casey Bodley)
-* rgw: fix radosgw will crash when service is restarted during lifecycl… (`issue#20756 <http://tracker.ceph.com/issues/20756>`_, `pr#16495 <https://github.com/ceph/ceph/pull/16495>`_, Wei Qiaomiao)
-* rgw: fix rgw hang when do RGWRealmReloader::reload after go SIGHUP (`issue#20686 <http://tracker.ceph.com/issues/20686>`_, `pr#16417 <https://github.com/ceph/ceph/pull/16417>`_, fang.yuxiang)
-* rgw: fix segfault in RevokeThread during its shutdown procedure (`issue#19831 <http://tracker.ceph.com/issues/19831>`_, `pr#15033 <https://github.com/ceph/ceph/pull/15033>`_, Radoslaw Zarzynski)
-* rgw: fix the UTF8 check on bucket entry name in rgw_log_op() (`issue#20779 <http://tracker.ceph.com/issues/20779>`_, `pr#16604 <https://github.com/ceph/ceph/pull/16604>`_, Radoslaw Zarzynski)
-* rgw: modify email to empty by admin RESTful api doesn't work (`pr#16309 <https://github.com/ceph/ceph/pull/16309>`_, fang.yuxiang)
-* rgw: never let http_redirect_code of RGWRedirectInfo to stay uninitialized (`issue#20774 <http://tracker.ceph.com/issues/20774>`_, `pr#16601 <https://github.com/ceph/ceph/pull/16601>`_, Radoslaw Zarzynski)
-* rgw: raise debug level of RGWPostObj_ObjStore_S3::get_policy (`pr#16203 <https://github.com/ceph/ceph/pull/16203>`_, Shasha Lu)
-* rgw: req xml params size limitation error msg (`pr#16310 <https://github.com/ceph/ceph/pull/16310>`_, Enming Zhang)
-* rgw: restore admin socket path in mrgw.sh (`pr#16540 <https://github.com/ceph/ceph/pull/16540>`_, Casey Bodley)
-* rgw: rgw_file: properly & |'d flags (`issue#20663 <http://tracker.ceph.com/issues/20663>`_, `pr#16448 <https://github.com/ceph/ceph/pull/16448>`_, Matt Benjamin)
-* rgw: rgw multisite: feature of bucket sync enable/disable (`pr#15801 <https://github.com/ceph/ceph/pull/15801>`_, Zhang Shaowen, Casey Bodley, Zengran Zhang)
-* rgw: should unlock when reshard_log->update() reture non-zero in RGWB… (`pr#16502 <https://github.com/ceph/ceph/pull/16502>`_, Wei Qiaomiao)
-* rgw: test,rgw: fix rgw placement rule pool config option (`pr#16380 <https://github.com/ceph/ceph/pull/16380>`_, Jiaying Ren)
-* rgw: usage (`issue#16191 <http://tracker.ceph.com/issues/16191>`_, `pr#14287 <https://github.com/ceph/ceph/pull/14287>`_, Ji Chen, Orit Wasserman)
-* rgw: use a namespace for rgw reshard pool for upgrades as well (`issue#20289 <http://tracker.ceph.com/issues/20289>`_, `pr#16368 <https://github.com/ceph/ceph/pull/16368>`_, Karol Mroz, Abhishek Lekshmanan)
-* rgw: Use comparison instead of assignment (`pr#16653 <https://github.com/ceph/ceph/pull/16653>`_, amitkuma)
-* tests: add setup/teardown for asok dir (`pr#16523 <https://github.com/ceph/ceph/pull/16523>`_, Kefu Chai)
-* tests: cephtool/test.sh: Only delete a test pool when no longer needed (`pr#16443 <https://github.com/ceph/ceph/pull/16443>`_, Willem Jan Withagen)
-* tests: qa: Added luminous to the mix in schedule_subset.sh (`pr#16430 <https://github.com/ceph/ceph/pull/16430>`_, Yuri Weinstein)
-* tests: qa,doc: document and fix tests for pool application warnings (`pr#16568 <https://github.com/ceph/ceph/pull/16568>`_, Sage Weil)
-* tests: qa/run-standalone.sh: fix the find option to be compatible with GNU find (`pr#16646 <https://github.com/ceph/ceph/pull/16646>`_, Kefu Chai)
-* tests: qa/suites/rados/singleton/all/erasure-code-nonregression: fix typo (`pr#16579 <https://github.com/ceph/ceph/pull/16579>`_, Sage Weil)
-* tests: qa/suites/upgrade/jewel-x: misc fixes for new health checks (`pr#16429 <https://github.com/ceph/ceph/pull/16429>`_, Sage Weil)
-* tests: qa/tasks/ceph-deploy: Fix bluestore options for ceph-deploy (`pr#16571 <https://github.com/ceph/ceph/pull/16571>`_, Vasu Kulkarni)
-* tests: qa/tasks/reg11184: use literal 'foo' instead pool_name (`pr#16451 <https://github.com/ceph/ceph/pull/16451>`_, Kefu Chai)
-* tests: qa/workunits/cephtool/test.sh: "ceph osd stat" output changed, update accordingly (`pr#16444 <https://github.com/ceph/ceph/pull/16444>`_, Willem Jan Withagen, Kefu Chai)
-* tests: qa/workunits/cephtool/test.sh: disable 'fs status' until bug is fixed (`issue#20761 <http://tracker.ceph.com/issues/20761>`_, `pr#16541 <https://github.com/ceph/ceph/pull/16541>`_, Sage Weil)
-* tests: qa/workunits/cephtool/test.sh: fix test to watch audit channel (`pr#16470 <https://github.com/ceph/ceph/pull/16470>`_, Sage Weil)
-* tests: test: ceph osd stat out has changed, fix tests for that (`pr#16403 <https://github.com/ceph/ceph/pull/16403>`_, Willem Jan Withagen)
-* tests: test: create asok files in a temp directory under $TMPDIR (`issue#16895 <http://tracker.ceph.com/issues/16895>`_, `pr#16445 <https://github.com/ceph/ceph/pull/16445>`_, Kefu Chai)
-* tests: test: Fixes for test_pidfile (`issue#20770 <http://tracker.ceph.com/issues/20770>`_, `pr#16587 <https://github.com/ceph/ceph/pull/16587>`_, David Zafman)
-* tests: test/osd: kill compile warning (`pr#16669 <https://github.com/ceph/ceph/pull/16669>`_, Yan Jun)
-* tests: test/rados: fix wrong parameter order of RETURN1_IF_NOT_VAL (`pr#16589 <https://github.com/ceph/ceph/pull/16589>`_, Yan Jun)
-* tests: test: reg11184 might not always find pg 2.0 prior to import (`pr#16610 <https://github.com/ceph/ceph/pull/16610>`_, David Zafman)
-* tests: test: s/osd_objectstore_type/osd_objectstore (`pr#16469 <https://github.com/ceph/ceph/pull/16469>`_, xie xingguo)
-* tests: test: test_pidfile running 2nd mon has unreliable log output (`pr#16635 <https://github.com/ceph/ceph/pull/16635>`_, David Zafman)
-* tools: ceph-disk: change the lockbox partition number to 5 (`issue#20556 <http://tracker.ceph.com/issues/20556>`_, `pr#16247 <https://github.com/ceph/ceph/pull/16247>`_, Shangzhong Zhu)
-* tools: ceph-disk: Fix for missing 'not' in \*_is_diskdevice checks (`issue#20706 <http://tracker.ceph.com/issues/20706>`_, `pr#16481 <https://github.com/ceph/ceph/pull/16481>`_, Nikita Gerasimov)
-* tools: ceph_disk/main.py: FreeBSD root has wheel for group (`pr#16609 <https://github.com/ceph/ceph/pull/16609>`_, Willem Jan Withagen)
-* tools: ceph-disk: s/ceph_osd_mkfs/command_check_call/ (`issue#20685 <http://tracker.ceph.com/issues/20685>`_, `pr#16427 <https://github.com/ceph/ceph/pull/16427>`_, Zhu Shangzhong)
-* tools: ceph-release-notes: escape _ for unintended links (`issue#17499 <http://tracker.ceph.com/issues/17499>`_, `pr#16528 <https://github.com/ceph/ceph/pull/16528>`_, Kefu Chai)
-* tools: ceph-release-notes: port it to py3 (`pr#16261 <https://github.com/ceph/ceph/pull/16261>`_, Kefu Chai)
-* tools: ceph-release-notes: refactor and fix regressions (`pr#16411 <https://github.com/ceph/ceph/pull/16411>`_, Nathan Cutler)
-* tools: os/bluestore/bluestore_tool: add sanity check to get rid of occasionally crash (`pr#16013 <https://github.com/ceph/ceph/pull/16013>`_, xie xingguo)
-* tools: script: add docker core dump debugger (`pr#16375 <https://github.com/ceph/ceph/pull/16375>`_, Patrick Donnelly)
-
-
-v12.1.2 Luminous (RC)
-=====================
-
-This is the second release candidate for Luminous, the next long term
-stable release.
-
-
-Other Notable Changes
----------------------
-
-* bluestore,common,performance: isa-l: update isa-l to v2.18 (`pr#15895 <https://github.com/ceph/ceph/pull/15895>`_, Ganesh Mahalingam, Tushar Gohad)
-* bluestore: os/bluestore/BlueFS: clean up log_writer aios from compaction (`issue#20454 <http://tracker.ceph.com/issues/20454>`_, `pr#16017 <https://github.com/ceph/ceph/pull/16017>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: clear current log entrys before dump all fnode (`pr#15973 <https://github.com/ceph/ceph/pull/15973>`_, Jianpeng Ma)
-* bluestore: os/bluestore: cleanup min_alloc_size; some formatting nits (`pr#15826 <https://github.com/ceph/ceph/pull/15826>`_, xie xingguo)
-* bluestore: os/bluestore: clear up redundant size assignment in KerenelDevice (`pr#16121 <https://github.com/ceph/ceph/pull/16121>`_, Shasha Lu)
-* bluestore: os/blueStore: Failure retry for opening file (`pr#16237 <https://github.com/ceph/ceph/pull/16237>`_, Yankun Li)
-* bluestore: os/bluestore: fix deferred_aio deadlock (`pr#16051 <https://github.com/ceph/ceph/pull/16051>`_, Sage Weil)
-* bluestore: os/bluestore: Make BitmapFreelistManager kv itereator short lived (`pr#16243 <https://github.com/ceph/ceph/pull/16243>`_, Mark Nelson)
-* bluestore: os/bluestore: misc fix and cleanups (`pr#16315 <https://github.com/ceph/ceph/pull/16315>`_, Jianpeng Ma)
-* bluestore: os/bluestore: move object exist in assign nid (`pr#16117 <https://github.com/ceph/ceph/pull/16117>`_, Jianpeng Ma)
-* bluestore: os/bluestore: narrow cache lock range; make sure min_alloc_size p2 aligned (`pr#15911 <https://github.com/ceph/ceph/pull/15911>`_, xie xingguo)
-* bluestore: os/bluestore: only submit deferred if there is any (`pr#16269 <https://github.com/ceph/ceph/pull/16269>`_, Sage Weil)
-* bluestore: os/bluestore: reduce some overhead for _do_clone_range() and _do_remove() (`pr#15944 <https://github.com/ceph/ceph/pull/15944>`_, xie xingguo)
-* bluestore: os/bluestore: slightly refactor Blob::try_reuse_blob (`pr#15836 <https://github.com/ceph/ceph/pull/15836>`_, xie xingguo)
-* bluestore: os/bluestore: use bufferlist functions whenever possible (`pr#16158 <https://github.com/ceph/ceph/pull/16158>`_, Jianpeng Ma)
-* bluestore,performance: os/bluestore: cap rocksdb cache size (`pr#15786 <https://github.com/ceph/ceph/pull/15786>`_, Mark Nelson)
-* bluestore,performance: os/bluestore: default cache size of 3gb (`pr#15976 <https://github.com/ceph/ceph/pull/15976>`_, Sage Weil)
-* bluestore,performance: os/bluestore: differ default cache size for hdd/ssd backends (`pr#16157 <https://github.com/ceph/ceph/pull/16157>`_, xie xingguo)
-* bluestore,performance: os/bluestore/KernelDevice: batch aio submit (`pr#16032 <https://github.com/ceph/ceph/pull/16032>`_, Haodong Tang)
-* bluestore,performance: os/bluestore: optimized (encode|decode)_escaped (`pr#15759 <https://github.com/ceph/ceph/pull/15759>`_, Piotr Dałek)
-* build/ops: build: build erasure-code isa lib without versions (`pr#16205 <https://github.com/ceph/ceph/pull/16205>`_, James Page)
-* build/ops: build: execute dh_systemd_{enable,start} after dh_install (`issue#19585 <http://tracker.ceph.com/issues/19585>`_, `pr#16218 <https://github.com/ceph/ceph/pull/16218>`_, James Page)
-* build/ops: ceph.in: allow developer mode from outside build tree (`issue#20472 <http://tracker.ceph.com/issues/20472>`_, `pr#16055 <https://github.com/ceph/ceph/pull/16055>`_, Dan Mick)
-* build/ops: ceph_release: we are in the 'rc' phase (12.1.z) (`pr#15957 <https://github.com/ceph/ceph/pull/15957>`_, Sage Weil)
-* build/ops,core: osd/OSD: auto class on osd start up (`pr#16014 <https://github.com/ceph/ceph/pull/16014>`_, xie xingguo)
-* build/ops: debian: workaround the bug in dpkg-maintscript-helper (`issue#20453 <http://tracker.ceph.com/issues/20453>`_, `pr#16072 <https://github.com/ceph/ceph/pull/16072>`_, Kefu Chai)
-* build/ops: debian: wrap-and-sort all files (`pr#16110 <https://github.com/ceph/ceph/pull/16110>`_, James Page)
-* build/ops: os/bluestore: fix build errors when spdk is on (`pr#16118 <https://github.com/ceph/ceph/pull/16118>`_, Ilsoo Byun)
-* build/ops,rbd,tests: test/librbd: re-enable internal tests in ceph_test_librbd (`pr#16255 <https://github.com/ceph/ceph/pull/16255>`_, Mykola Golub)
-* build/ops,rgw,tests,tools: vstart: allow to start multiple radosgw when RGW=x (`pr#15632 <https://github.com/ceph/ceph/pull/15632>`_, Adam Kupczyk)
-* build/ops,rgw,tools: vstart: add --rgw_compression to set rgw compression plugin (`pr#15929 <https://github.com/ceph/ceph/pull/15929>`_, Casey Bodley)
-* build/ops: rpm: bump epoch ahead of RHEL base (`issue#20508 <http://tracker.ceph.com/issues/20508>`_, `pr#16126 <https://github.com/ceph/ceph/pull/16126>`_, Ken Dreyer)
-* build/ops: rpm: Fix undefined FIRST_ARG (`issue#20077 <http://tracker.ceph.com/issues/20077>`_, `pr#16208 <https://github.com/ceph/ceph/pull/16208>`_, Boris Ranto)
-* build/ops: rpm: obsolete libcephfs1 (`pr#16074 <https://github.com/ceph/ceph/pull/16074>`_, Nathan Cutler)
-* build/ops: rpm: sane packaging of %{_docdir}/ceph directory (`pr#15900 <https://github.com/ceph/ceph/pull/15900>`_, Nathan Cutler)
-* build/ops: systemd: Add explicit Before=ceph.target (`pr#15835 <https://github.com/ceph/ceph/pull/15835>`_, Tim Serong)
-* build/ops: systemd/ceph-mgr: remove automagic mgr creation hack (`issue#19994 <http://tracker.ceph.com/issues/19994>`_, `pr#16023 <https://github.com/ceph/ceph/pull/16023>`_, Sage Weil)
-* build/ops,tests,tools: vstart.sh: Work around mgr restfull not available (`pr#15877 <https://github.com/ceph/ceph/pull/15877>`_, Willem Jan Withagen)
-* cephfs: Remove "experimental" warnings from multimds (`pr#15154 <https://github.com/ceph/ceph/pull/15154>`_, John Spray, "Yan, Zheng")
-* cleanup: test,mon,msg: kill clang analyzer warnings (`pr#16320 <https://github.com/ceph/ceph/pull/16320>`_, Kefu Chai)
-* cmake: fix the build with -DWITH_ZFS=ON (`pr#15907 <https://github.com/ceph/ceph/pull/15907>`_, Kefu Chai)
-* cmake: Rewrite HAVE_BABELTRACE option to WITH_ (`pr#15305 <https://github.com/ceph/ceph/pull/15305>`_, Willem Jan Withagen)
-* common: auth/RotatingKeyRing: use std::move() to set secrets (`pr#15866 <https://github.com/ceph/ceph/pull/15866>`_, Kefu Chai)
-* common: ceph.in, mgr: misc cleanups (`pr#16229 <https://github.com/ceph/ceph/pull/16229>`_, liuchang0812)
-* common: common,config: OPT_FLOAT and OPT_DOUBLE output format in config show (`issue#20104 <http://tracker.ceph.com/issues/20104>`_, `pr#15647 <https://github.com/ceph/ceph/pull/15647>`_, Yanhu Cao)
-* common: common/config_opt: remove unused config (`pr#15874 <https://github.com/ceph/ceph/pull/15874>`_, alex.wu)
-* common: common/config_opts: drop unused opt (`pr#15876 <https://github.com/ceph/ceph/pull/15876>`_, Yanhu Cao)
-* common: common/Mutex.cc: fixed the error in comment (`pr#16214 <https://github.com/ceph/ceph/pull/16214>`_, Pan Liu)
-* common: common/Timer: do not add event if already shutdown (`issue#20432 <http://tracker.ceph.com/issues/20432>`_, `pr#16201 <https://github.com/ceph/ceph/pull/16201>`_, Kefu Chai)
-* common: compressor/zlib: remove g_ceph_context/g_conf from compressor plugin (`pr#16245 <https://github.com/ceph/ceph/pull/16245>`_, Casey Bodley)
-* common,core: osd/osd_types: add flag name (IGNORE_REDIRECT) (`pr#15795 <https://github.com/ceph/ceph/pull/15795>`_, Myoungwon Oh)
-* common: fix log warnings (`pr#16056 <https://github.com/ceph/ceph/pull/16056>`_, xie xingguo)
-* common: initialize array in struct BackTrace (`pr#15864 <https://github.com/ceph/ceph/pull/15864>`_, Jos Collin)
-* common: libradosstriper: fix format injection vulnerability (`issue#20240 <http://tracker.ceph.com/issues/20240>`_, `pr#15674 <https://github.com/ceph/ceph/pull/15674>`_, Stan K)
-* common: misc cleanups in common, global, os, osd submodules (`pr#16321 <https://github.com/ceph/ceph/pull/16321>`_, Yan Jun)
-* common: msg/async: make recv_stamp more precise (`pr#15810 <https://github.com/ceph/ceph/pull/15810>`_, Pan Liu)
-* common: osdc/Objecter: release message if it's not handled (`issue#19741 <http://tracker.ceph.com/issues/19741>`_, `pr#15890 <https://github.com/ceph/ceph/pull/15890>`_, Kefu Chai)
-* common: osd/OSDMap: print require_osd_release (`pr#15974 <https://github.com/ceph/ceph/pull/15974>`_, Sage Weil)
-* common: Passing null pointer option_name to operator << in md_config_t::parse_option() (`pr#15881 <https://github.com/ceph/ceph/pull/15881>`_, Jos Collin)
-* common,rdma: msg/async/rdma: use lists properly (`pr#15908 <https://github.com/ceph/ceph/pull/15908>`_, Adir lev, Adir Lev)
-* common,tests: ceph_test_rados_api_c_read_operations: do not assert per-op rval is correct (`issue#19518 <http://tracker.ceph.com/issues/19518>`_, `pr#16196 <https://github.com/ceph/ceph/pull/16196>`_, Sage Weil)
-* common: Update the error string when res_nsearch() or res_search() fails (`pr#15878 <https://github.com/ceph/ceph/pull/15878>`_, huanwen ren)
-* core: ceph-disk/ceph_disk/main.py: Replace ST_ISBLK() test by is_diskdevice() (`pr#15587 <https://github.com/ceph/ceph/pull/15587>`_, Willem Jan Withagen)
-* core: ceph_disk/main.py: Allow FreeBSD zap a OSD disk (`pr#15642 <https://github.com/ceph/ceph/pull/15642>`_, Willem Jan Withagen)
-* core: ceph-disk: set the default systemd unit timeout to 3h (`issue#20229 <http://tracker.ceph.com/issues/20229>`_, `pr#15585 <https://github.com/ceph/ceph/pull/15585>`_, Loic Dachary)
-* core: Context: C_ContextsBase: delete enclosed contexts in dtor (`issue#20432 <http://tracker.ceph.com/issues/20432>`_, `pr#16159 <https://github.com/ceph/ceph/pull/16159>`_, Kefu Chai)
-* core: crush/CrushWrapper: chooseargs encoding fix (`pr#15984 <https://github.com/ceph/ceph/pull/15984>`_, Ilya Dryomov)
-* core: crush/CrushWrapper: make get_immediate_parent[_id] ignore per-class shadow hierarchy (`issue#20546 <http://tracker.ceph.com/issues/20546>`_, `pr#16221 <https://github.com/ceph/ceph/pull/16221>`_, Sage Weil)
-* core: kv/RocksDBStore: abort if rocksdb EIO, don't return incorrect result (`pr#15862 <https://github.com/ceph/ceph/pull/15862>`_, Haomai Wang)
-* core: make the conversion from wire error to host OS work (`pr#15780 <https://github.com/ceph/ceph/pull/15780>`_, Willem Jan Withagen)
-* core: messages/MOSDPing.h: drop unused fields (`pr#15843 <https://github.com/ceph/ceph/pull/15843>`_, Piotr Dałek)
-* core,mgr: mgr,librados: service map (`pr#15858 <https://github.com/ceph/ceph/pull/15858>`_, Yehuda Sadeh, John Spray, Sage Weil)
-* core,mgr,mon: mgr,mon: enable/disable mgr modules via 'ceph mgr module ...' commands (`pr#15958 <https://github.com/ceph/ceph/pull/15958>`_, Sage Weil)
-* core,mgr: mon/PGMap: slightly better debugging around pgmap updates (`pr#15820 <https://github.com/ceph/ceph/pull/15820>`_, Sage Weil)
-* core: mon/MonClient: respect the priority in SRV RR (`issue#5249 <http://tracker.ceph.com/issues/5249>`_, `pr#15964 <https://github.com/ceph/ceph/pull/15964>`_, Kefu Chai)
-* core: mon/MonmapMonitor: use __func__ instead of hard code function name (`pr#16037 <https://github.com/ceph/ceph/pull/16037>`_, Yanhu Cao)
-* core,mon: mon/MDSMonitor: fix segv when multiple MDSs raise same alert (`pr#16302 <https://github.com/ceph/ceph/pull/16302>`_, Sage Weil)
-* core,mon: mon/MgrStatMonitor: avoid dup health warnings during luminous upgrade (`issue#20435 <http://tracker.ceph.com/issues/20435>`_, `pr#15986 <https://github.com/ceph/ceph/pull/15986>`_, Sage Weil)
-* core,mon: mon, osd: misc fixes (`pr#16078 <https://github.com/ceph/ceph/pull/16078>`_, xie xingguo)
-* core: mon, osd: misc fixes and cleanups (`pr#16160 <https://github.com/ceph/ceph/pull/16160>`_, xie xingguo)
-* core: mon/OSDMonitor: _apply_remap -> _apply_upmap; less code redundancy (`pr#15846 <https://github.com/ceph/ceph/pull/15846>`_, xie xingguo)
-* core: mon/OSDMonitor: do not allow crush device classes until luminous (`pr#16188 <https://github.com/ceph/ceph/pull/16188>`_, Sage Weil)
-* core: osd/ECTransaction: cleanup the redundant check which works in overwrite IO context (`pr#15765 <https://github.com/ceph/ceph/pull/15765>`_, tang.jin)
-* core: osd/filestore: Revert "os/filestore: move ondisk in front (`issue#20524 <http://tracker.ceph.com/issues/20524>`_, `pr#16156 <https://github.com/ceph/ceph/pull/16156>`_, Kefu Chai)
-* core: osd/PG: Add two new mClock implementations of the PG sharded operator queue (`pr#14997 <https://github.com/ceph/ceph/pull/14997>`_, J. Eric Ivancich)
-* core: osd/PG: set clean when last_epoch_clean is updated (`issue#19023 <http://tracker.ceph.com/issues/19023>`_, `pr#15555 <https://github.com/ceph/ceph/pull/15555>`_, Samuel Just)
-* core: osd/PrimaryLogPG solve cache tier osd high memory consumption (`issue#20464 <http://tracker.ceph.com/issues/20464>`_, `pr#16011 <https://github.com/ceph/ceph/pull/16011>`_, Peng Xie)
-* core: osd/ReplicatedBackend: reset thread heartbeat after every omap entry … (`issue#20375 <http://tracker.ceph.com/issues/20375>`_, `pr#15823 <https://github.com/ceph/ceph/pull/15823>`_, Josh Durgin)
-* core: os/filestore: call committed_thru when no journal entries are replayed (`pr#15781 <https://github.com/ceph/ceph/pull/15781>`_, Kuan-Kai Chiu)
-* core: os/filestore: do not free event if not added (`pr#16235 <https://github.com/ceph/ceph/pull/16235>`_, Kefu Chai)
-* core: os/filestore: Exclude BTRFS on FreeBSD (`pr#16171 <https://github.com/ceph/ceph/pull/16171>`_, Willem Jan Withagen)
-* core: os/filestore/FileJournal: FileJournal::open() close journal file before return error (`issue#20504 <http://tracker.ceph.com/issues/20504>`_, `pr#16120 <https://github.com/ceph/ceph/pull/16120>`_, Yang Honggang)
-* core: os/filestore/FileStore.cc: remove a redundant judgement when get max latency (`pr#15961 <https://github.com/ceph/ceph/pull/15961>`_, Jianpeng Ma)
-* core: os/filestore: require experimental flag for btrfs (`pr#16086 <https://github.com/ceph/ceph/pull/16086>`_, Sage Weil)
-* core,performance: os/filestore/HashIndex: randomize split threshold by a configurable amount (`issue#15835 <http://tracker.ceph.com/issues/15835>`_, `pr#15689 <https://github.com/ceph/ceph/pull/15689>`_, Josh Durgin)
-* core,performance: os/filestore: queue ondisk completion before apply work (`pr#13918 <https://github.com/ceph/ceph/pull/13918>`_, Pan Liu)
-* core,performance: src/OSD: add more useful perf counters for performance tuning (`pr#15915 <https://github.com/ceph/ceph/pull/15915>`_, Pan Liu)
-* core,rbd: mon,osd: do not create rbd pool by default (`pr#15894 <https://github.com/ceph/ceph/pull/15894>`_, Greg Farnum, Sage Weil, David Zafman)
-* core: src/vstart.sh: kill dead upmap option (`pr#15848 <https://github.com/ceph/ceph/pull/15848>`_, xie xingguo)
-* core:" Stringify needs access to << before reference" src/include/stringify.h (`pr#16334 <https://github.com/ceph/ceph/pull/16334>`_, Willem Jan Withagen)
-* core,tests: do all valgrind runs on centos (`issue#20360 <http://tracker.ceph.com/issues/20360>`_, `issue#18126 <http://tracker.ceph.com/issues/18126>`_, `pr#16046 <https://github.com/ceph/ceph/pull/16046>`_, Sage Weil)
-* core,tests: qa/objectstore/filestore-btrfs: test btrfs on trusty only (`issue#20169 <http://tracker.ceph.com/issues/20169>`_, `pr#15814 <https://github.com/ceph/ceph/pull/15814>`_, Sage Weil)
-* core,tests: qa: stop testing btrfs (`issue#20169 <http://tracker.ceph.com/issues/20169>`_, `pr#16044 <https://github.com/ceph/ceph/pull/16044>`_, Sage Weil)
-* core,tests: qa/suites/powercycle/osd/tasks/radosbench: consume less space (`issue#20302 <http://tracker.ceph.com/issues/20302>`_, `pr#15821 <https://github.com/ceph/ceph/pull/15821>`_, Sage Weil)
-* core,tests: qa/suites/rados/singleton/all/reg11184: whitelist health warnings (`pr#16306 <https://github.com/ceph/ceph/pull/16306>`_, Sage Weil)
-* core,tests: qa/suites/rados/thrash/workload/\*: enable rados.py cache tiering ops (`issue#11793 <http://tracker.ceph.com/issues/11793>`_, `pr#16244 <https://github.com/ceph/ceph/pull/16244>`_, Sage Weil)
-* core,tests: qa/tasks/ceph_manager: wait longer for pg stats to flush (`pr#16322 <https://github.com/ceph/ceph/pull/16322>`_, Sage Weil)
-* core,tests: qa/tasks/ceph.py: no osd id to 'osd create' command (`issue#20548 <http://tracker.ceph.com/issues/20548>`_, `pr#16233 <https://github.com/ceph/ceph/pull/16233>`_, Sage Weil)
-* core,tests: qa/tasks/ceph: simplify ceph deployment slightly (`pr#15853 <https://github.com/ceph/ceph/pull/15853>`_, Sage Weil)
-* core,tests: qa/tasks/dump_stuck: fix for active+clean+remapped (`issue#20431 <http://tracker.ceph.com/issues/20431>`_, `pr#15955 <https://github.com/ceph/ceph/pull/15955>`_, Sage Weil)
-* core,tests: qa/tasks/radosbench: longer timeout (`pr#16213 <https://github.com/ceph/ceph/pull/16213>`_, Sage Weil)
-* crush: silence warning from -Woverflow (`pr#16329 <https://github.com/ceph/ceph/pull/16329>`_, Jos Collin)
-* doc: dev: add notes on PR make check validation test (`pr#16079 <https://github.com/ceph/ceph/pull/16079>`_, Nathan Cutler)
-* doc: doc/mgr/dashboard: update dashboard docs to reflect new defaults (`pr#16241 <https://github.com/ceph/ceph/pull/16241>`_, Sage Weil)
-* doc: doc/rados.8: add offset option for put command (`pr#16155 <https://github.com/ceph/ceph/pull/16155>`_, Jianpeng Ma)
-* doc: doc/release-notes: add Images creation timestamp note (`pr#15963 <https://github.com/ceph/ceph/pull/15963>`_, clove)
-* doc: doc/release-notes: fix ceph-deploy command (`pr#15987 <https://github.com/ceph/ceph/pull/15987>`_, Sage Weil)
-* doc: doc/release-notes: Luminous release notes typo fixes "ceph config-key ls"->"ceph config-key list" (`pr#16330 <https://github.com/ceph/ceph/pull/16330>`_, scienceluo)
-* doc: doc/release-notes: Luminous release notes typo fixes (`pr#16338 <https://github.com/ceph/ceph/pull/16338>`_, Luo Kexue)
-* doc: doc/release-notes: update luminous notes (`pr#15851 <https://github.com/ceph/ceph/pull/15851>`_, Sage Weil)
-* doc: doc/releases: Update releases from Feb 2017 to July 2017 (`pr#16303 <https://github.com/ceph/ceph/pull/16303>`_, Bryan Stillwell)
-* doc: docs: mgr dashboard (`pr#15920 <https://github.com/ceph/ceph/pull/15920>`_, Wido den Hollander)
-* doc: fix link for ceph-mgr cephx authorization (`pr#16246 <https://github.com/ceph/ceph/pull/16246>`_, Greg Farnum)
-* doc: Jewel v10.2.8 release notes (`pr#16274 <https://github.com/ceph/ceph/pull/16274>`_, Nathan Cutler)
-* doc: Jewel v10.2.9 release notes (`pr#16318 <https://github.com/ceph/ceph/pull/16318>`_, Nathan Cutler)
-* doc: kill sphinx warnings (`pr#16198 <https://github.com/ceph/ceph/pull/16198>`_, Kefu Chai)
-* doc: Luminous release notes typo fixes (`pr#15899 <https://github.com/ceph/ceph/pull/15899>`_, Abhishek Lekshmanan)
-* doc: mailmap: add Myoungwon Oh's mailmap and affiliation (`pr#15934 <https://github.com/ceph/ceph/pull/15934>`_, Myoungwon Oh)
-* doc: mailmap, organizationmap: add affiliation for Tushar Gohad (`pr#16081 <https://github.com/ceph/ceph/pull/16081>`_, Tushar Gohad)
-* doc: .mailmap, .organizationmap: Update Fan Yang information and affiliation (`pr#16067 <https://github.com/ceph/ceph/pull/16067>`_, Fan Yang)
-* doc: .mailmap, .organizationmap: Update Song Weibin information and affiliation (`pr#16311 <https://github.com/ceph/ceph/pull/16311>`_, songweibin)
-* doc: mgr/restful: bind to :: and update docs (`pr#16267 <https://github.com/ceph/ceph/pull/16267>`_, Sage Weil)
-* doc: update intro, quick start docs (`pr#16224 <https://github.com/ceph/ceph/pull/16224>`_, Sage Weil)
-* doc: v12.1.0 release notes notable changes addition again (`pr#15857 <https://github.com/ceph/ceph/pull/15857>`_, Abhishek Lekshmanan)
-* librados: add log channel to rados_monitor_log2 callback (`pr#15926 <https://github.com/ceph/ceph/pull/15926>`_, Sage Weil)
-* librados: redirect balanced reads to acting primary when targeting object isn't recovered (`issue#17968 <http://tracker.ceph.com/issues/17968>`_, `pr#15489 <https://github.com/ceph/ceph/pull/15489>`_, Xuehan Xu)
-* librbd: fail IO request when exclusive lock cannot be obtained (`pr#15860 <https://github.com/ceph/ceph/pull/15860>`_, Jason Dillaman)
-* mgr: clean up daemon start process (`issue#20383 <http://tracker.ceph.com/issues/20383>`_, `pr#16020 <https://github.com/ceph/ceph/pull/16020>`_, John Spray)
-* mgr: clean up fsstatus module (`pr#15925 <https://github.com/ceph/ceph/pull/15925>`_, John Spray)
-* mgr: cluster log message on plugin load error (`pr#15927 <https://github.com/ceph/ceph/pull/15927>`_, John Spray)
-* mgr: dashboard improvements (`pr#16043 <https://github.com/ceph/ceph/pull/16043>`_, John Spray)
-* mgr: drop repeated log info. and unnecessary write permission (`pr#15896 <https://github.com/ceph/ceph/pull/15896>`_, Yan Jun)
-* mgr: enable ceph_send_command() to send pg command (`pr#15865 <https://github.com/ceph/ceph/pull/15865>`_, Kefu Chai)
-* mgr: increase debug level for ticks 0 -> 10 (`pr#16301 <https://github.com/ceph/ceph/pull/16301>`_, Dan Mick)
-* mgr: mgr/ClusterState: do not mangle PGMap outside of Incremental (`issue#20208 <http://tracker.ceph.com/issues/20208>`_, `pr#16262 <https://github.com/ceph/ceph/pull/16262>`_, Sage Weil)
-* mgr: mgr/dashboard: add OSD list view (`pr#16373 <https://github.com/ceph/ceph/pull/16373>`_, John Spray)
-* mgr: mon/mgr: add detail error infomation (`pr#16048 <https://github.com/ceph/ceph/pull/16048>`_, Yan Jun)
-* mgr,mon: mgr,mon: debug init and mgrdigest subscriptions (`issue#20633 <http://tracker.ceph.com/issues/20633>`_, `pr#16351 <https://github.com/ceph/ceph/pull/16351>`_, Sage Weil)
-* mgr: pybind/mgr/dashboard: bind to :: by default (`pr#16223 <https://github.com/ceph/ceph/pull/16223>`_, Sage Weil)
-* mgr,rbd: pybind/mgr/dashboard: initial block integration (`pr#15521 <https://github.com/ceph/ceph/pull/15521>`_, Jason Dillaman)
-* mgr: Zabbix monitoring module (`pr#16019 <https://github.com/ceph/ceph/pull/16019>`_, Wido den Hollander)
-* mon: add support public_bind_addr option (`pr#16189 <https://github.com/ceph/ceph/pull/16189>`_, Bassam Tabbara)
-* mon: a few more upmap (and other) fixes (`pr#16239 <https://github.com/ceph/ceph/pull/16239>`_, xie xingguo)
-* mon: clean up in ceph_mon.cc (`pr#14102 <https://github.com/ceph/ceph/pull/14102>`_, huanwen ren)
-* mon: collect mon metdata as part of the election (`issue#20434 <http://tracker.ceph.com/issues/20434>`_, `pr#16148 <https://github.com/ceph/ceph/pull/16148>`_, Sage Weil)
-* mon: debug session feature tracking (`issue#20475 <http://tracker.ceph.com/issues/20475>`_, `pr#16128 <https://github.com/ceph/ceph/pull/16128>`_, Sage Weil)
-* mon: Division by zero in PGMapDigest::dump_pool_stats_full() (`pr#15901 <https://github.com/ceph/ceph/pull/15901>`_, Jos Collin)
-* mon: do crushtool test with fork and timeout, but w/o exec of crushtool (`issue#19964 <http://tracker.ceph.com/issues/19964>`_, `pr#16025 <https://github.com/ceph/ceph/pull/16025>`_, Sage Weil)
-* mon: Filter `log last` output by severity and channel (`pr#15924 <https://github.com/ceph/ceph/pull/15924>`_, John Spray)
-* mon: fix hang on deprecated/removed 'pg set_\*full_ratio' commands (`issue#20600 <http://tracker.ceph.com/issues/20600>`_, `pr#16300 <https://github.com/ceph/ceph/pull/16300>`_, Sage Weil)
-* mon: fix kvstore type in mon compact command (`pr#15954 <https://github.com/ceph/ceph/pull/15954>`_, liuchang0812)
-* mon: Fix status output warning for mon_warn_osd_usage_min_max_delta (`issue#20544 <http://tracker.ceph.com/issues/20544>`_, `pr#16220 <https://github.com/ceph/ceph/pull/16220>`_, David Zafman)
-* mon: handle cases where store->get() may return error (`issue#19601 <http://tracker.ceph.com/issues/19601>`_, `pr#14678 <https://github.com/ceph/ceph/pull/14678>`_, Jos Collin)
-* mon: include device class in tree view; hide shadow hierarchy (`pr#16016 <https://github.com/ceph/ceph/pull/16016>`_, Sage Weil)
-* mon: maintain the "cluster" PerfCounters when using ceph-mgr (`issue#20562 <http://tracker.ceph.com/issues/20562>`_, `pr#16249 <https://github.com/ceph/ceph/pull/16249>`_, Greg Farnum)
-* mon: mon,crush: create crush rules using device classes for replicated and ec pools via cli (`pr#16027 <https://github.com/ceph/ceph/pull/16027>`_, Sage Weil)
-* mon: mon/MgrStatMonitor: do not crash on luminous dev version upgrades (`pr#16287 <https://github.com/ceph/ceph/pull/16287>`_, Sage Weil)
-* mon: mon/Monitor: recreate mon session if features changed (`issue#20433 <http://tracker.ceph.com/issues/20433>`_, `pr#16230 <https://github.com/ceph/ceph/pull/16230>`_, Joao Eduardo Luis)
-* mon: mon/OSDMonitor: a couple of upmap and other fixes (`pr#15917 <https://github.com/ceph/ceph/pull/15917>`_, xie xingguo)
-* mon: mon/OSDMonitor: guard 'osd crush set-device-class' (`pr#16217 <https://github.com/ceph/ceph/pull/16217>`_, Sage Weil)
-* mon: mon/OSDMonitor: "osd crush class rename" support (`pr#15875 <https://github.com/ceph/ceph/pull/15875>`_, xie xingguo)
-* mon: mon/OSDMonitor: two pool opts related fix (`pr#15968 <https://github.com/ceph/ceph/pull/15968>`_, xie xingguo)
-* mon: mon/PaxosService: use __func__ instead of hard code function name (`pr#15863 <https://github.com/ceph/ceph/pull/15863>`_, Yanhu Cao)
-* mon: revamp health check/warning system (`pr#15643 <https://github.com/ceph/ceph/pull/15643>`_, John Spray, Sage Weil)
-* mon: show the leader info on mon stat command (`pr#14178 <https://github.com/ceph/ceph/pull/14178>`_, song baisen)
-* mon: skip crush smoke test when running under valgrind (`issue#20602 <http://tracker.ceph.com/issues/20602>`_, `pr#16346 <https://github.com/ceph/ceph/pull/16346>`_, Sage Weil)
-* mon,tests: qa/suites: add test exercising workunits/mon/auth_caps.sh (`pr#15754 <https://github.com/ceph/ceph/pull/15754>`_, Kefu Chai)
-* msg: make listen backlog an option, increase from 128 to 512 (`issue#20330 <http://tracker.ceph.com/issues/20330>`_, `pr#15743 <https://github.com/ceph/ceph/pull/15743>`_, Haomai Wang)
-* msg: msg/async: increase worker reference with local listen table enabled backend (`issue#20390 <http://tracker.ceph.com/issues/20390>`_, `pr#15897 <https://github.com/ceph/ceph/pull/15897>`_, Haomai Wang)
-* msg: msg/async/rdma: Data path fixes (`pr#15903 <https://github.com/ceph/ceph/pull/15903>`_, Adir lev)
-* msg: msg/async/rdma: register buffer as continuous (`pr#15967 <https://github.com/ceph/ceph/pull/15967>`_, Adir Lev)
-* msg: msg/async/rdma: remove assert from ibv_dealloc_pd in ProtectionDomain (`pr#15832 <https://github.com/ceph/ceph/pull/15832>`_, DanielBar-On)
-* msg: msg/MOSDOpReply: fix missing trace decode (`pr#15999 <https://github.com/ceph/ceph/pull/15999>`_, Yan Jun)
-* msg: QueueStrategy::wait() joins all threads (`issue#20534 <http://tracker.ceph.com/issues/20534>`_, `pr#16194 <https://github.com/ceph/ceph/pull/16194>`_, Casey Bodley)
-* msg: Revert "msg/async: increase worker reference with local listen table enabled backend" (`issue#20603 <http://tracker.ceph.com/issues/20603>`_, `pr#16323 <https://github.com/ceph/ceph/pull/16323>`_, Haomai Wang)
-* osd: Check for and automatically repair object info soid during scrub (`issue#20471 <http://tracker.ceph.com/issues/20471>`_, `pr#16052 <https://github.com/ceph/ceph/pull/16052>`_, David Zafman)
-* osd: check queue_transaction return value (`pr#15873 <https://github.com/ceph/ceph/pull/15873>`_, zhanglei)
-* osd: clear_queued_recovery() in on_shutdown() (`issue#20432 <http://tracker.ceph.com/issues/20432>`_, `pr#16093 <https://github.com/ceph/ceph/pull/16093>`_, Kefu Chai)
-* osd: compact osd feature (`issue#19592 <http://tracker.ceph.com/issues/19592>`_, `pr#16045 <https://github.com/ceph/ceph/pull/16045>`_, liuchang0812)
-* osd: Corrupt objects stop snaptrim and mark pg snaptrim_error (`issue#13837 <http://tracker.ceph.com/issues/13837>`_, `pr#15635 <https://github.com/ceph/ceph/pull/15635>`_, David Zafman)
-* osd: dump the field name of object watchers and cleanups (`pr#15946 <https://github.com/ceph/ceph/pull/15946>`_, Yan Jun)
-* osd: Execute crush_location_hook when configured in ceph.conf (`pr#15951 <https://github.com/ceph/ceph/pull/15951>`_, Wido den Hollander)
-* osd: On EIO from read recover the primary replica from another copy (`issue#18165 <http://tracker.ceph.com/issues/18165>`_, `pr#14760 <https://github.com/ceph/ceph/pull/14760>`_, David Zafman)
-* osd: osd does not using MPing Messages,do not include unused include (`pr#15833 <https://github.com/ceph/ceph/pull/15833>`_, linbing)
-* osd: Preserve OSDOp information for historic ops (`pr#15265 <https://github.com/ceph/ceph/pull/15265>`_, Guo-Fu Tseng)
-* osd: restart boot process if waiting for luminous mons (`issue#20631 <http://tracker.ceph.com/issues/20631>`_, `pr#16341 <https://github.com/ceph/ceph/pull/16341>`_, Sage Weil)
-* osd: unlock sdata_op_ordering_lock with sdata_lock hold to avoid miss… (`pr#15891 <https://github.com/ceph/ceph/pull/15891>`_, Ming Lin)
-* pybind: ceph.in: Check return value when connecting (`pr#16130 <https://github.com/ceph/ceph/pull/16130>`_, Douglas Fuller)
-* pybind: ceph-rest-api: Various REST API fixes (`pr#15910 <https://github.com/ceph/ceph/pull/15910>`_, Wido den Hollander)
-* pybind: pybind/mgr/dashboard: fix get kernel_version error (`pr#16094 <https://github.com/ceph/ceph/pull/16094>`_, Peng Zhang)
-* pybind: restore original API for backwards compatibility (`issue#20421 <http://tracker.ceph.com/issues/20421>`_, `pr#15932 <https://github.com/ceph/ceph/pull/15932>`_, Jason Dillaman)
-* rbd: do not attempt to load key if auth is disabled (`issue#19035 <http://tracker.ceph.com/issues/19035>`_, `pr#16024 <https://github.com/ceph/ceph/pull/16024>`_, Jason Dillaman)
-* rbd-mirror: ignore permission errors on rbd_mirroring object (`issue#20571 <http://tracker.ceph.com/issues/20571>`_, `pr#16264 <https://github.com/ceph/ceph/pull/16264>`_, Jason Dillaman)
-* rbd,tests: qa/suites/rbd: restrict python memcheck validation to CentOS (`pr#15923 <https://github.com/ceph/ceph/pull/15923>`_, Jason Dillaman)
-* rbd,tests: qa/tasks: rbd-mirror daemon not properly run in foreground mode (`issue#20630 <http://tracker.ceph.com/issues/20630>`_, `pr#16340 <https://github.com/ceph/ceph/pull/16340>`_, Jason Dillaman)
-* rbd,tests: test: fix compile warning in ceph_test_cls_rbd (`pr#15919 <https://github.com/ceph/ceph/pull/15919>`_, Jason Dillaman)
-* rbd,tests: test: fix failing rbd devstack teuthology test (`pr#15956 <https://github.com/ceph/ceph/pull/15956>`_, Jason Dillaman)
-* rbd,tools: tools/rbd_mirror: initialize non-static class member m_do_resync in ImageReplayer (`pr#15889 <https://github.com/ceph/ceph/pull/15889>`_, Jos Collin)
-* rbd,tools: tools/rbd_nbd: add --version show support (`pr#16254 <https://github.com/ceph/ceph/pull/16254>`_, Jin Cai)
-* rgw: add a new error code for non-existed subuser (`pr#16095 <https://github.com/ceph/ceph/pull/16095>`_, Zhao Chao)
-* rgw: add a new error code for non-existed user (`issue#20468 <http://tracker.ceph.com/issues/20468>`_, `pr#16033 <https://github.com/ceph/ceph/pull/16033>`_, Zhao Chao)
-* rgw: add missing RGWPeriod::reflect() based on new atomic update_latest_epoch() (`issue#19816 <http://tracker.ceph.com/issues/19816>`_, `issue#19817 <http://tracker.ceph.com/issues/19817>`_, `pr#14915 <https://github.com/ceph/ceph/pull/14915>`_, Casey Bodley)
-* rgw: auto reshard old buckets (`pr#15665 <https://github.com/ceph/ceph/pull/15665>`_, Orit Wasserman)
-* rgw: cleanup rgw-admin duplicated judge during OLH GET/READLOG (`pr#15700 <https://github.com/ceph/ceph/pull/15700>`_, Jiaying Ren)
-* rgw: cls: ceph::timespan tag_timeout wrong units (`issue#20380 <http://tracker.ceph.com/issues/20380>`_, `pr#16026 <https://github.com/ceph/ceph/pull/16026>`_, Matt Benjamin)
-* rgw: Compress crash bug refactor (`issue#20098 <http://tracker.ceph.com/issues/20098>`_, `pr#15569 <https://github.com/ceph/ceph/pull/15569>`_, Adam Kupczyk)
-* rgw: Correcting the condition in ceph_assert while parsing an AWS Principal (`pr#15997 <https://github.com/ceph/ceph/pull/15997>`_, Pritha Srivastava)
-* rgw: Do not fetch bucket stats by default upon bucket listing (`issue#20377 <http://tracker.ceph.com/issues/20377>`_, `pr#15834 <https://github.com/ceph/ceph/pull/15834>`_, Pavan Rallabhandi)
-* rgw: drop unused function RGWRemoteDataLog::get_shard_info() (`pr#16236 <https://github.com/ceph/ceph/pull/16236>`_, Shasha Lu)
-* rgw: drop unused rgw_pool parameter, local variables and member variable (`pr#16154 <https://github.com/ceph/ceph/pull/16154>`_, Jiaying Ren)
-* rgw: external auth engines of S3 honor rgw_keystone_implicit_tenants (`issue#17779 <http://tracker.ceph.com/issues/17779>`_, `pr#15572 <https://github.com/ceph/ceph/pull/15572>`_, Radoslaw Zarzynski)
-* rgw: Fix a bug that multipart upload may exceed the quota (`issue#19602 <http://tracker.ceph.com/issues/19602>`_, `pr#12010 <https://github.com/ceph/ceph/pull/12010>`_, Zhang Shaowen)
-* rgw: Fix duplicate tag removal during GC (`issue#20107 <http://tracker.ceph.com/issues/20107>`_, `pr#15912 <https://github.com/ceph/ceph/pull/15912>`_, Jens Rosenboom)
-* rgw: fix error handling in get_params() of RGWPostObj_ObjStore_S3 (`pr#15670 <https://github.com/ceph/ceph/pull/15670>`_, Radoslaw Zarzynski)
-* rgw: fix error handling in the link() method of RGWBucket (`issue#20279 <http://tracker.ceph.com/issues/20279>`_, `pr#15669 <https://github.com/ceph/ceph/pull/15669>`_, Radoslaw Zarzynski)
-* rgw: fixes for AWSBrowserUploadAbstractor auth (`issue#20372 <http://tracker.ceph.com/issues/20372>`_, `pr#15882 <https://github.com/ceph/ceph/pull/15882>`_, Radoslaw Zarzynski, Casey Bodley)
-* rgw: fix infinite loop in rest api for log list (`issue#20386 <http://tracker.ceph.com/issues/20386>`_, `pr#15983 <https://github.com/ceph/ceph/pull/15983>`_, xierui, Casey Bodley)
-* rgw: fix leaks with incomplete multiparts (`issue#17164 <http://tracker.ceph.com/issues/17164>`_, `pr#15630 <https://github.com/ceph/ceph/pull/15630>`_, Abhishek Varshney)
-* rgw: fix marker encoding problem (`issue#20463 <http://tracker.ceph.com/issues/20463>`_, `pr#15998 <https://github.com/ceph/ceph/pull/15998>`_, Marcus Watts)
-* rgw: fix memory leak in copy_obj_to_remote_dest (`pr#9974 <https://github.com/ceph/ceph/pull/9974>`_, weiqiaomiao)
-* rgw: fix not initialized vars which cause rgw crash with ec data pool (`issue#20542 <http://tracker.ceph.com/issues/20542>`_, `pr#16177 <https://github.com/ceph/ceph/pull/16177>`_, Aleksei Gutikov)
-* rgw: fix potential null pointer dereference in rgw_admin (`pr#15667 <https://github.com/ceph/ceph/pull/15667>`_, Radoslaw Zarzynski)
-* rgw: fix radosgw-admin data sync run crash (`issue#20423 <http://tracker.ceph.com/issues/20423>`_, `pr#15938 <https://github.com/ceph/ceph/pull/15938>`_, Shasha Lu)
-* rgw: fix s3 object uploads with chunked transfers and v4 signatures (`issue#20447 <http://tracker.ceph.com/issues/20447>`_, `pr#15965 <https://github.com/ceph/ceph/pull/15965>`_, Marcus Watts)
-* rgw: fix wrong error code for expired Swift TempURL's links (`issue#20384 <http://tracker.ceph.com/issues/20384>`_, `pr#15850 <https://github.com/ceph/ceph/pull/15850>`_, Radoslaw Zarzynski)
-* rgw: fix zone did't update realm_id when added to zonegroup (`issue#17995 <http://tracker.ceph.com/issues/17995>`_, `pr#12139 <https://github.com/ceph/ceph/pull/12139>`_, Tianshan Qu)
-* rgw: implement get/put object tags for S3 (`pr#13753 <https://github.com/ceph/ceph/pull/13753>`_, Abhishek Lekshmanan)
-* rgw: /info claims we do support Swift's accounts ACLs (`issue#20394 <http://tracker.ceph.com/issues/20394>`_, `pr#15887 <https://github.com/ceph/ceph/pull/15887>`_, Radoslaw Zarzynski)
-* rgw: initialize non-static class members in ESQueryCompiler (`pr#15884 <https://github.com/ceph/ceph/pull/15884>`_, Jos Collin)
-* rgw: initialize Non-static class member val in ESQueryNodeLeafVal_Int (`pr#15888 <https://github.com/ceph/ceph/pull/15888>`_, Jos Collin)
-* rgw: initialize Non-static class member worker in RGWReshard (`pr#15886 <https://github.com/ceph/ceph/pull/15886>`_, Jos Collin)
-* rgw: Initialize pointer fields (`pr#16021 <https://github.com/ceph/ceph/pull/16021>`_, Jos Collin)
-* rgw: lease_stack: use reset method instead of assignment (`pr#16185 <https://github.com/ceph/ceph/pull/16185>`_, Nathan Cutler)
-* rgw: lock is not released when set sync marker is failed (`issue#18077 <http://tracker.ceph.com/issues/18077>`_, `pr#12197 <https://github.com/ceph/ceph/pull/12197>`_, Zhang Shaowen)
-* rgw: log_meta only for more than one zone (`issue#20357 <http://tracker.ceph.com/issues/20357>`_, `pr#15777 <https://github.com/ceph/ceph/pull/15777>`_, Orit Wasserman, Leo Zhang)
-* rgw: multipart copy-part remove '/' for s3 java sdk request header (`issue#20075 <http://tracker.ceph.com/issues/20075>`_, `pr#15283 <https://github.com/ceph/ceph/pull/15283>`_, root)
-* rgw:multisite: fix RGWRadosRemoveOmapKeysCR and change cn to intrusive_ptr (`issue#20539 <http://tracker.ceph.com/issues/20539>`_, `pr#16197 <https://github.com/ceph/ceph/pull/16197>`_, Shasha Lu)
-* rgw: omit X-Account-Access-Control if there is no grant to serialize (`issue#20395 <http://tracker.ceph.com/issues/20395>`_, `pr#15883 <https://github.com/ceph/ceph/pull/15883>`_, Radoslaw Zarzynski)
-* rgw: radosgw: fix compilation with cryptopp (`pr#15960 <https://github.com/ceph/ceph/pull/15960>`_, Adam Kupczyk)
-* rgw: reject request if decoded URI contains \0 in the middle (`issue#20418 <http://tracker.ceph.com/issues/20418>`_, `pr#15953 <https://github.com/ceph/ceph/pull/15953>`_, Radoslaw Zarzynski)
-* rgw: remove a redundant judgement in rgw_rados.cc:delete_obj (`pr#11124 <https://github.com/ceph/ceph/pull/11124>`_, Zhang Shaowen)
-* rgw: remove the useless output when listing zonegroups (`pr#16331 <https://github.com/ceph/ceph/pull/16331>`_, Zhang Shaowen)
-* rgw: Replace get_zonegroup().is_master_zonegroup() with is_meta_master() in RGWBulkDelete::Deleter::delete_single() (`pr#16062 <https://github.com/ceph/ceph/pull/16062>`_, Fan Yang)
-* rgw: rgw_file: add compression interop to RGW NFS (`issue#20462 <http://tracker.ceph.com/issues/20462>`_, `pr#15989 <https://github.com/ceph/ceph/pull/15989>`_, Matt Benjamin)
-* rgw: rgw_file: add service map registration (`pr#16251 <https://github.com/ceph/ceph/pull/16251>`_, Matt Benjamin)
-* rgw: rgw_file: avoid a recursive lane lock in LRU drain (`issue#20374 <http://tracker.ceph.com/issues/20374>`_, `pr#15819 <https://github.com/ceph/ceph/pull/15819>`_, Matt Benjamin)
-* rgw: rgw_file: fix misuse of make_key_name before make_fhk (`pr#15108 <https://github.com/ceph/ceph/pull/15108>`_, Gui Hecheng)
-* rgw: rgw_file skip policy read for virtual components (`pr#16034 <https://github.com/ceph/ceph/pull/16034>`_, Gui Hecheng)
-* rgw: rgw:fix s3 aws v2 signature priority between header['X-Amz-Date'] and header['Date'] (`issue#20176 <http://tracker.ceph.com/issues/20176>`_, `pr#15467 <https://github.com/ceph/ceph/pull/15467>`_, yuliyang)
-* rgw: rgw: fix the subdir without slash of s3 website url (`issue#20307 <http://tracker.ceph.com/issues/20307>`_, `pr#15703 <https://github.com/ceph/ceph/pull/15703>`_, liuhong)
-* rgw: rgw/rgw_frontend.h: Return negative value for empty uid in RGWLoadGenFrontend::init() (`pr#16204 <https://github.com/ceph/ceph/pull/16204>`_, jimifm)
-* rgw: rgw/rgw_op: fix whitespace and indentation warning (`pr#15928 <https://github.com/ceph/ceph/pull/15928>`_, Sage Weil)
-* rgw: rgw/rgw_rados: Remove duplicate calls in RGWRados::finalize() (`pr#15281 <https://github.com/ceph/ceph/pull/15281>`_, jimifm)
-* rgw: rgw,test: fix rgw placement rule pool config option (`pr#16084 <https://github.com/ceph/ceph/pull/16084>`_, Jiaying Ren)
-* rgw: S3 lifecycle now supports expiration date (`pr#15807 <https://github.com/ceph/ceph/pull/15807>`_, Zhang Shaowen)
-* rgw: silence compile warning from -Wmaybe-uninitialized (`pr#15996 <https://github.com/ceph/ceph/pull/15996>`_, Jiaying Ren)
-* rgw: silence warning from -Wmaybe-uninitialized (`pr#15949 <https://github.com/ceph/ceph/pull/15949>`_, Jos Collin)
-* rgw,tests: qa/tasks: S3A hadoop task to test s3a with Ceph (`pr#14624 <https://github.com/ceph/ceph/pull/14624>`_, Vasu Kulkarni)
-* rgw,tests: vstart: remove rgw_enable_static_website (`pr#15856 <https://github.com/ceph/ceph/pull/15856>`_, Casey Bodley)
-* rgw: Uninitialized member in LCRule (`pr#15827 <https://github.com/ceph/ceph/pull/15827>`_, Jos Collin)
-* rgw: use 64-bit offsets for compression (`issue#20231 <http://tracker.ceph.com/issues/20231>`_, `pr#15656 <https://github.com/ceph/ceph/pull/15656>`_, Adam Kupczyk, fang yuxiang)
-* rgw: use uncompressed size for range_to_ofs() in slo/dlo (`pr#15931 <https://github.com/ceph/ceph/pull/15931>`_, Casey Bodley)
-* rgw: using RGW_OBJ_NS_MULTIPART in check_bad_index_multipart (`pr#15774 <https://github.com/ceph/ceph/pull/15774>`_, Shasha Lu)
-* rgw: verify md5 in post obj (`issue#19739 <http://tracker.ceph.com/issues/19739>`_, `pr#14961 <https://github.com/ceph/ceph/pull/14961>`_, Yehuda Sadeh)
-* rgw: Wip rgw fix prefix list (`issue#19432 <http://tracker.ceph.com/issues/19432>`_, `pr#15916 <https://github.com/ceph/ceph/pull/15916>`_, Giovani Rinaldi, Orit Wasserman)
-* tests: ceph-disk: use communicate() instead of wait() for output (`pr#16347 <https://github.com/ceph/ceph/pull/16347>`_, Kefu Chai)
-* tests: cls_lock: move lock_info_t definition to cls_lock_types.h (`pr#16091 <https://github.com/ceph/ceph/pull/16091>`_, runsisi)
-* tests: fix rados/upgrade/jewel-x-singleton and make workunit task handle repo URLs not ending in ".git" (`issue#20554 <http://tracker.ceph.com/issues/20554>`_, `issue#20368 <http://tracker.ceph.com/issues/20368>`_, `pr#16228 <https://github.com/ceph/ceph/pull/16228>`_, Nathan Cutler, Sage Weil)
-* tests: mgr,os,test: kill clang analyzer warnings (`pr#16227 <https://github.com/ceph/ceph/pull/16227>`_, Kefu Chai)
-* tests: move swift.py task from teuthology to ceph, phase one (master) (`issue#20392 <http://tracker.ceph.com/issues/20392>`_, `pr#15859 <https://github.com/ceph/ceph/pull/15859>`_, Nathan Cutler, Sage Weil, Warren Usui, Greg Farnum, Ali Maredia, Tommi Virtanen, Zack Cerza, Sam Lang, Yehuda Sadeh, Joe Buck, Josh Durgin)
-* tests: [qa/ceph-deploy]: run create mgr nodes as well (`pr#16216 <https://github.com/ceph/ceph/pull/16216>`_, Vasu Kulkarni)
-* tests: qa: do not restrict valgrind runs to centos (`issue#18126 <http://tracker.ceph.com/issues/18126>`_, `pr#15893 <https://github.com/ceph/ceph/pull/15893>`_, Greg Farnum)
-* tests: qa/suites/rados/singleton/all/mon-auth-caps: more osds so we can go clean (`pr#16225 <https://github.com/ceph/ceph/pull/16225>`_, Sage Weil)
-* tests: qa/suites/upgrade/hammer-jewel-x: add luminous.yaml (`issue#20342 <http://tracker.ceph.com/issues/20342>`_, `pr#15764 <https://github.com/ceph/ceph/pull/15764>`_, Kefu Chai)
-* tests: qa/tasks/ceph: don't hard-code cluster name when copying fsid (`pr#16212 <https://github.com/ceph/ceph/pull/16212>`_, Jason Dillaman)
-* tests: qa/tasks/ceph: should be "Waiting for all PGs", not "all osds" (`pr#16122 <https://github.com/ceph/ceph/pull/16122>`_, Kefu Chai)
-* tests: qa/tasks/radosbench: increase timeout (`pr#15885 <https://github.com/ceph/ceph/pull/15885>`_, Sage Weil)
-* tests: qa/workunits/ceph-helpers: enable experimental features for osd (`pr#16319 <https://github.com/ceph/ceph/pull/16319>`_, Kefu Chai)
-* tests: qa/workunits/ceph-helpers: test wait_for_health_ok differently (`pr#16317 <https://github.com/ceph/ceph/pull/16317>`_, Kefu Chai)
-* tests: rgw.py: put client roles in a separate list (`issue#20417 <http://tracker.ceph.com/issues/20417>`_, `pr#15913 <https://github.com/ceph/ceph/pull/15913>`_, Nathan Cutler)
-* tests: rgw/singleton: drop duplicate filestore-xfs.yaml (`pr#15959 <https://github.com/ceph/ceph/pull/15959>`_, Nathan Cutler)
-* tests: test: Division by zero in Legacy::encode_n() (`pr#15902 <https://github.com/ceph/ceph/pull/15902>`_, Jos Collin)
-* tests: test/fio: print all perfcounters rather than objectstore itself (`pr#16339 <https://github.com/ceph/ceph/pull/16339>`_, Jianpeng Ma)
-* tests: test/fio: remove experimental option for bluestore & rocksdb (`pr#16263 <https://github.com/ceph/ceph/pull/16263>`_, Pan Liu)
-* tests: test: Fix reg11184 test to remove extraneous pg (`pr#16265 <https://github.com/ceph/ceph/pull/16265>`_, David Zafman)
-* tests: test/msgr: fixed the hang issue for perf_msg_client (`pr#16358 <https://github.com/ceph/ceph/pull/16358>`_, Pan Liu)
-* tests: test/osd/osd-scrub-repair.sh: disable ec_overwrite tests on FreeBSD (`pr#15445 <https://github.com/ceph/ceph/pull/15445>`_, Willem Jan Withagen)
-* tests: test/osd/osd-scrub-repair.sh: Fix diff options on FreeBSD (`pr#15914 <https://github.com/ceph/ceph/pull/15914>`_, Willem Jan Withagen)
-* tests,tools: test, ceph-osdomap-tool: kill clang warnings (`pr#15905 <https://github.com/ceph/ceph/pull/15905>`_, Kefu Chai)
-* tools: ceph-conf: fix typo in usage: 'mon add' should be 'mon addr' (`pr#15935 <https://github.com/ceph/ceph/pull/15935>`_, Peng Zhang)
-* tools: ceph-create-keys: add an argument to override default 10-minute timeout (`pr#16049 <https://github.com/ceph/ceph/pull/16049>`_, Douglas Fuller)
-* tools: ceph.in: filter out audit from ceph -w (`pr#16345 <https://github.com/ceph/ceph/pull/16345>`_, John Spray)
-* tools: ceph-release-notes: escape asterisks not for inline emphasis (`pr#16199 <https://github.com/ceph/ceph/pull/16199>`_, Kefu Chai)
-* tools: ceph-release-notes: handle an edge case (`pr#16277 <https://github.com/ceph/ceph/pull/16277>`_, Nathan Cutler)
-* tools: Cleanup dead code in ceph-objectstore-tool (`pr#15812 <https://github.com/ceph/ceph/pull/15812>`_, David Zafman)
-* tools: libradosstriper: fix MultiAioCompletion leaks on failure (`pr#15471 <https://github.com/ceph/ceph/pull/15471>`_, Kefu Chai)
-* tools: tools/rados: some cleanups (`pr#16147 <https://github.com/ceph/ceph/pull/16147>`_, Yan Jun)
-* tools: vstart.sh: bind restful, dashboard to ::, not 127.0.0.1 (`pr#16349 <https://github.com/ceph/ceph/pull/16349>`_, Sage Weil)
-
-
-v12.1.0 Luminous (RC)
-=====================
-
-This is the first release candidate for Luminous, the next long term
-stable release.
-
-
-
-
-Notable Changes since Kraken
-----------------------------
-
-build consolidated list before final release
-
-Notable Changes since v12.0.3
------------------------------
-
-* bluestore: ceph-disk: add --filestore argument, default to --bluestore (`pr#15437 <https://github.com/ceph/ceph/pull/15437>`_, Loic Dachary, Sage Weil)
-* bluestore,core: os/bluestore: fix warning (`pr#15435 <https://github.com/ceph/ceph/pull/15435>`_, Sage Weil)
-* bluestore,core: os/bluestore: improve mempool usage (`pr#15402 <https://github.com/ceph/ceph/pull/15402>`_, Sage Weil)
-* bluestore,core: os/bluestore: write "mkfs_done" into disk only if we pass fsck() tests (`pr#15238 <https://github.com/ceph/ceph/pull/15238>`_, xie xingguo)
-* bluestore,core: os: remove experimental status for BlueStore (`pr#15177 <https://github.com/ceph/ceph/pull/15177>`_, Sage Weil)
-* bluestore: os/bluestore: better debug output on unsharing blobs (`issue#20227 <http://tracker.ceph.com/issues/20227>`_, `pr#15746 <https://github.com/ceph/ceph/pull/15746>`_, Sage Weil)
-* bluestore: os/bluestore/BlockDevice: support pmem device as bluestore backend (`pr#15102 <https://github.com/ceph/ceph/pull/15102>`_, Jianpeng Ma)
-* bluestore: os/bluestore/BlueFS: Rebuild memcopy for bufferlist::page_aligned_app… (`pr#15728 <https://github.com/ceph/ceph/pull/15728>`_, Jianpeng Ma, Sage Weil)
-* bluestore: os/bluestore/BlueFS: .slow should be compared with dirname (`pr#15595 <https://github.com/ceph/ceph/pull/15595>`_, zhanglei)
-* bluestore: os/bluestore/BlueStore: no device no symlink. (`pr#15721 <https://github.com/ceph/ceph/pull/15721>`_, Jianpeng Ma)
-* bluestore: os/bluestore: cleanup bluestore_types (`pr#15680 <https://github.com/ceph/ceph/pull/15680>`_, xie xingguo)
-* bluestore: os/bluestore: configure rocksdb cache via bluestore_cache_kv_ratio (`pr#15580 <https://github.com/ceph/ceph/pull/15580>`_, Sage Weil)
-* bluestore: os/bluestore: fix a typo about bleustore (`pr#15357 <https://github.com/ceph/ceph/pull/15357>`_, Dongsheng Yang)
-* bluestore: os/bluestore: fix BitMapAllocator assert on out-of-bound hint value (`pr#15289 <https://github.com/ceph/ceph/pull/15289>`_, Igor Fedotov)
-* bluestore: os/bluestore: fix buffers pinned by indefinitely deferred writes (`pr#15398 <https://github.com/ceph/ceph/pull/15398>`_, Sage Weil)
-* bluestore: os/bluestore: fix false assert in IOContext::aio_wake (`pr#15268 <https://github.com/ceph/ceph/pull/15268>`_, Igor Fedotov)
-* bluestore: os/bluestore: fix false asserts in Cache::trim_all() (`pr#15470 <https://github.com/ceph/ceph/pull/15470>`_, xie xingguo)
-* bluestore: os/bluestore: fix fsck deferred_replay (`pr#15295 <https://github.com/ceph/ceph/pull/15295>`_, Sage Weil)
-* bluestore: os/bluestore: fix possible out of order shard(offset == 0); add sanity check (`pr#15658 <https://github.com/ceph/ceph/pull/15658>`_, xie xingguo)
-* bluestore: os/bluestore: fix potential access violation (`pr#15657 <https://github.com/ceph/ceph/pull/15657>`_, xie xingguo)
-* bluestore: os/bluestore: fix unsharing blob dirty_range args (`issue#20227 <http://tracker.ceph.com/issues/20227>`_, `pr#15766 <https://github.com/ceph/ceph/pull/15766>`_, Sage Weil)
-* bluestore: os/bluestore: handle rounding error in cache ratios (`pr#15672 <https://github.com/ceph/ceph/pull/15672>`_, Sage Weil)
-* bluestore: os/bluestore: initialize finishers properly (`pr#15666 <https://github.com/ceph/ceph/pull/15666>`_, xie xingguo)
-* bluestore: os/bluestore/KernelDevice: fix comments (`pr#15264 <https://github.com/ceph/ceph/pull/15264>`_, xie xingguo)
-* bluestore: os/bluestore/KernelDevice: helpful warning when aio limit exhausted (`pr#15116 <https://github.com/ceph/ceph/pull/15116>`_, Sage Weil)
-* bluestore: os/bluestore: move sharedblob to new collection in same shard (`issue#20358 <http://tracker.ceph.com/issues/20358>`_, `pr#15783 <https://github.com/ceph/ceph/pull/15783>`_, Sage Weil)
-* bluestore: os/bluestore: refactor BlueStore::_do_write; kill dead ExtentMap::find_lextent() method (`pr#15750 <https://github.com/ceph/ceph/pull/15750>`_, xie xingguo)
-* bluestore: os/bluestore: remove unused variables (`pr#15718 <https://github.com/ceph/ceph/pull/15718>`_, zhanglei)
-* bluestore: os/bluestore: stop calculating bound if we must reshard; narrow shard combination condition (`pr#15631 <https://github.com/ceph/ceph/pull/15631>`_, xie xingguo)
-* bluestore: os/bluestore: target_bytes should scale with meta/data ratios. (`pr#15708 <https://github.com/ceph/ceph/pull/15708>`_, Mark Nelson)
-* bluestore,performance: os/bluestore: avoid overloading extents during reshard; atomic deferred_batch_ops (`pr#15502 <https://github.com/ceph/ceph/pull/15502>`_, xie xingguo)
-* bluestore,performance: os/bluestore: batch throttle (`pr#15284 <https://github.com/ceph/ceph/pull/15284>`_, Jianpeng Ma)
-* bluestore,performance: os/bluestore: keep statfs replica in RAM to avoid expensive KV retrieval (`pr#15309 <https://github.com/ceph/ceph/pull/15309>`_, Igor Fedotov)
-* bluestore,performance: os/bluestore/KernelDevice: fix sync write vs flush (`pr#15034 <https://github.com/ceph/ceph/pull/15034>`_, Sage Weil)
-* bluestore,performance: os/bluestore: move cache_trim into MempoolThread (`pr#15380 <https://github.com/ceph/ceph/pull/15380>`_, xie xingguo)
-* bluestore,performance: os/bluestore: put bluefs in the middle of the shared device (`pr#14873 <https://github.com/ceph/ceph/pull/14873>`_, Sage Weil)
-* bluestore,performance: os/bluestore: separate kv_sync_thread into two parts (`pr#14035 <https://github.com/ceph/ceph/pull/14035>`_, Jianpeng Ma, Igor Fedotov, Sage Weil)
-* bluestore,performance: os/bluestore: try to unshare blobs for EC overwrite workload (`pr#14239 <https://github.com/ceph/ceph/pull/14239>`_, Sage Weil)
-* bluestore,tests: qa/objectstore/bluestore*: fsck on mount (`pr#15785 <https://github.com/ceph/ceph/pull/15785>`_, Sage Weil)
-* bluestore,tests: test/unittest_bluefs: When fsync ret is less than 0, fsync can not be… (`pr#15365 <https://github.com/ceph/ceph/pull/15365>`_, shiqi)
-* bluestore: wrap blob id when it reaches maximum value of int16_t (`issue#19555 <http://tracker.ceph.com/issues/19555>`_, `pr#15654 <https://github.com/ceph/ceph/pull/15654>`_, Xiaoyan Li)
-* build/ops: 12.0.3 (`pr#15600 <https://github.com/ceph/ceph/pull/15600>`_, Jenkins Build Slave User)
-* build/ops: build: move bash_completion.d/ceph to ceph-common (`pr#15148 <https://github.com/ceph/ceph/pull/15148>`_, Leo Zhang)
-* build/ops: build: remove ceph-disk-udev entirely (`pr#15259 <https://github.com/ceph/ceph/pull/15259>`_, Leo Zhang)
-* build/ops: build: revert -Wvla from #15342 (`pr#15469 <https://github.com/ceph/ceph/pull/15469>`_, Willem Jan Withagen)
-* build/ops: build: Use .S suffix for ppc64le assembly files (`issue#20106 <http://tracker.ceph.com/issues/20106>`_, `pr#15373 <https://github.com/ceph/ceph/pull/15373>`_, Andrew Solomon)
-* build/ops: ceph-detect-init: detect init system by poking the system (`issue#19884 <http://tracker.ceph.com/issues/19884>`_, `pr#15043 <https://github.com/ceph/ceph/pull/15043>`_, Kefu Chai)
-* build/ops,common: build: Adds C++ warning flag for C Variable-Length Arrays. (`pr#15342 <https://github.com/ceph/ceph/pull/15342>`_, Jesse Williamson)
-* build/ops,common: common/blkdev.cc: propagate get_device_by_fd to different OSes (`pr#15547 <https://github.com/ceph/ceph/pull/15547>`_, Willem Jan Withagen)
-* build/ops: conditionalize rgw Beast frontend so it isn't built on s390x architecture (`issue#20048 <http://tracker.ceph.com/issues/20048>`_, `pr#15225 <https://github.com/ceph/ceph/pull/15225>`_, Willem Jan Withagen, Nathan Cutler, Kefu Chai, Tim Serong, Casey Bodley)
-* build/ops,core: common/freebsd_errno.cc: fix missing ; (`pr#15741 <https://github.com/ceph/ceph/pull/15741>`_, Willem Jan Withagen)
-* build/ops,core: erasure-code: update ec_isa version + add missing AVX512 ISA-L sources (`pr#15636 <https://github.com/ceph/ceph/pull/15636>`_, Ganesh Mahalingam, Tushar Gohad)
-* build/ops,core,tests: osd/dmclock/testing: reorganize testing, building now optional (`pr#15375 <https://github.com/ceph/ceph/pull/15375>`_, J. Eric Ivancich)
-* build/ops: debian: ceph-mgr: fix package description (`pr#15513 <https://github.com/ceph/ceph/pull/15513>`_, Fabian Grünbichler)
-* build/ops: debian: sync logrotate packaging with downstream (`issue#19938 <http://tracker.ceph.com/issues/19938>`_, `pr#15567 <https://github.com/ceph/ceph/pull/15567>`_, Fabian Grünbichler)
-* build/ops: do_cmake.sh: enable ccache if installed (`pr#15274 <https://github.com/ceph/ceph/pull/15274>`_, Sage Weil)
-* build/ops: drop libfcgi build dependency (`pr#15285 <https://github.com/ceph/ceph/pull/15285>`_, Nathan Cutler)
-* build/ops: .gitignore: exclude rpm files (`pr#15745 <https://github.com/ceph/ceph/pull/15745>`_, Leo Zhang)
-* build/ops: install-deps.sh: workaround setuptools' dependency on six (`pr#15406 <https://github.com/ceph/ceph/pull/15406>`_, Kefu Chai)
-* build/ops: miscellaneous cleanups and fixes (run-make-check.sh, ceph.spec.in) (`issue#20091 <http://tracker.ceph.com/issues/20091>`_, `issue#20127 <http://tracker.ceph.com/issues/20127>`_, `pr#15399 <https://github.com/ceph/ceph/pull/15399>`_, Nathan Cutler)
-* build/ops,rbd,tests: test/librbd: decouple ceph_test_librbd_api from libceph-common (`issue#20175 <http://tracker.ceph.com/issues/20175>`_, `pr#15611 <https://github.com/ceph/ceph/pull/15611>`_, Kefu Chai)
-* build/ops: rpm: apply epoch only if %epoch macro is defined (`pr#15286 <https://github.com/ceph/ceph/pull/15286>`_, Nathan Cutler)
-* build/ops: rpm: make librbd1 %post scriptlet depend on coreutils (`issue#20052 <http://tracker.ceph.com/issues/20052>`_, `pr#15231 <https://github.com/ceph/ceph/pull/15231>`_, Giacomo Comes, Nathan Cutler)
-* build/ops: rpm: move _epoch_prefix below Epoch definition (`pr#15417 <https://github.com/ceph/ceph/pull/15417>`_, Nathan Cutler)
-* build/ops: rpm: move RDMA and python-prettytables build dependencies to distro-conditional section (`pr#15200 <https://github.com/ceph/ceph/pull/15200>`_, Nathan Cutler)
-* build/ops: rpm: package COPYING, move sample ceph.conf to ceph-common (`pr#15596 <https://github.com/ceph/ceph/pull/15596>`_, Nathan Cutler)
-* build/ops: selinux: Allow read on var_run_t (`issue#16674 <http://tracker.ceph.com/issues/16674>`_, `pr#15523 <https://github.com/ceph/ceph/pull/15523>`_, Boris Ranto)
-* build/ops: selinux: Do parallel relabel on package install (`issue#20077 <http://tracker.ceph.com/issues/20077>`_, `pr#14871 <https://github.com/ceph/ceph/pull/14871>`_, Boris Ranto)
-* build/ops: selinux: Install ceph-base before ceph-selinux (`issue#20184 <http://tracker.ceph.com/issues/20184>`_, `pr#15490 <https://github.com/ceph/ceph/pull/15490>`_, Boris Ranto)
-* build/ops: Set subman cron attributes in spec file (`issue#20074 <http://tracker.ceph.com/issues/20074>`_, `pr#15270 <https://github.com/ceph/ceph/pull/15270>`_, Thomas Serlin)
-* build/ops: The Clangtastic Mr. Clocks (`pr#15186 <https://github.com/ceph/ceph/pull/15186>`_, Adam C. Emerson)
-* build/ops: yasm-wrapper: filter -pthread (`pr#15249 <https://github.com/ceph/ceph/pull/15249>`_, Alessandro Barbieri)
-* cephfs: #17980: MDS client blacklisting and blacklist on eviction (`issue#17980 <http://tracker.ceph.com/issues/17980>`_, `issue#9754 <http://tracker.ceph.com/issues/9754>`_, `pr#14610 <https://github.com/ceph/ceph/pull/14610>`_, John Spray)
-* cephfs: ceph: simplify CInode::maybe_export_pin() (`pr#15106 <https://github.com/ceph/ceph/pull/15106>`_, "Yan, Zheng")
-* cephfs: client: avoid returning negative space available (`issue#20178 <http://tracker.ceph.com/issues/20178>`_, `pr#15481 <https://github.com/ceph/ceph/pull/15481>`_, John Spray)
-* cephfs: client: call the lru_remove() twice,when trim cache (`pr#15662 <https://github.com/ceph/ceph/pull/15662>`_, huanwen ren)
-* cephfs: client: check for luminous MDS before sending FLUSH_MDLOG (`pr#15805 <https://github.com/ceph/ceph/pull/15805>`_, John Spray)
-* cephfs: client: fix Dentry::dump (`pr#15779 <https://github.com/ceph/ceph/pull/15779>`_, huanwen ren)
-* cephfs: client: fix display ino in the ldout (`pr#15314 <https://github.com/ceph/ceph/pull/15314>`_, huanwen ren)
-* cephfs: client/inode: fix the dump type of Inode::dump() (`pr#15198 <https://github.com/ceph/ceph/pull/15198>`_, huanwen ren)
-* cephfs,common,rbd: blkin: librbd trace hooks (`pr#15053 <https://github.com/ceph/ceph/pull/15053>`_, Victor Araujo, Jason Dillaman)
-* cephfs: mds/MDBalancer: remove useless check_targets and hit_targets logic from MDS balancer (`issue#20131 <http://tracker.ceph.com/issues/20131>`_, `pr#15407 <https://github.com/ceph/ceph/pull/15407>`_, Zhi Zhang)
-* cephfs,mgr: pybind/mgr/fsstatus: use mds_mem.dn as dentry counter (`pr#15255 <https://github.com/ceph/ceph/pull/15255>`_, Zhi Zhang)
-* cephfs: mon/FSCommand: fix indentation (`pr#15423 <https://github.com/ceph/ceph/pull/15423>`_, Sage Weil)
-* cephfs: mon/MDSMonitor: respect mds_standby_for_rank config (`pr#15129 <https://github.com/ceph/ceph/pull/15129>`_, "Yan, Zheng")
-* cephfs: osdc/Journaler: avoid executing on_safe contexts prematurely (`issue#20055 <http://tracker.ceph.com/issues/20055>`_, `pr#15240 <https://github.com/ceph/ceph/pull/15240>`_, "Yan, Zheng")
-* cephfs: osdc/Journaler: fix memory leak in Journaler::_issue_read() (`issue#20338 <http://tracker.ceph.com/issues/20338>`_, `pr#15776 <https://github.com/ceph/ceph/pull/15776>`_, "Yan, Zheng")
-* cephfs: osdc/Objecter: fix inflight_ops update (`pr#15768 <https://github.com/ceph/ceph/pull/15768>`_, "Yan, Zheng")
-* cephfs: qa/cephfs: disable mds_bal_frag for TestStrays.test_purge_queue_op_rate (`issue#19892 <http://tracker.ceph.com/issues/19892>`_, `pr#15105 <https://github.com/ceph/ceph/pull/15105>`_, "Yan, Zheng")
-* cephfs: qa/tasks/cephfs: use getattr to guarantee inode is in client cache (`issue#19912 <http://tracker.ceph.com/issues/19912>`_, `pr#15062 <https://github.com/ceph/ceph/pull/15062>`_, "Yan, Zheng")
-* cephfs: qa: update log whitelists for kcephfs suite (`pr#14922 <https://github.com/ceph/ceph/pull/14922>`_, "Yan, Zheng")
-* cephfs,tests: ceph-object-corpus: mark MMDSSlaveRequest incompat change (`pr#15730 <https://github.com/ceph/ceph/pull/15730>`_, Sage Weil)
-* cephfs,tests: qa: fix float parse error in test_fragment (`pr#15122 <https://github.com/ceph/ceph/pull/15122>`_, Patrick Donnelly)
-* cephfs,tests: qa: misc cephfs test improvements (`issue#20131 <http://tracker.ceph.com/issues/20131>`_, `pr#15411 <https://github.com/ceph/ceph/pull/15411>`_, John Spray)
-* cephfs,tests: qa: silence upgrade test failure (`issue#19934 <http://tracker.ceph.com/issues/19934>`_, `pr#15126 <https://github.com/ceph/ceph/pull/15126>`_, Patrick Donnelly)
-* cephfs,tests: qa: simplify TestJournalRepair (`pr#15096 <https://github.com/ceph/ceph/pull/15096>`_, John Spray)
-* cephfs: tools/cephfs: remove `apply` mode of cephfs-journal-tool (`pr#15715 <https://github.com/ceph/ceph/pull/15715>`_, John Spray)
-* cleanup: src: put-to operator function - const input cleanup (`issue#3977 <http://tracker.ceph.com/issues/3977>`_, `pr#15364 <https://github.com/ceph/ceph/pull/15364>`_, Jos Collin)
-* cmake: Add -finstrument-functions flag to OSD code (`pr#15055 <https://github.com/ceph/ceph/pull/15055>`_, Mohamad Gebai)
-* cmake: build boost as an external project (`pr#15376 <https://github.com/ceph/ceph/pull/15376>`_, Kefu Chai)
-* cmake: check the existence of gperf before using it (`pr#15164 <https://github.com/ceph/ceph/pull/15164>`_, Kefu Chai)
-* cmake: do not add dependencies to INTERFACE library on cmake < 3.3 (`pr#15813 <https://github.com/ceph/ceph/pull/15813>`_, Kefu Chai)
-* cmake: do not link libcommon against some libs (`pr#15340 <https://github.com/ceph/ceph/pull/15340>`_, Willem Jan Withagen)
-* cmake: exclude \*.css while generating ctags (`pr#15663 <https://github.com/ceph/ceph/pull/15663>`_, Leo Zhang)
-* cmake: fix boost components for WITH_SYSTEM_BOOST (`pr#15160 <https://github.com/ceph/ceph/pull/15160>`_, Bassam Tabbara)
-* cmake: improved build speed by 5x when using ccache (`pr#15147 <https://github.com/ceph/ceph/pull/15147>`_, Bassam Tabbara)
-* cmake: link against fcgi only if enabled (`pr#15425 <https://github.com/ceph/ceph/pull/15425>`_, Yao Zongyou)
-* cmake: misc fixes for build on i386 (`pr#15516 <https://github.com/ceph/ceph/pull/15516>`_, James Page)
-* cmake: rgw: do not link against boost in a wholesale (`pr#15347 <https://github.com/ceph/ceph/pull/15347>`_, Nathan Cutler, Kefu Chai)
-* cmake: workaound ccache issue with .S assembly files (`pr#15142 <https://github.com/ceph/ceph/pull/15142>`_, Bassam Tabbara)
-* common: add ceph::size() (`pr#15181 <https://github.com/ceph/ceph/pull/15181>`_, Kefu Chai)
-* common: ceph_osd: remove client message cap limit (`pr#14944 <https://github.com/ceph/ceph/pull/14944>`_, Haomai Wang)
-* common: cls: optimize header file dependency (`pr#15165 <https://github.com/ceph/ceph/pull/15165>`_, Brad Hubbard, Xiaowei Chen)
-* common: cmdparse: more constness (`pr#15023 <https://github.com/ceph/ceph/pull/15023>`_, Kefu Chai)
-* common: common/ceph_context: 'config diff get' option added (`pr#10736 <https://github.com/ceph/ceph/pull/10736>`_, Daniel Oliveira)
-* common: common/ceph_context: fix leak of registered commands on exit (`pr#15302 <https://github.com/ceph/ceph/pull/15302>`_, xie xingguo)
-* common: common/freebsd_errno.cc: fixed again a stupid typo (`pr#15742 <https://github.com/ceph/ceph/pull/15742>`_, Willem Jan Withagen)
-* common: common/iso_8601.cc: Make return expression Clang compatible (`pr#15336 <https://github.com/ceph/ceph/pull/15336>`_, Willem Jan Withagen)
-* common: common/LogEntry: include EntityName in log entries (`pr#15395 <https://github.com/ceph/ceph/pull/15395>`_, Sage Weil)
-* common: common,osdc: remove atomic_t completely (`pr#15562 <https://github.com/ceph/ceph/pull/15562>`_, Kefu Chai)
-* common: common/perf_counters: add average time for PERFCOUNTER_TIME (`pr#15478 <https://github.com/ceph/ceph/pull/15478>`_, xie xingguo)
-* common: common/perf_counters: make schema more friendly and update docs (`pr#14933 <https://github.com/ceph/ceph/pull/14933>`_, Sage Weil)
-* common: common,test: migrate atomic_t to std::atomic (`pr#14866 <https://github.com/ceph/ceph/pull/14866>`_, Jesse Williamson)
-* common: config_opt: use bool instead of int for the default value of filestore_debug_omap_check (`pr#15651 <https://github.com/ceph/ceph/pull/15651>`_, Leo Zhang)
-* common,core: ceph_test_rados_api_misc: fix LibRadosMiscConnectFailure.ConnectFailure retry (`issue#19901 <http://tracker.ceph.com/issues/19901>`_, `pr#15522 <https://github.com/ceph/ceph/pull/15522>`_, Sage Weil)
-* common: core/common: Fix ENODATA for FreeBSD with compat.h (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15685 <https://github.com/ceph/ceph/pull/15685>`_, Willem Jan Withagen)
-* common,core: osd/OSDMap: make osd_state 32 bits wide (`pr#15390 <https://github.com/ceph/ceph/pull/15390>`_, Sage Weil)
-* common,core: osd/OSDMap: replace require_*_osds flags with a single require_osd_release field (`pr#15068 <https://github.com/ceph/ceph/pull/15068>`_, Sage Weil)
-* common,core: osd/OSDMap: replace string-based min_compat_client with a CEPH_RELEASE_* uint8_t (`pr#15351 <https://github.com/ceph/ceph/pull/15351>`_, Sage Weil)
-* common: crc32c: include acconfig.h to fix ceph_crc32c_aarch64() (`pr#15515 <https://github.com/ceph/ceph/pull/15515>`_, Kefu Chai)
-* common: crush/CrushWrapper: fix has_incompat_choose_args (`pr#15218 <https://github.com/ceph/ceph/pull/15218>`_, Sage Weil)
-* common: crush/CrushWrapper: fix has_incompat_choose_args() (`pr#15244 <https://github.com/ceph/ceph/pull/15244>`_, Sage Weil)
-* common: denc: add encode/decode for basic_sstring (`pr#15135 <https://github.com/ceph/ceph/pull/15135>`_, Kefu Chai, Casey Bodley)
-* common: fix typo in option of rados_mon_op_timeout's comment (`pr#15681 <https://github.com/ceph/ceph/pull/15681>`_, Leo Zhang)
-* common: get_process_name: use getprogname on bsd systems (`pr#15338 <https://github.com/ceph/ceph/pull/15338>`_, Mykola Golub)
-* common: Improved CRC calculation for zero buffers (`pr#11966 <https://github.com/ceph/ceph/pull/11966>`_, Adam Kupczyk)
-* common: include/lru.h: add const to member functions (`pr#15408 <https://github.com/ceph/ceph/pull/15408>`_, yonghengdexin735)
-* common: include/rados: Fix typo in rados_ioctx_cct() doc (`pr#15220 <https://github.com/ceph/ceph/pull/15220>`_, Jos Collin)
-* common: include: Redo some includes for FreeBSD (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15337 <https://github.com/ceph/ceph/pull/15337>`_, Willem Jan Withagen)
-* common: initialize _hash in LogEntryKey() (`pr#15615 <https://github.com/ceph/ceph/pull/15615>`_, Jos Collin)
-* common: int_types.h: remove hacks to workaround old systems (`pr#15069 <https://github.com/ceph/ceph/pull/15069>`_, Kefu Chai)
-* common: librados,libradosstriper,test: migrate atomic_t to std::atomic (baragon) (`pr#14658 <https://github.com/ceph/ceph/pull/14658>`_, Jesse Williamson)
-* common: libradosstriper: Add example code (`pr#15350 <https://github.com/ceph/ceph/pull/15350>`_, Logan Blyth)
-* common: mempool: improve dump; fix buffer accounting bugs (`pr#15403 <https://github.com/ceph/ceph/pull/15403>`_, Sage Weil)
-* common: mgr/PyFormatter: implement dump_format_va (`pr#15634 <https://github.com/ceph/ceph/pull/15634>`_, Sage Weil)
-* common,mon: messenger,client,compressor: migrate atomic_t to std::atomic (`pr#14657 <https://github.com/ceph/ceph/pull/14657>`_, Jesse Williamson)
-* common,mon: mon,crush: add 'osd crush swap-bucket' command (`pr#15072 <https://github.com/ceph/ceph/pull/15072>`_, Sage Weil)
-* common: msg/async: add assert of ms_async_op_threads > 0 (`pr#15629 <https://github.com/ceph/ceph/pull/15629>`_, linbing)
-* common,performance: buffer: allow buffers to be accounted in arbitrary mempools (`pr#15352 <https://github.com/ceph/ceph/pull/15352>`_, Sage Weil)
-* common,performance: crc32c: Add ppc64le fast zero optimized assembly. (`pr#15100 <https://github.com/ceph/ceph/pull/15100>`_, Andrew Solomon)
-* common,performance: inline_memory: optimized mem_is_zero for non-x64 (`pr#15307 <https://github.com/ceph/ceph/pull/15307>`_, Piotr Dałek)
-* common,performance: kv/rocksdb: supports SliceParts interface (`pr#15058 <https://github.com/ceph/ceph/pull/15058>`_, Haomai Wang)
-* common,performance: osd/OSDMap: make pg_temp more efficient (`pr#15291 <https://github.com/ceph/ceph/pull/15291>`_, Sage Weil)
-* common,rdma: msg/async/rdma: automatically set RDMAV_HUGEPAGES_SAFE according to conf (`pr#15755 <https://github.com/ceph/ceph/pull/15755>`_, DanielBar-On)
-* common: Remove redundant includes - 2 (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15169 <https://github.com/ceph/ceph/pull/15169>`_, Jos Collin)
-* common: Remove redundant includes - 3 (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15204 <https://github.com/ceph/ceph/pull/15204>`_, Jos Collin)
-* common: Remove redundant includes - 4 (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15251 <https://github.com/ceph/ceph/pull/15251>`_, Jos Collin)
-* common: Remove redundant includes - 5 (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15267 <https://github.com/ceph/ceph/pull/15267>`_, Jos Collin)
-* common: Remove redundant includes - 6 (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15299 <https://github.com/ceph/ceph/pull/15299>`_, Jos Collin)
-* common: Remove redundant includes (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15042 <https://github.com/ceph/ceph/pull/15042>`_, Brad Hubbard)
-* common: Remove redundant includes (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15086 <https://github.com/ceph/ceph/pull/15086>`_, Jos Collin)
-* common: src/common/ceph_string: stringify new osd states (`pr#15751 <https://github.com/ceph/ceph/pull/15751>`_, xie xingguo)
-* common,tests: ceph_test_rados_api_list: more fix LibRadosListNP.ListObjectsError (`issue#19963 <http://tracker.ceph.com/issues/19963>`_, `pr#15138 <https://github.com/ceph/ceph/pull/15138>`_, Sage Weil)
-* common,tests: test: Make screencandy optional for FreeBSD (`pr#15444 <https://github.com/ceph/ceph/pull/15444>`_, Willem Jan Withagen)
-* common: xio: migrate atomic_t to std::atomic<> (`pr#15230 <https://github.com/ceph/ceph/pull/15230>`_, Jesse Williamson)
-* core: ceph-dencoder: Silence coverity CID 1412579 (`pr#15744 <https://github.com/ceph/ceph/pull/15744>`_, Brad Hubbard)
-* core: ceph-disk: do not setup_statedir on trigger (`issue#19941 <http://tracker.ceph.com/issues/19941>`_, `pr#15410 <https://github.com/ceph/ceph/pull/15410>`_, Loic Dachary)
-* core: ceph-objectstore-tool: do not populate snapmapper with missing clones (`issue#19943 <http://tracker.ceph.com/issues/19943>`_, `pr#15787 <https://github.com/ceph/ceph/pull/15787>`_, Sage Weil)
-* core: compressor: add LZ4 support (`pr#15434 <https://github.com/ceph/ceph/pull/15434>`_, Haomai Wang)
-* core: compressor: optimize header file dependency (`pr#15187 <https://github.com/ceph/ceph/pull/15187>`_, Brad Hubbard, Xiaowei Chen)
-* core: crush, mon: make jewel the lower bound for client/crush compat for new clusters (`pr#15370 <https://github.com/ceph/ceph/pull/15370>`_, Sage Weil)
-* core: erasure-code: optimize header file dependency (`pr#15172 <https://github.com/ceph/ceph/pull/15172>`_, Brad Hubbard, Xiaowei Chen)
-* core: erasure-code: Remove duplicate of isa-l files (`pr#15372 <https://github.com/ceph/ceph/pull/15372>`_, Ganesh Mahalingam)
-* core: filestore: migrate atomic_t to std::atomic<> (`pr#15228 <https://github.com/ceph/ceph/pull/15228>`_, Jesse Williamson)
-* core: include/types.h, introduce host_to_ceph_errno (`pr#15496 <https://github.com/ceph/ceph/pull/15496>`_, Willem Jan Withagen)
-* core: Install Pecan for FreeBSD (`pr#15610 <https://github.com/ceph/ceph/pull/15610>`_, Willem Jan Withagen)
-* core: introduce (and fix) code to pass errno to other OSes (`pr#15495 <https://github.com/ceph/ceph/pull/15495>`_, Willem Jan Withagen)
-* core: messages/MOSDPing: initialize MOSDPing padding (`issue#20323 <http://tracker.ceph.com/issues/20323>`_, `pr#15714 <https://github.com/ceph/ceph/pull/15714>`_, Sage Weil)
-* core,mgr: mgr/DaemonServer: stop spamming log with pg stats (`pr#15487 <https://github.com/ceph/ceph/pull/15487>`_, Sage Weil)
-* core,mgr,mon: mon/PGMap: fix osd_epoch update when removing osd_stat (`issue#20208 <http://tracker.ceph.com/issues/20208>`_, `pr#15573 <https://github.com/ceph/ceph/pull/15573>`_, Sage Weil)
-* core,mgr,tests: qa/suites/rados/rest: test restful mgr module (`pr#15604 <https://github.com/ceph/ceph/pull/15604>`_, Sage Weil)
-* core: mon,mgr: fix "ceph osd df", add some tools to find untested commands (`issue#20256 <http://tracker.ceph.com/issues/20256>`_, `pr#15675 <https://github.com/ceph/ceph/pull/15675>`_, Greg Farnum)
-* core,mon: mon/LogMonitor: 'log last' command (`pr#15497 <https://github.com/ceph/ceph/pull/15497>`_, Sage Weil)
-* core,mon: mon/MgrStatMonitor: keep mgrstat version ahead of pgmon (`issue#20219 <http://tracker.ceph.com/issues/20219>`_, `pr#15584 <https://github.com/ceph/ceph/pull/15584>`_, Sage Weil)
-* core,mon: mon,osd: add crush_version to OSDMap, and allow crush map updates to gate on crush_version (`pr#15533 <https://github.com/ceph/ceph/pull/15533>`_, Sage Weil)
-* core,mon: mon/OSDMonitor: cancel mapping job from update_from_paxos (`issue#20067 <http://tracker.ceph.com/issues/20067>`_, `pr#15320 <https://github.com/ceph/ceph/pull/15320>`_, Sage Weil)
-* core,mon: mon/OSDMonitor: use up set instead of acting set in reweight_by_utilization (`pr#13802 <https://github.com/ceph/ceph/pull/13802>`_, Mingxin Liu)
-* core,mon: mon/PGMap: call blocked requests ERR not WARN (`pr#15501 <https://github.com/ceph/ceph/pull/15501>`_, Sage Weil)
-* core: mon/OSDMonitor: batch noup/noin osds support (`pr#15725 <https://github.com/ceph/ceph/pull/15725>`_, xie xingguo)
-* core: mon/OSDMonitor: batch OSDs nodown/noout support (`pr#15381 <https://github.com/ceph/ceph/pull/15381>`_, xie xingguo)
-* core: mon/OSDMonitor: change info in 'osd failed' messages (`pr#15321 <https://github.com/ceph/ceph/pull/15321>`_, Sage Weil)
-* core: mon,osd/OSDMap: a couple pg-upmap fixes (`pr#15319 <https://github.com/ceph/ceph/pull/15319>`_, Sage Weil)
-* core: msg/async: avoid requeue racing with handle_write (`issue#20093 <http://tracker.ceph.com/issues/20093>`_, `pr#15324 <https://github.com/ceph/ceph/pull/15324>`_, Haomai Wang)
-* core: msg/async: fix deleted_conn is out of sync with conns (`issue#20230 <http://tracker.ceph.com/issues/20230>`_, `pr#15645 <https://github.com/ceph/ceph/pull/15645>`_, Haomai Wang)
-* core: objclass-sdk: use namespace ceph for bufferlist (`pr#15581 <https://github.com/ceph/ceph/pull/15581>`_, Neha Ojha)
-* core: osd/ECTransaction: only read partial stripes when below *original* object size (`issue#19882 <http://tracker.ceph.com/issues/19882>`_, `pr#15712 <https://github.com/ceph/ceph/pull/15712>`_, Sage Weil)
-* core: osd,librados: add manifest, redirect (`pr#15325 <https://github.com/ceph/ceph/pull/15325>`_, Sage Weil)
-* core: osd, messages/MOSDPing: bunch of fixes related to ping inflation (`pr#15727 <https://github.com/ceph/ceph/pull/15727>`_, Piotr Dałek)
-* core: osd/OSD: bump up current version; conditionally encoding manifest into oi (`pr#15687 <https://github.com/ceph/ceph/pull/15687>`_, xie xingguo)
-* core: osd/OSDMap: Change *pg_to_* to return void (`pr#15684 <https://github.com/ceph/ceph/pull/15684>`_, Brad Hubbard)
-* core: osd/OSDMap: improve upmap calculation (`issue#19818 <http://tracker.ceph.com/issues/19818>`_, `pr#14902 <https://github.com/ceph/ceph/pull/14902>`_, Sage Weil)
-* core: osd/PG: drop pre-firefly compat_mode for choose_*_acting (`pr#15057 <https://github.com/ceph/ceph/pull/15057>`_, Sage Weil)
-* core: osd/pglog: remove loop through empty collection (`pr#15121 <https://github.com/ceph/ceph/pull/15121>`_, J. Eric Ivancich)
-* core: osd/PG: make non-empty PastIntervals non-fatal (`issue#20167 <http://tracker.ceph.com/issues/20167>`_, `pr#15639 <https://github.com/ceph/ceph/pull/15639>`_, Sage Weil)
-* core: osd/PrimaryLogPG: clear oi from trim_object() (`issue#19947 <http://tracker.ceph.com/issues/19947>`_, `pr#15519 <https://github.com/ceph/ceph/pull/15519>`_, Sage Weil)
-* core: osd/PrimaryLogPG: fix oi reset during trim_object (`issue#19947 <http://tracker.ceph.com/issues/19947>`_, `pr#15696 <https://github.com/ceph/ceph/pull/15696>`_, Sage Weil)
-* core: osd/PrimaryLogPG: record prior_version for DELETE events (`issue#20274 <http://tracker.ceph.com/issues/20274>`_, `pr#15649 <https://github.com/ceph/ceph/pull/15649>`_, Sage Weil)
-* core: os/filestore: when print log, use __func__ instead of hard code function name (`pr#15261 <https://github.com/ceph/ceph/pull/15261>`_, mychoxin)
-* core: os/filestore: zfs add get_name() (`pr#15650 <https://github.com/ceph/ceph/pull/15650>`_, Yanhu Cao)
-* core,performance: msg/async: reduce write_lock contention (`pr#15092 <https://github.com/ceph/ceph/pull/15092>`_, Haomai Wang)
-* core,performance: osd/OSD.h: requeue the scrub job with higher priority to shorten the blocking time of related requests (`pr#15552 <https://github.com/ceph/ceph/pull/15552>`_, Jin Cai)
-* core: qa: do not restrict valgrind runs to centos (`issue#18126 <http://tracker.ceph.com/issues/18126>`_, `pr#15389 <https://github.com/ceph/ceph/pull/15389>`_, Greg Farnum)
-* core,rgw: qa: Removed all 'default_idle_timeout' due to chnage in rwg task (`pr#15420 <https://github.com/ceph/ceph/pull/15420>`_, Yuri Weinstein)
-* core,rgw,tests: qa/rgw_snaps: move default_idle_timeout config under the client (`issue#20128 <http://tracker.ceph.com/issues/20128>`_, `pr#15400 <https://github.com/ceph/ceph/pull/15400>`_, Yehuda Sadeh)
-* core: src/ceph.in: Use env(CEPH_DEV) to suppress noise from ceph (`pr#14746 <https://github.com/ceph/ceph/pull/14746>`_, Willem Jan Withagen)
-* core,tests: ceph-disk: sensible default for block.db (`pr#15576 <https://github.com/ceph/ceph/pull/15576>`_, Loic Dachary)
-* core,tests: ceph_test_rados_api_*: wait for snap trim on ENOENT during cleanup (`issue#19948 <http://tracker.ceph.com/issues/19948>`_, `pr#15638 <https://github.com/ceph/ceph/pull/15638>`_, Sage Weil)
-* core,tests: qa/suites/rados/\*/at-end: wait for healthy before scrubbing (`pr#15245 <https://github.com/ceph/ceph/pull/15245>`_, Sage Weil)
-* core,tests: qa/suites/rados/singleton-nomsg/health-warnings: behave on ext4 (`issue#20043 <http://tracker.ceph.com/issues/20043>`_, `pr#15207 <https://github.com/ceph/ceph/pull/15207>`_, Sage Weil)
-* core,tests: qa/suites/rados: temporarily remove scrub_test from basic/ until post-luminous (`issue#19935 <http://tracker.ceph.com/issues/19935>`_, `pr#15202 <https://github.com/ceph/ceph/pull/15202>`_, Sage Weil)
-* core,tests: qa/suites/upgrade/kraken-x: enable experimental for bluestore (`pr#15359 <https://github.com/ceph/ceph/pull/15359>`_, Sage Weil)
-* core,tests: qa/tasks/ceph_manager: get osds all in after thrashing (`pr#15784 <https://github.com/ceph/ceph/pull/15784>`_, Sage Weil)
-* core,tests: qa/tasks/ceph: osd_scrub_pgs: reissue scrub requests in loop (`issue#20326 <http://tracker.ceph.com/issues/20326>`_, `pr#15747 <https://github.com/ceph/ceph/pull/15747>`_, Sage Weil)
-* core,tests: qa/tasks/ceph.py: tolerate active+clean+something (`pr#15717 <https://github.com/ceph/ceph/pull/15717>`_, Sage Weil)
-* core,tests: qa/workunits/cephtool/test.sh: fix osd full health detail grep (`issue#20187 <http://tracker.ceph.com/issues/20187>`_, `pr#15494 <https://github.com/ceph/ceph/pull/15494>`_, Sage Weil)
-* core,tests: qa/workunits/rados/test_health_warning: misc fixes (`issue#19990 <http://tracker.ceph.com/issues/19990>`_, `pr#15201 <https://github.com/ceph/ceph/pull/15201>`_, Sage Weil)
-* core,tests: Revert "qa: do not restrict valgrind runs to centos" (`issue#20360 <http://tracker.ceph.com/issues/20360>`_, `pr#15791 <https://github.com/ceph/ceph/pull/15791>`_, Sage Weil)
-* core,tests: test/osd/TestRados.cc: run set-redirect test after finishing setup (`issue#20114 <http://tracker.ceph.com/issues/20114>`_, `pr#15385 <https://github.com/ceph/ceph/pull/15385>`_, Myoungwon Oh)
-* core,tools: osdmaptool: require --upmap-save before modifying input osdmap (`pr#15247 <https://github.com/ceph/ceph/pull/15247>`_, Sage Weil)
-* crush: add missing tunable in tests (`pr#15412 <https://github.com/ceph/ceph/pull/15412>`_, Loic Dachary)
-* crush: detect and (usually) fix ruleset != rule id (`pr#13683 <https://github.com/ceph/ceph/pull/13683>`_, Sage Weil)
-* crush: encode can override weights with weight set (`issue#19836 <http://tracker.ceph.com/issues/19836>`_, `pr#15002 <https://github.com/ceph/ceph/pull/15002>`_, Loic Dachary)
-* crush: optimize header file dependency (`pr#9307 <https://github.com/ceph/ceph/pull/9307>`_, Xiaowei Chen)
-* crush: update choose_args when items are added/removed (`pr#15311 <https://github.com/ceph/ceph/pull/15311>`_, Loic Dachary)
-* doc: 12.1.0/release notes 2 (`pr#15627 <https://github.com/ceph/ceph/pull/15627>`_, Abhishek Lekshmanan)
-* doc: add descriptions for mon/mgr options (`pr#15032 <https://github.com/ceph/ceph/pull/15032>`_, Kefu Chai)
-* doc: add FreeBSD manual install (`pr#14941 <https://github.com/ceph/ceph/pull/14941>`_, Willem Jan Withagen)
-* doc: add new cn ceph mirror to doc and mirroring (`pr#15089 <https://github.com/ceph/ceph/pull/15089>`_, Shengjing Zhu)
-* doc: add rados xattr commands to manpage (`pr#15362 <https://github.com/ceph/ceph/pull/15362>`_, Andreas Gerstmayr)
-* doc: add README to dmclock subdir to inform developers it's a git subtree (`pr#15386 <https://github.com/ceph/ceph/pull/15386>`_, J. Eric Ivancich)
-* doc: AUTHORS: update with release manager, backport team (`pr#15391 <https://github.com/ceph/ceph/pull/15391>`_, Sage Weil)
-* doc: Change the default values of some OSD options (`issue#20199 <http://tracker.ceph.com/issues/20199>`_, `pr#15566 <https://github.com/ceph/ceph/pull/15566>`_, Bara Ancincova)
-* doc: describe CephFS max_file_size (`pr#15287 <https://github.com/ceph/ceph/pull/15287>`_, Ken Dreyer)
-* doc: describe mark_events logging available via the OSD's OpTracker (`pr#15095 <https://github.com/ceph/ceph/pull/15095>`_, Greg Farnum)
-* doc: dev improve the s3tests doc to reflect current scripts (`pr#15180 <https://github.com/ceph/ceph/pull/15180>`_, Abhishek Lekshmanan)
-* doc: doc/cephfs: mention RADOS object size limit (`pr#15550 <https://github.com/ceph/ceph/pull/15550>`_, John Spray)
-* doc: doc/release-notes: update which jewel version does sortbitwise warning (`pr#15209 <https://github.com/ceph/ceph/pull/15209>`_, Sage Weil)
-* doc: doc/release-note: update release-note (`pr#15748 <https://github.com/ceph/ceph/pull/15748>`_, liuchang0812)
-* doc: doc/rgw: remove fastcgi page and sample configs (`pr#15133 <https://github.com/ceph/ceph/pull/15133>`_, Casey Bodley)
-* doc: doc/rgw: remove Federated Configuration, clean up multisite (`issue#19504 <http://tracker.ceph.com/issues/19504>`_, `issue#18082 <http://tracker.ceph.com/issues/18082>`_, `pr#15132 <https://github.com/ceph/ceph/pull/15132>`_, Casey Bodley)
-* doc: Documentation Fixes for http://tracker.ceph.com/issues/19879 (`issue#20057 <http://tracker.ceph.com/issues/20057>`_, `issue#19879 <http://tracker.ceph.com/issues/19879>`_, `pr#15606 <https://github.com/ceph/ceph/pull/15606>`_, Sameer Tiwari)
-* doc: document perf historgrams (`pr#15150 <https://github.com/ceph/ceph/pull/15150>`_, Piotr Dałek)
-* doc: Document RGW quota cache options (`issue#18747 <http://tracker.ceph.com/issues/18747>`_, `pr#13395 <https://github.com/ceph/ceph/pull/13395>`_, Daniel Gryniewicz)
-* doc: document the setup of restful and dashboard plugins (`issue#20239 <http://tracker.ceph.com/issues/20239>`_, `pr#15707 <https://github.com/ceph/ceph/pull/15707>`_, Kefu Chai)
-* doc: fix broken link in erasure-code.rst (`issue#19972 <http://tracker.ceph.com/issues/19972>`_, `pr#15143 <https://github.com/ceph/ceph/pull/15143>`_, MinSheng Lin)
-* doc: fix factual inaccuracy in doc/architecture.rst (`pr#15235 <https://github.com/ceph/ceph/pull/15235>`_, Nathan Cutler, Sage Weil)
-* doc: fixing an error in 12.0.3 release notes (`pr#15195 <https://github.com/ceph/ceph/pull/15195>`_, Abhishek Lekshmanan)
-* doc: fix syntax on code snippets in cephfs/multimds (`pr#15499 <https://github.com/ceph/ceph/pull/15499>`_, John Spray)
-* doc: freshen mgr docs (`pr#15690 <https://github.com/ceph/ceph/pull/15690>`_, John Spray)
-* doc: kill some broken links (`pr#15203 <https://github.com/ceph/ceph/pull/15203>`_, liuchang0812)
-* doc: mailmap for v12.0.2 (`pr#14753 <https://github.com/ceph/ceph/pull/14753>`_, Abhishek Lekshmanan)
-* doc: mailmap: Leo Zhang infomation and affiliation (`pr#15145 <https://github.com/ceph/ceph/pull/15145>`_, Leo Zhang)
-* doc: mention certain conf vars should be in global (`pr#15119 <https://github.com/ceph/ceph/pull/15119>`_, Ali Maredia)
-* doc: Merge pull request from stiwari/wip-19879 (`issue#19879 <http://tracker.ceph.com/issues/19879>`_, `pr#15609 <https://github.com/ceph/ceph/pull/15609>`_, Sameer Tiwari)
-* doc: minor fixes in radosgw/ (`pr#15103 <https://github.com/ceph/ceph/pull/15103>`_, Drunkard Zhang)
-* doc: PendingReleaseNotes: notes on whiteouts vs pgnls (`pr#15575 <https://github.com/ceph/ceph/pull/15575>`_, Sage Weil)
-* doc: PendingReleaseNotes: warning about 'osd rm ...' and #19119 (`issue#19119 <http://tracker.ceph.com/issues/19119>`_, `pr#13731 <https://github.com/ceph/ceph/pull/13731>`_, Sage Weil)
-* doc: release-notes clarify about rgw encryption (`pr#14800 <https://github.com/ceph/ceph/pull/14800>`_, Abhishek Lekshmanan)
-* doc: release notes for v12.0.3 (dev) (`pr#15090 <https://github.com/ceph/ceph/pull/15090>`_, Abhishek Lekshmanan)
-* doc: remove some non-existent and fix the default value according to … (`pr#15664 <https://github.com/ceph/ceph/pull/15664>`_, Leo Zhang)
-* docs document "osd recovery max single start" setting (`issue#17396 <http://tracker.ceph.com/issues/17396>`_, `pr#15275 <https://github.com/ceph/ceph/pull/15275>`_, Ken Dreyer)
-* doc: tools/cephfs: fix cephfs-journal-tool --help (`pr#15614 <https://github.com/ceph/ceph/pull/15614>`_, John Spray)
-* doc: typo fixes on hyperlink/words (`pr#15144 <https://github.com/ceph/ceph/pull/15144>`_, Drunkard Zhang)
-* doc: update sample explaning "%" operator in test suites (`pr#15511 <https://github.com/ceph/ceph/pull/15511>`_, Kefu Chai)
-* doc: Update some RGW documentation (`pr#15175 <https://github.com/ceph/ceph/pull/15175>`_, Jens Rosenboom)
-* doc: update the usage of 'ceph-deploy purge' (`pr#15080 <https://github.com/ceph/ceph/pull/15080>`_, Yu Shengzuo)
-* doc: use do_cmake.sh instead of `cmake ..` (`pr#15110 <https://github.com/ceph/ceph/pull/15110>`_, Kefu Chai)
-* librbd: add create timestamp metadata for image (`pr#15757 <https://github.com/ceph/ceph/pull/15757>`_, runsisi)
-* librbd: discard related IO should skip op if object non-existent (`issue#19962 <http://tracker.ceph.com/issues/19962>`_, `pr#15239 <https://github.com/ceph/ceph/pull/15239>`_, Mykola Golub)
-* librbd: do not raise an error if trash list returns -ENOENT (`pr#15085 <https://github.com/ceph/ceph/pull/15085>`_, runsisi)
-* librbd: filter expected error codes from is_exclusive_lock_owner (`issue#20182 <http://tracker.ceph.com/issues/20182>`_, `pr#15483 <https://github.com/ceph/ceph/pull/15483>`_, Jason Dillaman)
-* librbd: fix issues with image removal state machine (`pr#15734 <https://github.com/ceph/ceph/pull/15734>`_, Jason Dillaman)
-* librbd: fix valgrind errors and ensure tests detect future leaks (`pr#15415 <https://github.com/ceph/ceph/pull/15415>`_, Jason Dillaman)
-* librbd: optimize copy-up to add hints only once to object op (`issue#19875 <http://tracker.ceph.com/issues/19875>`_, `pr#15037 <https://github.com/ceph/ceph/pull/15037>`_, Mykola Golub)
-* librbd: potential read IO hang when image is flattened (`issue#19832 <http://tracker.ceph.com/issues/19832>`_, `pr#15234 <https://github.com/ceph/ceph/pull/15234>`_, Jason Dillaman)
-* librbd: reacquire lock should update lock owner client id (`issue#19929 <http://tracker.ceph.com/issues/19929>`_, `pr#15093 <https://github.com/ceph/ceph/pull/15093>`_, Jason Dillaman)
-* librbd: reduce potential of erroneous blacklisting on image close (`issue#19970 <http://tracker.ceph.com/issues/19970>`_, `pr#15162 <https://github.com/ceph/ceph/pull/15162>`_, Jason Dillaman)
-* librbd: remove unused rbd_image_options_t ostream operator (`pr#15443 <https://github.com/ceph/ceph/pull/15443>`_, Mykola Golub)
-* mds: change the type of data_pools (`pr#15278 <https://github.com/ceph/ceph/pull/15278>`_, Vicente Cheng)
-* mds: check export pin during replay (`issue#20039 <http://tracker.ceph.com/issues/20039>`_, `pr#15205 <https://github.com/ceph/ceph/pull/15205>`_, Patrick Donnelly)
-* mds: Client syncfs is slow (waits for next MDS tick) (`issue#20129 <http://tracker.ceph.com/issues/20129>`_, `pr#15544 <https://github.com/ceph/ceph/pull/15544>`_, dongdong tao)
-* mds: explicitly output error msg for dump cache asok command (`pr#15592 <https://github.com/ceph/ceph/pull/15592>`_, Zhi Zhang)
-* mds: fix CDir::merge() for mds_debug_auth_pins (`issue#19946 <http://tracker.ceph.com/issues/19946>`_, `pr#15130 <https://github.com/ceph/ceph/pull/15130>`_, "Yan, Zheng")
-* mds: fix client ID truncation (`pr#15258 <https://github.com/ceph/ceph/pull/15258>`_, Henry Chang)
-* mds: fix hangs involving re-entrant calls to journaler (`issue#20165 <http://tracker.ceph.com/issues/20165>`_, `pr#15430 <https://github.com/ceph/ceph/pull/15430>`_, John Spray)
-* mds: improvements for stray reintegration (`pr#15548 <https://github.com/ceph/ceph/pull/15548>`_, "Yan, Zheng")
-* mds: limit client writable range increment (`issue#19955 <http://tracker.ceph.com/issues/19955>`_, `pr#15131 <https://github.com/ceph/ceph/pull/15131>`_, "Yan, Zheng")
-* mds: mds perf item 'l_mdl_expos' always behind journaler (`pr#15621 <https://github.com/ceph/ceph/pull/15621>`_, redickwang)
-* mds: miscellaneous multimds fixes part2 (`pr#15125 <https://github.com/ceph/ceph/pull/15125>`_, "Yan, Zheng")
-* mds: miscellaneous multimds fixes (`pr#14550 <https://github.com/ceph/ceph/pull/14550>`_, "Yan, Zheng")
-* mds: multimds flock fixes (`pr#15440 <https://github.com/ceph/ceph/pull/15440>`_, "Yan, Zheng")
-* mds: Pass empty string to clear mantle balancer (`issue#20076 <http://tracker.ceph.com/issues/20076>`_, `pr#15282 <https://github.com/ceph/ceph/pull/15282>`_, Zhi Zhang)
-* mds: properly create aux subtrees for pinned directory (`issue#20083 <http://tracker.ceph.com/issues/20083>`_, `pr#15300 <https://github.com/ceph/ceph/pull/15300>`_, "Yan, Zheng")
-* mds: save projected path into inode_t::stray_prior_path (`issue#20340 <http://tracker.ceph.com/issues/20340>`_, `pr#15800 <https://github.com/ceph/ceph/pull/15800>`_, "Yan, Zheng")
-* mgr: ceph-create-keys: update client.admin if it already exists (`issue#19940 <http://tracker.ceph.com/issues/19940>`_, `pr#15112 <https://github.com/ceph/ceph/pull/15112>`_, John Spray)
-* mgr: ceph: introduce "tell x help" subcommand (`issue#19885 <http://tracker.ceph.com/issues/19885>`_, `pr#15111 <https://github.com/ceph/ceph/pull/15111>`_, liuchang0812)
-* mgr: ceph-mgr: Implement new pecan-based rest api (`pr#14457 <https://github.com/ceph/ceph/pull/14457>`_, Boris Ranto)
-* mgr: cleanup, stop clients sending in perf counters (`pr#15578 <https://github.com/ceph/ceph/pull/15578>`_, John Spray)
-* mgr: dashboard code cleanup (`pr#15577 <https://github.com/ceph/ceph/pull/15577>`_, John Spray)
-* mgr: dashboard GUI module (`pr#14946 <https://github.com/ceph/ceph/pull/14946>`_, John Spray, Dan Mick)
-* mgr: fix MgrStandby eating messages (`pr#15716 <https://github.com/ceph/ceph/pull/15716>`_, John Spray)
-* mgr: load modules in separate python sub-interpreters (`pr#14971 <https://github.com/ceph/ceph/pull/14971>`_, Tim Serong)
-* mgr: Mark session connections down on shutdown (`issue#19900 <http://tracker.ceph.com/issues/19900>`_, `pr#15192 <https://github.com/ceph/ceph/pull/15192>`_, Brad Hubbard)
-* mgr: mgr/DaemonServer.cc: log daemon type string as well as id (`pr#15560 <https://github.com/ceph/ceph/pull/15560>`_, Dan Mick)
-* mgr: mgr/dashboard: fix type error in get_rate function (`issue#20276 <http://tracker.ceph.com/issues/20276>`_, `pr#15668 <https://github.com/ceph/ceph/pull/15668>`_, liuchang0812)
-* mgr: mgr/dashboard: load log lines on startup, split out audit log (`pr#15709 <https://github.com/ceph/ceph/pull/15709>`_, John Spray)
-* mgr: mgr/MgrStandby: prevent use-after-free on just-shut-down Mgr (`issue#19595 <http://tracker.ceph.com/issues/19595>`_, `pr#15297 <https://github.com/ceph/ceph/pull/15297>`_, Sage Weil)
-* mgr: mgr/MgrStandby: respawn when deactivated (`issue#19595 <http://tracker.ceph.com/issues/19595>`_, `issue#19549 <http://tracker.ceph.com/issues/19549>`_, `pr#15557 <https://github.com/ceph/ceph/pull/15557>`_, Sage Weil)
-* mgr: mgr,osd: ceph-mgr --help, unify usage text of other daemons (`pr#15176 <https://github.com/ceph/ceph/pull/15176>`_, Tim Serong)
-* mgr,mon: mon,mgr: extricate PGmap from monitor (`issue#20067 <http://tracker.ceph.com/issues/20067>`_, `issue#20174 <http://tracker.ceph.com/issues/20174>`_, `issue#20050 <http://tracker.ceph.com/issues/20050>`_, `pr#15073 <https://github.com/ceph/ceph/pull/15073>`_, Kefu Chai, Sage Weil, Greg Farnum)
-* mgr,mon: mon/MgrMonitor: add 'mgr dump [epoch]' command (`pr#15158 <https://github.com/ceph/ceph/pull/15158>`_, Sage Weil)
-* mgr,mon: mon,mgr: print pgmap reports to debug (not cluster) log (`pr#15740 <https://github.com/ceph/ceph/pull/15740>`_, Sage Weil)
-* mgr: optimize DaemonStateIndex::cull() a little bit (`pr#14967 <https://github.com/ceph/ceph/pull/14967>`_, Kefu Chai)
-* mgr: print a more helpful error message for when users lack mgr ceph caps (`issue#20296 <http://tracker.ceph.com/issues/20296>`_, `pr#15697 <https://github.com/ceph/ceph/pull/15697>`_, Greg Farnum)
-* mgr: pybind/mgr/dashboard: monkeypatch os.exit to stop cherrypy from taking down mgr (`issue#20216 <http://tracker.ceph.com/issues/20216>`_, `pr#15588 <https://github.com/ceph/ceph/pull/15588>`_, Sage Weil)
-* mgr: pybind/mgr: Delete `rest` module (`pr#15429 <https://github.com/ceph/ceph/pull/15429>`_, John Spray)
-* mgr: pybind/mgr/restful: improve cert handling; work with vstart (`pr#15405 <https://github.com/ceph/ceph/pull/15405>`_, Sage Weil)
-* mgr: raise python exception on failure in send_command() (`pr#15704 <https://github.com/ceph/ceph/pull/15704>`_, Kefu Chai)
-* mgr: remove default cert; disable both restful and dashboard by default (`pr#15601 <https://github.com/ceph/ceph/pull/15601>`_, Boris Ranto, Sage Weil)
-* mgr,tests: qa/upgrade/jewel-x/point-to-point: add a mgr during final upgrade (`pr#15637 <https://github.com/ceph/ceph/pull/15637>`_, Sage Weil)
-* mon: add crush type down health warnings (`pr#14914 <https://github.com/ceph/ceph/pull/14914>`_, Neha Ojha)
-* mon: Add override for FsNewHandler::handle() (`pr#15331 <https://github.com/ceph/ceph/pull/15331>`_, yonghengdexin735)
-* mon: cleanups (`pr#15272 <https://github.com/ceph/ceph/pull/15272>`_, Kefu Chai)
-* mon: delete useless function definition (`pr#15188 <https://github.com/ceph/ceph/pull/15188>`_, shiqi)
-* mon: DIVIDE_BY_ZERO in PGMapDigest::dump_pool_stats_full() (`pr#15622 <https://github.com/ceph/ceph/pull/15622>`_, Jos Collin)
-* mon: don't prefix mgr summary with epoch number (`pr#15512 <https://github.com/ceph/ceph/pull/15512>`_, John Spray)
-* mon: fix accesing pending_fsmap from peon (`issue#20040 <http://tracker.ceph.com/issues/20040>`_, `pr#15213 <https://github.com/ceph/ceph/pull/15213>`_, John Spray)
-* mon: fix a few bugs with the osd health reporting (`pr#15179 <https://github.com/ceph/ceph/pull/15179>`_, Sage Weil)
-* mon: Fixed typo in function comment blocks and in other comments (`pr#15304 <https://github.com/ceph/ceph/pull/15304>`_, linbing)
-* mon: Fixed typo in @post of _active() (`pr#15191 <https://github.com/ceph/ceph/pull/15191>`_, Linbing)
-* mon: fix mon_keyvaluedb application (`pr#15059 <https://github.com/ceph/ceph/pull/15059>`_, Sage Weil)
-* mon: Incorrect expression in PGMap::get_health() (`pr#15648 <https://github.com/ceph/ceph/pull/15648>`_, Jos Collin)
-* mon: it's no need to get pg action_primary osd twice in pg scrub (`pr#15313 <https://github.com/ceph/ceph/pull/15313>`_, linbing)
-* mon: Log errors at startup (`issue#14088 <http://tracker.ceph.com/issues/14088>`_, `pr#15723 <https://github.com/ceph/ceph/pull/15723>`_, Ziye Yang)
-* mon: mon/MgrMonitor: send digests only if is_active() (`pr#15109 <https://github.com/ceph/ceph/pull/15109>`_, Kefu Chai)
-* mon: mon/MonClient: cancel pending commands on shutdown (`issue#20051 <http://tracker.ceph.com/issues/20051>`_, `pr#15227 <https://github.com/ceph/ceph/pull/15227>`_, Kefu Chai, Sage Weil)
-* mon: {mon,osd,mds} {versions,count-metadata} (`pr#15436 <https://github.com/ceph/ceph/pull/15436>`_, Sage Weil)
-* mon: mon/PGMap: show %used in formatted output (`issue#20123 <http://tracker.ceph.com/issues/20123>`_, `pr#15387 <https://github.com/ceph/ceph/pull/15387>`_, Joao Eduardo Luis)
-* mon: Removed unnecessary function declaration in MDSMonitor.h (`pr#15374 <https://github.com/ceph/ceph/pull/15374>`_, yonghengdexin735)
-* mon: replace osds with `osd destroy` and `osd new` (`pr#14074 <https://github.com/ceph/ceph/pull/14074>`_, Joao Eduardo Luis, Sage Weil)
-* mon: revise "ceph status" output (`pr#15396 <https://github.com/ceph/ceph/pull/15396>`_, John Spray)
-* mon: show io status quickly if no update in a long period (`pr#14176 <https://github.com/ceph/ceph/pull/14176>`_, Mingxin Liu)
-* mon: track features from connect clients, and use it to gate set-require-min-compat-client (`pr#15371 <https://github.com/ceph/ceph/pull/15371>`_, Sage Weil)
-* mon: trim the creating_pgs after updating it with pgmap (`issue#20067 <http://tracker.ceph.com/issues/20067>`_, `pr#15318 <https://github.com/ceph/ceph/pull/15318>`_, Kefu Chai)
-* msg: do not enable client-side binding by default (`issue#20049 <http://tracker.ceph.com/issues/20049>`_, `pr#15392 <https://github.com/ceph/ceph/pull/15392>`_, Jason Dillaman)
-* msg: don't set msgr addr when disabing client bind (`pr#15243 <https://github.com/ceph/ceph/pull/15243>`_, Haomai Wang)
-* msgr: msg/async: Lower down the AsyncMessenger's standby warning from debug (`pr#15242 <https://github.com/ceph/ceph/pull/15242>`_, Pan Liu)
-* msgr: msg/async/rdma: check if fin message completed (`pr#15624 <https://github.com/ceph/ceph/pull/15624>`_, Alexander Mikheev, Adir Lev)
-* msgr: msg/async/rdma: handle buffers after close msg (`pr#15749 <https://github.com/ceph/ceph/pull/15749>`_, DanielBar-On, Alexander Mikheev, Adir Lev)
-* msgr: msg/async: remove false alert "assert" (`pr#15288 <https://github.com/ceph/ceph/pull/15288>`_, Haomai Wang)
-* osd: don't leak pgrefs or reservations in SnapTrimmer (`issue#19931 <http://tracker.ceph.com/issues/19931>`_, `pr#15214 <https://github.com/ceph/ceph/pull/15214>`_, Greg Farnum)
-* osd: fix argument-dependent lookup of swap() (`pr#15124 <https://github.com/ceph/ceph/pull/15124>`_, Casey Bodley)
-* osd: fix past_intervals base case by adding epoch_pool_created to pg_history_t (`issue#19877 <http://tracker.ceph.com/issues/19877>`_, `pr#14989 <https://github.com/ceph/ceph/pull/14989>`_, Sage Weil)
-* osd: hdd vs ssd defaults for osd op thread pool (`pr#15422 <https://github.com/ceph/ceph/pull/15422>`_, Sage Weil)
-* osd: Implement asynchronous recovery sleep (`pr#15212 <https://github.com/ceph/ceph/pull/15212>`_, Neha Ojha)
-* osd: Move scrub sleep timer to osdservice (`issue#19986 <http://tracker.ceph.com/issues/19986>`_, `pr#15217 <https://github.com/ceph/ceph/pull/15217>`_, Brad Hubbard)
-* osd: Object level shard errors are tracked and used if no auth available (`issue#20089 <http://tracker.ceph.com/issues/20089>`_, `pr#15397 <https://github.com/ceph/ceph/pull/15397>`_, David Zafman)
-* osd: osd/OSDMap.cc: check if osd is out in subtree_type_is_down (`issue#19989 <http://tracker.ceph.com/issues/19989>`_, `pr#15250 <https://github.com/ceph/ceph/pull/15250>`_, Neha Ojha)
-* osd: 'osd tree in|out|up|down' to filter tree results (`pr#15294 <https://github.com/ceph/ceph/pull/15294>`_, Sage Weil)
-* osd: reduce buffer pinning from EC entries (`pr#15120 <https://github.com/ceph/ceph/pull/15120>`_, Sage Weil)
-* osd: reduce map cache size (`pr#15292 <https://github.com/ceph/ceph/pull/15292>`_, Sage Weil)
-* osd: reduce rados_max_object_size from 100 GB -> 128 MB (`pr#15520 <https://github.com/ceph/ceph/pull/15520>`_, Sage Weil)
-* osd: rename osd -> osd_pglog; include pglog-related bufferlists (`pr#15531 <https://github.com/ceph/ceph/pull/15531>`_, Sage Weil)
-* osd: Return early on shutdown (`issue#19900 <http://tracker.ceph.com/issues/19900>`_, `pr#15345 <https://github.com/ceph/ceph/pull/15345>`_, Brad Hubbard)
-* osd: take PGRef for recovery sleep wakeup event (`issue#20226 <http://tracker.ceph.com/issues/20226>`_, `pr#15582 <https://github.com/ceph/ceph/pull/15582>`_, Sage Weil)
-* osd: when osd in not in failure_pending, we don't need to get osd inst from osdmap. (`pr#15558 <https://github.com/ceph/ceph/pull/15558>`_, linbing)
-* osd: When scrub finds an attr error mark shard inconsistent (`issue#20089 <http://tracker.ceph.com/issues/20089>`_, `pr#15368 <https://github.com/ceph/ceph/pull/15368>`_, David Zafman)
-* performance: common/config_opts.h: Lower HDD throttle cost. (`pr#15485 <https://github.com/ceph/ceph/pull/15485>`_, Mark Nelson)
-* performance: denc: add need_contiguous to denc_traits (`pr#15224 <https://github.com/ceph/ceph/pull/15224>`_, Kefu Chai)
-* pybind: pybind/ceph_argparse: fix empty string check (`issue#20135 <http://tracker.ceph.com/issues/20135>`_, `pr#15500 <https://github.com/ceph/ceph/pull/15500>`_, Sage Weil)
-* pybind: pybind/ceph_daemon.py: fix Termsize.update (`pr#15253 <https://github.com/ceph/ceph/pull/15253>`_, Kefu Chai)
-* pybind: pybind/rados: avoid call free() on invalid pointer (`pr#15159 <https://github.com/ceph/ceph/pull/15159>`_, Mingxin Liu)
-* pybind,rbd: pybind/rbd: OSError should be picklable (`issue#20223 <http://tracker.ceph.com/issues/20223>`_, `pr#15574 <https://github.com/ceph/ceph/pull/15574>`_, Jason Dillaman)
-* pybind: support mon target in pybind (`pr#15409 <https://github.com/ceph/ceph/pull/15409>`_, liuchang0812)
-* qa: test/osd/osd-dup.sh: use wait_for_clean (`pr#15722 <https://github.com/ceph/ceph/pull/15722>`_, Dan Mick)
-* rbd-mirror: coordinate image syncs with leader (`issue#18789 <http://tracker.ceph.com/issues/18789>`_, `pr#14745 <https://github.com/ceph/ceph/pull/14745>`_, Mykola Golub)
-* rbd-mirror: lock loss during sync should wait for in-flight copies (`pr#15532 <https://github.com/ceph/ceph/pull/15532>`_, Jason Dillaman)
-* rbd-mirror: permit release of local image exclusive lock after force promotion (`issue#18963 <http://tracker.ceph.com/issues/18963>`_, `pr#15140 <https://github.com/ceph/ceph/pull/15140>`_, Jason Dillaman)
-* rbd: properly decode features when using image name optional (`issue#20185 <http://tracker.ceph.com/issues/20185>`_, `pr#15492 <https://github.com/ceph/ceph/pull/15492>`_, Jason Dillaman)
-* rbd: pybind/rbd: fix crash if more than 1024 images in trash bin (`pr#15134 <https://github.com/ceph/ceph/pull/15134>`_, runsisi)
-* rbd: rbd/bench: fix write gaps when doing sequential writes with io-threads > 1 (`pr#15206 <https://github.com/ceph/ceph/pull/15206>`_, Igor Fedotov)
-* rbd: removed hardcoded default pool (`pr#15518 <https://github.com/ceph/ceph/pull/15518>`_, Jason Dillaman)
-* rbd,tests: qa: krbd discard/zeroout tests (`pr#15388 <https://github.com/ceph/ceph/pull/15388>`_, Ilya Dryomov)
-* rbd,tests: qa/suites/krbd: unmap subsuite needs straw buckets (`pr#15290 <https://github.com/ceph/ceph/pull/15290>`_, Ilya Dryomov)
-* rbd,tests: qa: update krbd_data_pool.sh to match the new rados ls behavior (`pr#15594 <https://github.com/ceph/ceph/pull/15594>`_, Ilya Dryomov)
-* rbd,tests: test/librbd: unit tests cleanup (`pr#15113 <https://github.com/ceph/ceph/pull/15113>`_, Mykola Golub)
-* rdma: msg/async/rdma: Add DSCP support (`pr#15484 <https://github.com/ceph/ceph/pull/15484>`_, Sarit Zubakov)
-* rdma: msg/async: Revert RDMA-CM (`pr#15262 <https://github.com/ceph/ceph/pull/15262>`_, Amir Vadai)
-* rgw: Adding code to create tenanted user for s3 bucket policy tests. (`pr#15028 <https://github.com/ceph/ceph/pull/15028>`_, Pritha Srivastava)
-* rgw: add "rgw_verify_ssl" config (`pr#15301 <https://github.com/ceph/ceph/pull/15301>`_, Shasha Lu)
-* rgw: add the Vim's modeline into rgw_orphan.cc. (`pr#15431 <https://github.com/ceph/ceph/pull/15431>`_, Radoslaw Zarzynski)
-* rgw: bucket index check in radosgw-admin removes valid index. (`issue#18470 <http://tracker.ceph.com/issues/18470>`_, `pr#12851 <https://github.com/ceph/ceph/pull/12851>`_, Zhang Shaowen)
-* rgw: datalog trim and mdlog trim handles the result returned by osd incorrectly. (`issue#20190 <http://tracker.ceph.com/issues/20190>`_, `pr#15507 <https://github.com/ceph/ceph/pull/15507>`_, Zhang Shaowen)
-* rgw: display more info when using radosgw-admin bucket stats (`pr#15256 <https://github.com/ceph/ceph/pull/15256>`_, fang.yuxiang)
-* rgw: drop asio/{yield,coroutine}.hpp replacements (`pr#15413 <https://github.com/ceph/ceph/pull/15413>`_, Kefu Chai)
-* rgw: drop using std ns in header files and other cleanups (`pr#15137 <https://github.com/ceph/ceph/pull/15137>`_, Abhishek Lekshmanan)
-* rgw: dynamic resharding (`pr#15493 <https://github.com/ceph/ceph/pull/15493>`_, Yehuda Sadeh, Orit Wasserman)
-* rgw: fix 'gc list --include-all' command infinite loop the first items (`issue#19978 <http://tracker.ceph.com/issues/19978>`_, `pr#12774 <https://github.com/ceph/ceph/pull/12774>`_, Shasha Lu, fang yuxiang)
-* rgw: fix lc list failure when shards not be all created (`issue#19898 <http://tracker.ceph.com/issues/19898>`_, `pr#15025 <https://github.com/ceph/ceph/pull/15025>`_, Jiaying Ren)
-* rgw: fix radosgw-admin retcode (`pr#15257 <https://github.com/ceph/ceph/pull/15257>`_, Shasha Lu)
-* rgw: fix test_multi.py default config file path (`pr#15306 <https://github.com/ceph/ceph/pull/15306>`_, Jiaying Ren)
-* rgw: fix X-Object-Meta-Static-Large-Object in SLO download (`issue#19951 <http://tracker.ceph.com/issues/19951>`_, `pr#15045 <https://github.com/ceph/ceph/pull/15045>`_, Shasha Lu)
-* rgw: metadata search part 2 (`pr#14351 <https://github.com/ceph/ceph/pull/14351>`_, Yehuda Sadeh)
-* rgw: migrate atomic_t to std::atomic<> (`pr#15001 <https://github.com/ceph/ceph/pull/15001>`_, Jesse Williamson)
-* rgw: optimize data sync. Add zones_trace in log to avoid needless sync. (`issue#19219 <http://tracker.ceph.com/issues/19219>`_, `pr#13851 <https://github.com/ceph/ceph/pull/13851>`_, Zhang Shaowen)
-* rgw: optimize generating torrent file. Object data won't stay in memory now. (`pr#15153 <https://github.com/ceph/ceph/pull/15153>`_, Zhang Shaowen)
-* rgw: pass authentication domain to civetweb (`issue#17657 <http://tracker.ceph.com/issues/17657>`_, `pr#12861 <https://github.com/ceph/ceph/pull/12861>`_, Abhishek Lekshmanan)
-* rgw: polymorphic error codes (`pr#10690 <https://github.com/ceph/ceph/pull/10690>`_, Pritha Srivastava, Marcus Watts)
-* rgw: remove fastcgi from default rgw frontends (`pr#15098 <https://github.com/ceph/ceph/pull/15098>`_, Casey Bodley)
-* rgw: rename s3_code to err_code for swift (`pr#12300 <https://github.com/ceph/ceph/pull/12300>`_, Guo Zhandong)
-* rgw: return the version id in get object and object metadata request. (`issue#19370 <http://tracker.ceph.com/issues/19370>`_, `pr#14117 <https://github.com/ceph/ceph/pull/14117>`_, Zhang Shaowen)
-* rgw: rgw-admin: fix bucket limit check argparse, div(0) (`pr#15316 <https://github.com/ceph/ceph/pull/15316>`_, Matt Benjamin)
-* rgw: rgw_common: use string::npos for the results of str.find (`pr#14341 <https://github.com/ceph/ceph/pull/14341>`_, Abhishek Lekshmanan)
-* rgw: rgw_file: add lock protection for readdir against gc (`issue#20121 <http://tracker.ceph.com/issues/20121>`_, `pr#15329 <https://github.com/ceph/ceph/pull/15329>`_, Gui Hecheng)
-* rgw: rgw_file cleanup names (`pr#15568 <https://github.com/ceph/ceph/pull/15568>`_, Gui Hecheng)
-* rgw: rgw_file: fix flags set on unsuccessful unlink (`pr#15222 <https://github.com/ceph/ceph/pull/15222>`_, Gui Hecheng)
-* rgw: rgw_file: prevent conflict of mkdir between restarts (`issue#20275 <http://tracker.ceph.com/issues/20275>`_, `pr#15655 <https://github.com/ceph/ceph/pull/15655>`_, Gui Hecheng)
-* rgw: rgw_file: release rgw_fh lock and ref on ENOTEMPTY (`issue#20061 <http://tracker.ceph.com/issues/20061>`_, `pr#15246 <https://github.com/ceph/ceph/pull/15246>`_, Matt Benjamin)
-* rgw: rgw_file: removed extra rele() on fs in rgw_umount() (`pr#15152 <https://github.com/ceph/ceph/pull/15152>`_, Gui Hecheng)
-* rgw: rgw_file: remove hidden uxattr objects from buckets on delete (`issue#20045 <http://tracker.ceph.com/issues/20045>`_, `pr#15210 <https://github.com/ceph/ceph/pull/15210>`_, Matt Benjamin)
-* rgw: rgw_file: remove post-unlink lookup check (`issue#20047 <http://tracker.ceph.com/issues/20047>`_, `pr#15216 <https://github.com/ceph/ceph/pull/15216>`_, Matt Benjamin)
-* rgw: rgw_file: replace raw fs->fh_lru.unref with predefined fs->unref (`pr#15541 <https://github.com/ceph/ceph/pull/15541>`_, Gui Hecheng)
-* rgw: rgw_file: store bucket uxattrs on the bucket (`issue#20082 <http://tracker.ceph.com/issues/20082>`_, `pr#15293 <https://github.com/ceph/ceph/pull/15293>`_, Matt Benjamin)
-* rgw: rgw_file: v3: fix write-timer action (`issue#19932 <http://tracker.ceph.com/issues/19932>`_, `pr#15097 <https://github.com/ceph/ceph/pull/15097>`_, Matt Benjamin)
-* rgw: rgw_rados: create sync module instances only if run_sync_thread is set (`issue#19830 <http://tracker.ceph.com/issues/19830>`_, `pr#14994 <https://github.com/ceph/ceph/pull/14994>`_, Abhishek Lekshmanan)
-* rgw: rgw/rgw_swift_auth.cc: using string::back() instead as the C++11 recommend (`pr#14827 <https://github.com/ceph/ceph/pull/14827>`_, liuyuhong)
-* rgw: segment fault when shard id out of range (`issue#19732 <http://tracker.ceph.com/issues/19732>`_, `pr#14389 <https://github.com/ceph/ceph/pull/14389>`_, redickwang)
-* rgw: set object accounted size correctly (`issue#20071 <http://tracker.ceph.com/issues/20071>`_, `pr#14950 <https://github.com/ceph/ceph/pull/14950>`_, fang yuxiang)
-* rgw: set placement rule properly (`pr#15221 <https://github.com/ceph/ceph/pull/15221>`_, fang.yuxiang)
-* rgw: support certain archaic and antiquated distributions (`pr#15498 <https://github.com/ceph/ceph/pull/15498>`_, Adam C. Emerson)
-* rgw,tests: qa/rgw: add multisite suite to configure and run multisite tests (`pr#14688 <https://github.com/ceph/ceph/pull/14688>`_, Casey Bodley)
-* rgw,tests: qa/rgw: remove apache/fastcgi and radosgw-agent tests (`pr#15184 <https://github.com/ceph/ceph/pull/15184>`_, Casey Bodley)
-* rgw: Turn off fcgi as a frontend (`issue#16784 <http://tracker.ceph.com/issues/16784>`_, `pr#15070 <https://github.com/ceph/ceph/pull/15070>`_, Thomas Serlin)
-* rgw: use get_data_extra_pool() when get extra pool (`issue#20064 <http://tracker.ceph.com/issues/20064>`_, `pr#15219 <https://github.com/ceph/ceph/pull/15219>`_, fang yuxiang)
-* rgw: use pre-defined calls to replace raw flag operation (`pr#15107 <https://github.com/ceph/ceph/pull/15107>`_, Gui Hecheng)
-* tests: Add integration tests for admin socket output (`pr#15223 <https://github.com/ceph/ceph/pull/15223>`_, Brad Hubbard)
-* tests: ceph-disk: add setting for external py-modules for tox-testing (`pr#15433 <https://github.com/ceph/ceph/pull/15433>`_, Willem Jan Withagen)
-* tests: Check make_writeable() return value (`pr#15266 <https://github.com/ceph/ceph/pull/15266>`_, zhanglei)
-* tests: config_opts: drop unused opts (`pr#15031 <https://github.com/ceph/ceph/pull/15031>`_, Kefu Chai)
-* tests: qa: add task for dnsmasq configuration (`pr#15071 <https://github.com/ceph/ceph/pull/15071>`_, Casey Bodley)
-* tests: qa: split test_tiering into smaller pieces (`pr#15146 <https://github.com/ceph/ceph/pull/15146>`_, Kefu Chai)
-* tests: qa/suites/rados: fix ec thrashing (`pr#15087 <https://github.com/ceph/ceph/pull/15087>`_, Sage Weil)
-* tests: qa/suites/rados/singleton-nomsgr: fix syntax (`pr#15276 <https://github.com/ceph/ceph/pull/15276>`_, Sage Weil)
-* tests: qa/suites/rados/thrash: make sure osds have map before legacy scrub (`pr#15117 <https://github.com/ceph/ceph/pull/15117>`_, Sage Weil)
-* tests: qa/suites/rados/upgrade: restart mds (`pr#15517 <https://github.com/ceph/ceph/pull/15517>`_, Sage Weil)
-* tests: qa/tasks/ceph_manager: 'ceph $service tell ...' is obsolete (`pr#15252 <https://github.com/ceph/ceph/pull/15252>`_, Sage Weil)
-* tests: qa/tasks/rebuild_mondb: grant "mgr:allow \*" to client.admin (`issue#19439 <http://tracker.ceph.com/issues/19439>`_, `pr#14284 <https://github.com/ceph/ceph/pull/14284>`_, Kefu Chai)
-* tests: qa/tasks/repair_test: unset flags we set (`pr#15296 <https://github.com/ceph/ceph/pull/15296>`_, Sage Weil)
-* tests: qa/workunits/ceph-helpers.sh: use syntax understood by jq 1.3 (`pr#15530 <https://github.com/ceph/ceph/pull/15530>`_, Kefu Chai)
-* tests: Rename FileJournal object to distinguish (`pr#15279 <https://github.com/ceph/ceph/pull/15279>`_, Jos Collin)
-* tests: test/crush: silence warnings from -Walloc-size-larger-than= and -Wstringop-overflow= (`pr#15173 <https://github.com/ceph/ceph/pull/15173>`_, Jos Collin)
-* tests: test: migrate atomic_t to std::atomic (`pr#14655 <https://github.com/ceph/ceph/pull/14655>`_, Jesse Williamson)
-* tests: test/msgr: silence warnings from -Wsign-compare (`pr#15356 <https://github.com/ceph/ceph/pull/15356>`_, Jos Collin)
-* tests: test/msgr: silence warnings from -Wsign-compare (`pr#15570 <https://github.com/ceph/ceph/pull/15570>`_, Jos Collin)
-* tests: test/objectstore: Check apply_transaction() return values (`pr#15171 <https://github.com/ceph/ceph/pull/15171>`_, zhanglei)
-* tests: test/old: Removed commented code (`pr#15366 <https://github.com/ceph/ceph/pull/15366>`_, Jos Collin)
-* tests: test/osdc: fix comparison error and silence warning from -Wunused-value (`pr#15353 <https://github.com/ceph/ceph/pull/15353>`_, Willem Jan Withagen)
-* tests: test: osd/TestOSDMap.cc: fix Clang complain about promotion (`pr#15525 <https://github.com/ceph/ceph/pull/15525>`_, Willem Jan Withagen)
-* tests: test: test_denc.cc: silence warning from -Wsign-compare (`pr#15355 <https://github.com/ceph/ceph/pull/15355>`_, Jos Collin)
-* tests: test: Test fix for SnapSet change (`pr#15161 <https://github.com/ceph/ceph/pull/15161>`_, David Zafman)
-* tests: test/unittest_bluefs: check whether mounted success (`pr#14988 <https://github.com/ceph/ceph/pull/14988>`_, shiqi)
-* tools: ceph-disk: command invocation needs all fields separate (`pr#15733 <https://github.com/ceph/ceph/pull/15733>`_, Willem Jan Withagen)
-* tools: ceph.in: adjust usage width according to user's tty (`pr#15190 <https://github.com/ceph/ceph/pull/15190>`_, Kefu Chai)
-* tools: ceph.in: assert(state==connected) before help_for_target() (`pr#15156 <https://github.com/ceph/ceph/pull/15156>`_, Kefu Chai)
-* tools: ceph.in: drop the compatiiblity to handle non json commands (`pr#15508 <https://github.com/ceph/ceph/pull/15508>`_, Kefu Chai)
-* tools: ceph.in: print return code when json_command failed (`pr#15378 <https://github.com/ceph/ceph/pull/15378>`_, liuchang0812)
-* tools: ceph-rest-api: be more tolerant on network failure (`issue#20115 <http://tracker.ceph.com/issues/20115>`_, `pr#15706 <https://github.com/ceph/ceph/pull/15706>`_, Kefu Chai)
-* tools: fio_ceph_objectstore: Print db_statistics when rocksdb_perf is enabled (`pr#15796 <https://github.com/ceph/ceph/pull/15796>`_, Xiaoyan Li)
-* tools: tools/ceph_kvstore_tool: add "bluestore-kv" to usage (`pr#15326 <https://github.com/ceph/ceph/pull/15326>`_, xie xingguo)
-* tools: tools/crushtool: replicated-rule API support (`pr#15011 <https://github.com/ceph/ceph/pull/15011>`_, xie xingguo)
-* tools: vstart: "debug_ms=1" for mgr by default (`pr#15127 <https://github.com/ceph/ceph/pull/15127>`_, Kefu Chai)
-* tools: vstart: print "start osd.$id" instead of "start osd$id" (`pr#15427 <https://github.com/ceph/ceph/pull/15427>`_, Kefu Chai)
-
-
-v12.0.3 Luminous (dev)
-======================
-
-This is the fourth development checkpoint release of Luminous, the next long
-term stable release. This release introduces several improvements in bluestore,
-monitor, rbd & rgw.
-
-Major changes from v12.0.2
---------------------------
-
-Notable Changes
----------------
-* bluestore,core: osd/OSDMap: should update input param if osd dne (`pr#14863 <https://github.com/ceph/ceph/pull/14863>`_, Kefu Chai)
-* bluestore: include/intarith: templatize ctz/clz/cbits helpers (`pr#14862 <https://github.com/ceph/ceph/pull/14862>`_, Kefu Chai)
-* bluestore: os/bluestore: align reclaim size to bluefs_alloc_size (`pr#14744 <https://github.com/ceph/ceph/pull/14744>`_, Haomai Wang)
-* bluestore: os/bluestore: assert blob map returns success (`pr#14473 <https://github.com/ceph/ceph/pull/14473>`_, shiqi)
-* bluestore: os/bluestore: fix deferred write race (`issue#19880 <http://tracker.ceph.com/issues/19880>`_, `pr#15004 <https://github.com/ceph/ceph/pull/15004>`_, Sage Weil)
-* bluestore: os/bluestore: fix typo(s/trasnaction/transaction/) (`pr#14890 <https://github.com/ceph/ceph/pull/14890>`_, xie xingguo)
-* bluestore: os/bluestore: fix use after free race with aio_wait (`pr#14956 <https://github.com/ceph/ceph/pull/14956>`_, Sage Weil)
-* bluestore: os/bluestore: pre-calculate number of ghost buffers to evict (`pr#15029 <https://github.com/ceph/ceph/pull/15029>`_, xie xingguo)
-* bluestore: os/bluestore: Record l_bluestore_state_kv_queued_lat for sync\_submit\_… (`pr#14448 <https://github.com/ceph/ceph/pull/14448>`_, Jianpeng Ma)
-* bluestore: os/bluestore: Remove ExtentFreeListManager. (`pr#14772 <https://github.com/ceph/ceph/pull/14772>`_, Jianpeng Ma)
-* bluestore: os/bluestore: remove unused condition variable (`pr#14973 <https://github.com/ceph/ceph/pull/14973>`_, Igor Fedotov)
-* bluestore: os/bluestore: rename/fix throttle options (`pr#14717 <https://github.com/ceph/ceph/pull/14717>`_, Sage Weil)
-* bluestore: os/bluestore: roundoff bluefs allocs to bluefs_alloc_size (`pr#14876 <https://github.com/ceph/ceph/pull/14876>`_, Ramesh Chander)
-* bluestore: os/bluestore: use correct bound encode size for unused (`pr#14731 <https://github.com/ceph/ceph/pull/14731>`_, Haomai Wang)
-* bluestore,performance: common/config_opts.h: compaction readahead for bluestore/rocksdb (`pr#14932 <https://github.com/ceph/ceph/pull/14932>`_, Mark Nelson)
-* bluestore,performance: os/bluestore/BlueFS: add bluefs_sync_write option (`pr#14510 <https://github.com/ceph/ceph/pull/14510>`_, Sage Weil)
-* bluestore,performance: os/bluestore: do not balance bluefs on every kv_sync_thread iteration (`pr#14557 <https://github.com/ceph/ceph/pull/14557>`_, Sage Weil)
-* bluestore,performance: os/bluestore: eliminate some excessive stuff (`pr#14675 <https://github.com/ceph/ceph/pull/14675>`_, Igor Fedotov)
-* bluestore,performance: os/bluestore: get rid off excessive lock at BitMapAllocator (`pr#14749 <https://github.com/ceph/ceph/pull/14749>`_, Igor Fedotov)
-* bluestore,performance: os/blueStore: In osd_tp_thread, call _txc_finalize_kv. (`pr#14709 <https://github.com/ceph/ceph/pull/14709>`_, Jianpeng Ma)
-* bluestore,performance: os/bluestore: make bluestore_max_blob_size parameter hdd/ssd case dependant (`pr#14434 <https://github.com/ceph/ceph/pull/14434>`_, Igor Fedotov)
-* bluestore,performance: os/bluestore: rewrite deferred write handling (`issue#16644 <http://tracker.ceph.com/issues/16644>`_, `pr#14491 <https://github.com/ceph/ceph/pull/14491>`_, Sage Weil)
-* bluestore,performance: os/bluestore: use denc for varint encoding (`pr#14911 <https://github.com/ceph/ceph/pull/14911>`_, Piotr Dałek)
-* bluestore,performance: os/fs/aio: use small_vector for aio_t; clean up header location (`pr#14853 <https://github.com/ceph/ceph/pull/14853>`_, Sage Weil)
-* bluestore,tests: unittest_alloc: add test_alloc_big (`issue#16662 <http://tracker.ceph.com/issues/16662>`_, `pr#14844 <https://github.com/ceph/ceph/pull/14844>`_, Sage Weil)
-* bluestore,tools: ceph-kvstore-tool: allow 'bluestore-kv' as kvdb type; add escaping, compaction (`pr#14718 <https://github.com/ceph/ceph/pull/14718>`_, Sage Weil)
-* build/ops: alpine: add alpine linux dev support (`pr#9853 <https://github.com/ceph/ceph/pull/9853>`_, John Coyle)
-* build/ops: arch: use __get_cpuid instead of do_cpuid (`issue#7869 <http://tracker.ceph.com/issues/7869>`_, `pr#14857 <https://github.com/ceph/ceph/pull/14857>`_, Jos Collin)
-* build/ops: CMakeLists.txt: don't do crypto/isa-l if not Intel (`pr#14721 <https://github.com/ceph/ceph/pull/14721>`_, Dan Mick)
-* build/ops: compressor/zlib: fix plugin for non-Intel arches (`pr#14947 <https://github.com/ceph/ceph/pull/14947>`_, Dan Mick)
-* build/ops: debian/rpm: move radosgw-admin to ceph-common (`issue#19577 <http://tracker.ceph.com/issues/19577>`_, `pr#14940 <https://github.com/ceph/ceph/pull/14940>`_, Ali Maredia)
-* build/ops: dmclock: error: ‘function’ in namespace ‘std’ does not name a template type (`pr#14909 <https://github.com/ceph/ceph/pull/14909>`_, Jos Collin)
-* build/ops: dmclock: initial commit of dmclock QoS library (`pr#14330 <https://github.com/ceph/ceph/pull/14330>`_, J. Eric Ivancich)
-* build/ops: init-ceph: add ceph libraries path to environment (`pr#14693 <https://github.com/ceph/ceph/pull/14693>`_, Mohamad Gebai)
-* build/ops: init-ceph: should have a space before "]" (`pr#14796 <https://github.com/ceph/ceph/pull/14796>`_, Kefu Chai)
-* build/ops: merge v12.0.2 release tag (`pr#15091 <https://github.com/ceph/ceph/pull/15091>`_, Jenkins Build Slave User)
-* build/ops,mgr: debian/ceph-base.dirs: create bootstrap-mgr dirs (`pr#14838 <https://github.com/ceph/ceph/pull/14838>`_, Sage Weil)
-* build/ops,mon: mon/ConfigKeyService: add 'config-key dump' to show keys and vals (`pr#14858 <https://github.com/ceph/ceph/pull/14858>`_, Dan Mick)
-* build/ops,performance,rbd: byteorder: use gcc intrinsics for byteswap (`pr#15012 <https://github.com/ceph/ceph/pull/15012>`_, Kefu Chai)
-* build/ops: rocksdb: sync with upstream (`pr#14818 <https://github.com/ceph/ceph/pull/14818>`_, Nathan Cutler, Kefu Chai)
-* build/ops: rpm: fix python-Sphinx package name for SUSE (`pr#15015 <https://github.com/ceph/ceph/pull/15015>`_, Nathan Cutler, Jan Matejek)
-* build/ops: rpm: gperftools-devel >= 2.4 (`issue#13522 <http://tracker.ceph.com/issues/13522>`_, `pr#14870 <https://github.com/ceph/ceph/pull/14870>`_, Nathan Cutler)
-* build/ops: rpm: package crypto on x86_64 only (`pr#14779 <https://github.com/ceph/ceph/pull/14779>`_, Nathan Cutler)
-* build/ops: debian: package crypto plugin only on amd64 (`pr#14820 <https://github.com/ceph/ceph/pull/14820>`_, Kefu Chai)
-* build/ops: src/init-ceph.in: allow one((re)?start|stop) as commands (`pr#14560 <https://github.com/ceph/ceph/pull/14560>`_, Willem Jan Withagen)
-* build/ops: yasm-wrapper: strip -E (stops ccache trashing source files) (`pr#14633 <https://github.com/ceph/ceph/pull/14633>`_, Tim Serong)
-* cephfs: ceph-fuse: use user space permission check by default (`issue#19820 <http://tracker.ceph.com/issues/19820>`_, `pr#14907 <https://github.com/ceph/ceph/pull/14907>`_, "Yan, Zheng")
-* cephfs: client: client_quota no longer optional (`pr#14978 <https://github.com/ceph/ceph/pull/14978>`_, Dan van der Ster)
-* cephfs: client: fix UserPerm::gid_in_group() (`issue#19903 <http://tracker.ceph.com/issues/19903>`_, `pr#15039 <https://github.com/ceph/ceph/pull/15039>`_, "Yan, Zheng")
-* cephfs: client: getattr before returning quota/layout xattrs (`issue#17939 <http://tracker.ceph.com/issues/17939>`_, `pr#14018 <https://github.com/ceph/ceph/pull/14018>`_, John Spray)
-* cephfs: fs/ceph-fuse: normalize file open flags on the wire (`pr#14822 <https://github.com/ceph/ceph/pull/14822>`_, Jan Fajerski)
-* cephfs: mds/Server.cc: Don't evict a slow client if... (`issue#17855 <http://tracker.ceph.com/issues/17855>`_, `pr#12935 <https://github.com/ceph/ceph/pull/12935>`_, Michal Jarzabek)
-* cephfs: osdc/Filer: truncate large file party by party (`issue#19755 <http://tracker.ceph.com/issues/19755>`_, `pr#14769 <https://github.com/ceph/ceph/pull/14769>`_, "Yan, Zheng")
-* cephfs: osdc: remove journaler_allow_split_entries option (`issue#19691 <http://tracker.ceph.com/issues/19691>`_, `pr#14636 <https://github.com/ceph/ceph/pull/14636>`_, John Spray)
-* cephfs,performance: client: make seeky readdir more efficiency (`issue#19306 <http://tracker.ceph.com/issues/19306>`_, `pr#14317 <https://github.com/ceph/ceph/pull/14317>`_, "Yan, Zheng")
-* cephfs: qa/cephfs: Fix for test_data_scan (`issue#19893 <http://tracker.ceph.com/issues/19893>`_, `pr#15094 <https://github.com/ceph/ceph/pull/15094>`_, Douglas Fuller)
-* cephfs: qa/suites/fs: reserve more space for mds in full tests (`issue#19891 <http://tracker.ceph.com/issues/19891>`_, `pr#15026 <https://github.com/ceph/ceph/pull/15026>`_, "Yan, Zheng")
-* cephfs,tests: qa: silence spurious insufficient standby health warnings (`pr#15035 <https://github.com/ceph/ceph/pull/15035>`_, Patrick Donnelly)
-* cephfs,tests: qa: Tidy up fs/ suite (`pr#14575 <https://github.com/ceph/ceph/pull/14575>`_, John Spray)
-* cleanup: dmclock: include missing <functional> header. (`pr#14923 <https://github.com/ceph/ceph/pull/14923>`_, Jos Collin)
-* cleanup: kill clang warnings (`pr#14549 <https://github.com/ceph/ceph/pull/14549>`_, Kefu Chai)
-* cleanup: test: c_write_operations.cc: silence warning from -Wsign-compare (`pr#14889 <https://github.com/ceph/ceph/pull/14889>`_, Jos Collin)
-* cmake: add "container" to required boost components (`pr#14850 <https://github.com/ceph/ceph/pull/14850>`_, Kefu Chai)
-* cmake: align cmake names of library packages (`issue#19853 <http://tracker.ceph.com/issues/19853>`_, `pr#14951 <https://github.com/ceph/ceph/pull/14951>`_, Nathan Cutler)
-* cmake: Allow tests to build without NSS (`pr#13315 <https://github.com/ceph/ceph/pull/13315>`_, Daniel Gryniewicz)
-* cmake: do not compile crush twice (`pr#14725 <https://github.com/ceph/ceph/pull/14725>`_, Kefu Chai)
-* cmake: enable cross-compilation of boost (`issue#18938 <http://tracker.ceph.com/issues/18938>`_, `pr#14881 <https://github.com/ceph/ceph/pull/14881>`_, Kefu Chai)
-* cmake: fix the linked lib reference of unittest_rgw_crypto (`pr#14869 <https://github.com/ceph/ceph/pull/14869>`_, Willem Jan Withagen)
-* cmake: kill duplicated cmake commands (`pr#14948 <https://github.com/ceph/ceph/pull/14948>`_, liuchang0812)
-* cmake: pass -d0 to b2 if not CMAKE_VERBOSE_MAKEFILE (`pr#14651 <https://github.com/ceph/ceph/pull/14651>`_, Kefu Chai)
-* cmake: should not compile crc32c_ppc.c on intel arch. (`pr#14423 <https://github.com/ceph/ceph/pull/14423>`_, Kefu Chai)
-* common: Better handling for missing/inaccessible ceph.conf files (`issue#19658 <http://tracker.ceph.com/issues/19658>`_, `pr#14757 <https://github.com/ceph/ceph/pull/14757>`_, Dan Mick)
-* common: cls/log/cls_log.cc: reduce logging noise (`issue#19835 <http://tracker.ceph.com/issues/19835>`_, `pr#14879 <https://github.com/ceph/ceph/pull/14879>`_, Willem Jan Withagen)
-* common: common/admin_socket: add config for admin socket permission bits (`pr#11684 <https://github.com/ceph/ceph/pull/11684>`_, runsisi)
-* common: common/ceph_context.cc: Use CEPH_DEV to reduce logfile noise (`pr#10384 <https://github.com/ceph/ceph/pull/10384>`_, Willem Jan Withagen)
-* common: common/config: Add /usr/local/etc/ceph to default paths (`pr#14797 <https://github.com/ceph/ceph/pull/14797>`_, Willem Jan Withagen)
-* common: common/config_opts: Set the HDD throttle cost to 1.5M (`pr#14808 <https://github.com/ceph/ceph/pull/14808>`_, Mark Nelson)
-* common: common/Finisher: fix uninitialized variable warning (`pr#14958 <https://github.com/ceph/ceph/pull/14958>`_, Piotr Dałek)
-* common: common/interval_set: return int64_t for size() (`pr#12898 <https://github.com/ceph/ceph/pull/12898>`_, Xinze Chi)
-* common: crypto: cleanup NSPR in main thread (`pr#14801 <https://github.com/ceph/ceph/pull/14801>`_, Kefu Chai)
-* common: fix building against libcryptopp (`pr#14949 <https://github.com/ceph/ceph/pull/14949>`_, Shengjing Zhu)
-* common: Fix unused variable references warnings (`pr#14790 <https://github.com/ceph/ceph/pull/14790>`_, Willem Jan Withagen)
-* common: msg/async: return right away in NetHandler::set_priority() if not supported (`pr#14795 <https://github.com/ceph/ceph/pull/14795>`_, Kefu Chai)
-* common: osdc/Objecter: fix pool dne corner case (`issue#19552 <http://tracker.ceph.com/issues/19552>`_, `pr#14901 <https://github.com/ceph/ceph/pull/14901>`_, Sage Weil)
-* common: osdc/Objecter: handle command target that goes down (`issue#19452 <http://tracker.ceph.com/issues/19452>`_, `pr#14302 <https://github.com/ceph/ceph/pull/14302>`_, Sage Weil)
-* common: osd/OSDMap: fix feature commit comment (`pr#15056 <https://github.com/ceph/ceph/pull/15056>`_, Sage Weil)
-* common,performance: common/Finisher: batch handle perfcounter && only send signal when waiter existed. (`pr#14363 <https://github.com/ceph/ceph/pull/14363>`_, Jianpeng Ma)
-* common: Remove redundant includes (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15003 <https://github.com/ceph/ceph/pull/15003>`_, Brad Hubbard)
-* common: Remove redundant includes (`issue#19883 <http://tracker.ceph.com/issues/19883>`_, `pr#15019 <https://github.com/ceph/ceph/pull/15019>`_, Brad Hubbard)
-* common: src/common: change last_work_queue to next_work_queue. (`pr#14738 <https://github.com/ceph/ceph/pull/14738>`_, Pan Liu)
-* core: ceph-disk: ceph-disk on FreeBSD should not use mpath-code (`pr#14837 <https://github.com/ceph/ceph/pull/14837>`_, Willem Jan Withagen)
-* core: ceph-disk: implement prepare --no-locking (`pr#14728 <https://github.com/ceph/ceph/pull/14728>`_, Dan van der Ster, Loic Dachary)
-* core: ceph-disk: separate ceph-osd --check-needs-* logs (`issue#19888 <http://tracker.ceph.com/issues/19888>`_, `pr#15016 <https://github.com/ceph/ceph/pull/15016>`_, Loic Dachary)
-* core: erasure-code: sync jerasure/gf-complete submodules (`pr#14424 <https://github.com/ceph/ceph/pull/14424>`_, Loic Dachary)
-* core: introduce DirectMessenger (`pr#14755 <https://github.com/ceph/ceph/pull/14755>`_, Casey Bodley, Matt Benjamin)
-* core: messages: remove compat cruft (`pr#14475 <https://github.com/ceph/ceph/pull/14475>`_, Sage Weil)
-* core,mon: common/Finisher: fix uninitialized variable warning (`issue#19874 <http://tracker.ceph.com/issues/19874>`_, `pr#14979 <https://github.com/ceph/ceph/pull/14979>`_, Sage Weil)
-* core: mon,osd: add require_min_compat_client setting to enforce and clarify client compatibility (`pr#14959 <https://github.com/ceph/ceph/pull/14959>`_, Sage Weil)
-* core: mon/OSDMonitor: skip prime_pg_temp if mapping is prior to osdmap (`pr#14826 <https://github.com/ceph/ceph/pull/14826>`_, Kefu Chai)
-* core: mon/PGMonitor: fix wrongly report "pg stuck in inactive" (`pr#14391 <https://github.com/ceph/ceph/pull/14391>`_, Mingxin Liu)
-* core: osd,librados: cmpext support (`pr#14715 <https://github.com/ceph/ceph/pull/14715>`_, Zhengyong Wang, David Disseldorp, Mike Christie)
-* core: osd/OSDMap: bump encoding version for require_min_compat_client (`pr#15046 <https://github.com/ceph/ceph/pull/15046>`_, "Yan, Zheng")
-* core: osd/PG.cc: Optimistic estimation on PG.last_active (`pr#14799 <https://github.com/ceph/ceph/pull/14799>`_, Xiaoxi Chen)
-* core: osd/PG.cc: unify the call of checking whether lock is held (`pr#15013 <https://github.com/ceph/ceph/pull/15013>`_, Jin Cai)
-* core: osd/PG: fix possible overflow on unfound objects (`pr#12669 <https://github.com/ceph/ceph/pull/12669>`_, huangjun)
-* core: osd/PrimaryLogPG: do not call on_shutdown() if (pg.deleting) (`issue#19902 <http://tracker.ceph.com/issues/19902>`_, `pr#15040 <https://github.com/ceph/ceph/pull/15040>`_, Kefu Chai)
-* core: osd/PrimayLogPG: update modified range to include the whole object size for write_full op (`pr#15021 <https://github.com/ceph/ceph/pull/15021>`_, runsisi)
-* core: osd/ReplicatedBackend: remove MOSDSubOp cruft from repop_applied (`pr#14358 <https://github.com/ceph/ceph/pull/14358>`_, Jianpeng Ma)
-* core: os/filestore/FileJournal: Fix typo in the comment (`pr#14493 <https://github.com/ceph/ceph/pull/14493>`_, Zhou Zhengping)
-* core: os/filestore: fix infinit loops in fiemap() (`pr#14367 <https://github.com/ceph/ceph/pull/14367>`_, Ning Yao)
-* core,performance: osd, os: reduce fiemap burden (`pr#14640 <https://github.com/ceph/ceph/pull/14640>`_, Piotr Dałek)
-* core,performance: os/filestore: use new sleep strategy when io_submit gets EAGAIN. (`pr#14860 <https://github.com/ceph/ceph/pull/14860>`_, Pan Liu)
-* core,performance: os/kstore: Added rocksdb bloom filter settings (`pr#13053 <https://github.com/ceph/ceph/pull/13053>`_, Ted-Chang)
-* core,tests: ceph_test_rados_api_watch_notify: make LibRadosWatchNotify.Watch3Timeout tolerate thrashing (`issue#19433 <http://tracker.ceph.com/issues/19433>`_, `pr#14899 <https://github.com/ceph/ceph/pull/14899>`_, Sage Weil)
-* core,tools: ceph: perfcounter priorities and daemonperf updates to use them (`pr#14793 <https://github.com/ceph/ceph/pull/14793>`_, Sage Weil, Dan Mick)
-* core,tools: kv: move 'bluestore-kv' hackery out of KeyValueDB into ceph-kvstore-tool (`issue#19778 <http://tracker.ceph.com/issues/19778>`_, `pr#14895 <https://github.com/ceph/ceph/pull/14895>`_, Sage Weil)
-* crush: builder: legacy has chooseleaf_stable = 0 (`pr#14695 <https://github.com/ceph/ceph/pull/14695>`_, Loic Dachary)
-* crush: crush_init_workspace starts with struct crush_work (`pr#14696 <https://github.com/ceph/ceph/pull/14696>`_, Loic Dachary)
-* crush: update documentation for negative choose step (`pr#14970 <https://github.com/ceph/ceph/pull/14970>`_, Loic Dachary)
-* doc: AUTHORS: update tech leads (`pr#14350 <https://github.com/ceph/ceph/pull/14350>`_, Patrick Donnelly)
-* doc: correct and improve add user capability section (`pr#14055 <https://github.com/ceph/ceph/pull/14055>`_, Chu, Hua-Rong)
-* doc: Correcting the remove bucket example and adding bucket link/unlink examples (`pr#12460 <https://github.com/ceph/ceph/pull/12460>`_, Uday Mullangi)
-* doc: dev add a note about ccache (`pr#14478 <https://github.com/ceph/ceph/pull/14478>`_, Abhishek Lekshmanan)
-* doc: doc/dev: add some info about FreeBSD (`pr#14503 <https://github.com/ceph/ceph/pull/14503>`_, Willem Jan Withagen)
-* doc: fio: update README.md so only the fio ceph engine is built (`pr#15081 <https://github.com/ceph/ceph/pull/15081>`_, Kefu Chai)
-* doc: fix link that pointed to a nonexistent file (`pr#14740 <https://github.com/ceph/ceph/pull/14740>`_, Peter Maloney)
-* doc: Indicate how to add multiple admin capbabilies (`pr#13956 <https://github.com/ceph/ceph/pull/13956>`_, Chu, Hua-Rong)
-* doc: mailmap: add Alibaba into organization map (`pr#14900 <https://github.com/ceph/ceph/pull/14900>`_, James Liu)
-* doc: mailmap: update organization info (`pr#14747 <https://github.com/ceph/ceph/pull/14747>`_, liuchang0812)
-* doc: mailmap: V12.0.1 credits (`pr#14479 <https://github.com/ceph/ceph/pull/14479>`_, M Ranga Swami Reddy)
-* doc: mailmap: Weibing Zhang mailmap affiliation (`pr#15076 <https://github.com/ceph/ceph/pull/15076>`_, Weibing Zhang)
-* doc: mailmap: ztczll affiliation (`pr#15079 <https://github.com/ceph/ceph/pull/15079>`_, zhanglei)
-* doc: mention teuthology-worker security group (`pr#14748 <https://github.com/ceph/ceph/pull/14748>`_, Nathan Cutler)
-* doc: peoplemap: add pdonnell alias (`pr#14352 <https://github.com/ceph/ceph/pull/14352>`_, Patrick Donnelly)
-* doc: remove deprecated subcommand in man/8/ceph.rst (`pr#14928 <https://github.com/ceph/ceph/pull/14928>`_, Drunkard Zhang)
-* doc: Re-word the warnings about using git subtrees. (`pr#14999 <https://github.com/ceph/ceph/pull/14999>`_, J. Eric Ivancich)
-* doc: rgw: Clean up create subuser parameters (`pr#14335 <https://github.com/ceph/ceph/pull/14335>`_, hrchu)
-* doc: rgw: correct get usage parameter default value (`pr#14372 <https://github.com/ceph/ceph/pull/14372>`_, hrchu)
-* doc: rgw: Get user usage needs to specify user (`pr#14804 <https://github.com/ceph/ceph/pull/14804>`_, hrchu)
-* doc: rgw: note rgw_enable_usage_log option in adminops guide (`pr#14803 <https://github.com/ceph/ceph/pull/14803>`_, hrchu)
-* doc: rgw: Rewrite Java swift examples (`pr#14268 <https://github.com/ceph/ceph/pull/14268>`_, Chu, Hua-Rong)
-* doc: rgw: Rewrite the key management (`pr#14384 <https://github.com/ceph/ceph/pull/14384>`_, hrchu)
-* doc: style fix for doc/cephfs/client-config-ref.rst (`pr#14840 <https://github.com/ceph/ceph/pull/14840>`_, Drunkard Zhang)
-* doc: two minor fixes (`pr#14494 <https://github.com/ceph/ceph/pull/14494>`_, Drunkard Zhang)
-* doc: update the support status of swift static website (`pr#13824 <https://github.com/ceph/ceph/pull/13824>`_, Jing Wenjun)
-* doc: v12.0.2 (dev) release notes (`pr#14625 <https://github.com/ceph/ceph/pull/14625>`_, Abhishek Lekshmanan)
-* librados: fix rados_pool_list when buf is null (`pr#14859 <https://github.com/ceph/ceph/pull/14859>`_, Sage Weil)
-* librbd: cleanup logging code under librbd/io (`pr#14975 <https://github.com/ceph/ceph/pull/14975>`_, runsisi)
-* librbd: do not instantiate templates while building tests (`issue#18938 <http://tracker.ceph.com/issues/18938>`_, `pr#14891 <https://github.com/ceph/ceph/pull/14891>`_, Kefu Chai)
-* librbd: minor fixes for image trash move (`pr#14834 <https://github.com/ceph/ceph/pull/14834>`_, runsisi)
-* librbd: remove redundant check for image id emptiness (`pr#14830 <https://github.com/ceph/ceph/pull/14830>`_, runsisi)
-* librbd: silence -Wunused-variable warning (`pr#14953 <https://github.com/ceph/ceph/pull/14953>`_, Kefu Chai)
-* mds: add perf counters for file system operations (`pr#14938 <https://github.com/ceph/ceph/pull/14938>`_, Michael Sevilla)
-* mds: change_attr++ and set ctime for set_vxattr (`issue#19583 <http://tracker.ceph.com/issues/19583>`_, `pr#14726 <https://github.com/ceph/ceph/pull/14726>`_, Patrick Donnelly)
-* mds: fix mantle script to not fail for last rank (`issue#19589 <http://tracker.ceph.com/issues/19589>`_, `pr#14704 <https://github.com/ceph/ceph/pull/14704>`_, Patrick Donnelly)
-* mds: fix use-after-free in Locker::file_update_finish() (`issue#19828 <http://tracker.ceph.com/issues/19828>`_, `pr#14991 <https://github.com/ceph/ceph/pull/14991>`_, "Yan, Zheng")
-* mds: issue new caps when sending reply to client (`issue#19635 <http://tracker.ceph.com/issues/19635>`_, `pr#14743 <https://github.com/ceph/ceph/pull/14743>`_, "Yan, Zheng")
-* mds: relocate PTRWAITER put near get (`pr#14921 <https://github.com/ceph/ceph/pull/14921>`_, Patrick Donnelly)
-* mds: remove boost::pool usage and use tcmalloc directly (`issue#18425 <http://tracker.ceph.com/issues/18425>`_, `pr#12792 <https://github.com/ceph/ceph/pull/12792>`_, Zhi Zhang)
-* mds: remove "mds log" config option (`issue#18816 <http://tracker.ceph.com/issues/18816>`_, `pr#14652 <https://github.com/ceph/ceph/pull/14652>`_, John Spray)
-* mds: support export pinning on directories (`issue#17834 <http://tracker.ceph.com/issues/17834>`_, `pr#14598 <https://github.com/ceph/ceph/pull/14598>`_, "Yan, Zheng", Patrick Donnelly)
-* mds: use debug_mds for most subsys (`issue#19734 <http://tracker.ceph.com/issues/19734>`_, `pr#15052 <https://github.com/ceph/ceph/pull/15052>`_, Patrick Donnelly)
-* mgr: add machinery for python modules to send MCommands to daemons (`pr#14920 <https://github.com/ceph/ceph/pull/14920>`_, John Spray)
-* mgr: add mgr allow * to client.admin (`pr#14864 <https://github.com/ceph/ceph/pull/14864>`_, huanwen ren)
-* mgr: do shutdown using finisher so we can do it in the right order (`issue#19743 <http://tracker.ceph.com/issues/19743>`_, `pr#14835 <https://github.com/ceph/ceph/pull/14835>`_, Kefu Chai)
-* mgr: do the shutdown in the right order (`issue#19813 <http://tracker.ceph.com/issues/19813>`_, `pr#14952 <https://github.com/ceph/ceph/pull/14952>`_, Kefu Chai)
-* mgr: fix crash on set_config from python module with insufficient caps (`issue#19629 <http://tracker.ceph.com/issues/19629>`_, `pr#14706 <https://github.com/ceph/ceph/pull/14706>`_, Tim Serong)
-* mgr: fix metadata handling from old MDS daemons (`pr#14161 <https://github.com/ceph/ceph/pull/14161>`_, John Spray)
-* mgr: fix python module teardown & add tests (`issue#19407 <http://tracker.ceph.com/issues/19407>`_, `issue#19412 <http://tracker.ceph.com/issues/19412>`_, `issue#19258 <http://tracker.ceph.com/issues/19258>`_, `pr#14232 <https://github.com/ceph/ceph/pull/14232>`_, John Spray)
-* mgr: fix session leak (`issue#19591 <http://tracker.ceph.com/issues/19591>`_, `pr#14720 <https://github.com/ceph/ceph/pull/14720>`_, Sage Weil)
-* mgr: Misc. bug fixes (`issue#18994 <http://tracker.ceph.com/issues/18994>`_, `pr#14883 <https://github.com/ceph/ceph/pull/14883>`_, John Spray)
-* mgr: mkdir bootstrap-mgr (`pr#14824 <https://github.com/ceph/ceph/pull/14824>`_, huanwen ren)
-* mgr,mon: mon/MgrMonitor: only propose if we updated (`pr#14645 <https://github.com/ceph/ceph/pull/14645>`_, Sage Weil)
-* mgr,mon: mon,mgr: trim osdmap without the help of pgmap (`pr#14504 <https://github.com/ceph/ceph/pull/14504>`_, Kefu Chai)
-* mgr: pybind/mgr/rest: completely terminate cherrypy in shutdown (`pr#14995 <https://github.com/ceph/ceph/pull/14995>`_, Tim Serong)
-* mgr: redirect python stdout,stderr to ceph log (`pr#14189 <https://github.com/ceph/ceph/pull/14189>`_, Kefu Chai, Tim Serong, Dan Mick)
-* mgr: release allocated PyString (`pr#14716 <https://github.com/ceph/ceph/pull/14716>`_, Kefu Chai)
-* mgr: remove non-existent MDS daemons from FSMap (`issue#17453 <http://tracker.ceph.com/issues/17453>`_, `pr#14937 <https://github.com/ceph/ceph/pull/14937>`_, Spandan Kumar Sahu)
-* mgr,tests: qa/suites: move mgr tests into rados suite (`pr#14687 <https://github.com/ceph/ceph/pull/14687>`_, John Spray)
-* mgr: various cleanups (`pr#14802 <https://github.com/ceph/ceph/pull/14802>`_, Kefu Chai)
-* mon: check is_shutdown() in timer callbacks (`issue#19825 <http://tracker.ceph.com/issues/19825>`_, `pr#14919 <https://github.com/ceph/ceph/pull/14919>`_, Kefu Chai)
-* mon: do not prime_pg_temp creating pgs; clean up pg create conditions (`issue#19826 <http://tracker.ceph.com/issues/19826>`_, `pr#14913 <https://github.com/ceph/ceph/pull/14913>`_, Sage Weil)
-* mon: don't call propose_pending in prepare_update() (`issue#19738 <http://tracker.ceph.com/issues/19738>`_, `pr#14711 <https://github.com/ceph/ceph/pull/14711>`_, John Spray)
-* mon: logclient: use the seq id of the 1st log entry when resetting session (`issue#19427 <http://tracker.ceph.com/issues/19427>`_, `pr#14927 <https://github.com/ceph/ceph/pull/14927>`_, Kefu Chai)
-* mon: mon/OSDMonitor: check get()'s return value instead of bl's length (`pr#14805 <https://github.com/ceph/ceph/pull/14805>`_, Kefu Chai)
-* mon: mon/OSDMonitor: cleanup pending_created_pgs after done with it (`pr#14898 <https://github.com/ceph/ceph/pull/14898>`_, Kefu Chai)
-* mon: mon/OSDMonitor: do not alter the "created" epoch of a pg (`issue#19787 <http://tracker.ceph.com/issues/19787>`_, `pr#14849 <https://github.com/ceph/ceph/pull/14849>`_, Kefu Chai)
-* mon: mon/OSDMonitor: fix output func name in can_mark_out (`pr#14758 <https://github.com/ceph/ceph/pull/14758>`_, xie xingguo)
-* mon: mon/OSDMonitor: increase last_epoch_clean's lower bound if possible (`pr#14855 <https://github.com/ceph/ceph/pull/14855>`_, Kefu Chai)
-* mon: mon/OSDMonitor: tolerate upgrade from post-kraken dev cluster (`pr#14442 <https://github.com/ceph/ceph/pull/14442>`_, Sage Weil)
-* mon: mon/OSDMonitor: update creating_pgs using pending_creatings (`issue#19814 <http://tracker.ceph.com/issues/19814>`_, `pr#14897 <https://github.com/ceph/ceph/pull/14897>`_, Kefu Chai)
-* mon: mon/OSDMonitor: update pg_creatings even the new acting set is empty (`issue#19744 <http://tracker.ceph.com/issues/19744>`_, `pr#14730 <https://github.com/ceph/ceph/pull/14730>`_, Kefu Chai)
-* mon: mon/PGMap: add up_primary pg number field for pg-dump cmd (`pr#13451 <https://github.com/ceph/ceph/pull/13451>`_, xie xingguo)
-* mon: mon/PGMap.cc: fix "osd_epochs" section of dump_basic (`pr#14996 <https://github.com/ceph/ceph/pull/14996>`_, xie xingguo)
-* mon: mon/PGMonitor: clean up min/max span warning (`pr#14611 <https://github.com/ceph/ceph/pull/14611>`_, Sage Weil)
-* mon: move 'pg map' to OSDMonitor (`pr#14559 <https://github.com/ceph/ceph/pull/14559>`_, Sage Weil)
-* mon: osd/PGMonitor: always update pgmap with latest osdmap (`issue#19398 <http://tracker.ceph.com/issues/19398>`_, `pr#14777 <https://github.com/ceph/ceph/pull/14777>`_, Kefu Chai)
-* mon: show inactive % in ceph status (`pr#14810 <https://github.com/ceph/ceph/pull/14810>`_, Sage Weil)
-* msg: Increase loglevels on some messages (`pr#14707 <https://github.com/ceph/ceph/pull/14707>`_, Willem Jan Withagen)
-* msg: msg/async/net_handler: errno should be stored before calling next function (`pr#14985 <https://github.com/ceph/ceph/pull/14985>`_, Zhou Zhengping)
-* msg: msg/simple: use my addr when setting sock priority (`issue#19801 <http://tracker.ceph.com/issues/19801>`_, `pr#14878 <https://github.com/ceph/ceph/pull/14878>`_, Kefu Chai)
-* msg: src/msg/async/AsyncConnect.cc: Use of sizeof() on a Pointer Type (`pr#14773 <https://github.com/ceph/ceph/pull/14773>`_, Svyatoslav)
-* msg: src/msg/simple/Pipe.cc: Fix the inclusion of '}' (`pr#14843 <https://github.com/ceph/ceph/pull/14843>`_, Willem Jan Withagen)
-* osd: check fsid is normal before osd mkfs (`pr#13898 <https://github.com/ceph/ceph/pull/13898>`_, song baisen)
-* osd: clean nonused work queue (`pr#14990 <https://github.com/ceph/ceph/pull/14990>`_, Wei Jin)
-* osd: eliminate snapdir objects and move clone snaps vector into SnapSet (`pr#13610 <https://github.com/ceph/ceph/pull/13610>`_, Sage Weil)
-* osd: fix occasional MOSDMap leak (`issue#18293 <http://tracker.ceph.com/issues/18293>`_, `pr#14558 <https://github.com/ceph/ceph/pull/14558>`_, Sage Weil)
-* osd: fix typo in comment (`pr#13061 <https://github.com/ceph/ceph/pull/13061>`_, Gu Zhongyan)
-* osd: Implement asynchronous scrub sleep (`issue#19497 <http://tracker.ceph.com/issues/19497>`_, `pr#14886 <https://github.com/ceph/ceph/pull/14886>`_, Brad Hubbard)
-* osd: Implement peering state timing (`pr#14627 <https://github.com/ceph/ceph/pull/14627>`_, Brad Hubbard)
-* osd: objclass sdk (`pr#14723 <https://github.com/ceph/ceph/pull/14723>`_, Neha Ojha)
-* osd: osdc/Objecter: more constness (`pr#14819 <https://github.com/ceph/ceph/pull/14819>`_, Kefu Chai)
-* osd: osdc: silence warning from `-Wsign-compare` (`pr#14729 <https://github.com/ceph/ceph/pull/14729>`_, Jos Collin)
-* osd: pglog trimming fixes (`pr#12882 <https://github.com/ceph/ceph/pull/12882>`_, Zhiqiang Wang)
-* osd: pglog: with config, don't assert in the presence of stale diverg… (`issue#17916 <http://tracker.ceph.com/issues/17916>`_, `pr#14648 <https://github.com/ceph/ceph/pull/14648>`_, Greg Farnum)
-* osd: put osdmap in mempool (`pr#14780 <https://github.com/ceph/ceph/pull/14780>`_, Sage Weil)
-* osd: renamed the new vector name in OSDMap::build_simple_crush_map_from_conf (`pr#14583 <https://github.com/ceph/ceph/pull/14583>`_, Jos Collin)
-* osd: ReplicatedBackend::prep_push() remove redundant variable assignments (`pr#14817 <https://github.com/ceph/ceph/pull/14817>`_, Jin Cai)
-* osd: sched_scrub() lock pg only if all scrubbing conditions are fulfilled (`pr#14968 <https://github.com/ceph/ceph/pull/14968>`_, Jin Cai)
-* osd: simplify past_intervals representation (`pr#14444 <https://github.com/ceph/ceph/pull/14444>`_, Samuel Just, Sage Weil)
-* osd: stop mgrc earlier in shutdown() (`issue#19638 <http://tracker.ceph.com/issues/19638>`_, `pr#14904 <https://github.com/ceph/ceph/pull/14904>`_, Kefu Chai)
-* osd: stop MgrClient callbacks on shutdown (`issue#19638 <http://tracker.ceph.com/issues/19638>`_, `pr#14896 <https://github.com/ceph/ceph/pull/14896>`_, Sage Weil)
-* osd: strip pglog op name (`pr#14764 <https://github.com/ceph/ceph/pull/14764>`_, liuchang0812)
-* osd: support dumping long ops (`pr#13019 <https://github.com/ceph/ceph/pull/13019>`_, Zhiqiang Wang)
-* osd: switch filestore to default to rocksdb (`pr#14814 <https://github.com/ceph/ceph/pull/14814>`_, Neha Ojha)
-* osd: tag fast dispatch messages with min_epoch (`pr#13681 <https://github.com/ceph/ceph/pull/13681>`_, Sage Weil)
-* osd: use append(bufferlist &) to avoid unnecessary copy (`pr#12272 <https://github.com/ceph/ceph/pull/12272>`_, Yunchuan Wen)
-* osd: zipkin tracing (`pr#14305 <https://github.com/ceph/ceph/pull/14305>`_, Sage Weil, Marios-Evaggelos Kogias, Victor Araujo, Casey Bodley, Andrew Shewmaker, Chendi.Xue)
-* performance: buffer, osd: add missing crc cache miss perf counter (`pr#14957 <https://github.com/ceph/ceph/pull/14957>`_, Piotr Dałek)
-* performance: osd/PG.cc: loop invariant code motion (`pr#12720 <https://github.com/ceph/ceph/pull/12720>`_, Li Wang)
-* pybind: better error msg (`pr#14497 <https://github.com/ceph/ceph/pull/14497>`_, Kefu Chai)
-* pybind: fix open flags calculation (`issue#19890 <http://tracker.ceph.com/issues/19890>`_, `pr#15018 <https://github.com/ceph/ceph/pull/15018>`_, "Yan, Zheng")
-* qa: qa/added overrides (`pr#14917 <https://github.com/ceph/ceph/pull/14917>`_, Yuri Weinstein)
-* qa: qa/suite: replace reference to fs/xfs.yaml (`pr#14756 <https://github.com/ceph/ceph/pull/14756>`_, Yehuda Sadeh)
-* qa: qa/suites/rados/singleton-bluestore: concat settings (`pr#14884 <https://github.com/ceph/ceph/pull/14884>`_, Kefu Chai)
-* rbd: cls_rbd: default initialize snapshot namespace for legacy clients (`issue#19413 <http://tracker.ceph.com/issues/19413>`_, `pr#14903 <https://github.com/ceph/ceph/pull/14903>`_, Jason Dillaman)
-* rbd: common/bit_vector: utilize deep-copy during data decode (`issue#19863 <http://tracker.ceph.com/issues/19863>`_, `pr#15017 <https://github.com/ceph/ceph/pull/15017>`_, Jason Dillaman)
-* rbd: import needs to sanity check auto-generated image name (`issue#19128 <http://tracker.ceph.com/issues/19128>`_, `pr#14754 <https://github.com/ceph/ceph/pull/14754>`_, Mykola Golub)
-* rbd: info command should indicate if parent is in trash (`pr#14875 <https://github.com/ceph/ceph/pull/14875>`_, Jason Dillaman)
-* rbd-mirror: ensure missing images are re-synced when detected (`issue#19811 <http://tracker.ceph.com/issues/19811>`_, `pr#14945 <https://github.com/ceph/ceph/pull/14945>`_, Jason Dillaman)
-* rbd-mirror: failover and failback of unmodified image results in split-brain (`issue#19858 <http://tracker.ceph.com/issues/19858>`_, `pr#14963 <https://github.com/ceph/ceph/pull/14963>`_, Jason Dillaman)
-* rbd-mirror: image deletions should be handled by assigned instance (`pr#14832 <https://github.com/ceph/ceph/pull/14832>`_, Jason Dillaman)
-* rbd-mirror: remove tracking of image names from pool watcher (`pr#14712 <https://github.com/ceph/ceph/pull/14712>`_, Jason Dillaman)
-* rbd-mirror: resolve admin socket path names collision (`issue#19907 <http://tracker.ceph.com/issues/19907>`_, `pr#15048 <https://github.com/ceph/ceph/pull/15048>`_, Mykola Golub)
-* rbd-nbd: relax size check for newer kernel versions (`issue#19871 <http://tracker.ceph.com/issues/19871>`_, `pr#14976 <https://github.com/ceph/ceph/pull/14976>`_, Mykola Golub)
-* rbd: rbd/bench: add notes of default values, it's easy to use (`pr#14762 <https://github.com/ceph/ceph/pull/14762>`_, Zheng Yin)
-* rbd: rbd, librbd: migrate atomic_t to std::atomic (`pr#14656 <https://github.com/ceph/ceph/pull/14656>`_, Jesse Williamson)
-* rbd: rbd-mirror A/A: proxy InstanceReplayer APIs via InstanceWatcher RPC (`issue#18787 <http://tracker.ceph.com/issues/18787>`_, `pr#13978 <https://github.com/ceph/ceph/pull/13978>`_, Mykola Golub)
-* rbd: recognize exclusive option (`pr#14785 <https://github.com/ceph/ceph/pull/14785>`_, Ilya Dryomov)
-* rbd: removed spurious error message from mirror pool commands (`pr#14935 <https://github.com/ceph/ceph/pull/14935>`_, Jason Dillaman)
-* rbd: stop indefinite thread waiting in krbd udev handling (`issue#17195 <http://tracker.ceph.com/issues/17195>`_, `pr#14051 <https://github.com/ceph/ceph/pull/14051>`_, Spandan Kumar Sahu)
-* rbd,tests: qa: krbd write-after-checksum tests (`pr#14836 <https://github.com/ceph/ceph/pull/14836>`_, Ilya Dryomov)
-* rbd,tests: qa/workunits/rbd: increased trash deferment period (`pr#14846 <https://github.com/ceph/ceph/pull/14846>`_, Jason Dillaman)
-* rbd,tests: qa/workunits: switch to OpenStack Ocata release for RBD testing (`pr#14465 <https://github.com/ceph/ceph/pull/14465>`_, Jason Dillaman)
-* rbd,tests: test/librbd/test_librbd.cc: set \*features even if RBD_FEATURES is unset (`issue#19865 <http://tracker.ceph.com/issues/19865>`_, `pr#14965 <https://github.com/ceph/ceph/pull/14965>`_, Dan Mick)
-* rbd,tests: test/librbd/test_notify.py: don't disable feature in slave (`issue#19716 <http://tracker.ceph.com/issues/19716>`_, `pr#14751 <https://github.com/ceph/ceph/pull/14751>`_, Mykola Golub)
-* rbd,tests: test/rbd_mirror: race in TestMockLeaderWatcher.AcquireError (`issue#19405 <http://tracker.ceph.com/issues/19405>`_, `pr#14741 <https://github.com/ceph/ceph/pull/14741>`_, Mykola Golub)
-* rbd,tests: test: remove hard-coded image name from RBD metadata test (`issue#19798 <http://tracker.ceph.com/issues/19798>`_, `pr#14848 <https://github.com/ceph/ceph/pull/14848>`_, Jason Dillaman)
-* rdma: msg/async/rdma: add inqueue rx chunks perf counter (`pr#14782 <https://github.com/ceph/ceph/pull/14782>`_, Haomai Wang)
-* rgw: add bucket size limit check to radosgw-admin (`issue#17925 <http://tracker.ceph.com/issues/17925>`_, `pr#11796 <https://github.com/ceph/ceph/pull/11796>`_, Matt Benjamin)
-* rgw: add 'state==SyncState::IncrementalSync' condition when add item … (`pr#14552 <https://github.com/ceph/ceph/pull/14552>`_, Shasha Lu)
-* rgw: add support container and object levels of swift bulkupload (`pr#14775 <https://github.com/ceph/ceph/pull/14775>`_, Jing Wenjun)
-* rgw: add support for FormPost of Swift API (`issue#17273 <http://tracker.ceph.com/issues/17273>`_, `pr#11179 <https://github.com/ceph/ceph/pull/11179>`_, Radoslaw Zarzynski, Orit Wasserman)
-* rgw: civetweb don't go past the array index while calling mg_start (`issue#19749 <http://tracker.ceph.com/issues/19749>`_, `pr#14750 <https://github.com/ceph/ceph/pull/14750>`_, Abhishek Lekshmanan, Jesse Williamson)
-* rgw: clean unuse code in cls_statelog_check_state (`pr#10260 <https://github.com/ceph/ceph/pull/10260>`_, weiqiaomiao)
-* rgw: cleanup: fix variable name in RGWRados::create_pool() declaration (`pr#14547 <https://github.com/ceph/ceph/pull/14547>`_, Nathan Cutler)
-* rgw: cleanup lc continuation (`pr#14906 <https://github.com/ceph/ceph/pull/14906>`_, Jiaying Ren)
-* rgw: cls/rgw: list_plain_entries() stops before bi_log entries (`issue#19876 <http://tracker.ceph.com/issues/19876>`_, `pr#14981 <https://github.com/ceph/ceph/pull/14981>`_, Casey Bodley)
-* rgw: custom user data header (`issue#19644 <http://tracker.ceph.com/issues/19644>`_, `pr#14592 <https://github.com/ceph/ceph/pull/14592>`_, Pavan Rallabhandi)
-* rgw: deduplicate variants of rgw_make_bucket_entry_name(). (`pr#14299 <https://github.com/ceph/ceph/pull/14299>`_, Radoslaw Zarzynski)
-* rgw: don't do unneccesary write if buffer with zero length (`pr#14925 <https://github.com/ceph/ceph/pull/14925>`_, fang yuxiang)
-* rgw: dont spawn error_repo until lease is acquired (`issue#19446 <http://tracker.ceph.com/issues/19446>`_, `pr#14714 <https://github.com/ceph/ceph/pull/14714>`_, Casey Bodley)
-* rgw: drop unused param "bucket" from select_bucket_placement (`pr#14390 <https://github.com/ceph/ceph/pull/14390>`_, Shasha Lu)
-* rgw: drop unused port var (`pr#14412 <https://github.com/ceph/ceph/pull/14412>`_, Jiaying Ren)
-* rgw: fix broken /crossdomain.xml, /info and /healthcheck of Swift API. (`issue#19520 <http://tracker.ceph.com/issues/19520>`_, `pr#14373 <https://github.com/ceph/ceph/pull/14373>`_, Radoslaw Zarzynski)
-* rgw: fix forward request for bulkupload to be applied in multisite (`issue#19645 <http://tracker.ceph.com/issues/19645>`_, `pr#14601 <https://github.com/ceph/ceph/pull/14601>`_, Jing Wenjun)
-* rgw: fix handling of --remote in radosgw-admin period commands (`issue#19554 <http://tracker.ceph.com/issues/19554>`_, `pr#14407 <https://github.com/ceph/ceph/pull/14407>`_, Casey Bodley)
-* rgw: fix RadosGW hang during multi-chunk upload of AWSv4. (`issue#19754 <http://tracker.ceph.com/issues/19754>`_, `pr#14770 <https://github.com/ceph/ceph/pull/14770>`_, Radoslaw Zarzynski)
-* rgw: migrate atomic_t to std::atomic<> (ebirah) (`pr#14839 <https://github.com/ceph/ceph/pull/14839>`_, Jesse Williamson)
-* rgw: radosgw-admin: warn that 'realm rename' does not update other clusters (`issue#19746 <http://tracker.ceph.com/issues/19746>`_, `pr#14722 <https://github.com/ceph/ceph/pull/14722>`_, Casey Bodley)
-* rgw: rgw_file: cleanup virtual keyword on derived functions (`pr#14908 <https://github.com/ceph/ceph/pull/14908>`_, Gui Hecheng)
-* rgw: rgw_ldap: log the ldap err in case of bind failure (`pr#14781 <https://github.com/ceph/ceph/pull/14781>`_, Abhishek Lekshmanan)
-* rgw: rgw multisite: automated mdlog trimming (`pr#13111 <https://github.com/ceph/ceph/pull/13111>`_, Casey Bodley)
-* rgw: rgw multisite: fixes for meta sync across periods (`issue#18639 <http://tracker.ceph.com/issues/18639>`_, `pr#13070 <https://github.com/ceph/ceph/pull/13070>`_, Casey Bodley)
-* rgw: rgw multisite: remove the redundant post in OPT_ZONEGROUP_MODIFY (`pr#14359 <https://github.com/ceph/ceph/pull/14359>`_, Jing Wenjun)
-* rgw: RGWPeriodPusher spawns http thread before cr thread (`issue#19834 <http://tracker.ceph.com/issues/19834>`_, `pr#14936 <https://github.com/ceph/ceph/pull/14936>`_, Casey Bodley)
-* rgw: rgw_rados drop deprecated global var (`pr#14411 <https://github.com/ceph/ceph/pull/14411>`_, Jiaying Ren)
-* rgw: should delete in_stream_req if conn->get_obj(...) return not zero value (`pr#9950 <https://github.com/ceph/ceph/pull/9950>`_, weiqiaomiao)
-* rgw: swift: ability to update swift read and write acls separately. (`issue#19289 <http://tracker.ceph.com/issues/19289>`_, `pr#14499 <https://github.com/ceph/ceph/pull/14499>`_, Marcus Watts)
-* rgw: swift: disable revocation thread if sleep == 0 (`issue#19499 <http://tracker.ceph.com/issues/19499>`_, `issue#9493 <http://tracker.ceph.com/issues/9493>`_, `pr#14501 <https://github.com/ceph/ceph/pull/14501>`_, Marcus Watts)
-* rgw,tests: qa/rgw: add cluster name to path when s3tests scans rgw log (`pr#14845 <https://github.com/ceph/ceph/pull/14845>`_, Casey Bodley)
-* rgw,tests: qa/rgw: don't scan radosgw logs for encryption keys on jewel upgrade test (`pr#14697 <https://github.com/ceph/ceph/pull/14697>`_, Casey Bodley)
-* rgw,tests: qa/rgw: fix assertions in radosgw_admin task (`pr#14842 <https://github.com/ceph/ceph/pull/14842>`_, Casey Bodley)
-* rgw,tests: test/rgw: fixes for test_multi_period_incremental_sync() (`pr#13067 <https://github.com/ceph/ceph/pull/13067>`_, Casey Bodley)
-* rgw,tests: test/rgw: fix for empty lists as default arguments (`pr#14816 <https://github.com/ceph/ceph/pull/14816>`_, Casey Bodley)
-* rgw: update Beast for streaming reads in asio frontend (`pr#14273 <https://github.com/ceph/ceph/pull/14273>`_, Casey Bodley)
-* rgw: using the same bucket num_shards as master zg when create bucket in secondary zg (`issue#19745 <http://tracker.ceph.com/issues/19745>`_, `pr#14388 <https://github.com/ceph/ceph/pull/14388>`_, Shasha Lu)
-* rgw: when create_bucket use the same num_shards with info.num_shards (`issue#19745 <http://tracker.ceph.com/issues/19745>`_, `pr#15010 <https://github.com/ceph/ceph/pull/15010>`_, Shasha Lu)
-* tests: ceph_test_rados_api_tier: tolerate ENOENT from 'pg scrub' (`pr#14807 <https://github.com/ceph/ceph/pull/14807>`_, Sage Weil)
-* tests: cephtool/test.sh error on full tests (`issue#19698 <http://tracker.ceph.com/issues/19698>`_, `pr#14647 <https://github.com/ceph/ceph/pull/14647>`_, Willem Jan Withagen, David Zafman)
-* tests: Don't dump core when using EXPECT_DEATH (`pr#14821 <https://github.com/ceph/ceph/pull/14821>`_, Kefu Chai, Brad Hubbard)
-* tests: fio_ceph_objectstore: fixes improper write request data lifetime (`pr#14338 <https://github.com/ceph/ceph/pull/14338>`_, Adam Kupczyk)
-* tests: fix broken links in upgrade/hammer-jewel-x/stress-split (`issue#19793 <http://tracker.ceph.com/issues/19793>`_, `pr#14831 <https://github.com/ceph/ceph/pull/14831>`_, Nathan Cutler)
-* tests: include/denc: support ENCODE_DUMP (`pr#14962 <https://github.com/ceph/ceph/pull/14962>`_, Sage Weil)
-* tests: libradosstriper: do not assign garbage to returned value (`pr#15009 <https://github.com/ceph/ceph/pull/15009>`_, Kefu Chai)
-* tests: qa/erasure-code: override min_size to 2 (`issue#19770 <http://tracker.ceph.com/issues/19770>`_, `pr#14872 <https://github.com/ceph/ceph/pull/14872>`_, Kefu Chai)
-* tests: qa/suites/jewel-x/point-to-point: don't scane for keys on second s3tests either (`pr#14788 <https://github.com/ceph/ceph/pull/14788>`_, Sage Weil)
-* tests: qa/suites: Reduce fs combination tests for smoke, use bluestore (`pr#14854 <https://github.com/ceph/ceph/pull/14854>`_, Vasu Kulkarni)
-* tests: qa/suites: Revert "qa/suites: add mon-reweight-min-pgs-per-osd = 4" (`pr#14584 <https://github.com/ceph/ceph/pull/14584>`_, Kefu Chai)
-* tests: qa/suites/upgrade/jewel-x: add mgr.x role (`pr#14689 <https://github.com/ceph/ceph/pull/14689>`_, Sage Weil)
-* tests: qa/suites/upgrade/kraken-x: misc fixes (`pr#14887 <https://github.com/ceph/ceph/pull/14887>`_, Sage Weil)
-* tests: qa/tasks/ceph_manager: always fix pgp_num when done with thrashosd task (`issue#19771 <http://tracker.ceph.com/issues/19771>`_, `pr#14931 <https://github.com/ceph/ceph/pull/14931>`_, Kefu Chai)
-* tests: qa/tasks: few fixes to get ceph-deploy 1node to working state (`pr#14400 <https://github.com/ceph/ceph/pull/14400>`_, Vasu Kulkarni)
-* tests: rados: move cephtool.yaml to new singleton/bluestore subsuite (`issue#19797 <http://tracker.ceph.com/issues/19797>`_, `pr#14847 <https://github.com/ceph/ceph/pull/14847>`_, Nathan Cutler)
-* tests: set -x in suites/iozone.sh workunit (`issue#19740 <http://tracker.ceph.com/issues/19740>`_, `pr#14713 <https://github.com/ceph/ceph/pull/14713>`_, Nathan Cutler)
-* tests: test/compressor: disable isal tests if not available (`pr#14929 <https://github.com/ceph/ceph/pull/14929>`_, Kefu Chai)
-* tests: test: c_read_operations.cc: silence warning from -Wsign-compare (`pr#14888 <https://github.com/ceph/ceph/pull/14888>`_, Jos Collin)
-* tests: test/fio_ceph_objectstore: fix fio plugin build failure by engine_data (`pr#15044 <https://github.com/ceph/ceph/pull/15044>`_, lisali)
-* tests: test: fixing assert that creates warning: comparison between signed and unsigned integer expressions (`pr#14794 <https://github.com/ceph/ceph/pull/14794>`_, Jos Collin)
-* tests: test/fsx: Remove the dead code associated with aio backend (`pr#14905 <https://github.com/ceph/ceph/pull/14905>`_, Zhou Zhengping)
-* tests: test/objectstore/: Check put_ref return value (`pr#15007 <https://github.com/ceph/ceph/pull/15007>`_, zhanglei)
-* tests: test/osd/osd-dup.sh: lower wb fd throttle limits (`pr#14984 <https://github.com/ceph/ceph/pull/14984>`_, Dan Mick)
-* tests: test: use 7130 for crush-classes.sh (`pr#14783 <https://github.com/ceph/ceph/pull/14783>`_, Loic Dachary)
-* tests: test: warning: comparison between signed and unsigned integer expressions (`pr#14705 <https://github.com/ceph/ceph/pull/14705>`_, Jos Collin)
-* tests,tools: test: kill warnings (`pr#14892 <https://github.com/ceph/ceph/pull/14892>`_, Kefu Chai)
-* tools: change compare_exchange_weak to compare_exchange_strong (`pr#15030 <https://github.com/ceph/ceph/pull/15030>`_, Jesse Williamson)
-* tools: rados: check for negative return value of rados_create_with_context() as its comment put (`pr#10893 <https://github.com/ceph/ceph/pull/10893>`_, zhang.zezhu)
-* tools: rados: out json 'df' values as numbers, not strings (`issue#15546 <http://tracker.ceph.com/issues/15546>`_, `pr#14644 <https://github.com/ceph/ceph/pull/14644>`_, Sage Weil)
-
-
-v12.0.2 Luminous (dev)
-======================
-This is the third development checkpoint release of Luminous, the next long term
-stable release.
-
-
-Major changes from v12.0.1
---------------------------
-
-Notable Changes
----------------
-* bluestore: bluestore/NVMEDEVICE: update SPDK to version 17.03 (`pr#14585 <https://github.com/ceph/ceph/pull/14585>`_, optimistyzy)
-* bluestore: bluestore, NVMeDevice: use task' own lock for (random) read (`pr#14094 <https://github.com/ceph/ceph/pull/14094>`_, optimistyzy)
-* bluestore: common/config: set rocksdb_cache_size to OPT_U64 (`pr#13995 <https://github.com/ceph/ceph/pull/13995>`_, liuhongtong)
-* bluestore: os/bluestore: avoid nullptr in bluestore_extent_ref_map_t::bound_encode (`pr#14073 <https://github.com/ceph/ceph/pull/14073>`_, Sage Weil)
-* bluestore: os/bluestore: clean up flush logic (`pr#14162 <https://github.com/ceph/ceph/pull/14162>`_, Jianpeng Ma)
-* bluestore: os/bluestore: clean up Invalid return value judgment (`pr#14219 <https://github.com/ceph/ceph/pull/14219>`_, shiqi)
-* bluestore: os/bluestore: fix bug for calc extent_avg in reshard function (`pr#13931 <https://github.com/ceph/ceph/pull/13931>`_, wangzhengyong)
-* bluestore: os/bluestore: fix bug in _open_alloc() (`pr#13577 <https://github.com/ceph/ceph/pull/13577>`_, yonghengdexin735)
-* bluestore: os/bluestore: fix deferred writes vs collection split race (`issue#19379 <http://tracker.ceph.com/issues/19379>`_, `pr#14157 <https://github.com/ceph/ceph/pull/14157>`_, Sage Weil)
-* bluestore: os/bluestore: fix narrow osr->flush() race (`pr#14489 <https://github.com/ceph/ceph/pull/14489>`_, Sage Weil)
-* bluestore: os/bluestore: fix perf counters (`pr#13965 <https://github.com/ceph/ceph/pull/13965>`_, Sage Weil)
-* bluestore: os/bluestore: fsck: verify blob.unused field (`pr#14316 <https://github.com/ceph/ceph/pull/14316>`_, Sage Weil)
-* bluestore: os/bluestore: implement collect_metadata (`pr#14115 <https://github.com/ceph/ceph/pull/14115>`_, Sage Weil)
-* bluestore: os/bluestore: make live changes for BlueStore throttle config work like initial config (`pr#14225 <https://github.com/ceph/ceph/pull/14225>`_, J. Eric Ivancich)
-* bluestore: os/bluestore: misc fixes (`pr#14333 <https://github.com/ceph/ceph/pull/14333>`_, Sage Weil)
-* bluestore: os/bluestore/NVMEDevice: Add multiple thread support for SPDK I/O thread (`pr#14420 <https://github.com/ceph/ceph/pull/14420>`_, Ziye Yang)
-* bluestore: os/bluestore/NVMEDevice: fix the compilation issue for collect_metadata (`pr#14455 <https://github.com/ceph/ceph/pull/14455>`_, optimistyzy)
-* bluestore,performance: kv/RocksDBStore: implement rm_range_keys operator interface and test (`pr#13855 <https://github.com/ceph/ceph/pull/13855>`_, Haomai Wang)
-* bluestore,performance: os/bluestore: avoid the VTABLE-related burden in BitMapAllocator's hotspot (`pr#14348 <https://github.com/ceph/ceph/pull/14348>`_, Radoslaw Zarzynski)
-* bluestore,performance: os/bluestore/BlueFS: optimize get_allocated (`pr#14121 <https://github.com/ceph/ceph/pull/14121>`_, Jianpeng Ma)
-* bluestore,performance: os/bluestore: memory and dereference clean-up in the BitAllocator (`pr#13811 <https://github.com/ceph/ceph/pull/13811>`_, Radoslaw Zarzynski)
-* bluestore,performance: os/bluestore: optimize blob usage when doing appends/overwrites (`pr#13337 <https://github.com/ceph/ceph/pull/13337>`_, Igor Fedotov)
-* bluestore,performance: os/bluestore: refactor small write handling to reuse blob more effect… (`pr#14399 <https://github.com/ceph/ceph/pull/14399>`_, Igor Fedotov)
-* bluestore,performance: os/bluestore: tune deferred_batch_ops separately for hdd and ssd (`pr#14435 <https://github.com/ceph/ceph/pull/14435>`_, Sage Weil)
-* bluestore,performance: os/bluestore: unify throttling model (`issue#19542 <http://tracker.ceph.com/issues/19542>`_, `pr#14306 <https://github.com/ceph/ceph/pull/14306>`_, Sage Weil)
-* bluestore,tests: test/objectstore/store_test_fixture.cc: Exclude bluestore code if required. (`pr#14085 <https://github.com/ceph/ceph/pull/14085>`_, Willem Jan Withagen)
-* bluestore,tests: test/store_test: fix bluestore test cases disablement (`pr#14228 <https://github.com/ceph/ceph/pull/14228>`_, Igor Fedotov)
-* bluestore,tests: test/unittest_bluefs: check whether add_block_device success (`pr#14013 <https://github.com/ceph/ceph/pull/14013>`_, shiqi)
-* bluestore,tools: ceph-bluestore-tool: rename from bluefs-tool; improve usage (`pr#14258 <https://github.com/ceph/ceph/pull/14258>`_, Sage Weil)
-* build/ops: add 12.0.1 release tag in master (`pr#14690 <https://github.com/ceph/ceph/pull/14690>`_, Jenkins Build Slave User)
-* build/ops: arch: fix build on PowerPC with FreeBSD (`pr#14378 <https://github.com/ceph/ceph/pull/14378>`_, Andrew Solomon)
-* build/ops: arch: fix cmake's ARM CRC intrinsics test to handle duplicitous gcc 4.8.5 (`issue#19386 <http://tracker.ceph.com/issues/19386>`_, `pr#14132 <https://github.com/ceph/ceph/pull/14132>`_, Dan Mick)
-* build/ops: build: Add Virtuozzo Linux support (`pr#14301 <https://github.com/ceph/ceph/pull/14301>`_, Andrey Parfenov)
-* build/ops,core: build: let FreeBSD build ceph-fuse (`pr#14282 <https://github.com/ceph/ceph/pull/14282>`_, Willem Jan Withagen)
-* build/ops,core: os: allow offline conversion of filestore -> bluestore (or anything else) (`pr#14210 <https://github.com/ceph/ceph/pull/14210>`_, Sage Weil)
-* build/ops: debian: package ceph.logroate properly (`issue#19390 <http://tracker.ceph.com/issues/19390>`_, `pr#14600 <https://github.com/ceph/ceph/pull/14600>`_, Kefu Chai)
-* build/ops: debian/rules, ceph.spec.in: invoke cmake with -DBOOST_J (`pr#14114 <https://github.com/ceph/ceph/pull/14114>`_, Dan Mick)
-* build/ops: gitignore: Ignore rejects by patch (`pr#14405 <https://github.com/ceph/ceph/pull/14405>`_, Willem Jan Withagen)
-* build/ops,performance: crc32c: Add crc32c function optimized for ppc architecture (`pr#13909 <https://github.com/ceph/ceph/pull/13909>`_, Andrew Solomon)
-* build/ops: rocksdb: sync with upstream (`pr#14456 <https://github.com/ceph/ceph/pull/14456>`_, Kefu Chai)
-* build/ops: script: drop the -x arg for credits script (`pr#14296 <https://github.com/ceph/ceph/pull/14296>`_, Abhishek Lekshmanan)
-* build/ops: systemd/ceph-disk: make it possible to customize timeout (`issue#18740 <http://tracker.ceph.com/issues/18740>`_, `pr#13197 <https://github.com/ceph/ceph/pull/13197>`_, Alexey Sheplyakov)
-* build/ops: systemd: remove ceph-create-keys from presets (`pr#14226 <https://github.com/ceph/ceph/pull/14226>`_, Sébastien Han)
-* build/ops: Tested-by: Andrew Solomon <asolomon@us.ibm.com> (`pr#14289 <https://github.com/ceph/ceph/pull/14289>`_, Kefu Chai)
-* build/ops,tests: test/osd/CMakeLists.txt: osd-dup.sh require BlueStore/AIO (`pr#14387 <https://github.com/ceph/ceph/pull/14387>`_, Willem Jan Withagen)
-* build/ops: vstart: do not start mgr if not start_all (`pr#13974 <https://github.com/ceph/ceph/pull/13974>`_, Kefu Chai)
-* cephfs: client/Client.cc: after reset session from MDS - reconnect (`issue#18757 <http://tracker.ceph.com/issues/18757>`_, `pr#13522 <https://github.com/ceph/ceph/pull/13522>`_, Henrik Korkuc)
-* cephfs: client: drop cap snaps when auth mds session gets closed (`issue#19022 <http://tracker.ceph.com/issues/19022>`_, `pr#13579 <https://github.com/ceph/ceph/pull/13579>`_, "Yan, Zheng")
-* cephfs: client: refine fsync/close writeback error handling (`pr#14589 <https://github.com/ceph/ceph/pull/14589>`_, John Spray)
-* cephfs: client: specify inode in get_caps log message (`pr#13966 <https://github.com/ceph/ceph/pull/13966>`_, John Spray)
-* cephfs,core: Add test for is_hacky_ecoverwrites in cephfs pool checks (`pr#13466 <https://github.com/ceph/ceph/pull/13466>`_, John Spray)
-* cephfs: fix mount point break off problem after mds switch occured (`issue#19437 <http://tracker.ceph.com/issues/19437>`_, `pr#14267 <https://github.com/ceph/ceph/pull/14267>`_, Guan yunfei)
-* cephfs: fix write_buf's _len overflow problem (`issue#19033 <http://tracker.ceph.com/issues/19033>`_, `pr#13587 <https://github.com/ceph/ceph/pull/13587>`_, Yang Honggang)
-* cephfs: Mitigation for #16842, validate sessions after load (`issue#16842 <http://tracker.ceph.com/issues/16842>`_, `pr#14164 <https://github.com/ceph/ceph/pull/14164>`_, John Spray)
-* cephfs: Permit recovering metadata into a new RADOS pool (`issue#15069 <http://tracker.ceph.com/issues/15069>`_, `issue#15068 <http://tracker.ceph.com/issues/15068>`_, `pr#10636 <https://github.com/ceph/ceph/pull/10636>`_, Douglas Fuller)
-* cephfs: qa: whitelist new fullness messages in fs tests (`issue#19253 <http://tracker.ceph.com/issues/19253>`_, `pr#13915 <https://github.com/ceph/ceph/pull/13915>`_, John Spray)
-* cephfs,tests: qa: fix test_standby_for_invalid_fscid with vstart_runner (`pr#14272 <https://github.com/ceph/ceph/pull/14272>`_, John Spray)
-* cephfs,tests: qa, mds: add checks for fragmentation, and enable it by default (`issue#16523 <http://tracker.ceph.com/issues/16523>`_, `pr#13862 <https://github.com/ceph/ceph/pull/13862>`_, john Spray, John Spray)
-* cephfs,tests: qa: re-enable ENOSPC tests for kclient (`issue#19550 <http://tracker.ceph.com/issues/19550>`_, `pr#14396 <https://github.com/ceph/ceph/pull/14396>`_, John Spray)
-* cephfs,tests: qa/vstart_runner: amend ps invocation (`pr#14254 <https://github.com/ceph/ceph/pull/14254>`_, Ilya Dryomov)
-* cephfs,tests: qa: whitelist another fullness log message (`issue#19253 <http://tracker.ceph.com/issues/19253>`_, `pr#14221 <https://github.com/ceph/ceph/pull/14221>`_, John Spray)
-* cephfs: tools/cephfs: set dir_layout when injecting inodes (`issue#19406 <http://tracker.ceph.com/issues/19406>`_, `pr#14234 <https://github.com/ceph/ceph/pull/14234>`_, John Spray)
-* cleanup: misc: Warning Elimination (`pr#14439 <https://github.com/ceph/ceph/pull/14439>`_, Adam C. Emerson)
-* cmake: Add simple recursive ctags target for Ceph source only (`pr#14334 <https://github.com/ceph/ceph/pull/14334>`_, Kefu Chai, Dan Mick)
-* cmake: build tracepoint libraries for vstart target (`pr#14354 <https://github.com/ceph/ceph/pull/14354>`_, Mohamad Gebai)
-* cmake: do not try to add submodule to exclude list if .git is not around (`pr#14495 <https://github.com/ceph/ceph/pull/14495>`_, Kefu Chai)
-* cmake: support optional argument for overriding default ctag excludes (`pr#14379 <https://github.com/ceph/ceph/pull/14379>`_, Kefu Chai)
-* common: common/ceph_context: fewer warnings about experimental features (`pr#14170 <https://github.com/ceph/ceph/pull/14170>`_, Sage Weil)
-* common: common/config: eliminate config_t::set_val unsafe option (`issue#19106 <http://tracker.ceph.com/issues/19106>`_, `pr#13687 <https://github.com/ceph/ceph/pull/13687>`_, liuchang0812)
-* common: common/perf_counters: fix race condition with atomic variables (`pr#14227 <https://github.com/ceph/ceph/pull/14227>`_, J. Eric Ivancich)
-* common,core,tests: Wip cppcheck errors (`pr#14446 <https://github.com/ceph/ceph/pull/14446>`_, Brad Hubbard)
-* common: do not print error when asok is closed (`pr#14022 <https://github.com/ceph/ceph/pull/14022>`_, Patrick Donnelly)
-* common: Fix heap buffer overflow in do_request (`issue#19393 <http://tracker.ceph.com/issues/19393>`_, `pr#14173 <https://github.com/ceph/ceph/pull/14173>`_, Brad Hubbard)
-* common: fix segfault in public IPv6 addr picking (`issue#19371 <http://tracker.ceph.com/issues/19371>`_, `pr#14124 <https://github.com/ceph/ceph/pull/14124>`_, Fabian Grünbichler)
-* common: Implements simple_spin_t in terms of std::atomic_flag. (`pr#14370 <https://github.com/ceph/ceph/pull/14370>`_, Jesse Williamson)
-* common: include/denc: remove nullptr runtime magic boundedness check (`pr#13889 <https://github.com/ceph/ceph/pull/13889>`_, Sage Weil)
-* common: Make spinlock delay more conventional (`pr#14248 <https://github.com/ceph/ceph/pull/14248>`_, Brad Hubbard)
-* common: messages: fix return type name of MOSDMap (`pr#14382 <https://github.com/ceph/ceph/pull/14382>`_, Leo Zhang)
-* common: msg/async/rdma: Add fork safe on RDMA (`pr#13740 <https://github.com/ceph/ceph/pull/13740>`_, Sarit Zubakov)
-* common: msg/async/rdma: Update fix broken compilation (`pr#13940 <https://github.com/ceph/ceph/pull/13940>`_, Sarit Zubakov)
-* common: msg/SimpleMessenger: error out misplace in set_socket_options (`pr#13961 <https://github.com/ceph/ceph/pull/13961>`_, wangzhengyong)
-* common: .organizationmap: Updated authors (`pr#14360 <https://github.com/ceph/ceph/pull/14360>`_, Jos Collin)
-* common: rados: more info added to pool deletion error (`issue#19400 <http://tracker.ceph.com/issues/19400>`_, `pr#14235 <https://github.com/ceph/ceph/pull/14235>`_, Vedant Nanda)
-* common,rbd,rgw: common/escape: do not escape / in json (`pr#14130 <https://github.com/ceph/ceph/pull/14130>`_, Sage Weil)
-* common,rdma: msg/async/rdma: Introduce RDMAConnMgr + Debug prints (`pr#14201 <https://github.com/ceph/ceph/pull/14201>`_, Amir Vadai)
-* common,rdma: msg/async/rdma: Move resource handling to Device (`pr#14088 <https://github.com/ceph/ceph/pull/14088>`_, Sarit Zubakov, Amir Vadai)
-* common,rdma: msg/async/rdma: RDMA-CM Initialize device on first connect (`pr#14179 <https://github.com/ceph/ceph/pull/14179>`_, Amir Vadai)
-* common: remove useless parameter (`pr#14096 <https://github.com/ceph/ceph/pull/14096>`_, baiyanchun)
-* common: support s390 and unknown architectures in spin-wait loop (`issue#19492 <http://tracker.ceph.com/issues/19492>`_, `pr#14337 <https://github.com/ceph/ceph/pull/14337>`_, Nathan Cutler)
-* common: Tested-by: Andrew Solomon <asolomon@us.ibm.com> (`pr#14310 <https://github.com/ceph/ceph/pull/14310>`_, Kefu Chai)
-* common: tracing: fix segv (`issue#18576 <http://tracker.ceph.com/issues/18576>`_, `pr#14304 <https://github.com/ceph/ceph/pull/14304>`_, Anjaneya Chagam)
-* core: ceph-disk: Adding retry loop in get_partition_dev() (`pr#14275 <https://github.com/ceph/ceph/pull/14275>`_, Erwan Velu)
-* core: ceph-disk/ceph_disk/main.py: fix calling of the bsdrc init scripts (`pr#14476 <https://github.com/ceph/ceph/pull/14476>`_, Willem Jan Withagen)
-* core: ceph-disk: enable directory backed OSD at boot time (`issue#19628 <http://tracker.ceph.com/issues/19628>`_, `pr#14546 <https://github.com/ceph/ceph/pull/14546>`_, Loic Dachary)
-* core: ceph-disk,osd: add support for crush device classes (`issue#19513 <http://tracker.ceph.com/issues/19513>`_, `pr#14436 <https://github.com/ceph/ceph/pull/14436>`_, Loic Dachary)
-* core: ceph-disk: Populate mount options when running "list" (`issue#17331 <http://tracker.ceph.com/issues/17331>`_, `pr#14293 <https://github.com/ceph/ceph/pull/14293>`_, Brad Hubbard)
-* core: ceph-disk: Write 10M to all partitions before zapping (`issue#18962 <http://tracker.ceph.com/issues/18962>`_, `pr#13766 <https://github.com/ceph/ceph/pull/13766>`_, Wido den Hollander)
-* core: client/SyntheticClient.cc: Fix warning in random_walk (`issue#19445 <http://tracker.ceph.com/issues/19445>`_, `pr#14308 <https://github.com/ceph/ceph/pull/14308>`_, Brad Hubbard)
-* core: cls/timeindex: clean up cls_timeindex_client.h|cc (`pr#13987 <https://github.com/ceph/ceph/pull/13987>`_, Shinobu Kinjo)
-* core: common/TrackedOp: allow dumping historic ops sorted by duration (`pr#14050 <https://github.com/ceph/ceph/pull/14050>`_, Piotr Dałek)
-* core: Give requested scrub work a higher priority (`issue#15789 <http://tracker.ceph.com/issues/15789>`_, `pr#14488 <https://github.com/ceph/ceph/pull/14488>`_, David Zafman)
-* core: include/denc: add {encode,decode}_nohead for denc_traits<basic_string> (`issue#18938 <http://tracker.ceph.com/issues/18938>`_, `pr#14099 <https://github.com/ceph/ceph/pull/14099>`_, Kefu Chai)
-* core,mgr,mon: mon,mgr: tag some commands for ceph-mgr (`pr#13617 <https://github.com/ceph/ceph/pull/13617>`_, Sage Weil)
-* core: misc: SCA fixes (`pr#14426 <https://github.com/ceph/ceph/pull/14426>`_, Danny Al-Gaaf)
-* core,mon: mon,osd: decouple creating pgs from pgmap (`pr#13999 <https://github.com/ceph/ceph/pull/13999>`_, Kefu Chai)
-* core: mon/OSDMonitor: osd crush set-device-class (`issue#19307 <http://tracker.ceph.com/issues/19307>`_, `pr#14039 <https://github.com/ceph/ceph/pull/14039>`_, Loic Dachary)
-* core: msg/async/AsyncConnection: keepalive objecter ping connection to avoid timeout (`pr#14009 <https://github.com/ceph/ceph/pull/14009>`_, Haomai Wang)
-* core: osdc/Objecter: respect epoch barrier in _op_submit() (`issue#19396 <http://tracker.ceph.com/issues/19396>`_, `pr#14190 <https://github.com/ceph/ceph/pull/14190>`_, Ilya Dryomov)
-* core: osd,mon: misc full fixes and cleanups (`pr#13968 <https://github.com/ceph/ceph/pull/13968>`_, David Zafman)
-* core: osd/OSDMap: hide require_*_osd and sortbitwise flags (`pr#14440 <https://github.com/ceph/ceph/pull/14440>`_, Sage Weil)
-* core: osd/PG: only correct filestore collection bits on load (`issue#19541 <http://tracker.ceph.com/issues/19541>`_, `pr#14397 <https://github.com/ceph/ceph/pull/14397>`_, Sage Weil)
-* core: osd/PG: some minor cleanups (`pr#14133 <https://github.com/ceph/ceph/pull/14133>`_, runsisi)
-* core: osd/PrimaryLogPG: do not expect FULL_TRY ops to get resent (`issue#19430 <http://tracker.ceph.com/issues/19430>`_, `pr#14255 <https://github.com/ceph/ceph/pull/14255>`_, Sage Weil)
-* core: osd/PrimaryLogPG: set return value if sparse read failed (`pr#14093 <https://github.com/ceph/ceph/pull/14093>`_, huangjun)
-* core: osd/ReplicatedBackend: clear pull source once we are done with it (`issue#19076 <http://tracker.ceph.com/issues/19076>`_, `pr#13879 <https://github.com/ceph/ceph/pull/13879>`_, Samuel Just)
-* core: os/filestore: handle error returned from write_fd() (`pr#10146 <https://github.com/ceph/ceph/pull/10146>`_, yonghengdexin735)
-* core: os/fs/FS.cc: remove the redundant code. (`pr#14362 <https://github.com/ceph/ceph/pull/14362>`_, Jianpeng Ma)
-* core: os/kstore: some error handling (`pr#13960 <https://github.com/ceph/ceph/pull/13960>`_, wangzhengyong)
-* core,performance: mon,osd: explicitly remap some pgs (`pr#13984 <https://github.com/ceph/ceph/pull/13984>`_, Sage Weil)
-* core: Prefix /proc/ with FreeBSD emulation (`pr#14290 <https://github.com/ceph/ceph/pull/14290>`_, Willem Jan Withagen)
-* core: Revert "msg/async/rdma: Debug prints for ibv_*" (`pr#14245 <https://github.com/ceph/ceph/pull/14245>`_, Kefu Chai)
-* core: test, osd: fix some coverity issues (`pr#13293 <https://github.com/ceph/ceph/pull/13293>`_, liuchang0812)
-* core,tests: ceph-disk/tests/test_main.py: FreeBSD does not do multipath (`pr#13847 <https://github.com/ceph/ceph/pull/13847>`_, Willem Jan Withagen)
-* core,tests: ceph_test_librados_api_misc: fix stupid LibRadosMiscConnectFailure.ConnectFailure test (`issue#15368 <http://tracker.ceph.com/issues/15368>`_, `pr#14261 <https://github.com/ceph/ceph/pull/14261>`_, Sage Weil)
-* core,tests: os: allow 'osd objectstore = random' to pick either filestore or bluestore (`pr#13754 <https://github.com/ceph/ceph/pull/13754>`_, Sage Weil)
-* core,tests,tools: Fixes: http://tracker.ceph.com/issues/18533 (`pr#13423 <https://github.com/ceph/ceph/pull/13423>`_, Samuel Just, David Zafman)
-* crush: bucket: crush_add_uniform_bucket_item should check for uniformity (`pr#14208 <https://github.com/ceph/ceph/pull/14208>`_, Sahid Orentino Ferdjaoui)
-* crush: builder: clean the arguments of crush_reweight* methods (`pr#14110 <https://github.com/ceph/ceph/pull/14110>`_, Sahid Orentino Ferdjaoui)
-* crush: builder: creating crush map with optimal configurations (`pr#14209 <https://github.com/ceph/ceph/pull/14209>`_, Sahid Orentino Ferdjaoui)
-* crush: only encode class info if SERVER_LUMINOUS (`issue#19361 <http://tracker.ceph.com/issues/19361>`_, `pr#14131 <https://github.com/ceph/ceph/pull/14131>`_, Sage Weil)
-* crush: weight_set and id remapping (`issue#15653 <http://tracker.ceph.com/issues/15653>`_, `pr#14486 <https://github.com/ceph/ceph/pull/14486>`_, Loic Dachary)
-* doc: add 12.0.1 release notes (`pr#14106 <https://github.com/ceph/ceph/pull/14106>`_, Abhishek Lekshmanan)
-* doc: add changelog for v10.2.7 (`pr#14441 <https://github.com/ceph/ceph/pull/14441>`_, Abhishek Lekshmanan)
-* doc: add RGW ldap auth documentation (`pr#14339 <https://github.com/ceph/ceph/pull/14339>`_, Harald Klein)
-* doc: add some undocumented options to rbd-nbd (`pr#14134 <https://github.com/ceph/ceph/pull/14134>`_, wangzhengyong)
-* doc: change osd_op_thread_timeout default value to 15 (`pr#14199 <https://github.com/ceph/ceph/pull/14199>`_, Andreas Gerstmayr)
-* doc: correct arguments for ceph tell osd.N bench (`pr#14462 <https://github.com/ceph/ceph/pull/14462>`_, Patrick Dinnen)
-* doc: correct the quota section (`issue#19397 <http://tracker.ceph.com/issues/19397>`_, `pr#14122 <https://github.com/ceph/ceph/pull/14122>`_, Chu, Hua-Rong)
-* doc: dev guide: how to run s3-tests locally against vstart (`pr#14508 <https://github.com/ceph/ceph/pull/14508>`_, Nathan Cutler, Abhishek Lekshmanan)
-* doc: doc/radosgw/s3/cpp.rst: update usage of libs3 APIs to make the examples work (`pr#10851 <https://github.com/ceph/ceph/pull/10851>`_, Weibing Zhang)
-* doc: doc/rgw: instructions for changing multisite master zone (`pr#14089 <https://github.com/ceph/ceph/pull/14089>`_, Casey Bodley)
-* doc: docs: Clarify the relationship of min_size to EC pool recovery (`pr#14419 <https://github.com/ceph/ceph/pull/14419>`_, Brad Hubbard)
-* doc: how to specify filesystem for cephfs clients (`pr#14087 <https://github.com/ceph/ceph/pull/14087>`_, John Spray)
-* doc: mailmap: shiqi affiliation (`pr#14361 <https://github.com/ceph/ceph/pull/14361>`_, shiqi)
-* doc: mention --show-mappings in crushtool manpage (`issue#19649 <http://tracker.ceph.com/issues/19649>`_, `pr#14599 <https://github.com/ceph/ceph/pull/14599>`_, Nathan Cutler, Loic Dachary)
-* doc: PendingReleaseNotes: recent cephfs changes (`pr#14196 <https://github.com/ceph/ceph/pull/14196>`_, John Spray)
-* doc: radosgw-admin: new 'global quota' commands update period config (`issue#19409 <http://tracker.ceph.com/issues/19409>`_, `pr#14252 <https://github.com/ceph/ceph/pull/14252>`_, Casey Bodley)
-* doc: README.FreeBSD: Update the status (`pr#14406 <https://github.com/ceph/ceph/pull/14406>`_, Willem Jan Withagen)
-* doc: README.md: fix build instructions inconsistent. (`pr#14555 <https://github.com/ceph/ceph/pull/14555>`_, Yao Zongyou)
-* doc: README.md: use github heading syntax to mark the headings (`pr#14591 <https://github.com/ceph/ceph/pull/14591>`_, Kefu Chai)
-* doc: release notes for v10.2.7 Jewel (`pr#14295 <https://github.com/ceph/ceph/pull/14295>`_, Abhishek Lekshmanan)
-* doc: rgw: remove mention of megabytes for quotas (`pr#14413 <https://github.com/ceph/ceph/pull/14413>`_, Hans van den Bogert)
-* doc: rgw server-side encryption and barbican (`pr#13483 <https://github.com/ceph/ceph/pull/13483>`_, Adam Kupczyk, Casey Bodley)
-* doc: script: build-doc/serve-doc fixes (`pr#14438 <https://github.com/ceph/ceph/pull/14438>`_, Abhishek Lekshmanan)
-* doc: script: ceph-release-notes: use https instead of http (`pr#14103 <https://github.com/ceph/ceph/pull/14103>`_, Kefu Chai)
-* doc: typo in hit_set_search_last_n (`pr#14108 <https://github.com/ceph/ceph/pull/14108>`_, Sven Seeberg)
-* doc: update packages mentioned by build-doc and related doc (`pr#14649 <https://github.com/ceph/ceph/pull/14649>`_, Yu Shengzuo)
-* doc: wip-doc-multisite ports downstream multisite document upstream. (`pr#14259 <https://github.com/ceph/ceph/pull/14259>`_, John Wilkins)
-* librados: set the flag CEPH_OSD_FLAG_FULL_TRY of Op in the right place. (`pr#14193 <https://github.com/ceph/ceph/pull/14193>`_, Pan Liu)
-* librbd: changed the return type of ImageRequestWQ::discard() (`issue#18511 <http://tracker.ceph.com/issues/18511>`_, `pr#14032 <https://github.com/ceph/ceph/pull/14032>`_, Jos Collin)
-* librbd: corrected resize RPC message backwards compatibility (`issue#19636 <http://tracker.ceph.com/issues/19636>`_, `pr#14615 <https://github.com/ceph/ceph/pull/14615>`_, Jason Dillaman)
-* librbd: deferred image deletion (`issue#18481 <http://tracker.ceph.com/issues/18481>`_, `pr#13105 <https://github.com/ceph/ceph/pull/13105>`_, Ricardo Dias)
-* librbd: fix rbd_metadata_list and rbd_metadata_get (`issue#19588 <http://tracker.ceph.com/issues/19588>`_, `pr#14471 <https://github.com/ceph/ceph/pull/14471>`_, Mykola Golub)
-* librbd: is_exclusive_lock_owner API should ping OSD (`issue#19287 <http://tracker.ceph.com/issues/19287>`_, `pr#14003 <https://github.com/ceph/ceph/pull/14003>`_, Jason Dillaman)
-* librbd: Notifier::notify API improvement (`pr#14072 <https://github.com/ceph/ceph/pull/14072>`_, Mykola Golub)
-* librbd: pass an uint64_t to clip_io() as the third param (`issue#18938 <http://tracker.ceph.com/issues/18938>`_, `pr#14159 <https://github.com/ceph/ceph/pull/14159>`_, Kefu Chai)
-* librbd: potential use of uninitialised value in ImageWatcher (`pr#14091 <https://github.com/ceph/ceph/pull/14091>`_, Mykola Golub)
-* librbd: random unit test failures due to shut down race (`issue#19389 <http://tracker.ceph.com/issues/19389>`_, `pr#14166 <https://github.com/ceph/ceph/pull/14166>`_, Jason Dillaman)
-* mds: bump client_reply debug to match client_req (`pr#14036 <https://github.com/ceph/ceph/pull/14036>`_, Patrick Donnelly)
-* mds: don't assert on read errors in RecoveryQueue (`issue#19282 <http://tracker.ceph.com/issues/19282>`_, `pr#14017 <https://github.com/ceph/ceph/pull/14017>`_, John Spray)
-* mds: drop partial entry and adjust write_pos when opening PurgeQueue (`issue#19450 <http://tracker.ceph.com/issues/19450>`_, `pr#14447 <https://github.com/ceph/ceph/pull/14447>`_, "Yan, Zheng")
-* mds: fix mgrc shutdown (`issue#19566 <http://tracker.ceph.com/issues/19566>`_, `pr#14505 <https://github.com/ceph/ceph/pull/14505>`_, John Spray)
-* mds: fix stray creation/removal notification (`issue#19630 <http://tracker.ceph.com/issues/19630>`_, `pr#14554 <https://github.com/ceph/ceph/pull/14554>`_, "Yan, Zheng")
-* mds: ignore ENOENT on writing backtrace (`issue#19401 <http://tracker.ceph.com/issues/19401>`_, `pr#14207 <https://github.com/ceph/ceph/pull/14207>`_, John Spray)
-* mds: include advisory `path` field in damage (`issue#18509 <http://tracker.ceph.com/issues/18509>`_, `pr#14104 <https://github.com/ceph/ceph/pull/14104>`_, John Spray)
-* mds: make C_MDSInternalNoop::complete() delete 'this' (`issue#19501 <http://tracker.ceph.com/issues/19501>`_, `pr#14347 <https://github.com/ceph/ceph/pull/14347>`_, "Yan, Zheng")
-* mds: miscellaneous multimds fixes (`issue#19022 <http://tracker.ceph.com/issues/19022>`_, `pr#13698 <https://github.com/ceph/ceph/pull/13698>`_, "Yan, Zheng")
-* mds: pretty json from `tell` commands (`pr#14105 <https://github.com/ceph/ceph/pull/14105>`_, John Spray)
-* mds: remove legacy "mds tell" command (`issue#19288 <http://tracker.ceph.com/issues/19288>`_, `pr#14015 <https://github.com/ceph/ceph/pull/14015>`_, John Spray)
-* mds: Return error message instead of asserting (`pr#14469 <https://github.com/ceph/ceph/pull/14469>`_, Brad Hubbard)
-* mds: set ceph-mds name uncond for external tools (`issue#19291 <http://tracker.ceph.com/issues/19291>`_, `pr#14021 <https://github.com/ceph/ceph/pull/14021>`_, Patrick Donnelly)
-* mds: shut down finisher before objecter (`issue#19204 <http://tracker.ceph.com/issues/19204>`_, `pr#13859 <https://github.com/ceph/ceph/pull/13859>`_, John Spray)
-* mds: use same inode count in health check as in trim (`issue#19395 <http://tracker.ceph.com/issues/19395>`_, `pr#14197 <https://github.com/ceph/ceph/pull/14197>`_, John Spray)
-* mds: warn if insufficient standbys exist (`issue#17604 <http://tracker.ceph.com/issues/17604>`_, `pr#12074 <https://github.com/ceph/ceph/pull/12074>`_, Patrick Donnelly)
-* mgr: always free allocated MgrPyModule (`issue#19590 <http://tracker.ceph.com/issues/19590>`_, `pr#14507 <https://github.com/ceph/ceph/pull/14507>`_, Kefu Chai)
-* mgr: ceph-mgr: rotate logs on sighup (`issue#19568 <http://tracker.ceph.com/issues/19568>`_, `pr#14437 <https://github.com/ceph/ceph/pull/14437>`_, Dan van der Ster)
-* mgr: fix bugs in init, beacons (`issue#19516 <http://tracker.ceph.com/issues/19516>`_, `issue#19502 <http://tracker.ceph.com/issues/19502>`_, `pr#14374 <https://github.com/ceph/ceph/pull/14374>`_, Sage Weil)
-* mgr: fix crash on missing 'ceph_version' in daemon metadata (fixes #18764) (`issue#18764 <http://tracker.ceph.com/issues/18764>`_, `pr#14129 <https://github.com/ceph/ceph/pull/14129>`_, Tim Serong)
-* mgr: fix several init/re-init bugs (`issue#19491 <http://tracker.ceph.com/issues/19491>`_, `pr#14328 <https://github.com/ceph/ceph/pull/14328>`_, Sage Weil)
-* mgr: mgr/MgrClient: fix reconnect event leak (`issue#19580 <http://tracker.ceph.com/issues/19580>`_, `pr#14431 <https://github.com/ceph/ceph/pull/14431>`_, Sage Weil)
-* mgr,mon: mon,mgr: move reweight-by-* to mgr (`pr#14404 <https://github.com/ceph/ceph/pull/14404>`_, Kefu Chai)
-* mgr: move 'osd perf' and 'osd blocked-by' to mgr (`pr#14303 <https://github.com/ceph/ceph/pull/14303>`_, Sage Weil)
-* mgr: move "osd pool stats" to mgr (`pr#14365 <https://github.com/ceph/ceph/pull/14365>`_, Kefu Chai)
-* mgr: optimization some judgment and adjust the debug remove value in register_new_pgs (`pr#14046 <https://github.com/ceph/ceph/pull/14046>`_, song baisen)
-* mgr: pass through cluster log to plugins (`pr#13690 <https://github.com/ceph/ceph/pull/13690>`_, John Spray)
-* mgr: pybind/mgr/rest: don't set timezone to Chicago (`pr#14184 <https://github.com/ceph/ceph/pull/14184>`_, Tim Serong)
-* mgr: remove unused function declarations (`pr#14366 <https://github.com/ceph/ceph/pull/14366>`_, Wei Jin)
-* mgr: rm nonused main function (`pr#14313 <https://github.com/ceph/ceph/pull/14313>`_, Wei Jin)
-* mgr: shutdown py_modules in Mgr::shutdown() (`issue#19258 <http://tracker.ceph.com/issues/19258>`_, `pr#14078 <https://github.com/ceph/ceph/pull/14078>`_, Kefu Chai)
-* mon: add mon_debug_no_require_luminous (`pr#14490 <https://github.com/ceph/ceph/pull/14490>`_, Sage Weil)
-* mon: avoid segfault in wait_auth_rotating (`issue#19566 <http://tracker.ceph.com/issues/19566>`_, `pr#14430 <https://github.com/ceph/ceph/pull/14430>`_, John Spray)
-* mon: common/config_opts.h: kill mon_pg_create_interval (`pr#13800 <https://github.com/ceph/ceph/pull/13800>`_, xie xingguo)
-* mon: emit cluster log messages on MDS health changes (`issue#19551 <http://tracker.ceph.com/issues/19551>`_, `pr#14398 <https://github.com/ceph/ceph/pull/14398>`_, John Spray)
-* mon: fix hiding mdsmonitor informative strings (`issue#16709 <http://tracker.ceph.com/issues/16709>`_, `pr#13904 <https://github.com/ceph/ceph/pull/13904>`_, John Spray)
-* mon: fix synchronise pgmap with others (`pr#14418 <https://github.com/ceph/ceph/pull/14418>`_, song baisen, z09440)
-* mon: mon/MonClient: make get_mon_log_message() atomic (`issue#19427 <http://tracker.ceph.com/issues/19427>`_, `pr#14422 <https://github.com/ceph/ceph/pull/14422>`_, Kefu Chai)
-* mon: mon/Monitor.h: add const to member function (`pr#10412 <https://github.com/ceph/ceph/pull/10412>`_, Michal Jarzabek)
-* mon: mon/OSDMonitor: check last_osd_report only when the whole cluster is lu… (`pr#14294 <https://github.com/ceph/ceph/pull/14294>`_, Kefu Chai)
-* mon: mon/OSDMonitor: Clean up: delete extra S signature for plural (`pr#14174 <https://github.com/ceph/ceph/pull/14174>`_, Shinobu Kinjo)
-* mon: mon/OSDMonitor: spinlock -> std::mutex (`pr#14269 <https://github.com/ceph/ceph/pull/14269>`_, Sage Weil)
-* mon: mon/OSDMonitor: transit creating_pgs from pgmap when upgrading (`issue#19584 <http://tracker.ceph.com/issues/19584>`_, `pr#14551 <https://github.com/ceph/ceph/pull/14551>`_, Kefu Chai)
-* mon: mon/OSDMonitor: update creating epoch if target osd changed (`issue#19515 <http://tracker.ceph.com/issues/19515>`_, `pr#14386 <https://github.com/ceph/ceph/pull/14386>`_, Kefu Chai)
-* mon: mon/PGMap: make si units more readable in PGMap summary (`pr#14185 <https://github.com/ceph/ceph/pull/14185>`_, liuhong)
-* mon: osd crush set crushmap need sanity check (`issue#19302 <http://tracker.ceph.com/issues/19302>`_, `pr#14029 <https://github.com/ceph/ceph/pull/14029>`_, Loic Dachary)
-* mon: Tidy up removal of debug mon features (`pr#14467 <https://github.com/ceph/ceph/pull/14467>`_, Brad Hubbard)
-* mon: update mgrmap when active goes offline (`issue#19407 <http://tracker.ceph.com/issues/19407>`_, `pr#14220 <https://github.com/ceph/ceph/pull/14220>`_, John Spray)
-* msg/async: Postpone bind if network stack is not ready (`pr#14414 <https://github.com/ceph/ceph/pull/14414>`_, Amir Vadai, Haomai Wang)
-* msg: src/msg/async: Update fix broken compilation for Posix (`pr#14336 <https://github.com/ceph/ceph/pull/14336>`_, Sarit Zubakov)
-* NVMEDevice: remove unnessary dpdk header file (`pr#14650 <https://github.com/ceph/ceph/pull/14650>`_, optimistyzy)
-* osd: add "heap \*" admin command (`issue#15475 <http://tracker.ceph.com/issues/15475>`_, `pr#13073 <https://github.com/ceph/ceph/pull/13073>`_, Jesse Williamson)
-* osd: add override in headers files (`pr#13962 <https://github.com/ceph/ceph/pull/13962>`_, liuchang0812)
-* osd: Cleanup-Updated OSDMap.cc with C++11 style range-for loops (`pr#14381 <https://github.com/ceph/ceph/pull/14381>`_, Jos Collin)
-* osd: combine unstable stats with info.stats when publish stats to osd (`pr#14060 <https://github.com/ceph/ceph/pull/14060>`_, Mingxin Liu)
-* osd: fix comments about pg refs and lock (`pr#14279 <https://github.com/ceph/ceph/pull/14279>`_, tang.jin)
-* osd: fix some osd beacon bugs (`pr#14274 <https://github.com/ceph/ceph/pull/14274>`_, Sage Weil)
-* osd: kill all remaining MOSDSubOp users (`pr#13401 <https://github.com/ceph/ceph/pull/13401>`_, Sage Weil)
-* osd: make ec overwrites ready to use (`pr#14496 <https://github.com/ceph/ceph/pull/14496>`_, Josh Durgin)
-* osd: new op for calculating an extent checksum (`pr#14256 <https://github.com/ceph/ceph/pull/14256>`_, Jason Dillaman)
-* osd: osd/PrimaryLogPG: nullptr not NULL (`pr#13973 <https://github.com/ceph/ceph/pull/13973>`_, Shinobu Kinjo)
-* osd: pg-remap -> pg-upmap (`pr#14556 <https://github.com/ceph/ceph/pull/14556>`_, Sage Weil)
-* osd: print pg_info_t::purged_snaps as array, not string (`issue#18584 <http://tracker.ceph.com/issues/18584>`_, `pr#14217 <https://github.com/ceph/ceph/pull/14217>`_, liuchang0812)
-* qa: krbd_data_pool.sh: account for rbd_info metadata object (`pr#14631 <https://github.com/ceph/ceph/pull/14631>`_, Ilya Dryomov)
-* qa/objectstore: test bluestore with aggressive compression (`pr#14623 <https://github.com/ceph/ceph/pull/14623>`_, Sage Weil)
-* qa/tasks: assert on pg status with a timeout (`issue#19594 <http://tracker.ceph.com/issues/19594>`_, `pr#14608 <https://github.com/ceph/ceph/pull/14608>`_, Kefu Chai)
-* qa/workunits/cephtool/test.sh: Be more liberal in testing health-output. (`pr#14614 <https://github.com/ceph/ceph/pull/14614>`_, Willem Jan Withagen)
-* rbd: correct issues with image importing (`pr#14401 <https://github.com/ceph/ceph/pull/14401>`_, Jason Dillaman)
-* rbd: error out if import image format failed (`pr#13957 <https://github.com/ceph/ceph/pull/13957>`_, wangzhengyong)
-* rbd: import-diff should discard any zeroed extents (`pr#14445 <https://github.com/ceph/ceph/pull/14445>`_, Jason Dillaman)
-* rbd: import real thin-provision image (`issue#15648 <http://tracker.ceph.com/issues/15648>`_, `pr#12883 <https://github.com/ceph/ceph/pull/12883>`_, yaoning, Ning Yao)
-* rbd-mirror: pool watcher should track mirror uuid (`pr#14240 <https://github.com/ceph/ceph/pull/14240>`_, Jason Dillaman)
-* rbd-mirror: separate ImageReplayer handling from Replayer (`issue#18785 <http://tracker.ceph.com/issues/18785>`_, `pr#13803 <https://github.com/ceph/ceph/pull/13803>`_, Mykola Golub)
-* rbd-nbd: clean up the doc and help information (`pr#14146 <https://github.com/ceph/ceph/pull/14146>`_, Pan Liu)
-* rbd-nbd: remove debug messages from do_unmap (`pr#14253 <https://github.com/ceph/ceph/pull/14253>`_, Pan Liu)
-* rbd-nbd: s/cpp_error/cpp_strerror/ to fix FTBFS (`pr#14223 <https://github.com/ceph/ceph/pull/14223>`_, Kefu Chai)
-* rbd-nbd: support signal handle for SIGHUP, SIGINT and SIGTERM. (`issue#19349 <http://tracker.ceph.com/issues/19349>`_, `pr#14079 <https://github.com/ceph/ceph/pull/14079>`_, Pan Liu)
-* rbd: pybind/rbd: add image metadata methods (`issue#19451 <http://tracker.ceph.com/issues/19451>`_, `pr#14463 <https://github.com/ceph/ceph/pull/14463>`_, Mykola Golub)
-* rbd,tests: qa/workunits: corrected issues with RBD cli test (`pr#14460 <https://github.com/ceph/ceph/pull/14460>`_, Jason Dillaman)
-* rbd,tests: qa/workunits/rbd: diff.sh failed removing nonexistent file (`pr#14482 <https://github.com/ceph/ceph/pull/14482>`_, Mykola Golub)
-* rbd,tests: test/librados_test_stub: fixed cls_cxx_map_get_keys/vals return value (`issue#19597 <http://tracker.ceph.com/issues/19597>`_, `pr#14484 <https://github.com/ceph/ceph/pull/14484>`_, Jason Dillaman)
-* rbd,tests: test/rbd_mirror: race in TestMockInstanceWatcher on destroy (`pr#14453 <https://github.com/ceph/ceph/pull/14453>`_, Mykola Golub)
-* rbd: use min<uint64_t>() explicitly (`issue#18938 <http://tracker.ceph.com/issues/18938>`_, `pr#14202 <https://github.com/ceph/ceph/pull/14202>`_, Kefu Chai)
-* rbd: validate pool and snap name optionals (`issue#14535 <http://tracker.ceph.com/issues/14535>`_, `pr#13836 <https://github.com/ceph/ceph/pull/13836>`_, Gaurav Kumar Garg)
-* rbd: warning, ‘devno’ may be used uninitialized in this function (`pr#14271 <https://github.com/ceph/ceph/pull/14271>`_, Jos Collin)
-* rdma: msg/async/rdma: Debug prints for ibv_* (`pr#14249 <https://github.com/ceph/ceph/pull/14249>`_, Amir Vadai)
-* rdma: msg/async/rdma: Device::last_poll_dev must be positive (`pr#14250 <https://github.com/ceph/ceph/pull/14250>`_, Amir Vadai)
-* rdma: msg/async/rdma: Fix small memory leaks detected by valgrind (`pr#14288 <https://github.com/ceph/ceph/pull/14288>`_, Amir Vadai)
-* rdma: msg/async/rdma: Make poll_blocking() poll for async events in additio… (`pr#14320 <https://github.com/ceph/ceph/pull/14320>`_, Amir Vadai)
-* rdma: msg/async/rdma: Make port number an attribute of the Connection not o… (`pr#14297 <https://github.com/ceph/ceph/pull/14297>`_, Amir Vadai)
-* rdma: msg/async/rdma: RDMA-CM, get_device() by ibv_context (`pr#14410 <https://github.com/ceph/ceph/pull/14410>`_, Amir Vadai)
-* rdma: msg/async/rdma: RDMA-CM, Pass specific ConnMgr info in constructor (`pr#14409 <https://github.com/ceph/ceph/pull/14409>`_, Amir Vadai)
-* rgw: Added code to correctly account for bytes sent/ received during a 'PUT' operation. (`pr#14042 <https://github.com/ceph/ceph/pull/14042>`_, Pritha Srivastava)
-* rgw: add --num-zonegroups option for multi test (`pr#14216 <https://github.com/ceph/ceph/pull/14216>`_, lvshuhua)
-* rgw: add pool namespace to cache's key so that system obj can have unique key (`issue#19372 <http://tracker.ceph.com/issues/19372>`_, `pr#14125 <https://github.com/ceph/ceph/pull/14125>`_, Zhang Shaowen)
-* rgw: add support for multipart upload expiration. (`issue#19088 <http://tracker.ceph.com/issues/19088>`_, `pr#13622 <https://github.com/ceph/ceph/pull/13622>`_, Zhang Shaowen)
-* rgw: add support for the BulkUpload of Swift API (`pr#12243 <https://github.com/ceph/ceph/pull/12243>`_, Radoslaw Zarzynski)
-* rgw: add the remove-x-delete feature to cancel swift object expiration (`issue#19074 <http://tracker.ceph.com/issues/19074>`_, `pr#13621 <https://github.com/ceph/ceph/pull/13621>`_, Jing Wenjun)
-* rgw: Add --zonegroup-new-name in usage (`pr#12084 <https://github.com/ceph/ceph/pull/12084>`_, Hans van den Bogert)
-* rgw: allow larger payload for period commit (`issue#19505 <http://tracker.ceph.com/issues/19505>`_, `pr#14355 <https://github.com/ceph/ceph/pull/14355>`_, Casey Bodley)
-* rgw: allow system users to read SLO parts (`issue#19027 <http://tracker.ceph.com/issues/19027>`_, `pr#13561 <https://github.com/ceph/ceph/pull/13561>`_, Casey Bodley)
-* rgw: avoid listing user buckets for rgw_delete_user (`pr#13991 <https://github.com/ceph/ceph/pull/13991>`_, liuchang0812)
-* rgw: avoid using null pointer in rgw_file.cc (`pr#14474 <https://github.com/ceph/ceph/pull/14474>`_, lihongjie)
-* rgw: bucket stats display bucket index type (`pr#14466 <https://github.com/ceph/ceph/pull/14466>`_, fang yuxiang)
-* rgw: clean up the unneeded rgw::io::ChunkingFilter::has_content_length. (`pr#13504 <https://github.com/ceph/ceph/pull/13504>`_, Radoslaw Zarzynski)
-* rgw: cls/rgw: Clean up the "magic string" usage in the cls layer for RGW. (`pr#12536 <https://github.com/ceph/ceph/pull/12536>`_, Ira Cooper)
-* rgw: cls/user: cls_user_bucket backward compatibility (`issue#19367 <http://tracker.ceph.com/issues/19367>`_, `pr#14128 <https://github.com/ceph/ceph/pull/14128>`_, Yehuda Sadeh)
-* rgw: cls_user don't clobber existing bucket stats when creating bucket (`issue#16357 <http://tracker.ceph.com/issues/16357>`_, `pr#10121 <https://github.com/ceph/ceph/pull/10121>`_, Abhishek Lekshmanan)
-* rgw: continuation of the auth rework (`pr#12893 <https://github.com/ceph/ceph/pull/12893>`_, Radoslaw Zarzynski, Matt Benjamin)
-* rgw: delete non-empty buckets in slave zonegroup works not well (`issue#19313 <http://tracker.ceph.com/issues/19313>`_, `pr#14043 <https://github.com/ceph/ceph/pull/14043>`_, Zhang Shaowen)
-* rgw: don't read all user input for a few param requests (`pr#13815 <https://github.com/ceph/ceph/pull/13815>`_, Abhishek Lekshmanan)
-* rgw: enable to update acl of bucket created in slave zonegroup (`issue#16888 <http://tracker.ceph.com/issues/16888>`_, `pr#14082 <https://github.com/ceph/ceph/pull/14082>`_, Guo Zhandong)
-* rgw: error more verbosely in RGWRados::create_pool (`pr#14642 <https://github.com/ceph/ceph/pull/14642>`_, Matt Benjamin)
-* rgw: fix build of conflict after auth rework (`pr#14203 <https://github.com/ceph/ceph/pull/14203>`_, Casey Bodley)
-* rgw: fix configurable write obj window size (`pr#13934 <https://github.com/ceph/ceph/pull/13934>`_, hechuang)
-* rgw: fix for EINVAL errors on forwarded bucket put_acl requests (`pr#14376 <https://github.com/ceph/ceph/pull/14376>`_, Casey Bodley)
-* rgw: fix for null version_id in fetch_remote_obj() (`pr#14375 <https://github.com/ceph/ceph/pull/14375>`_, Casey Bodley)
-* rgw: fix memory leak in delete_obj_aio (`pr#13998 <https://github.com/ceph/ceph/pull/13998>`_, wangzhengyong)
-* rgw: fix memory leak in RGWGetObjLayout (`pr#14014 <https://github.com/ceph/ceph/pull/14014>`_, liuchang0812)
-* rgw: fix response header of Swift API (`issue#19443 <http://tracker.ceph.com/issues/19443>`_, `pr#14280 <https://github.com/ceph/ceph/pull/14280>`_, tone-zhang)
-* rgw: fix slave zonegroup cannot enable the bucket versioning (`issue#18003 <http://tracker.ceph.com/issues/18003>`_, `pr#12175 <https://github.com/ceph/ceph/pull/12175>`_, lvshuhua)
-* rgw: fix uninitialized fields (`pr#14120 <https://github.com/ceph/ceph/pull/14120>`_, wangzhengyong)
-* rgw: LCWorker's worktime is not the same as config rgw_lifecycle_work_time. (`issue#18087 <http://tracker.ceph.com/issues/18087>`_, `pr#11963 <https://github.com/ceph/ceph/pull/11963>`_, Zhang Shaowen)
-* rgw: multisite enabled over multiple clusters (`pr#12535 <https://github.com/ceph/ceph/pull/12535>`_, Ali Maredia)
-* rgw: multisite: fixes for zonegroup redirect (`issue#19488 <http://tracker.ceph.com/issues/19488>`_, `pr#14319 <https://github.com/ceph/ceph/pull/14319>`_, Casey Bodley)
-* rgw: radosgw-admin: use zone id when creating a zone (`issue#19498 <http://tracker.ceph.com/issues/19498>`_, `pr#14340 <https://github.com/ceph/ceph/pull/14340>`_, Orit Wasserman)
-* rgw: Removed Unwanted headers (`pr#14183 <https://github.com/ceph/ceph/pull/14183>`_, Jos Collin)
-* rgw: remove duplicate flush formatter (`pr#12437 <https://github.com/ceph/ceph/pull/12437>`_, Guo Zhandong)
-* rgw: remove extra RGWMPObj in rgw_multi.h (`pr#14619 <https://github.com/ceph/ceph/pull/14619>`_, Casey Bodley)
-* rgw: rgw_file: fix missing unlock in unlink (`issue#19435 <http://tracker.ceph.com/issues/19435>`_, `pr#14262 <https://github.com/ceph/ceph/pull/14262>`_, Gui Hecheng)
-* rgw: rgw_file: fix non-posix errcode EINVAL to ENAMETOOLONG (`pr#13764 <https://github.com/ceph/ceph/pull/13764>`_, Gui Hecheng)
-* rgw: rgw_file: fix readdir after dirent-change (`issue#19634 <http://tracker.ceph.com/issues/19634>`_, `pr#14561 <https://github.com/ceph/ceph/pull/14561>`_, Matt Benjamin)
-* rgw: rgw_file: pre-compute unix attrs in write_finish() (`issue#19653 <http://tracker.ceph.com/issues/19653>`_, `pr#14609 <https://github.com/ceph/ceph/pull/14609>`_, Matt Benjamin)
-* rgw: rgw_file: support readdir cb type hints (plus fixes) (`issue#19623 <http://tracker.ceph.com/issues/19623>`_, `issue#19625 <http://tracker.ceph.com/issues/19625>`_, `issue#19624 <http://tracker.ceph.com/issues/19624>`_, `pr#14458 <https://github.com/ceph/ceph/pull/14458>`_, Matt Benjamin)
-* rgw: rgw_lc: drop a bunch of unused headers (`pr#14342 <https://github.com/ceph/ceph/pull/14342>`_, Abhishek Lekshmanan)
-* rgw: rgw/lifecycle: do not send lifecycle rules when GetLifeCycle failed (`issue#19363 <http://tracker.ceph.com/issues/19363>`_, `pr#14160 <https://github.com/ceph/ceph/pull/14160>`_, liuchang0812)
-* rgw: rgw_op: remove unused variable iter (`pr#14276 <https://github.com/ceph/ceph/pull/14276>`_, Weibing Zhang)
-* rgw: s3 server-side encryption (SSE-C, SSE-KMS) (`pr#11049 <https://github.com/ceph/ceph/pull/11049>`_, Adam Kupczyk, Casey Bodley, Radoslaw Zarzynski)
-* rgw: stat requests skip compression, manifest handling, etc (`pr#14109 <https://github.com/ceph/ceph/pull/14109>`_, Casey Bodley)
-* rgw: switch from "timegm()" to "internal_timegm()" for better portability (`issue#12863 <http://tracker.ceph.com/issues/12863>`_, `pr#14327 <https://github.com/ceph/ceph/pull/14327>`_, Rishabh Kumar)
-* rgw: switch to std::array in RGWBulkUploadOp due to C++11 and FreeBSD. (`pr#14314 <https://github.com/ceph/ceph/pull/14314>`_, Radoslaw Zarzynski)
-* rgw,tests: qa/rgw: add configuration for server-side encryption tests (`pr#13597 <https://github.com/ceph/ceph/pull/13597>`_, Casey Bodley)
-* rgw,tests: test/rgw: test_bucket_delete_notempty in test_multi.py (`pr#14090 <https://github.com/ceph/ceph/pull/14090>`_, Casey Bodley)
-* rgw: update is_truncated in function rgw_read_user_buckets (`issue#19365 <http://tracker.ceph.com/issues/19365>`_, `pr#14343 <https://github.com/ceph/ceph/pull/14343>`_, liuchang0812)
-* rgw: verified f23 (`pr#14553 <https://github.com/ceph/ceph/pull/14553>`_, Gui Hecheng)
-* rgw: version id doesn't work in fetch_remote_obj (`pr#14010 <https://github.com/ceph/ceph/pull/14010>`_, Zhang Shaowen)
-* rgw: warning, output may be truncated before the last format character (`pr#14194 <https://github.com/ceph/ceph/pull/14194>`_, Jos Collin)
-* src/ceph-disk/ceph_disk/main.py: Make 'ceph-disk list' work on FreeBSD (`pr#14483 <https://github.com/ceph/ceph/pull/14483>`_, Willem Jan Withagen)
-* test/osd/osd-dup.sh: warn on low open file limit (`pr#14637 <https://github.com/ceph/ceph/pull/14637>`_, Piotr Dałek)
-* test: rbd master/slave notify test should test active features (`issue#19692 <http://tracker.ceph.com/issues/19692>`_, `pr#14638 <https://github.com/ceph/ceph/pull/14638>`_, Jason Dillaman)
-* test/rgw: refactor test_multi.py for use in qa suite (`pr#14433 <https://github.com/ceph/ceph/pull/14433>`_, Casey Bodley)
-* tests: add MGR=1 so 'pg dump' won't be blocked (`pr#14266 <https://github.com/ceph/ceph/pull/14266>`_, Kefu Chai)
-* tests: ceph_objectstore_tool.py: kill all daemons (`pr#14428 <https://github.com/ceph/ceph/pull/14428>`_, Kefu Chai)
-* tests: qa: Add reboot case for systemd test (`pr#14229 <https://github.com/ceph/ceph/pull/14229>`_, Vasu Kulkarni)
-* tests: qa/suites: drop 'fs' facet, and add 'objectstore' facet where missing (`pr#14198 <https://github.com/ceph/ceph/pull/14198>`_, Sage Weil)
-* tests: qa/tasks: use sudo to check ceph health for systemd test (`pr#14464 <https://github.com/ceph/ceph/pull/14464>`_, Vasu Kulkarni)
-* tests: qa/tasks/workunit.py: use "overrides" as the default settings of workunit (`issue#19429 <http://tracker.ceph.com/issues/19429>`_, `pr#14281 <https://github.com/ceph/ceph/pull/14281>`_, Kefu Chai)
-* tests: qa/workunits/ceph-helpers: display rejected string (`pr#14468 <https://github.com/ceph/ceph/pull/14468>`_, Kefu Chai)
-* tests: tasks/workunit.py: when cloning, use --depth=1 (`pr#14214 <https://github.com/ceph/ceph/pull/14214>`_, Dan Mick)
-* tests: test: add explicit braces to avoid ambiguous ‘else’ and to silence warnings (`pr#14472 <https://github.com/ceph/ceph/pull/14472>`_, Jos Collin)
-* tests: test: objectstore: chain_xattr: fix wrong memset usage to fill buf (`pr#14277 <https://github.com/ceph/ceph/pull/14277>`_, Weibing Zhang)
-* tests: Thrasher: handle "OSD has the store locked" gracefully (`issue#19556 <http://tracker.ceph.com/issues/19556>`_, `pr#14415 <https://github.com/ceph/ceph/pull/14415>`_, Nathan Cutler)
-* tests: workunit: request branch when cloning (`pr#14260 <https://github.com/ceph/ceph/pull/14260>`_, Kefu Chai, Dan Mick)
-* tools: ceph-disk: Add fix subcommand (`pr#13310 <https://github.com/ceph/ceph/pull/13310>`_, Boris Ranto)
-* tools: ceph-release-notes: prefixes and pep8 compliance (`pr#14156 <https://github.com/ceph/ceph/pull/14156>`_, Nathan Cutler)
-* tools: ceph-release-notes: strip trailing punctuation (`pr#14385 <https://github.com/ceph/ceph/pull/14385>`_, Nathan Cutler)
-* tools: stop.sh: boilerplate error (don't stop mon when stopping mgr) (`pr#14461 <https://github.com/ceph/ceph/pull/14461>`_, Dan Mick)
-* tools: warning, ‘%.16x’ directive output truncated writing 16 bytes into a region of size 9. (`pr#14292 <https://github.com/ceph/ceph/pull/14292>`_, Jos Collin)
-
-
-v12.0.1 Luminous (dev)
-======================
-
-This is the second development checkpoint release of Luminous, the next long term
-stable release.
-
-Major changes from 12.0.0
--------------------------
-* The original librados rados_objects_list_open (C) and objects_begin
- (C++) object listing API, deprecated in Hammer, has finally been
- removed. Users of this interface must update their software to use
- either the rados_nobjects_list_open (C) and nobjects_begin (C++) API or
- the new rados_object_list_begin (C) and object_list_begin (C++) API
- before updating the client-side librados library to Luminous.
-
- Object enumeration (via any API) with the latest librados version
- and pre-Hammer OSDs is no longer supported. Note that no in-tree
- Ceph services rely on object enumeration via the deprecated APIs, so
- only external librados users might be affected.
-
- The newest (and recommended) rados_object_list_begin (C) and
- object_list_begin (C++) API is only usable on clusters with the
- SORTBITWISE flag enabled (Jewel and later). (Note that this flag is
- required to be set before upgrading beyond Jewel.)
-
-* CephFS clients without the 'p' flag in their authentication capability
- string will no longer be able to set quotas or any layout fields. This
- flag previously only restricted modification of the pool and namespace
- fields in layouts.
-
-* The rados copy-get-classic operation has been removed since it has not been
- used by the OSD since before hammer. It is unlikely any librados user is
- using this operation explicitly since there is also the more modern copy-get.
-
-* The RGW api for getting object torrent has changed its params from 'get_torrent'
- to 'torrent' so that it can be compatible with Amazon S3. Now the request for
- object torrent is like 'GET /ObjectName?torrent'.
-
-Other Notable Changes
----------------------
-* auth: 'ceph auth import -i' overwrites caps, if caps are not specified (`issue#18932 <http://tracker.ceph.com/issues/18932>`_, `pr#13468 <http://github.com/ceph/ceph/pull/13468>`_, Vikhyat Umrao)
-* BitAllocator: delete useless codes (`pr#13619 <http://github.com/ceph/ceph/pull/13619>`_, Jie Wang)
-* Bluestore, NVMEDevice: add the spdk core mask check (`pr#14068 <http://github.com/ceph/ceph/pull/14068>`_, optimistyzy)
-* Bluestore, NVMeDevice: fix the core id for rte_remote_launch (`pr#13896 <http://github.com/ceph/ceph/pull/13896>`_, optimistyzy)
-* bluestore,NVMEDevice: minor error for get slave core (`pr#14012 <http://github.com/ceph/ceph/pull/14012>`_, Ziye Yang)
-* bluestore, NVMEDEVICE: Specify the max io completion in conf (`pr#13799 <http://github.com/ceph/ceph/pull/13799>`_, optimistyzy)
-* brag: count the number of mds in fsmap not in mdsmap (`issue#19192 <http://tracker.ceph.com/issues/19192>`_, `pr#13798 <http://github.com/ceph/ceph/pull/13798>`_, Peng Zhang)
-* build/ops: add psmisc dependency to ceph-base (deb and rpm) (`issue#19129 <http://tracker.ceph.com/issues/19129>`_, `pr#13744 <http://github.com/ceph/ceph/pull/13744>`_, Nathan Cutler)
-* build/ops: make package groups comply with openSUSE guidelines (`issue#19184 <http://tracker.ceph.com/issues/19184>`_, `pr#13781 <http://github.com/ceph/ceph/pull/13781>`_, Nathan Cutler)
-* buildpackages: remove because it does not belong (`issue#18846 <http://tracker.ceph.com/issues/18846>`_, `pr#13297 <http://github.com/ceph/ceph/pull/13297>`_, Loic Dachary)
-* build: remove ceph-qa-suite directory (`pr#13880 <http://github.com/ceph/ceph/pull/13880>`_, Casey Bodley)
-* ceph_common.sh: fix syntax error (`issue#17826 <http://tracker.ceph.com/issues/17826>`_, `pr#13419 <http://github.com/ceph/ceph/pull/13419>`_, Dan Mick)
-* ceph-create-keys: Add connection timeouts. (`pr#11995 <http://github.com/ceph/ceph/pull/11995>`_, Owen Synge)
-* ceph-dencoder: enable bluestore types (`pr#13595 <http://github.com/ceph/ceph/pull/13595>`_, Willem Jan Withagen, Kefu Chai)
-* ceph-detect-init: Add docker detection (`pr#13218 <http://github.com/ceph/ceph/pull/13218>`_, Guillaume Abrioux)
-* ceph-detect-init: Adds Oracle Linux Server and Oracle VM Server detect (`pr#13917 <http://github.com/ceph/ceph/pull/13917>`_, Nikita Gerasimov)
-* ceph-disk: ability to use a different cluster name with dmcrypt (`issue#17821 <http://tracker.ceph.com/issues/17821>`_, `pr#11786 <http://github.com/ceph/ceph/pull/11786>`_, Sébastien Han, Erwan Velu)
-* ceph-disk: dmcrypt activate must use the same cluster as prepare (`issue#17821 <http://tracker.ceph.com/issues/17821>`_, `pr#13573 <http://github.com/ceph/ceph/pull/13573>`_, Loic Dachary)
-* ceph-disk: Fix getting wrong group name when --setgroup in bluestore (`issue#18955 <http://tracker.ceph.com/issues/18955>`_, `pr#13457 <http://github.com/ceph/ceph/pull/13457>`_, craigchi)
-* ceph-disk: FreeBSD changes to get it working and passing tests (`pr#12086 <http://github.com/ceph/ceph/pull/12086>`_, Willem Jan Withagen)
-* ceph-disk: Reporting /sys directory in get_partition_dev() (`pr#14080 <http://github.com/ceph/ceph/pull/14080>`_, Erwan Velu)
-* ceph-disk: Revert "Revert "change get_dmcrypt_key test to support different cluster name"" (`pr#13600 <http://github.com/ceph/ceph/pull/13600>`_, Loic Dachary)
-* ceph-disk/tests: Certain partition types do not work on FreeBSD (`pr#13560 <http://github.com/ceph/ceph/pull/13560>`_, Willem Jan Withagen)
-* ceph: do not throw TypeError on connection failure (`pr#13268 <http://github.com/ceph/ceph/pull/13268>`_, Kefu Chai)
-* ceph_fuse: fix daemonization when pid file is non-empty (`pr#13532 <http://github.com/ceph/ceph/pull/13532>`_, "Yan, Zheng")
-* ceph.in: add help for locally-handled commands (`pr#13288 <http://github.com/ceph/ceph/pull/13288>`_, Dan Mick)
-* ceph.in: Fix couple of minor issues on the messages (`pr#12797 <http://github.com/ceph/ceph/pull/12797>`_, Dave Chen)
-* ceph-osd: --flush-journal: sporadic segfaults on exit (`issue#18820 <http://tracker.ceph.com/issues/18820>`_, `pr#13311 <http://github.com/ceph/ceph/pull/13311>`_, Alexey Sheplyakov)
-* ceph.spec.in, debian/control: Add bc to build dependencies (`issue#18876 <http://tracker.ceph.com/issues/18876>`_, `pr#13338 <http://github.com/ceph/ceph/pull/13338>`_, Kyr Shatskyy)
-* ceph_test_objectstore: tolerate fsck EOPNOTSUPP too (`pr#13325 <http://github.com/ceph/ceph/pull/13325>`_, Sage Weil)
-* ceph_test_rados_api_misc: avoid livelock from PoolCreationRace (`pr#13565 <http://github.com/ceph/ceph/pull/13565>`_, Sage Weil)
-* cleanup: rbd: fix a typo in comment (`pr#14049 <http://github.com/ceph/ceph/pull/14049>`_, Dongsheng Yang)
-* cleanup: resolve compiler warnings (`pr#13236 <http://github.com/ceph/ceph/pull/13236>`_, Adam C. Emerson)
-* client: priority to verify the correctness of the "flag" (`pr#12897 <http://github.com/ceph/ceph/pull/12897>`_, huanwen ren)
-* client: remove dead log code (`pr#13093 <http://github.com/ceph/ceph/pull/13093>`_, Patrick Donnelly)
-* client: wait for lastest osdmap when handling set file/dir layout (`issue#18914 <http://tracker.ceph.com/issues/18914>`_, `pr#13580 <http://github.com/ceph/ceph/pull/13580>`_, "Yan, Zheng")
-* cmake: link consumers of libclient with libcommon (`issue#18838 <http://tracker.ceph.com/issues/18838>`_, `pr#13394 <http://github.com/ceph/ceph/pull/13394>`_, Kefu Chai)
-* CMakeLists.txt: suppress unneeded warning about jemalloc (`pr#13377 <http://github.com/ceph/ceph/pull/13377>`_, Willem Jan Withagen)
-* common: add override in common and misc (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13443 <http://github.com/ceph/ceph/pull/13443>`_, liuchang0812)
-* common: add override in header file (`pr#13774 <http://github.com/ceph/ceph/pull/13774>`_, liuchang0812)
-* common: add override in msg subsystem (`pr#13771 <http://github.com/ceph/ceph/pull/13771>`_, liuchang0812)
-* common/auth: add override in headers (`pr#13692 <http://github.com/ceph/ceph/pull/13692>`_, liuchang0812)
-* common/config_opts.h: Remove deprecated osd_compact_leveldb_on_mount option (`issue#19318 <http://tracker.ceph.com/issues/19318>`_, `pr#14059 <http://github.com/ceph/ceph/pull/14059>`_, Vikhyat Umrao)
-* common/config_opts: improve rdma buffer size to 128k (`pr#13510 <http://github.com/ceph/ceph/pull/13510>`_, Haomai Wang)
-* common/EventTrace: fix compiler warning. (`pr#13659 <http://github.com/ceph/ceph/pull/13659>`_, Jianpeng Ma)
-* common: Fix clang compilation (`pr#13335 <http://github.com/ceph/ceph/pull/13335>`_, Bartłomiej Święcki)
-* common: fix lockdep vs recursive mutexes (`pr#9940 <http://github.com/ceph/ceph/pull/9940>`_, Adam Kupczyk)
-* common: fix that $host always expands to localhost instead of actual hostname (`issue#11081 <http://tracker.ceph.com/issues/11081>`_, `pr#12998 <http://github.com/ceph/ceph/pull/12998>`_, liuchang0812)
-* common: include/ceph_features.h uses uint64_t, which is in sys/types.h (`pr#13339 <http://github.com/ceph/ceph/pull/13339>`_, Willem Jan Withagen)
-* common/MemoryModel: Bump int to long and drop mallinfo (`pr#13453 <http://github.com/ceph/ceph/pull/13453>`_, Xiaoxi Chen)
-* common, osd, tools: Add histograms to performance counters (`pr#12829 <http://github.com/ceph/ceph/pull/12829>`_, Bartłomiej Święcki)
-* common/perf_counters.: Remove unnecessary judgment (`pr#10407 <http://github.com/ceph/ceph/pull/10407>`_, zhang.zezhu)
-* common: possible lockdep false alarm for ThreadPool lock (`issue#18819 <http://tracker.ceph.com/issues/18819>`_, `pr#13258 <http://github.com/ceph/ceph/pull/13258>`_, Mykola Golub)
-* common: remove \n on clog messages (`pr#13794 <http://github.com/ceph/ceph/pull/13794>`_, Sage Weil)
-* common/TracepointProvider: add assert if dlopen error. (`pr#13430 <http://github.com/ceph/ceph/pull/13430>`_, Jianpeng Ma)
-* common/TrackedOp: make TrackedOp::reset_desc() safe (`issue#19110 <http://tracker.ceph.com/issues/19110>`_, `pr#13702 <http://github.com/ceph/ceph/pull/13702>`_, Sage Weil)
-* common: use ref to avoid unnecessary memory copy (`issue#19107 <http://tracker.ceph.com/issues/19107>`_, `pr#13689 <http://github.com/ceph/ceph/pull/13689>`_, liuchang0812)
-* compressor: fix Mutex::Locker used is not correct (`pr#13935 <http://github.com/ceph/ceph/pull/13935>`_, hechuang)
-* compressor/zstd: add zstd to embedded ceph (`pr#13159 <http://github.com/ceph/ceph/pull/13159>`_, Bassam Tabbara)
-* crc32c: optimize aarch64 crc32c implementation (`pr#12977 <http://github.com/ceph/ceph/pull/12977>`_, wei xiao)
-* crush: add devices class that rules can use as a filter (`issue#18943 <http://tracker.ceph.com/issues/18943>`_, `pr#13444 <http://github.com/ceph/ceph/pull/13444>`_, Loic Dachary)
-* crush: add --dump to crushtool (`pr#13726 <http://github.com/ceph/ceph/pull/13726>`_, Loic Dachary)
-* crush: allow uniform buckets with no items (`pr#13521 <http://github.com/ceph/ceph/pull/13521>`_, Loic Dachary)
-* crush: document tunables and rule step set\_ (`pr#13722 <http://github.com/ceph/ceph/pull/13722>`_, Loic Dachary)
-* crush: do is_out test only if we do not collide (`pr#13326 <http://github.com/ceph/ceph/pull/13326>`_, xie xingguo)
-* crush: fix dprintk compilation (`pr#13424 <http://github.com/ceph/ceph/pull/13424>`_, Loic Dachary)
-* debian: Add missing tp files in deb packaging (`pr#13526 <http://github.com/ceph/ceph/pull/13526>`_, Ganesh Mahalingam)
-* debian/control: add ceph-base-dbg (`pr#13796 <http://github.com/ceph/ceph/pull/13796>`_, Sage Weil)
-* debian: drop boost build dependencies (`pr#13524 <http://github.com/ceph/ceph/pull/13524>`_, Kefu Chai)
-* doc: add changelog for v0.94.10 (`pr#13572 <http://github.com/ceph/ceph/pull/13572>`_, Abhishek Lekshmanan)
-* doc: add changelog for v10.2.6 Jewel release (`pr#13839 <http://github.com/ceph/ceph/pull/13839>`_, Abhishek Lekshmanan)
-* doc: add optional argument for build-doc (`pr#14058 <http://github.com/ceph/ceph/pull/14058>`_, Kefu Chai)
-* doc: clarify that "ms bind ipv6" disables IPv4 (`pr#13317 <http://github.com/ceph/ceph/pull/13317>`_, Ken Dreyer)
-* doc: crush: API documentation fixes (`pr#13589 <http://github.com/ceph/ceph/pull/13589>`_, Loic Dachary)
-* doc: crush typo in algorithm description (`pr#13661 <http://github.com/ceph/ceph/pull/13661>`_, Loic Dachary)
-* doc: deletes duplicated word and clarifies an example (`pr#13746 <http://github.com/ceph/ceph/pull/13746>`_, Tahia Khan)
-* doc: document `osd-agent-{max,low}-ops` options (`pr#13648 <http://github.com/ceph/ceph/pull/13648>`_, Kefu Chai)
-* doc: fix a typo (`pr#13930 <http://github.com/ceph/ceph/pull/13930>`_, Drunkard Zhang)
-* doc: fixes a broken hyperlink to RADOS paper in architecture (`pr#13682 <http://github.com/ceph/ceph/pull/13682>`_, Tahia Khan)
-* doc: Fixes a typo. (`pr#13985 <http://github.com/ceph/ceph/pull/13985>`_, Edwin F. Boza)
-* doc: Fixes parameter name in rbd configuration on openstack havana/icehouse (`issue#17978 <http://tracker.ceph.com/issues/17978>`_, `pr#13403 <http://github.com/ceph/ceph/pull/13403>`_, Michael Eischer)
-* doc: fixes to silence sphinx-build (`pr#13997 <http://github.com/ceph/ceph/pull/13997>`_, Kefu Chai)
-* doc: fix the links to http://ceph.com/docs (`issue#19090 <http://tracker.ceph.com/issues/19090>`_, `pr#13976 <http://github.com/ceph/ceph/pull/13976>`_, Kefu Chai)
-* doc: Fix typo and grammar in RGW config reference (`pr#13356 <http://github.com/ceph/ceph/pull/13356>`_, Ruben Kerkhof)
-* doc: fix typos in radosgw-admin usage (`pr#13936 <http://github.com/ceph/ceph/pull/13936>`_, Enming Zhang)
-* doc: hammer 0.94.10 release notes (`pr#13152 <http://github.com/ceph/ceph/pull/13152>`_, Nathan Cutler)
-* doc: Have install put manpages in the FreeBSD correct location (`pr#13301 <http://github.com/ceph/ceph/pull/13301>`_, Willem Jan Withagen)
-* doc: improve firewalld instructions (`pr#13360 <http://github.com/ceph/ceph/pull/13360>`_, Ken Dreyer)
-* doc: instructions and guidance for multimds (`issue#19135 <http://tracker.ceph.com/issues/19135>`_, `pr#13830 <http://github.com/ceph/ceph/pull/13830>`_, John Spray)
-* doc: instructions for provisioning OpenStack VMs ad hoc (`pr#13368 <http://github.com/ceph/ceph/pull/13368>`_, Nathan Cutler)
-* doc: Jewel 10.2.6 release notes (`pr#13835 <http://github.com/ceph/ceph/pull/13835>`_, Abhishek Lekshmanan)
-* doc: kernel client os-recommendations update (`pr#13369 <http://github.com/ceph/ceph/pull/13369>`_, John Spray, Ilya Dryomov)
-* doc: mention ENXIO change in the 10.2.6 release notes (`pr#13878 <http://github.com/ceph/ceph/pull/13878>`_, Nathan Cutler)
-* doc: minor changes in fuse client config reference (`pr#13065 <http://github.com/ceph/ceph/pull/13065>`_, Barbora AnÄincová)
-* doc: misc minor fixes (`pr#13713 <http://github.com/ceph/ceph/pull/13713>`_, Drunkard Zhang)
-* doc: Modify Configuring Cinder section (`issue#18840 <http://tracker.ceph.com/issues/18840>`_, `pr#13400 <http://github.com/ceph/ceph/pull/13400>`_, Shinobu Kinjo)
-* doc/release-notes: avoid 'production-ready' in describing kraken (`pr#13675 <http://github.com/ceph/ceph/pull/13675>`_, Sage Weil)
-* doc: releases update the luminous, hammer, jewel release dates (`pr#13584 <http://github.com/ceph/ceph/pull/13584>`_, Abhishek Lekshmanan)
-* doc: remove duplicated references (`pr#13396 <http://github.com/ceph/ceph/pull/13396>`_, Kefu Chai)
-* doc: remove mentions about mon_osd_min_down_reports (`issue#19016 <http://tracker.ceph.com/issues/19016>`_, `pr#13558 <http://github.com/ceph/ceph/pull/13558>`_, Barbora AnÄincová)
-* doc: rgw: make a note abt system users vs normal users (`issue#18889 <http://tracker.ceph.com/issues/18889>`_, `pr#13461 <http://github.com/ceph/ceph/pull/13461>`_, Abhishek Lekshmanan)
-* docs: Fix problems with example code (`pr#14007 <http://github.com/ceph/ceph/pull/14007>`_, Brad Hubbard)
-* doc: Update adminops.rst (`pr#13893 <http://github.com/ceph/ceph/pull/13893>`_, Chu, Hua-Rong)
-* doc: Update CephFS disaster recovery documentation (`pr#12370 <http://github.com/ceph/ceph/pull/12370>`_, Wido den Hollander)
-* doc: update links to point to ceph/qa instead of ceph-qa-suite (`pr#13397 <http://github.com/ceph/ceph/pull/13397>`_, Jan Fajerski, Nathan Cutler)
-* doc: Update sample.ceph.conf (`pr#13751 <http://github.com/ceph/ceph/pull/13751>`_, Saumay Agrawal)
-* doc: update to new ceph fs commands (`pr#13346 <http://github.com/ceph/ceph/pull/13346>`_, Patrick Donnelly)
-* doc: v12.0.0 release notes (`pr#13281 <http://github.com/ceph/ceph/pull/13281>`_, Abhishek Lekshmanan)
-* do_freebsd.sh: Remove ENODATA requirement (`pr#13626 <http://github.com/ceph/ceph/pull/13626>`_, Willem Jan Withagen)
-* fix upgrate from hammer when zone doesn't have zoneparams (`issue#19231 <http://tracker.ceph.com/issues/19231>`_, `pr#13900 <http://github.com/ceph/ceph/pull/13900>`_, Orit Wasserman)
-* include/denc, kv: silence gcc warnings (`pr#13458 <http://github.com/ceph/ceph/pull/13458>`_, Kefu Chai)
-* include/mempool.h: fix Clangs complaint about types (`pr#13523 <http://github.com/ceph/ceph/pull/13523>`_, Willem Jan Withagen)
-* init-ceph: fix ceph user args (`pr#13467 <http://github.com/ceph/ceph/pull/13467>`_, Sage Weil)
-* init-ceph: Make init-ceph work under FreeBSD for init-system (`pr#13209 <http://github.com/ceph/ceph/pull/13209>`_, Willem Jan Withagen)
-* init-ceph: print trailing n in "status" output (`pr#13351 <http://github.com/ceph/ceph/pull/13351>`_, Kefu Chai)
-* librados: add override for librados (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13442 <http://github.com/ceph/ceph/pull/13442>`_, liuchang0812)
-* librados: add override in headers (`pr#13775 <http://github.com/ceph/ceph/pull/13775>`_, liuchang0812)
-* librados: do not expose non-public symbols (`pr#13265 <http://github.com/ceph/ceph/pull/13265>`_, Kefu Chai)
-* librados, osd: clang fixes (`pr#13768 <http://github.com/ceph/ceph/pull/13768>`_, Kefu Chai)
-* librados: remove legacy object listing API, clean up newer api (`pr#13149 <http://github.com/ceph/ceph/pull/13149>`_, Sage Weil)
-* librados: replace the var name from onack to complete (`pr#13857 <http://github.com/ceph/ceph/pull/13857>`_, Pan Liu)
-* librados: use cursor for nobjects listing (`pr#13323 <http://github.com/ceph/ceph/pull/13323>`_, Yehuda Sadeh, Sage Weil)
-* librbd: add override keyword in header files (`issue#19012 <http://tracker.ceph.com/issues/19012>`_, `pr#13536 <http://github.com/ceph/ceph/pull/13536>`_, liuchang0812)
-* librbd: add SnapshotNamespace to ImageCtx (`pr#12970 <http://github.com/ceph/ceph/pull/12970>`_, Victor Denisov)
-* librbd: add writesame API (`pr#12645 <http://github.com/ceph/ceph/pull/12645>`_, Mingxin Liu, Gui Hecheng)
-* librbd: asynchronous clone state machine (`pr#12041 <http://github.com/ceph/ceph/pull/12041>`_, Dongsheng Yang)
-* librbd: asynchronous image removal state machine (`pr#12102 <http://github.com/ceph/ceph/pull/12102>`_, Dongsheng Yang, Venky Shankar)
-* librbd: eliminate compiler warnings (`pr#13729 <http://github.com/ceph/ceph/pull/13729>`_, Jason Dillaman)
-* librbd: fix clang compilation error (`issue#19260 <http://tracker.ceph.com/issues/19260>`_, `pr#13926 <http://github.com/ceph/ceph/pull/13926>`_, Mykola Golub)
-* librbd: fix segfault on EOPNOTSUPP returned while fetching snapshot timestamp (`issue#18839 <http://tracker.ceph.com/issues/18839>`_, `pr#13287 <http://github.com/ceph/ceph/pull/13287>`_, Gui Hecheng)
-* librbd: fix valid coverity warnings (`pr#14023 <http://github.com/ceph/ceph/pull/14023>`_, Jason Dillaman)
-* librbd: image create validates that pool supports overwrites (`issue#19081 <http://tracker.ceph.com/issues/19081>`_, `pr#13986 <http://github.com/ceph/ceph/pull/13986>`_, Jason Dillaman)
-* librbd: image-extent cache needs to clip out-of-bounds read buffers (`pr#13679 <http://github.com/ceph/ceph/pull/13679>`_, Jason Dillaman)
-* librbd: Include WorkQueue.h since we use it (`issue#18862 <http://tracker.ceph.com/issues/18862>`_, `pr#13322 <http://github.com/ceph/ceph/pull/13322>`_, Boris Ranto)
-* librbd: rbd ack cleanup (`pr#13791 <http://github.com/ceph/ceph/pull/13791>`_, runsisi)
-* librbd: relax "is parent mirrored" check when enabling mirroring for pool (`issue#19130 <http://tracker.ceph.com/issues/19130>`_, `pr#13752 <http://github.com/ceph/ceph/pull/13752>`_, Mykola Golub)
-* librbd: scatter/gather support for the C API (`issue#13025 <http://tracker.ceph.com/issues/13025>`_, `pr#13447 <http://github.com/ceph/ceph/pull/13447>`_, Jason Dillaman)
-* librbd: simplify image open/close semantics (`pr#13701 <http://github.com/ceph/ceph/pull/13701>`_, Jason Dillaman)
-* librbd: use 'override' keyword instead of 'virtual' (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13437 <http://github.com/ceph/ceph/pull/13437>`_, liuchang0812)
-* mailmap: fix Zhao Chao affiliation. (`pr#13413 <http://github.com/ceph/ceph/pull/13413>`_, Zhao Chao)
-* mailmap: Liu Yang affiliation (`pr#13427 <http://github.com/ceph/ceph/pull/13427>`_, LiuYang)
-* mailmap updates (`pr#13309 <http://github.com/ceph/ceph/pull/13309>`_, Loic Dachary)
-* mailmap: Willem Jan Withagen affiliation (`pr#13034 <http://github.com/ceph/ceph/pull/13034>`_, Willem Jan Withagen)
-* make-srpm: Pass first parameter to make-dist for building SRPM (`pr#13480 <http://github.com/ceph/ceph/pull/13480>`_, Wido den Hollander)
-* man/8/ceph-disk: fix formatting (`pr#13969 <http://github.com/ceph/ceph/pull/13969>`_, Kefu Chai)
-* mds: #11950: Persistent purge queue (`issue#11950 <http://tracker.ceph.com/issues/11950>`_, `pr#12786 <http://github.com/ceph/ceph/pull/12786>`_, John Spray)
-* mds: #18600: Clear out tasks that don't make sense from multimds suite (`issue#18600 <http://tracker.ceph.com/issues/18600>`_, `pr#13089 <http://github.com/ceph/ceph/pull/13089>`_, John Spray)
-* mds: Add multimds:thrash sub-suite and fix bugs in thrasher for multimds (`issue#18690 <http://tracker.ceph.com/issues/18690>`_, `issue#10792 <http://tracker.ceph.com/issues/10792>`_, `pr#13262 <http://github.com/ceph/ceph/pull/13262>`_, Patrick Donnelly)
-* mds: add override in headers (`pr#13691 <http://github.com/ceph/ceph/pull/13691>`_, liuchang0812)
-* mds: add override in mds subsystem (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13438 <http://github.com/ceph/ceph/pull/13438>`_, liuchang0812)
-* mds: automate MDS object count tracking (`pr#13591 <http://github.com/ceph/ceph/pull/13591>`_, Patrick Donnelly)
-* mds: extend 'p' auth cap to cover all vxattr stuff (`issue#19075 <http://tracker.ceph.com/issues/19075>`_, `pr#13628 <http://github.com/ceph/ceph/pull/13628>`_, John Spray)
-* mds: fix handling very fast delete ops (`issue#19245 <http://tracker.ceph.com/issues/19245>`_, `pr#13899 <http://github.com/ceph/ceph/pull/13899>`_, John Spray)
-* mds: fix IO error handling in SessionMap (`pr#13464 <http://github.com/ceph/ceph/pull/13464>`_, John Spray)
-* mds: ignore fs full check for CEPH_MDS_OP_SETFILELOCK (`issue#18953 <http://tracker.ceph.com/issues/18953>`_, `pr#13455 <http://github.com/ceph/ceph/pull/13455>`_, "Yan, Zheng")
-* mds/MDLog.cc Fix perf counter type for jlat (`pr#13449 <http://github.com/ceph/ceph/pull/13449>`_, Xiaoxi Chen)
-* mds: misc multimds fixes (`issue#18717 <http://tracker.ceph.com/issues/18717>`_, `issue#18754 <http://tracker.ceph.com/issues/18754>`_, `pr#13227 <http://github.com/ceph/ceph/pull/13227>`_, "Yan, Zheng")
-* mds: print rank as int (`issue#19201 <http://tracker.ceph.com/issues/19201>`_, `pr#13816 <http://github.com/ceph/ceph/pull/13816>`_, Patrick Donnelly)
-* mds: remove some redundant object counters (`pr#13704 <http://github.com/ceph/ceph/pull/13704>`_, Patrick Donnelly)
-* mds: replace C_VoidFn in MDSDaemon with lambdas (`pr#13465 <http://github.com/ceph/ceph/pull/13465>`_, John Spray)
-* mds/StrayManager: avoid reusing deleted inode in StrayManager::_purge_stray_logged (`issue#18877 <http://tracker.ceph.com/issues/18877>`_, `pr#13347 <http://github.com/ceph/ceph/pull/13347>`_, Zhi Zhang)
-* mds: try to avoid false positive heartbeat timeouts (`issue#19118 <http://tracker.ceph.com/issues/19118>`_, `pr#13807 <http://github.com/ceph/ceph/pull/13807>`_, John Spray)
-* messages/MOSDOp: fix pg_t decoding for version <7 decoding (`issue#19005 <http://tracker.ceph.com/issues/19005>`_, `pr#13537 <http://github.com/ceph/ceph/pull/13537>`_, Sage Weil)
-* mgr: add a get_version to the python interface (`pr#13669 <http://github.com/ceph/ceph/pull/13669>`_, John Spray)
-* mgr: add override in headers (`pr#13772 <http://github.com/ceph/ceph/pull/13772>`_, liuchang0812)
-* mgr: add override in mgr subsystem (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13436 <http://github.com/ceph/ceph/pull/13436>`_, liuchang0812)
-* mgr/MgrClient: use unique_ptr for MgrClient::session (`issue#19097 <http://tracker.ceph.com/issues/19097>`_, `pr#13685 <http://github.com/ceph/ceph/pull/13685>`_, Kefu Chai)
-* mgr: use unique_ptr for MgrStandby::active_mgr (`pr#13667 <http://github.com/ceph/ceph/pull/13667>`_, John Spray)
-* misc: SCA and Coverity Fixes (`pr#13208 <http://github.com/ceph/ceph/pull/13208>`_, Danny Al-Gaaf)
-* mon: add override in headers (`pr#13693 <http://github.com/ceph/ceph/pull/13693>`_, liuchang0812)
-* mon: add override in mon subsystem (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13440 <http://github.com/ceph/ceph/pull/13440>`_, liuchang0812)
-* mon: add warn info for osds were removed from osdmap but still kept in crushmap (`pr#12273 <http://github.com/ceph/ceph/pull/12273>`_, song baisen)
-* mon: avoid start election twice when quorum enter (`pr#10150 <http://github.com/ceph/ceph/pull/10150>`_, song baisen)
-* mon: crush straw_calc_version value is 0 or 1 not 0 to 2. (`pr#13554 <http://github.com/ceph/ceph/pull/13554>`_, song baisen)
-* mon: detect existing fs and duplicate name earlier (`issue#18964 <http://tracker.ceph.com/issues/18964>`_, `pr#13471 <http://github.com/ceph/ceph/pull/13471>`_, Patrick Donnelly)
-* mon: drop useless assignment statements (`pr#13958 <http://github.com/ceph/ceph/pull/13958>`_, wangzhengyong)
-* mon: enable luminous monmap feature on full quorum (`pr#13379 <http://github.com/ceph/ceph/pull/13379>`_, Joao Eduardo Luis)
-* mon: fix force_pg_create pg stuck in creating bug (`issue#18298 <http://tracker.ceph.com/issues/18298>`_, `pr#12539 <http://github.com/ceph/ceph/pull/12539>`_, Sage Weil)
-* mon: in output of "ceph osd df tree", display "-", not "0", for pg amount of a bucket (`pr#13015 <http://github.com/ceph/ceph/pull/13015>`_, Chuanhong Hong)
-* mon/MDSMonitor: remove create_new_fs from header (`pr#14019 <http://github.com/ceph/ceph/pull/14019>`_, Henrik Korkuc)
-* mon/MonClient: discard stray messages from non-acitve conns (`issue#19015 <http://tracker.ceph.com/issues/19015>`_, `pr#13656 <http://github.com/ceph/ceph/pull/13656>`_, Kefu Chai)
-* mon/MonClient: don't return zero global_id (`issue#19134 <http://tracker.ceph.com/issues/19134>`_, `pr#13853 <http://github.com/ceph/ceph/pull/13853>`_, "Yan, Zheng", Kefu Chai)
-* mon/MonClient: hunt monitors in parallel (`issue#16091 <http://tracker.ceph.com/issues/16091>`_, `pr#11128 <http://github.com/ceph/ceph/pull/11128>`_, Steven Dieffenbach, Kefu Chai)
-* mon/MonClient: persist global_id across re-connecting (`issue#18968 <http://tracker.ceph.com/issues/18968>`_, `pr#13550 <http://github.com/ceph/ceph/pull/13550>`_, Kefu Chai)
-* mon/MonClient: random all ranks then pick first_n (`pr#13479 <http://github.com/ceph/ceph/pull/13479>`_, Mingxin Liu)
-* mon,osd: luminous feature bits, require flags, upgrade gates (`pr#13278 <http://github.com/ceph/ceph/pull/13278>`_, Sage Weil)
-* mon: OSDMonitor add check only concern our self cluster command (`pr#10309 <http://github.com/ceph/ceph/pull/10309>`_, song baisen)
-* mon/OSDMonitor: fix dividing by zero in OSDUtilizationDumper (`pr#13531 <http://github.com/ceph/ceph/pull/13531>`_, Mingxin Liu)
-* mon/OSDMonitor: make mapping job behave if mon_osd_prime_pg_temp = false (`issue#19020 <http://tracker.ceph.com/issues/19020>`_, `pr#13574 <http://github.com/ceph/ceph/pull/13574>`_, Sage Weil)
-* mon/OSDMonitor: remove trivial PGMap dependency for 'osd primary-temp' command (`pr#13616 <http://github.com/ceph/ceph/pull/13616>`_, Sage Weil)
-* mon/OSDMonitor: some cleanup for reweight-by-pg (`pr#13462 <http://github.com/ceph/ceph/pull/13462>`_, Haodong Tang)
-* mon,osd: new mechanism for managing full and nearfull OSDs for luminous (`pr#13615 <http://github.com/ceph/ceph/pull/13615>`_, Sage Weil)
-* mon/PGMap: factor mon_osd_full_ratio into MAX AVAIL calc (`issue#18522 <http://tracker.ceph.com/issues/18522>`_, `pr#12923 <http://github.com/ceph/ceph/pull/12923>`_, Sage Weil)
-* mon: PGMonitor add check only concern our self cluster command (`pr#9976 <http://github.com/ceph/ceph/pull/9976>`_, song baisen)
-* mon/PGMonitor: rm nonused function (`pr#14033 <http://github.com/ceph/ceph/pull/14033>`_, Wei Jin)
-* mon: refactor MDSMonitor command handling (`pr#13581 <http://github.com/ceph/ceph/pull/13581>`_, John Spray)
-* mon: remove the redudant jugement in paxosservice is_writeable function (`pr#10240 <http://github.com/ceph/ceph/pull/10240>`_, song baisen)
-* mon: remove unnecessary function declaration (`pr#13762 <http://github.com/ceph/ceph/pull/13762>`_, liuchang0812)
-* mon: restructure prime_pg_temp around a full pg mapping calculated on multiple CPUs (`pr#13207 <http://github.com/ceph/ceph/pull/13207>`_, Sage Weil)
-* mon: smooth io/recovery stats over longer period (`pr#13249 <http://github.com/ceph/ceph/pull/13249>`_, Sage Weil)
-* mon: Update OSDMon.cc comments (`pr#13750 <http://github.com/ceph/ceph/pull/13750>`_, Saumay Agrawal)
-* msg/async: avoid lossy connection sending ack message (`pr#13700 <http://github.com/ceph/ceph/pull/13700>`_, Haomai Wang)
-* msg/async: cleanup code. (`pr#13304 <http://github.com/ceph/ceph/pull/13304>`_, Jianpeng Ma)
-* msg/async: fix crash that writing char to nonblock-fd gets EAGAIN in EventCenter::wakeup (`pr#13822 <http://github.com/ceph/ceph/pull/13822>`_, liuchang0812)
-* msg/AsyncMessenger: remove unused method (`pr#10125 <http://github.com/ceph/ceph/pull/10125>`_, Michal Jarzabek)
-* msg/async/rdma: add log to show correct destruct queuepair (`pr#13412 <http://github.com/ceph/ceph/pull/13412>`_, Haomai Wang)
-* msg/async/rdma: add perf counters to RDMA backend (`pr#13484 <http://github.com/ceph/ceph/pull/13484>`_, Haomai Wang)
-* msg/async/rdma: check if exp verbs avail (`pr#13391 <http://github.com/ceph/ceph/pull/13391>`_, Oren Duer, Adir Lev)
-* msg/async/rdma: check ulimit (`pr#13655 <http://github.com/ceph/ceph/pull/13655>`_, Sarit Zubakov, Adir Lev)
-* msg/async/rdma: cleanup (`pr#13509 <http://github.com/ceph/ceph/pull/13509>`_, Haomai Wang)
-* msg/async/rdma: compile with rdma as default (`pr#13901 <http://github.com/ceph/ceph/pull/13901>`_, DanielBar-On)
-* msg/async/rdma: destroy QueuePair if needed (`pr#13810 <http://github.com/ceph/ceph/pull/13810>`_, Haomai Wang)
-* msg/async/rdma: don't need to delete event when tcp connection isn't … (`pr#13528 <http://github.com/ceph/ceph/pull/13528>`_, Haomai Wang)
-* msg/async/rdma: Fix broken compilation (`pr#13603 <http://github.com/ceph/ceph/pull/13603>`_, Sarit Zubakov)
-* msg/async/rdma: fix outstanding queuepair when destruct RDMAStack (`pr#13905 <http://github.com/ceph/ceph/pull/13905>`_, Haomai Wang)
-* msg/async/rdma: fix potential racing connection usage (`pr#13738 <http://github.com/ceph/ceph/pull/13738>`_, Haomai Wang)
-* msg/async/rdma: Introduce Device.{cc,h} (`pr#14001 <http://github.com/ceph/ceph/pull/14001>`_, Amir Vadai)
-* msg/async/rdma: make Infiniband can be forkable (`pr#13525 <http://github.com/ceph/ceph/pull/13525>`_, Haomai Wang)
-* msg/async/rdma: move active_queue_pairs perf counter dec to polling (`pr#13716 <http://github.com/ceph/ceph/pull/13716>`_, DanielBar-On)
-* msg/async/rdma: Print error only on ENOMEM (`pr#13538 <http://github.com/ceph/ceph/pull/13538>`_, Sarit Zubakov)
-* msg/async/rdma: refactor tx handle flow to get rid of locks (`pr#13680 <http://github.com/ceph/ceph/pull/13680>`_, Haomai Wang)
-* msg/async/rdma: rename chunk_size to buffer_size (`pr#13666 <http://github.com/ceph/ceph/pull/13666>`_, Adir Lev)
-* msg/async/rdma: update destructor message (`pr#13539 <http://github.com/ceph/ceph/pull/13539>`_, Sarit Zubakov)
-* msg/async/rdma: zero wqe inline (`pr#13392 <http://github.com/ceph/ceph/pull/13392>`_, Adir Lev)
-* msg/async/rdm: fix leak when existing failure in ip network (`pr#13435 <http://github.com/ceph/ceph/pull/13435>`_, Haomai Wang)
-* msg/async: remove useless close function (`pr#13286 <http://github.com/ceph/ceph/pull/13286>`_, liuchang0812)
-* msg/async: set thread name for msgr worker (`pr#13699 <http://github.com/ceph/ceph/pull/13699>`_, Haomai Wang)
-* msg/async/Stack.cc: use of pthread_setname_np() needs compat.h (`pr#13825 <http://github.com/ceph/ceph/pull/13825>`_, Willem Jan Withagen)
-* msg/async: support IPv6 QoS. (`issue#18887 <http://tracker.ceph.com/issues/18887>`_, `issue#18928 <http://tracker.ceph.com/issues/18928>`_, `pr#13418 <http://github.com/ceph/ceph/pull/13418>`_, Robin H. Johnson)
-* msg: end parameter in entity_addr_t::parse is optional (`pr#13650 <http://github.com/ceph/ceph/pull/13650>`_, Mykola Golub)
-* msg: Fix calls to Messenger::create with new parameter (`pr#13329 <http://github.com/ceph/ceph/pull/13329>`_, Sarit Zubakov)
-* msg, messages: coverity fixes (`pr#13473 <http://github.com/ceph/ceph/pull/13473>`_, Kefu Chai)
-* msg: no need to pass supported features to Messenger::Policy ctor (`pr#13785 <http://github.com/ceph/ceph/pull/13785>`_, Sage Weil)
-* msg/simple: fix missing unlock when already bind (`pr#13267 <http://github.com/ceph/ceph/pull/13267>`_, Haomai Wang)
-* msg/simple/Pipe: support IPv6 QoS. (`issue#18887 <http://tracker.ceph.com/issues/18887>`_, `pr#13370 <http://github.com/ceph/ceph/pull/13370>`_, Robin H. Johnson)
-* msg/simple/Pipe:the returned value for do_recv unequal to zero (`pr#10272 <http://github.com/ceph/ceph/pull/10272>`_, zhang.zezhu)
-* os/aio: remove the redundant memset(struct iocb) (`pr#13662 <http://github.com/ceph/ceph/pull/13662>`_, Jianpeng Ma)
-* os/blestore/NVMEDevice: fix the I/O logic for read (`pr#13971 <http://github.com/ceph/ceph/pull/13971>`_, optimistyzy)
-* os/bluestore: add bluestore_prefer_wal_size option (`pr#13217 <http://github.com/ceph/ceph/pull/13217>`_, Sage Weil)
-* os/bluestore: add flush_store_cache cmd (`pr#13428 <http://github.com/ceph/ceph/pull/13428>`_, xie xingguo)
-* os/bluestore: add more perf_counters to BlueStore (`pr#13274 <http://github.com/ceph/ceph/pull/13274>`_, Igor Fedotov)
-* os/bluestore: add new garbage collector (`pr#12144 <http://github.com/ceph/ceph/pull/12144>`_, Igor Fedotov)
-* os/bluestore: add "_" prefix for internal methods (`pr#13409 <http://github.com/ceph/ceph/pull/13409>`_, xie xingguo)
-* os/bluestore/Allocator: drop unused return value in release function (`pr#13913 <http://github.com/ceph/ceph/pull/13913>`_, wangzhengyong)
-* os/bluestore/BitAllocator: fix bug of checking required blocks (`pr#13470 <http://github.com/ceph/ceph/pull/13470>`_, wangzhengyong)
-* os/bluestore/BitMapAllocator: rm unused variable (`pr#13599 <http://github.com/ceph/ceph/pull/13599>`_, Jie Wang)
-* os/bluestore/BlueStore.cc:remove unuse code in _open_bdev() (`pr#13553 <http://github.com/ceph/ceph/pull/13553>`_, yonghengdexin735)
-* os/bluestore: cleanup, got rid of table reference of 1<<x (`pr#13718 <http://github.com/ceph/ceph/pull/13718>`_, Adam Kupczyk)
-* os/bluestore: default 16KB min_alloc_size on ssd (`pr#14076 <http://github.com/ceph/ceph/pull/14076>`_, Sage Weil)
-* os/bluestore: do not use nullptr to calc the size of bluestore_pextent_t (`pr#14030 <http://github.com/ceph/ceph/pull/14030>`_, Kefu Chai)
-* os/bluestore: enable SSE-assisted CRC32 calculations in RocksDB (`pr#13741 <http://github.com/ceph/ceph/pull/13741>`_, Radoslaw Zarzynski)
-* os/bluestore: fix a bug in small write handling on sharded extents (`pr#13728 <http://github.com/ceph/ceph/pull/13728>`_, Igor Fedotov)
-* os/bluestore: fix bug in aio_read() (`pr#13511 <http://github.com/ceph/ceph/pull/13511>`_, tangwenjun)
-* os/bluestore: fix bug in _open_super_meta() (`pr#13559 <http://github.com/ceph/ceph/pull/13559>`_, Taeksang Kim)
-* os/bluestore: fix bugs in bluefs and bdev flush (`issue#19250 <http://tracker.ceph.com/issues/19250>`_, `issue#19251 <http://tracker.ceph.com/issues/19251>`_, `pr#13911 <http://github.com/ceph/ceph/pull/13911>`_, Sage Weil)
-* os/bluestore: fix coredump in register_ctrlr() (`pr#13556 <http://github.com/ceph/ceph/pull/13556>`_, tangwenjun)
-* os/bluestore: fix deferred writes; improve flush (`pr#13888 <http://github.com/ceph/ceph/pull/13888>`_, Sage Weil)
-* os/bluestore: fix wal-queue bytes-counter to keep pace with others (`pr#13382 <http://github.com/ceph/ceph/pull/13382>`_, xie xingguo)
-* os/bluestore: leverage the type knowledge in BitMapAreaLeaf. (`pr#13736 <http://github.com/ceph/ceph/pull/13736>`_, Radoslaw Zarzynski)
-* os/bluestore: "noid" is not always necessary in clone op (`pr#13769 <http://github.com/ceph/ceph/pull/13769>`_, wangzhengyong)
-* os/bluestore: partial reshard support (`pr#13162 <http://github.com/ceph/ceph/pull/13162>`_, Sage Weil)
-* os/bluestore: remove CephContext* from BmapEntry. (`pr#13651 <http://github.com/ceph/ceph/pull/13651>`_, Radoslaw Zarzynski)
-* os/bluestore: remove unneeded indirection in BitMapZone. (`pr#13743 <http://github.com/ceph/ceph/pull/13743>`_, Radoslaw Zarzynski)
-* os/bluestore: remove unused local variable "pos" (`pr#13715 <http://github.com/ceph/ceph/pull/13715>`_, wangzhengyong)
-* os/bluestore rm unused variable in aio_read() (`pr#13530 <http://github.com/ceph/ceph/pull/13530>`_, tangwenjun)
-* os/bluestore: silence gcc warning (`pr#14028 <http://github.com/ceph/ceph/pull/14028>`_, Kefu Chai)
-* os/bluestore: some cleanup (`pr#13390 <http://github.com/ceph/ceph/pull/13390>`_, liuchang0812)
-* os/bluestore,test/ceph_test_objectstore: silence gcc warnings (`pr#13924 <http://github.com/ceph/ceph/pull/13924>`_, Kefu Chai)
-* os/bluestore: the exhausted check in BitMapZone can be lock-less. (`pr#13653 <http://github.com/ceph/ceph/pull/13653>`_, Radoslaw Zarzynski)
-* osd: adding PerfCounters for backoff throttle (`pr#13017 <http://github.com/ceph/ceph/pull/13017>`_, Chuanhong Wang)
-* osd: add is_split check before _start_split (`pr#13307 <http://github.com/ceph/ceph/pull/13307>`_, song baisen)
-* osd: add override in osd subsystem (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13439 <http://github.com/ceph/ceph/pull/13439>`_, liuchang0812)
-* osd: add snap trim reservation and re-implement osd_snap_trim_sleep (`pr#13594 <http://github.com/ceph/ceph/pull/13594>`_, Samuel Just)
-* osdc: clean up osd_command/start_mon_command interfaces (`pr#13727 <http://github.com/ceph/ceph/pull/13727>`_, John Spray)
-* osdc: fix osdc_osd_seesion perf counter. (`pr#13478 <http://github.com/ceph/ceph/pull/13478>`_, Xiaoxi Chen)
-* osd: change a few messages at level 0 and 1; change default level to 1/5 (`pr#13407 <http://github.com/ceph/ceph/pull/13407>`_, Sage Weil)
-* osd: clarify REQUIRE_LUMINOUS error message (`pr#13363 <http://github.com/ceph/ceph/pull/13363>`_, Josh Durgin)
-* osdc/Objecter: fix bugs in explicit naming of op spg_t (`pr#13534 <http://github.com/ceph/ceph/pull/13534>`_, Sage Weil)
-* osdc/Objecter: fix possible OSDSession leak on wrong connection (`pr#13365 <http://github.com/ceph/ceph/pull/13365>`_, xie xingguo)
-* osdc/Objecter: resend RWORDERED ops on full (`issue#19133 <http://tracker.ceph.com/issues/19133>`_, `pr#13759 <http://github.com/ceph/ceph/pull/13759>`_, Sage Weil)
-* osd: constify OpRequest::get_req(); fix a few cases of operator<< vs mutated message races (`pr#13545 <http://github.com/ceph/ceph/pull/13545>`_, Sage Weil)
-* osd: correct epoch setting of osd boot msg (`pr#12623 <http://github.com/ceph/ceph/pull/12623>`_, Mingxin Liu)
-* osd: correct the func name in execute_ctx() log messages (`pr#13582 <http://github.com/ceph/ceph/pull/13582>`_, Gu Zhongyan)
-* osd: debug con in ms_handle_connect (`pr#13540 <http://github.com/ceph/ceph/pull/13540>`_, Sage Weil)
-* osd/: don't leak context for Blessed*Context or RecoveryQueueAsync (`issue#18809 <http://tracker.ceph.com/issues/18809>`_, `pr#13342 <http://github.com/ceph/ceph/pull/13342>`_, Samuel Just)
-* osd: don't share osdmap with objecter when preboot (`issue#15025 <http://tracker.ceph.com/issues/15025>`_, `pr#13946 <http://github.com/ceph/ceph/pull/13946>`_, Mingxin Liu)
-* osd: don't use ORDERSNAP for flush; always request/send ondisk ack (`issue#18961 <http://tracker.ceph.com/issues/18961>`_, `pr#13570 <http://github.com/ceph/ceph/pull/13570>`_, Samuel Just)
-* OSD: drop parameter t from merge_log() (`pr#13923 <http://github.com/ceph/ceph/pull/13923>`_, xie xingguo)
-* osd: drop support for listing objects at a given snap (`pr#13398 <http://github.com/ceph/ceph/pull/13398>`_, Sage Weil)
-* osd/ECBackend: drop duplicated pending_commit field from << operator (`pr#13665 <http://github.com/ceph/ceph/pull/13665>`_, xie xingguo)
-* osd: fall back to failsafe threshold if osdmap doesn't set [near]full (`pr#14004 <http://github.com/ceph/ceph/pull/14004>`_, Sage Weil)
-* osd: faster dispatch (`pr#13343 <http://github.com/ceph/ceph/pull/13343>`_, Sage Weil)
-* osd: fix a signed/unsigned warning in PG (`pr#13922 <http://github.com/ceph/ceph/pull/13922>`_, Greg Farnum)
-* osd: fix func name in log produced by handle_pg_peering_evt() (`pr#13801 <http://github.com/ceph/ceph/pull/13801>`_, xie xingguo)
-* osd: fix stat sum update of recovery pushing (`pr#13328 <http://github.com/ceph/ceph/pull/13328>`_, Zhiqiang Wang)
-* osd: fix the setting of soid in sub_op_push (`pr#13353 <http://github.com/ceph/ceph/pull/13353>`_, Zhiqiang Wang)
-* osd: have clients resend ops on pg split (`pr#13235 <http://github.com/ceph/ceph/pull/13235>`_, Sage Weil)
-* osd: kill sortbitwise (`pr#13321 <http://github.com/ceph/ceph/pull/13321>`_, Sage Weil)
-* osd,osdc: pg and osd-based backoff (`pr#12342 <http://github.com/ceph/ceph/pull/12342>`_, Sage Weil)
-* osd: osd discussion docs (`pr#13344 <http://github.com/ceph/ceph/pull/13344>`_, Greg Farnum)
-* osd/osd_internal_types: wake snaptrimmer on put_read lock, too (`issue#19131 <http://tracker.ceph.com/issues/19131>`_, `pr#13755 <http://github.com/ceph/ceph/pull/13755>`_, Sage Weil)
-* osd/OSDMap: don't set weight to IN when OSD is destroyed (`issue#19119 <http://tracker.ceph.com/issues/19119>`_, `pr#13730 <http://github.com/ceph/ceph/pull/13730>`_, Ilya Dryomov)
-* osd/PG: conditionally retry on receiving pg-notify when Primary is Incomplete (`pr#13942 <http://github.com/ceph/ceph/pull/13942>`_, xie xingguo)
-* osd/PGLog: fix index for parent and child log on split (`issue#18975 <http://tracker.ceph.com/issues/18975>`_, `pr#13493 <http://github.com/ceph/ceph/pull/13493>`_, Sage Weil)
-* osd/PG: restrict want_acting to up+acting on recovery completion (`issue#18929 <http://tracker.ceph.com/issues/18929>`_, `pr#13420 <http://github.com/ceph/ceph/pull/13420>`_, Sage Weil)
-* osd/Pool: Disallow enabling 'hashpspool' option to a pool without '--yes-i-really-mean-it' (`issue#18468 <http://tracker.ceph.com/issues/18468>`_, `pr#13406 <http://github.com/ceph/ceph/pull/13406>`_, Vikhyat Umrao)
-* osd/PrimaryLogPG: remove duplicated code. (`pr#13894 <http://github.com/ceph/ceph/pull/13894>`_, Jianpeng Ma)
-* osd: remove copy-get-classic (`pr#13547 <http://github.com/ceph/ceph/pull/13547>`_, Sage Weil)
-* osd: remove sortbitwise thrashing (`pr#13296 <http://github.com/ceph/ceph/pull/13296>`_, Sage Weil)
-* osd: replace object_info_t::operator=() with decode() (`pr#13938 <http://github.com/ceph/ceph/pull/13938>`_, tang.jin)
-* osd: small clear up and optimize on _recover_now and should_share_map function (`pr#13476 <http://github.com/ceph/ceph/pull/13476>`_, song baisen)
-* osd: the osd should not share map with others when it is in stopping state (`pr#13668 <http://github.com/ceph/ceph/pull/13668>`_, song baisen)
-* osd: various changes for preventing internal ENOSPC condition (`issue#16878 <http://tracker.ceph.com/issues/16878>`_, `pr#13425 <http://github.com/ceph/ceph/pull/13425>`_, David Zafman)
-* osd: we know the definite epoch of marking down (`pr#13121 <http://github.com/ceph/ceph/pull/13121>`_, Mingxin Liu)
-* os/filestore: avoid unnecessary copy in filestore::_do_transaction (`pr#12578 <http://github.com/ceph/ceph/pull/12578>`_, Yunchuan Wen)
-* os/filestore: debug which omap keys are set (`issue#19067 <http://tracker.ceph.com/issues/19067>`_, `pr#13671 <http://github.com/ceph/ceph/pull/13671>`_, Sage Weil)
-* os/filestore/FileJournal: bufferlist rebuild (`pr#13980 <http://github.com/ceph/ceph/pull/13980>`_, Jianpeng Ma)
-* os/filestore/FileStore.cc: remove unneeded loop (`pr#12177 <http://github.com/ceph/ceph/pull/12177>`_, Li Wang)
-* os/filestore/HashIndex: be loud about splits (`issue#18235 <http://tracker.ceph.com/issues/18235>`_, `pr#12421 <http://github.com/ceph/ceph/pull/12421>`_, Dan van der Ster)
-* os/filestore: use existing variable for same func. (`pr#13742 <http://github.com/ceph/ceph/pull/13742>`_, Pan Liu)
-* os/FuseStore: include <functional> header in src/os/FuseStore.h for gcc 7.x (`pr#13454 <http://github.com/ceph/ceph/pull/13454>`_, Jos Collin)
-* PendingReleaseNotes: note the fuse fstab format change (`pr#13259 <http://github.com/ceph/ceph/pull/13259>`_, John Spray)
-* pybind/ceph_daemon: use small chunk for recv (`pr#13804 <http://github.com/ceph/ceph/pull/13804>`_, Xiaoxi Chen)
-* pybind: cephfs should be built without librados / python-rados (`pr#13431 <http://github.com/ceph/ceph/pull/13431>`_, Kefu Chai)
-* pybind: fix docstring for librbd Python binding (`pr#13977 <http://github.com/ceph/ceph/pull/13977>`_, runsisi)
-* qa: add supported distros for ceph-ansible (`pr#13711 <http://github.com/ceph/ceph/pull/13711>`_, Tamil Muthamizhan)
-* qa: add workunit to test krbd data-pool support (`pr#13482 <http://github.com/ceph/ceph/pull/13482>`_, Ilya Dryomov)
-* qa: fix race in Mount.open_background (`issue#18661 <http://tracker.ceph.com/issues/18661>`_, `pr#13137 <http://github.com/ceph/ceph/pull/13137>`_, John Spray)
-* qa: handle SSHException in logrotate (`pr#13359 <http://github.com/ceph/ceph/pull/13359>`_, John Spray)
-* qa/rados/upgrade/jewel-x-singleton: run luminous.yaml at the end (`pr#13378 <http://github.com/ceph/ceph/pull/13378>`_, Sage Weil)
-* qa/suites/{ceph-ansible,rest}: OpenStack volumes (`pr#13672 <http://github.com/ceph/ceph/pull/13672>`_, Zack Cerza)
-* qa/suites/ceph-deploy: Drop OpenStack volume count (`pr#13706 <http://github.com/ceph/ceph/pull/13706>`_, Zack Cerza)
-* qa/suites: fix upgrade tests vs cluster full thrashing (`pr#13852 <http://github.com/ceph/ceph/pull/13852>`_, Sage Weil)
-* qa/suites/fs: Add openstack volume configuration (`pr#13640 <http://github.com/ceph/ceph/pull/13640>`_, Zack Cerza)
-* qa/suites/kcephfs: Openstack volume configuration (`pr#13634 <http://github.com/ceph/ceph/pull/13634>`_, Zack Cerza)
-* qa/suites/{knfs,hadoop,samba}: OpenStack volume configuration (`pr#13637 <http://github.com/ceph/ceph/pull/13637>`_, Zack Cerza)
-* qa/suites/krbd: Add openstack volume configuration (`pr#13631 <http://github.com/ceph/ceph/pull/13631>`_, Zack Cerza)
-* qa/suites/rados/objectstore: enable experimental features for testing bluestore (`pr#13456 <http://github.com/ceph/ceph/pull/13456>`_, Kefu Chai, Dan Mick)
-* qa/suites/rgw: Add openstack volume configuration (`pr#13611 <http://github.com/ceph/ceph/pull/13611>`_, Zack Cerza)
-* qa/suites/rgw/thrash: add osd thrashing tests (`pr#13445 <http://github.com/ceph/ceph/pull/13445>`_, Sage Weil)
-* qa/suites/upgrade: add tiering test to hammer-jewel-x (`issue#19185 <http://tracker.ceph.com/issues/19185>`_, `pr#13805 <http://github.com/ceph/ceph/pull/13805>`_, Kefu Chai)
-* qa/suites/upgrade/kraken-x: do not thrash cluster full during upgrade (`issue#19232 <http://tracker.ceph.com/issues/19232>`_, `pr#13892 <http://github.com/ceph/ceph/pull/13892>`_, Dan Mick)
-* qa/suites/upgrade/kraken-x (`pr#13517 <http://github.com/ceph/ceph/pull/13517>`_, Sage Weil, Yuri Weinstein)
-* qa/suite/upgrade/jewel-x: various fixes (`pr#13734 <http://github.com/ceph/ceph/pull/13734>`_, Sage Weil)
-* qa/tasks/ceph.py: debug which pgs aren't scrubbing (`pr#13649 <http://github.com/ceph/ceph/pull/13649>`_, Sage Weil)
-* qa/tasks: force umount during kclient teardown (`issue#18663 <http://tracker.ceph.com/issues/18663>`_, `pr#13099 <http://github.com/ceph/ceph/pull/13099>`_, John Spray)
-* qa/tasks/rgw.py: start Apache before RadosGW. (`pr#13846 <http://github.com/ceph/ceph/pull/13846>`_, Radoslaw Zarzynski)
-* qa/tasks/workunit: use ceph.git as an alternative of ceph-ci.git for cloning workunit (`pr#13663 <http://github.com/ceph/ceph/pull/13663>`_, Kefu Chai)
-* qa/tasks/workunit: use the suite repo for cloning workunit (`pr#13452 <http://github.com/ceph/ceph/pull/13452>`_, Kefu Chai)
-* qa/tasks/workunit: use the suite repo for cloning workunit (`pr#13625 <http://github.com/ceph/ceph/pull/13625>`_, Kefu Chai)
-* qa/workunits/rados/test.sh: print test name when it fails (`pr#13264 <http://github.com/ceph/ceph/pull/13264>`_, Kefu Chai)
-* qa/workunits/rbd: resolve potential rbd-mirror race conditions (`issue#18935 <http://tracker.ceph.com/issues/18935>`_, `pr#13421 <http://github.com/ceph/ceph/pull/13421>`_, Jason Dillaman)
-* qa/workunits/rbd: tweak rbd-mirror config to spead up testing (`pr#13228 <http://github.com/ceph/ceph/pull/13228>`_, Mykola Golub)
-* rados: allow "rados purge" to delete objects when osd is full (`pr#13814 <http://github.com/ceph/ceph/pull/13814>`_, Pan Liu)
-* rados: we need to get the latest osdmap when pool does not exists (`pr#13289 <http://github.com/ceph/ceph/pull/13289>`_, song baisen)
-* rbd: demote/promote all mirrored images in a pool (`issue#18748 <http://tracker.ceph.com/issues/18748>`_, `pr#13758 <http://github.com/ceph/ceph/pull/13758>`_, Jason Dillaman)
-* rbd: fix typo in Kernel.cc (`issue#19273 <http://tracker.ceph.com/issues/19273>`_, `pr#13983 <http://github.com/ceph/ceph/pull/13983>`_, Gaurav Kumar Garg)
-* rbd: introduce v2 format for rbd export/import (`issue#13186 <http://tracker.ceph.com/issues/13186>`_, `pr#10487 <http://github.com/ceph/ceph/pull/10487>`_, Dongsheng Yang)
-* rbdmap: consider /etc/ceph/rbdmap when unmapping images (`issue#18884 <http://tracker.ceph.com/issues/18884>`_, `pr#13361 <http://github.com/ceph/ceph/pull/13361>`_, David Disseldorp)
-* rbd-mirror A/A: leader should track up/down rbd-mirror instances (`issue#18784 <http://tracker.ceph.com/issues/18784>`_, `pr#13571 <http://github.com/ceph/ceph/pull/13571>`_, Mykola Golub)
-* rbd-mirror: deleting a snapshot during sync can result in read errors (`issue#18990 <http://tracker.ceph.com/issues/18990>`_, `pr#13568 <http://github.com/ceph/ceph/pull/13568>`_, Jason Dillaman)
-* rbd-mirror: InstanceWatcher watch/notify stub for leader/follower RPC (`issue#18783 <http://tracker.ceph.com/issues/18783>`_, `pr#13312 <http://github.com/ceph/ceph/pull/13312>`_, Mykola Golub)
-* rbd-mirror: replace remote pool polling with add/remove notifications (`issue#15029 <http://tracker.ceph.com/issues/15029>`_, `pr#12364 <http://github.com/ceph/ceph/pull/12364>`_, Jason Dillaman)
-* rbd-mirror: track images via global image id (`pr#13416 <http://github.com/ceph/ceph/pull/13416>`_, Jason Dillaman)
-* rbd-nbd: check /sys/block/nbdX/size to ensure kernel mapped correctly (`issue#18335 <http://tracker.ceph.com/issues/18335>`_, `pr#13229 <http://github.com/ceph/ceph/pull/13229>`_, Mykola Golub)
-* rbd-nbd: create admin socket only for map command (`issue#17951 <http://tracker.ceph.com/issues/17951>`_, `pr#12433 <http://github.com/ceph/ceph/pull/12433>`_, Pan Liu)
-* rbd-nbd: don't ignore --read-only option in BLKROSET ioctl (`pr#13944 <http://github.com/ceph/ceph/pull/13944>`_, Pan Liu)
-* rbd-nbd: fix a typo "moudle" (`pr#13652 <http://github.com/ceph/ceph/pull/13652>`_, Pan Liu)
-* rbd-nbd: fix typo in comment (`pr#14034 <http://github.com/ceph/ceph/pull/14034>`_, Pan Liu)
-* rbd-nbd: no need to check image format any more (`pr#13389 <http://github.com/ceph/ceph/pull/13389>`_, Mykola Golub)
-* rbd-nbd: update size only when NBD_SET_SIZE successful (`pr#14005 <http://github.com/ceph/ceph/pull/14005>`_, Pan Liu)
-* rbd-nbd: warn when kernel parameters are ignored (`issue#19108 <http://tracker.ceph.com/issues/19108>`_, `pr#13694 <http://github.com/ceph/ceph/pull/13694>`_, Pan Liu)
-* rbd: prevent adding multiple mirror peers to a single pool (`issue#19256 <http://tracker.ceph.com/issues/19256>`_, `pr#13919 <http://github.com/ceph/ceph/pull/13919>`_, Jason Dillaman)
-* rbd: spell out image features unsupported by the kernel (`issue#19095 <http://tracker.ceph.com/issues/19095>`_, `pr#13812 <http://github.com/ceph/ceph/pull/13812>`_, Ilya Dryomov)
-* rbd: use concurrent writes for imports (`issue#19034 <http://tracker.ceph.com/issues/19034>`_, `pr#13782 <http://github.com/ceph/ceph/pull/13782>`_, Venky Shankar)
-* rbd: When Ceph cluster becomes full, should allow user to remove rbd … (`pr#12627 <http://github.com/ceph/ceph/pull/12627>`_, Pan Liu)
-* ReplicatedBackend: don't queue Context outside of ObjectStore with obc (`issue#18927 <http://tracker.ceph.com/issues/18927>`_, `pr#13569 <http://github.com/ceph/ceph/pull/13569>`_, Samuel Just)
-* Revert "dummy: reduce run time, run user.yaml playbook" (`issue#18259 <http://tracker.ceph.com/issues/18259>`_, `pr#12506 <http://github.com/ceph/ceph/pull/12506>`_, Nathan Cutler)
-* Revert "qa/tasks/workunit: use the suite repo for cloning workunit" (`pr#13495 <http://github.com/ceph/ceph/pull/13495>`_, Sage Weil)
-* Reviewed by: Yan, Zheng <zyan@redhat.com> (`issue#18830 <http://tracker.ceph.com/issues/18830>`_, `pr#13272 <http://github.com/ceph/ceph/pull/13272>`_, John Spray)
-* rgw: AbortMultipart request returns NoSuchUpload error if the meta obj doesn't exist (`pr#12793 <http://github.com/ceph/ceph/pull/12793>`_, Zhang Shaowen)
-* rgw: add apis to support ragweed (`pr#13645 <http://github.com/ceph/ceph/pull/13645>`_, Yehuda Sadeh)
-* rgw: add override in header files mostly (`pr#13586 <http://github.com/ceph/ceph/pull/13586>`_, liuchang0812)
-* rgw: add override in rgw subsystem (`issue#18922 <http://tracker.ceph.com/issues/18922>`_, `pr#13441 <http://github.com/ceph/ceph/pull/13441>`_, liuchang0812)
-* rgw: add radosclient finisher to perf counter (`issue#19011 <http://tracker.ceph.com/issues/19011>`_, `pr#13535 <http://github.com/ceph/ceph/pull/13535>`_, lvshuhua)
-* rgw: add support for noncurrentversion expiration in s3 lifecycle. (`issue#18916 <http://tracker.ceph.com/issues/18916>`_, `pr#13385 <http://github.com/ceph/ceph/pull/13385>`_, Zhang Shaowen)
-* rgw-admin: remove deprecated regionmap commands (`issue#18725 <http://tracker.ceph.com/issues/18725>`_, `pr#13963 <http://github.com/ceph/ceph/pull/13963>`_, Casey Bodley)
-* rgw: change default chunk size to 4MB (`issue#18621 <http://tracker.ceph.com/issues/18621>`_, `issue#18622 <http://tracker.ceph.com/issues/18622>`_, `issue#18623 <http://tracker.ceph.com/issues/18623>`_, `pr#13035 <http://github.com/ceph/ceph/pull/13035>`_, Yehuda Sadeh)
-* rgw: change loglevel to 20 for 'System already converted' message (`issue#18919 <http://tracker.ceph.com/issues/18919>`_, `pr#13399 <http://github.com/ceph/ceph/pull/13399>`_, Vikhyat Umrao)
-* rgw: change loglevel to 5 in user's quota sync. (`issue#18921 <http://tracker.ceph.com/issues/18921>`_, `pr#13408 <http://github.com/ceph/ceph/pull/13408>`_, Zhang Shaowen)
-* rgw: clean redundant code (`pr#13302 <http://github.com/ceph/ceph/pull/13302>`_, Yankun Li)
-* rgw: cleanup lifecycle managament (`pr#13820 <http://github.com/ceph/ceph/pull/13820>`_, Jiaying Ren)
-* rgw: clean up the redundant assignment in last_entry_in_listing (`pr#13387 <http://github.com/ceph/ceph/pull/13387>`_, Jing Wenjun)
-* rgw: cleanup unused var in rgw/rgw_rest_s3.cc (`pr#13434 <http://github.com/ceph/ceph/pull/13434>`_, Jiaying Ren)
-* rgw: clear old zone short ids on period update (`issue#15618 <http://tracker.ceph.com/issues/15618>`_, `pr#13949 <http://github.com/ceph/ceph/pull/13949>`_, Casey Bodley)
-* rgw: correct the debug info when unlink instance failed. (`pr#13761 <http://github.com/ceph/ceph/pull/13761>`_, Zhang Shaowen)
-* rgw: Correct the return codes for the health check feature (`issue#19025 <http://tracker.ceph.com/issues/19025>`_, `pr#13557 <http://github.com/ceph/ceph/pull/13557>`_, Pavan Rallabhandi)
-* rgw: data sync includes instance in rgw_obj_index_key (`pr#13948 <http://github.com/ceph/ceph/pull/13948>`_, Casey Bodley)
-* rgw: don't init rgw_obj from rgw_obj_key when it's incorrect to do so (`issue#19096 <http://tracker.ceph.com/issues/19096>`_, `pr#13676 <http://github.com/ceph/ceph/pull/13676>`_, Yehuda Sadeh)
-* rgw: don't log the env_map twice (`pr#13481 <http://github.com/ceph/ceph/pull/13481>`_, Abhishek Lekshmanan)
-* rgw: don't return skew time error in pre-signed url (`issue#18828 <http://tracker.ceph.com/issues/18828>`_, `pr#13354 <http://github.com/ceph/ceph/pull/13354>`_, liuchang0812)
-* rgw: error_code in error log is not right when data sync fails. (`issue#18437 <http://tracker.ceph.com/issues/18437>`_, `pr#12810 <http://github.com/ceph/ceph/pull/12810>`_, Zhang Shaowen)
-* rgw_file: avoid stranding invalid-name bucket handles in fhcache (`issue#19036 <http://tracker.ceph.com/issues/19036>`_, `pr#13590 <http://github.com/ceph/ceph/pull/13590>`_, Matt Benjamin)
-* rgw_file: ensure valid_s3_object_name for directories, too (`issue#19066 <http://tracker.ceph.com/issues/19066>`_, `pr#13614 <http://github.com/ceph/ceph/pull/13614>`_, Matt Benjamin)
-* rgw_file: fix double unref on rgw_fh for rename (`pr#13988 <http://github.com/ceph/ceph/pull/13988>`_, Gui Hecheng)
-* rgw_file: fix fs_inst progression (`issue#19214 <http://tracker.ceph.com/issues/19214>`_, `pr#13832 <http://github.com/ceph/ceph/pull/13832>`_, Matt Benjamin)
-* rgw_file: fix non-negative return code for open operation (`pr#14045 <http://github.com/ceph/ceph/pull/14045>`_, Gui Hecheng)
-* rgw_file: fix reversed return value of getattr (`pr#13895 <http://github.com/ceph/ceph/pull/13895>`_, Gui Hecheng)
-* rgw_file: implement reliable has-children check (unlink dir) (`issue#19270 <http://tracker.ceph.com/issues/19270>`_, `pr#13953 <http://github.com/ceph/ceph/pull/13953>`_, Matt Benjamin)
-* rgw_file: posix style atime,ctime,mtime (`pr#13765 <http://github.com/ceph/ceph/pull/13765>`_, Gui Hecheng)
-* rgw_file: RGWFileHandle dtor must also cond-unlink from FHCache (`issue#19112 <http://tracker.ceph.com/issues/19112>`_, `pr#13712 <http://github.com/ceph/ceph/pull/13712>`_, Matt Benjamin)
-* rgw: fix break inside of yield in RGWFetchAllMetaCR (`issue#17655 <http://tracker.ceph.com/issues/17655>`_, `pr#11586 <http://github.com/ceph/ceph/pull/11586>`_, Casey Bodley)
-* rgw: fix disabling Swift's object versioning through empty X-Versions-Location (`issue#18852 <http://tracker.ceph.com/issues/18852>`_, `pr#13303 <http://github.com/ceph/ceph/pull/13303>`_, Jing Wenjun)
-* rgw: fix error code of inexistence of versions location in swift api (`issue#18880 <http://tracker.ceph.com/issues/18880>`_, `pr#13350 <http://github.com/ceph/ceph/pull/13350>`_, Jing Wenjun)
-* rgw:Fixes typo in rgw_admin.cc (`issue#19026 <http://tracker.ceph.com/issues/19026>`_, `pr#13576 <http://github.com/ceph/ceph/pull/13576>`_, Ronak Jain)
-* rgw: fix for broken yields in RGWMetaSyncShardCR (`issue#18076 <http://tracker.ceph.com/issues/18076>`_, `pr#12223 <http://github.com/ceph/ceph/pull/12223>`_, Casey Bodley)
-* rgw: fix init_bucket_for_sync retcode (`pr#13684 <http://github.com/ceph/ceph/pull/13684>`_, Shasha Lu)
-* rgw: fix transition from full to incremental meta sync (`pr#13920 <http://github.com/ceph/ceph/pull/13920>`_, Casey Bodley)
-* rgw: fix typo in comment (`pr#13578 <http://github.com/ceph/ceph/pull/13578>`_, liuchang0812)
-* rgw: get torrent request's parameter is not the same as amazon s3. (`issue#19136 <http://tracker.ceph.com/issues/19136>`_, `pr#13760 <http://github.com/ceph/ceph/pull/13760>`_, Zhang Shaowen)
-* rgw: handle error return value in build_linked_oids_index (`pr#13955 <http://github.com/ceph/ceph/pull/13955>`_, wangzhengyong)
-* rgw: http_client clarify the debug msg function call (`pr#13688 <http://github.com/ceph/ceph/pull/13688>`_, Abhishek Lekshmanan)
-* rgw: if user.email is empty, dont try to delete (`issue#18980 <http://tracker.ceph.com/issues/18980>`_, `pr#13783 <http://github.com/ceph/ceph/pull/13783>`_, Casey Bodley)
-* rgw: improve handling of illformed Swift's container ACLs. (`issue#18796 <http://tracker.ceph.com/issues/18796>`_, `pr#13248 <http://github.com/ceph/ceph/pull/13248>`_, Radoslaw Zarzynski)
-* rgw: Let the object stat command be shown in the usage (`issue#19013 <http://tracker.ceph.com/issues/19013>`_, `pr#13291 <http://github.com/ceph/ceph/pull/13291>`_, Pavan Rallabhandi)
-* rgw: librgw refcnt (`pr#13405 <http://github.com/ceph/ceph/pull/13405>`_, Matt Benjamin)
-* rgw: make sending Content-Length in 204 and 304 responses controllable (`issue#16602 <http://tracker.ceph.com/issues/16602>`_, `pr#10156 <http://github.com/ceph/ceph/pull/10156>`_, Radoslaw Zarzynski)
-* rgw: make sync thread name clear (`issue#18860 <http://tracker.ceph.com/issues/18860>`_, `pr#13324 <http://github.com/ceph/ceph/pull/13324>`_, lvshuhua)
-* rgw: print is_admin as int instead of __u8 (`pr#12264 <http://github.com/ceph/ceph/pull/12264>`_, Casey Bodley)
-* rgw: put object's acl can't work well on the latest object (`issue#18649 <http://tracker.ceph.com/issues/18649>`_, `pr#13078 <http://github.com/ceph/ceph/pull/13078>`_, Zhang Shaowen)
-* rgw: remove redundant codes in rgw_cache.h (`pr#13902 <http://github.com/ceph/ceph/pull/13902>`_, lihongjie)
-* rgw: remove useless --tier_type in radosgw-admin. (`pr#13856 <http://github.com/ceph/ceph/pull/13856>`_, Zhang Shaowen)
-* rgw: rest_admin/user avoid double checking input args (`pr#13460 <http://github.com/ceph/ceph/pull/13460>`_, Abhishek Lekshmanan)
-* rgw/rgw_main.cc: fix parenteses and function result (`pr#12295 <http://github.com/ceph/ceph/pull/12295>`_, Willem Jan Withagen)
-* rgw: set dumpable flag after setuid post ff0e521 (`issue#19089 <http://tracker.ceph.com/issues/19089>`_, `pr#13657 <http://github.com/ceph/ceph/pull/13657>`_, Brad Hubbard)
-* rgw: set FCGI_INCLUDE_DIR for cephd_rgw_base (`issue#18918 <http://tracker.ceph.com/issues/18918>`_, `pr#13393 <http://github.com/ceph/ceph/pull/13393>`_, David Disseldorp)
-* rgw structures rework (`issue#17996 <http://tracker.ceph.com/issues/17996>`_, `issue#19249 <http://tracker.ceph.com/issues/19249>`_, `pr#11485 <http://github.com/ceph/ceph/pull/11485>`_, Yehuda Sadeh)
-* rgw: use rgw_zone_root_pool for region_map like is done in hammer (`issue#19195 <http://tracker.ceph.com/issues/19195>`_, `pr#13928 <http://github.com/ceph/ceph/pull/13928>`_, Orit Wasserman)
-* rgw: use separate http_manager for read_sync_status (`issue#19236 <http://tracker.ceph.com/issues/19236>`_, `pr#13660 <http://github.com/ceph/ceph/pull/13660>`_, Shasha Lu)
-* rgw: wip dir orphan (`issue#18992 <http://tracker.ceph.com/issues/18992>`_, `issue#18989 <http://tracker.ceph.com/issues/18989>`_, `issue#19018 <http://tracker.ceph.com/issues/19018>`_, `issue#18991 <http://tracker.ceph.com/issues/18991>`_, `pr#13529 <http://github.com/ceph/ceph/pull/13529>`_, Matt Benjamin)
-* rgw: wip parentref (`issue#19060 <http://tracker.ceph.com/issues/19060>`_, `issue#19059 <http://tracker.ceph.com/issues/19059>`_, `pr#13607 <http://github.com/ceph/ceph/pull/13607>`_, Matt Benjamin)
-* rocksdb: sync with upstream (`issue#18464 <http://tracker.ceph.com/issues/18464>`_, `pr#13306 <http://github.com/ceph/ceph/pull/13306>`_, Kefu Chai)
-* rpm: build ceph-resource-agents by default (`issue#17613 <http://tracker.ceph.com/issues/17613>`_, `pr#13515 <http://github.com/ceph/ceph/pull/13515>`_, Nathan Cutler)
-* rpm: disable dwz to speed up valgrind (`issue#19099 <http://tracker.ceph.com/issues/19099>`_, `pr#13748 <http://github.com/ceph/ceph/pull/13748>`_, Kefu Chai)
-* rpm: drop boost build dependencies (`pr#13519 <http://github.com/ceph/ceph/pull/13519>`_, Nathan Cutler)
-* script/find_dups_in_pg_log: scrip to find dup requests due to short pg logs (`pr#13417 <http://github.com/ceph/ceph/pull/13417>`_, Sage Weil)
-* script/sepia_bt.sh: get sha1,release from t.log if it's not in core (`pr#13620 <http://github.com/ceph/ceph/pull/13620>`_, Kefu Chai)
-* script/sepia_bt.sh: no need to pass version and sha1 anymore (`pr#13380 <http://github.com/ceph/ceph/pull/13380>`_, Kefu Chai)
-* script/sepia_bt.sh: support xenial (`pr#13292 <http://github.com/ceph/ceph/pull/13292>`_, Kefu Chai)
-* selinux: Allow ceph daemons to read net stats (`issue#19254 <http://tracker.ceph.com/issues/19254>`_, `pr#13945 <http://github.com/ceph/ceph/pull/13945>`_, Boris Ranto)
-* Signed-off-by: Kefu Chai <kchai@redhat.com> (`pr#14006 <http://github.com/ceph/ceph/pull/14006>`_, shiqi)
-* systemd: Start OSDs after MONs (`issue#18516 <http://tracker.ceph.com/issues/18516>`_, `pr#13097 <http://github.com/ceph/ceph/pull/13097>`_, Boris Ranto)
-* tasks/cephfs: tear down on mount() failure (`pr#13282 <http://github.com/ceph/ceph/pull/13282>`_, John Spray)
-* test: add override in test submodule (`pr#13773 <http://github.com/ceph/ceph/pull/13773>`_, liuchang0812)
-* test/ceph-test-objectstore: Don't always include BlueStore code (`pr#13516 <http://github.com/ceph/ceph/pull/13516>`_, Willem Jan Withagen)
-* tested by-had, using fault injection (`issue#19019 <http://tracker.ceph.com/issues/19019>`_, `pr#13546 <http://github.com/ceph/ceph/pull/13546>`_, Casey Bodley)
-* test/encoding: fix readable.sh bugs; fix ceph-object-corpus (`pr#13678 <http://github.com/ceph/ceph/pull/13678>`_, Sage Weil)
-* test: Fix mismatched sign comparison in histogram test (`pr#13362 <http://github.com/ceph/ceph/pull/13362>`_, Adam C. Emerson)
-* test: fix rbd unit test cases w/ striping feature (`issue#18888 <http://tracker.ceph.com/issues/18888>`_, `pr#13196 <http://github.com/ceph/ceph/pull/13196>`_, Venky Shankar)
-* test: fix test_pidfile (`pr#13646 <http://github.com/ceph/ceph/pull/13646>`_, yaoning)
-* test/libcephfs: avoid buffer overflow when testing ceph_getdents() (`issue#18941 <http://tracker.ceph.com/issues/18941>`_, `pr#13429 <http://github.com/ceph/ceph/pull/13429>`_, "Yan, Zheng")
-* test/librbd/CMakeLists.txt: ceph_test_librbd_fsx requires linux includes/libs (`pr#13630 <http://github.com/ceph/ceph/pull/13630>`_, Willem Jan Withagen)
-* test/librbd: move tests using non-public api to internal (`pr#13806 <http://github.com/ceph/ceph/pull/13806>`_, Venky Shankar)
-* test: Need to exclude the fsx executable also on FreeBSD (`pr#13686 <http://github.com/ceph/ceph/pull/13686>`_, Willem Jan Withagen)
-* test/rgw: add bucket acl and versioning tests to test_multi.py (`pr#12449 <http://github.com/ceph/ceph/pull/12449>`_, Casey Bodley)
-* tests: ceph_test_rados_api_watch_notify: test timeout using rados_wat… (`issue#19312 <http://tracker.ceph.com/issues/19312>`_, `pr#14061 <http://github.com/ceph/ceph/pull/14061>`_, Kefu Chai)
-* tests: drop buildpackages.py (`issue#18846 <http://tracker.ceph.com/issues/18846>`_, `pr#13319 <http://github.com/ceph/ceph/pull/13319>`_, Nathan Cutler)
-* tests: drop obsolete Perl scripts (`pr#13951 <http://github.com/ceph/ceph/pull/13951>`_, Nathan Cutler)
-* test: sed on FreeBSD requires "-i extension", so use gsed (`pr#13903 <http://github.com/ceph/ceph/pull/13903>`_, Willem Jan Withagen)
-* tests: fix regression in qa/tasks/ceph_master.py (`issue#16263 <http://tracker.ceph.com/issues/16263>`_, `pr#13279 <http://github.com/ceph/ceph/pull/13279>`_, Nathan Cutler, Kefu Chai)
-* tests: osd-scrub-repair.sh disable scrub backoff in test (`pr#13334 <http://github.com/ceph/ceph/pull/13334>`_, Kefu Chai)
-* tests: re-enable cephfs python tests on kclient (`issue#17193 <http://tracker.ceph.com/issues/17193>`_, `issue#18161 <http://tracker.ceph.com/issues/18161>`_, `pr#13200 <http://github.com/ceph/ceph/pull/13200>`_, Nathan Cutler)
-* test/store_test: add deferred test case setup to support explicit min… (`issue#18857 <http://tracker.ceph.com/issues/18857>`_, `pr#13415 <http://github.com/ceph/ceph/pull/13415>`_, Igor Fedotov)
-* tests: update SUSE yaml facets in qa/distros/all (`issue#18856 <http://tracker.ceph.com/issues/18856>`_, `pr#13313 <http://github.com/ceph/ceph/pull/13313>`_, Nathan Cutler)
-* test: support blacklisting within librados_test_stub (`pr#13737 <http://github.com/ceph/ceph/pull/13737>`_, Jason Dillaman)
-* test: Thrasher: do not update pools_to_fix_pgp_num if nothing happens (`pr#13518 <http://github.com/ceph/ceph/pull/13518>`_, Kefu Chai)
-* test: Thrasher: update pgp_num of all expanded pools if not yet (`pr#13367 <http://github.com/ceph/ceph/pull/13367>`_, Kefu Chai)
-* test: unittest_hostname compile error on freebsd (`pr#13739 <http://github.com/ceph/ceph/pull/13739>`_, liuchang0812)
-* tools: add override in tool submodule (`pr#13776 <http://github.com/ceph/ceph/pull/13776>`_, liuchang0812)
-* tools/rados: Check return value of connect (`issue#19319 <http://tracker.ceph.com/issues/19319>`_, `pr#14057 <http://github.com/ceph/ceph/pull/14057>`_, Brad Hubbard)
-* tools/rados: remove useless function declaration (`pr#12566 <http://github.com/ceph/ceph/pull/12566>`_, liuchang0812)
-* tools/scripts:"FreeBSD getopt is not compatible, use the one from packages" (`pr#13260 <http://github.com/ceph/ceph/pull/13260>`_, Willem Jan Withagen)
-* tracing: don't include oid when tracing at dequeue_op() (`pr#13410 <http://github.com/ceph/ceph/pull/13410>`_, Yehuda Sadeh)
-* upstart: start radosgw-all according to runlevel (`issue#18313 <http://tracker.ceph.com/issues/18313>`_, `pr#12586 <http://github.com/ceph/ceph/pull/12586>`_, Ken Dreyer)
-* verified by hand f23 (`issue#19111 <http://tracker.ceph.com/issues/19111>`_, `pr#13703 <http://github.com/ceph/ceph/pull/13703>`_, Matt Benjamin)
-* vstart: add --help documentation for rgw_num (`pr#13817 <http://github.com/ceph/ceph/pull/13817>`_, Ali Maredia)
-* vstart: clean up usage a bit (`pr#13138 <http://github.com/ceph/ceph/pull/13138>`_, Sage Weil)
-* vstart: do not add host for mgr.* section if not $overwrite_conf (`pr#13767 <http://github.com/ceph/ceph/pull/13767>`_, Kefu Chai)
-* vstart: don't configure rgw_dns_name (`pr#13411 <http://github.com/ceph/ceph/pull/13411>`_, Yehuda Sadeh)
-* vstart: don't create cluster by default (`pr#13891 <http://github.com/ceph/ceph/pull/13891>`_, Yehuda Sadeh)
-
-
-v12.0.0 Luminous (dev)
-======================
-
-This is the first development checkpoint release of Luminous series, the next
-long term release. We're off to a good start to release Luminous in the spring
-of '17.
-
-
-
-Notable Changes
----------------
-* bluestore: avoid unnecessary copy with coll_t (`pr#12576 <http://github.com/ceph/ceph/pull/12576>`_, Yunchuan Wen)
-* bluestore: fixed compilation error when enable spdk (`pr#12672 <http://github.com/ceph/ceph/pull/12672>`_, Pan Liu)
-* bluestore: os/bluestore: add a debug option to bypass block device writes for bl… (`pr#12464 <http://github.com/ceph/ceph/pull/12464>`_, Igor Fedotov)
-* bluestore: os/bluestore: Add bluestore pextent vector to mempool (`pr#12946 <http://github.com/ceph/ceph/pull/12946>`_, Igor Fedotvo, Igor Fedotov)
-* bluestore: os/bluestore: add perf variable for throttle info in bluestore (`pr#12583 <http://github.com/ceph/ceph/pull/12583>`_, Pan Liu)
-* bluestore: os/bluestore: allow multiple SPDK BlueStore OSD instances (`issue#16966 <http://tracker.ceph.com/issues/16966>`_, `pr#12604 <http://github.com/ceph/ceph/pull/12604>`_, Orlando Moreno)
-* bluestore: os/bluestore/BitmapFreelistManager: readability improvements (`pr#12719 <http://github.com/ceph/ceph/pull/12719>`_, xie xingguo)
-* bluestore: os/bluestore/BlueFS: fix reclaim_blocks (`issue#18368 <http://tracker.ceph.com/issues/18368>`_, `pr#12725 <http://github.com/ceph/ceph/pull/12725>`_, Sage Weil)
-* bluestore: os/bluestore: conditionally load crr option (`pr#12877 <http://github.com/ceph/ceph/pull/12877>`_, xie xingguo)
-* bluestore: os/bluestore: fix Allocator::allocate() int truncation (`issue#18595 <http://tracker.ceph.com/issues/18595>`_, `pr#13010 <http://github.com/ceph/ceph/pull/13010>`_, Sage Weil)
-* bluestore: os/bluestore: fix min_alloc_size at mkfs time (`pr#13192 <http://github.com/ceph/ceph/pull/13192>`_, Sage Weil)
-* bluestore: os/bluestore: fix NVMEDevice::open failure if serial number ends with a … (`pr#12956 <http://github.com/ceph/ceph/pull/12956>`_, Hongtong Liu)
-* bluestore: os/bluestore: fix OnodeSizeTracking testing (`pr#12684 <http://github.com/ceph/ceph/pull/12684>`_, xie xingguo)
-* bluestore: os/bluestore: fix potential assert in cache _trim method. (`pr#13234 <http://github.com/ceph/ceph/pull/13234>`_, Igor Fedotov)
-* bluestore: os/bluestore: fix reclaim_blocks and clean up Allocator interface (`issue#18573 <http://tracker.ceph.com/issues/18573>`_, `pr#12963 <http://github.com/ceph/ceph/pull/12963>`_, Sage Weil)
-* bluestore: os/bluestore: include logical object offset in crc error (`pr#13074 <http://github.com/ceph/ceph/pull/13074>`_, Sage Weil)
-* bluestore: os/bluestore/KernelDevice: fix debug message (`pr#13135 <http://github.com/ceph/ceph/pull/13135>`_, Sage Weil)
-* bluestore: os/bluestore/KernelDevice: kill zeros (`pr#12856 <http://github.com/ceph/ceph/pull/12856>`_, xie xingguo)
-* bluestore: os/bluestore: kill BufferSpace.empty() (`pr#12871 <http://github.com/ceph/ceph/pull/12871>`_, xie xingguo)
-* bluestore: os/bluestore: kill orphan declaration of do_write_check_depth() (`pr#12853 <http://github.com/ceph/ceph/pull/12853>`_, xie xingguo)
-* bluestore: os/bluestore: miscellaneous fixes to BitAllocator (`pr#12696 <http://github.com/ceph/ceph/pull/12696>`_, xie xingguo)
-* bluestore: os/bluestore: nullptr in OmapIteratorImpl::valid (`pr#12900 <http://github.com/ceph/ceph/pull/12900>`_, Xinze Chi)
-* bluestore: os/bluestore/NVMEDevice.cc: fix the random read issue. (`pr#13055 <http://github.com/ceph/ceph/pull/13055>`_, optimistyzy)
-* bluestore: os/bluestore/NVMEdevice: fix the unrelease segs issue (`pr#12862 <http://github.com/ceph/ceph/pull/12862>`_, optimistyzy)
-* bluestore: os/bluestore: preallocate object[extent_shard] key to avoid reallocate (`pr#12644 <http://github.com/ceph/ceph/pull/12644>`_, xie xingguo)
-* bluestore: os/bluestore: put strings in mempool (`pr#12651 <http://github.com/ceph/ceph/pull/12651>`_, Allen Samuels, Sage Weil)
-* bluestore: os/bluestore: refactor ExtentMap::update to avoid preceeding db updat… (`pr#12394 <http://github.com/ceph/ceph/pull/12394>`_, Igor Fedotov)
-* bluestore: os/bluestore: remove a never read value (`pr#12618 <http://github.com/ceph/ceph/pull/12618>`_, liuchang0812)
-* bluestore: os/bluestore: remove intermediate key var to avoid string copy (`pr#12643 <http://github.com/ceph/ceph/pull/12643>`_, xie xingguo)
-* bluestore: os/bluestore: shrink buffer_map key into uint32_t (`pr#12850 <http://github.com/ceph/ceph/pull/12850>`_, xie xingguo)
-* bluestore: os/bluestore: _txc_release_alloc when do wal cleaning (`pr#12692 <http://github.com/ceph/ceph/pull/12692>`_, Xinze Chi)
-* bluestore: os: extend ObjectStore interface to dump store's performance counters (`pr#13203 <http://github.com/ceph/ceph/pull/13203>`_, Igor Fedotov)
-* bluestore: rocksdb: add option: writable_file_max_buffer_size = 0 (`pr#12562 <http://github.com/ceph/ceph/pull/12562>`_, Jianpeng Ma)
-* build/ops: add sanity checks to run-make-check.sh (`pr#12683 <http://github.com/ceph/ceph/pull/12683>`_, Nathan Cutler)
-* build/ops: build/cmake: provide asan, tsan, ubsan builds (`pr#12615 <http://github.com/ceph/ceph/pull/12615>`_, Matt Benjamin)
-* build/ops: builds with dpdk v16.07 (`pr#12707 <http://github.com/ceph/ceph/pull/12707>`_, Kefu Chai)
-* build/ops: ceph-detect-init: adding Arch Linux support (`pr#12787 <http://github.com/ceph/ceph/pull/12787>`_, Jamin W. Collins)
-* build/ops,cleanup: auth: Let's not use the deprecated cephx option (`pr#12721 <http://github.com/ceph/ceph/pull/12721>`_, Dave Chen)
-* build/ops: CMakeLists.txt: boost_python.so requires libpython.*.so on FreeBSD (`pr#12763 <http://github.com/ceph/ceph/pull/12763>`_, Willem Jan Withagen)
-* build/ops: common/module.c: do not use strerror_r the GNU way. (`pr#12363 <http://github.com/ceph/ceph/pull/12363>`_, Willem Jan Withagen)
-* build/ops,core: ceph-disk: use correct user in check_journal_req (`issue#18538 <http://tracker.ceph.com/issues/18538>`_, `pr#12947 <http://github.com/ceph/ceph/pull/12947>`_, Samuel Matzek)
-* build/ops: mailmap: Update OVH contributors (`pr#13063 <http://github.com/ceph/ceph/pull/13063>`_, Bartłomiej Święcki)
-* build/ops: packaging: install libceph-common.so* not libceph-common.so.* (`issue#18692 <http://tracker.ceph.com/issues/18692>`_, `pr#13148 <http://github.com/ceph/ceph/pull/13148>`_, Kefu Chai)
-* build/ops: Reviewd-by: Loic Dachary <ldachary@redhat.com> (`issue#18635 <http://tracker.ceph.com/issues/18635>`_, `pr#13057 <http://github.com/ceph/ceph/pull/13057>`_, Wido den Hollander)
-* build/ops,rgw: rgw_file: radosgw-admin can be built under FreeBSD (`pr#12191 <http://github.com/ceph/ceph/pull/12191>`_, Willem Jan Withagen)
-* build/ops: rocksdb: build with ppc64 (`pr#12908 <http://github.com/ceph/ceph/pull/12908>`_, Kefu Chai)
-* build/ops: script: adding contributor credits script (`pr#13251 <http://github.com/ceph/ceph/pull/13251>`_, Patrick McGarry)
-* build/ops: script/sepia_bt.sh: download packages from shaman not gitbuilder (`pr#12799 <http://github.com/ceph/ceph/pull/12799>`_, Kefu Chai)
-* build/ops: spdk: upgrade spdk to v16.12 (`pr#12734 <http://github.com/ceph/ceph/pull/12734>`_, Pan Liu)
-* build/ops: src/CMakeLists.txt: disable -Werror on rocksdb (`pr#12560 <http://github.com/ceph/ceph/pull/12560>`_, Willem Jan Withagen)
-* build/ops: src/CMakeLists.txt: Move parse_secret_objs setting within definition block (`pr#12785 <http://github.com/ceph/ceph/pull/12785>`_, Willem Jan Withagen)
-* build/ops: test/fio_ceph_objectstore: fix fio plugin build failure caused by rec… (`pr#12655 <http://github.com/ceph/ceph/pull/12655>`_, Igor Fedotov)
-* build/ops: tool: add some ceph relate processes to ps-ceph.pl (`pr#12406 <http://github.com/ceph/ceph/pull/12406>`_, songbaisen)
-* build/ops: tracing: Fix error in including all files in osd_tp (`pr#12501 <http://github.com/ceph/ceph/pull/12501>`_, Ganesh Mahalingam)
-* cephfs: ceph_fuse: pid_file default to empty (`issue#18309 <http://tracker.ceph.com/issues/18309>`_, `pr#12628 <http://github.com/ceph/ceph/pull/12628>`_, Nathan Cutler)
-* cephfs,cleanup: client: fix potential buffer overflow (`pr#12515 <http://github.com/ceph/ceph/pull/12515>`_, Yunchuan Wen)
-* cephfs,cleanup: client: simplify remove_cap interface (`pr#12161 <http://github.com/ceph/ceph/pull/12161>`_, John Spray)
-* cephfs,cleanup: libcephfs: cleanups (`pr#12830 <http://github.com/ceph/ceph/pull/12830>`_, huanwen ren)
-* cephfs,cleanup: qa: unpin knfs from ubuntu (`issue#16397 <http://tracker.ceph.com/issues/16397>`_, `pr#13088 <http://github.com/ceph/ceph/pull/13088>`_, John Spray)
-* cephfs,cleanup: Rewrite mount.fuse.ceph (to python) and move ceph-fuse options to fs_mntops (`pr#11448 <http://github.com/ceph/ceph/pull/11448>`_, Edgaras Lukosevicius)
-* cephfs: client/Client.cc: prevent segfaulting (`issue#9935 <http://tracker.ceph.com/issues/9935>`_, `pr#12550 <http://github.com/ceph/ceph/pull/12550>`_, Michal Jarzabek)
-* cephfs: client: don't request lookup parent if ino is root (`pr#12478 <http://github.com/ceph/ceph/pull/12478>`_, huanwen ren)
-* cephfs: client: fix clang warn of "argument is an uninitialized value" (`pr#12580 <http://github.com/ceph/ceph/pull/12580>`_, liuchang0812)
-* cephfs: client: fix Client::handle_cap_flushsnap_ack() crash (`issue#18460 <http://tracker.ceph.com/issues/18460>`_, `pr#12859 <http://github.com/ceph/ceph/pull/12859>`_, Yan, Zheng)
-* cephfs: client: fix the cross-quota rename boundary check conditions (`pr#12489 <http://github.com/ceph/ceph/pull/12489>`_, Greg Farnum)
-* cephfs: client: populate metadata during mount (`issue#18361 <http://tracker.ceph.com/issues/18361>`_, `pr#12915 <http://github.com/ceph/ceph/pull/12915>`_, John Spray)
-* cephfs: client: remove request from session->requests when handling forward (`issue#18675 <http://tracker.ceph.com/issues/18675>`_, `pr#13124 <http://github.com/ceph/ceph/pull/13124>`_, "Yan, Zheng")
-* cephfs,common: include/fs_types: fix unsigned integer overflow (`pr#12440 <http://github.com/ceph/ceph/pull/12440>`_, runsisi)
-* cephfs,common,rbd: osdc: cache should ignore error bhs during trim (`issue#18436 <http://tracker.ceph.com/issues/18436>`_, `pr#12966 <http://github.com/ceph/ceph/pull/12966>`_, Jason Dillaman)
-* cephfs,core,cleanup,common: librados,osdc: kill ack vs commit distinction (`pr#12607 <http://github.com/ceph/ceph/pull/12607>`_, Sage Weil)
-* cephfs: libcephfs.cc: fix memory leak (`pr#12557 <http://github.com/ceph/ceph/pull/12557>`_, Michal Jarzabek)
-* cephfs: libcephfs: fix cct refcount constructing from rados (`pr#12831 <http://github.com/ceph/ceph/pull/12831>`_, John Spray)
-* cephfs: mon/MDSMonitor.cc:refuse fs new on pools with obj (`issue#11124 <http://tracker.ceph.com/issues/11124>`_, `pr#12825 <http://github.com/ceph/ceph/pull/12825>`_, Michal Jarzabek)
-* cephfs: mount: do not print "unknown" option to kclient (`issue#18159 <http://tracker.ceph.com/issues/18159>`_, `pr#12465 <http://github.com/ceph/ceph/pull/12465>`_, John Spray)
-* cephfs: qa: update remaining ceph.com to download.ceph.com (`issue#18574 <http://tracker.ceph.com/issues/18574>`_, `pr#12964 <http://github.com/ceph/ceph/pull/12964>`_, John Spray)
-* cephfs: tasks/cephfs: fix kernel force umount (`issue#18396 <http://tracker.ceph.com/issues/18396>`_, `pr#12833 <http://github.com/ceph/ceph/pull/12833>`_, Yan, Zheng)
-* cleanup,bluestore: os/bluestore: avoid unnecessary memory copy, use variable reference in BlockDevice::Open (`pr#12942 <http://github.com/ceph/ceph/pull/12942>`_, liuchang0812)
-* cleanup,bluestore: os/bluestore: cleanup BitAllocator (`pr#12661 <http://github.com/ceph/ceph/pull/12661>`_, xie xingguo)
-* cleanup,bluestore: os/bluestore: remove no use parameter in bluestore_blob_t::map_bl (`pr#13013 <http://github.com/ceph/ceph/pull/13013>`_, wangzhengyong)
-* cleanup,common: auth: Enhancement for the supported auth methods (`pr#12937 <http://github.com/ceph/ceph/pull/12937>`_, Dave Chen)
-* cleanup,common: bufferlist: cleanup semantical wrong for bufferlist::append (`pr#12247 <http://github.com/ceph/ceph/pull/12247>`_, Yankun Li)
-* cleanup,common: common/BackTrace: add operator<< (`pr#9028 <http://github.com/ceph/ceph/pull/9028>`_, Kefu Chai)
-* cleanup: common/config: fix return type of string::find and use string::npos (`pr#9924 <http://github.com/ceph/ceph/pull/9924>`_, Yan Jun)
-* cleanup: common/config_opts.h: remove obsolete configuration option (`pr#12659 <http://github.com/ceph/ceph/pull/12659>`_, Li Wang)
-* cleanup,common: global: we need to handle the init_on_startup return value when global_init. (`pr#13018 <http://github.com/ceph/ceph/pull/13018>`_, song baisen)
-* cleanup,common: msg/async: assert if compiled code doesn't support the configured ms\_… (`pr#12559 <http://github.com/ceph/ceph/pull/12559>`_, Avner BenHanoch)
-* cleanup,common: msg/async/rdma: clean line endings (`pr#12688 <http://github.com/ceph/ceph/pull/12688>`_, Adir Lev)
-* cleanup,common: msg/async/rdma: Remove compilation warning (`pr#13142 <http://github.com/ceph/ceph/pull/13142>`_, Sarit Zubakov)
-* cleanup,common: osd/OSDMap: get_previous_up_osd_before() may run into endless loop (`pr#12976 <http://github.com/ceph/ceph/pull/12976>`_, Mingxin Liu)
-* cleanup,common: osd/osd_types: clean up OSDOp printers (`pr#12980 <http://github.com/ceph/ceph/pull/12980>`_, Sage Weil)
-* cleanup: include/mempool: fix typo in comments (`pr#12772 <http://github.com/ceph/ceph/pull/12772>`_, huangjun)
-* cleanup: mds,mon: Clean issues detected by cppcheck (`pr#13199 <http://github.com/ceph/ceph/pull/13199>`_, Ilya Shipitsin)
-* cleanup: misc: fix code typos in header files (`pr#12716 <http://github.com/ceph/ceph/pull/12716>`_, Xianxia Xiao)
-* cleanup: mon/PGMonitor: fix description for ceph pg ls (`pr#12807 <http://github.com/ceph/ceph/pull/12807>`_, runsisi)
-* cleanup: Move code from .h into .cc (`pr#12737 <http://github.com/ceph/ceph/pull/12737>`_, Amir Vadai)
-* cleanup: msg/async: avoid atomic variable overhead (`pr#12809 <http://github.com/ceph/ceph/pull/12809>`_, Wei Jin)
-* cleanup: msg/async: cleanups (`pr#12832 <http://github.com/ceph/ceph/pull/12832>`_, Wei Jin)
-* cleanup: msg/async/rdma: fix log line spacing (`pr#13263 <http://github.com/ceph/ceph/pull/13263>`_, Adir Lev)
-* cleanup: msg/async: rm nonused thread variable in posixworker (`pr#12777 <http://github.com/ceph/ceph/pull/12777>`_, Wei Jin)
-* cleanup: msg/Messenger.cc: add std::move (`pr#9760 <http://github.com/ceph/ceph/pull/9760>`_, Michal Jarzabek)
-* cleanup: msg: Revert the change from assert(0)-> ceph_abort() where is not applicable (`pr#12930 <http://github.com/ceph/ceph/pull/12930>`_, Dave Chen)
-* cleanup: msg/simple: Remove dead code in pipe.cc (`issue#12684 <http://tracker.ceph.com/issues/12684>`_, `pr#12601 <http://github.com/ceph/ceph/pull/12601>`_, Rishabh Kumar)
-* cleanup: os/bluestore/BlueStore.cc: remove unused variable (`pr#12703 <http://github.com/ceph/ceph/pull/12703>`_, Li Wang)
-* cleanup: osdc/ObjectCacher: use state instead of get_state() (`pr#12544 <http://github.com/ceph/ceph/pull/12544>`_, huangjun)
-* cmake: add RGW and MDS to libcephd (`pr#12345 <http://github.com/ceph/ceph/pull/12345>`_, Bassam Tabbara)
-* cmake: cleanup the use of udev and blkid in target_link_lib() (`pr#12811 <http://github.com/ceph/ceph/pull/12811>`_, Willem Jan Withagen)
-* cmake: disable mallinfo for jemalloc (`pr#12469 <http://github.com/ceph/ceph/pull/12469>`_, Bassam Tabbara)
-* cmake: explictly call find_package(PythonInterp) first to fix build err (`pr#12385 <http://github.com/ceph/ceph/pull/12385>`_, Yixun Lan)
-* cmake: Fix broken async/rdma compilation since move to libceph-common (`pr#13122 <http://github.com/ceph/ceph/pull/13122>`_, Oren Duer)
-* cmake: fix broken RDMA compilation after merge PR #12878 (`pr#13186 <http://github.com/ceph/ceph/pull/13186>`_, Oren Duer)
-* cmake: fix hard coded boost python lib (`pr#12480 <http://github.com/ceph/ceph/pull/12480>`_, John Coyle)
-* cmake: fix rpath on shared libraries and binaries targets (`pr#12927 <http://github.com/ceph/ceph/pull/12927>`_, Ricardo Dias)
-* cmake: link ceph-{mgr,mon,mds,osd} against libcommon statically (`pr#12878 <http://github.com/ceph/ceph/pull/12878>`_, Kefu Chai)
-* cmake: remove Findpciaccess.cmake (`pr#12776 <http://github.com/ceph/ceph/pull/12776>`_, optimistyzy)
-* cmake: search for Keyutils in default paths (`pr#12769 <http://github.com/ceph/ceph/pull/12769>`_, Pascal Bach)
-* cmake: search for nspr include files for both suffixes: nspr4 and nspr (`issue#18535 <http://tracker.ceph.com/issues/18535>`_, `pr#12939 <http://github.com/ceph/ceph/pull/12939>`_, John Lin)
-* cmake: simplify find_package jemalloc (`pr#12468 <http://github.com/ceph/ceph/pull/12468>`_, Bassam Tabbara)
-* cmake: support for external rocksdb (`pr#12467 <http://github.com/ceph/ceph/pull/12467>`_, Bassam Tabbara)
-* cmake: turn libcommon into a shared library (`pr#12840 <http://github.com/ceph/ceph/pull/12840>`_, Kefu Chai)
-* common/admin-socket: fix potential buffer overflow (`pr#12518 <http://github.com/ceph/ceph/pull/12518>`_, Yunchuan Wen)
-* common: common/BackTrace: demangle on FreeBSD also (`pr#12992 <http://github.com/ceph/ceph/pull/12992>`_, Kefu Chai)
-* common: common/buffer: close pipe fd if set nonblocking fails. (`pr#12828 <http://github.com/ceph/ceph/pull/12828>`_, donglinpeng)
-* common: common/ceph_context: Show clear message if all features are enabled (`pr#12676 <http://github.com/ceph/ceph/pull/12676>`_, Dave Chen)
-* common: common/xmlformatter: turn on underscored and add unittest (`pr#12916 <http://github.com/ceph/ceph/pull/12916>`_, liuchang0812)
-* common: compressor/zstd: add zstd compression plugin (`pr#13075 <http://github.com/ceph/ceph/pull/13075>`_, Kefu Chai, Sage Weil)
-* common: config: Improve warning for unobserved value (`issue#18424 <http://tracker.ceph.com/issues/18424>`_, `pr#12855 <http://github.com/ceph/ceph/pull/12855>`_, Brad Hubbard)
-* common/config_opts.h: FreeBSD timing changed due to no SO_REUSEADDR (`pr#12594 <http://github.com/ceph/ceph/pull/12594>`_, Willem Jan Withagen)
-* common: delete unused conf "filestore_debug_disable_sharded_check" (`pr#13051 <http://github.com/ceph/ceph/pull/13051>`_, Chuanhong Wang)
-* common: get rid of "warning: ignoring return value of ‘strerror_r’" (`pr#12775 <http://github.com/ceph/ceph/pull/12775>`_, xie xingguo)
-* common: include/denc: improvements (`pr#12626 <http://github.com/ceph/ceph/pull/12626>`_, Adam C. Emerson)
-* common: make attempts of auth rotating configurable (`pr#12563 <http://github.com/ceph/ceph/pull/12563>`_, xie xingguo)
-* common: misc fixes detected by crypto shutdown assert (`pr#12925 <http://github.com/ceph/ceph/pull/12925>`_, Sage Weil)
-* common: msg/async/rdma: reduce number of rdma rx/tx buffers (`pr#13190 <http://github.com/ceph/ceph/pull/13190>`_, Adir Lev)
-* common: msg/async/rdma: Support for RoCE v2 and SL (`pr#12556 <http://github.com/ceph/ceph/pull/12556>`_, Oren Duer)
-* common: msg/simple: call clear_pipe in wait() shutdown path (`issue#15784 <http://tracker.ceph.com/issues/15784>`_, `pr#12633 <http://github.com/ceph/ceph/pull/12633>`_, Sage Weil)
-* common: tracing: Fix handle leak in TracepointProvider (`pr#12652 <http://github.com/ceph/ceph/pull/12652>`_, Brad Hubbard)
-* core,bluestore: NVMEDevice: fix bug in data_buf_next_sge (`pr#12812 <http://github.com/ceph/ceph/pull/12812>`_, optimistyzy)
-* core,bluestore: os/bluestore: fix statfs to not include DB partition in free space (`issue#18599 <http://tracker.ceph.com/issues/18599>`_, `pr#13140 <http://github.com/ceph/ceph/pull/13140>`_, Sage Weil)
-* core,cephfs,cleanup: cleanup: use std::make_shared to replace new (`pr#12276 <http://github.com/ceph/ceph/pull/12276>`_, Yunchuan Wen)
-* core,cleanup: msg/async/AsyncConnection: socket's fd can be zero, avoid false assert (`pr#13080 <http://github.com/ceph/ceph/pull/13080>`_, Haomai Wang)
-* core,cleanup: osd/ECBackend: cleanup for unnecessary copy with pg_stat_t (`pr#12564 <http://github.com/ceph/ceph/pull/12564>`_, Yunchuan Wen)
-* core,cleanup: osd/ECBackend: only need check missing_loc when doing recovery (`pr#12526 <http://github.com/ceph/ceph/pull/12526>`_, huangjun)
-* core,cleanup: osd/ECBackend: remove unused variable "ReadCB" (`pr#12543 <http://github.com/ceph/ceph/pull/12543>`_, huangjun)
-* core,cleanup: osd,librados: remove clone_range and associated multi-object cruft (`pr#13008 <http://github.com/ceph/ceph/pull/13008>`_, Samuel Just)
-* core,cleanup: osd/OpRequest: dump both name and addr for the client op (`pr#12691 <http://github.com/ceph/ceph/pull/12691>`_, runsisi)
-* core,cleanup: osd/OSDMap: Uncomment code to enable private default constructors (`pr#12597 <http://github.com/ceph/ceph/pull/12597>`_, Brad Hubbard)
-* core,cleanup: osd/osd_type: Fix logging output (`pr#12778 <http://github.com/ceph/ceph/pull/12778>`_, Brad Hubbard)
-* core,cleanup: osd/osd_types: Move comment to more relevant position (`pr#12779 <http://github.com/ceph/ceph/pull/12779>`_, Brad Hubbard)
-* core,cleanup: osd/osd_types: print notify-ack op properly (`pr#12585 <http://github.com/ceph/ceph/pull/12585>`_, Sage Weil)
-* core,cleanup: osd/PG: add new have_unfound() function in MissingLoc (`pr#12668 <http://github.com/ceph/ceph/pull/12668>`_, huangjun)
-* core,cleanup: osd/PG: check the connection first in fulfill_log (`pr#12579 <http://github.com/ceph/ceph/pull/12579>`_, huangjun)
-* core,cleanup: osd/PG: simplify the logic of backfill_targets checking (`pr#12519 <http://github.com/ceph/ceph/pull/12519>`_, huangjun)
-* core,cleanup: osd/PrimaryLogPG: optimal pick_newest_available (`pr#12695 <http://github.com/ceph/ceph/pull/12695>`_, huangjun)
-* core,cleanup: osd/PrimaryLogPG: unify the access to primary pg (`pr#12527 <http://github.com/ceph/ceph/pull/12527>`_, huangjun)
-* core,cleanup: os/filestore/JournalingObjectStore cleanup (`pr#12528 <http://github.com/ceph/ceph/pull/12528>`_, Li Wang)
-* core,common: common/pick_address.cc: Copy public_netw to cluster_netw if cluster empty (`pr#12929 <http://github.com/ceph/ceph/pull/12929>`_, Willem Jan Withagen)
-* core,common: mempool: put bloom_filter in mempool (`pr#13009 <http://github.com/ceph/ceph/pull/13009>`_, Sage Weil)
-* core: global: start removing g_ceph_context (`pr#12149 <http://github.com/ceph/ceph/pull/12149>`_, Adam C. Emerson)
-* core: messages/MOSDPGTrim: add the missed HEAD_VERSION AND COMPAT_VERSION (`issue#18266 <http://tracker.ceph.com/issues/18266>`_, `pr#12517 <http://github.com/ceph/ceph/pull/12517>`_, huangjun)
-* core: messages/MOSDSubOp: Make encode_payload can be reentrant (`pr#12654 <http://github.com/ceph/ceph/pull/12654>`_, Haomai Wang)
-* core: mon/OSDMonitor: fixup sortbitwise flag warning (`pr#12682 <http://github.com/ceph/ceph/pull/12682>`_, huanwen ren)
-* core: mon/OSDMonitor: make 'osd crush move ...' work on osds (`issue#18587 <http://tracker.ceph.com/issues/18587>`_, `pr#12981 <http://github.com/ceph/ceph/pull/12981>`_, Sage Weil)
-* core: mon/OSDMonitor: make snaps on tier pool should not be allowed (`pr#9348 <http://github.com/ceph/ceph/pull/9348>`_, Mingxin Liu)
-* core: mon/OSDMonitor: set last_force_op_resend on overlay pool too (`issue#18366 <http://tracker.ceph.com/issues/18366>`_, `pr#12712 <http://github.com/ceph/ceph/pull/12712>`_, Sage Weil)
-* core: mon/OSDMonitor: should propose osdmap update when cluster addr changed (`pr#11065 <http://github.com/ceph/ceph/pull/11065>`_, Mingxin Liu)
-* core: msg: allow different ms type for cluster network and public network (`pr#12023 <http://github.com/ceph/ceph/pull/12023>`_, Haomai Wang)
-* core: msg/async/dpdk: fix compile errors (`pr#12698 <http://github.com/ceph/ceph/pull/12698>`_, Haomai Wang)
-* core: msg/async/rdma: fix ceph_clock_now calls (`pr#12711 <http://github.com/ceph/ceph/pull/12711>`_, Haomai Wang)
-* core: msg: client bind (`pr#12901 <http://github.com/ceph/ceph/pull/12901>`_, Zengran Zhang, Haomai Wang)
-* core: osdc/Objecter: resend pg commands on interval change (`issue#18358 <http://tracker.ceph.com/issues/18358>`_, `pr#12869 <http://github.com/ceph/ceph/pull/12869>`_, Samuel Just)
-* core: osd/PG: publish PG stats when backfill-related states change (`issue#18369 <http://tracker.ceph.com/issues/18369>`_, `pr#12727 <http://github.com/ceph/ceph/pull/12727>`_, Sage Weil)
-* core: osd/PrimaryLogPG::failed_push: update missing as well (`issue#18165 <http://tracker.ceph.com/issues/18165>`_, `pr#12888 <http://github.com/ceph/ceph/pull/12888>`_, Samuel Just)
-* core: osd/PrimaryLogPG::try_lock_for_read: give up if missing (`issue#18583 <http://tracker.ceph.com/issues/18583>`_, `pr#13087 <http://github.com/ceph/ceph/pull/13087>`_, Samuel Just)
-* core: osd/ReplicatedBackend: take read locks for clone sources during recovery (`issue#17831 <http://tracker.ceph.com/issues/17831>`_, `pr#12844 <http://github.com/ceph/ceph/pull/12844>`_, Samuel Just)
-* core: os/filestore: fix clang static check warn "use-after-free“ (`pr#12581 <http://github.com/ceph/ceph/pull/12581>`_, liuchang0812)
-* core: os/filestore: version will be uninitialized varible if store_version doesn't exist (`pr#12582 <http://github.com/ceph/ceph/pull/12582>`_, liuchang0812)
-* core,performance: common/TrackedOp: various cleanups and optimizations (`pr#12537 <http://github.com/ceph/ceph/pull/12537>`_, Sage Weil)
-* core,performance: osd/ECBackend: Send write message to peers first, then do local write (`pr#12522 <http://github.com/ceph/ceph/pull/12522>`_, huangjun)
-* core,performance: osd/pg: bound the portion of the log we request in GetLog::GetLog() (`pr#12233 <http://github.com/ceph/ceph/pull/12233>`_, Jie Wang)
-* core: PrimaryLogPG: don't update digests for objects with mismatched names (`issue#18409 <http://tracker.ceph.com/issues/18409>`_, `pr#12788 <http://github.com/ceph/ceph/pull/12788>`_, Samuel Just)
-* core: Revert "PrimaryLogPG::failed_push: update missing as well" (`issue#18624 <http://tracker.ceph.com/issues/18624>`_, `pr#13090 <http://github.com/ceph/ceph/pull/13090>`_, David Zafman)
-* core: test/pybind/test_rados.py: tolerate TimedOut in test_ping_monitor (`issue#18529 <http://tracker.ceph.com/issues/18529>`_, `pr#12934 <http://github.com/ceph/ceph/pull/12934>`_, Samuel Just)
-* core,tests: ceph_test_rados_api_misc: Fix trivial memory leak (`pr#12680 <http://github.com/ceph/ceph/pull/12680>`_, Brad Hubbard)
-* core,tests: c_write_operations.cc: Fix trivial memory leak (`pr#12663 <http://github.com/ceph/ceph/pull/12663>`_, Brad Hubbard)
-* core,tests: qa/suites/rados/basic: set low omap limit for rgw workload (`pr#13071 <http://github.com/ceph/ceph/pull/13071>`_, Sage Weil)
-* core,tests: qa/workunits/rest: use unique pool names for cephfs test (`pr#13188 <http://github.com/ceph/ceph/pull/13188>`_, Sage Weil)
-* core,tests: test/librados/cmd.cc: Fix trivial memory leaks (`pr#12671 <http://github.com/ceph/ceph/pull/12671>`_, Brad Hubbard)
-* core,tests: test/librados/c_read_operations.cc: Fix trivial memory leak (`pr#12656 <http://github.com/ceph/ceph/pull/12656>`_, Brad Hubbard)
-* core,tests: test/librados/c_read_operations.cc: Fix valgrind errors (`issue#18354 <http://tracker.ceph.com/issues/18354>`_, `pr#12657 <http://github.com/ceph/ceph/pull/12657>`_, Brad Hubbard)
-* core,tests: test/librados: Silence Coverity memory leak warnings (`pr#12442 <http://github.com/ceph/ceph/pull/12442>`_, Brad Hubbard, Samuel Just)
-* core,tests: test/librados/snapshots.cc: Fix memory leak (`pr#12690 <http://github.com/ceph/ceph/pull/12690>`_, Brad Hubbard)
-* core,tests: test/librados/tier.cc: Fix valgrind errors (`issue#18360 <http://tracker.ceph.com/issues/18360>`_, `pr#12705 <http://github.com/ceph/ceph/pull/12705>`_, Brad Hubbard)
-* core,tests: test_rados_watch_notify: Fix trivial memory leaks (`pr#12713 <http://github.com/ceph/ceph/pull/12713>`_, Brad Hubbard)
-* crush: API documentation (`pr#13205 <http://github.com/ceph/ceph/pull/13205>`_, Loic Dachary)
-* crush: verify weights is influenced by the number of replicas (`issue#15653 <http://tracker.ceph.com/issues/15653>`_, `pr#13083 <http://github.com/ceph/ceph/pull/13083>`_, Adam C. Emerson, Loic Dachary)
-* crush: when osd_location_hook does not exist, we should exit error. (`pr#12961 <http://github.com/ceph/ceph/pull/12961>`_, song baisen)
-* doc: add 0.94.10 and hammer EOL to releases.rst (`pr#13069 <http://github.com/ceph/ceph/pull/13069>`_, Nathan Cutler)
-* doc: add verbiage to rbdmap manpage (`issue#18262 <http://tracker.ceph.com/issues/18262>`_, `pr#12509 <http://github.com/ceph/ceph/pull/12509>`_, Nathan Cutler)
-* doc: build/install-deps.sh: Add sphinx package for building docs on FreeBSD (`pr#13223 <http://github.com/ceph/ceph/pull/13223>`_, Willem Jan Withagen)
-* doc/cephfs/troubleshooting: fix broken bullet list (`pr#12894 <http://github.com/ceph/ceph/pull/12894>`_, Dan Mick)
-* doc: clarify "ceph quorum" syntax (`issue#17802 <http://tracker.ceph.com/issues/17802>`_, `pr#11787 <http://github.com/ceph/ceph/pull/11787>`_, Nathan Cutler)
-* doc: clarify SubmittingPatches.rst (`pr#12988 <http://github.com/ceph/ceph/pull/12988>`_, Nathan Cutler)
-* doc: clarify the path restriction mds cap example (`pr#12993 <http://github.com/ceph/ceph/pull/12993>`_, John Spray)
-* doc: correct S3 lifecycle support explain (`issue#18459 <http://tracker.ceph.com/issues/18459>`_, `pr#12827 <http://github.com/ceph/ceph/pull/12827>`_, liuchang0812)
-* doc: doc/dev: update log_based_pg.rst, fix some display problem (`pr#12730 <http://github.com/ceph/ceph/pull/12730>`_, liuchang0812)
-* doc: Doc:Fixes Python Swift client commands (`issue#17746 <http://tracker.ceph.com/issues/17746>`_, `pr#12887 <http://github.com/ceph/ceph/pull/12887>`_, Ronak Jain)
-* doc: doc/release-notes: final kraken notes (`pr#12968 <http://github.com/ceph/ceph/pull/12968>`_, Sage Weil)
-* doc: document repair/scrub features (`issue#15786 <http://tracker.ceph.com/issues/15786>`_, `pr#9032 <http://github.com/ceph/ceph/pull/9032>`_, Kefu Chai, David Zafman)
-* doc: Document that osd_heartbeat_grace applies to MON and OSD (`pr#13098 <http://github.com/ceph/ceph/pull/13098>`_, Wido den Hollander)
-* doc: explain about logging levels (`pr#12920 <http://github.com/ceph/ceph/pull/12920>`_, liuchang0812)
-* doc: fix document about rados mon (`pr#12662 <http://github.com/ceph/ceph/pull/12662>`_, liuchang0812)
-* doc: Fixes radosgw-admin ex: in swift auth section (`issue#16687 <http://tracker.ceph.com/issues/16687>`_, `pr#12646 <http://github.com/ceph/ceph/pull/12646>`_, SirishaGuduru)
-* doc: fix the librados c api can not compile problem (`pr#9396 <http://github.com/ceph/ceph/pull/9396>`_, song baisen)
-* doc: mailmap: Michal Koutny affiliation (`pr#13036 <http://github.com/ceph/ceph/pull/13036>`_, Nathan Cutler)
-* doc: mailmap updates for v11.1.0 (`pr#12335 <http://github.com/ceph/ceph/pull/12335>`_, Abhishek Lekshmanan)
-* doc: minor change to a cloud testing paragraph (`pr#13277 <http://github.com/ceph/ceph/pull/13277>`_, Jan Fajerski)
-* doc: min_size advice is not helpful (`pr#12936 <http://github.com/ceph/ceph/pull/12936>`_, Brad Hubbard)
-* doc: organizationmap: add Xianxia Xiao to Kylin Cloud team (`pr#12718 <http://github.com/ceph/ceph/pull/12718>`_, Yunchuan Wen)
-* doc: README.FreeBSD: update current status (`pr#12096 <http://github.com/ceph/ceph/pull/12096>`_, Willem Jan Withagen)
-* doc: release notes for v11.1.1 (`pr#12642 <http://github.com/ceph/ceph/pull/12642>`_, Abhishek Lekshmanan)
-* doc: Remove "splitting" state (`pr#12636 <http://github.com/ceph/ceph/pull/12636>`_, Brad Hubbard)
-* doc: typo fix in s3_compliance (`pr#12598 <http://github.com/ceph/ceph/pull/12598>`_, LiuYang)
-* doc: Update disk thread section to reflect that scrubbing is no longe… (`pr#12621 <http://github.com/ceph/ceph/pull/12621>`_, Nick Fisk)
-* doc: Update keystone.rst (`pr#12717 <http://github.com/ceph/ceph/pull/12717>`_, Chu, Hua-Rong)
-* librados: asynchronous selfmanaged_snap_create/selfmanaged_snap_remove APIs (`issue#16180 <http://tracker.ceph.com/issues/16180>`_, `pr#12050 <http://github.com/ceph/ceph/pull/12050>`_, Jason Dillaman)
-* librados: fix compile errors from simplified aio completions (`pr#12849 <http://github.com/ceph/ceph/pull/12849>`_, xie xingguo)
-* librbd: added rbd_flatten_with_progress to API (`issue#15824 <http://tracker.ceph.com/issues/15824>`_, `pr#12905 <http://github.com/ceph/ceph/pull/12905>`_, Ricardo Dias)
-* librbd: allow to open an image without opening the parent image (`issue#18325 <http://tracker.ceph.com/issues/18325>`_, `pr#12885 <http://github.com/ceph/ceph/pull/12885>`_, Ricardo Dias)
-* librbd: avoid possible recursive lock when racing acquire lock (`issue#17447 <http://tracker.ceph.com/issues/17447>`_, `pr#12991 <http://github.com/ceph/ceph/pull/12991>`_, Jason Dillaman)
-* librbd: create fewer empty objects during copyup (`issue#15028 <http://tracker.ceph.com/issues/15028>`_, `pr#12326 <http://github.com/ceph/ceph/pull/12326>`_, Douglas Fuller, Venky Shankar)
-* librbd: delay mirror registration when creating clones (`issue#17993 <http://tracker.ceph.com/issues/17993>`_, `pr#12839 <http://github.com/ceph/ceph/pull/12839>`_, Jason Dillaman)
-* librbd: don't continue to remove an image w/ incompatible features (`issue#18315 <http://tracker.ceph.com/issues/18315>`_, `pr#12638 <http://github.com/ceph/ceph/pull/12638>`_, Dongsheng Yang)
-* librbd: fixed initializer list ordering (`pr#13042 <http://github.com/ceph/ceph/pull/13042>`_, Jason Dillaman)
-* librbd: initialize diff parent overlap to zero (`pr#13077 <http://github.com/ceph/ceph/pull/13077>`_, Gu Zhongyan)
-* librbd: introduce new constants for tracking max block name prefix (`issue#18653 <http://tracker.ceph.com/issues/18653>`_, `pr#13141 <http://github.com/ceph/ceph/pull/13141>`_, Jason Dillaman)
-* librbd: managed lock refactoring (`pr#12922 <http://github.com/ceph/ceph/pull/12922>`_, Mykola Golub)
-* librbd: metadata_set API operation should not change global config setting (`issue#18465 <http://tracker.ceph.com/issues/18465>`_, `pr#12843 <http://github.com/ceph/ceph/pull/12843>`_, Mykola Golub)
-* librbd: new API method to force break a peer's exclusive lock (`issue#18429 <http://tracker.ceph.com/issues/18429>`_, `issue#16988 <http://tracker.ceph.com/issues/16988>`_, `issue#18327 <http://tracker.ceph.com/issues/18327>`_, `pr#12639 <http://github.com/ceph/ceph/pull/12639>`_, Jason Dillaman)
-* librbd: permit removal of image being bootstrapped by rbd-mirror (`issue#16555 <http://tracker.ceph.com/issues/16555>`_, `pr#12549 <http://github.com/ceph/ceph/pull/12549>`_, Mykola Golub)
-* librbd: possible deadlock with flush if refresh in-progress (`issue#18419 <http://tracker.ceph.com/issues/18419>`_, `pr#12838 <http://github.com/ceph/ceph/pull/12838>`_, Jason Dillaman)
-* librbd: prevent self-blacklisting during break lock (`issue#18666 <http://tracker.ceph.com/issues/18666>`_, `pr#13110 <http://github.com/ceph/ceph/pull/13110>`_, Jason Dillaman)
-* librbd: race initializing exclusive lock and configuring IO path (`pr#13086 <http://github.com/ceph/ceph/pull/13086>`_, Jason Dillaman)
-* librbd: refactor exclusive lock support into generic managed lock (`issue#17016 <http://tracker.ceph.com/issues/17016>`_, `pr#12846 <http://github.com/ceph/ceph/pull/12846>`_, Ricardo Dias, Jason Dillaman)
-* librbd: remove unnecessary dependencies of ManagedLock (`pr#12982 <http://github.com/ceph/ceph/pull/12982>`_, Jason Dillaman)
-* librbd: resolve static analyser warnings (`pr#12863 <http://github.com/ceph/ceph/pull/12863>`_, Jason Dillaman)
-* librbd: support for shared locking in ManagedLock (`pr#12886 <http://github.com/ceph/ceph/pull/12886>`_, Ricardo Dias)
-* librbd: support to list snapshot timestamp (`issue#808 <http://tracker.ceph.com/issues/808>`_, `pr#12817 <http://github.com/ceph/ceph/pull/12817>`_, Pan Liu)
-* librbd: warning message for mirroring pool option (`issue#18125 <http://tracker.ceph.com/issues/18125>`_, `pr#12319 <http://github.com/ceph/ceph/pull/12319>`_, Gaurav Kumar Garg)
-* log: use one write system call per message (`pr#11955 <http://github.com/ceph/ceph/pull/11955>`_, Patrick Donnelly)
-* mds: add authority check for delay dirfrag split (`issue#18487 <http://tracker.ceph.com/issues/18487>`_, `pr#12994 <http://github.com/ceph/ceph/pull/12994>`_, "Yan, Zheng")
-* mds: check for errors decoding backtraces (`issue#18311 <http://tracker.ceph.com/issues/18311>`_, `pr#12588 <http://github.com/ceph/ceph/pull/12588>`_, John Spray)
-* mds: don't modify inode that is not projected (`issue#16768 <http://tracker.ceph.com/issues/16768>`_, `pr#13052 <http://github.com/ceph/ceph/pull/13052>`_, "Yan, Zheng")
-* mds: finish clientreplay requests before requesting active state (`issue#18461 <http://tracker.ceph.com/issues/18461>`_, `pr#12852 <http://github.com/ceph/ceph/pull/12852>`_, Yan, Zheng)
-* mds: fix incorrect assertion in Server::_dir_is_nonempty() (`issue#18578 <http://tracker.ceph.com/issues/18578>`_, `pr#12973 <http://github.com/ceph/ceph/pull/12973>`_, Yan, Zheng)
-* mds: fix null pointer dereference in Locker::handle_client_caps (`issue#18306 <http://tracker.ceph.com/issues/18306>`_, `pr#12808 <http://github.com/ceph/ceph/pull/12808>`_, Yan, Zheng)
-* mds: miscellaneous fixes (`issue#18646 <http://tracker.ceph.com/issues/18646>`_, `pr#12974 <http://github.com/ceph/ceph/pull/12974>`_, Yan, Zheng, "Yan, Zheng")
-* mds: misc multimds fixes part2 (`pr#12794 <http://github.com/ceph/ceph/pull/12794>`_, Yan, Zheng)
-* mds: misc multimds fixes (`pr#12274 <http://github.com/ceph/ceph/pull/12274>`_, Yan, Zheng)
-* mds: propagate error encountered during opening inode by number (`issue#18179 <http://tracker.ceph.com/issues/18179>`_, `pr#12749 <http://github.com/ceph/ceph/pull/12749>`_, Yan, Zheng)
-* mds: skip fragment space check for replayed request (`issue#18660 <http://tracker.ceph.com/issues/18660>`_, `pr#13095 <http://github.com/ceph/ceph/pull/13095>`_, "Yan, Zheng")
-* mgr: Make stats period configurable (`issue#17449 <http://tracker.ceph.com/issues/17449>`_, `pr#12732 <http://github.com/ceph/ceph/pull/12732>`_, liuchang0812)
-* mon: clean up some osdmon/pgmon interactions (`pr#12403 <http://github.com/ceph/ceph/pull/12403>`_, Sage Weil)
-* mon: don't set last_osd_report when the pg stats msg is ignored (`pr#12975 <http://github.com/ceph/ceph/pull/12975>`_, Zhiqiang Wang)
-* mon: fix a few nits (`pr#12670 <http://github.com/ceph/ceph/pull/12670>`_, Sage Weil)
-* mon: fix wrongly delete routed pgstats op (`issue#18458 <http://tracker.ceph.com/issues/18458>`_, `pr#12784 <http://github.com/ceph/ceph/pull/12784>`_, Mingxin Liu)
-* mon: no delay for single message MSG_ALIVE and MSG_PGTEMP (`pr#12107 <http://github.com/ceph/ceph/pull/12107>`_, yaoning)
-* mon: optracker's initiated_at timestamp should not be NULL (`pr#12826 <http://github.com/ceph/ceph/pull/12826>`_, Mingxin Liu)
-* mon/OSDMonitor: fix process osd failure (`pr#12938 <http://github.com/ceph/ceph/pull/12938>`_, Mingxin Liu)
-* mon: post-jewel cleanups (`pr#13150 <http://github.com/ceph/ceph/pull/13150>`_, Kefu Chai)
-* msg/async: Fixed compilation error when enable -DWITH_DPDK (`pr#12660 <http://github.com/ceph/ceph/pull/12660>`_, Pan Liu)
-* msg/async: fixed coredump when enable dpdk. (`pr#12854 <http://github.com/ceph/ceph/pull/12854>`_, Pan Liu)
-* msg/async: fixed the error "Cause: Cannot create lock on '/var/run/.rte_c… (`pr#12860 <http://github.com/ceph/ceph/pull/12860>`_, Pan Liu)
-* msg/async: fix file description leak in NetHandler (`pr#13271 <http://github.com/ceph/ceph/pull/13271>`_, liuchang0812)
-* msg/async: NVMEDevice.cc: cleanup the logic in data_buf_next_sge (`pr#13056 <http://github.com/ceph/ceph/pull/13056>`_, optimistyzy)
-* msg/async/rdma: Fix memory leak of OSD (`pr#13101 <http://github.com/ceph/ceph/pull/13101>`_, Sarit Zubakov)
-* msg/async/rdma: fix RoCE v2 deafult value (`pr#12648 <http://github.com/ceph/ceph/pull/12648>`_, Adir Lev, Oren Duer)
-* msg/RDMA: Fix broken compilation due to new argument in net.connect() (`pr#13096 <http://github.com/ceph/ceph/pull/13096>`_, Amir Vadai)
-* os/bluestore: NVMEDevice: optimize sector_size usage (`pr#12780 <http://github.com/ceph/ceph/pull/12780>`_, optimistyzy)
-* osd: add asock command to dump the scrub queue (`issue#17861 <http://tracker.ceph.com/issues/17861>`_, `pr#12728 <http://github.com/ceph/ceph/pull/12728>`_, liuchang0812)
-* osd: allow client throttler to be adjusted on-fly, without restart (`issue#18791 <http://tracker.ceph.com/issues/18791>`_, `pr#13213 <http://github.com/ceph/ceph/pull/13213>`_, Piotr Dałek)
-* osd: Calculate degraded and misplaced more accurately (`issue#18619 <http://tracker.ceph.com/issues/18619>`_, `pr#13031 <http://github.com/ceph/ceph/pull/13031>`_, David Zafman)
-* osd: cleanup: use string & to avoid unnecessary copy (`pr#12336 <http://github.com/ceph/ceph/pull/12336>`_, Yunchuan Wen)
-* osd: condition object_info_t encoding on required (not up) features (`issue#18644 <http://tracker.ceph.com/issues/18644>`_, `pr#13114 <http://github.com/ceph/ceph/pull/13114>`_, Sage Weil)
-* osd: correct comment of perfcounter cached_crc in code (`pr#13256 <http://github.com/ceph/ceph/pull/13256>`_, lvshuhua)
-* osd: do not send ENXIO on misdirected op by default (`issue#18751 <http://tracker.ceph.com/issues/18751>`_, `pr#13206 <http://github.com/ceph/ceph/pull/13206>`_, Sage Weil)
-* osd: _exit() intead of exit() for failure injection (`issue#18372 <http://tracker.ceph.com/issues/18372>`_, `pr#12726 <http://github.com/ceph/ceph/pull/12726>`_, Sage Weil)
-* osd: extend OMAP_GETKEYS and GETVALS to include a 'more' output field (`pr#12950 <http://github.com/ceph/ceph/pull/12950>`_, Sage Weil)
-* osd: fix coverity warning for uninitialized members (`pr#12724 <http://github.com/ceph/ceph/pull/12724>`_, Li Wang)
-* osd: Fix useless MAX(0, unsigned) to prevent out of wack misplaced (`issue#18718 <http://tracker.ceph.com/issues/18718>`_, `pr#13164 <http://github.com/ceph/ceph/pull/13164>`_, David Zafman)
-* osd: improve error message when FileStore op fails due to EPERM (`issue#18037 <http://tracker.ceph.com/issues/18037>`_, `pr#12181 <http://github.com/ceph/ceph/pull/12181>`_, Nathan Cutler)
-* osd: never send rados ack (only commit) (`pr#12451 <http://github.com/ceph/ceph/pull/12451>`_, Sage Weil)
-* osd: osd/OSDMap: require OSD features only of OSDs (`issue#18831 <http://tracker.ceph.com/issues/18831>`_, `pr#13275 <http://github.com/ceph/ceph/pull/13275>`_, Ilya Dryomov)
-* osd: Return correct osd_objectstore in OSD metadata (`issue#18638 <http://tracker.ceph.com/issues/18638>`_, `pr#13072 <http://github.com/ceph/ceph/pull/13072>`_, Wido den Hollander)
-* osd: use separate waitlist for scrub (`pr#13136 <http://github.com/ceph/ceph/pull/13136>`_, Sage Weil)
-* performance,bluestore: os/bluestore/bluestore_types: drop std::bitset for blob unused (`pr#12569 <http://github.com/ceph/ceph/pull/12569>`_, Sage Weil)
-* performance,bluestore: os/bluestore: do not cache shard keys (`pr#12634 <http://github.com/ceph/ceph/pull/12634>`_, Sage Weil)
-* performance,bluestore: os/bluestore: generate same onode extent-shard keys in a more efficient way (`pr#12681 <http://github.com/ceph/ceph/pull/12681>`_, xie xingguo)
-* performance,bluestore: os/bluestore: kvdb histogram (`pr#12620 <http://github.com/ceph/ceph/pull/12620>`_, Varada Kari)
-* performance,bluestore: os/bluestore: prevent lock for almost "flush" calls (`pr#12524 <http://github.com/ceph/ceph/pull/12524>`_, Haomai Wang)
-* performance,bluestore: os/bluestore: replace Blob ref_map with reference counting (`pr#12904 <http://github.com/ceph/ceph/pull/12904>`_, Igor Fedotov)
-* performance,bluestore: os/bluestore: set cache meta ratio to .9 (`pr#12635 <http://github.com/ceph/ceph/pull/12635>`_, Sage Weil)
-* performance,bluestore: os/bluestore: use aio for reads (`pr#13066 <http://github.com/ceph/ceph/pull/13066>`_, Sage Weil)
-* performance,bluestore: os/bluestore: use Best-Effort policy when evicting onode from cache (`pr#12876 <http://github.com/ceph/ceph/pull/12876>`_, xie xingguo)
-* performance,bluestore: os/bluestore: various onode changes to reduce its in-memory footprint. (`pr#12700 <http://github.com/ceph/ceph/pull/12700>`_, Igor Fedotov)
-* performance,bluestore: Tested-by: Chagam, Anjaneya <anjaneya.chagam@intel.com> (`pr#13032 <http://github.com/ceph/ceph/pull/13032>`_, Sage Weil)
-* performance,cephfs: mds/server: skip unwanted dn in handle_client_readdir (`pr#12870 <http://github.com/ceph/ceph/pull/12870>`_, Xiaoxi Chen)
-* performance,common,bluestore: common/Finisher: Using queue(list<context*>) instead queue(context*). (`pr#8942 <http://github.com/ceph/ceph/pull/8942>`_, Jianpeng Ma)
-* performance: osd, messenger, librados: lttng oid tracing (`pr#12492 <http://github.com/ceph/ceph/pull/12492>`_, Anjaneya Chagam)
-* performance: osd/ReplicatedBackend: do not set omap header if it is empty (`pr#12612 <http://github.com/ceph/ceph/pull/12612>`_, fang yuxiang)
-* pybind: conditional compile the linux specific constant (`pr#12198 <http://github.com/ceph/ceph/pull/12198>`_, Kefu Chai)
-* qa: Add openstack requirements to smoke suite (`pr#12913 <http://github.com/ceph/ceph/pull/12913>`_, Zack Cerza)
-* qa: src/test/test_denc.cc: Fix errors in buffer overflow (`pr#12653 <http://github.com/ceph/ceph/pull/12653>`_, Willem Jan Withagen)
-* rbd: add error prompt when input command 'snap set limit' is incomplete (`pr#12945 <http://github.com/ceph/ceph/pull/12945>`_, Tang Jin)
-* rbd: additional validation for 'bench' optional parameters (`pr#12697 <http://github.com/ceph/ceph/pull/12697>`_, Yunchuan Wen)
-* rbd: bench-write should return error if io-size >= 4G (`issue#18422 <http://tracker.ceph.com/issues/18422>`_, `pr#12864 <http://github.com/ceph/ceph/pull/12864>`_, Gaurav Kumar Garg)
-* rbd: cleanup: fix the typo in namespace comment (`pr#12858 <http://github.com/ceph/ceph/pull/12858>`_, Dongsheng Yang)
-* rbd: correct coverity warnings (`pr#12954 <http://github.com/ceph/ceph/pull/12954>`_, Jason Dillaman)
-* rbd: destination pool should be source pool if it is not specified (`issue#18326 <http://tracker.ceph.com/issues/18326>`_, `pr#13189 <http://github.com/ceph/ceph/pull/13189>`_, Gaurav Kumar Garg)
-* rbd: enable rbd on FreeBSD (without KRBD) (`pr#12798 <http://github.com/ceph/ceph/pull/12798>`_, Willem Jan Withagen)
-* rbd: journal: don't hold future lock during assignment (`issue#18618 <http://tracker.ceph.com/issues/18618>`_, `pr#13033 <http://github.com/ceph/ceph/pull/13033>`_, Jason Dillaman)
-* rbd: journal: stop processing removal after error (`issue#18738 <http://tracker.ceph.com/issues/18738>`_, `pr#13193 <http://github.com/ceph/ceph/pull/13193>`_, Jason Dillaman)
-* rbd: rbd-mirror: add support for active/passive daemon instances (`issue#17018 <http://tracker.ceph.com/issues/17018>`_, `issue#17019 <http://tracker.ceph.com/issues/17019>`_, `issue#17020 <http://tracker.ceph.com/issues/17020>`_, `pr#12948 <http://github.com/ceph/ceph/pull/12948>`_, Mykola Golub)
-* rbd: rbd-mirror: avoid processing new events after stop requested (`issue#18441 <http://tracker.ceph.com/issues/18441>`_, `pr#12837 <http://github.com/ceph/ceph/pull/12837>`_, Jason Dillaman)
-* rbd: rbd-mirror: check remote image mirroring state when bootstrapping (`issue#18447 <http://tracker.ceph.com/issues/18447>`_, `pr#12820 <http://github.com/ceph/ceph/pull/12820>`_, Mykola Golub)
-* rbd: rbd-mirror: delayed replication support (`issue#15371 <http://tracker.ceph.com/issues/15371>`_, `pr#11879 <http://github.com/ceph/ceph/pull/11879>`_, Mykola Golub)
-* rbd: remove direct linking to static boost libraries (`pr#12962 <http://github.com/ceph/ceph/pull/12962>`_, Jason Dillaman)
-* rbd: remove unused condition within group action handler (`pr#12723 <http://github.com/ceph/ceph/pull/12723>`_, Gaurav Kumar Garg)
-* rgw: Added a globbing method for AWS Policies. (`pr#12445 <http://github.com/ceph/ceph/pull/12445>`_, Pritha Srivastava)
-* rgw: Added code for REST APIs for AWS Roles. (`pr#12104 <http://github.com/ceph/ceph/pull/12104>`_, Pritha Srivastava)
-* rgw: add lifecycle validation according to S3. (`issue#18394 <http://tracker.ceph.com/issues/18394>`_, `pr#12750 <http://github.com/ceph/ceph/pull/12750>`_, Zhang Shaowen)
-* rgw: be aware abount tenants on cls_user_bucket -> rgw_bucket conversion (`issue#18364 <http://tracker.ceph.com/issues/18364>`_, `issue#16355 <http://tracker.ceph.com/issues/16355>`_, `pr#13220 <http://github.com/ceph/ceph/pull/13220>`_, Radoslaw Zarzynski)
-* rgw: clear master_zonegroup when reseting RGWPeriodMap (`issue#17239 <http://tracker.ceph.com/issues/17239>`_, `pr#12658 <http://github.com/ceph/ceph/pull/12658>`_, Orit Wasserman)
-* rgw: complete versioning enablement after sending it to meta master (`issue#18003 <http://tracker.ceph.com/issues/18003>`_, `pr#12444 <http://github.com/ceph/ceph/pull/12444>`_, Orit Wasserman)
-* rgw: fix handling RGWUserInfo::system in RGWHandler_REST_SWIFT. (`issue#18476 <http://tracker.ceph.com/issues/18476>`_, `pr#12865 <http://github.com/ceph/ceph/pull/12865>`_, Radoslaw Zarzynski)
-* rgw: fix off-by-one in RGWDataChangesLog::get_info (`issue#18488 <http://tracker.ceph.com/issues/18488>`_, `pr#12884 <http://github.com/ceph/ceph/pull/12884>`_, Casey Bodley)
-* rgw: fix period update crash (`issue#18631 <http://tracker.ceph.com/issues/18631>`_, `pr#13054 <http://github.com/ceph/ceph/pull/13054>`_, Orit Wasserman)
-* rgw: fix use of marker in List::list_objects() (`issue#18331 <http://tracker.ceph.com/issues/18331>`_, `pr#13147 <http://github.com/ceph/ceph/pull/13147>`_, Yehuda Sadeh)
-* rgw: fix versioned bucket data sync fail when upload is busy (`issue#18208 <http://tracker.ceph.com/issues/18208>`_, `pr#12357 <http://github.com/ceph/ceph/pull/12357>`_, lvshuhua)
-* rgw: ldap: simple_bind() should set ldap version option on tldap (`pr#12616 <http://github.com/ceph/ceph/pull/12616>`_, Weibing Zhang)
-* rgw: librgw shut (`issue#18585 <http://tracker.ceph.com/issues/18585>`_, `pr#12972 <http://github.com/ceph/ceph/pull/12972>`_, Matt Benjamin)
-* rgw: orphan: fix error messages (`pr#12782 <http://github.com/ceph/ceph/pull/12782>`_, Weibing Zhang)
-* rgw: remove invalid read size4 (`issue#18071 <http://tracker.ceph.com/issues/18071>`_, `pr#12767 <http://github.com/ceph/ceph/pull/12767>`_, Matt Benjamin)
-* rgw: rgw_file: add timed namespace invalidation (`issue#18651 <http://tracker.ceph.com/issues/18651>`_, `pr#13038 <http://github.com/ceph/ceph/pull/13038>`_, Matt Benjamin)
-* rgw: rgw_file: fix RGWLibFS::setattr for directory objects (`issue#18808 <http://tracker.ceph.com/issues/18808>`_, `pr#13252 <http://github.com/ceph/ceph/pull/13252>`_, Matt Benjamin)
-* rgw: rgw_file: interned RGWFileHandle objects need parent refs (`issue#18650 <http://tracker.ceph.com/issues/18650>`_, `pr#13084 <http://github.com/ceph/ceph/pull/13084>`_, Matt Benjamin)
-* rgw: rgw_file: split last argv on ws, if provided (`pr#12965 <http://github.com/ceph/ceph/pull/12965>`_, Matt Benjamin)
-* rgw: RGWMetaSyncShardCR drops stack refs on destruction (`issue#18412 <http://tracker.ceph.com/issues/18412>`_, `issue#18300 <http://tracker.ceph.com/issues/18300>`_, `pr#12605 <http://github.com/ceph/ceph/pull/12605>`_, Casey Bodley)
-* rgw: rgw multisite: fix ref counting of completions (`issue#18414 <http://tracker.ceph.com/issues/18414>`_, `issue#18407 <http://tracker.ceph.com/issues/18407>`_, `pr#12841 <http://github.com/ceph/ceph/pull/12841>`_, Casey Bodley)
-* rgw: rgw realm set fixes (`issue#18333 <http://tracker.ceph.com/issues/18333>`_, `pr#12731 <http://github.com/ceph/ceph/pull/12731>`_, Orit Wasserman)
-* rgw: swift: fix anonymous user's error code of getting object (`issue#18806 <http://tracker.ceph.com/issues/18806>`_, `pr#13242 <http://github.com/ceph/ceph/pull/13242>`_, Jing Wenjun)
-* rgw: swift: the http referer acl in swift API should be shown (`issue#18665 <http://tracker.ceph.com/issues/18665>`_, `pr#13003 <http://github.com/ceph/ceph/pull/13003>`_, Jing Wenjun)
-* rgw: swift: The http referer should be parsed to compare in swift API (`issue#18685 <http://tracker.ceph.com/issues/18685>`_, `pr#13005 <http://github.com/ceph/ceph/pull/13005>`_, Jing Wenjun)
-* rgw: sync status compares the current master period (`issue#18064 <http://tracker.ceph.com/issues/18064>`_, `pr#12907 <http://github.com/ceph/ceph/pull/12907>`_, Abhishek Lekshmanan)
-* rgw: the swift container acl should support field .ref (`issue#18484 <http://tracker.ceph.com/issues/18484>`_, `pr#12874 <http://github.com/ceph/ceph/pull/12874>`_, Jing Wenjun)
-* rgw: Use decoded URI when verifying TempURL (`issue#18590 <http://tracker.ceph.com/issues/18590>`_, `pr#13007 <http://github.com/ceph/ceph/pull/13007>`_, Michal Koutný)
-* rgw: Wip rgw openssl 7 (`issue#11239 <http://tracker.ceph.com/issues/11239>`_, `issue#16535 <http://tracker.ceph.com/issues/16535>`_, `pr#11776 <http://github.com/ceph/ceph/pull/11776>`_, Yehuda Sadeh, Marcus Watts)
-* tests,bluestore: ceph_test_objectstore: match clone_range src and dst offset (`pr#13211 <http://github.com/ceph/ceph/pull/13211>`_, Sage Weil)
-* tests,cephfs: Improve vstart_runner to (optionally) create its own cluster (`pr#12800 <http://github.com/ceph/ceph/pull/12800>`_, John Spray)
-* tests: ceph-helpers.sh reduce get_timeout_delays() verbosity (`pr#13257 <http://github.com/ceph/ceph/pull/13257>`_, Kefu Chai)
-* tests: ceph_test_rados_api_watch_notify: move global variables into test class (`issue#18395 <http://tracker.ceph.com/issues/18395>`_, `pr#12751 <http://github.com/ceph/ceph/pull/12751>`_, Kefu Chai)
-* tests,cleanup,rbd: test: correct language mode in file headers (`pr#12924 <http://github.com/ceph/ceph/pull/12924>`_, Jason Dillaman)
-* tests,cleanup: test: clean up unused variable (`pr#12873 <http://github.com/ceph/ceph/pull/12873>`_, liuchang0812)
-* tests,cleanup: test: update test_rados_tool.sh, use POOL and OBJ var (`pr#12706 <http://github.com/ceph/ceph/pull/12706>`_, liuchang0812)
-* tests: drop rbd_cli_tests.pl and RbdLib.pm (`issue#14825 <http://tracker.ceph.com/issues/14825>`_, `pr#12821 <http://github.com/ceph/ceph/pull/12821>`_, Nathan Cutler)
-* tests: drop unused rbd_functional_tests.pl script (`issue#14825 <http://tracker.ceph.com/issues/14825>`_, `pr#12818 <http://github.com/ceph/ceph/pull/12818>`_, Nathan Cutler)
-* tests: fix NULL references to be acceptable by Clang (`pr#12880 <http://github.com/ceph/ceph/pull/12880>`_, Willem Jan Withagen)
-* tests: fix template specialization of PromoteRequest class (`pr#12815 <http://github.com/ceph/ceph/pull/12815>`_, Ricardo Dias)
-* tests: ignore bogus ceph-objectstore-tool error in ceph_manager (`issue#16263 <http://tracker.ceph.com/issues/16263>`_, `pr#13194 <http://github.com/ceph/ceph/pull/13194>`_, Nathan Cutler)
-* tests: nosetests: use /usr/bin/env to find nosetests (`pr#12091 <http://github.com/ceph/ceph/pull/12091>`_, Willem Jan Withagen)
-* tests: qa: Cleaned up distros to use `latest` versions (`pr#12804 <http://github.com/ceph/ceph/pull/12804>`_, Yuri Weinstein)
-* tests: qa/distros: make centos_latest 7.3 (`pr#12944 <http://github.com/ceph/ceph/pull/12944>`_, Sage Weil)
-* tests: qa: do not mention ceph branch explicitly (`pr#13225 <http://github.com/ceph/ceph/pull/13225>`_, Tamil Muthamizhan)
-* tests: qa: fixed distros links (`pr#12770 <http://github.com/ceph/ceph/pull/12770>`_, Yuri Weinstein)
-* tests: qa: specify client for fs workunit (`pr#12914 <http://github.com/ceph/ceph/pull/12914>`_, Tamil Muthamizhan)
-* tests: qa/suite: Added a smoke suite for ceph-ansible (`pr#12610 <http://github.com/ceph/ceph/pull/12610>`_, Tamil Muthamizhan)
-* tests: qa/suites/ceph-ansible: removing fs workunit (`pr#12928 <http://github.com/ceph/ceph/pull/12928>`_, Tamil Muthamizhan)
-* tests: qa/tasks/ceph-deploy: create-keys explicitly (`pr#12867 <http://github.com/ceph/ceph/pull/12867>`_, Vasu Kulkarni)
-* tests: qa/tasks/ceph-deploy: use the new create option during instantiation (`pr#12892 <http://github.com/ceph/ceph/pull/12892>`_, Vasu Kulkarni)
-* tests: qa/test_rados_tool.sh: POSIX dd only accepts 'k' as multiplier (`pr#12699 <http://github.com/ceph/ceph/pull/12699>`_, Willem Jan Withagen)
-* tests: qa: Using centos 7.2 for `latest` version (`pr#12806 <http://github.com/ceph/ceph/pull/12806>`_, Yuri Weinstein)
-* tests: qa/workunits/ceph-helpers: wait_for_clean() races with pg creation (`pr#12866 <http://github.com/ceph/ceph/pull/12866>`_, David Zafman)
-* tests,rbd: qa: integrate OpenStack 'gate-tempest-dsvm-full-devstack-plugin-ceph' (`issue#18594 <http://tracker.ceph.com/issues/18594>`_, `pr#13158 <http://github.com/ceph/ceph/pull/13158>`_, Jason Dillaman)
-* tests,rbd: qa/tasks/qemu: update default image url after ceph.com redesign (`issue#18542 <http://tracker.ceph.com/issues/18542>`_, `pr#12953 <http://github.com/ceph/ceph/pull/12953>`_, Jason Dillaman)
-* tests,rbd: test/librbd: add break_lock test (`pr#12842 <http://github.com/ceph/ceph/pull/12842>`_, Mykola Golub)
-* tests: rbd/test_lock_fence.sh: fix rbdrw.py relative path (`issue#18388 <http://tracker.ceph.com/issues/18388>`_, `pr#12747 <http://github.com/ceph/ceph/pull/12747>`_, Nathan Cutler)
-* tests,rbd: test: use librados API to retrieve config params (`issue#18617 <http://tracker.ceph.com/issues/18617>`_, `pr#13076 <http://github.com/ceph/ceph/pull/13076>`_, Jason Dillaman)
-* tests: remove temporary file (`pr#12919 <http://github.com/ceph/ceph/pull/12919>`_, Kefu Chai)
-* tests,rgw: test/rgw: add test for versioned object sync (`pr#12474 <http://github.com/ceph/ceph/pull/12474>`_, Casey Bodley)
-* tests: subst repo and branch in git.ceph.com URL in qa/tasks/cram.py and qa/tasks/qemu.py (`issue#18440 <http://tracker.ceph.com/issues/18440>`_, `pr#12816 <http://github.com/ceph/ceph/pull/12816>`_, Nathan Cutler)
-* tests: test: librados_test_stub: tmap_update: return -ENOENT when removing nonexisent key (`pr#12667 <http://github.com/ceph/ceph/pull/12667>`_, Mykola Golub)
-* tests: test: replace hard-code binary names with varibles (`pr#12675 <http://github.com/ceph/ceph/pull/12675>`_, liuchang0812)
-* tests: Thrasher: eliminate a race between kill_osd and __init__ (`issue#18799 <http://tracker.ceph.com/issues/18799>`_, `pr#13237 <http://github.com/ceph/ceph/pull/13237>`_, Nathan Cutler)
-* tools: ceph-disk: convert none str to str before printing it (`issue#18371 <http://tracker.ceph.com/issues/18371>`_, `pr#12760 <http://github.com/ceph/ceph/pull/12760>`_, Kefu Chai)
-* tools: ceph-objectstore-tool: Handle object names that are also valid json (`pr#12848 <http://github.com/ceph/ceph/pull/12848>`_, David Zafman)
-* tools: ceph-release-notes: ignore low-numbered PRs (`issue#18695 <http://tracker.ceph.com/issues/18695>`_, `pr#13151 <http://github.com/ceph/ceph/pull/13151>`_, Nathan Cutler)
-* tools,common: osdmaptool: show all the pg map to osds info (`pr#9419 <http://github.com/ceph/ceph/pull/9419>`_, song baisen)
-* tools: script: ceph-release-notes check orig. issue only for backports (`pr#12979 <http://github.com/ceph/ceph/pull/12979>`_, Abhishek Lekshmanan)
-* tools: support hammer in rbd_recover_tool (`pr#12413 <http://github.com/ceph/ceph/pull/12413>`_, Bartłomiej Święcki)
-* tools: tools/rados: add a parameter "--offset" to rados put command (`pr#12674 <http://github.com/ceph/ceph/pull/12674>`_, liuchang0812)
-
-
-v11.2.0 Kraken
-==============
-
-This is the first release of the Kraken series. It is a stable
-release that will be maintained with bugfixes and backports until the
-next stable release, Luminous, is completed in the Spring of 2017.
-
-Major Changes from Jewel
-------------------------
-
-- *RADOS*:
-
- * The new *BlueStore* backend now has a stable disk format and is
- passing our failure and stress testing. Although the backend is
- still flagged as experimental, we encourage users to try it out
- for non-production clusters and non-critical data sets.
- * RADOS now has experimental support for *overwrites on
- erasure-coded* pools. Because the disk format and implementation
- are not yet finalized, there is a special pool option that must be
- enabled to test the new feature.  Enabling this option on a cluster
- will permanently bar that cluster from being upgraded to future
- versions.
- * We now default to the AsyncMessenger (``ms type = async``) instead
- of the legacy SimpleMessenger.  The most noticeable difference is
- that we now use a fixed sized thread pool for network connections
- (instead of two threads per socket with SimpleMessenger).
- * Some OSD failures are now detected almost immediately, whereas
- previously the heartbeat timeout (which defaults to 20 seconds)
- had to expire.  This prevents IO from blocking for an extended
- period for failures where the host remains up but the ceph-osd
- process is no longer running.
- * There is a new ``ceph-mgr`` daemon.  It is currently collocated with
- the monitors by default, and is not yet used for much, but the basic
- infrastructure is now in place.
- * The size of encoded OSDMaps has been reduced.
- * The OSDs now quiesce scrubbing when recovery or rebalancing is in progress.
-
-- *RGW*:
-
- * RGW now supports a new zone type that can be used for metadata indexing
- via ElasticSearch.
- * RGW now supports the S3 multipart object copy-part API.
- * It is possible now to reshard an existing bucket. Note that bucket
- resharding currently requires that all IO (especially writes) to
- the specific bucket is quiesced.
- * RGW now supports data compression for objects.
- * Civetweb version has been upgraded to 1.8
- * The Swift static website API is now supported (S3 support has been added
- previously).
- * S3 bucket lifecycle API has been added. Note that currently it only supports
- object expiration.
- * Support for custom search filters has been added to the LDAP auth
- implementation.
- * Support for NFS version 3 has been added to the RGW NFS gateway.
- * A Python binding has been created for librgw.
-
-- *RBD*:
-
- * RBD now supports images stored in an *erasure-coded* RADOS pool
- using the new (experimental) overwrite support. Images must be
- created using the new rbd CLI "--data-pool <ec pool>" option to
- specify the EC pool where the backing data objects are
- stored. Attempting to create an image directly on an EC pool will
- not be successful since the image's backing metadata is only
- supported on a replicated pool.
- * The rbd-mirror daemon now supports replicating dynamic image
- feature updates and image metadata key/value pairs from the
- primary image to the non-primary image.
- * The number of image snapshots can be optionally restricted to a
- configurable maximum.
- * The rbd Python API now supports asynchronous IO operations.
-
-- *CephFS*:
-
- * libcephfs function definitions have been changed to enable proper
- uid/gid control. The library version has been increased to reflect the
- interface change.
- * Standby replay MDS daemons now consume less memory on workloads
- doing deletions.
- * Scrub now repairs backtrace, and populates `damage ls` with
- discovered errors.
- * A new `pg_files` subcommand to `cephfs-data-scan` can identify
- files affected by a damaged or lost RADOS PG.
- * The false-positive "failing to respond to cache pressure" warnings have
- been fixed.
-
-
-Upgrading from Kraken release candidate 11.1.0
-----------------------------------------------
-
-* The new *BlueStore* backend had an on-disk format change after 11.1.0.
- Any BlueStore OSDs created with 11.1.0 will need to be destroyed and
- recreated.
-
-Upgrading from Jewel
---------------------
-
-* All clusters must first be upgraded to Jewel 10.2.z before upgrading
- to Kraken 11.2.z (or, eventually, Luminous 12.2.z).
-
-* The ``sortbitwise`` flag must be set on the Jewel cluster before upgrading
- to Kraken. The latest Jewel (10.2.8+) releases issue a health warning if
- the flag is not set, so this is probably already set. If it is not, Kraken
- OSDs will refuse to start and will print and error message in their log.
-
-* You may upgrade OSDs, Monitors, and MDSs in any order. RGW daemons
- should be upgraded last.
-
-* When upgrading, new ceph-mgr daemon instances will be created automatically
- alongside any monitors. This will be true for Jewel to Kraken and Jewel to
- Luminous upgrades, but likely not be true for future upgrades beyond
- Luminous. You are, of course, free to create new ceph-mgr daemon instances
- and destroy the auto-created ones if you do not with them to be colocated
- with the ceph-mon daemons.
-
-
-BlueStore
----------
-
-BlueStore is a new backend for managing data stored by each OSD on the directly
-hard disk or SSD. Unlike the existing FileStore implementation, which makes
-use of an XFS file system to store objects as files, BlueStore manages the
-underlying block device directly. Implements its own file system-like on-disk
-structure the is designed specifically for Ceph OSD workloads. Key features
-of BlueStore include:
-
- * Checksums on all data written to disk, with checksum verifications on all
- reads, enabled by default.
- * Inline compression support, which can be enabled on a per-pool or per-object
- basis via pool properties or client hints, respectively.
- * Efficient journaling. Unlike FileStore, which writes *all* data to
- its journal device, BlueStore only journals metadata and (in some
- cases) small writes, reducing the size and throughput requirements
- for its journal. As with FileStore, the journal can be colocated
- on the same device as other data or allocated on a smaller,
- high-performance device (e.g., an SSD or NVMe device). BlueStore
- journals are only 512 MB by default.
-
-The BlueStore on-disk format is expected to continue to evolve. However, we
-will provide support in the OSD to migrate to the new format on upgrade.
-
-.. note: BlueStore is still marked "experimental" in Kraken. We
- recommend its use for proof-of-concept and test environments, or
- other cases where data loss can be tolerated. Although it is
- stable in our testing environment, the code is new and bugs are
- inevitable. We hope that with user feedback from Kraken
- deployments we will have sufficient confidence to mark it stable
- (and the default) in the next major release (Luminous).
-
-In order to enable BlueStore, add the following to ceph.conf::
-
- enable experimental unrecoverable data corrupting features = bluestore
-
-To create a BlueStore OSD, pass the --bluestore option to ceph-disk or
-ceph-deploy during OSD creation.
-
-
-
-Upgrade notes
--------------
-
-* The OSDs now avoid starting new scrubs while recovery is in progress. To
- revert to the old behavior (and do not let recovery activity affect the
- scrub scheduling) you can set the following option::
-
- osd scrub during recovery = true
-
-* The list of monitor hosts/addresses for building the monmap can now be
- obtained from DNS SRV records. The service name used in when querying the DNS
- is defined in the "mon_dns_srv_name" config option, which defaults to
- "ceph-mon".
-
-* The 'osd class load list' config option is a list of object class names that
- the OSD is permitted to load (or '*' for all classes). By default it
- contains all existing in-tree classes for backwards compatibility.
-
-* The 'osd class default list' config option is a list of object class
- names (or '*' for all classes) that clients may invoke having only
- the '*', 'x', 'class-read', or 'class-write' capabilities. By
- default it contains all existing in-tree classes for backwards
- compatibility. Invoking classes not listed in 'osd class default
- list' requires a capability naming the class (e.g. 'allow class
- foo').
-
-* The 'rgw rest getusage op compat' config option allows you to dump
- (or not dump) the description of user stats in the S3 GetUsage
- API. This option defaults to false. If the value is true, the
- reponse data for GetUsage looks like::
-
- "stats": {
- "TotalBytes": 516,
- "TotalBytesRounded": 1024,
- "TotalEntries": 1
- }
-
- If the value is false, the reponse for GetUsage looks as it did before::
-
- {
- 516,
- 1024,
- 1
- }
-
-* The 'osd out ...' and 'osd in ...' commands now preserve the OSD
- weight. That is, after marking an OSD out and then in, the weight
- will be the same as before (instead of being reset to 1.0).
- Previously the mons would only preserve the weight if the mon
- automatically marked and OSD out and then in, but not when an admin
- did so explicitly.
-
-* The 'ceph osd perf' command will display 'commit_latency(ms)' and
- 'apply_latency(ms)'. Previously, the names of these two columns are
- 'fs_commit_latency(ms)' and 'fs_apply_latency(ms)'. We remove the
- prefix 'fs\_', because they are not filestore specific.
-
-* Monitors will no longer allow pools to be removed by default. The
- setting mon_allow_pool_delete has to be set to true (defaults to
- false) before they allow pools to be removed. This is a additional
- safeguard against pools being removed by accident.
-
-* If you have manually specified the monitor user rocksdb via the
- ``mon keyvaluedb = rocksdb`` option, you will need to manually add a
- file to the mon data directory to preserve this option::
-
- echo rocksdb > /var/lib/ceph/mon/ceph-`hostname`/kv_backend
-
- New monitors will now use rocksdb by default, but if that file is
- not present, existing monitors will use leveldb. The ``mon
- keyvaluedb`` option now only affects the backend chosen when a
- monitor is created.
-
-* The 'osd crush initial weight' option allows you to specify a CRUSH
- weight for a newly added OSD. Previously a value of 0 (the default)
- meant that we should use the size of the OSD's store to weight the
- new OSD. Now, a value of 0 means it should have a weight of 0, and
- a negative value (the new default) means we should automatically
- weight the OSD based on its size. If your configuration file
- explicitly specifies a value of 0 for this option you will need to
- change it to a negative value (e.g., -1) to preserve the current
- behavior.
-
-* The `osd crush location` config option is no longer supported. Please
- update your ceph.conf to use the `crush location` option instead.
-
-* The static libraries are no longer included by the debian
- development packages (lib*-dev) as it is not required per debian
- packaging policy. The shared (.so) versions are packaged as before.
-
-* The libtool pseudo-libraries (.la files) are no longer included by
- the debian development packages (lib*-dev) as they are not required
- per https://wiki.debian.org/ReleaseGoals/LAFileRemoval and
- https://www.debian.org/doc/manuals/maint-guide/advanced.en.html.
-
-* The jerasure and shec plugins can now detect SIMD instruction at
- runtime and no longer need to be explicitly configured for different
- processors. The following plugins are now deprecated:
- jerasure_generic, jerasure_sse3, jerasure_sse4, jerasure_neon,
- shec_generic, shec_sse3, shec_sse4, and shec_neon. If you use any of
- these plugins directly you will see a warning in the mon log file.
- Please switch to using just 'jerasure' or 'shec'.
-
-* The librados omap get_keys and get_vals operations include a start key and a
- limit on the number of keys to return. The OSD now imposes a configurable
- limit on the number of keys and number of total bytes it will respond with,
- which means that a librados user might get fewer keys than they asked for.
- This is necessary to prevent careless users from requesting an unreasonable
- amount of data from the cluster in a single operation. The new limits are
- configured with `osd_max_omap_entries_per_request`, defaulting to 131,072, and
- 'osd_max_omap_bytes_per_request', defaulting to 4MB.
-
-* Calculation of recovery priorities has been updated.
- This could lead to unintuitive recovery prioritization
- during cluster upgrade. In case of such recovery, OSDs
- in old version would operate on different priority ranges
- than new ones. Once upgraded, cluster will operate on
- consistent values.
-
-
-Notable Changes
----------------
-
-* bluestore: add counter to trace blob splitting (`pr#11718 <http://github.com/ceph/ceph/pull/11718>`_, xie xingguo)
-* bluestore: a few more cleanups (`pr#11780 <http://github.com/ceph/ceph/pull/11780>`_, xie xingguo)
-* bluestore: avoid polluting shard info if need resharding (`pr#11439 <http://github.com/ceph/ceph/pull/11439>`_, xie xingguo)
-* bluestore: avoid unnecessary call to init_csum() (`pr#12015 <http://github.com/ceph/ceph/pull/12015>`_, xie xingguo)
-* bluestore: ceph-disk: adjust bluestore default device sizes (`pr#12530 <http://github.com/ceph/ceph/pull/12530>`_, Sage Weil)
-* bluestore: ceph_test_objectstore: smaller device (`pr#11591 <http://github.com/ceph/ceph/pull/11591>`_, Sage Weil)
-* bluestore: clean up Allocator::dump (`issue#18054 <http://tracker.ceph.com/issues/18054>`_, `pr#12282 <http://github.com/ceph/ceph/pull/12282>`_, Sage Weil)
-* bluestore: clear extent map on object removal (`pr#11603 <http://github.com/ceph/ceph/pull/11603>`_, Sage Weil)
-* bluestore: compressor/ZLibCompressor: fix broken isal-l (`pr#11445 <http://github.com/ceph/ceph/pull/11445>`_, Igor Fedotov)
-* bluestore: dedup if space overlap truly exists (`pr#11986 <http://github.com/ceph/ceph/pull/11986>`_, xie xingguo)
-* bluestore: dedup omap_head, reuse nid instead (`pr#12275 <http://github.com/ceph/ceph/pull/12275>`_, xie xingguo)
-* bluestore: deep fsck (`pr#11724 <http://github.com/ceph/ceph/pull/11724>`_, Sage Weil)
-* bluestore: default bluestore_clone_cow=true (`pr#11540 <http://github.com/ceph/ceph/pull/11540>`_, Sage Weil)
-* bluestore: drop inline_dirty from struct ExtentMap (`pr#11377 <http://github.com/ceph/ceph/pull/11377>`_, xie xingguo)
-* bluestore: drop member "space" from Onode (`pr#12185 <http://github.com/ceph/ceph/pull/12185>`_, xie xingguo)
-* bluestore: fix alloc release timing on sync submits (`pr#11983 <http://github.com/ceph/ceph/pull/11983>`_, Sage Weil)
-* bluestore: fix bufferspace stats leak due to blob splitting (`pr#12039 <http://github.com/ceph/ceph/pull/12039>`_, xie xingguo)
-* bluestore: fix collection_list end bound off-by-one (`pr#11771 <http://github.com/ceph/ceph/pull/11771>`_, Sage Weil)
-* bluestore: fix compiler warnings (`pr#11905 <http://github.com/ceph/ceph/pull/11905>`_, xie xingguo)
-* bluestore: fixes and cleanups (`pr#11761 <http://github.com/ceph/ceph/pull/11761>`_, xie xingguo)
-* bluestore: fix escaping of chars > 0x80 (`pr#11502 <http://github.com/ceph/ceph/pull/11502>`_, Sage Weil)
-* bluestore: fix extent shard span check (`pr#11725 <http://github.com/ceph/ceph/pull/11725>`_, Sage Weil)
-* bluestore: fix has_aios (`pr#11317 <http://github.com/ceph/ceph/pull/11317>`_, Sage Weil)
-* bluestore: Fix invalid compression statfs caused by clone op (`pr#11351 <http://github.com/ceph/ceph/pull/11351>`_, Igor Fedotov)
-* bluestore: fix lack of resharding (`pr#11597 <http://github.com/ceph/ceph/pull/11597>`_, Igor Fedotov)
-* bluestore: fix latency calculation (`pr#12040 <http://github.com/ceph/ceph/pull/12040>`_, Pan Liu)
-* bluestore: fix onode vs extent key suffix (`pr#11452 <http://github.com/ceph/ceph/pull/11452>`_, Sage Weil)
-* bluestore: fix potential memory leak (`pr#11893 <http://github.com/ceph/ceph/pull/11893>`_, xie xingguo)
-* bluestore: fix race condtion during blob spliting (`pr#11422 <http://github.com/ceph/ceph/pull/11422>`_, xiexingguo, xie xingguo)
-* bluestore: fix remove_collection to properly detect collection e… (`pr#11398 <http://github.com/ceph/ceph/pull/11398>`_, Igor Fedotov)
-* bluestore: fix _split_collections race with osr_reap (`pr#11748 <http://github.com/ceph/ceph/pull/11748>`_, Sage Weil)
-* bluestore: fix up compression tests and debug output (`pr#11350 <http://github.com/ceph/ceph/pull/11350>`_, Sage Weil)
-* bluestore: fix writes that span existing shard boundaries (`pr#11451 <http://github.com/ceph/ceph/pull/11451>`_, Sage Weil)
-* bluestore: flush before enumerating omap values (`issue#18140 <http://tracker.ceph.com/issues/18140>`_, `pr#12328 <http://github.com/ceph/ceph/pull/12328>`_, Sage Weil)
-* bluestore: formatting nits (`pr#11514 <http://github.com/ceph/ceph/pull/11514>`_, xie xingguo)
-* bluestore: fsck: fix omap_head check (`pr#11726 <http://github.com/ceph/ceph/pull/11726>`_, Sage Weil)
-* bluestore: GC infra refactor, more UTs and GC range calculation fixes (`pr#11482 <http://github.com/ceph/ceph/pull/11482>`_, Igor Fedotov)
-* bluestore: KernelDevice: fix race in aio_thread vs aio_wait (`issue#17824 <http://tracker.ceph.com/issues/17824>`_, `pr#12204 <http://github.com/ceph/ceph/pull/12204>`_, Sage Weil)
-* bluestore: kv: dump rocksdb stats (`pr#12287 <http://github.com/ceph/ceph/pull/12287>`_, Varada Kari, Jianpeng Ma, Sage Weil)
-* bluestore: kv/rocksdb: enable rocksdb write path breakdown (`pr#11696 <http://github.com/ceph/ceph/pull/11696>`_, Haodong Tang)
-* bluestore: kv/RocksDBStore: rename option (`pr#11769 <http://github.com/ceph/ceph/pull/11769>`_, Sage Weil)
-* bluestore: less code redundancy (`pr#11740 <http://github.com/ceph/ceph/pull/11740>`_, xie xingguo)
-* bluestore: make 2q cache kin/kout size tunable (`pr#11599 <http://github.com/ceph/ceph/pull/11599>`_, Haodong Tang)
-* bluestore: mark ops that can't tolerate ENOENT (`pr#12114 <http://github.com/ceph/ceph/pull/12114>`_, Sage Weil)
-* bluestore: mempool: changes for bitmap allocator (`pr#11922 <http://github.com/ceph/ceph/pull/11922>`_, Ramesh Chander)
-* bluestore: misc. fixes and cleanups (`pr#11964 <http://github.com/ceph/ceph/pull/11964>`_, xie xingguo)
-* bluestore: move bluefs into its own mempool (`pr#11834 <http://github.com/ceph/ceph/pull/11834>`_, Sage Weil)
-* bluestore: no garbage collection for uncompressed blobs (`pr#11539 <http://github.com/ceph/ceph/pull/11539>`_, Roushan Ali, Sage Weil)
-* bluestore: optional debug mode to identify aio stalls (`pr#11818 <http://github.com/ceph/ceph/pull/11818>`_, Sage Weil)
-* bluestore: os/bluestore: a few cleanups (`pr#11483 <http://github.com/ceph/ceph/pull/11483>`_, Sage Weil)
-* bluestore: os/bluestore: avoid resharding if the last shard size fall below shar… (`pr#12447 <http://github.com/ceph/ceph/pull/12447>`_, Igor Fedotov)
-* bluestore: os/bluestore: bitmap allocator dump functionality (`pr#12298 <http://github.com/ceph/ceph/pull/12298>`_, Ramesh Chander)
-* bluestore: os/bluestore: bluestore_sync_submit_transaction = false (`pr#12367 <http://github.com/ceph/ceph/pull/12367>`_, Sage Weil)
-* bluestore: os/bluestore: cleanup around Blob::ref_map (`pr#11896 <http://github.com/ceph/ceph/pull/11896>`_, Igor Fedotov)
-* bluestore: os/bluestore: clear omap flag if parent has none (`pr#12351 <http://github.com/ceph/ceph/pull/12351>`_, xie xingguo)
-* bluestore: os/bluestore: don't implicitly create the source object for clone (`pr#12353 <http://github.com/ceph/ceph/pull/12353>`_, xie xingguo)
-* bluestore: os/bluestore: drop old bluestore preconditioning; replace with wal preextension of file size (`pr#12265 <http://github.com/ceph/ceph/pull/12265>`_, Sage Weil)
-* bluestore: os/bluestore: fix global commit latency (`pr#12356 <http://github.com/ceph/ceph/pull/12356>`_, xie xingguo)
-* bluestore: os/bluestore: fix ondisk encoding for blobs (`pr#12488 <http://github.com/ceph/ceph/pull/12488>`_, Varada Kari, Sage Weil)
-* bluestore: os/bluestore: fix potential csum_order overflow (`pr#12333 <http://github.com/ceph/ceph/pull/12333>`_, xie xingguo)
-* bluestore: os/bluestore: fix target_buffer value overflow in Cache::trim() (`pr#12507 <http://github.com/ceph/ceph/pull/12507>`_, Igor Fedotov)
-* bluestore: os/bluestore: include modified objects in flush list even if onode unchanged (`pr#12541 <http://github.com/ceph/ceph/pull/12541>`_, Sage Weil)
-* bluestore: os/bluestore: kill dead gc-related counters (`pr#12065 <http://github.com/ceph/ceph/pull/12065>`_, xie xingguo)
-* bluestore: os/bluestore: kill overlay related options (`pr#11557 <http://github.com/ceph/ceph/pull/11557>`_, xie xingguo)
-* bluestore: os/bluestore: misc coverity fixes/cleanups (`pr#12202 <http://github.com/ceph/ceph/pull/12202>`_, Sage Weil)
-* bluestore: os/bluestore: preserve source collection cache during split (`pr#12574 <http://github.com/ceph/ceph/pull/12574>`_, Sage Weil)
-* bluestore: os/bluestore: remove 'extents' from shard_info (`pr#12629 <http://github.com/ceph/ceph/pull/12629>`_, Sage Weil)
-* bluestore: os/bluestore: simplified allocator interfaces to single apis (`pr#12355 <http://github.com/ceph/ceph/pull/12355>`_, Ramesh Chander)
-* bluestore: os/bluestore: simplify allocator release flow (`pr#12343 <http://github.com/ceph/ceph/pull/12343>`_, Sage Weil)
-* bluestore: os/bluestore: simplify can_split_at() (`pr#11607 <http://github.com/ceph/ceph/pull/11607>`_, xie xingguo)
-* bluestore: os/bluestore: use iterator for erase() method directly (`pr#11490 <http://github.com/ceph/ceph/pull/11490>`_, xie xingguo)
-* bluestore: os/kstore: rmcoll fix to satisfy store_test (`pr#11533 <http://github.com/ceph/ceph/pull/11533>`_, Igor Fedotov)
-* bluestore: os: make filestore_blackhole -> objectstore_blackhole (`pr#11788 <http://github.com/ceph/ceph/pull/11788>`_, Sage Weil)
-* bluestore: os: move_ranges_destroy_src (`pr#11237 <http://github.com/ceph/ceph/pull/11237>`_, Manali Kulkarni, Sage Weil)
-* bluestore: readability improvements and doxygen fix (`pr#11895 <http://github.com/ceph/ceph/pull/11895>`_, xie xingguo)
-* bluestore: reap collection after all pending ios done (`pr#11797 <http://github.com/ceph/ceph/pull/11797>`_, Haomai Wang)
-* bluestore: reap ioc when stopping aio_thread. (`pr#11811 <http://github.com/ceph/ceph/pull/11811>`_, Haodong Tang)
-* bluestore: refactor _do_write(); move initializaiton of csum out of loop (`pr#11823 <http://github.com/ceph/ceph/pull/11823>`_, xie xingguo)
-* bluestore: remove duplicated namespace of tx state (`pr#11845 <http://github.com/ceph/ceph/pull/11845>`_, xie xingguo)
-* bluestore: remove garbage collector staff (`pr#12042 <http://github.com/ceph/ceph/pull/12042>`_, Igor Fedotov)
-* bluestore: set next object as ghobject_t::get_max() when start.hobj.i… (`pr#11495 <http://github.com/ceph/ceph/pull/11495>`_, Xinze Chi, Haomai Wang)
-* bluestore: simplify blob status checking for small writes (`pr#11366 <http://github.com/ceph/ceph/pull/11366>`_, xie xingguo)
-* bluestore: some more cleanups (`pr#11910 <http://github.com/ceph/ceph/pull/11910>`_, xie xingguo)
-* bluestore: spdk: a few fixes (`pr#11882 <http://github.com/ceph/ceph/pull/11882>`_, Yehuda Sadeh)
-* bluestore: speed up omap-key generation for same onode (`pr#11807 <http://github.com/ceph/ceph/pull/11807>`_, xie xingguo)
-* bluestore: traverse buffer_map in reverse order when spliting BufferSpace (`pr#11468 <http://github.com/ceph/ceph/pull/11468>`_, xie xingguo)
-* bluestore: update cache logger after 'trim_cache' operation (`pr#11695 <http://github.com/ceph/ceph/pull/11695>`_, Haodong Tang)
-* bluestore: use bitmap allocator for bluefs (`pr#12285 <http://github.com/ceph/ceph/pull/12285>`_, Sage Weil)
-* bluestore: use std::unordered_map for SharedBlob lookup (`pr#11394 <http://github.com/ceph/ceph/pull/11394>`_, Sage Weil)
-* build/ops: AArch64: Detect crc32 extension support from assembler (`issue#17516 <http://tracker.ceph.com/issues/17516>`_, `pr#11391 <http://github.com/ceph/ceph/pull/11391>`_, Alexander Graf)
-* build/ops: boost: embedded (`pr#11817 <http://github.com/ceph/ceph/pull/11817>`_, Sage Weil, Matt Benjamin)
-* build/ops: build: dump env during build (`issue#18084 <http://tracker.ceph.com/issues/18084>`_, `pr#12284 <http://github.com/ceph/ceph/pull/12284>`_, Sage Weil)
-* build/ops: ceph-detect-init: FreeBSD introduction of bsdrc (`pr#11906 <http://github.com/ceph/ceph/pull/11906>`_, Willem Jan Withagen, Kefu Chai)
-* build/ops: ceph-disk: enable --runtime ceph-osd systemd units (`issue#17889 <http://tracker.ceph.com/issues/17889>`_, `pr#12241 <http://github.com/ceph/ceph/pull/12241>`_, Loic Dachary)
-* build/ops: ceph.spec: add pybind rgwfile (`pr#11847 <http://github.com/ceph/ceph/pull/11847>`_, Haomai Wang)
-* build/ops,cleanup,bluestore: os/bluestore: remove build warning in a better way (`pr#11920 <http://github.com/ceph/ceph/pull/11920>`_, Igor Fedotov)
-* build/ops: CMakeLists: add vstart-base target (`pr#12476 <http://github.com/ceph/ceph/pull/12476>`_, Sage Weil)
-* build/ops: CMakeLists.txt: enable LTTNG by default (`pr#11500 <http://github.com/ceph/ceph/pull/11500>`_, Sage Weil)
-* build/ops: common/buffer.cc: raw_pipe depends on splice(2) (`pr#11967 <http://github.com/ceph/ceph/pull/11967>`_, Willem Jan Withagen)
-* build/ops,common: common/str_list.h: fix clang warning about std::move (`pr#12570 <http://github.com/ceph/ceph/pull/12570>`_, Willem Jan Withagen)
-* build/ops,core: xio: fix build (`pr#11768 <http://github.com/ceph/ceph/pull/11768>`_, Matt Benjamin)
-* build/ops: deb: add python dependencies where needed (`issue#17579 <http://tracker.ceph.com/issues/17579>`_, `pr#11507 <http://github.com/ceph/ceph/pull/11507>`_, Nathan Cutler, Kefu Chai)
-* build/ops: deb: add python-rgw packages (`pr#11832 <http://github.com/ceph/ceph/pull/11832>`_, Sage Weil)
-* build/ops: debian: apply dh_python to python-rgw also (`pr#12260 <http://github.com/ceph/ceph/pull/12260>`_, Kefu Chai)
-* build/ops: deb: update python-rgw dependencies to librgw2 (`pr#11885 <http://github.com/ceph/ceph/pull/11885>`_, Casey Bodley)
-* build/ops: do_freebsd.sh: Build with SYSTEM Boost on FreeBSD (`pr#11942 <http://github.com/ceph/ceph/pull/11942>`_, Willem Jan Withagen)
-* build/ops: do_freebsd.sh: Do not use LTTNG on FreeBSD (`pr#11551 <http://github.com/ceph/ceph/pull/11551>`_, Willem Jan Withagen)
-* build/ops: do_freebsd.sh: Set options for debug building. (`pr#11443 <http://github.com/ceph/ceph/pull/11443>`_, Willem Jan Withagen)
-* build/ops: FreeBSD: do_freebsd.sh (`pr#12090 <http://github.com/ceph/ceph/pull/12090>`_, Willem Jan Withagen)
-* build/ops: FreeBSD:test/encoding/readable.sh": fix nproc and ls -v calls (`pr#11522 <http://github.com/ceph/ceph/pull/11522>`_, Willem Jan Withagen)
-* build/ops: FreeBSD: update require packages (`pr#11512 <http://github.com/ceph/ceph/pull/11512>`_, Willem Jan Withagen)
-* build/ops: git-archive-all.sh: use an actually unique tmp dir (`pr#12011 <http://github.com/ceph/ceph/pull/12011>`_, Dan Mick)
-* build/ops: include/enc: make clang happy (`pr#11638 <http://github.com/ceph/ceph/pull/11638>`_, Kefu Chai, Sage Weil)
-* build/ops: install-deps.sh: allow building on SLES systems (`pr#11708 <http://github.com/ceph/ceph/pull/11708>`_, Nitin A Kamble)
-* build/ops: install-deps.sh: JQ is needed in one script (`pr#12080 <http://github.com/ceph/ceph/pull/12080>`_, Willem Jan Withagen)
-* build/ops: Log: Replace namespace log with logging (`pr#11650 <http://github.com/ceph/ceph/pull/11650>`_, Willem Jan Withagen)
-* build/ops: Merging before make check because it clearly breaks the build and the build part is done (`pr#11924 <http://github.com/ceph/ceph/pull/11924>`_, Sage Weil)
-* build/ops: ok, w/upstream acks, merging--jenkins build did succeed (this is a build-only change) (`pr#12008 <http://github.com/ceph/ceph/pull/12008>`_, Matt Benjamin)
-* build/ops: qa: Add ceph-ansible installer. (`issue#16770 <http://tracker.ceph.com/issues/16770>`_, `pr#10402 <http://github.com/ceph/ceph/pull/10402>`_, Warren Usui)
-* build/ops: rocksdb: do not build with --march=native (`pr#11677 <http://github.com/ceph/ceph/pull/11677>`_, Kefu Chai)
-* build/ops: rocksdb: update to latest (`pr#12100 <http://github.com/ceph/ceph/pull/12100>`_, Kefu Chai)
-* build/ops: rpm: Remove trailing whitespace in usermod command (SUSE) (`pr#10707 <http://github.com/ceph/ceph/pull/10707>`_, Tim Serong)
-* build/ops: scripts/release-notes: allow title guesses from gh tags & description update (`pr#11399 <http://github.com/ceph/ceph/pull/11399>`_, Abhishek Lekshmanan)
-* build/ops: systemd: Fix startup of ceph-mgr on Debian 8 (`pr#12555 <http://github.com/ceph/ceph/pull/12555>`_, Mark Korenberg)
-* build/ops: tracing/objectstore.tp: add missing move_ranges\_... tp (`pr#11484 <http://github.com/ceph/ceph/pull/11484>`_, Sage Weil)
-* build/ops: upstart: fix ceph-crush-location default (`issue#6698 <http://tracker.ceph.com/issues/6698>`_, `pr#803 <http://github.com/ceph/ceph/pull/803>`_, Jason Dillaman)
-* build/ops: upstart: start ceph-all after static-network-up (`issue#17689 <http://tracker.ceph.com/issues/17689>`_, `pr#11631 <http://github.com/ceph/ceph/pull/11631>`_, Billy Olsen)
-* cephfs: add gid to asok status (`pr#11487 <http://github.com/ceph/ceph/pull/11487>`_, Patrick Donnelly)
-* cephfs: API cleanup for libcephfs interfaces (`issue#17911 <http://tracker.ceph.com/issues/17911>`_, `pr#12106 <http://github.com/ceph/ceph/pull/12106>`_, Jeff Layton)
-* cephfs: ceph-fuse: start up log on parent process before shutdown (`issue#18157 <http://tracker.ceph.com/issues/18157>`_, `pr#12347 <http://github.com/ceph/ceph/pull/12347>`_, Greg Farnum)
-* cephfs: ceph_fuse: use sizeof get the buf length (`pr#11176 <http://github.com/ceph/ceph/pull/11176>`_, LeoZhang)
-* cephfs,cleanup: ceph-fuse: start up log on parent process before shutdown (`issue#18157 <http://tracker.ceph.com/issues/18157>`_, `pr#12358 <http://github.com/ceph/ceph/pull/12358>`_, Kefu Chai)
-* cephfs: client: add pid to metadata (`issue#17276 <http://tracker.ceph.com/issues/17276>`_, `pr#11359 <http://github.com/ceph/ceph/pull/11359>`_, Patrick Donnelly)
-* cephfs: client: Client.cc: remove duplicated op type checking against CEPH_MD… (`pr#11608 <http://github.com/ceph/ceph/pull/11608>`_, Weibing Zhang)
-* cephfs: client: don't take extra target inode reference in ll_link (`pr#11440 <http://github.com/ceph/ceph/pull/11440>`_, Jeff Layton)
-* cephfs: client: fix mutex name typos (`pr#12401 <http://github.com/ceph/ceph/pull/12401>`_, Yunchuan Wen)
-* cephfs: client: get caller's uid/gid on every libcephfs operation (`issue#17591 <http://tracker.ceph.com/issues/17591>`_, `pr#11526 <http://github.com/ceph/ceph/pull/11526>`_, Yan, Zheng)
-* cephfs: client: get gid from MonClient (`pr#11486 <http://github.com/ceph/ceph/pull/11486>`_, Patrick Donnelly)
-* cephfs: client: improve failure messages/debugging (`pr#12110 <http://github.com/ceph/ceph/pull/12110>`_, Patrick Donnelly)
-* cephfs: client/mds: Clear setuid bits when writing or truncating (`issue#18131 <http://tracker.ceph.com/issues/18131>`_, `pr#12412 <http://github.com/ceph/ceph/pull/12412>`_, Jeff Layton)
-* cephfs: client: put CapSnap not ptr in cap_snaps map (`pr#12111 <http://github.com/ceph/ceph/pull/12111>`_, Patrick Donnelly)
-* cephfs: client: remove redundant initialization (`pr#12028 <http://github.com/ceph/ceph/pull/12028>`_, Patrick Donnelly)
-* cephfs: client: remove unnecessary bufferptr[] for writev (`pr#11836 <http://github.com/ceph/ceph/pull/11836>`_, Patrick Donnelly)
-* cephfs: client: remove unneeded layout on MClientCaps (`pr#11790 <http://github.com/ceph/ceph/pull/11790>`_, John Spray)
-* cephfs: client: set metadata["root"] from mount method when it's called with … (`pr#12505 <http://github.com/ceph/ceph/pull/12505>`_, Jeff Layton)
-* cephfs: client: trim_caps() do not dereference cap if it's removed (`pr#12145 <http://github.com/ceph/ceph/pull/12145>`_, Kefu Chai)
-* cephfs: client: use unique_ptr (`pr#11837 <http://github.com/ceph/ceph/pull/11837>`_, Patrick Donnelly)
-* cephfs: common/ceph_string: add ceph string constants for CEPH_SESSION_FORCE_RO (`pr#11516 <http://github.com/ceph/ceph/pull/11516>`_, Zhi Zhang)
-* cephfs: Fix #17562 (backtrace check fails when scrubbing directory created by fsstress) (`issue#17562 <http://tracker.ceph.com/issues/17562>`_, `pr#11517 <http://github.com/ceph/ceph/pull/11517>`_, Yan, Zheng)
-* cephfs: fix missing ll_get for ll_walk (`issue#18086 <http://tracker.ceph.com/issues/18086>`_, `pr#12061 <http://github.com/ceph/ceph/pull/12061>`_, Gui Hecheng)
-* cephfs: get new fsmap after marking clusters down (`issue#7271 <http://tracker.ceph.com/issues/7271>`_, `issue#17894 <http://tracker.ceph.com/issues/17894>`_, `pr#1262 <http://github.com/ceph/ceph/pull/1262>`_, Patrick Donnelly)
-* cephfs: Have ceph clear setuid/setgid bits on chown (`issue#18131 <http://tracker.ceph.com/issues/18131>`_, `pr#12331 <http://github.com/ceph/ceph/pull/12331>`_, Jeff Layton)
-* cephfs: libcephfs: add ceph_fsetattr&&ceph_lchmod&&ceph_lutime (`pr#11191 <http://github.com/ceph/ceph/pull/11191>`_, huanwen ren)
-* cephfs: libcephfs: add readlink function in cephfs.pyx (`pr#12384 <http://github.com/ceph/ceph/pull/12384>`_, huanwen ren)
-* cephfs: libcephfs and test suite fixes (`issue#18013 <http://tracker.ceph.com/issues/18013>`_, `issue#17982 <http://tracker.ceph.com/issues/17982>`_, `pr#12228 <http://github.com/ceph/ceph/pull/12228>`_, Jeff Layton)
-* cephfs: libcephfs client API overhaul and update (`pr#11647 <http://github.com/ceph/ceph/pull/11647>`_, Jeff Layton)
-* cephfs: lua: use simpler lua_next traversal structure (`pr#11958 <http://github.com/ceph/ceph/pull/11958>`_, Patrick Donnelly)
-* cephfs: mds/Beacon: move C_MDS_BeaconSender class to .cc (`pr#10940 <http://github.com/ceph/ceph/pull/10940>`_, Michal Jarzabek)
-* cephfs: mds/CDir.cc: remove unneeded use of count (`pr#11613 <http://github.com/ceph/ceph/pull/11613>`_, Michal Jarzabek)
-* cephfs: mds/CInode.h: remove unneeded use of count (`pr#11371 <http://github.com/ceph/ceph/pull/11371>`_, Michal Jarzabek)
-* cephfs: mds/DamageTable.cc: move shared ptrs (`pr#11435 <http://github.com/ceph/ceph/pull/11435>`_, Michal Jarzabek)
-* cephfs: mds/DamageTable.cc: remove unneeded use of count (`pr#11625 <http://github.com/ceph/ceph/pull/11625>`_, Michal Jarzabek)
-* cephfs: mds/DamageTable: move classes to .cc file (`pr#11450 <http://github.com/ceph/ceph/pull/11450>`_, Michal Jarzabek)
-* cephfs: mds/flock: add const to member functions (`pr#11692 <http://github.com/ceph/ceph/pull/11692>`_, Michal Jarzabek)
-* cephfs: mds/FSMap.cc: remove unneeded use of count (`pr#11402 <http://github.com/ceph/ceph/pull/11402>`_, Michal Jarzabek)
-* cephfs: mds/FSMapUser.h: remove copy ctr and assign op (`pr#11509 <http://github.com/ceph/ceph/pull/11509>`_, Michal Jarzabek)
-* cephfs: mds/InfoTable.h: add override to virtual functs (`pr#11496 <http://github.com/ceph/ceph/pull/11496>`_, Michal Jarzabek)
-* cephfs: mds/InoTable.h: add override to virtual functs (`pr#11604 <http://github.com/ceph/ceph/pull/11604>`_, Michal Jarzabek)
-* cephfs: mds/Mantle.h: include correct header files (`pr#11886 <http://github.com/ceph/ceph/pull/11886>`_, Michal Jarzabek)
-* cephfs: mds/Mantle: pass parameters by const ref (`pr#11713 <http://github.com/ceph/ceph/pull/11713>`_, Michal Jarzabek)
-* cephfs: mds/MDCache.h: remove unneeded call to clear func (`pr#11954 <http://github.com/ceph/ceph/pull/11954>`_, Michal Jarzabek)
-* cephfs: mds/MDCache.h: remove unused functions (`pr#11908 <http://github.com/ceph/ceph/pull/11908>`_, Michal Jarzabek)
-* cephfs: mds/MDLog: add const to member functions (`pr#11663 <http://github.com/ceph/ceph/pull/11663>`_, Michal Jarzabek)
-* cephfs: mds/MDSMap.h: add const to member functions (`pr#11511 <http://github.com/ceph/ceph/pull/11511>`_, Michal Jarzabek)
-* cephfs: mds/MDSRank: add const to member functions (`pr#11752 <http://github.com/ceph/ceph/pull/11752>`_, Michal Jarzabek)
-* cephfs: mds/MDSRank.h: add override to virtual function (`pr#11727 <http://github.com/ceph/ceph/pull/11727>`_, Michal Jarzabek)
-* cephfs: mds/MDSRank.h: make destructor protected (`pr#11651 <http://github.com/ceph/ceph/pull/11651>`_, Michal Jarzabek)
-* cephfs: mds/MDSTableClient.h: add const to member funct (`pr#11681 <http://github.com/ceph/ceph/pull/11681>`_, Michal Jarzabek)
-* cephfs: mds/Migrator.cc: remove unneeded use of count (`pr#11523 <http://github.com/ceph/ceph/pull/11523>`_, Michal Jarzabek)
-* cephfs: mds/Migrator.h: add const to member functions (`pr#11819 <http://github.com/ceph/ceph/pull/11819>`_, Michal Jarzabek)
-* cephfs: mds/Migrator.h: remove unneeded use of count (`pr#11833 <http://github.com/ceph/ceph/pull/11833>`_, Michal Jarzabek)
-* cephfs: mds/Mutation.h: add const to member functions (`pr#11670 <http://github.com/ceph/ceph/pull/11670>`_, Michal Jarzabek)
-* cephfs: mds/Mutation.h: simplify constructors (`pr#11455 <http://github.com/ceph/ceph/pull/11455>`_, Michal Jarzabek)
-* cephfs: MDS: reduce usage of context wrapper (`pr#11560 <http://github.com/ceph/ceph/pull/11560>`_, Yan, Zheng)
-* cephfs: mds/ScrubHeader.h: pass string by const reference (`pr#11904 <http://github.com/ceph/ceph/pull/11904>`_, Michal Jarzabek)
-* cephfs: mds/server: merge the snapshot request judgment (`pr#11150 <http://github.com/ceph/ceph/pull/11150>`_, huanwen ren)
-* cephfs: mds/SessionMap: add const to member functions (`pr#11541 <http://github.com/ceph/ceph/pull/11541>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.cc: avoid copying and add const (`pr#11297 <http://github.com/ceph/ceph/pull/11297>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.cc:put classes in unnamed namespace (`pr#11316 <http://github.com/ceph/ceph/pull/11316>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.cc: remove unneeded use of count (`pr#11338 <http://github.com/ceph/ceph/pull/11338>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.h: remove unneeded function (`pr#11565 <http://github.com/ceph/ceph/pull/11565>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.h: remove unneeded use of count (`pr#11358 <http://github.com/ceph/ceph/pull/11358>`_, Michal Jarzabek)
-* cephfs: mds/SnapRealm: remove unneeded use of count (`pr#11609 <http://github.com/ceph/ceph/pull/11609>`_, Michal Jarzabek)
-* cephfs: mds/SnapServer.h: add override to virtual functs (`pr#11380 <http://github.com/ceph/ceph/pull/11380>`_, Michal Jarzabek)
-* cephfs: mds/SnapServer.h: add override to virtual functs (`pr#11583 <http://github.com/ceph/ceph/pull/11583>`_, Michal Jarzabek)
-* cephfs: mon/MDSMonitor: fix iterating over mutated map (`issue#18166 <http://tracker.ceph.com/issues/18166>`_, `pr#12395 <http://github.com/ceph/ceph/pull/12395>`_, John Spray)
-* cephfs: multimds: fix state check in Migrator::find_stale_export_freeze() (`pr#12098 <http://github.com/ceph/ceph/pull/12098>`_, Yan, Zheng)
-* cephfs: osdc: After write try merge bh. (`issue#17270 <http://tracker.ceph.com/issues/17270>`_, `pr#11545 <http://github.com/ceph/ceph/pull/11545>`_, Jianpeng Ma)
-* cephfs: Partial organization of mds/ header sections (`pr#11959 <http://github.com/ceph/ceph/pull/11959>`_, Patrick Donnelly)
-* cephfs: Port/bootstrap (`pr#827 <http://github.com/ceph/ceph/pull/827>`_, Yan, Zheng)
-* cephfs: Revert "osdc: After write try merge bh." (`issue#17270 <http://tracker.ceph.com/issues/17270>`_, `pr#11262 <http://github.com/ceph/ceph/pull/11262>`_, John Spray)
-* cephfs: Small pile of random cephfs fixes and cleanup (`pr#11421 <http://github.com/ceph/ceph/pull/11421>`_, Jeff Layton)
-* cephfs: src/mds: fix MDSMap upgrade decoding (`issue#17837 <http://tracker.ceph.com/issues/17837>`_, `pr#12097 <http://github.com/ceph/ceph/pull/12097>`_, John Spray)
-* cephfs: systemd: add ceph-fuse service file (`pr#11542 <http://github.com/ceph/ceph/pull/11542>`_, Patrick Donnelly)
-* cephfs: test fragment size limit (`issue#16164 <http://tracker.ceph.com/issues/16164>`_, `pr#1069 <http://github.com/ceph/ceph/pull/1069>`_, Patrick Donnelly)
-* cephfs: test readahead is working (`issue#16024 <http://tracker.ceph.com/issues/16024>`_, `pr#1046 <http://github.com/ceph/ceph/pull/1046>`_, Patrick Donnelly)
-* cephfs: test: temporarily remove fork()ing flock tests (`issue#16556 <http://tracker.ceph.com/issues/16556>`_, `pr#11211 <http://github.com/ceph/ceph/pull/11211>`_, John Spray)
-* cephfs: tool/cephfs: displaying "list" in journal event mode (`pr#11236 <http://github.com/ceph/ceph/pull/11236>`_, huanwen ren)
-* cephfs: tools/cephfs: add pg_files command (`issue#17249 <http://tracker.ceph.com/issues/17249>`_, `pr#11026 <http://github.com/ceph/ceph/pull/11026>`_, John Spray)
-* cephfs: tools/cephfs: add scan_links command which fixes linkages errors (`pr#11446 <http://github.com/ceph/ceph/pull/11446>`_, Yan, Zheng)
-* cephfs: update tests to enable multimds when needed (`pr#933 <http://github.com/ceph/ceph/pull/933>`_, Greg Farnum)
-* cleanup: build: The Light Clangtastic (`pr#11921 <http://github.com/ceph/ceph/pull/11921>`_, Adam C. Emerson)
-* cleanup,common: common/blkdev: use realpath instead of readlink to resolve the recurs… (`pr#12462 <http://github.com/ceph/ceph/pull/12462>`_, Xinze Chi)
-* cleanup,common: common/throttle: simplify Throttle::_wait() (`pr#11165 <http://github.com/ceph/ceph/pull/11165>`_, xie xingguo)
-* cleanup,common: src/common: remove nonused config option (`pr#12311 <http://github.com/ceph/ceph/pull/12311>`_, Wei Jin)
-* cleanup: coverity fix: fixing few coverity issue (`pr#9624 <http://github.com/ceph/ceph/pull/9624>`_, Gaurav Kumar Garg)
-* cleanup: deprecate readdir_r() with readdir() (`pr#11805 <http://github.com/ceph/ceph/pull/11805>`_, Kefu Chai)
-* cleanup: erasure-code: fix gf-complete warning (`pr#12150 <http://github.com/ceph/ceph/pull/12150>`_, Kefu Chai)
-* cleanup: fix typos (`pr#12502 <http://github.com/ceph/ceph/pull/12502>`_, xianxiaxiao)
-* cleanup: mds/FSMap.cc: prevent unneeded copy of map entry (`pr#11798 <http://github.com/ceph/ceph/pull/11798>`_, Michal Jarzabek)
-* cleanup: mds/FSMap.h: add const and reference (`pr#11802 <http://github.com/ceph/ceph/pull/11802>`_, Michal Jarzabek)
-* cleanup: mds/FSMap: pass shared_ptr by const ref (`pr#11383 <http://github.com/ceph/ceph/pull/11383>`_, Michal Jarzabek)
-* cleanup: mds/SnapServer: add const to member function (`pr#11688 <http://github.com/ceph/ceph/pull/11688>`_, Michal Jarzabek)
-* cleanup: mon/MonCap.h: add std::move for std::string (`pr#10722 <http://github.com/ceph/ceph/pull/10722>`_, Michal Jarzabek)
-* cleanup: mon/OSDMonitor: only show interesting flags in health warning (`issue#18175 <http://tracker.ceph.com/issues/18175>`_, `pr#12365 <http://github.com/ceph/ceph/pull/12365>`_, Sage Weil)
-* cleanup: msg/async: assert(0) -> ceph_abort() (`pr#12339 <http://github.com/ceph/ceph/pull/12339>`_, Li Wang)
-* cleanup: msg/AsyncMessenger: remove unneeded include (`pr#9846 <http://github.com/ceph/ceph/pull/9846>`_, Michal Jarzabek)
-* cleanup: msg/async/rdma: fix disconnect log line (`pr#12254 <http://github.com/ceph/ceph/pull/12254>`_, Adir Lev)
-* cleanup: msg/async: remove unused member variable (`pr#12387 <http://github.com/ceph/ceph/pull/12387>`_, Kefu Chai)
-* cleanup: msg: fix format specifier for unsigned value id (`pr#11145 <http://github.com/ceph/ceph/pull/11145>`_, Weibing Zhang)
-* cleanup: msg/Pipe: move DelayedDelivery class to cc file (`pr#10447 <http://github.com/ceph/ceph/pull/10447>`_, Michal Jarzabek)
-* cleanup: msg/test: fix the guided compile-command to ceph_test_msgr (`pr#10490 <http://github.com/ceph/ceph/pull/10490>`_, Yan Jun)
-* cleanup: osd/PGBackend: build_push_op segment fault (`pr#9357 <http://github.com/ceph/ceph/pull/9357>`_, Zengran Zhang)
-* cleanup: osd/PG.h: change PGRecoveryStats struct to class (`pr#11178 <http://github.com/ceph/ceph/pull/11178>`_, Michal Jarzabek)
-* cleanup: osd/PG.h: remove unneeded forward declaration (`pr#12135 <http://github.com/ceph/ceph/pull/12135>`_, Li Wang)
-* cleanup: osd/ReplicatedPG: remove unneeded use of count (`pr#11251 <http://github.com/ceph/ceph/pull/11251>`_, Michal Jarzabek)
-* cleanup: os/filestore: clean filestore perfcounters (`pr#11524 <http://github.com/ceph/ceph/pull/11524>`_, Wei Jin)
-* cleanup: os/fs/FS.cc: condition on WITH_AIO for FreeBSD (`pr#11913 <http://github.com/ceph/ceph/pull/11913>`_, Willem Jan Withagen)
-* cleanup,rbd: cls_rbd: silence compiler warnings (`pr#11363 <http://github.com/ceph/ceph/pull/11363>`_, xiexingguo)
-* cleanup,rbd: journal: avoid logging an error when a watch is blacklisted (`issue#18243 <http://tracker.ceph.com/issues/18243>`_, `pr#12473 <http://github.com/ceph/ceph/pull/12473>`_, Jason Dillaman)
-* cleanup,rbd: journal: prevent repetitive error messages after being blacklisted (`issue#18243 <http://tracker.ceph.com/issues/18243>`_, `pr#12497 <http://github.com/ceph/ceph/pull/12497>`_, Jason Dillaman)
-* cleanup,rbd: librbd/ImageCtx: no need for virtual dtor (`pr#12220 <http://github.com/ceph/ceph/pull/12220>`_, Sage Weil)
-* cleanup,rbd: rbd-mirror: configuration overrides for hard coded timers (`pr#11840 <http://github.com/ceph/ceph/pull/11840>`_, Dongsheng Yang)
-* cleanup,rbd: rbd-mirror: set SEQUENTIAL and NOCACHE advise flags on image sync (`issue#17127 <http://tracker.ceph.com/issues/17127>`_, `pr#12280 <http://github.com/ceph/ceph/pull/12280>`_, Mykola Golub)
-* cleanup: remove unneeded forward declaration (`pr#12257 <http://github.com/ceph/ceph/pull/12257>`_, Li Wang, Yunchuan Wen)
-* cleanup: remove unused declaration (`pr#12466 <http://github.com/ceph/ceph/pull/12466>`_, Li Wang, Yunchuan Wen)
-* cleanup,rgw: rgw multisite: move lease up to RunBucketSync instead of child crs (`pr#11598 <http://github.com/ceph/ceph/pull/11598>`_, Casey Bodley)
-* cleanup,rgw: rgw/rest: don't print empty x-amz-request-id (`pr#10674 <http://github.com/ceph/ceph/pull/10674>`_, Marcus Watts)
-* cleanup,rgw: verified: f23 (`pr#12103 <http://github.com/ceph/ceph/pull/12103>`_, Radoslaw Zarzynski)
-* cleanup: src/common/perf_counters.h: fix wrong word (`pr#11690 <http://github.com/ceph/ceph/pull/11690>`_, zhang.zezhu)
-* cleanup: Wip ctypos (`pr#12495 <http://github.com/ceph/ceph/pull/12495>`_, xianxiaxiao)
-* cleanup: xio: provide dout_prefix for XioConnection (`pr#9444 <http://github.com/ceph/ceph/pull/9444>`_, Avner BenHanoch)
-* cleanup: yasm-wrapper: translate "-isystem $1" to "-i $1" (`pr#12093 <http://github.com/ceph/ceph/pull/12093>`_, Kefu Chai)
-* cmake: add -Wno-unknown-pragmas to CMAKE_CXX_FLAGS (`pr#12128 <http://github.com/ceph/ceph/pull/12128>`_, Kefu Chai)
-* cmake: check WITH_RADOSGW for fcgi and expat dependencies (`pr#11481 <http://github.com/ceph/ceph/pull/11481>`_, David Disseldorp)
-* cmake: compile C code with c99 (`pr#12369 <http://github.com/ceph/ceph/pull/12369>`_, Kefu Chai)
-* cmake: detect keyutils if WITH_LIBCEPHFS OR WITH_RBD (`pr#12359 <http://github.com/ceph/ceph/pull/12359>`_, Kefu Chai)
-* cmake: do not link erasure tests again libosd (`pr#11738 <http://github.com/ceph/ceph/pull/11738>`_, Kefu Chai)
-* cmake: find gperftools package for tcmalloc_minimal too (`pr#11403 <http://github.com/ceph/ceph/pull/11403>`_, Bassam Tabbara)
-* cmake: fix boost build on ubuntu 16.10 yakkety (`pr#12143 <http://github.com/ceph/ceph/pull/12143>`_, Bassam Tabbara)
-* cmake: Fix for cross compiling (`pr#11404 <http://github.com/ceph/ceph/pull/11404>`_, Bassam Tabbara)
-* cmake: fix git version string, cleanup (`pr#11661 <http://github.com/ceph/ceph/pull/11661>`_, Sage Weil)
-* cmake: librbd cleanup (`pr#11842 <http://github.com/ceph/ceph/pull/11842>`_, Kefu Chai)
-* cmake: link tests against static librados (`issue#17260 <http://tracker.ceph.com/issues/17260>`_, `pr#11575 <http://github.com/ceph/ceph/pull/11575>`_, Kefu Chai)
-* cmake: pass CMAKE_BUILD_TYPE down to rocksdb (`pr#11767 <http://github.com/ceph/ceph/pull/11767>`_, Kefu Chai)
-* cmake: remove include/Makefile.am (`pr#11666 <http://github.com/ceph/ceph/pull/11666>`_, Kefu Chai)
-* cmake: replace civetweb symlink w/file copy (`pr#11900 <http://github.com/ceph/ceph/pull/11900>`_, Matt Benjamin)
-* cmake: should link against ${ALLOC_LIBS} (`pr#11978 <http://github.com/ceph/ceph/pull/11978>`_, Kefu Chai)
-* cmake: src/test/CMakeLists.txt: Exclude test on HAVE_BLKID (`pr#12301 <http://github.com/ceph/ceph/pull/12301>`_, Willem Jan Withagen)
-* cmake: Support for embedding Ceph Daemons (`pr#11764 <http://github.com/ceph/ceph/pull/11764>`_, Bassam Tabbara)
-* cmake: use external project for rocksdb (`pr#11385 <http://github.com/ceph/ceph/pull/11385>`_, Bassam Tabbara)
-* common: Add throttle_get_started perf counter (`pr#12163 <http://github.com/ceph/ceph/pull/12163>`_, Bartłomiej Święcki)
-* common: assert(0) -> ceph_abort() (`pr#12031 <http://github.com/ceph/ceph/pull/12031>`_, Sage Weil)
-* common: auth: fix NULL pointer access when trying to delete CryptoAESKeyHandler instance (`pr#11614 <http://github.com/ceph/ceph/pull/11614>`_, runsisi)
-* common,bluestore: compressor: fixes and tests; disable zlib isal (it's broken) (`pr#11349 <http://github.com/ceph/ceph/pull/11349>`_, Sage Weil)
-* common,bluestore: mempool: mempool infrastructure, bluestore changes to use it (`pr#11331 <http://github.com/ceph/ceph/pull/11331>`_, Allen Samuels, Sage Weil)
-* common: buffer: add advance(unsigned) back (`issue#17809 <http://tracker.ceph.com/issues/17809>`_, `pr#11993 <http://github.com/ceph/ceph/pull/11993>`_, Kefu Chai)
-* common: buffer: add copy(unsigned, ptr) back (`issue#17809 <http://tracker.ceph.com/issues/17809>`_, `pr#12246 <http://github.com/ceph/ceph/pull/12246>`_, Kefu Chai)
-* common: client/Client.cc: fix/silence "logically dead code" CID-Error (`pr#291 <http://github.com/ceph/ceph/pull/291>`_, Yehuda Sadeh)
-* common: common/strtol.cc: Get error testing also to work on FreeBSD (`pr#12034 <http://github.com/ceph/ceph/pull/12034>`_, Willem Jan Withagen)
-* common: fix clang compilation error (`pr#12565 <http://github.com/ceph/ceph/pull/12565>`_, Mykola Golub)
-* common: FreeBSD/EventKqueue.{h,cc} Added code to restore events on (thread)fork (`pr#11430 <http://github.com/ceph/ceph/pull/11430>`_, Willem Jan Withagen)
-* common: log/LogClient: fill seq & who for syslog and graylog (`issue#16609 <http://tracker.ceph.com/issues/16609>`_, `pr#10196 <http://github.com/ceph/ceph/pull/10196>`_, Xiaoxi Chen)
-* common: make l_finisher_complete_lat more accurate (`pr#11637 <http://github.com/ceph/ceph/pull/11637>`_, Pan Liu)
-* common: msg/simple/Accepter.cc: replace shutdown() with selfpipe event in poll() (FreeBSD) (`pr#10720 <http://github.com/ceph/ceph/pull/10720>`_, Willem Jan Withagen)
-* common: osdc/Objecter: fix relock race (`issue#17942 <http://tracker.ceph.com/issues/17942>`_, `pr#12234 <http://github.com/ceph/ceph/pull/12234>`_, Sage Weil)
-* common: osdc/Objecter: handle race between calc_target and handle_osd_map (`issue#17942 <http://tracker.ceph.com/issues/17942>`_, `pr#12055 <http://github.com/ceph/ceph/pull/12055>`_, Sage Weil)
-* common: osd/osdmap: fix divide by zero error (`pr#12521 <http://github.com/ceph/ceph/pull/12521>`_, Yunchuan Wen)
-* common: release g_ceph_context before returns (`issue#17762 <http://tracker.ceph.com/issues/17762>`_, `pr#11733 <http://github.com/ceph/ceph/pull/11733>`_, Kefu Chai)
-* common: Remove the runtime dependency on lsb_release (`issue#17425 <http://tracker.ceph.com/issues/17425>`_, `pr#11365 <http://github.com/ceph/ceph/pull/11365>`_, Brad Hubbard)
-* common: test/fio: fix global CephContext life cycle (`pr#12245 <http://github.com/ceph/ceph/pull/12245>`_, Igor Fedotov)
-* core: auth: tolerate missing MGR keys during upgrade (`pr#11401 <http://github.com/ceph/ceph/pull/11401>`_, Sage Weil)
-* core,bluestore: os/bluestore: fix warning and uninit variable (`pr#12032 <http://github.com/ceph/ceph/pull/12032>`_, Sage Weil)
-* core,bluestore: os: fix offsets for move_ranges operation (`pr#11595 <http://github.com/ceph/ceph/pull/11595>`_, Sage Weil)
-* core,bluestore: os: remove move_ranges_destroy_src (`pr#11791 <http://github.com/ceph/ceph/pull/11791>`_, Sage Weil)
-* core: ceph-disk: allow using a regular file as a journal (`issue#17662 <http://tracker.ceph.com/issues/17662>`_, `pr#11619 <http://github.com/ceph/ceph/pull/11619>`_, Jayashree Candadai, Loic Dachary)
-* core: ceph-disk: resolve race conditions (`issue#17889 <http://tracker.ceph.com/issues/17889>`_, `issue#17813 <http://tracker.ceph.com/issues/17813>`_, `pr#12136 <http://github.com/ceph/ceph/pull/12136>`_, Loic Dachary)
-* core,cephfs: osdc/ObjectCacher: wake up dirty stat waiters after removing buffers (`issue#17275 <http://tracker.ceph.com/issues/17275>`_, `pr#11593 <http://github.com/ceph/ceph/pull/11593>`_, Yan, Zheng)
-* core: ceph.in: allow 'flags' to not be present in cmddescs (`issue#18297 <http://tracker.ceph.com/issues/18297>`_, `pr#12540 <http://github.com/ceph/ceph/pull/12540>`_, Dan Mick)
-* core,cleanup: ceph-disk: do not create bluestore wal/db partitions by default (`issue#18291 <http://tracker.ceph.com/issues/18291>`_, `pr#12531 <http://github.com/ceph/ceph/pull/12531>`_, Loic Dachary)
-* core,cleanup,common: common/TrackedOp: remove unused 'now' in _dump() (`pr#12007 <http://github.com/ceph/ceph/pull/12007>`_, John Spray)
-* core,cleanup: FileStore: Only verify split when it has been really done and done correctly (`pr#11731 <http://github.com/ceph/ceph/pull/11731>`_, Li Wang)
-* core,cleanup: kv: remove snapshot iterator (`pr#12049 <http://github.com/ceph/ceph/pull/12049>`_, Sage Weil)
-* core,cleanup: mon/MonClient.h: remove repeated searching of map (`pr#10601 <http://github.com/ceph/ceph/pull/10601>`_, Michal Jarzabek)
-* core,cleanup: msg: Fix typos in socket creation error message (`pr#11907 <http://github.com/ceph/ceph/pull/11907>`_, Brad Hubbard)
-* core,cleanup: osd/command tell: check pgid at the right time (`pr#11547 <http://github.com/ceph/ceph/pull/11547>`_, Javeme)
-* core,cleanup: osd/OSDMap.cc: fix duplicated assignment for new_blacklist_entries (`pr#11799 <http://github.com/ceph/ceph/pull/11799>`_, Ker Liu)
-* core,cleanup: osd/PG.cc: prevent repeated searching of map/set (`pr#11203 <http://github.com/ceph/ceph/pull/11203>`_, Michal Jarzabek)
-* core,cleanup: osd/ReplicatedPG: remove redundant check for balance/localize read (`pr#10209 <http://github.com/ceph/ceph/pull/10209>`_, runsisi)
-* core,cleanup: osd/ReplicatedPG: remove unneeded use of count (`pr#11242 <http://github.com/ceph/ceph/pull/11242>`_, Michal Jarzabek)
-* core,cleanup: os/filestore: handle EINTR returned by io_getevents() (`pr#11890 <http://github.com/ceph/ceph/pull/11890>`_, Pan Liu)
-* core,cleanup: os/ObjectStore: remove legacy tbl support (`pr#11770 <http://github.com/ceph/ceph/pull/11770>`_, Jianpeng Ma)
-* core,cleanup: scan build fixes (`pr#12148 <http://github.com/ceph/ceph/pull/12148>`_, Kefu Chai)
-* core,cleanup: src: rename ReplicatedPG to PrimaryLogPG (`pr#12487 <http://github.com/ceph/ceph/pull/12487>`_, Samuel Just)
-* core,cleanup: Wip scrub misc (`pr#11397 <http://github.com/ceph/ceph/pull/11397>`_, David Zafman)
-* core,common: buffer: put buffers in buffer_{data,meta} mempools (`pr#11839 <http://github.com/ceph/ceph/pull/11839>`_, Sage Weil)
-* core,common: msg: add entity_addr_t types; add new entity_addrvec_t type (`pr#9825 <http://github.com/ceph/ceph/pull/9825>`_, Zhao Junwang, Sage Weil)
-* core,common: msg/simple/Pipe: handle addr decode error (`issue#18072 <http://tracker.ceph.com/issues/18072>`_, `pr#12221 <http://github.com/ceph/ceph/pull/12221>`_, Sage Weil)
-* core: compress: Fix compilation failure from missing header (`pr#12108 <http://github.com/ceph/ceph/pull/12108>`_, Adam C. Emerson)
-* core: denc: don't pass null instances into encoder fns (`issue#17636 <http://tracker.ceph.com/issues/17636>`_, `pr#11577 <http://github.com/ceph/ceph/pull/11577>`_, John Spray)
-* core: erasure-code: synchronize with upstream gf-complete (`issue#18092 <http://tracker.ceph.com/issues/18092>`_, `pr#12382 <http://github.com/ceph/ceph/pull/12382>`_, Loic Dachary)
-* core: FreeBSD/OSD.cc: add client_messenger to the avoid_ports set. (`pr#12463 <http://github.com/ceph/ceph/pull/12463>`_, Willem Jan Withagen)
-* core: include/object: pass "snapid_t&" to bound_encode() (`pr#11552 <http://github.com/ceph/ceph/pull/11552>`_, Kefu Chai)
-* core: kv/RocksDBStore: Don't update rocksdb perf_context if rocksdb_perf di… (`pr#12064 <http://github.com/ceph/ceph/pull/12064>`_, Jianpeng Ma)
-* core: librados-dev: install inline_memory.h (`issue#17654 <http://tracker.ceph.com/issues/17654>`_, `pr#11730 <http://github.com/ceph/ceph/pull/11730>`_, Josh Durgin)
-* core: messages/MForward: reencode forwarded message if target has differing features (`pr#11610 <http://github.com/ceph/ceph/pull/11610>`_, Sage Weil)
-* core,mgr: messages: fix out of range assertion (`pr#11345 <http://github.com/ceph/ceph/pull/11345>`_, John Spray)
-* core: mon,ceph-disk: add lockbox permissions to bootstrap-osd (`issue#17849 <http://tracker.ceph.com/issues/17849>`_, `pr#11996 <http://github.com/ceph/ceph/pull/11996>`_, Loic Dachary)
-* core: mon: make it more clearly to debug for paxos state (`pr#12438 <http://github.com/ceph/ceph/pull/12438>`_, song baisen)
-* core: mon/OSDMonitor: encode full osdmaps with features all OSDs can understand (`pr#11284 <http://github.com/ceph/ceph/pull/11284>`_, Sage Weil)
-* core: mon/OSDMonitor: encode OSDMap::Incremental with same features as OSDMap (`pr#11596 <http://github.com/ceph/ceph/pull/11596>`_, Sage Weil)
-* core: mon/OSDMonitor: newly created osd should not be wrongly marked in (`pr#11795 <http://github.com/ceph/ceph/pull/11795>`_, runsisi)
-* core: mon/OSDMonitor: remove duplicate jewel/kraken flag warning (`pr#11775 <http://github.com/ceph/ceph/pull/11775>`_, Josh Durgin)
-* core: mon/PGMap: PGs can be stuck more than one thing (`issue#17515 <http://tracker.ceph.com/issues/17515>`_, `pr#11339 <http://github.com/ceph/ceph/pull/11339>`_, Sage Weil)
-* core: mon: print the num_pools and num_objects in 'ceph -s -f json/json-p… (`issue#17703 <http://tracker.ceph.com/issues/17703>`_, `pr#11654 <http://github.com/ceph/ceph/pull/11654>`_, huangjun)
-* core: msg/async/AsyncConnection: dispatch write handler on keepalive2 (`issue#17664 <http://tracker.ceph.com/issues/17664>`_, `pr#11601 <http://github.com/ceph/ceph/pull/11601>`_, Ilya Dryomov)
-* core: msg/async: DPDKStack as AsyncMessenger backend (`pr#10748 <http://github.com/ceph/ceph/pull/10748>`_, Haomai Wang)
-* core: msg/async/rdma: change log level: 0 -> 1 (`pr#12334 <http://github.com/ceph/ceph/pull/12334>`_, Avner BenHanoch)
-* core: msg/async/rdma: don't use more buffers than what device capabilities … (`pr#12263 <http://github.com/ceph/ceph/pull/12263>`_, Avner BenHanoch)
-* core: msg/async/rdma: ensure CephContext existed (`pr#12068 <http://github.com/ceph/ceph/pull/12068>`_, Haomai Wang)
-* core: msg/async/rdma: event polling thread can block on event (`pr#12270 <http://github.com/ceph/ceph/pull/12270>`_, Haomai Wang)
-* core: msg/async/rdma: fixup memory free (`pr#12236 <http://github.com/ceph/ceph/pull/12236>`_, gongchuang)
-* core: msg/async/rdma: set correct value to memory manager (`pr#12299 <http://github.com/ceph/ceph/pull/12299>`_, Adir Lev)
-* core: msg/async: set nonce before starting the workers (`pr#12390 <http://github.com/ceph/ceph/pull/12390>`_, Kefu Chai)
-* core: msg: make loopback Connection feature accurate all the time (`pr#11183 <http://github.com/ceph/ceph/pull/11183>`_, Sage Weil)
-* core: msg: seed random engine used for ms_type="random" (`pr#11880 <http://github.com/ceph/ceph/pull/11880>`_, Casey Bodley)
-* core: msg/simple/Pipe: avoid returning 0 on poll timeout (`issue#18184 <http://tracker.ceph.com/issues/18184>`_, `pr#12375 <http://github.com/ceph/ceph/pull/12375>`_, Sage Weil)
-* core: msg/simple/Pipe::stop_and_wait: unlock pipe_lock for stop_fast_dispatching() (`issue#18042 <http://tracker.ceph.com/issues/18042>`_, `pr#12307 <http://github.com/ceph/ceph/pull/12307>`_, Samuel Just)
-* core: msg/simple: save the errno in case being changed by subsequent codes (`pr#10297 <http://github.com/ceph/ceph/pull/10297>`_, Yan Jun)
-* core: osd/ECTransaction: only write out the hinfo if not delete (`issue#17983 <http://tracker.ceph.com/issues/17983>`_, `pr#12141 <http://github.com/ceph/ceph/pull/12141>`_, Samuel Just)
-* core: OSDMonitor: only reject MOSDBoot based on up_from if inst matches (`issue#17899 <http://tracker.ceph.com/issues/17899>`_, `pr#12003 <http://github.com/ceph/ceph/pull/12003>`_, Samuel Just)
-* core: osd,mon: require sortbitwise flag to upgrade beyond jewel (`pr#11772 <http://github.com/ceph/ceph/pull/11772>`_, Sage Weil)
-* core: osd/osd_types: fix the osd_stat_t::decode() (`pr#12235 <http://github.com/ceph/ceph/pull/12235>`_, Kefu Chai)
-* core: osd/PG: add "down" pg state (distinct from down+peering) (`pr#12289 <http://github.com/ceph/ceph/pull/12289>`_, Sage Weil)
-* core: osd/PGLog::proc_replica_log,merge_log: fix bound for last_update (`issue#18127 <http://tracker.ceph.com/issues/18127>`_, `pr#12340 <http://github.com/ceph/ceph/pull/12340>`_, Samuel Just)
-* core: osd/ReplicatedPG: do_update_log_missing: take the pg lock in the callback (`issue#17789 <http://tracker.ceph.com/issues/17789>`_, `pr#11754 <http://github.com/ceph/ceph/pull/11754>`_, Samuel Just)
-* core: osd/ReplicatedPG::record_write_error: don't leak orig_reply on cancel (`issue#18180 <http://tracker.ceph.com/issues/18180>`_, `pr#12450 <http://github.com/ceph/ceph/pull/12450>`_, Samuel Just)
-* core: os/filestore: avoid to get the wrong hardlink number. (`pr#11841 <http://github.com/ceph/ceph/pull/11841>`_, huangjun)
-* core: os/filestore/chain_xattr.h:uses ENODATA, so include compat.h (`pr#12279 <http://github.com/ceph/ceph/pull/12279>`_, Willem Jan Withagen)
-* core: os/filestore: Fix erroneous WARNING: max attr too small (`issue#17420 <http://tracker.ceph.com/issues/17420>`_, `pr#11246 <http://github.com/ceph/ceph/pull/11246>`_, Brad Hubbard)
-* core: os/FileStore: fix fiemap issue in xfs when #extents > 1364 (`pr#11554 <http://github.com/ceph/ceph/pull/11554>`_, Ning Yao)
-* core: os/filestore: fix journal logger (`pr#12099 <http://github.com/ceph/ceph/pull/12099>`_, Wei Jin)
-* core: os/filestore: fix potential result code overwriting (`pr#11491 <http://github.com/ceph/ceph/pull/11491>`_, xie xingguo)
-* core: os/filestore/HashIndex: fix list_by_hash_* termination on reaching end (`issue#17859 <http://tracker.ceph.com/issues/17859>`_, `pr#11898 <http://github.com/ceph/ceph/pull/11898>`_, Sage Weil)
-* core: os/ObjectStore: properly clear object map when replaying OP_REMOVE (`issue#17177 <http://tracker.ceph.com/issues/17177>`_, `pr#11388 <http://github.com/ceph/ceph/pull/11388>`_, Yan, Zheng)
-* core,performance: msg/async: ibverbs/rdma support (`pr#11531 <http://github.com/ceph/ceph/pull/11531>`_, Haomai Wang, Zhi Wang)
-* core,performance: osd/OSDMap.cc: remove unneeded use of count (`pr#11221 <http://github.com/ceph/ceph/pull/11221>`_, Michal Jarzabek)
-* core,performance: osd/PrimaryLogPG: don't truncate if we don't have to for WRITEFULL (`pr#12534 <http://github.com/ceph/ceph/pull/12534>`_, Samuel Just)
-* core,performance: os/fs/FS: optimize aio::pwritev which make caller provide length. (`pr#9062 <http://github.com/ceph/ceph/pull/9062>`_, Jianpeng Ma)
-* core,pybind,common: python-rados: implement new aio_execute (`pr#12140 <http://github.com/ceph/ceph/pull/12140>`_, Iain Buclaw)
-* core,rbd,bluestore,rgw,performance,cephfs: fast denc encoding (`pr#11027 <http://github.com/ceph/ceph/pull/11027>`_, Sage Weil)
-* core: remove spurious executable permissions on source code files (`pr#1061 <http://github.com/ceph/ceph/pull/1061>`_, Samuel Just)
-* core: ReplicatedPG::failed_push: release read lock on failure (`issue#17857 <http://tracker.ceph.com/issues/17857>`_, `pr#11914 <http://github.com/ceph/ceph/pull/11914>`_, Kefu Chai)
-* core: rocksdb: update to latest, and make it the default for the mons (`pr#11354 <http://github.com/ceph/ceph/pull/11354>`_, Sage Weil)
-* core: set dumpable flag after setuid (`issue#17650 <http://tracker.ceph.com/issues/17650>`_, `pr#11582 <http://github.com/ceph/ceph/pull/11582>`_, Patrick Donnelly)
-* core: systemd/ceph-disk: reduce ceph-disk flock contention (`issue#18049 <http://tracker.ceph.com/issues/18049>`_, `issue#13160 <http://tracker.ceph.com/issues/13160>`_, `pr#12200 <http://github.com/ceph/ceph/pull/12200>`_, David Disseldorp)
-* core: tchaikov (`issue#17713 <http://tracker.ceph.com/issues/17713>`_, `pr#11382 <http://github.com/ceph/ceph/pull/11382>`_, Haomai Wang)
-* core,tests: ceph_test_rados_api_tier: dump hitset that we fail to decode (`issue#17945 <http://tracker.ceph.com/issues/17945>`_, `pr#12057 <http://github.com/ceph/ceph/pull/12057>`_, Sage Weil)
-* core,tests: common osd: Improve scrub analysis, list-inconsistent-obj output and osd-scrub-repair test (`issue#18114 <http://tracker.ceph.com/issues/18114>`_, `pr#9613 <http://github.com/ceph/ceph/pull/9613>`_, Kefu Chai, David Zafman)
-* core,tests: test,cmake: turn unit.h into unit.cc to speed up compilation (`pr#12194 <http://github.com/ceph/ceph/pull/12194>`_, Kefu Chai)
-* core,tests: test/rados/list.cc: Memory leak in ceph_test_rados_api_list (`issue#18250 <http://tracker.ceph.com/issues/18250>`_, `pr#12479 <http://github.com/ceph/ceph/pull/12479>`_, Brad Hubbard)
-* core,tests: workunits/ceph-helpers.sh: Fixes for FreeBSD (`pr#12085 <http://github.com/ceph/ceph/pull/12085>`_, Willem Jan Withagen)
-* core,tools: Added append functionality to rados tool. (`pr#11036 <http://github.com/ceph/ceph/pull/11036>`_, Tomy Cheru)
-* core,tools: Tested-by: Huawen Ren <ren.huanwen@zte.com.cn> (`issue#17400 <http://tracker.ceph.com/issues/17400>`_, `pr#11276 <http://github.com/ceph/ceph/pull/11276>`_, Kefu Chai)
-* core,tools: vstart: decrease pool size if <3 OSDs (`pr#11528 <http://github.com/ceph/ceph/pull/11528>`_, John Spray)
-* crush: make counting of choose_tries consistent (`issue#17229 <http://tracker.ceph.com/issues/17229>`_, `pr#10993 <http://github.com/ceph/ceph/pull/10993>`_, Vicente Cheng)
-* crush: remove the crush_lock (`pr#11830 <http://github.com/ceph/ceph/pull/11830>`_, Adam C. Emerson)
-* crush: Silence coverity warnings for test/crush/crush.cc (`pr#12436 <http://github.com/ceph/ceph/pull/12436>`_, Brad Hubbard)
-* doc: Add doc about osd scrub {during recovery|chunk {min|max}| sleep} (`pr#12176 <http://github.com/ceph/ceph/pull/12176>`_, Paweł Sadowski)
-* doc: Add docs about looking up Monitors through DNS (`issue#14527 <http://tracker.ceph.com/issues/14527>`_, `pr#10852 <http://github.com/ceph/ceph/pull/10852>`_, Wido den Hollander)
-* doc: add docs for raw compression (`pr#12244 <http://github.com/ceph/ceph/pull/12244>`_, Casey Bodley)
-* doc: Add documentation about mon_allow_pool_delete before pool remove (`pr#11943 <http://github.com/ceph/ceph/pull/11943>`_, Wido den Hollander)
-* doc: add infernalis EOL date (`pr#11925 <http://github.com/ceph/ceph/pull/11925>`_, Ken Dreyer)
-* doc: adding changelog for v10.2.4 (`pr#12346 <http://github.com/ceph/ceph/pull/12346>`_, Abhishek Lekshmanan)
-* doc: Add MON docs about pool flags and pool removal config settings (`pr#10853 <http://github.com/ceph/ceph/pull/10853>`_, Wido den Hollander)
-* doc: add python-rgw doc (`pr#11859 <http://github.com/ceph/ceph/pull/11859>`_, Kefu Chai)
-* doc: change the osd_max_backfills default to 1 (`issue#17701 <http://tracker.ceph.com/issues/17701>`_, `pr#11658 <http://github.com/ceph/ceph/pull/11658>`_, huangjun)
-* doc: clarify file deletion from OSD restricted pool behaviour (`issue#17937 <http://tracker.ceph.com/issues/17937>`_, `pr#12054 <http://github.com/ceph/ceph/pull/12054>`_, David Disseldorp)
-* doc: clarify mds deactivate purpose (`pr#11957 <http://github.com/ceph/ceph/pull/11957>`_, Patrick Donnelly)
-* doc: common/Throttle: fix typo for BackoffThrottle (`pr#12129 <http://github.com/ceph/ceph/pull/12129>`_, Wei Jin)
-* doc: correcting the object name (`pr#12354 <http://github.com/ceph/ceph/pull/12354>`_, Uday Mullangi)
-* doc: Correcting the sample python tempurl generation script. (`issue#15258 <http://tracker.ceph.com/issues/15258>`_, `pr#8712 <http://github.com/ceph/ceph/pull/8712>`_, Diwakar Goel)
-* doc: Coverity and SCA fixes (`pr#7784 <http://github.com/ceph/ceph/pull/7784>`_, Danny Al-Gaaf)
-* doc: doc/dev/osd_internals: add pgpool.rst (`pr#12500 <http://github.com/ceph/ceph/pull/12500>`_, Brad Hubbard)
-* doc: doc/dev/perf: a few notes on perf (`pr#12168 <http://github.com/ceph/ceph/pull/12168>`_, Sage Weil)
-* doc: doc/dev/perf: fix dittography (`pr#12317 <http://github.com/ceph/ceph/pull/12317>`_, xie xingguo)
-* doc: doc/man: avoid file builtin to solve build error (`pr#11984 <http://github.com/ceph/ceph/pull/11984>`_, Patrick Donnelly)
-* doc: doc/rados/configuration/ms-ref.rst: document a few async msgr options (`pr#12126 <http://github.com/ceph/ceph/pull/12126>`_, Piotr Dałek)
-* doc: doc/rados/configuration/osd-config-ref.rst: document the fast mark down (`pr#12124 <http://github.com/ceph/ceph/pull/12124>`_, Piotr Dałek)
-* doc: doc/release-notes: kraken release notes (draft) (`pr#12338 <http://github.com/ceph/ceph/pull/12338>`_, Sage Weil)
-* doc: doc/releases: add links to kraken and v10.2.4 (`pr#12409 <http://github.com/ceph/ceph/pull/12409>`_, Kefu Chai)
-* doc: doc/start/hardware-recommentdations: cosmetic (`pr#10585 <http://github.com/ceph/ceph/pull/10585>`_, Zhao Junwang)
-* doc: Documentation syntax cleanup (`pr#11784 <http://github.com/ceph/ceph/pull/11784>`_, John Spray)
-* doc: document osd tell bench (`issue#5431 <http://tracker.ceph.com/issues/5431>`_, `pr#16 <http://github.com/ceph/ceph/pull/16>`_, Sage Weil)
-* doc: drop --journal-check from ceph-mds man page (`issue#17747 <http://tracker.ceph.com/issues/17747>`_, `pr#11912 <http://github.com/ceph/ceph/pull/11912>`_, Nathan Cutler)
-* doc: explain rgw_fcgi_socket_backlog in rgw/config-ref.rst (`pr#12548 <http://github.com/ceph/ceph/pull/12548>`_, liuchang0812)
-* doc: final additions to 11.1.0-rc release notes (`pr#12448 <http://github.com/ceph/ceph/pull/12448>`_, Abhishek Lekshmanan)
-* doc: Fix broken link for caps (`issue#17587 <http://tracker.ceph.com/issues/17587>`_, `pr#11546 <http://github.com/ceph/ceph/pull/11546>`_, Uday Mullangi)
-* doc: fix broken links (`issue#17587 <http://tracker.ceph.com/issues/17587>`_, `pr#11518 <http://github.com/ceph/ceph/pull/11518>`_, Uday Mullangi)
-* doc: fix dead link "Hardware Recommendations" (`pr#11379 <http://github.com/ceph/ceph/pull/11379>`_, Leo Zhang)
-* doc: fix dead link of "os-recommendations" in troubleshooting-osd (`pr#11454 <http://github.com/ceph/ceph/pull/11454>`_, Leo Zhang)
-* doc: Fixed mapping error in legacy mds command (`pr#11668 <http://github.com/ceph/ceph/pull/11668>`_, Malte Fiala)
-* doc: Fix for worker arguments to cephfs-data-scan tool (`pr#12360 <http://github.com/ceph/ceph/pull/12360>`_, Wido den Hollander)
-* doc: fix grammar/spelling in RGW sections (`pr#12329 <http://github.com/ceph/ceph/pull/12329>`_, Ken Dreyer)
-* doc: Fixing the broken hyperlinks by pointing to correct documentation. (`pr#11617 <http://github.com/ceph/ceph/pull/11617>`_, Uday Mullangi)
-* doc: fix librados example programs (`pr#11302 <http://github.com/ceph/ceph/pull/11302>`_, Alexey Sheplyakov)
-* doc: fix mgr literal block rST syntax (`pr#11652 <http://github.com/ceph/ceph/pull/11652>`_, Ken Dreyer)
-* doc: fix start development cluster operation in index.rst (`pr#11233 <http://github.com/ceph/ceph/pull/11233>`_, Leo Zhang)
-* doc: fix the script for rebuild monitor db (`pr#11962 <http://github.com/ceph/ceph/pull/11962>`_, Kefu Chai)
-* doc: fix typos (`pr#8751 <http://github.com/ceph/ceph/pull/8751>`_, Li Peng)
-* doc: Flag deprecated mds commands and omit deprecated mon commands in help output (`pr#11434 <http://github.com/ceph/ceph/pull/11434>`_, Patrick Donnelly)
-* doc: mailmap: change personal info (`pr#12310 <http://github.com/ceph/ceph/pull/12310>`_, Wei Jin)
-* doc: mailmap updates sept (`pr#10955 <http://github.com/ceph/ceph/pull/10955>`_, Yann Dupont)
-* doc: mds: fixup "mds bal mode" Description (`pr#12127 <http://github.com/ceph/ceph/pull/12127>`_, huanwen ren)
-* doc: mention corresponding libvirt section in nova.conf (`pr#12584 <http://github.com/ceph/ceph/pull/12584>`_, Marc Koderer)
-* doc: Modify documentation for mon_osd_down_out_interval (`pr#12408 <http://github.com/ceph/ceph/pull/12408>`_, Brad Hubbard)
-* doc: network-protocol typos (`pr#9837 <http://github.com/ceph/ceph/pull/9837>`_, Zhao Junwang)
-* doc: openstack glance mitaka uses show_multiple_locations (`pr#12020 <http://github.com/ceph/ceph/pull/12020>`_, Sébastien Han)
-* doc: README.FreeBSD: update to match the bimonthly FreeBSD status report (`pr#11442 <http://github.com/ceph/ceph/pull/11442>`_, Willem Jan Withagen)
-* doc: README: hint at where to look to diagnose test failures (`pr#11903 <http://github.com/ceph/ceph/pull/11903>`_, Dan Mick)
-* doc: reformat SubmittingPatches with more rst syntax (`pr#11570 <http://github.com/ceph/ceph/pull/11570>`_, Kefu Chai)
-* doc: release notes for 10.2.4 (`pr#12053 <http://github.com/ceph/ceph/pull/12053>`_, Abhishek Lekshmanan)
-* doc: release notes for 10.2.5 (`issue#18207 <http://tracker.ceph.com/issues/18207>`_, `pr#12410 <http://github.com/ceph/ceph/pull/12410>`_, Loic Dachary)
-* doc: release notes for 11.0.2 (`pr#11369 <http://github.com/ceph/ceph/pull/11369>`_, Abhishek Lekshmanan)
-* doc: Remove duplicate command for Ubuntu (`pr#12186 <http://github.com/ceph/ceph/pull/12186>`_, chrone)
-* doc: reviewed-by: John Wilkins <jowilkin@redhat.com> (`issue#17526 <http://tracker.ceph.com/issues/17526>`_, `pr#11352 <http://github.com/ceph/ceph/pull/11352>`_, Loic Dachary)
-* doc: reviewed-by: John Wilkins <jowilkin@redhat.com> (`issue#17665 <http://tracker.ceph.com/issues/17665>`_, `pr#11602 <http://github.com/ceph/ceph/pull/11602>`_, Jason Dillaman)
-* doc: rgw: fix a typo in S3 java api example (`pr#11762 <http://github.com/ceph/ceph/pull/11762>`_, Weibing Zhang)
-* doc: rm "type=rpm-md" from yum repositories (`pr#10248 <http://github.com/ceph/ceph/pull/10248>`_, Ken Dreyer)
-* doc: Small styling fix to mirror documentation (`pr#9714 <http://github.com/ceph/ceph/pull/9714>`_, Wido den Hollander)
-* doc: src/doc: fix class names in exports.txt (`pr#12000 <http://github.com/ceph/ceph/pull/12000>`_, John Spray)
-* doc: standardize EPEL instructions (`pr#11653 <http://github.com/ceph/ceph/pull/11653>`_, Ken Dreyer)
-* doc: update cinder key permissions for mitaka (`pr#12211 <http://github.com/ceph/ceph/pull/12211>`_, Sébastien Han)
-* doc: Update crush-map.rst, fix a typo mistake (`pr#11785 <http://github.com/ceph/ceph/pull/11785>`_, whu_liuchang)
-* doc: Update filestore xattr config documentation. (`pr#11826 <http://github.com/ceph/ceph/pull/11826>`_, Bartłomiej Święcki)
-* doc: Update install-ceph-gateway.rst (`pr#11432 <http://github.com/ceph/ceph/pull/11432>`_, Hans van den Bogert)
-* doc: Update keystone doc about v3 options (`pr#11392 <http://github.com/ceph/ceph/pull/11392>`_, Proskurin Kirill)
-* doc: Update layout.rst, move commands to CODE block (`pr#11987 <http://github.com/ceph/ceph/pull/11987>`_, liuchang0812)
-* doc: we can now run multiple MDS, so qualify warning (`issue#18040 <http://tracker.ceph.com/issues/18040>`_, `pr#12184 <http://github.com/ceph/ceph/pull/12184>`_, Nathan Cutler)
-* fs: add snapshot tests to mds thrashing (`pr#1073 <http://github.com/ceph/ceph/pull/1073>`_, Yan, Zheng)
-* fs: enable ceph-fuse permission checking for all pjd suites (`pr#1187 <http://github.com/ceph/ceph/pull/1187>`_, Greg Farnum)
-* fs: fix two frag_enable fragments (`issue#6143 <http://tracker.ceph.com/issues/6143>`_, `pr#656 <http://github.com/ceph/ceph/pull/656>`_, Sage Weil)
-* fs: fix up dd testing again (`issue#10861 <http://tracker.ceph.com/issues/10861>`_, `pr#373 <http://github.com/ceph/ceph/pull/373>`_, Greg Farnum)
-* fs: fuse_default_permissions = 0 for kernel build test (`pr#1109 <http://github.com/ceph/ceph/pull/1109>`_, Patrick Donnelly)
-* fs: Mantle: A Programmable Metadata Load Balancer (`pr#10887 <http://github.com/ceph/ceph/pull/10887>`_, Michael Sevilla)
-* fs: unify common parts of sub-suites (`issue#1737 <http://tracker.ceph.com/issues/1737>`_, `pr#1282 <http://github.com/ceph/ceph/pull/1282>`_, Patrick Donnelly)
-* librados: Add rados_aio_exec to the C API (`pr#11709 <http://github.com/ceph/ceph/pull/11709>`_, Iain Buclaw)
-* librados: add timeout to watch/notify (`pr#11378 <http://github.com/ceph/ceph/pull/11378>`_, Ryne Li)
-* librados: do not request osd ack if no completed completion is set (`pr#11204 <http://github.com/ceph/ceph/pull/11204>`_, Sage Weil)
-* librados: For C-API, expose LIBRADOS_OPERATION_FULL_FORCE flag (`pr#9172 <http://github.com/ceph/ceph/pull/9172>`_, Jianpeng Ma)
-* librados: improvements async IO in librados and libradosstriper (`pr#10049 <http://github.com/ceph/ceph/pull/10049>`_, Sebastien Ponce)
-* librados: Memory leaks in object_list_begin and object_list_end (`issue#18252 <http://tracker.ceph.com/issues/18252>`_, `pr#12482 <http://github.com/ceph/ceph/pull/12482>`_, Brad Hubbard)
-* librados: postpone cct deletion (`pr#11659 <http://github.com/ceph/ceph/pull/11659>`_, Kefu Chai)
-* librados: remove new setxattr overload to avoid breaking the C++ ABI (`issue#18058 <http://tracker.ceph.com/issues/18058>`_, `pr#12206 <http://github.com/ceph/ceph/pull/12206>`_, Josh Durgin)
-* librados: remove unused bufferlist from rados_write_op_rmxattr (`pr#12030 <http://github.com/ceph/ceph/pull/12030>`_, Piotr Dałek)
-* librbd: add support for snapshot namespaces (`pr#11160 <http://github.com/ceph/ceph/pull/11160>`_, Victor Denisov)
-* librbd: API changes to support separate data pool (`pr#11353 <http://github.com/ceph/ceph/pull/11353>`_, Jason Dillaman)
-* librbd: batch object map updates during trim (`issue#17356 <http://tracker.ceph.com/issues/17356>`_, `pr#11510 <http://github.com/ceph/ceph/pull/11510>`_, Venky Shankar)
-* librbd: bug fixes for optional data pool support (`pr#11960 <http://github.com/ceph/ceph/pull/11960>`_, Venky Shankar)
-* librbd: cannot access non-primary image when mirroring force disabled (`issue#16740 <http://tracker.ceph.com/issues/16740>`_, `issue#17588 <http://tracker.ceph.com/issues/17588>`_, `pr#11568 <http://github.com/ceph/ceph/pull/11568>`_, Jason Dillaman)
-* librbd: cls_rbd updates for separate data pool (`issue#17422 <http://tracker.ceph.com/issues/17422>`_, `pr#11327 <http://github.com/ceph/ceph/pull/11327>`_, Jason Dillaman)
-* librbd: default features should be negotiated with the OSD (`issue#17010 <http://tracker.ceph.com/issues/17010>`_, `pr#11808 <http://github.com/ceph/ceph/pull/11808>`_, Mykola Golub)
-* librbd: diffs to clone's first snapshot should include parent diffs (`issue#18068 <http://tracker.ceph.com/issues/18068>`_, `pr#12218 <http://github.com/ceph/ceph/pull/12218>`_, Jason Dillaman)
-* librbd: do not create empty object map object on image creation (`issue#17752 <http://tracker.ceph.com/issues/17752>`_, `pr#11704 <http://github.com/ceph/ceph/pull/11704>`_, Jason Dillaman)
-* librbd: enabling/disabling rbd feature should report missing dependency (`issue#16985 <http://tracker.ceph.com/issues/16985>`_, `pr#12238 <http://github.com/ceph/ceph/pull/12238>`_, Gaurav Kumar Garg)
-* librbd: ensure consistency groups will gracefully fail on older OSDs (`pr#11623 <http://github.com/ceph/ceph/pull/11623>`_, Jason Dillaman)
-* librbd: exclusive lock incorrectly initialized when switching to head revision (`issue#17618 <http://tracker.ceph.com/issues/17618>`_, `pr#11559 <http://github.com/ceph/ceph/pull/11559>`_, Jason Dillaman)
-* librbd: fix rollback if failed to disable mirroring for image (`pr#11260 <http://github.com/ceph/ceph/pull/11260>`_, runsisi)
-* librbd: ignore error when object map is already locked by current client (`issue#16179 <http://tracker.ceph.com/issues/16179>`_, `pr#12484 <http://github.com/ceph/ceph/pull/12484>`_, runsisi)
-* librbd: ignore notify errors on missing image header (`issue#17549 <http://tracker.ceph.com/issues/17549>`_, `pr#11395 <http://github.com/ceph/ceph/pull/11395>`_, Jason Dillaman)
-* librbd: keep rbd_default_features setting as bitmask (`issue#18247 <http://tracker.ceph.com/issues/18247>`_, `pr#12486 <http://github.com/ceph/ceph/pull/12486>`_, Jason Dillaman)
-* librbd: mark request as finished after failed refresh (`issue#17973 <http://tracker.ceph.com/issues/17973>`_, `pr#12160 <http://github.com/ceph/ceph/pull/12160>`_, Venky Shankar)
-* librbd: minor cleanup (`pr#12078 <http://github.com/ceph/ceph/pull/12078>`_, Dongsheng Yang)
-* librbd: new API method to force break a peer's exclusive lock (`issue#18429 <http://tracker.ceph.com/issues/18429>`_, `issue#16988 <http://tracker.ceph.com/issues/16988>`_, `issue#18327 <http://tracker.ceph.com/issues/18327>`_, `pr#12889 <http://github.com/ceph/ceph/pull/12889>`_, Jason Dillaman)
-* librbd: parse rbd_default_features config option as a string (`pr#11175 <http://github.com/ceph/ceph/pull/11175>`_, Alyona Kiseleva, Alexey Sheplyakov)
-* librbd: possible assert failure creating image when using data pool (`pr#11641 <http://github.com/ceph/ceph/pull/11641>`_, Venky Shankar)
-* librbd: proper check for get_data_pool compatibility (`issue#17791 <http://tracker.ceph.com/issues/17791>`_, `pr#11755 <http://github.com/ceph/ceph/pull/11755>`_, Mykola Golub)
-* librbd: properly order concurrent updates to the object map (`issue#16176 <http://tracker.ceph.com/issues/16176>`_, `pr#12420 <http://github.com/ceph/ceph/pull/12420>`_, Jason Dillaman)
-* librbd: release lock after demote (`issue#17880 <http://tracker.ceph.com/issues/17880>`_, `pr#11940 <http://github.com/ceph/ceph/pull/11940>`_, Mykola Golub)
-* librbd: remove consistency group rbd cli and API support (`issue#18231 <http://tracker.ceph.com/issues/18231>`_, `pr#12475 <http://github.com/ceph/ceph/pull/12475>`_, Jason Dillaman)
-* librbd: remove image header lock assertions (`issue#18244 <http://tracker.ceph.com/issues/18244>`_, `pr#12472 <http://github.com/ceph/ceph/pull/12472>`_, Jason Dillaman)
-* librbd: remove unused local variable (`pr#12388 <http://github.com/ceph/ceph/pull/12388>`_, Yunchuan Wen)
-* librbd: silence the unused variable warning (`pr#11678 <http://github.com/ceph/ceph/pull/11678>`_, Kefu Chai)
-* librbd: snap_get_limit compatibility check (`pr#11766 <http://github.com/ceph/ceph/pull/11766>`_, Mykola Golub)
-* librbd: update internals to use optional separate data pool (`pr#11356 <http://github.com/ceph/ceph/pull/11356>`_, Jason Dillaman)
-* librbd: use proper snapshot when computing diff parent overlap (`issue#18200 <http://tracker.ceph.com/issues/18200>`_, `pr#12396 <http://github.com/ceph/ceph/pull/12396>`_, Xiaoxi Chen)
-* log: optimize header file dependency (`pr#9768 <http://github.com/ceph/ceph/pull/9768>`_, Xiaowei Chen)
-* mds: add debug assertion for issue #17636 (`pr#11576 <http://github.com/ceph/ceph/pull/11576>`_, Yan, Zheng)
-* mds: add tests for mantle (programmable balancer) (`pr#1145 <http://github.com/ceph/ceph/pull/1145>`_, Michael Sevilla)
-* mds: check if down mds is known (`issue#17670 <http://tracker.ceph.com/issues/17670>`_, `pr#11611 <http://github.com/ceph/ceph/pull/11611>`_, Patrick Donnelly)
-* mds: don't access mdsmap from log submit thread (`issue#18047 <http://tracker.ceph.com/issues/18047>`_, `pr#12208 <http://github.com/ceph/ceph/pull/12208>`_, Yan, Zheng)
-* mds: don't maintain bloom filters in standby replay (`issue#16924 <http://tracker.ceph.com/issues/16924>`_, `pr#12133 <http://github.com/ceph/ceph/pull/12133>`_, John Spray)
-* mds: enable rmxattr on pool_namespace attrs (`issue#17797 <http://tracker.ceph.com/issues/17797>`_, `pr#11783 <http://github.com/ceph/ceph/pull/11783>`_, John Spray)
-* mds: fix dropping events in standby replay (`issue#17954 <http://tracker.ceph.com/issues/17954>`_, `pr#12077 <http://github.com/ceph/ceph/pull/12077>`_, John Spray)
-* mds: fix EMetaBlob::fullbit xattr dump (`pr#11536 <http://github.com/ceph/ceph/pull/11536>`_, Sage Weil)
-* mds: fix false "failing to respond to cache pressure" warning (`pr#11373 <http://github.com/ceph/ceph/pull/11373>`_, Yan, Zheng)
-* mds: force client flush snap data before truncating objects (`issue#17193 <http://tracker.ceph.com/issues/17193>`_, `pr#11994 <http://github.com/ceph/ceph/pull/11994>`_, Yan, Zheng)
-* mds: handle bad standby_for_fscids in fsmap (`issue#17466 <http://tracker.ceph.com/issues/17466>`_, `pr#11281 <http://github.com/ceph/ceph/pull/11281>`_, John Spray)
-* mds: ignore 'session evict' when mds is replaying log (`issue#17801 <http://tracker.ceph.com/issues/17801>`_, `pr#11813 <http://github.com/ceph/ceph/pull/11813>`_, Yan, Zheng)
-* mds: include legacy client fsid in FSMap print (`pr#11283 <http://github.com/ceph/ceph/pull/11283>`_, John Spray)
-* mds: more deterministic timing on frag split/join (`issue#17853 <http://tracker.ceph.com/issues/17853>`_, `pr#12022 <http://github.com/ceph/ceph/pull/12022>`_, John Spray)
-* mds: more unique_pointer changes (`pr#11635 <http://github.com/ceph/ceph/pull/11635>`_, Patrick Donnelly)
-* mds: properly commit new dirfrag before splitting it (`issue#17990 <http://tracker.ceph.com/issues/17990>`_, `pr#12125 <http://github.com/ceph/ceph/pull/12125>`_, Yan, Zheng)
-* mds: release pool allocator memory after exceeding size limit (`issue#18225 <http://tracker.ceph.com/issues/18225>`_, `pr#12443 <http://github.com/ceph/ceph/pull/12443>`_, John Spray)
-* mds: remove duplicated log in handle_client_readdir (`pr#11806 <http://github.com/ceph/ceph/pull/11806>`_, Zhi Zhang)
-* mds: remove "--journal-check" help text (`issue#17747 <http://tracker.ceph.com/issues/17747>`_, `pr#11739 <http://github.com/ceph/ceph/pull/11739>`_, Nathan Cutler)
-* mds: remove unused EFragment::OP_ONESHOT (`pr#11887 <http://github.com/ceph/ceph/pull/11887>`_, John Spray)
-* mds: repair backtraces during scrub (`issue#17639 <http://tracker.ceph.com/issues/17639>`_, `pr#11578 <http://github.com/ceph/ceph/pull/11578>`_, John Spray)
-* mds: require MAY_SET_POOL to set pool_ns (`issue#17798 <http://tracker.ceph.com/issues/17798>`_, `pr#11789 <http://github.com/ceph/ceph/pull/11789>`_, John Spray)
-* mds: respawn using /proc/self/exe (`issue#17531 <http://tracker.ceph.com/issues/17531>`_, `pr#11362 <http://github.com/ceph/ceph/pull/11362>`_, Patrick Donnelly)
-* mds: revert "mds/Mutation: remove redundant _dump method" (`issue#17906 <http://tracker.ceph.com/issues/17906>`_, `pr#11985 <http://github.com/ceph/ceph/pull/11985>`_, Patrick Donnelly)
-* mds: use parse_filesystem in parse_role to handle exceptions and reuse parsing code (`issue#17518 <http://tracker.ceph.com/issues/17518>`_, `pr#11357 <http://github.com/ceph/ceph/pull/11357>`_, Patrick Donnelly)
-* mds: use projected path construction for access (`issue#17858 <http://tracker.ceph.com/issues/17858>`_, `pr#12063 <http://github.com/ceph/ceph/pull/12063>`_, Patrick Donnelly)
-* mds: use unique_ptr to simplify resource mgmt (`pr#11543 <http://github.com/ceph/ceph/pull/11543>`_, Patrick Donnelly)
-* mgr: doc/mgr: fix mgr how long to wait to failover (`pr#11550 <http://github.com/ceph/ceph/pull/11550>`_, huanwen ren)
-* mgr: init() return when connection daemons failed && add some err info (`pr#11424 <http://github.com/ceph/ceph/pull/11424>`_, huanwen ren)
-* mgr: misc minor changes (`issue#17455 <http://tracker.ceph.com/issues/17455>`_, `pr#11386 <http://github.com/ceph/ceph/pull/11386>`_, xie xingguo)
-* mgr: PyModules.cc: remove duplicated if condition for fs_map (`pr#11639 <http://github.com/ceph/ceph/pull/11639>`_, Weibing Zhang)
-* mgr: remove unnecessary C_StdFunction (`pr#11883 <http://github.com/ceph/ceph/pull/11883>`_, John Spray)
-* mon: add missing space in warning message (`pr#11361 <http://github.com/ceph/ceph/pull/11361>`_, Patrick Donnelly)
-* mon: clean legacy code (`pr#9643 <http://github.com/ceph/ceph/pull/9643>`_, Wei Jin)
-* mon: clear duplicated logic in MDSMonitor (`pr#11209 <http://github.com/ceph/ceph/pull/11209>`_, Zhi Zhang)
-* mon: Do not allow pools to be deleted by default (`pr#11665 <http://github.com/ceph/ceph/pull/11665>`_, Wido den Hollander)
-* mon: fix "OSDs marked OUT wrongly after monitor failover" (`issue#17719 <http://tracker.ceph.com/issues/17719>`_, `pr#11664 <http://github.com/ceph/ceph/pull/11664>`_, Dong Wu)
-* mon: Forbidden copy and assignment function in monoprequest (`pr#9513 <http://github.com/ceph/ceph/pull/9513>`_, song baisen)
-* mon: have mon-specific features & rework internal monmap structures (`pr#10907 <http://github.com/ceph/ceph/pull/10907>`_, Joao Eduardo Luis)
-* mon: if crushtool config is empty use internal crush test (`pr#11765 <http://github.com/ceph/ceph/pull/11765>`_, Bassam Tabbara)
-* mon: make MDSMonitor tolerant of slow mon elections (`issue#17308 <http://tracker.ceph.com/issues/17308>`_, `pr#11167 <http://github.com/ceph/ceph/pull/11167>`_, John Spray)
-* mon: MonmapMonitor: return success when monitor will be removed (`issue#17725 <http://tracker.ceph.com/issues/17725>`_, `pr#11747 <http://github.com/ceph/ceph/pull/11747>`_, Joao Eduardo Luis)
-* mon: move case CEPH_MSG_POOLOP to OSDs group (`pr#11848 <http://github.com/ceph/ceph/pull/11848>`_, Javeme)
-* mon: osdmap's epoch should be more than 0 (`pr#9859 <http://github.com/ceph/ceph/pull/9859>`_, Na Xie)
-* mon: OSDMonitor: fix the check error of pg creating (`issue#17169 <http://tracker.ceph.com/issues/17169>`_, `pr#10916 <http://github.com/ceph/ceph/pull/10916>`_, DesmondS)
-* mon: paxos add the timeout function when peon recovery (`pr#10359 <http://github.com/ceph/ceph/pull/10359>`_, song baisen)
-* mon: preserve osd weight when marking osd out, then in (`pr#11293 <http://github.com/ceph/ceph/pull/11293>`_, Sage Weil)
-* mon: prevent post-jewel OSDs from booting if require_jewel_osds is not set (`pr#11498 <http://github.com/ceph/ceph/pull/11498>`_, Sage Weil)
-* mon: remove ceph-create-keys from mon startup (`issue#16036 <http://tracker.ceph.com/issues/16036>`_, `pr#9345 <http://github.com/ceph/ceph/pull/9345>`_, Owen Synge)
-* mon: remove the redudant jugement in LogMonitor tick function (`pr#10474 <http://github.com/ceph/ceph/pull/10474>`_, song baisen)
-* mon: remove utime_t param in _dump (`pr#12029 <http://github.com/ceph/ceph/pull/12029>`_, Patrick Donnelly)
-* mon: send updated monmap to its subscribers (`issue#17558 <http://tracker.ceph.com/issues/17558>`_, `pr#11456 <http://github.com/ceph/ceph/pull/11456>`_, Kefu Chai)
-* mon: small change on the HealthMonitor start_epoch function (`pr#10296 <http://github.com/ceph/ceph/pull/10296>`_, songbaisen)
-* mon: support for building without leveldb + mon mkfs bug fix (`pr#11800 <http://github.com/ceph/ceph/pull/11800>`_, Bassam Tabbara)
-* osd: add a pg _fastinfo attribute to reduce per-io metadata updates (`pr#11213 <http://github.com/ceph/ceph/pull/11213>`_, Sage Weil)
-* osd: Add config option to disable new scrubs during recovery (`issue#17866 <http://tracker.ceph.com/issues/17866>`_, `pr#11874 <http://github.com/ceph/ceph/pull/11874>`_, Wido den Hollander)
-* osd: a few fast dispatch optimizations (`pr#12052 <http://github.com/ceph/ceph/pull/12052>`_, Sage Weil)
-* osd: cleanup C_CompleteSplits::finish() (`pr#12094 <http://github.com/ceph/ceph/pull/12094>`_, Jie Wang)
-* osd: clean up PeeringWQ::_dequeue(), remove unnecessary variable (`pr#12117 <http://github.com/ceph/ceph/pull/12117>`_, Jie Wang)
-* osd: clean up process_peering_events (`pr#12009 <http://github.com/ceph/ceph/pull/12009>`_, Jie Wang)
-* osdc/Objecter: resend pg commands on interval change (`issue#18358 <http://tracker.ceph.com/issues/18358>`_, `pr#12910 <http://github.com/ceph/ceph/pull/12910>`_, Samuel Just)
-* osd: condition OSDMap encoding on features (`pr#12166 <http://github.com/ceph/ceph/pull/12166>`_, Sage Weil)
-* osd: default osd_scrub_during_recovery=false (`pr#12402 <http://github.com/ceph/ceph/pull/12402>`_, Sage Weil)
-* osd: do not open pgs when the pg is not in pg_map (`issue#17806 <http://tracker.ceph.com/issues/17806>`_, `pr#11803 <http://github.com/ceph/ceph/pull/11803>`_, Xinze Chi)
-* osd: drop stray debug message (`pr#11296 <http://github.com/ceph/ceph/pull/11296>`_, Sage Weil)
-* osd: EC Overwrites (`issue#17668 <http://tracker.ceph.com/issues/17668>`_, `pr#11701 <http://github.com/ceph/ceph/pull/11701>`_, Tomy Cheru, Samuel Just)
-* osd: enhance logging for osd network error (`pr#12458 <http://github.com/ceph/ceph/pull/12458>`_, liuchang0812)
-* osd: fix CEPH_OSD_FLAG_RWORDERED (`pr#12603 <http://github.com/ceph/ceph/pull/12603>`_, Sage Weil)
-* osd: fix duplicated id of incompat feature "fastinfo" (`pr#11588 <http://github.com/ceph/ceph/pull/11588>`_, xie xingguo)
-* osd: fix ec scrub errors (`issue#17999 <http://tracker.ceph.com/issues/17999>`_, `pr#12306 <http://github.com/ceph/ceph/pull/12306>`_, Samuel Just)
-* osd: fixes to make rbd on ec work (`pr#12305 <http://github.com/ceph/ceph/pull/12305>`_, Samuel Just)
-* osd: Fix map gaps again (bug 15943) (`issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#12571 <http://github.com/ceph/ceph/pull/12571>`_, Samuel Just)
-* osd: fix memory leak from EC write workload (`issue#18093 <http://tracker.ceph.com/issues/18093>`_, `pr#12256 <http://github.com/ceph/ceph/pull/12256>`_, Sage Weil)
-* osd: fix rados write op hang (`pr#11143 <http://github.com/ceph/ceph/pull/11143>`_, Yunchuan Wen)
-* osd: Fix read error propogation in ECBackend (`issue#17966 <http://tracker.ceph.com/issues/17966>`_, `pr#12142 <http://github.com/ceph/ceph/pull/12142>`_, Samuel Just)
-* osd: fix scrub boundary to not include a SnapSet (`pr#11255 <http://github.com/ceph/ceph/pull/11255>`_, Samuel Just)
-* osd: fix signed/unsigned comparison warning (`pr#12400 <http://github.com/ceph/ceph/pull/12400>`_, Greg Farnum)
-* osd: fix typo in PG::clear_primary_state (`pr#11513 <http://github.com/ceph/ceph/pull/11513>`_, Brad Hubbard)
-* osd: Fix typos in PG::find_best_info (`pr#11515 <http://github.com/ceph/ceph/pull/11515>`_, Brad Hubbard)
-* osd: fix typos in "struct OSDOp" comments (`pr#12350 <http://github.com/ceph/ceph/pull/12350>`_, Chanyoung Park)
-* osd: Flush Journal on shutdown (`pr#11249 <http://github.com/ceph/ceph/pull/11249>`_, Wido den Hollander)
-* osd: force watch PING to be write ordered (`issue#18310 <http://tracker.ceph.com/issues/18310>`_, `pr#12590 <http://github.com/ceph/ceph/pull/12590>`_, Samuel Just)
-* osd: handle EC recovery read errors (`issue#13937 <http://tracker.ceph.com/issues/13937>`_, `pr#9304 <http://github.com/ceph/ceph/pull/9304>`_, David Zafman)
-* osd: heartbeat peers need to be updated when a new OSD added into an existed cluster (`issue#18004 <http://tracker.ceph.com/issues/18004>`_, `pr#12069 <http://github.com/ceph/ceph/pull/12069>`_, Pan Liu)
-* osd: Increase priority for inactive PGs backfill (`pr#12389 <http://github.com/ceph/ceph/pull/12389>`_, Bartłomiej Święcki)
-* osd: kill PG_STATE_SPLITTING (`pr#11824 <http://github.com/ceph/ceph/pull/11824>`_, xie xingguo)
-* osd: mark queued flag for op (`pr#12352 <http://github.com/ceph/ceph/pull/12352>`_, Yunchuan Wen)
-* osd: osdc: pass a string reference type to "osdmap->lookup_pg_pool_name" (`pr#12219 <http://github.com/ceph/ceph/pull/12219>`_, Leo Zhang)
-* osd: osd/OSDMonitor: accept 'osd pool set ...' value as string (`pr#911 <http://github.com/ceph/ceph/pull/911>`_, David Zafman)
-* osd: PGLog: initialize writeout_from in PGLog constructor (`issue#12973 <http://tracker.ceph.com/issues/12973>`_, `pr#558 <http://github.com/ceph/ceph/pull/558>`_, Sage Weil)
-* osd/PrimaryLogPG: don't update digests for objects with mismatched names (`issue#18409 <http://tracker.ceph.com/issues/18409>`_, `pr#12803 <http://github.com/ceph/ceph/pull/12803>`_, Samuel Just)
-* osd/PrimaryLogPG::failed_push: update missing as well (`issue#18165 <http://tracker.ceph.com/issues/18165>`_, `pr#12911 <http://github.com/ceph/ceph/pull/12911>`_, Samuel Just)
-* osd: print log when osd want to kill self (`pr#9288 <http://github.com/ceph/ceph/pull/9288>`_, Haomai Wang)
-* osd: Remove extra call to reg_next_scrub() during splits (`issue#16474 <http://tracker.ceph.com/issues/16474>`_, `pr#11206 <http://github.com/ceph/ceph/pull/11206>`_, David Zafman)
-* osd: remove redudant call of heartbeat_check (`pr#12130 <http://github.com/ceph/ceph/pull/12130>`_, Pan Liu)
-* osd: remove the lock heartbeat_update_lock, and change heatbeat_need\_… (`pr#12461 <http://github.com/ceph/ceph/pull/12461>`_, Pan Liu)
-* osd: remove the redundant clear method in consume_map function (`pr#10553 <http://github.com/ceph/ceph/pull/10553>`_, song baisen)
-* osd: Remove unused '_lsb_release_' declarations (`pr#11364 <http://github.com/ceph/ceph/pull/11364>`_, Brad Hubbard)
-* osd: replace hb_out and hb_in with a single hb_peers (`issue#18057 <http://tracker.ceph.com/issues/18057>`_, `pr#12178 <http://github.com/ceph/ceph/pull/12178>`_, Pan Liu)
-* osd: ReplicatedPG: don't bless C_OSD_SendMessageOnConn (`issue#13304 <http://tracker.ceph.com/issues/13304>`_, `pr#669 <http://github.com/ceph/ceph/pull/669>`_, Jason Dillaman)
-* osd: set server-side limits on omap get operations (`pr#12059 <http://github.com/ceph/ceph/pull/12059>`_, Sage Weil)
-* osd: When deep-scrub errors present upgrade regular scrubs (`pr#12268 <http://github.com/ceph/ceph/pull/12268>`_, David Zafman)
-* performance,bluestore: kv/MemDB: making memdb code adapt to generic maps (`pr#11436 <http://github.com/ceph/ceph/pull/11436>`_, Ramesh Chander)
-* performance,bluestore: os/bluestore: allow default to buffered write (`pr#11301 <http://github.com/ceph/ceph/pull/11301>`_, Sage Weil)
-* performance,bluestore: os/bluestore: bluestore_cache_meta_ratio = .5 (`pr#11919 <http://github.com/ceph/ceph/pull/11919>`_, Sage Weil)
-* performance,bluestore: os/bluestore: reduce Onode in-memory footprint (`pr#12568 <http://github.com/ceph/ceph/pull/12568>`_, Igor Fedotov)
-* performance,bluestore: os/bluestore: refactor bluestore_sync_submit_transaction (`pr#11537 <http://github.com/ceph/ceph/pull/11537>`_, Sage Weil)
-* performance,bluestore: os/bluestore: speed up omap-key generation for same onode(the read paths) (`pr#11894 <http://github.com/ceph/ceph/pull/11894>`_, xie xingguo)
-* performance,bluestore: os/bluestore: speedup the performance of multi-replication flow by switc… (`pr#11844 <http://github.com/ceph/ceph/pull/11844>`_, Pan Liu)
-* performance,cephfs: Fix long stalls when calling ceph_fsync() (`issue#17563 <http://tracker.ceph.com/issues/17563>`_, `pr#11710 <http://github.com/ceph/ceph/pull/11710>`_, Jeff Layton)
-* performance,cleanup: Context: std::move the callback param in FunctionContext's ctor (`pr#11892 <http://github.com/ceph/ceph/pull/11892>`_, Kefu Chai)
-* performance,cleanup: osd/PG.h: move shared ptr instead of copying it (`pr#11154 <http://github.com/ceph/ceph/pull/11154>`_, Michal Jarzabek)
-* performance,common: common/config_opts.h: Optimized RocksDB WAL settings. (`pr#11530 <http://github.com/ceph/ceph/pull/11530>`_, Mark Nelson)
-* performance,common: osd/OSDMap: improve the performance of pg_to_acting_osds (`pr#12190 <http://github.com/ceph/ceph/pull/12190>`_, Pan Liu)
-* performance: msg/async: set ms_async_send_inline to false to improve small randread iops (`pr#11521 <http://github.com/ceph/ceph/pull/11521>`_, Mark Nelson)
-* performance,tools: rados: add hints to rados bench (`pr#12169 <http://github.com/ceph/ceph/pull/12169>`_, Sage Weil)
-* pybind: avoid "exception 'int' object is not iterable" (`pr#11532 <http://github.com/ceph/ceph/pull/11532>`_, Javeme)
-* pybind,cephfs: ceph_volume_client: fix recovery from partial auth update (`issue#17216 <http://tracker.ceph.com/issues/17216>`_, `pr#11304 <http://github.com/ceph/ceph/pull/11304>`_, Ramana Raja)
-* pybind,cephfs: ceph_volume_client: set an existing auth ID's default mon caps (`issue#17800 <http://tracker.ceph.com/issues/17800>`_, `pr#11917 <http://github.com/ceph/ceph/pull/11917>`_, Ramana Raja)
-* pybind: ceph-rest-api: understand the new style entity_addr_t representation (`issue#17742 <http://tracker.ceph.com/issues/17742>`_, `pr#11686 <http://github.com/ceph/ceph/pull/11686>`_, Kefu Chai)
-* pybind: clean up mgr stuff for flake8 (`pr#11314 <http://github.com/ceph/ceph/pull/11314>`_, John Spray)
-* pybind: fix build failure of rgwfile binding (`pr#11825 <http://github.com/ceph/ceph/pull/11825>`_, Kefu Chai)
-* pybind: pybind/rados: add missing "length" requires for aio_execute() (`pr#12439 <http://github.com/ceph/ceph/pull/12439>`_, Kefu Chai)
-* pybind: pybind/rados: Add @requires for all aio methods (`pr#12327 <http://github.com/ceph/ceph/pull/12327>`_, Iain Buclaw)
-* qa: fixed distros links (`pr#12773 <http://github.com/ceph/ceph/pull/12773>`_, Yuri Weinstein)
-* qa: Fixed link to centos distro (`pr#12768 <http://github.com/ceph/ceph/pull/12768>`_, Yuri Weinstein)
-* qa/suites: switch from centos 7.2 to 7.x (`pr#12632 <http://github.com/ceph/ceph/pull/12632>`_, Sage Weil)
-* qa/tasks/peer: update task based on current peering behavior (`issue#18330 <http://tracker.ceph.com/issues/18330>`_, `pr#12614 <http://github.com/ceph/ceph/pull/12614>`_, Sage Weil)
-* qa/tasks/workunit: clear clone dir before retrying checkout (`issue#18336 <http://tracker.ceph.com/issues/18336>`_, `pr#12630 <http://github.com/ceph/ceph/pull/12630>`_, Sage Weil)
-* qa: update Ubuntu image url after ceph.com refactor (`issue#18542 <http://tracker.ceph.com/issues/18542>`_, `pr#12960 <http://github.com/ceph/ceph/pull/12960>`_, Jason Dillaman)
-* qa/workunits/rbd/test_lock_fence.sh fails (`issue#18388 <http://tracker.ceph.com/issues/18388>`_, `pr#12752 <http://github.com/ceph/ceph/pull/12752>`_, Nathan Cutler)
-* rbd: added rbd-nbd fsx test case (`pr#1049 <http://github.com/ceph/ceph/pull/1049>`_, Jason Dillaman)
-* rbd: add fsx journal replay test case (`pr#821 <http://github.com/ceph/ceph/pull/821>`_, Jason Dillaman)
-* rbd: add singleton to assert no rbdmap regression (`issue#14984 <http://tracker.ceph.com/issues/14984>`_, `pr#902 <http://github.com/ceph/ceph/pull/902>`_, Nathan Cutler)
-* rbd: add some missing workunits (`pr#870 <http://github.com/ceph/ceph/pull/870>`_, Josh Durgin)
-* rbd: add support for separate image data pool (`issue#17424 <http://tracker.ceph.com/issues/17424>`_, `pr#11355 <http://github.com/ceph/ceph/pull/11355>`_, Jason Dillaman)
-* rbd: expose rbd unmap options (`issue#17554 <http://tracker.ceph.com/issues/17554>`_, `pr#11370 <http://github.com/ceph/ceph/pull/11370>`_, Ilya Dryomov)
-* rbd: fix json formatting for image and journal status output (`issue#18261 <http://tracker.ceph.com/issues/18261>`_, `pr#12525 <http://github.com/ceph/ceph/pull/12525>`_, Mykola Golub)
-* rbd: fix parsing of group and image specific pools (`pr#11632 <http://github.com/ceph/ceph/pull/11632>`_, Victor Denisov)
-* rbd: journal: do not prematurely flag object recorder as closed (`issue#17590 <http://tracker.ceph.com/issues/17590>`_, `pr#11520 <http://github.com/ceph/ceph/pull/11520>`_, Jason Dillaman)
-* rbd: krbd: kernel client expects ip[:port], not an entity_addr_t (`pr#11902 <http://github.com/ceph/ceph/pull/11902>`_, Ilya Dryomov)
-* rbd: --max_part and --nbds_max options for nbd map (`issue#18186 <http://tracker.ceph.com/issues/18186>`_, `pr#12379 <http://github.com/ceph/ceph/pull/12379>`_, Pan Liu)
-* rbd: move nbd test workload to separate client host from OSDs (`pr#1170 <http://github.com/ceph/ceph/pull/1170>`_, Jason Dillaman)
-* rbd: provision volumes to format as XFS (`issue#6693 <http://tracker.ceph.com/issues/6693>`_, `pr#1028 <http://github.com/ceph/ceph/pull/1028>`_, Loic Dachary)
-* rbd: rbd-mirror: fix sparse read optimization in image sync (`issue#18146 <http://tracker.ceph.com/issues/18146>`_, `pr#12368 <http://github.com/ceph/ceph/pull/12368>`_, Mykola Golub)
-* rbd: rbd-mirror HA: move librbd::image_watcher::Notifier to librbd::object_watcher (`issue#17017 <http://tracker.ceph.com/issues/17017>`_, `pr#11290 <http://github.com/ceph/ceph/pull/11290>`_, Mykola Golub)
-* rbd: rbd-mirror: recovering after split-brain (`issue#16991 <http://tracker.ceph.com/issues/16991>`_, `issue#18051 <http://tracker.ceph.com/issues/18051>`_, `pr#12212 <http://github.com/ceph/ceph/pull/12212>`_, Mykola Golub)
-* rbd: rbd-mirror: snap protect of non-layered image results in split-brain (`issue#16962 <http://tracker.ceph.com/issues/16962>`_, `pr#11744 <http://github.com/ceph/ceph/pull/11744>`_, Mykola Golub)
-* rbd: rbd-nbd: disallow mapping images >2TB in size (`issue#17219 <http://tracker.ceph.com/issues/17219>`_, `pr#11741 <http://github.com/ceph/ceph/pull/11741>`_, Mykola Golub)
-* rbd: rbd-nbd: invalid error code for "failed to read nbd request" messages (`issue#18242 <http://tracker.ceph.com/issues/18242>`_, `pr#12483 <http://github.com/ceph/ceph/pull/12483>`_, Mykola Golub)
-* rbd: rbd-nbd: restart parent process logger after forking (`issue#18070 <http://tracker.ceph.com/issues/18070>`_, `pr#12222 <http://github.com/ceph/ceph/pull/12222>`_, Jason Dillaman)
-* rbd: rbd-nbd: support disabling auto-exclusive lock transition logic (`issue#17488 <http://tracker.ceph.com/issues/17488>`_, `pr#11438 <http://github.com/ceph/ceph/pull/11438>`_, Mykola Golub)
-* rbd: rbd-nbd: support partition for rbd-nbd mapped raw block device (`issue#18115 <http://tracker.ceph.com/issues/18115>`_, `pr#12259 <http://github.com/ceph/ceph/pull/12259>`_, Pan Liu)
-* rbd: tests with rbd_skip_partial_discard option enabled (`pr#1077 <http://github.com/ceph/ceph/pull/1077>`_, Mykola Golub)
-* rbd,tools: rbd : make option --stripe-unit w/ B/K/M work (`pr#12407 <http://github.com/ceph/ceph/pull/12407>`_, Jianpeng Ma)
-* rbd: updated tests to use new rbd default feature set (`pr#842 <http://github.com/ceph/ceph/pull/842>`_, Jason Dillaman)
-* rbd: use snap_remove implementation from internal (`pr#12035 <http://github.com/ceph/ceph/pull/12035>`_, Victor Denisov)
-* rgw: add default zone name (`issue#7009 <http://tracker.ceph.com/issues/7009>`_, `pr#954 <http://github.com/ceph/ceph/pull/954>`_, Orit Wasserman)
-* rgw: add documentation for upgrading with rgw_region_root_pool (`pr#12138 <http://github.com/ceph/ceph/pull/12138>`_, Orit Wasserman)
-* rgw: add option to log custom HTTP headers (rgw_log_http_headers) (`pr#7639 <http://github.com/ceph/ceph/pull/7639>`_, Matt Benjamin)
-* rgw: add recovery procedure for upgrade to older version of jewel (`issue#17820 <http://tracker.ceph.com/issues/17820>`_, `pr#11827 <http://github.com/ceph/ceph/pull/11827>`_, Orit Wasserman)
-* rgw: add rgw_compression_type=random for teuthology testing (`pr#11901 <http://github.com/ceph/ceph/pull/11901>`_, Casey Bodley)
-* rgw: add sleep to let the sync agent init (`pr#1136 <http://github.com/ceph/ceph/pull/1136>`_, Orit Wasserman)
-* rgw: add suport for creating S3 type subuser of admin rest api (`issue#16682 <http://tracker.ceph.com/issues/16682>`_, `pr#10325 <http://github.com/ceph/ceph/pull/10325>`_, snakeAngel2015)
-* rgw: add support for the prefix parameter in account listing of Swift API (`issue#17931 <http://tracker.ceph.com/issues/17931>`_, `pr#12047 <http://github.com/ceph/ceph/pull/12047>`_, Radoslaw Zarzynski)
-* rgw: allow fastcgi idle timeout to be adjusted (`pr#230 <http://github.com/ceph/ceph/pull/230>`_, Sage Weil)
-* rgw: also approve, passed teuthology (many false positives in several classes) (`issue#17985 <http://tracker.ceph.com/issues/17985>`_, `pr#12224 <http://github.com/ceph/ceph/pull/12224>`_, Yehuda Sadeh, Sage Weil)
-* rgw: Anonymous users shouldn't be able to access requester pays buckets. (`issue#17175 <http://tracker.ceph.com/issues/17175>`_, `pr#11719 <http://github.com/ceph/ceph/pull/11719>`_, Zhang Shaowen)
-* rgw: aws4: add presigned url bugfix in runtime (`issue#16463 <http://tracker.ceph.com/issues/16463>`_, `pr#10160 <http://github.com/ceph/ceph/pull/10160>`_, Javier M. Mellid)
-* rgw: bucket resharding (`issue#17550 <http://tracker.ceph.com/issues/17550>`_, `pr#11230 <http://github.com/ceph/ceph/pull/11230>`_, Yehuda Sadeh)
-* rgw:bugfix for deleting objects name beginning and ending with underscores of one bucket using POST method of AWS's js sdk. (`issue#17888 <http://tracker.ceph.com/issues/17888>`_, `pr#11982 <http://github.com/ceph/ceph/pull/11982>`_, root)
-* rgw: Class member cookie is not initialized correctly in some coroutine's constructor. (`pr#11673 <http://github.com/ceph/ceph/pull/11673>`_, Zhang Shaowen)
-* rgw: clean up RGWShardedOmapCRManager on early return (`issue#17571 <http://tracker.ceph.com/issues/17571>`_, `pr#11505 <http://github.com/ceph/ceph/pull/11505>`_, Casey Bodley)
-* rgw: clear data_sync_cr if RGWDataSyncControlCR fails (`issue#17569 <http://tracker.ceph.com/issues/17569>`_, `pr#11506 <http://github.com/ceph/ceph/pull/11506>`_, Casey Bodley)
-* rgw: compilation of the ASIO front-end is enabled by default. (`pr#12073 <http://github.com/ceph/ceph/pull/12073>`_, Radoslaw Zarzynski)
-* rgw: compression uses optional::emplace instead of in-place factories (`pr#12021 <http://github.com/ceph/ceph/pull/12021>`_, Radoslaw Zarzynski)
-* rgw: conform to the standard usage of string::find (`pr#10086 <http://github.com/ceph/ceph/pull/10086>`_, Yan Jun)
-* rgw: data_extra_pool is unique per zone (`issue#17025 <http://tracker.ceph.com/issues/17025>`_, `pr#1119 <http://github.com/ceph/ceph/pull/1119>`_, Orit Wasserman)
-* rgw: delete entries_index in RGWFetchAllMetaCR (`issue#17812 <http://tracker.ceph.com/issues/17812>`_, `pr#11816 <http://github.com/ceph/ceph/pull/11816>`_, Casey Bodley)
-* rgw: do not abort when accept a CORS request with short origin (`pr#12381 <http://github.com/ceph/ceph/pull/12381>`_, LiuYang)
-* rgw: do not enable both tcp and uds for fastcgi (`issue#5797 <http://tracker.ceph.com/issues/5797>`_, `pr#479 <http://github.com/ceph/ceph/pull/479>`_, Andrew Schoen)
-* rgw: don't error out on empty owner when setting acls (`issue#6892 <http://tracker.ceph.com/issues/6892>`_, `pr#877 <http://github.com/ceph/ceph/pull/877>`_, Loic Dachary, Nathan Cutler)
-* rgw: Don't loop forever when reading data from 0 sized segment. (`issue#17692 <http://tracker.ceph.com/issues/17692>`_, `pr#11567 <http://github.com/ceph/ceph/pull/11567>`_, Marcus Watts)
-* rgw: dont set CURLOPT_UPLOAD for GET requests (`issue#17822 <http://tracker.ceph.com/issues/17822>`_, `pr#12105 <http://github.com/ceph/ceph/pull/12105>`_, Casey Bodley)
-* rgw: don't store empty chains in gc (`issue#17897 <http://tracker.ceph.com/issues/17897>`_, `pr#11969 <http://github.com/ceph/ceph/pull/11969>`_, Yehuda Sadeh)
-* rgw: do quota tests on ubuntu (`issue#6382 <http://tracker.ceph.com/issues/6382>`_, `pr#635 <http://github.com/ceph/ceph/pull/635>`_, Sage Weil)
-* rgw: dump objects in RGWBucket::check_object_index() (`issue#14589 <http://tracker.ceph.com/issues/14589>`_, `pr#11324 <http://github.com/ceph/ceph/pull/11324>`_, Yehuda Sadeh)
-* rgw: dump remaining coroutines when cr deadlock is detected (`pr#11580 <http://github.com/ceph/ceph/pull/11580>`_, Casey Bodley)
-* rgw: extract host name from host:port string (`issue#17788 <http://tracker.ceph.com/issues/17788>`_, `pr#11751 <http://github.com/ceph/ceph/pull/11751>`_, Yehuda Sadeh)
-* rgw: Fixed problem with PUT with x-amz-copy-source when source object is compressed. (`pr#12253 <http://github.com/ceph/ceph/pull/12253>`_, Adam Kupczyk)
-* rgw: fixes for virtual hosting of buckets (`issue#17440 <http://tracker.ceph.com/issues/17440>`_, `issue#15975 <http://tracker.ceph.com/issues/15975>`_, `issue#17136 <http://tracker.ceph.com/issues/17136>`_, `pr#11280 <http://github.com/ceph/ceph/pull/11280>`_, Casey Bodley, Robin H. Johnson)
-* rgw: fix etag in multipart complete (`issue#17794 <http://tracker.ceph.com/issues/17794>`_, `issue#6830 <http://tracker.ceph.com/issues/6830>`_, `issue#16129 <http://tracker.ceph.com/issues/16129>`_, `issue#17872 <http://tracker.ceph.com/issues/17872>`_, `pr#1269 <http://github.com/ceph/ceph/pull/1269>`_, Casey Bodley, Orit Wasserman)
-* rgw: fix for bucket delete racing with mdlog sync (`issue#17698 <http://tracker.ceph.com/issues/17698>`_, `pr#11648 <http://github.com/ceph/ceph/pull/11648>`_, Casey Bodley)
-* rgw: fix for passing temporary in InitBucketSyncStatus (`issue#17661 <http://tracker.ceph.com/issues/17661>`_, `pr#11594 <http://github.com/ceph/ceph/pull/11594>`_, Casey Bodley)
-* rgw: fix for unsafe change of rgw_zonegroup (`issue#17962 <http://tracker.ceph.com/issues/17962>`_, `pr#12075 <http://github.com/ceph/ceph/pull/12075>`_, Casey Bodley)
-* rgw: fix indentation for cache_pools (`issue#8295 <http://tracker.ceph.com/issues/8295>`_, `pr#251 <http://github.com/ceph/ceph/pull/251>`_, Sage Weil)
-* rgw: fix missing master zone for a single zone zonegroup (`issue#17364 <http://tracker.ceph.com/issues/17364>`_, `pr#11965 <http://github.com/ceph/ceph/pull/11965>`_, Orit Wasserman)
-* rgw: fix osd crashes when execute "radosgw-admin bi list --max-entries=1" command (`issue#17745 <http://tracker.ceph.com/issues/17745>`_, `pr#11697 <http://github.com/ceph/ceph/pull/11697>`_, weiqiaomiao)
-* rgw: fix put_acls for objects starting and ending with underscore (`issue#17625 <http://tracker.ceph.com/issues/17625>`_, `pr#11566 <http://github.com/ceph/ceph/pull/11566>`_, Orit Wasserman)
-* rgw: fix RGWSimpleRadosLockCR set_description() (`pr#11961 <http://github.com/ceph/ceph/pull/11961>`_, Tianshan Qu)
-* rgw: fix the field 'total_time' of log entry in log show opt (`issue#17598 <http://tracker.ceph.com/issues/17598>`_, `pr#11425 <http://github.com/ceph/ceph/pull/11425>`_, weiqiaomiao)
-* rgw: fix uncompressed object size deduction in RGWRados::copy_obj_data. (`issue#17803 <http://tracker.ceph.com/issues/17803>`_, `pr#11794 <http://github.com/ceph/ceph/pull/11794>`_, Radoslaw Zarzynski)
-* rgw: frontend subsystem rework (`pr#10767 <http://github.com/ceph/ceph/pull/10767>`_, Radoslaw Zarzynski, Casey Bodley, Matt Benjamin)
-* rgw: ftw (`issue#17888 <http://tracker.ceph.com/issues/17888>`_, `pr#12262 <http://github.com/ceph/ceph/pull/12262>`_, Casey Bodley)
-* rgw: get_system_obj does not use result of get_system_obj_state (`issue#17580 <http://tracker.ceph.com/issues/17580>`_, `pr#11444 <http://github.com/ceph/ceph/pull/11444>`_, Casey Bodley)
-* rgw: get_zonegroup() uses "default" zonegroup if empty (`issue#17372 <http://tracker.ceph.com/issues/17372>`_, `pr#11207 <http://github.com/ceph/ceph/pull/11207>`_, Yehuda Sadeh)
-* rgw: handle empty POST condition (`issue#17635 <http://tracker.ceph.com/issues/17635>`_, `pr#11581 <http://github.com/ceph/ceph/pull/11581>`_, Yehuda Sadeh)
-* rgw: handle Swift auth errors in a way compatible with new Tempests. (`issue#16590 <http://tracker.ceph.com/issues/16590>`_, `pr#10021 <http://github.com/ceph/ceph/pull/10021>`_, Radoslaw Zarzynski)
-* rgw: json encode/decode index_type, allow modification (`issue#17755 <http://tracker.ceph.com/issues/17755>`_, `pr#11707 <http://github.com/ceph/ceph/pull/11707>`_, Yehuda Sadeh)
-* rgw: loses realm/period/zonegroup/zone data: period overwritten if somewhere in the cluster is still running Hammer (`issue#17371 <http://tracker.ceph.com/issues/17371>`_, `pr#11426 <http://github.com/ceph/ceph/pull/11426>`_, Orit Wasserman)
-* rgw: make RGWLocalAuthApplier::is_admin_of() aware about system users. (`issue#18106 <http://tracker.ceph.com/issues/18106>`_, `pr#12283 <http://github.com/ceph/ceph/pull/12283>`_, Radoslaw Zarzynski)
-* rgw: metadata sync info should be shown at master zone of slave zoneg… (`issue#18091 <http://tracker.ceph.com/issues/18091>`_, `pr#12187 <http://github.com/ceph/ceph/pull/12187>`_, Jing Wenjun)
-* rgw: minor cleanup (`pr#10057 <http://github.com/ceph/ceph/pull/10057>`_, Yan Jun)
-* rgw: move compression config into zone placement (`pr#12113 <http://github.com/ceph/ceph/pull/12113>`_, Casey Bodley)
-* rgw: move xfs to a seperate directory (`pr#969 <http://github.com/ceph/ceph/pull/969>`_, Orit Wasserman)
-* rgw: multipart upload copy (`issue#12790 <http://tracker.ceph.com/issues/12790>`_, `pr#11269 <http://github.com/ceph/ceph/pull/11269>`_, Yehuda Sadeh, Javier M. Mellid)
-* rgw: need to close_section in lc list op (`pr#12232 <http://github.com/ceph/ceph/pull/12232>`_, weiqiaomiao)
-* rgw: policy acl format should be xml (`pr#946 <http://github.com/ceph/ceph/pull/946>`_, Orit Wasserman)
-* rgw: radosgw-admin: more on placement configuration (`issue#18078 <http://tracker.ceph.com/issues/18078>`_, `pr#12242 <http://github.com/ceph/ceph/pull/12242>`_, Casey Bodley)
-* rgw: region conversion respects pre-existing rgw_region_root_pool (`issue#17963 <http://tracker.ceph.com/issues/17963>`_, `pr#12076 <http://github.com/ceph/ceph/pull/12076>`_, Casey Bodley)
-* rgw: remove a redundant judgement when listng objects. (`pr#10849 <http://github.com/ceph/ceph/pull/10849>`_, zhangshaowen)
-* rgw: remove circular reference in RGWAsyncRadosRequest (`issue#17793 <http://tracker.ceph.com/issues/17793>`_, `issue#17792 <http://tracker.ceph.com/issues/17792>`_, `pr#11815 <http://github.com/ceph/ceph/pull/11815>`_, Casey Bodley)
-* rgw: remove suggestion to upgrade libcurl (`pr#11630 <http://github.com/ceph/ceph/pull/11630>`_, Casey Bodley)
-* rgw: remove unused variable "ostr" in rgw_b64.h and fix the comment (`pr#11329 <http://github.com/ceph/ceph/pull/11329>`_, Weibing Zhang)
-* rgw: Replacing '+' with "%20" in canonical uri for s3 v4 auth. (`issue#17076 <http://tracker.ceph.com/issues/17076>`_, `pr#10919 <http://github.com/ceph/ceph/pull/10919>`_, Pritha Srivastava)
-* rgw: revert unintentional change to civetweb (`pr#12004 <http://github.com/ceph/ceph/pull/12004>`_, Bassam Tabbara)
-* rgw: rgw-admin: new commands to control placement (`issue#18078 <http://tracker.ceph.com/issues/18078>`_, `pr#12230 <http://github.com/ceph/ceph/pull/12230>`_, Yehuda Sadeh)
-* rgw: RGWBucketSyncStatusManager uses existing async_rados (`issue#18083 <http://tracker.ceph.com/issues/18083>`_, `pr#12229 <http://github.com/ceph/ceph/pull/12229>`_, Casey Bodley)
-* rgw: rgw_file: apply missed base64 try-catch (`issue#17663 <http://tracker.ceph.com/issues/17663>`_, `pr#11671 <http://github.com/ceph/ceph/pull/11671>`_, Matt Benjamin)
-* rgw: RGWHTTPArgs::get_str() - return argument string that was set. (`pr#10672 <http://github.com/ceph/ceph/pull/10672>`_, Marcus Watts)
-* rgw: rgw multisite: fix the increamtal bucket sync init (`issue#17624 <http://tracker.ceph.com/issues/17624>`_, `pr#11553 <http://github.com/ceph/ceph/pull/11553>`_, Zengran Zhang)
-* rgw: rgw multisite: use a rados lock to coordinate data log trimming (`pr#10546 <http://github.com/ceph/ceph/pull/10546>`_, Casey Bodley)
-* rgw: RGW Python bindings - use explicit array (`pr#11831 <http://github.com/ceph/ceph/pull/11831>`_, Daniel Gryniewicz)
-* rgw: rgw_rados.cc fix shard_num format for snprintf (`pr#11493 <http://github.com/ceph/ceph/pull/11493>`_, Weibing Zhang)
-* rgw: rgw/rgw_file.cc: Add compat.h to allow CLOCK_MONOTONE (`pr#12309 <http://github.com/ceph/ceph/pull/12309>`_, Willem Jan Withagen)
-* rgw: RGWSimpleRadosReadCR tolerates empty reads (`issue#17568 <http://tracker.ceph.com/issues/17568>`_, `pr#11504 <http://github.com/ceph/ceph/pull/11504>`_, Casey Bodley)
-* rgw: [RGW] Wip rgw compression (`pr#11494 <http://github.com/ceph/ceph/pull/11494>`_, Alyona Kiseleva, Adam Kupczyk, Casey Bodley)
-* rgw: set duration for lifecycle lease (`issue#17965 <http://tracker.ceph.com/issues/17965>`_, `pr#12231 <http://github.com/ceph/ceph/pull/12231>`_, Yehuda Sadeh)
-* rgw: should assign 'olh_bl" to state.attrset[RGW_ATTR_OLH_ID_TAG] instead of 'bl' (`pr#10239 <http://github.com/ceph/ceph/pull/10239>`_, weiqiaomiao)
-* rgw: skip empty http args in method parse() to avoid extra effort (`pr#11989 <http://github.com/ceph/ceph/pull/11989>`_, Guo Zhandong)
-* rgw: split osd's in 2 nodes (`issue#15612 <http://tracker.ceph.com/issues/15612>`_, `pr#1019 <http://github.com/ceph/ceph/pull/1019>`_, Vasu Kulkarni)
-* rgw: support for x-robots-tag header (`issue#17790 <http://tracker.ceph.com/issues/17790>`_, `pr#11753 <http://github.com/ceph/ceph/pull/11753>`_, Yehuda Sadeh)
-* rgw: sync modules, metadata search (`pr#10731 <http://github.com/ceph/ceph/pull/10731>`_, Yehuda Sadeh)
-* rgw: Update version of civetweb to 1.8 (`pr#11343 <http://github.com/ceph/ceph/pull/11343>`_, Marcus Watts)
-* rgw: use civetweb if no frontend was configured (`pr#958 <http://github.com/ceph/ceph/pull/958>`_, Orit Wasserman)
-* rgw: use explicit flag to cancel RGWCoroutinesManager::run() (`issue#17465 <http://tracker.ceph.com/issues/17465>`_, `pr#12452 <http://github.com/ceph/ceph/pull/12452>`_, Casey Bodley)
-* rgw: valgrind fixes for kraken (`issue#18414 <http://tracker.ceph.com/issues/18414>`_, `issue#18407 <http://tracker.ceph.com/issues/18407>`_, `issue#18412 <http://tracker.ceph.com/issues/18412>`_, `issue#18300 <http://tracker.ceph.com/issues/18300>`_, `pr#12949 <http://github.com/ceph/ceph/pull/12949>`_, Casey Bodley)
-* rgw: verified that failed check is in osd-scrub-repair.sh (`issue#17850 <http://tracker.ceph.com/issues/17850>`_, `pr#11881 <http://github.com/ceph/ceph/pull/11881>`_, Matt Benjamin)
-* rgw: we don't support btrfs any more (`pr#1132 <http://github.com/ceph/ceph/pull/1132>`_, Orit Wasserman)
-* rgw: Wip rgwfile pybind (`pr#11624 <http://github.com/ceph/ceph/pull/11624>`_, Haomai Wang)
-* tests,bluestore: os/bluestore: add UT for an estimation of Onode in-memory size (`pr#12532 <http://github.com/ceph/ceph/pull/12532>`_, Igor Fedotov)
-* tests,bluestore: os/test/store_test: fix legacy bluestore cache settings application (`pr#11915 <http://github.com/ceph/ceph/pull/11915>`_, Igor Fedotov)
-* tests: ceph-disk: force debug monc = 0 (`issue#17607 <http://tracker.ceph.com/issues/17607>`_, `pr#11534 <http://github.com/ceph/ceph/pull/11534>`_, Loic Dachary)
-* tests: ceph_objectstore_tool.py: Don't use btrfs on FreeBSD (`pr#10507 <http://github.com/ceph/ceph/pull/10507>`_, Willem Jan Withagen)
-* tests: ceph_test_objectstore: fix Rename test (`pr#12261 <http://github.com/ceph/ceph/pull/12261>`_, Sage Weil)
-* tests: check hostname --fqdn sanity before running make check (`issue#18134 <http://tracker.ceph.com/issues/18134>`_, `pr#12297 <http://github.com/ceph/ceph/pull/12297>`_, Nathan Cutler)
-* tests,cleanup,rbd: test/librbd: in test_notify set object-map and fast-diff features by default (`pr#11821 <http://github.com/ceph/ceph/pull/11821>`_, Mykola Golub)
-* tests,cleanup: test_bloom_filter.cc: Fix a mismatch for the random_seed parameter (`pr#11774 <http://github.com/ceph/ceph/pull/11774>`_, Willem Jan Withagen)
-* tests,cleanup: test/osd/osd-fast-mark-down.sh: remove unnecessary teardown() calls (`pr#12101 <http://github.com/ceph/ceph/pull/12101>`_, Kefu Chai)
-* tests,cleanup: test/osd-scrub-repair.sh: use repair() instead of "ceph pg repair" (`pr#12036 <http://github.com/ceph/ceph/pull/12036>`_, Kefu Chai)
-* tests,cleanup: test/rados: remove unused bufferlist variable (`pr#10221 <http://github.com/ceph/ceph/pull/10221>`_, Yan Jun)
-* tests,common: test: add perf-reset test in test/perf_counters.cc (`pr#8948 <http://github.com/ceph/ceph/pull/8948>`_, wangsongbo)
-* tests: disable failing tests (`issue#17561 <http://tracker.ceph.com/issues/17561>`_, `issue#17757 <http://tracker.ceph.com/issues/17757>`_, `pr#11714 <http://github.com/ceph/ceph/pull/11714>`_, Loic Dachary)
-* tests: disable the echo when running get_timeout_delays() (`pr#12180 <http://github.com/ceph/ceph/pull/12180>`_, Kefu Chai)
-* tests: do not use memstore.test_temp_dir in two tests (`issue#17743 <http://tracker.ceph.com/issues/17743>`_, `pr#12281 <http://github.com/ceph/ceph/pull/12281>`_, Loic Dachary)
-* tests: erasure-code: add k=2, m=2 for isa & jerasure (`issue#18188 <http://tracker.ceph.com/issues/18188>`_, `pr#12383 <http://github.com/ceph/ceph/pull/12383>`_, Loic Dachary)
-* tests: facilitate background process debug in ceph-helpers.sh (`issue#17830 <http://tracker.ceph.com/issues/17830>`_, `pr#12183 <http://github.com/ceph/ceph/pull/12183>`_, Loic Dachary)
-* tests: fix ceph-helpers.sh wait_for_clean delays (`issue#17830 <http://tracker.ceph.com/issues/17830>`_, `pr#12095 <http://github.com/ceph/ceph/pull/12095>`_, Loic Dachary)
-* tests: fix osd-scrub-repair.sh (`pr#12072 <http://github.com/ceph/ceph/pull/12072>`_, David Zafman)
-* tests: Fix racey test by setting noout flag (tracker 17757) (`issue#17757 <http://tracker.ceph.com/issues/17757>`_, `pr#11715 <http://github.com/ceph/ceph/pull/11715>`_, David Zafman)
-* tests: merge ceph-qa-suite
-* tests: Minor clean-ups (`pr#12048 <http://github.com/ceph/ceph/pull/12048>`_, David Zafman)
-* tests: minor make check cleanup (`pr#12146 <http://github.com/ceph/ceph/pull/12146>`_, David Zafman)
-* tests: no python3 tests for ceph-disk (`issue#17923 <http://tracker.ceph.com/issues/17923>`_, `pr#12025 <http://github.com/ceph/ceph/pull/12025>`_, Loic Dachary)
-* tests: osd-crush.sh must retry crush dump (`issue#17919 <http://tracker.ceph.com/issues/17919>`_, `pr#12016 <http://github.com/ceph/ceph/pull/12016>`_, Loic Dachary)
-* tests: osd-scrub-repair.sh abort if add_something fails (`pr#12172 <http://github.com/ceph/ceph/pull/12172>`_, Loic Dachary)
-* tests: os/memstore: fix a mem leak in MemStore::Collection::create_object() (`pr#12201 <http://github.com/ceph/ceph/pull/12201>`_, Kefu Chai)
-* tests: os/memstore, os/filestore: fix store_test's to satisfy rm_coll behavi… (`pr#11558 <http://github.com/ceph/ceph/pull/11558>`_, Igor Fedotov)
-* tests: paxos fixes (`issue#11913 <http://tracker.ceph.com/issues/11913>`_, `pr#457 <http://github.com/ceph/ceph/pull/457>`_, John Spray)
-* tests: pin flake8 to avoid behavior changes (`issue#17898 <http://tracker.ceph.com/issues/17898>`_, `pr#11971 <http://github.com/ceph/ceph/pull/11971>`_, Loic Dachary)
-* tests: qa: fixed script to schedule rados and other suites with --subset option (`pr#12587 <http://github.com/ceph/ceph/pull/12587>`_, Yuri Weinstein)
-* tests: qa/tasks/admin_socket: subst in repo name (`pr#12508 <http://github.com/ceph/ceph/pull/12508>`_, Sage Weil)
-* tests: qa/tasks/ceph_deploy: use dev option instead of dev-commit (`pr#12514 <http://github.com/ceph/ceph/pull/12514>`_, Vasu Kulkarni)
-* tests: qa/tasks/osd_backfill.py: wait for osd.[12] to start (`issue#18303 <http://tracker.ceph.com/issues/18303>`_, `pr#12577 <http://github.com/ceph/ceph/pull/12577>`_, Sage Weil)
-* tests: qa/workunits/cephtool/test.sh: FreeBSD has no distro. (`pr#11702 <http://github.com/ceph/ceph/pull/11702>`_, Willem Jan Withagen)
-* tests: qa/workunits: include extension for nose tests (`pr#12572 <http://github.com/ceph/ceph/pull/12572>`_, Sage Weil)
-* tests: qa/workunits/rados/test_envlibrados_for_rocksdb: force librados-dev install (`pr#11941 <http://github.com/ceph/ceph/pull/11941>`_, Sage Weil)
-* tests,rbd: qa/workunits/rbd: fix (`issue#18271 <http://tracker.ceph.com/issues/18271>`_, `pr#12511 <http://github.com/ceph/ceph/pull/12511>`_, Sage Weil)
-* tests,rbd: qa/workunits/rbd: removed qemu-iotest case 077 (`issue#10773 <http://tracker.ceph.com/issues/10773>`_, `pr#12366 <http://github.com/ceph/ceph/pull/12366>`_, Jason Dillaman)
-* tests,rbd: qa/workunits/rbd: simplify running nbd test under build env (`pr#11781 <http://github.com/ceph/ceph/pull/11781>`_, Mykola Golub)
-* tests,rbd: qa/workunits/rbd: use image id when probing for image presence (`issue#18048 <http://tracker.ceph.com/issues/18048>`_, `pr#12195 <http://github.com/ceph/ceph/pull/12195>`_, Mykola Golub)
-* tests,rbd: qa/workunits/rbd: use more recent qemu-iotests that support Xenial (`issue#18149 <http://tracker.ceph.com/issues/18149>`_, `pr#12371 <http://github.com/ceph/ceph/pull/12371>`_, Jason Dillaman)
-* tests,rbd: rbd-mirror: fix gmock warnings in bootstrap request unit tests (`issue#18156 <http://tracker.ceph.com/issues/18156>`_, `pr#12344 <http://github.com/ceph/ceph/pull/12344>`_, Mykola Golub)
-* tests,rbd: rbd-mirror: improve resiliency of stress test case (`issue#17416 <http://tracker.ceph.com/issues/17416>`_, `pr#11326 <http://github.com/ceph/ceph/pull/11326>`_, Jason Dillaman)
-* tests,rbd: test: new librbd discard after write test case (`pr#11645 <http://github.com/ceph/ceph/pull/11645>`_, Jason Dillaman)
-* tests,rbd: test: skip TestLibRBD.DiscardAfterWrite if skip partial discard enabled (`issue#17750 <http://tracker.ceph.com/issues/17750>`_, `pr#11703 <http://github.com/ceph/ceph/pull/11703>`_, Jason Dillaman)
-* tests,rbd: test: TestJournalReplay test cases need to wait for event commit (`issue#17566 <http://tracker.ceph.com/issues/17566>`_, `pr#11480 <http://github.com/ceph/ceph/pull/11480>`_, Jason Dillaman)
-* tests: remove TestPGLog EXPECT_DEATH tests (`issue#18030 <http://tracker.ceph.com/issues/18030>`_, `pr#12361 <http://github.com/ceph/ceph/pull/12361>`_, Loic Dachary)
-* tests: save 9 characters for asok paths (`issue#16014 <http://tracker.ceph.com/issues/16014>`_, `pr#12066 <http://github.com/ceph/ceph/pull/12066>`_, Loic Dachary)
-* tests: sync ceph-erasure-code-corpus for using 'arch' not 'uname -p' (`pr#12024 <http://github.com/ceph/ceph/pull/12024>`_, Kefu Chai)
-* tests: test/ceph_crypto: do not read ceph.conf in global_init() (`issue#18128 <http://tracker.ceph.com/issues/18128>`_, `pr#12318 <http://github.com/ceph/ceph/pull/12318>`_, Kefu Chai)
-* tests: test: ceph-objectstore-tool: should import platform before using it (`pr#12038 <http://github.com/ceph/ceph/pull/12038>`_, Kefu Chai)
-* tests: test/ceph_test_msgr: do not use Message::middle for holding transient… (`issue#17728 <http://tracker.ceph.com/issues/17728>`_, `pr#11680 <http://github.com/ceph/ceph/pull/11680>`_, Kefu Chai)
-* tests: test: disable osd-scrub-repair and test-erasure-eio (`issue#17830 <http://tracker.ceph.com/issues/17830>`_, `pr#12058 <http://github.com/ceph/ceph/pull/12058>`_, Loic Dachary, Dan Mick)
-* tests: test: disable osd-scrub-repair and test-erasure-eio (`pr#11979 <http://github.com/ceph/ceph/pull/11979>`_, Dan Mick)
-* tests: test: Don't write to a poolid that this test might not have created (`pr#12378 <http://github.com/ceph/ceph/pull/12378>`_, David Zafman)
-* tests: test: enable unittest_dns_resolve (`pr#12209 <http://github.com/ceph/ceph/pull/12209>`_, Kefu Chai)
-* tests: test/encoding/readable.sh: fix shell script warning (`pr#11527 <http://github.com/ceph/ceph/pull/11527>`_, Willem Jan Withagen)
-* tests: TestErasureCodePluginJerasure must stop the log thread (`issue#17561 <http://tracker.ceph.com/issues/17561>`_, `pr#11721 <http://github.com/ceph/ceph/pull/11721>`_, Loic Dachary)
-* tests: test: fix test-erasure-eio and osd-scrub-repair races (17830) (`pr#11926 <http://github.com/ceph/ceph/pull/11926>`_, David Zafman)
-* tests: test/osd-fast-mark-down.sh: wrong assumption on first subtest (`pr#12123 <http://github.com/ceph/ceph/pull/12123>`_, Piotr Dałek)
-* tests: test/osd/osd-fast-mark-down.sh: introduce large timeout (`issue#17918 <http://tracker.ceph.com/issues/17918>`_, `pr#12019 <http://github.com/ceph/ceph/pull/12019>`_, Piotr Dałek)
-* tests: test/osd-scrub-repair.sh: Use test case specific object names to help… (`pr#11449 <http://github.com/ceph/ceph/pull/11449>`_, David Zafman)
-* tests: test/store_test: fix errors on the whole test suite run caused by the… (`pr#11427 <http://github.com/ceph/ceph/pull/11427>`_, Igor Fedotov)
-* tests: test_subman.sh: Don't use --tmpdir (`pr#11384 <http://github.com/ceph/ceph/pull/11384>`_, Willem Jan Withagen)
-* tests: test: test-erasure-eio.sh fix recovery testing and enable it (`pr#12170 <http://github.com/ceph/ceph/pull/12170>`_, David Zafman)
-* tests: The default changed to disallow pool delete as of #11665; the tests assume it's allowed. (`pr#11897 <http://github.com/ceph/ceph/pull/11897>`_, Sage Weil)
-* tests: Turn off tests again due to Jenkins failures (`pr#12217 <http://github.com/ceph/ceph/pull/12217>`_, David Zafman)
-* tests: unittest_throttle avoid ASSERT_DEATH (`issue#18036 <http://tracker.ceph.com/issues/18036>`_, `pr#12393 <http://github.com/ceph/ceph/pull/12393>`_, Loic Dachary)
-* tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci (`issue#18440 <http://tracker.ceph.com/issues/18440>`_, `pr#12823 <http://github.com/ceph/ceph/pull/12823>`_, Nathan Cutler)
-* tests: use shorter directories for tests (`issue#16014 <http://tracker.ceph.com/issues/16014>`_, `pr#12046 <http://github.com/ceph/ceph/pull/12046>`_, Loic Dachary)
-* tests: vstart.sh: fix bashism in the script (`pr#11889 <http://github.com/ceph/ceph/pull/11889>`_, Mykola Golub)
-* tests: workunits/ceph-helpers.sh: FreeBSD returns a different errorstring. (`pr#12005 <http://github.com/ceph/ceph/pull/12005>`_, Willem Jan Withagen)
-* tools: Adding ceph-lazy tool (`pr#11055 <http://github.com/ceph/ceph/pull/11055>`_, gcharot)
-* tools: ceph-create-keys should not try forever to do things (`issue#17753 <http://tracker.ceph.com/issues/17753>`_, `issue#12649 <http://tracker.ceph.com/issues/12649>`_, `issue#16255 <http://tracker.ceph.com/issues/16255>`_, `pr#11749 <http://github.com/ceph/ceph/pull/11749>`_, Alfredo Deza)
-* tools: ceph_detect_init: add support for Alpine (`pr#8316 <http://github.com/ceph/ceph/pull/8316>`_, John Coyle)
-* tools: ceph-disk: fix flake8 errors (`issue#17898 <http://tracker.ceph.com/issues/17898>`_, `pr#11973 <http://github.com/ceph/ceph/pull/11973>`_, Ken Dreyer)
-* tools: ceph-disk: prevent unnecessary tracebacks from subprocess.check_call (`issue#16125 <http://tracker.ceph.com/issues/16125>`_, `pr#12414 <http://github.com/ceph/ceph/pull/12414>`_, Alfredo Deza)
-* tools: ceph-post-file: single command to upload a file to cephdrop (`pr#505 <http://github.com/ceph/ceph/pull/505>`_, Dan Mick, Travis Rhoden)
-* tools: cleanup phase of cephfs-data-scan (`pr#12337 <http://github.com/ceph/ceph/pull/12337>`_, Vishal Kanaujia)
-* tools: osdmaptool: additional tests (`pr#1196 <http://github.com/ceph/ceph/pull/1196>`_, Sage Weil)
-* tools: osdmaptool: fix divide by zero error (`pr#12561 <http://github.com/ceph/ceph/pull/12561>`_, Yunchuan Wen)
-* tools: rados: fix segfaults when run without --pool (`issue#17684 <http://tracker.ceph.com/issues/17684>`_, `pr#11633 <http://github.com/ceph/ceph/pull/11633>`_, David Disseldorp)
-* tools: rados: optionally support reading omap key from file (`issue#18123 <http://tracker.ceph.com/issues/18123>`_, `pr#12286 <http://github.com/ceph/ceph/pull/12286>`_, Jason Dillaman)
-* tools: script/run-coverity: update (`pr#12162 <http://github.com/ceph/ceph/pull/12162>`_, Sage Weil)
-* tools: script/sepia_bt.sh: a script to prepare for debugging on teuthology@sepia (`pr#12012 <http://github.com/ceph/ceph/pull/12012>`_, Kefu Chai)
-* tools: src/vstart.sh: Only execute btrfs if it is available (`pr#11683 <http://github.com/ceph/ceph/pull/11683>`_, Willem Jan Withagen)
-* tools: tools/ceph-monstore-update-crush.sh: FreeBSD getopt is not compatible… (`pr#11525 <http://github.com/ceph/ceph/pull/11525>`_, Willem Jan Withagen)
-
-
-
-v11.0.2 Kraken
-==============
-
-This development checkpoint release includes a lot of changes and improvements
-to Kraken. This is the first release introducing ceph-mgr, a new daemon which
-provides additional monitoring & interfaces to external monitoring/management
-systems. There are also many improvements to bluestore, RGW introduces sync
-modules, copy part for multipart uploads and metadata search via elastic search
-as a tech preview.
-
-Notable Changes
----------------
-
-* bluestore: os/bluestore: misc fixes (`pr#10953 <http://github.com/ceph/ceph/pull/10953>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: do not op_file_update deleted files (`pr#10686 <http://github.com/ceph/ceph/pull/10686>`_, Sage Weil)
-* bluestore: bluestore/BitAllocator: Fix deadlock with musl libc (`pr#10634 <http://github.com/ceph/ceph/pull/10634>`_, John Coyle)
-* bluestore: bluestore/BlueFS: revert direct IO for WRITER_WAL (`pr#11059 <http://github.com/ceph/ceph/pull/11059>`_, Mark Nelson)
-* bluestore: ceph-disk: support creating block.db and block.wal with customized size for bluestore (`pr#10135 <http://github.com/ceph/ceph/pull/10135>`_, Zhi Zhang)
-* bluestore: compressor/zlib: switch to raw deflate (`pr#11122 <http://github.com/ceph/ceph/pull/11122>`_, Piotr Dałek)
-* bluestore: do not use freelist to track bluefs_extents (`pr#10698 <http://github.com/ceph/ceph/pull/10698>`_, Sage Weil)
-* bluestore: initialize csum_order properly (`pr#10728 <http://github.com/ceph/ceph/pull/10728>`_, xie xingguo)
-* bluestore: kv/rocksdb: dump transactions on error (`pr#11042 <http://github.com/ceph/ceph/pull/11042>`_, Somnath Roy)
-* bluestore: kv: In memory keyvalue db implementation (`pr#9933 <http://github.com/ceph/ceph/pull/9933>`_, Ramesh Chander)
-* bluestore: os/bluestore/BitAllocator: batch is_allocated bit checks (`pr#10704 <http://github.com/ceph/ceph/pull/10704>`_, Ramesh Chander)
-* bluestore: os/bluestore/BlueFS: For logs of rocksdb & bluefs only use directio. (`pr#11012 <http://github.com/ceph/ceph/pull/11012>`_, Jianpeng Ma)
-* bluestore: os/bluestore/BlueFS: async compaction (`pr#10717 <http://github.com/ceph/ceph/pull/10717>`_, Varada Kari, Sage Weil)
-* bluestore: os/bluestore/BlueFS: do not hold internal lock while waiting for IO (`pr#9898 <http://github.com/ceph/ceph/pull/9898>`_, Varada Kari, Sage Weil)
-* bluestore: os/bluestore/BlueFS: do not start racing async compaction (`pr#11010 <http://github.com/ceph/ceph/pull/11010>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: don't inc l_bluefs_files_written_wal if overwrite. (`pr#10143 <http://github.com/ceph/ceph/pull/10143>`_, Jianpeng Ma)
-* bluestore: os/bluestore/BlueFS: factor unflushed log into runway calculation (`pr#10966 <http://github.com/ceph/ceph/pull/10966>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: fix async compaction logging bug (`pr#10964 <http://github.com/ceph/ceph/pull/10964>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: log dirty files at sync time (`pr#11108 <http://github.com/ceph/ceph/pull/11108>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: only extend extent on same bdev (`pr#11023 <http://github.com/ceph/ceph/pull/11023>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: prevent concurrent async compaction (`pr#11095 <http://github.com/ceph/ceph/pull/11095>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: release completed aios (`pr#11268 <http://github.com/ceph/ceph/pull/11268>`_, Sage Weil)
-* bluestore: os/bluestore/BlueFS: use StupidAllocator; fix async compaction bug (`pr#11087 <http://github.com/ceph/ceph/pull/11087>`_, Sage Weil)
-* bluestore: os/bluestore/bluefs: add file refs check (`pr#10863 <http://github.com/ceph/ceph/pull/10863>`_, xie xingguo)
-* bluestore: os/bluestore/bluefs: use map to track dirty files (`pr#10923 <http://github.com/ceph/ceph/pull/10923>`_, xie xingguo)
-* bluestore: os/bluestore/bluefs_types: fix extent operator<< (`pr#10685 <http://github.com/ceph/ceph/pull/10685>`_, Sage Weil)
-* bluestore: os/bluestore/bluestore_types: uint64_t for ref_map (`pr#11267 <http://github.com/ceph/ceph/pull/11267>`_, Sage Weil)
-* bluestore: os/bluestore: Hint based allocation in bitmap Allocator (`pr#10978 <http://github.com/ceph/ceph/pull/10978>`_, Ramesh Chander)
-* bluestore: os/bluestore: Remove bit alloc Woverloaded-virtual warnings (`pr#10082 <http://github.com/ceph/ceph/pull/10082>`_, Ramesh Chander)
-* bluestore: os/bluestore: a few cleanups (`pr#11192 <http://github.com/ceph/ceph/pull/11192>`_, xie xingguo)
-* bluestore: os/bluestore: a few fixes about the global csum setting (`pr#11195 <http://github.com/ceph/ceph/pull/11195>`_, xie xingguo)
-* bluestore: os/bluestore: add assert to compress_extent_map (`pr#11240 <http://github.com/ceph/ceph/pull/11240>`_, Sage Weil)
-* bluestore: os/bluestore: add cache-related stats (`pr#10961 <http://github.com/ceph/ceph/pull/10961>`_, xie xingguo)
-* bluestore: os/bluestore: add checks and kill unreachable code (`pr#11077 <http://github.com/ceph/ceph/pull/11077>`_, xie xingguo)
-* bluestore: os/bluestore: add error injection (`pr#11151 <http://github.com/ceph/ceph/pull/11151>`_, Sage Weil)
-* bluestore: os/bluestore: add max blob size; fix compressed min blob size logic (`pr#11239 <http://github.com/ceph/ceph/pull/11239>`_, Sage Weil)
-* bluestore: os/bluestore: add multiple finishers to bluestore (`pr#10780 <http://github.com/ceph/ceph/pull/10780>`_, Ilsoo Byun)
-* bluestore: os/bluestore: add perf counters for compression effectiveness and space utilization measurements (`pr#10449 <http://github.com/ceph/ceph/pull/10449>`_, Igor Fedotov)
-* bluestore: os/bluestore: apply "small encoding" for onode_t::extents map (`pr#10018 <http://github.com/ceph/ceph/pull/10018>`_, Igor Fedotov)
-* bluestore: os/bluestore: avoid blob_t reencode when unchanged (`pr#10768 <http://github.com/ceph/ceph/pull/10768>`_, Sage Weil)
-* bluestore: os/bluestore: binary search specified shard (`pr#11245 <http://github.com/ceph/ceph/pull/11245>`_, xie xingguo)
-* bluestore: os/bluestore: change algorithm of compression header from string to int (`pr#10137 <http://github.com/ceph/ceph/pull/10137>`_, xie xingguo)
-* bluestore: os/bluestore: compaction fixes (`pr#11279 <http://github.com/ceph/ceph/pull/11279>`_, Sage Weil)
-* bluestore: os/bluestore: drop redundant call of get_blob (`pr#11275 <http://github.com/ceph/ceph/pull/11275>`_, xie xingguo)
-* bluestore: os/bluestore: drop unreferenced spanning blobs (`pr#11212 <http://github.com/ceph/ceph/pull/11212>`_, Sage Weil)
-* bluestore: os/bluestore: fix a few leaks (`pr#11068 <http://github.com/ceph/ceph/pull/11068>`_, Sage Weil)
-* bluestore: os/bluestore: fix a few memory utilization leaks and wasters (`pr#11011 <http://github.com/ceph/ceph/pull/11011>`_, Sage Weil)
-* bluestore: os/bluestore: fix crash in decode_some() (`pr#11312 <http://github.com/ceph/ceph/pull/11312>`_, Sage Weil)
-* bluestore: os/bluestore: fix decoding hash of bnode (`pr#10773 <http://github.com/ceph/ceph/pull/10773>`_, xie xingguo)
-* bluestore: os/bluestore: fix fsck() won't catch stray shard sometimes (`pr#11219 <http://github.com/ceph/ceph/pull/11219>`_, xie xingguo)
-* bluestore: os/bluestore: fix gc when blob extends past eof (`pr#11282 <http://github.com/ceph/ceph/pull/11282>`_, Sage Weil)
-* bluestore: os/bluestore: fix improper local var variable in collection_list meth… (`pr#10680 <http://github.com/ceph/ceph/pull/10680>`_, Igor Fedotov)
-* bluestore: os/bluestore: fix incorrect pool decoding of bnode (`pr#10117 <http://github.com/ceph/ceph/pull/10117>`_, xie xingguo)
-* bluestore: os/bluestore: fix leak of result-checking of _fsck_check_extents (`pr#11040 <http://github.com/ceph/ceph/pull/11040>`_, xie xingguo)
-* bluestore: os/bluestore: fix leaks in our use of rocksdb (`pr#11250 <http://github.com/ceph/ceph/pull/11250>`_, Sage Weil)
-* bluestore: os/bluestore: fix memory leak during bit_alloc testing (`pr#9935 <http://github.com/ceph/ceph/pull/9935>`_, xie xingguo)
-* bluestore: os/bluestore: fix offset bug in _do_write_small. (`pr#11030 <http://github.com/ceph/ceph/pull/11030>`_, amoxic)
-* bluestore: os/bluestore: fix onode cache addition race (`pr#11300 <http://github.com/ceph/ceph/pull/11300>`_, Sage Weil)
-* bluestore: os/bluestore: fix potential access violation (`pr#10362 <http://github.com/ceph/ceph/pull/10362>`_, xie xingguo)
-* bluestore: os/bluestore: fix potential access violation during rename (`pr#11033 <http://github.com/ceph/ceph/pull/11033>`_, xie xingguo)
-* bluestore: os/bluestore: fix shard_info::dump() (`pr#11061 <http://github.com/ceph/ceph/pull/11061>`_, xie xingguo)
-* bluestore: os/bluestore: fix spanning blob leak from ~ExtentMap (`pr#11223 <http://github.com/ceph/ceph/pull/11223>`_, Somnath Roy)
-* bluestore: os/bluestore: fix statfs tests (`pr#10910 <http://github.com/ceph/ceph/pull/10910>`_, Sage Weil)
-* bluestore: os/bluestore: fix when block device is not a multiple of the block size (`pr#10844 <http://github.com/ceph/ceph/pull/10844>`_, Sage Weil)
-* bluestore: os/bluestore: fix write_big counter and some more cleanups (`pr#11344 <http://github.com/ceph/ceph/pull/11344>`_, xie xingguo)
-* bluestore: os/bluestore: fix/improve csum error message (`pr#10938 <http://github.com/ceph/ceph/pull/10938>`_, Sage Weil)
-* bluestore: os/bluestore: garbage collect partially overlapped blobs (`pr#11232 <http://github.com/ceph/ceph/pull/11232>`_, Roushan Ali)
-* bluestore: os/bluestore: get rid off "isa-l" type in ZLibCompressor ctor (`pr#10931 <http://github.com/ceph/ceph/pull/10931>`_, xie xingguo)
-* bluestore: os/bluestore: gifting bluefs more carefully (`pr#10950 <http://github.com/ceph/ceph/pull/10950>`_, xie xingguo)
-* bluestore: os/bluestore: honour allow-eio flag; use global compressor if possible (`pr#10970 <http://github.com/ceph/ceph/pull/10970>`_, xie xingguo)
-* bluestore: os/bluestore: improve required compression threshold (`pr#10080 <http://github.com/ceph/ceph/pull/10080>`_, xie xingguo)
-* bluestore: os/bluestore: include bluefs space in statfs result (`pr#10795 <http://github.com/ceph/ceph/pull/10795>`_, Sage Weil)
-* bluestore: os/bluestore: introduce power 2 macros for block alignment and rounding (`pr#10128 <http://github.com/ceph/ceph/pull/10128>`_, xie xingguo)
-* bluestore: os/bluestore: make assert conditional with macro for allocator (`pr#11014 <http://github.com/ceph/ceph/pull/11014>`_, Ramesh Chander)
-* bluestore: os/bluestore: make cache settings process-wide (`pr#11295 <http://github.com/ceph/ceph/pull/11295>`_, Sage Weil)
-* bluestore: os/bluestore: make clone_range copy-on-write (`pr#11106 <http://github.com/ceph/ceph/pull/11106>`_, Sage Weil)
-* bluestore: os/bluestore: make onode keys more efficient (and sort correctly) (`pr#11009 <http://github.com/ceph/ceph/pull/11009>`_, xie xingguo, Sage Weil)
-* bluestore: os/bluestore: make trim() of 2Q cache more fine-grained (`pr#9946 <http://github.com/ceph/ceph/pull/9946>`_, xie xingguo)
-* bluestore: os/bluestore: make zone/span size of bitmap-allocator configurable (`pr#10040 <http://github.com/ceph/ceph/pull/10040>`_, xie xingguo)
-* bluestore: os/bluestore: misc cleanup and test fixes (`pr#11346 <http://github.com/ceph/ceph/pull/11346>`_, Igor Fedotov)
-* bluestore: os/bluestore: misc cleanups (`pr#10201 <http://github.com/ceph/ceph/pull/10201>`_, xie xingguo)
-* bluestore: os/bluestore: misc cleanups (`pr#11197 <http://github.com/ceph/ceph/pull/11197>`_, Haomai Wang)
-* bluestore: os/bluestore: misc fixes (`pr#9999 <http://github.com/ceph/ceph/pull/9999>`_, xie xingguo)
-* bluestore: os/bluestore: misc fixes (`pr#10771 <http://github.com/ceph/ceph/pull/10771>`_, xie xingguo)
-* bluestore: os/bluestore: misc. fixes (`pr#11129 <http://github.com/ceph/ceph/pull/11129>`_, xie xingguo)
-* bluestore: os/bluestore: more cleanups (`pr#11235 <http://github.com/ceph/ceph/pull/11235>`_, xie xingguo)
-* bluestore: os/bluestore: more cleanups and fixes (`pr#11210 <http://github.com/ceph/ceph/pull/11210>`_, xie xingguo)
-* bluestore: os/bluestore: narrow condition of sanity check when get_object_key() (`pr#11149 <http://github.com/ceph/ceph/pull/11149>`_, xie xingguo)
-* bluestore: os/bluestore: narrow lock scope for cache trim() (`pr#10410 <http://github.com/ceph/ceph/pull/10410>`_, xie xingguo)
-* bluestore: os/bluestore: optimize intrusive sets for size. (`pr#11319 <http://github.com/ceph/ceph/pull/11319>`_, Mark Nelson)
-* bluestore: os/bluestore: pack a few more in-memory types (`pr#11328 <http://github.com/ceph/ceph/pull/11328>`_, Sage Weil)
-* bluestore: os/bluestore: precondition rocksdb/bluefs during mkfs (`pr#10814 <http://github.com/ceph/ceph/pull/10814>`_, Sage Weil)
-* bluestore: os/bluestore: prevent extent merging across shard boundaries (`pr#11216 <http://github.com/ceph/ceph/pull/11216>`_, Sage Weil)
-* bluestore: os/bluestore: print bluefs_extents in hex (`pr#10689 <http://github.com/ceph/ceph/pull/10689>`_, Sage Weil)
-* bluestore: os/bluestore: proper handling for csum enable/disable settings (`pr#10431 <http://github.com/ceph/ceph/pull/10431>`_, Igor Fedotov)
-* bluestore: os/bluestore: refactor dirty blob tracking along with some related fixes (`pr#10215 <http://github.com/ceph/ceph/pull/10215>`_, Igor Fedotov)
-* bluestore: os/bluestore: remove cmake warning from extent alloc functions (`issue#16766 <http://tracker.ceph.com/issues/16766>`_, `pr#10492 <http://github.com/ceph/ceph/pull/10492>`_, Ramesh Chander)
-* bluestore: os/bluestore: remove deferred_csum machinery (`pr#11243 <http://github.com/ceph/ceph/pull/11243>`_, Sage Weil)
-* bluestore: os/bluestore: remove some copy-pastes (`pr#11017 <http://github.com/ceph/ceph/pull/11017>`_, Igor Fedotov)
-* bluestore: os/bluestore: replace store with logger in Cache (`pr#10969 <http://github.com/ceph/ceph/pull/10969>`_, xie xingguo)
-* bluestore: os/bluestore: shard extent map (`pr#10963 <http://github.com/ceph/ceph/pull/10963>`_, Sage Weil)
-* bluestore: os/bluestore: simplify LRUCache::trim() (`pr#10109 <http://github.com/ceph/ceph/pull/10109>`_, xie xingguo)
-* bluestore: os/bluestore: simplify calculation of collection key range (`pr#11166 <http://github.com/ceph/ceph/pull/11166>`_, xie xingguo)
-* bluestore: os/bluestore: sloppy reshard boundaries to avoid spanning blobs (`pr#11263 <http://github.com/ceph/ceph/pull/11263>`_, Sage Weil)
-* bluestore: os/bluestore: still more cleanups (`pr#11274 <http://github.com/ceph/ceph/pull/11274>`_, xie xingguo)
-* bluestore: os/bluestore: switch spanning_blob_map to std::map (`pr#11336 <http://github.com/ceph/ceph/pull/11336>`_, Sage Weil)
-* bluestore: os/bluestore: trim cache on reads (`pr#10095 <http://github.com/ceph/ceph/pull/10095>`_, Sage Weil)
-* bluestore: os/bluestore: try to split blobs instead of spanning them (`pr#11264 <http://github.com/ceph/ceph/pull/11264>`_, Sage Weil)
-* bluestore: os/bluestore: upgrade compression settings to atomics (`pr#11244 <http://github.com/ceph/ceph/pull/11244>`_, xie xingguo)
-* bluestore: os/bluestore: use small encoding for bluefs extent and fnode (`pr#10375 <http://github.com/ceph/ceph/pull/10375>`_, xie xingguo)
-* bluestore: os/bluestore: yet another statfs test fix (`pr#10926 <http://github.com/ceph/ceph/pull/10926>`_, Igor Fedotov)
-* bluestore: os/bluestore:Fix size calculation in bitallocator (`pr#10377 <http://github.com/ceph/ceph/pull/10377>`_, Ramesh Chander)
-* bluestore: os/bluestore: fix error handling of posix_fallocate() (`pr#10277 <http://github.com/ceph/ceph/pull/10277>`_, xie xingguo)
-* bluestore: os/bluestore: use BE for gifting and reclaiming from bluefs (`pr#10294 <http://github.com/ceph/ceph/pull/10294>`_, xie xingguo)
-* bluestore: os/bluestore: get rid off blob's ref_map for non-shared objects (`pr#9988 <http://github.com/ceph/ceph/pull/9988>`_, Igor Fedotov)
-* bluestore: kv/MemDB: fix wrong output target and add sanity checks (`pr#10358 <http://github.com/ceph/ceph/pull/10358>`_, xie xingguo)
-* bluestore: os/bluestore: add a boundary check of cache read (`pr#10349 <http://github.com/ceph/ceph/pull/10349>`_, xie xingguo)
-* bluestore: os/bluestore: fix bitmap allocating failure if max_alloc_size is 0 (`pr#10379 <http://github.com/ceph/ceph/pull/10379>`_, xie xingguo)
-* bluestore: os/bluestore: misc fixes (`pr#10327 <http://github.com/ceph/ceph/pull/10327>`_, xie xingguo)
-* bluestore: kv/MemDB: misc fixes and cleanups (`pr#10295 <http://github.com/ceph/ceph/pull/10295>`_, xie xingguo)
-* bluestore: rocksdb: pull up to master (4.12 + a few patches) (`pr#11069 <http://github.com/ceph/ceph/pull/11069>`_, Sage Weil)
-* bluestore: test/store_test: extend Bluestore compression test to verify compress… (`pr#11080 <http://github.com/ceph/ceph/pull/11080>`_, Igor Fedotov)
-* bluestore: test/store_test: fix statfs results check to consider SSD min_alloc_size (`pr#11096 <http://github.com/ceph/ceph/pull/11096>`_, Igor Fedotov)
-* bluestore: unittest_bluestore_types: a few more types for sizeof (`pr#11323 <http://github.com/ceph/ceph/pull/11323>`_, Sage Weil)
-* bluestore: ceph_test_objectstore: test clone_range and fix a few bugs (`pr#11103 <http://github.com/ceph/ceph/pull/11103>`_, Sage Weil)
-* bluestore: kv: fix some bugs in memdb (`pr#10550 <http://github.com/ceph/ceph/pull/10550>`_, Haodong Tang)
-* bluestore: os/bluestore/BlueFS: disable buffered io (`pr#10766 <http://github.com/ceph/ceph/pull/10766>`_, Sage Weil)
-* build/ops,bluestore: test/objectstore/CMakeLists.txt: fix libaio conditional (`pr#11008 <http://github.com/ceph/ceph/pull/11008>`_, Sage Weil)
-* build/ops,cephfs: client: added def for ACCESSPERMS when undefined (`pr#9835 <http://github.com/ceph/ceph/pull/9835>`_, John Coyle)
-* build/ops,cephfs: deb: merge ceph-fs-common into ceph-common (`issue#16808 <http://tracker.ceph.com/issues/16808>`_, `pr#10433 <http://github.com/ceph/ceph/pull/10433>`_, Nathan Cutler)
-* build/ops,cephfs: man/Makefile-client.am: drop legacy cephfs tool (`pr#10444 <http://github.com/ceph/ceph/pull/10444>`_, Nathan Cutler)
-* build/ops,cephfs: test: break out librados-using cephfs test (`issue#16556 <http://tracker.ceph.com/issues/16556>`_, `pr#10452 <http://github.com/ceph/ceph/pull/10452>`_, John Spray)
-* build/ops,common: common/dns_resolve: use ns_name_uncompress instead of ns_name_ntop (`pr#9755 <http://github.com/ceph/ceph/pull/9755>`_, John Coyle)
-* build/ops,common: msg/async/net_handler.cc: make it more compatible with BSDs (`pr#10029 <http://github.com/ceph/ceph/pull/10029>`_, Willem Jan Withagen)
-* build/ops,pybind: Include Python 3 bindings into the cmake build and make packages for them (`pr#10208 <http://github.com/ceph/ceph/pull/10208>`_, Oleh Prypin)
-* build/ops,rbd: systemd: add install section to rbdmap.service file (`pr#10942 <http://github.com/ceph/ceph/pull/10942>`_, Jelle vd Kooij)
-* build/ops,rbd: test: fix rbd-mirror workunit test cases for cmake (`pr#10076 <http://github.com/ceph/ceph/pull/10076>`_, Jason Dillaman)
-* build/ops,rgw: rgw-ldap: add ldap lib to rgw lib deps based on build config (`pr#9852 <http://github.com/ceph/ceph/pull/9852>`_, John Coyle)
-* build/ops: .gitignore: Add .pyc files globally (`pr#11076 <http://github.com/ceph/ceph/pull/11076>`_, Brad Hubbard)
-* build/ops: Allow compressor build without YASM (`pr#10937 <http://github.com/ceph/ceph/pull/10937>`_, Daniel Gryniewicz)
-* build/ops: CMake - stop pip checking for updates (`pr#10161 <http://github.com/ceph/ceph/pull/10161>`_, Daniel Gryniewicz)
-* build/ops: CMakeList.txt: link ceph_objectstore_tool against fuse only if WITH_FUSE (`pr#10149 <http://github.com/ceph/ceph/pull/10149>`_, Willem Jan Withagen)
-* build/ops: Cmake: fix using CMAKE_DL_LIBS instead of dl (`pr#10317 <http://github.com/ceph/ceph/pull/10317>`_, Willem Jan Withagen)
-* build/ops: CmakeLists.txt: use LIB_RESOLV instead of resolv. (`pr#10972 <http://github.com/ceph/ceph/pull/10972>`_, Willem Jan Withagen)
-* build/ops: Enable builds without ceph-test subpackage (`issue#16776 <http://tracker.ceph.com/issues/16776>`_, `pr#10872 <http://github.com/ceph/ceph/pull/10872>`_, Ricardo Dias)
-* build/ops: Fix libatomic_ops-devel in SUSE and specfile cleanup (`issue#16645 <http://tracker.ceph.com/issues/16645>`_, `pr#10363 <http://github.com/ceph/ceph/pull/10363>`_, Nathan Cutler)
-* build/ops: FreeBSD: Define CLOCK_REALTIME_COARSE in compat.h (`pr#10506 <http://github.com/ceph/ceph/pull/10506>`_, Willem Jan Withagen)
-* build/ops: Gentoo support for ceph-disk / ceph-detect-init; pip speedup (`pr#8317 <http://github.com/ceph/ceph/pull/8317>`_, Robin H. Johnson)
-* build/ops: LTTng-UST disabled for openSUSE (`issue#16937 <http://tracker.ceph.com/issues/16937>`_, `pr#10592 <http://github.com/ceph/ceph/pull/10592>`_, Michel Normand)
-* build/ops: Port ceph-brag to Python 3 (+ small fixes) (`pr#10064 <http://github.com/ceph/ceph/pull/10064>`_, Oleh Prypin)
-* build/ops: Removes remaining reference to WITH_MDS (`pr#10286 <http://github.com/ceph/ceph/pull/10286>`_, J. Eric Ivancich)
-* build/ops: Stop hiding errors from run-tox.sh (`issue#17267 <http://tracker.ceph.com/issues/17267>`_, `pr#11071 <http://github.com/ceph/ceph/pull/11071>`_, Dan Mick)
-* build/ops: Wip kill warnings (`pr#10881 <http://github.com/ceph/ceph/pull/10881>`_, Kefu Chai)
-* build/ops: autogen: Fix rocksdb error when make dist (`pr#10988 <http://github.com/ceph/ceph/pull/10988>`_, tianqing)
-* build/ops: autotools: remove a few other remaining traces (`pr#11019 <http://github.com/ceph/ceph/pull/11019>`_, Sage Weil)
-* build/ops: build scripts: Enable dnf for Fedora >= 22 (`pr#11105 <http://github.com/ceph/ceph/pull/11105>`_, Brad Hubbard)
-* build/ops: build: drop dryrun of autogen.sh from run-cmake-check.sh script (`pr#11013 <http://github.com/ceph/ceph/pull/11013>`_, xie xingguo)
-* build/ops: ceph-disk tests: Let missing python interpreters be non-fatal (`pr#11072 <http://github.com/ceph/ceph/pull/11072>`_, Dan Mick)
-* build/ops: ceph-disk: Compatibility fixes for Python 3 (`pr#9936 <http://github.com/ceph/ceph/pull/9936>`_, Anirudha Bose)
-* build/ops: ceph-disk: do not activate device that is not ready (`issue#15990 <http://tracker.ceph.com/issues/15990>`_, `pr#9943 <http://github.com/ceph/ceph/pull/9943>`_, Boris Ranto)
-* build/ops: ceph-osd-prestart.sh: check existence of OSD data directory (`issue#17091 <http://tracker.ceph.com/issues/17091>`_, `pr#10809 <http://github.com/ceph/ceph/pull/10809>`_, Nathan Cutler)
-* build/ops: ceph-osd-prestart.sh: drop Upstart-specific code (`issue#15984 <http://tracker.ceph.com/issues/15984>`_, `pr#9667 <http://github.com/ceph/ceph/pull/9667>`_, Nathan Cutler)
-* build/ops: ceph-post-file replace DSA with RSA ssh key (`issue#14267 <http://tracker.ceph.com/issues/14267>`_, `pr#10800 <http://github.com/ceph/ceph/pull/10800>`_, David Galloway)
-* build/ops: ceph.spec.in: don't try to package __pycache__ for SUSE (`issue#17106 <http://tracker.ceph.com/issues/17106>`_, `pr#10805 <http://github.com/ceph/ceph/pull/10805>`_, Tim Serong)
-* build/ops: ceph.spec.in: fix rpm package building error (`pr#10115 <http://github.com/ceph/ceph/pull/10115>`_, runsisi)
-* build/ops: changes for Clang and yasm (`pr#10417 <http://github.com/ceph/ceph/pull/10417>`_, Willem Jan Withagen)
-* build/ops: cmake changes (`pr#10351 <http://github.com/ceph/ceph/pull/10351>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10059 <http://github.com/ceph/ceph/pull/10059>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10279 <http://github.com/ceph/ceph/pull/10279>`_, Kefu Chai)
-* build/ops: cmake changes (`issue#16804 <http://tracker.ceph.com/issues/16804>`_, `pr#10391 <http://github.com/ceph/ceph/pull/10391>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10361 <http://github.com/ceph/ceph/pull/10361>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10112 <http://github.com/ceph/ceph/pull/10112>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10489 <http://github.com/ceph/ceph/pull/10489>`_, Kefu Chai)
-* build/ops: cmake changes (`pr#10283 <http://github.com/ceph/ceph/pull/10283>`_, Kefu Chai)
-* build/ops: cmake changes (`issue#16504 <http://tracker.ceph.com/issues/16504>`_, `pr#9995 <http://github.com/ceph/ceph/pull/9995>`_, Kefu Chai, Sage Weil, Dan Mick)
-* build/ops: cmake changes (`pr#9975 <http://github.com/ceph/ceph/pull/9975>`_, Kefu Chai)
-* build/ops: cmake changes related to LTTng-UST (`pr#10917 <http://github.com/ceph/ceph/pull/10917>`_, Kefu Chai)
-* build/ops: common/compressor: add libcommon as a dependency for zlib and snappy p… (`pr#11083 <http://github.com/ceph/ceph/pull/11083>`_, Igor Fedotov)
-* build/ops: compat: add abstractions for non portable pthread name funcs (`pr#9763 <http://github.com/ceph/ceph/pull/9763>`_, John Coyle)
-* build/ops: configure.ac: Use uname instead of arch. (`pr#9766 <http://github.com/ceph/ceph/pull/9766>`_, John Coyle)
-* build/ops: configure.ac: add _LIBS variables for boost_system and boost_iostreams (`pr#9848 <http://github.com/ceph/ceph/pull/9848>`_, John Coyle)
-* build/ops: configure.ac: fix res_query detection (`pr#9820 <http://github.com/ceph/ceph/pull/9820>`_, John Coyle)
-* build/ops: debian and cmake cleanups (`pr#10788 <http://github.com/ceph/ceph/pull/10788>`_, Kefu Chai)
-* build/ops: debian: bump compat to 9 (`issue#16744 <http://tracker.ceph.com/issues/16744>`_, `pr#10366 <http://github.com/ceph/ceph/pull/10366>`_, Kefu Chai)
-* build/ops: debian: python related changes (`pr#10322 <http://github.com/ceph/ceph/pull/10322>`_, Kefu Chai)
-* build/ops: debian: replace SysV rbdmap with systemd service (`pr#10435 <http://github.com/ceph/ceph/pull/10435>`_, Ken Dreyer)
-* build/ops: debian: set libexec dir to correct value as autotools did (`pr#10096 <http://github.com/ceph/ceph/pull/10096>`_, Daniel Gryniewicz)
-* build/ops: do_cmake.sh: set up initial plugin dir (`pr#10067 <http://github.com/ceph/ceph/pull/10067>`_, Sage Weil)
-* build/ops: fix /etc/os-release parsing in install-deps.sh (`pr#10981 <http://github.com/ceph/ceph/pull/10981>`_, Nathan Cutler)
-* build/ops: fix the rpm build for centos (`pr#10289 <http://github.com/ceph/ceph/pull/10289>`_, Oleh Prypin, Josh Durgin)
-* build/ops: force Python 3 packages to build in SUSE (`issue#17106 <http://tracker.ceph.com/issues/17106>`_, `pr#10894 <http://github.com/ceph/ceph/pull/10894>`_, Dominique Leuenberger, Nathan Cutler)
-* build/ops: install-deps.sh based on /etc/os-release (`issue#16522 <http://tracker.ceph.com/issues/16522>`_, `pr#10017 <http://github.com/ceph/ceph/pull/10017>`_, Jan Fajerski)
-* build/ops: install-deps: exit non-zero when we cannot match distro (`pr#10941 <http://github.com/ceph/ceph/pull/10941>`_, Gregory Meno)
-* build/ops: isa-l: add isa-l library as a submodule (`pr#10066 <http://github.com/ceph/ceph/pull/10066>`_, Alyona Kiseleva)
-* build/ops: jerasure: include generic objects in neon jerasure lib (like sse3/4) (`pr#10879 <http://github.com/ceph/ceph/pull/10879>`_, Dan Mick)
-* build/ops: logrotate: Run as root/ceph (`pr#10587 <http://github.com/ceph/ceph/pull/10587>`_, Boris Ranto)
-* build/ops: lttng: build the tracepoint provider lib from .c files in repo (`pr#11196 <http://github.com/ceph/ceph/pull/11196>`_, Kefu Chai)
-* build/ops: make-dist: generate ceph.spec (`issue#16501 <http://tracker.ceph.com/issues/16501>`_, `pr#9986 <http://github.com/ceph/ceph/pull/9986>`_, Sage Weil)
-* build/ops: make-dist: set rpm_release correctly for release builds (`pr#11334 <http://github.com/ceph/ceph/pull/11334>`_, Dan Mick)
-* build/ops: make-srpm.sh: A simple script to make the srpm for ceph. (`pr#11064 <http://github.com/ceph/ceph/pull/11064>`_, Ira Cooper)
-* build/ops: makefile: change librgw_file_* as check_PROGRAMS (`issue#16646 <http://tracker.ceph.com/issues/16646>`_, `pr#10229 <http://github.com/ceph/ceph/pull/10229>`_, Brad Hubbard)
-* build/ops: remove autotools (`pr#11007 <http://github.com/ceph/ceph/pull/11007>`_, Sage Weil)
-* build/ops: rpm: Do not start targets on update (`pr#9968 <http://github.com/ceph/ceph/pull/9968>`_, Nathan Cutler, Boris Ranto)
-* build/ops: rpm: ExclusiveArch for suse_version (`issue#16936 <http://tracker.ceph.com/issues/16936>`_, `pr#10594 <http://github.com/ceph/ceph/pull/10594>`_, Michel Normand)
-* build/ops: rpm: Fix creation of mount.ceph symbolic link for SUSE distros (`pr#10353 <http://github.com/ceph/ceph/pull/10353>`_, Ricardo Dias)
-* build/ops: rpm: add udev BuildRequires to provide /usr/lib/udev directory (`issue#16949 <http://tracker.ceph.com/issues/16949>`_, `pr#10608 <http://github.com/ceph/ceph/pull/10608>`_, Nathan Cutler)
-* build/ops: rpm: build rpm with cmake (`pr#10016 <http://github.com/ceph/ceph/pull/10016>`_, Kefu Chai)
-* build/ops: rpm: drop obsolete libs-compat and python-ceph-compat metapackages (`issue#16353 <http://tracker.ceph.com/issues/16353>`_, `pr#9757 <http://github.com/ceph/ceph/pull/9757>`_, Nathan Cutler)
-* build/ops: rpm: fix permissions for /etc/ceph/rbdmap (`issue#17395 <http://tracker.ceph.com/issues/17395>`_, `pr#11217 <http://github.com/ceph/ceph/pull/11217>`_, Ken Dreyer)
-* build/ops: rpm: fix shared library devel package names and dependencies (`issue#16345 <http://tracker.ceph.com/issues/16345>`_, `issue#16346 <http://tracker.ceph.com/issues/16346>`_, `pr#9744 <http://github.com/ceph/ceph/pull/9744>`_, Nathan Cutler, Ken Dreyer)
-* build/ops: rpm: move mount.ceph from ceph-base to ceph-common and add symlink in /sbin for SUSE (`issue#16598 <http://tracker.ceph.com/issues/16598>`_, `pr#10147 <http://github.com/ceph/ceph/pull/10147>`_, Nathan Cutler)
-* build/ops: run-cmake-check.sh: Remove redundant calls (`pr#11116 <http://github.com/ceph/ceph/pull/11116>`_, Brad Hubbard)
-* build/ops: script: improve ceph-release-notes regex (`pr#10729 <http://github.com/ceph/ceph/pull/10729>`_, Nathan Cutler)
-* build/ops: src/CMakeLists.txt: remove double flag -Wno-invalid-offsetof (`pr#10443 <http://github.com/ceph/ceph/pull/10443>`_, Willem Jan Withagen)
-* build/ops: src/CMakeLists.txt: remove unneeded libraries from ceph-dencoder target (`pr#10478 <http://github.com/ceph/ceph/pull/10478>`_, Willem Jan Withagen)
-* build/ops: src/global/pidfile.cc: Assign elements in structures individually (`pr#10516 <http://github.com/ceph/ceph/pull/10516>`_, Willem Jan Withagen)
-* build/ops: src/kv/CMakeLists.txt: force rocksdb/include to first include directory (`pr#11194 <http://github.com/ceph/ceph/pull/11194>`_, Willem Jan Withagen)
-* build/ops: test/common/test_util.cc: FreeBSD does not have distro information (`pr#10547 <http://github.com/ceph/ceph/pull/10547>`_, Willem Jan Withagen)
-* build/ops: test: make check using cmake (`pr#10116 <http://github.com/ceph/ceph/pull/10116>`_, Kefu Chai, Sage Weil)
-* build/ops: verfied f23 (`pr#10222 <http://github.com/ceph/ceph/pull/10222>`_, Kefu Chai)
-* build/ops: yasm-wrapper: dont echo the yasm command line (`pr#10819 <http://github.com/ceph/ceph/pull/10819>`_, Casey Bodley)
-* build/ops: .gitignore: exclude coredumps, logfiles and temporary testresults (`pr#8150 <http://github.com/ceph/ceph/pull/8150>`_, Willem Jan Withagen)
-* build/ops: this fixes the broken build (`pr#9992 <http://github.com/ceph/ceph/pull/9992>`_, Haomai Wang)
-* build/ops: mrgw: search for cmake build dir. (`pr#10180 <http://github.com/ceph/ceph/pull/10180>`_, Abhishek Lekshmanan)
-* build/ops: mrun, mstart.sh, mstop.sh: search for cmake build directory (`pr#10097 <http://github.com/ceph/ceph/pull/10097>`_, Yehuda Sadeh)
-* build/ops: arm64 fixes(`pr#10438 <http://github.com/ceph/ceph/pull/10438>`_, Dan Mick)
-* build/ops: Wip kill warnings (`pr#10934 <http://github.com/ceph/ceph/pull/10934>`_, Kefu Chai)
-* build/ops: systemd: add osd id to service description (`pr#10091 <http://github.com/ceph/ceph/pull/10091>`_, Ruben Kerkhof)
-* build/ops: fix wrong indent caused compile warning (`pr#10014 <http://github.com/ceph/ceph/pull/10014>`_, Wanlong Gao)
-* build/ops: ceph-detect-init: fix the py3 test (`pr#10266 <http://github.com/ceph/ceph/pull/10266>`_, Kefu Chai)
-* build/ops: ceph.spec: fix ceph-mgr version requirement (`pr#11285 <http://github.com/ceph/ceph/pull/11285>`_, Sage Weil)
-* build/ops: make-dist/ceph.spec.in: Fix srpm build breakage. (`pr#10404 <http://github.com/ceph/ceph/pull/10404>`_, Ira Cooper)
-* build/ops: master: remove SYSTEMD_RUN from initscript (`issue#16440 <http://tracker.ceph.com/issues/16440>`_, `issue#7627 <http://tracker.ceph.com/issues/7627>`_, `pr#9871 <http://github.com/ceph/ceph/pull/9871>`_, Vladislav Odintsov)
-* build/ops: rocksdb: revert the change introduced by dc41731 (`pr#10595 <http://github.com/ceph/ceph/pull/10595>`_, Kefu Chai)
-* build/ops: do_freebsd*.sh: rename do_freebsd-cmake.sh to do_freebsd.sh (`pr#11088 <http://github.com/ceph/ceph/pull/11088>`_, Kefu Chai)
-* build/ops: gcc 6.1.1 complains about missing include: <random>. 4.8.3 does not c… (`pr#10747 <http://github.com/ceph/ceph/pull/10747>`_, Daniel Oliveira)
-* build/ops: selinux: Allow ceph to manage tmp files (`issue#17436 <http://tracker.ceph.com/issues/17436>`_, `pr#11259 <http://github.com/ceph/ceph/pull/11259>`_, Boris Ranto)
-* build/ops: selinux: allow read /proc/<pid>/cmdline (`issue#16675 <http://tracker.ceph.com/issues/16675>`_, `pr#10339 <http://github.com/ceph/ceph/pull/10339>`_, Kefu Chai)
-* cephfs,common: osdc/Journaler: move C_DelayFlush class to .cc (`pr#10744 <http://github.com/ceph/ceph/pull/10744>`_, Michal Jarzabek)
-* cephfs,core,rbd: ObjectCacher: fix bh_read_finish offset logic (`issue#16002 <http://tracker.ceph.com/issues/16002>`_, `pr#9606 <http://github.com/ceph/ceph/pull/9606>`_, Greg Farnum)
-* cephfs,core,rbd: osdc/ObjectCacher: move C_ReadFinish, C_RetryRead (`pr#10781 <http://github.com/ceph/ceph/pull/10781>`_, Michal Jarzabek)
-* cephfs: Add ceph_ll_setlk and ceph_ll_getlk (`pr#9566 <http://github.com/ceph/ceph/pull/9566>`_, Frank S. Filz)
-* cephfs: CephFS: misc. cleanups and remove legacy cephfs tool (`issue#16195 <http://tracker.ceph.com/issues/16195>`_, `issue#16035 <http://tracker.ceph.com/issues/16035>`_, `issue#15923 <http://tracker.ceph.com/issues/15923>`_, `pr#10243 <http://github.com/ceph/ceph/pull/10243>`_, John Spray)
-* cephfs: Clean up handling of "/.." in ceph client (`pr#10691 <http://github.com/ceph/ceph/pull/10691>`_, Jeff Layton)
-* cephfs: Client: fixup param type and return value (`pr#10463 <http://github.com/ceph/ceph/pull/10463>`_, gongchuang)
-* cephfs: Client: pass "UserPerm" struct everywhere for security checks (`issue#16367 <http://tracker.ceph.com/issues/16367>`_, `issue#17368 <http://tracker.ceph.com/issues/17368>`_, `pr#11218 <http://github.com/ceph/ceph/pull/11218>`_, Greg Farnum)
-* cephfs: First pile of statx patches (`pr#10922 <http://github.com/ceph/ceph/pull/10922>`_, Sage Weil, Jeff Layton)
-* cephfs: Fix attribute handling at lookup time (`issue#16668 <http://tracker.ceph.com/issues/16668>`_, `pr#10386 <http://github.com/ceph/ceph/pull/10386>`_, Jeff Layton)
-* cephfs: Inotable repair during forward scrub (`pr#10281 <http://github.com/ceph/ceph/pull/10281>`_, Vishal Kanaujia)
-* cephfs: Server: drop locks and auth pins if wait for pending truncate (`pr#9716 <http://github.com/ceph/ceph/pull/9716>`_, xie xingguo)
-* cephfs: Small interface cleanups for struct ceph_statx (`pr#11093 <http://github.com/ceph/ceph/pull/11093>`_, Jeff Layton)
-* cephfs: build ceph-fuse on OSX (`pr#9371 <http://github.com/ceph/ceph/pull/9371>`_, Yan, Zheng)
-* cephfs: ceph-fuse: link to libtcmalloc or jemalloc (`issue#16655 <http://tracker.ceph.com/issues/16655>`_, `pr#10258 <http://github.com/ceph/ceph/pull/10258>`_, Yan, Zheng)
-* cephfs: ceph_volume_client: store authentication metadata (`issue#15406 <http://tracker.ceph.com/issues/15406>`_, `issue#15615 <http://tracker.ceph.com/issues/15615>`_, `pr#9864 <http://github.com/ceph/ceph/pull/9864>`_, John Spray, Ramana Raja)
-* cephfs: client/barrier: move C_Block_Sync class to .cc (`pr#11001 <http://github.com/ceph/ceph/pull/11001>`_, Michal Jarzabek)
-* cephfs: client/filer: cleanup the redundant judgments of _write&&_fallocate (`pr#10062 <http://github.com/ceph/ceph/pull/10062>`_, huanwen ren)
-* cephfs: client: add missing client_lock for get_root (`pr#10027 <http://github.com/ceph/ceph/pull/10027>`_, Patrick Donnelly)
-* cephfs: client: discard mds map if it is identical to ours (`pr#9774 <http://github.com/ceph/ceph/pull/9774>`_, xie xingguo)
-* cephfs: client: fast abort if underlying statsf() call failed; end scope of std::hex properly (`pr#9803 <http://github.com/ceph/ceph/pull/9803>`_, xie xingguo)
-* cephfs: client: fix access violation (`pr#9793 <http://github.com/ceph/ceph/pull/9793>`_, xie xingguo)
-* cephfs: client: fix readdir vs fragmentation race (`issue#17286 <http://tracker.ceph.com/issues/17286>`_, `pr#11147 <http://github.com/ceph/ceph/pull/11147>`_, Yan, Zheng)
-* cephfs: client: fix segment fault in Client::_invalidate_kernel_dcache(). (`issue#17253 <http://tracker.ceph.com/issues/17253>`_, `pr#11170 <http://github.com/ceph/ceph/pull/11170>`_, Yan, Zheng)
-* cephfs: client: fix shutdown with open inodes (`issue#16764 <http://tracker.ceph.com/issues/16764>`_, `pr#10419 <http://github.com/ceph/ceph/pull/10419>`_, John Spray)
-* cephfs: client: include COMPLETE and ORDERED states in cache dump (`pr#10485 <http://github.com/ceph/ceph/pull/10485>`_, Greg Farnum)
-* cephfs: client: kill compiling warning (`pr#9994 <http://github.com/ceph/ceph/pull/9994>`_, xie xingguo)
-* cephfs: client: misc fixes (`pr#9838 <http://github.com/ceph/ceph/pull/9838>`_, xie xingguo)
-* cephfs: client: move Inode specific cleanup to destructor (`pr#10168 <http://github.com/ceph/ceph/pull/10168>`_, Patrick Donnelly)
-* cephfs: client: note order of member init in cons (`pr#10169 <http://github.com/ceph/ceph/pull/10169>`_, Patrick Donnelly)
-* cephfs: client: properly set inode number of created inode in replay request (`issue#17172 <http://tracker.ceph.com/issues/17172>`_, `pr#10957 <http://github.com/ceph/ceph/pull/10957>`_, Yan, Zheng)
-* cephfs: client: protect InodeRef with client_lock (`issue#17392 <http://tracker.ceph.com/issues/17392>`_, `pr#11225 <http://github.com/ceph/ceph/pull/11225>`_, Yan, Zheng)
-* cephfs: doc/mds: fixup mds doc (`pr#10573 <http://github.com/ceph/ceph/pull/10573>`_, huanwen ren)
-* cephfs: fuse_ll: fix incorrect error settings of fuse_ll_mkdir() (`pr#9809 <http://github.com/ceph/ceph/pull/9809>`_, xie xingguo)
-* cephfs: include/ceph_fs.h: guard `#define CEPH_SETATTR_*` with #ifndef (`pr#10265 <http://github.com/ceph/ceph/pull/10265>`_, Kefu Chai)
-* cephfs: libcephfs: Fix the incorrect integer conversion in libcephfs_jni.cc (`pr#10640 <http://github.com/ceph/ceph/pull/10640>`_, wenjunhuang)
-* cephfs: libcephfs: add unmount function in cephfs.pyx (`pr#10774 <http://github.com/ceph/ceph/pull/10774>`_, huanwen ren)
-* cephfs: libcephfs: fix portability-related error settings (`pr#9794 <http://github.com/ceph/ceph/pull/9794>`_, xie xingguo)
-* cephfs: libcephfs: kill compiling warning (`pr#10622 <http://github.com/ceph/ceph/pull/10622>`_, xie xingguo)
-* cephfs: mds/CDir: remove the part of judgment for _next_dentry_on_set (`pr#10476 <http://github.com/ceph/ceph/pull/10476>`_, zhang.zezhu)
-* cephfs: mds/CInode: fix potential fin hanging (`pr#9773 <http://github.com/ceph/ceph/pull/9773>`_, xie xingguo)
-* cephfs: mds/MDBalancer: cleanup (`pr#10512 <http://github.com/ceph/ceph/pull/10512>`_, huanwen ren)
-* cephfs: mds/MDCache: kill a comipler warning (`pr#11254 <http://github.com/ceph/ceph/pull/11254>`_, xie xingguo)
-* cephfs: mds/MDSMap default metadata pool to -1 (was: output None instead of 0 when no fs present.) (`issue#16588 <http://tracker.ceph.com/issues/16588>`_, `pr#10202 <http://github.com/ceph/ceph/pull/10202>`_, Xiaoxi Chen)
-* cephfs: mds/MDSTable: add const to member functions (`pr#10846 <http://github.com/ceph/ceph/pull/10846>`_, Michal Jarzabek)
-* cephfs: mds/SessionMap.h: change statement to assertion (`pr#11289 <http://github.com/ceph/ceph/pull/11289>`_, Michal Jarzabek)
-* cephfs: mds/SnapRealm.h: add const to member functions (`pr#10878 <http://github.com/ceph/ceph/pull/10878>`_, Michal Jarzabek)
-* cephfs: mds/server: clean up handle_client_open() (`pr#11120 <http://github.com/ceph/ceph/pull/11120>`_, huanwen ren)
-* cephfs: mon/MDSMonitor: move C_Updated class to .cc file (`pr#10668 <http://github.com/ceph/ceph/pull/10668>`_, Michal Jarzabek)
-* cephfs: osdc/mds: fixup pos parameter in the journaler (`pr#10200 <http://github.com/ceph/ceph/pull/10200>`_, huanwen ren)
-* cephfs: reduce unnecessary mds log flush (`pr#10393 <http://github.com/ceph/ceph/pull/10393>`_, Yan, Zheng)
-* cephfs: tools/cephfs: Remove cephfs-data-scan tmap_upgrade (`issue#16144 <http://tracker.ceph.com/issues/16144>`_, `pr#10100 <http://github.com/ceph/ceph/pull/10100>`_, Douglas Fuller)
-* cephfs: ceph_fuse: use sizeof get the buf length (`pr#11176 <http://github.com/ceph/ceph/pull/11176>`_, LeoZhang)
-* cli: retry when the mon is not configured (`issue#16477 <http://tracker.ceph.com/issues/16477>`_, `pr#11089 <http://github.com/ceph/ceph/pull/11089>`_, Loic Dachary)
-* cmake: Add -pie to CMAKE_EXE_LINKER_FLAGS (`pr#10755 <http://github.com/ceph/ceph/pull/10755>`_, Tim Serong)
-* cmake: Fix FCGI include directory (`pr#9983 <http://github.com/ceph/ceph/pull/9983>`_, Tim Serong)
-* cmake: Fix mismatched librgw VERSION / SOVERSION (`pr#10754 <http://github.com/ceph/ceph/pull/10754>`_, Tim Serong)
-* cmake: FreeBSD specific excludes in CMakeLists.txt (`pr#10973 <http://github.com/ceph/ceph/pull/10973>`_, Willem Jan Withagen)
-* cmake: FreeBSD specific excludes in CMakeLists.txt files (`pr#10517 <http://github.com/ceph/ceph/pull/10517>`_, Willem Jan Withagen)
-* cmake: Really add FCGI_INCLUDE_DIR to include_directories for rgw (`pr#10139 <http://github.com/ceph/ceph/pull/10139>`_, Tim Serong)
-* cmake: Removed README.cmake.md, edited README.md (`pr#10028 <http://github.com/ceph/ceph/pull/10028>`_, Ali Maredia)
-* cmake: Support tcmalloc_minimal allocator (`pr#11111 <http://github.com/ceph/ceph/pull/11111>`_, Bassam Tabbara)
-* cmake: add dependency from ceph_smalliobenchrbd to cls libraries (`pr#10870 <http://github.com/ceph/ceph/pull/10870>`_, J. Eric Ivancich)
-* cmake: add_subdirectory(include) (`pr#10360 <http://github.com/ceph/ceph/pull/10360>`_, Kefu Chai)
-* cmake: ceph_test_rbd_mirror does not require librados_test_stub (`pr#10164 <http://github.com/ceph/ceph/pull/10164>`_, Jason Dillaman)
-* cmake: cleanup Findgperftools.cmake (`pr#10670 <http://github.com/ceph/ceph/pull/10670>`_, Kefu Chai)
-* cmake: correct ceph_test_librbd/ceph_test_rbd_mirror linkage (`issue#16882 <http://tracker.ceph.com/issues/16882>`_, `pr#10598 <http://github.com/ceph/ceph/pull/10598>`_, Jason Dillaman)
-* cmake: disable -fvar-tracking-assignments for ceph_dencoder.cc (`pr#10275 <http://github.com/ceph/ceph/pull/10275>`_, Kefu Chai)
-* cmake: disable unittest_async_compressor (`pr#10394 <http://github.com/ceph/ceph/pull/10394>`_, Kefu Chai)
-* cmake: do not link against unused objects or libraries (`pr#10837 <http://github.com/ceph/ceph/pull/10837>`_, Kefu Chai)
-* cmake: enable ccache for rocksdb too (`pr#11100 <http://github.com/ceph/ceph/pull/11100>`_, Bassam Tabbara)
-* cmake: exclude non-public symbols in shared libraries (`issue#16556 <http://tracker.ceph.com/issues/16556>`_, `pr#10472 <http://github.com/ceph/ceph/pull/10472>`_, Kefu Chai)
-* cmake: fix incorrect dependencies to librados (`pr#10145 <http://github.com/ceph/ceph/pull/10145>`_, Jason Dillaman)
-* cmake: fix the FTBFS introduced by dc8b3ba (`pr#10282 <http://github.com/ceph/ceph/pull/10282>`_, Kefu Chai)
-* cmake: fix the build of unittest_async_compressor (`pr#10400 <http://github.com/ceph/ceph/pull/10400>`_, Kefu Chai)
-* cmake: fix the tracing header dependencies (`pr#10906 <http://github.com/ceph/ceph/pull/10906>`_, Kefu Chai)
-* cmake: fix unittest_rbd_mirror failures under non-optimized builds (`pr#9990 <http://github.com/ceph/ceph/pull/9990>`_, Jason Dillaman)
-* cmake: fix wrong path introduced by bb163e9 (`pr#10643 <http://github.com/ceph/ceph/pull/10643>`_, Kefu Chai)
-* cmake: fixes (`pr#10092 <http://github.com/ceph/ceph/pull/10092>`_, Daniel Gryniewicz)
-* cmake: fixes for pypi changes (`pr#10204 <http://github.com/ceph/ceph/pull/10204>`_, Kefu Chai)
-* cmake: include(SIMDExt) in src/CMakeLists.txt (`pr#11003 <http://github.com/ceph/ceph/pull/11003>`_, Kefu Chai)
-* cmake: install ceph_test_cls_rgw (`pr#10025 <http://github.com/ceph/ceph/pull/10025>`_, Kefu Chai)
-* cmake: install ceph_test_rados_striper_api_* (`pr#10541 <http://github.com/ceph/ceph/pull/10541>`_, Kefu Chai)
-* cmake: install platlib into a subdir of build-base dir (`pr#10666 <http://github.com/ceph/ceph/pull/10666>`_, Kefu Chai)
-* cmake: make py3 a nice-to-have (`issue#17103 <http://tracker.ceph.com/issues/17103>`_, `pr#11015 <http://github.com/ceph/ceph/pull/11015>`_, Kefu Chai)
-* cmake: pass -DINTEL* to gf-complete cflags (`pr#10956 <http://github.com/ceph/ceph/pull/10956>`_, tone.zhang, Kefu Chai)
-* cmake: pass cmake's compiler and flags to compile RocksDB into build (`pr#10418 <http://github.com/ceph/ceph/pull/10418>`_, Willem Jan Withagen)
-* cmake: recompile erasure src for different variants (`pr#10772 <http://github.com/ceph/ceph/pull/10772>`_, Kefu Chai)
-* cmake: remove WITH_MDS option (`pr#10186 <http://github.com/ceph/ceph/pull/10186>`_, Ali Maredia)
-* cmake: remove more autotools hacks (`pr#11229 <http://github.com/ceph/ceph/pull/11229>`_, Sage Weil)
-* cmake: remove unnecessary linked libs from libcephfs (`issue#16556 <http://tracker.ceph.com/issues/16556>`_, `pr#10081 <http://github.com/ceph/ceph/pull/10081>`_, Kefu Chai)
-* cmake: rework NSS and SSL (`pr#9831 <http://github.com/ceph/ceph/pull/9831>`_, Matt Benjamin)
-* cmake: set ARM_CRC_FLAGS from the CRC test rather than ARM_NEON_FLAGS (`issue#17250 <http://tracker.ceph.com/issues/17250>`_, `pr#11028 <http://github.com/ceph/ceph/pull/11028>`_, Dan Mick)
-* cmake: specify distutils build path explicitly (`pr#10568 <http://github.com/ceph/ceph/pull/10568>`_, Kefu Chai)
-* cmake: supress more warnings (`pr#10469 <http://github.com/ceph/ceph/pull/10469>`_, Willem Jan Withagen)
-* cmake: use PERF_LOCAL_FLAGS only if defined (`issue#17104 <http://tracker.ceph.com/issues/17104>`_, `pr#10828 <http://github.com/ceph/ceph/pull/10828>`_, Michel Normand)
-* cmake: use stock Find* modules. (`pr#10178 <http://github.com/ceph/ceph/pull/10178>`_, Kefu Chai)
-* cmake: work to get inital FreeBSD stuff (`pr#10352 <http://github.com/ceph/ceph/pull/10352>`_, Willem Jan Withagen)
-* cmake: find GIT_VER variables if there is no .git dir (`pr#11499 <http://github.com/ceph/ceph/pull/11499>`_, Ali Maredia)
-* common,bluestore: Isa-l extention for zlib compression plugin (`pr#10158 <http://github.com/ceph/ceph/pull/10158>`_, Alyona Kiseleva, Dan Mick)
-* common,bluestore: compressor/zlib: zlib wrapper fix (`pr#11079 <http://github.com/ceph/ceph/pull/11079>`_, Igor Fedotov)
-* common: auth/cephx: misc fixes (`pr#9679 <http://github.com/ceph/ceph/pull/9679>`_, xie xingguo)
-* common: common/PluginRegistry: improve error output for shared library load fa… (`pr#11081 <http://github.com/ceph/ceph/pull/11081>`_, Igor Fedotov)
-* common: common/Throttle.h: remove unneeded class (`pr#10902 <http://github.com/ceph/ceph/pull/10902>`_, Michal Jarzabek)
-* common: common/Timer.h: delete copy constr and assign op (`pr#11046 <http://github.com/ceph/ceph/pull/11046>`_, Michal Jarzabek)
-* common: common/WorkQueue: add std move (`pr#9729 <http://github.com/ceph/ceph/pull/9729>`_, Michal Jarzabek)
-* common: compressor: zlib compressor plugin cleanup (`pr#9782 <http://github.com/ceph/ceph/pull/9782>`_, Alyona Kiseleva)
-* common: erasure-code: Runtime detection of SIMD for jerasure and shec (`pr#11086 <http://github.com/ceph/ceph/pull/11086>`_, Bassam Tabbara)
-* common: global: log which process/command sent a signal (`pr#8964 <http://github.com/ceph/ceph/pull/8964>`_, song baisen)
-* common: include/assert: clean up ceph assertion macros (`pr#9969 <http://github.com/ceph/ceph/pull/9969>`_, Sage Weil)
-* common: instantiate strict_si_cast<long> not strict_si_cast<int64_t> (`issue#16398 <http://tracker.ceph.com/issues/16398>`_, `pr#9934 <http://github.com/ceph/ceph/pull/9934>`_, Kefu Chai)
-* common: lockdep: verbose even if no logging is set (`pr#10576 <http://github.com/ceph/ceph/pull/10576>`_, Willem Jan Withagen)
-* common: messages/MOSDMap: mark as enlighten OSDMap encoder (`pr#10843 <http://github.com/ceph/ceph/pull/10843>`_, Sage Weil)
-* common: mon/Monitor.cc:replce lock/unlock with Mutex:Lockr (`pr#9792 <http://github.com/ceph/ceph/pull/9792>`_, Michal Jarzabek)
-* common: msg/AsyncMessenger.cc: remove code duplication (`pr#10030 <http://github.com/ceph/ceph/pull/10030>`_, Michal Jarzabek)
-* common: msg/async: less verbose debug messages at debug_ms=1 (`pr#11205 <http://github.com/ceph/ceph/pull/11205>`_, Sage Weil)
-* common: msg/async: remove static member variable (`issue#16686 <http://tracker.ceph.com/issues/16686>`_, `pr#10440 <http://github.com/ceph/ceph/pull/10440>`_, Kefu Chai)
-* common: only call crypto::init once per CephContext (`issue#17205 <http://tracker.ceph.com/issues/17205>`_, `pr#10965 <http://github.com/ceph/ceph/pull/10965>`_, Casey Bodley)
-* common: osdc/ObjectCacher: change iterator to const_iterator and add const to member functions (`pr#9644 <http://github.com/ceph/ceph/pull/9644>`_, Michal Jarzabek)
-* common: preforker: prevent call to 'write' on an fd that was already closed (`pr#10949 <http://github.com/ceph/ceph/pull/10949>`_, Avner BenHanoch)
-* common: remove basename() dependency (`pr#9845 <http://github.com/ceph/ceph/pull/9845>`_, John Coyle)
-* common: src/common/buffer.cc fix judgment for lseek (`pr#10130 <http://github.com/ceph/ceph/pull/10130>`_, zhang.zezhu)
-* common: unknown hash type of judgment modification (`pr#9510 <http://github.com/ceph/ceph/pull/9510>`_, huanwen ren)
-* common: Timer.cc: replace long types with auto (`pr#11067 <http://github.com/ceph/ceph/pull/11067>`_, Michal Jarzabek)
-* common: TrackedOp: move ShardedTrackingData to .cc (`pr#10639 <http://github.com/ceph/ceph/pull/10639>`_, Michal Jarzabek)
-* common: config_opts: fix comment(radio -> ratio) (`pr#10783 <http://github.com/ceph/ceph/pull/10783>`_, xie xingguo)
-* common: src/common/dns_resolve.cc: reorder the includes (`pr#10505 <http://github.com/ceph/ceph/pull/10505>`_, Willem Jan Withagen)
-* common: global/signal_handler: use sig_str instead of sys_siglist (`pr#10633 <http://github.com/ceph/ceph/pull/10633>`_, John Coyle)
-* core,cephfs: Revert "osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prep… (`issue#16908 <http://tracker.ceph.com/issues/16908>`_, `pr#10875 <http://github.com/ceph/ceph/pull/10875>`_, Samuel Just)
-* core,cephfs: mon/mds: add err info when load_metadata is abnormal (`pr#10176 <http://github.com/ceph/ceph/pull/10176>`_, huanwen ren)
-* core,common: osd/OSD.cc: remove unneeded returns (`pr#11043 <http://github.com/ceph/ceph/pull/11043>`_, Michal Jarzabek)
-* core,pybind: python-rados: extends ReadOp/WriteOp API (`pr#9944 <http://github.com/ceph/ceph/pull/9944>`_, Mehdi Abaakouk)
-* core,pybind: python-rados: implement new aio_stat. (`pr#11006 <http://github.com/ceph/ceph/pull/11006>`_, Iain Buclaw)
-* core,pybind: qa/workunits/rados/test_python.sh: Allow specifying Python executable (`pr#10782 <http://github.com/ceph/ceph/pull/10782>`_, Oleh Prypin)
-* core: os/filestore/LFNIndex: remove unused variable 'subdir_path' (`pr#8959 <http://github.com/ceph/ceph/pull/8959>`_, huangjun)
-* core: Create ceph-mgr (`pr#10328 <http://github.com/ceph/ceph/pull/10328>`_, John Spray, Tim Serong)
-* core: FileJournal: Remove obsolete _check_disk_write_cache function (`pr#11073 <http://github.com/ceph/ceph/pull/11073>`_, Brad Hubbard)
-* core: Lua object class support (`pr#7338 <http://github.com/ceph/ceph/pull/7338>`_, Noah Watkins)
-* core: OSD crash with Hammer to Jewel Upgrade: void FileStore::init_temp_collections() (`issue#16672 <http://tracker.ceph.com/issues/16672>`_, `pr#10565 <http://github.com/ceph/ceph/pull/10565>`_, David Zafman)
-* core: OSD.cc: remove unneeded return (`pr#9701 <http://github.com/ceph/ceph/pull/9701>`_, Michal Jarzabek)
-* core: OSD: avoid FileStore finisher deadlock in osd_lock when shutdown OSD (`pr#11052 <http://github.com/ceph/ceph/pull/11052>`_, Haomai Wang)
-* core: ObjectCacher: fix last_write check in bh_write_adjacencies() (`issue#16610 <http://tracker.ceph.com/issues/16610>`_, `pr#10304 <http://github.com/ceph/ceph/pull/10304>`_, Yan, Zheng)
-* core: ReplicatedPG: call op_applied for submit_log_entries based repops (`pr#9489 <http://github.com/ceph/ceph/pull/9489>`_, Samuel Just)
-* core: Wip 16998 (`issue#16998 <http://tracker.ceph.com/issues/16998>`_, `pr#10688 <http://github.com/ceph/ceph/pull/10688>`_, Samuel Just)
-* core: ceph-create-keys: add missing argument comma (`pr#11123 <http://github.com/ceph/ceph/pull/11123>`_, Patrick Donnelly)
-* core: ceph-create-keys: fix existing-but-different case (`issue#16255 <http://tracker.ceph.com/issues/16255>`_, `pr#10415 <http://github.com/ceph/ceph/pull/10415>`_, John Spray)
-* core: ceph-disk: partprobe should block udev induced BLKRRPART (`issue#15176 <http://tracker.ceph.com/issues/15176>`_, `pr#9330 <http://github.com/ceph/ceph/pull/9330>`_, Marius Vollmer, Loic Dachary)
-* core: ceph-disk: timeout ceph-disk to avoid blocking forever (`issue#16580 <http://tracker.ceph.com/issues/16580>`_, `pr#10262 <http://github.com/ceph/ceph/pull/10262>`_, Loic Dachary)
-* core: ceph-objectstore-tool: add a way to split filestore directories offline (`issue#17220 <http://tracker.ceph.com/issues/17220>`_, `pr#10776 <http://github.com/ceph/ceph/pull/10776>`_, Josh Durgin)
-* core: ceph.in: python 3 compatibility of the ceph CLI (`pr#9702 <http://github.com/ceph/ceph/pull/9702>`_, Oleh Prypin)
-* core: ceph_mon: use readdir() as readdir_r() is deprecated (`pr#11047 <http://github.com/ceph/ceph/pull/11047>`_, Kefu Chai)
-* core: cephx: Fix multiple segfaults due to attempts to encrypt or decrypt (`issue#16266 <http://tracker.ceph.com/issues/16266>`_, `pr#9703 <http://github.com/ceph/ceph/pull/9703>`_, Brad Hubbard)
-* core: https://github.com/ceph/ceph/pull/11052 (`pr#10371 <http://github.com/ceph/ceph/pull/10371>`_, Yan Jun)
-* core: include write error codes in the pg log (`issue#14468 <http://tracker.ceph.com/issues/14468>`_, `pr#10170 <http://github.com/ceph/ceph/pull/10170>`_, Josh Durgin)
-* core: kv/MemDB: fix assert triggerred by m_total_bytes underflow (`pr#10471 <http://github.com/ceph/ceph/pull/10471>`_, xie xingguo)
-* core: kv/RocksDB: add perfcounter for submit_transaction_sync operation (`pr#9770 <http://github.com/ceph/ceph/pull/9770>`_, Haodong Tang)
-* core: logmon: check is_leader() before doing any work on get_trim_to() (`pr#10342 <http://github.com/ceph/ceph/pull/10342>`_, song baisen)
-* core: memstore: clone zero-fills holes from source range (`pr#11157 <http://github.com/ceph/ceph/pull/11157>`_, Casey Bodley)
-* core: message: optimization for message priority strategy (`pr#8687 <http://github.com/ceph/ceph/pull/8687>`_, yaoning)
-* core: messages/MForward: fix encoding features (`issue#17365 <http://tracker.ceph.com/issues/17365>`_, `pr#11180 <http://github.com/ceph/ceph/pull/11180>`_, Sage Weil)
-* core: mgr/MgrClient: fix ms_handle_reset (`pr#11298 <http://github.com/ceph/ceph/pull/11298>`_, Sage Weil)
-* core: mgr/MgrMap: initialize all fields (`issue#17492 <http://tracker.ceph.com/issues/17492>`_, `pr#11308 <http://github.com/ceph/ceph/pull/11308>`_, Sage Weil)
-* core: mon/ConfigKeyService: pass strings by const ref (`pr#10618 <http://github.com/ceph/ceph/pull/10618>`_, Michal Jarzabek)
-* core: mon/LogMonitor: move C_Log struct to cc file (`pr#10721 <http://github.com/ceph/ceph/pull/10721>`_, Michal Jarzabek)
-* core: mon/MonClient.h: pass strings by const reference (`pr#10605 <http://github.com/ceph/ceph/pull/10605>`_, Michal Jarzabek)
-* core: mon/MonDBStore: fix assert which never fires (`pr#10706 <http://github.com/ceph/ceph/pull/10706>`_, xie xingguo)
-* core: mon/MonitorDBStore: do not use snapshot iterator; close on close (`pr#10102 <http://github.com/ceph/ceph/pull/10102>`_, Sage Weil)
-* core: mon/OSDMonitor.cc: remove use of boost assign (`pr#11060 <http://github.com/ceph/ceph/pull/11060>`_, Michal Jarzabek)
-* core: mon/PGMonitor: batch filter pg states; add sanity check (`pr#9394 <http://github.com/ceph/ceph/pull/9394>`_, xie xingguo)
-* core: mon/PGMonitor: calc the %USED of pool using used/(used+avail) (`issue#16933 <http://tracker.ceph.com/issues/16933>`_, `pr#10584 <http://github.com/ceph/ceph/pull/10584>`_, Kefu Chai)
-* core: mon/PGMonitor: move C_Stats struct to cc file (`pr#10719 <http://github.com/ceph/ceph/pull/10719>`_, Michal Jarzabek)
-* core: mon/PaxosService: make the return value type inconsistent (`pr#10231 <http://github.com/ceph/ceph/pull/10231>`_, zhang.zezhu)
-* core: mon/osdmonitor: fix incorrect output of "osd df" due to osd out (`issue#16706 <http://tracker.ceph.com/issues/16706>`_, `pr#10308 <http://github.com/ceph/ceph/pull/10308>`_, xie xingguo)
-* core: msg/AsyncMessenger: change return type to void (`pr#10230 <http://github.com/ceph/ceph/pull/10230>`_, Michal Jarzabek)
-* core: msg/Messenger: add const and override to function (`pr#10183 <http://github.com/ceph/ceph/pull/10183>`_, Michal Jarzabek)
-* core: msg/async/AsyncConnection: replace Mutex with std::mutex for peformance (`issue#16714 <http://tracker.ceph.com/issues/16714>`_, `issue#16715 <http://tracker.ceph.com/issues/16715>`_, `pr#10340 <http://github.com/ceph/ceph/pull/10340>`_, Haomai Wang)
-* core: msg/async/Event: ensure not refer to member variable which may destroyed (`issue#16714 <http://tracker.ceph.com/issues/16714>`_, `pr#10369 <http://github.com/ceph/ceph/pull/10369>`_, Haomai Wang)
-* core: msg/async/kqueue: avoid remove nonexist kqueue event (`pr#9869 <http://github.com/ceph/ceph/pull/9869>`_, Haomai Wang)
-* core: msg/async: Support close idle connection feature (`issue#16366 <http://tracker.ceph.com/issues/16366>`_, `pr#9783 <http://github.com/ceph/ceph/pull/9783>`_, Haomai Wang)
-* core: msg/async: allow other async backend implementations (`pr#10264 <http://github.com/ceph/ceph/pull/10264>`_, Haomai Wang)
-* core: msg/async: avoid set out of range ms_async_op_threads option (`pr#11200 <http://github.com/ceph/ceph/pull/11200>`_, Haomai Wang)
-* core: msg/async: connect authorizer fix + recv_buf size (`pr#9784 <http://github.com/ceph/ceph/pull/9784>`_, Ilya Dryomov)
-* core: msg/async: harden error logic handle (`pr#9781 <http://github.com/ceph/ceph/pull/9781>`_, Haomai Wang)
-* core: msg/async: remove fd output in log prefix (`pr#11199 <http://github.com/ceph/ceph/pull/11199>`_, Haomai Wang)
-* core: msg/async: remove file event lock (`issue#16554 <http://tracker.ceph.com/issues/16554>`_, `issue#16552 <http://tracker.ceph.com/issues/16552>`_, `pr#10090 <http://github.com/ceph/ceph/pull/10090>`_, Haomai Wang)
-* core: msg/simple/Pipe: eliminating casts for the comparing of len and recv_max_prefetch (`pr#10273 <http://github.com/ceph/ceph/pull/10273>`_, zhang.zezhu)
-* core: msg/simple: fix wrong condition checking of writing TAG_CLOSE on closing (`pr#10343 <http://github.com/ceph/ceph/pull/10343>`_, xie xingguo)
-* core: msg/simple: wait dispatch_queue until all pipes closed (`issue#16472 <http://tracker.ceph.com/issues/16472>`_, `pr#9930 <http://github.com/ceph/ceph/pull/9930>`_, Haomai Wang)
-* core: msg: make async backend default (`pr#10746 <http://github.com/ceph/ceph/pull/10746>`_, Haomai Wang)
-* core: msg: mark daemons down on RST + ECONNREFUSED (`pr#8558 <http://github.com/ceph/ceph/pull/8558>`_, Piotr Dałek)
-* core: os/FuseStore: fix several FuseStore issues (`pr#10723 <http://github.com/ceph/ceph/pull/10723>`_, Sage Weil)
-* core: os/MemStore: move BufferlistObject to .cc file (`pr#10833 <http://github.com/ceph/ceph/pull/10833>`_, Michal Jarzabek)
-* core: os/ObjectStore: fix return code of collection_empty() method (`pr#11050 <http://github.com/ceph/ceph/pull/11050>`_, xie xingguo)
-* core: os/RocksDBStore: use effective Get API instead of iterator api (`pr#9411 <http://github.com/ceph/ceph/pull/9411>`_, Jianjian Huo, Haomai Wang, Mark Nelson)
-* core: os/filestore/FDCache: fix bug when filestore_fd_cache_shards = 0 (`pr#11048 <http://github.com/ceph/ceph/pull/11048>`_, jimifm)
-* core: os/filestore/FileJournal: error out if FileJournal is not a file (`issue#17307 <http://tracker.ceph.com/issues/17307>`_, `pr#11146 <http://github.com/ceph/ceph/pull/11146>`_, Kefu Chai)
-* core: os/filestore: add sanity checks and cleanups for mount() process (`pr#9734 <http://github.com/ceph/ceph/pull/9734>`_, xie xingguo)
-* core: os/filestore: disable use of splice by default (`pr#11113 <http://github.com/ceph/ceph/pull/11113>`_, Haomai Wang)
-* core: osd/OSD.cc: remove repeated searching of map (`pr#10986 <http://github.com/ceph/ceph/pull/10986>`_, Michal Jarzabek)
-* core: osd/OSD.cc: remove unneeded searching of maps (`pr#11039 <http://github.com/ceph/ceph/pull/11039>`_, Michal Jarzabek)
-* core: osd/OSD.h: add const to member functions (`pr#11114 <http://github.com/ceph/ceph/pull/11114>`_, Michal Jarzabek)
-* core: osd/OSD.h: move some members under private (`pr#11121 <http://github.com/ceph/ceph/pull/11121>`_, Michal Jarzabek)
-* core: osd/OSD.h: remove unneeded line (`pr#8980 <http://github.com/ceph/ceph/pull/8980>`_, Michal Jarzabek)
-* core: osd/OSDMonitor: misc. cleanups (`pr#10739 <http://github.com/ceph/ceph/pull/10739>`_, xie xingguo)
-* core: osd/OSDMonitor: misc. fixes (`pr#10491 <http://github.com/ceph/ceph/pull/10491>`_, xie xingguo)
-* core: osd/ReplicatedBackend: add sanity check during build_push_op() (`pr#9491 <http://github.com/ceph/ceph/pull/9491>`_, Yan Jun)
-* core: osd/ReplicatedPG: for sync-read it don't cacl l_osd_op_r_prepare_lat. (`pr#10365 <http://github.com/ceph/ceph/pull/10365>`_, Jianpeng Ma)
-* core: osd/ReplicatedPG: remove class redeclaration (`pr#11041 <http://github.com/ceph/ceph/pull/11041>`_, Michal Jarzabek)
-* core: osd/ReplicatedPG: remove unused param "op" from generate_subop() (`pr#10811 <http://github.com/ceph/ceph/pull/10811>`_, jimifm)
-* core: osd/Watch: add consts to member functions (`pr#10251 <http://github.com/ceph/ceph/pull/10251>`_, Michal Jarzabek)
-* core: osd/osd_type: check if pool is gone during check_new_interval() (`pr#10859 <http://github.com/ceph/ceph/pull/10859>`_, xie xingguo)
-* core: osd/osdmonitor: pool of objects and bytes beyond quota should all be warn (`pr#9085 <http://github.com/ceph/ceph/pull/9085>`_, huanwen ren)
-* core: osdc/objecter: misc fixes (`pr#10826 <http://github.com/ceph/ceph/pull/10826>`_, xie xingguo)
-* core: pass string by const ref and add override to virtual function (`pr#9082 <http://github.com/ceph/ceph/pull/9082>`_, Michal Jarzabek)
-* core: qa/workunits/objectstore/test_fuse.sh: make test_fuse.sh work with filestore (`pr#11057 <http://github.com/ceph/ceph/pull/11057>`_, Sage Weil)
-* core: rados: add option to include clones when doing flush or evict (`pr#9698 <http://github.com/ceph/ceph/pull/9698>`_, Mingxin Liu)
-* core: subman: use replace instead of format (`issue#16961 <http://tracker.ceph.com/issues/16961>`_, `pr#10620 <http://github.com/ceph/ceph/pull/10620>`_, Loic Dachary)
-* core: test/common/Throttle.cc: fix race in shutdown (`pr#10094 <http://github.com/ceph/ceph/pull/10094>`_, Samuel Just)
-* core: test: add the necessary judgment (`pr#9694 <http://github.com/ceph/ceph/pull/9694>`_, huanwen ren)
-* core: tox.ini: remove extraneous coverage --omit option (`pr#10943 <http://github.com/ceph/ceph/pull/10943>`_, Josh Durgin)
-* core: udev: always populate /dev/disk/by-parttypeuuid (`issue#16351 <http://tracker.ceph.com/issues/16351>`_, `pr#9885 <http://github.com/ceph/ceph/pull/9885>`_, Loic Dachary)
-* core: os/FuseStore: remove unneeded header file (`pr#10799 <http://github.com/ceph/ceph/pull/10799>`_, Michal Jarzabek)
-* core: os/MemStore: move OmapIteratorImpl to cc file (`pr#10803 <http://github.com/ceph/ceph/pull/10803>`_, Michal Jarzabek)
-* core: os/Memstore.h: add override to virtual functions (`pr#10801 <http://github.com/ceph/ceph/pull/10801>`_, Michal Jarzabek)
-* core: os/Memstore: move PageSetObject class to .cc file (`pr#10817 <http://github.com/ceph/ceph/pull/10817>`_, Michal Jarzabek)
-* core: os/bluestore: remove unused head file. (`pr#11186 <http://github.com/ceph/ceph/pull/11186>`_, Jianpeng Ma)
-* core: safe_io: Improve portability by replacing loff_t type usage with off_t. (`pr#9767 <http://github.com/ceph/ceph/pull/9767>`_, John Coyle)
-* core: src/kv/MemDB.cc: the type of the parameter of push_back() does not match the ops's value_type (`pr#10455 <http://github.com/ceph/ceph/pull/10455>`_, Willem Jan Withagen)
-* core: msg/simple: apply prefetch policy more precisely (`pr#10344 <http://github.com/ceph/ceph/pull/10344>`_, xie xingguo)
-* core: CompatSet.h: remove unneeded inline (`pr#10071 <http://github.com/ceph/ceph/pull/10071>`_, Michal Jarzabek)
-* core: Objclass perm feedback (`pr#10313 <http://github.com/ceph/ceph/pull/10313>`_, Noah Watkins)
-* core: arch/arm.c: remove unnecessary variable read for simplicity (`pr#10821 <http://github.com/ceph/ceph/pull/10821>`_, Weibing Zhang)
-* crush: don't normalize input of crush_ln iteratively (`pr#10935 <http://github.com/ceph/ceph/pull/10935>`_, Piotr Dałek)
-* crush: reset bucket->h.items[i] when removing tree item (`issue#16525 <http://tracker.ceph.com/issues/16525>`_, `pr#10093 <http://github.com/ceph/ceph/pull/10093>`_, Kefu Chai)
-* crush: CrushCompiler.cc:884 (`pr#10952 <http://github.com/ceph/ceph/pull/10952>`_, xu biao)
-* crush: CrushCompiler: error out as long as parse fails (`issue#17306 <http://tracker.ceph.com/issues/17306>`_, `pr#11144 <http://github.com/ceph/ceph/pull/11144>`_, Kefu Chai)
-* doc: Add documentation about snapshots (`pr#10436 <http://github.com/ceph/ceph/pull/10436>`_, Greg Farnum)
-* doc: Add two options to radosgw-admin.rst manpage (`issue#17281 <http://tracker.ceph.com/issues/17281>`_, `pr#11134 <http://github.com/ceph/ceph/pull/11134>`_, Thomas Serlin)
-* doc: Changed config parameter "rgw keystone make new tenants" in radosgw multitenancy (`issue#17293 <http://tracker.ceph.com/issues/17293>`_, `pr#11127 <http://github.com/ceph/ceph/pull/11127>`_, SirishaGuduru)
-* doc: Modification for "TEST S3 ACCESS" section in "INSTALL CEPH OBJECT GATEWAY" page (`pr#9089 <http://github.com/ceph/ceph/pull/9089>`_, la-sguduru)
-* doc: Update developer docs for cmake paths (`pr#11163 <http://github.com/ceph/ceph/pull/11163>`_, John Spray)
-* doc: add "--orphan-stale-secs" to radosgw-admin(8) (`issue#17280 <http://tracker.ceph.com/issues/17280>`_, `pr#11097 <http://github.com/ceph/ceph/pull/11097>`_, Ken Dreyer)
-* doc: add $pid metavar conf doc (`pr#11172 <http://github.com/ceph/ceph/pull/11172>`_, Patrick Donnelly)
-* doc: add Backporting section to Essentials chapter (`issue#15497 <http://tracker.ceph.com/issues/15497>`_, `pr#10457 <http://github.com/ceph/ceph/pull/10457>`_, Nathan Cutler)
-* doc: add Prepare tenant section to Testing in the cloud chapter (`pr#10413 <http://github.com/ceph/ceph/pull/10413>`_, Nathan Cutler)
-* doc: add Upload logs to archive server section... (`pr#10414 <http://github.com/ceph/ceph/pull/10414>`_, Nathan Cutler)
-* doc: add client config ref (`issue#16743 <http://tracker.ceph.com/issues/16743>`_, `pr#10434 <http://github.com/ceph/ceph/pull/10434>`_, Patrick Donnelly)
-* doc: add graphic for cap bit field (`pr#10897 <http://github.com/ceph/ceph/pull/10897>`_, Patrick Donnelly)
-* doc: add missing PR to hammer 0.94.8 release notes (`pr#10900 <http://github.com/ceph/ceph/pull/10900>`_, Nathan Cutler)
-* doc: add openSUSE instructions to quick-start-preflight (`pr#10454 <http://github.com/ceph/ceph/pull/10454>`_, Nathan Cutler)
-* doc: add rgw_enable_usage_log option in Rados Gateway admin guide (`issue#16604 <http://tracker.ceph.com/issues/16604>`_, `pr#10159 <http://github.com/ceph/ceph/pull/10159>`_, Mike Hackett)
-* doc: add troubleshooting steps for ceph-fuse (`pr#10374 <http://github.com/ceph/ceph/pull/10374>`_, Ken Dreyer)
-* doc: admin/build-doc: bypass sanity check if building doc (`issue#16940 <http://tracker.ceph.com/issues/16940>`_, `pr#10623 <http://github.com/ceph/ceph/pull/10623>`_, Kefu Chai)
-* doc: ceph-authtool man page option is --print-key not --print (`pr#9731 <http://github.com/ceph/ceph/pull/9731>`_, Brad Hubbard)
-* doc: ceph-deploy mon add doesn't take multiple nodes (`pr#10085 <http://github.com/ceph/ceph/pull/10085>`_, Chengwei Yang)
-* doc: clarify rbd size units (`pr#11303 <http://github.com/ceph/ceph/pull/11303>`_, Ilya Dryomov)
-* doc: cleanup outdated radosgw description (`pr#11248 <http://github.com/ceph/ceph/pull/11248>`_, Jiaying Ren)
-* doc: describe libvirt client logging (`pr#10542 <http://github.com/ceph/ceph/pull/10542>`_, Ken Dreyer)
-* doc: do not list all major versions in get-packages.rst (`pr#10899 <http://github.com/ceph/ceph/pull/10899>`_, Nathan Cutler)
-* doc: doc/cephfs: explain the various health messages (`pr#10244 <http://github.com/ceph/ceph/pull/10244>`_, John Spray)
-* doc: doc/dev: Fix missing code section due to no lexer for "none" (`pr#9083 <http://github.com/ceph/ceph/pull/9083>`_, Brad Hubbard)
-* doc: doc/radosgw: fix description of response elements 'Part' (`pr#10641 <http://github.com/ceph/ceph/pull/10641>`_, weiqiaomiao)
-* doc: doc/radosgw: rename config.rst to config-fcgi.rst (`pr#10381 <http://github.com/ceph/ceph/pull/10381>`_, Nathan Cutler)
-* doc: extend the CephFS troubleshooting guide (`pr#10458 <http://github.com/ceph/ceph/pull/10458>`_, Greg Farnum)
-* doc: fix broken link in SHEC erasure code plugin (`issue#16996 <http://tracker.ceph.com/issues/16996>`_, `pr#10675 <http://github.com/ceph/ceph/pull/10675>`_, Albert Tu)
-* doc: fix description for rsize and rasize (`pr#11101 <http://github.com/ceph/ceph/pull/11101>`_, Andreas Gerstmayr)
-* doc: fix rados/configuration/osd-config-ref.rst (`pr#10619 <http://github.com/ceph/ceph/pull/10619>`_, Chengwei Yang)
-* doc: fix singleton example in Developer Guide (`pr#10830 <http://github.com/ceph/ceph/pull/10830>`_, Nathan Cutler)
-* doc: fix some nits in release notes and releases table (`pr#10903 <http://github.com/ceph/ceph/pull/10903>`_, Nathan Cutler)
-* doc: fix standby replay config (`issue#16664 <http://tracker.ceph.com/issues/16664>`_, `pr#10268 <http://github.com/ceph/ceph/pull/10268>`_, Patrick Donnelly)
-* doc: fix wrong osdkeepalive name in mount.ceph manpage (`pr#10840 <http://github.com/ceph/ceph/pull/10840>`_, Zhi Zhang)
-* doc: fix/add changelog for 10.2.2, 0.94.7, 0.94.8 (`pr#10895 <http://github.com/ceph/ceph/pull/10895>`_, Sage Weil)
-* doc: format 2 now is the default image format (`pr#10705 <http://github.com/ceph/ceph/pull/10705>`_, Chengwei Yang)
-* doc: lgtm (build verified f23) (`pr#9745 <http://github.com/ceph/ceph/pull/9745>`_, weiqiaomiao)
-* doc: mailmap updates for upcoming 11.0.0 (`pr#9301 <http://github.com/ceph/ceph/pull/9301>`_, Yann Dupont)
-* doc: manual instructions to set up mds daemon (`pr#11115 <http://github.com/ceph/ceph/pull/11115>`_, Peter Maloney)
-* doc: missing "make vstart" in quick_guide.rst (`pr#11226 <http://github.com/ceph/ceph/pull/11226>`_, Leo Zhang)
-* doc: more details for pool deletion (`pr#10190 <http://github.com/ceph/ceph/pull/10190>`_, Ken Dreyer)
-* doc: peering.rst, fix typo (`pr#10131 <http://github.com/ceph/ceph/pull/10131>`_, Brad Hubbard)
-* doc: perf_counters.rst fix trivial typo (`pr#10292 <http://github.com/ceph/ceph/pull/10292>`_, Brad Hubbard)
-* doc: rbdmap: specify bash shell interpreter (`issue#16608 <http://tracker.ceph.com/issues/16608>`_, `pr#10733 <http://github.com/ceph/ceph/pull/10733>`_, Jason Dillaman)
-* doc: release-notes.rst: draft 0.94.8 release notes (`pr#10730 <http://github.com/ceph/ceph/pull/10730>`_, Nathan Cutler)
-* doc: remove btrfs contradiction (`pr#9758 <http://github.com/ceph/ceph/pull/9758>`_, Nathan Cutler)
-* doc: remove i386 from minimal hardware recommendations (`pr#10276 <http://github.com/ceph/ceph/pull/10276>`_, Kefu Chai)
-* doc: remove old references to inktank premium support (`pr#11182 <http://github.com/ceph/ceph/pull/11182>`_, Alfredo Deza)
-* doc: remove the description of deleted options (`issue#17041 <http://tracker.ceph.com/issues/17041>`_, `pr#10741 <http://github.com/ceph/ceph/pull/10741>`_, MinSheng Lin)
-* doc: rgw, doc: fix formatting around Keystone-related options. (`pr#10331 <http://github.com/ceph/ceph/pull/10331>`_, Radoslaw Zarzynski)
-* doc: rgw/doc: fix indent (`pr#10676 <http://github.com/ceph/ceph/pull/10676>`_, Yan Jun)
-* doc: rm SysV instructions, add systemd (`pr#10184 <http://github.com/ceph/ceph/pull/10184>`_, Ken Dreyer)
-* doc: silence sphinx warnings (`pr#10621 <http://github.com/ceph/ceph/pull/10621>`_, Kefu Chai)
-* doc: small standby doc edits (`pr#10479 <http://github.com/ceph/ceph/pull/10479>`_, Patrick Donnelly)
-* doc: update CephFS "early adopters" info (`pr#10068 <http://github.com/ceph/ceph/pull/10068>`_, John Spray)
-* doc: update canonical tarballs URL (`pr#9695 <http://github.com/ceph/ceph/pull/9695>`_, Ken Dreyer)
-* doc: update rbd glance configuration notes (`pr#10629 <http://github.com/ceph/ceph/pull/10629>`_, Jason Dillaman)
-* doc: update s3 static webiste feature support status (`pr#10223 <http://github.com/ceph/ceph/pull/10223>`_, Jiaying Ren)
-* doc: changelog: add v10.2.3 (`pr#11238 <http://github.com/ceph/ceph/pull/11238>`_, Abhishek Lekshmanan)
-* doc: install: Use https:// for download.ceph.com (`pr#10709 <http://github.com/ceph/ceph/pull/10709>`_, Colin Walters)
-* doc: release-notes: v0.94.9 (`pr#10927 <http://github.com/ceph/ceph/pull/10927>`_, Sage Weil)
-* doc: release-notes: v10.2.3 jewel (`pr#11234 <http://github.com/ceph/ceph/pull/11234>`_, Abhishek Lekshmanan)
-* doc: Add UK mirror and update copyright (`pr#10531 <http://github.com/ceph/ceph/pull/10531>`_, Patrick McGarry)
-* doc: README.md: replace package build instructions with tarball instructions (`pr#10829 <http://github.com/ceph/ceph/pull/10829>`_, Sage Weil)
-* doc: Removed reference about pool ownership based on BZ#1368528 (`pr#11063 <http://github.com/ceph/ceph/pull/11063>`_, Bara Ancincova)
-* librados: use bufferlist instead of buffer::list in public header (`pr#10632 <http://github.com/ceph/ceph/pull/10632>`_, Ryne Li)
-* librados: Rados-stripper: Flexible string matching for not found attributes (`pr#10577 <http://github.com/ceph/ceph/pull/10577>`_, Willem Jan Withagen)
-* librados: librados examples: link and include from current source tree by default. (`issue#15100 <http://tracker.ceph.com/issues/15100>`_, `pr#8189 <http://github.com/ceph/ceph/pull/8189>`_, Jesse Williamson)
-* librbd: API methods to directly acquire and release the exclusive lock (`issue#15632 <http://tracker.ceph.com/issues/15632>`_, `pr#9592 <http://github.com/ceph/ceph/pull/9592>`_, Mykola Golub)
-* librbd: add consistency groups operations with images (`pr#10034 <http://github.com/ceph/ceph/pull/10034>`_, Victor Denisov)
-* librbd: add explicit shrink check while resizing images (`pr#9878 <http://github.com/ceph/ceph/pull/9878>`_, Vaibhav Bhembre)
-* librbd: asynchronous v2 image creation (`issue#15321 <http://tracker.ceph.com/issues/15321>`_, `pr#9585 <http://github.com/ceph/ceph/pull/9585>`_, Venky Shankar)
-* librbd: backward/forward compatibility for update_features (`issue#17330 <http://tracker.ceph.com/issues/17330>`_, `pr#11155 <http://github.com/ceph/ceph/pull/11155>`_, Jason Dillaman)
-* librbd: block name prefix might overflow fixed size C-string (`issue#17310 <http://tracker.ceph.com/issues/17310>`_, `pr#11148 <http://github.com/ceph/ceph/pull/11148>`_, Jason Dillaman)
-* librbd: cache was not switching to writeback after first flush (`issue#16654 <http://tracker.ceph.com/issues/16654>`_, `pr#10762 <http://github.com/ceph/ceph/pull/10762>`_, Jason Dillaman)
-* librbd: corrected use-after-free in ImageWatcher (`issue#17289 <http://tracker.ceph.com/issues/17289>`_, `pr#11112 <http://github.com/ceph/ceph/pull/11112>`_, Jason Dillaman)
-* librbd: deadlock when replaying journal during image open (`issue#17188 <http://tracker.ceph.com/issues/17188>`_, `pr#10945 <http://github.com/ceph/ceph/pull/10945>`_, Jason Dillaman)
-* librbd: delay acquiring lock if image watch has failed (`issue#16923 <http://tracker.ceph.com/issues/16923>`_, `pr#10574 <http://github.com/ceph/ceph/pull/10574>`_, Jason Dillaman)
-* librbd: discard hangs when 'rbd_skip_partial_discard' is enabled (`issue#16386 <http://tracker.ceph.com/issues/16386>`_, `pr#10060 <http://github.com/ceph/ceph/pull/10060>`_, Mykola Golub)
-* librbd: extract group module from librbd/internal (`pr#11070 <http://github.com/ceph/ceph/pull/11070>`_, Victor Denisov)
-* librbd: failed assertion after shrinking a clone image twice (`issue#16561 <http://tracker.ceph.com/issues/16561>`_, `pr#10072 <http://github.com/ceph/ceph/pull/10072>`_, Jason Dillaman)
-* librbd: fix missing return statement if failed to get mirror image state (`pr#10136 <http://github.com/ceph/ceph/pull/10136>`_, runsisi)
-* librbd: fix possible inconsistent state when disabling mirroring fails (`issue#16984 <http://tracker.ceph.com/issues/16984>`_, `pr#10711 <http://github.com/ceph/ceph/pull/10711>`_, Jason Dillaman)
-* librbd: ignore partial refresh error when acquiring exclusive lock (`issue#17227 <http://tracker.ceph.com/issues/17227>`_, `pr#11044 <http://github.com/ceph/ceph/pull/11044>`_, Jason Dillaman)
-* librbd: initial hooks for client-side, image-extent cache in IO path (`pr#9121 <http://github.com/ceph/ceph/pull/9121>`_, Jason Dillaman)
-* librbd: interlock image refresh and exclusive lock operations (`issue#16773 <http://tracker.ceph.com/issues/16773>`_, `issue#17015 <http://tracker.ceph.com/issues/17015>`_, `pr#10770 <http://github.com/ceph/ceph/pull/10770>`_, Jason Dillaman)
-* librbd: memory leak in MirroringWatcher::notify_image_updated (`pr#11306 <http://github.com/ceph/ceph/pull/11306>`_, Mykola Golub)
-* librbd: optimize away unnecessary object map updates (`issue#16707 <http://tracker.ceph.com/issues/16707>`_, `issue#16689 <http://tracker.ceph.com/issues/16689>`_, `pr#10332 <http://github.com/ceph/ceph/pull/10332>`_, Jason Dillaman)
-* librbd: optionally unregister "laggy" journal clients (`issue#14738 <http://tracker.ceph.com/issues/14738>`_, `pr#10378 <http://github.com/ceph/ceph/pull/10378>`_, Mykola Golub)
-* librbd: permit disabling journaling if in corrupt state (`issue#16740 <http://tracker.ceph.com/issues/16740>`_, `pr#10712 <http://github.com/ceph/ceph/pull/10712>`_, Jason Dillaman)
-* librbd: possible deadlock if cluster connection closed after image (`issue#17254 <http://tracker.ceph.com/issues/17254>`_, `pr#11037 <http://github.com/ceph/ceph/pull/11037>`_, Jason Dillaman)
-* librbd: potential deadlock closing image with in-flight readahead (`issue#17198 <http://tracker.ceph.com/issues/17198>`_, `pr#11152 <http://github.com/ceph/ceph/pull/11152>`_, Jason Dillaman)
-* librbd: potential double-unwatch of watch handle upon error (`issue#17210 <http://tracker.ceph.com/issues/17210>`_, `pr#10974 <http://github.com/ceph/ceph/pull/10974>`_, Jason Dillaman)
-* librbd: potential seg fault when blacklisting an image client (`issue#17251 <http://tracker.ceph.com/issues/17251>`_, `pr#11034 <http://github.com/ceph/ceph/pull/11034>`_, Jason Dillaman)
-* librbd: prevent creation of clone from non-primary mirrored image (`issue#16449 <http://tracker.ceph.com/issues/16449>`_, `pr#10123 <http://github.com/ceph/ceph/pull/10123>`_, Mykola Golub)
-* librbd: prevent creation of v2 image ids that are too large (`issue#16887 <http://tracker.ceph.com/issues/16887>`_, `pr#10581 <http://github.com/ceph/ceph/pull/10581>`_, Jason Dillaman)
-* mds: Add path filtering for dump cache (`issue#11171 <http://tracker.ceph.com/issues/11171>`_, `pr#9925 <http://github.com/ceph/ceph/pull/9925>`_, Douglas Fuller)
-* mds: Kill C_SaferCond in evict_sessions() (`issue#16288 <http://tracker.ceph.com/issues/16288>`_, `pr#9971 <http://github.com/ceph/ceph/pull/9971>`_, Douglas Fuller)
-* mds: Return "committing" rather than "committed" member in get_committing (`pr#10250 <http://github.com/ceph/ceph/pull/10250>`_, Greg Farnum)
-* mds: Set mds_snap_max_uid to 4294967294 (`pr#11016 <http://github.com/ceph/ceph/pull/11016>`_, Wido den Hollander)
-* mds: add assertion in handle_slave_rename_prep (`issue#16807 <http://tracker.ceph.com/issues/16807>`_, `pr#10429 <http://github.com/ceph/ceph/pull/10429>`_, John Spray)
-* mds: add assertions for standby_daemons invariant (`issue#16592 <http://tracker.ceph.com/issues/16592>`_, `pr#10316 <http://github.com/ceph/ceph/pull/10316>`_, Patrick Donnelly)
-* mds: add health warning for oversized cache (`issue#16570 <http://tracker.ceph.com/issues/16570>`_, `pr#10245 <http://github.com/ceph/ceph/pull/10245>`_, John Spray)
-* mds: add maximum fragment size constraint (`issue#16164 <http://tracker.ceph.com/issues/16164>`_, `pr#9789 <http://github.com/ceph/ceph/pull/9789>`_, Patrick Donnelly)
-* mds: add perf counters for MDLog replay and SessionMap (`pr#10539 <http://github.com/ceph/ceph/pull/10539>`_, John Spray)
-* mds: catch duplicates in DamageTable (`issue#17173 <http://tracker.ceph.com/issues/17173>`_, `pr#11137 <http://github.com/ceph/ceph/pull/11137>`_, John Spray)
-* mds: fix Session::check_access() (`issue#16358 <http://tracker.ceph.com/issues/16358>`_, `pr#9769 <http://github.com/ceph/ceph/pull/9769>`_, Yan, Zheng)
-* mds: fix daemon selection when starting ranks (`pr#10540 <http://github.com/ceph/ceph/pull/10540>`_, John Spray)
-* mds: fix shutting down mds timed-out due to deadlock (`issue#16396 <http://tracker.ceph.com/issues/16396>`_, `pr#9884 <http://github.com/ceph/ceph/pull/9884>`_, Zhi Zhang)
-* mds: fix up _dispatch ref-counting semantics (`pr#10533 <http://github.com/ceph/ceph/pull/10533>`_, Greg Farnum)
-* mds: fixup dump Formatter' type error; add path_ino and is_primary in the CDentry::dump() (`pr#10119 <http://github.com/ceph/ceph/pull/10119>`_, huanwen ren)
-* mds: handle blacklisting during journal recovery (`issue#17236 <http://tracker.ceph.com/issues/17236>`_, `pr#11138 <http://github.com/ceph/ceph/pull/11138>`_, John Spray)
-* mds: log path with CDir damage messages (`issue#16973 <http://tracker.ceph.com/issues/16973>`_, `pr#10996 <http://github.com/ceph/ceph/pull/10996>`_, John Spray)
-* mds: move Finisher to unlocked shutdown (`issue#16042 <http://tracker.ceph.com/issues/16042>`_, `pr#10142 <http://github.com/ceph/ceph/pull/10142>`_, Patrick Donnelly)
-* mds: populate DamageTable from scrub and log more quietly (`issue#16016 <http://tracker.ceph.com/issues/16016>`_, `pr#11136 <http://github.com/ceph/ceph/pull/11136>`_, John Spray)
-* mds: remove fail-safe queueing replay request (`issue#17271 <http://tracker.ceph.com/issues/17271>`_, `pr#11078 <http://github.com/ceph/ceph/pull/11078>`_, Yan, Zheng)
-* mds: remove max_mds config option (`issue#17105 <http://tracker.ceph.com/issues/17105>`_, `pr#10914 <http://github.com/ceph/ceph/pull/10914>`_, Patrick Donnelly)
-* mds: remove unused MDSDaemon::objecter (`pr#10566 <http://github.com/ceph/ceph/pull/10566>`_, Patrick Donnelly)
-* mds: snap failover fixes (`pr#9955 <http://github.com/ceph/ceph/pull/9955>`_, Yan, Zheng)
-* mds: trim null dentries proactively (`issue#16919 <http://tracker.ceph.com/issues/16919>`_, `pr#10606 <http://github.com/ceph/ceph/pull/10606>`_, John Spray)
-* mds: unuse Class and cleanup (`pr#10399 <http://github.com/ceph/ceph/pull/10399>`_, huanwen ren)
-* mds: use reference to avoid copy (`pr#10191 <http://github.com/ceph/ceph/pull/10191>`_, Patrick Donnelly)
-* mds: MDCache.h: remove unneeded access specifier (`pr#10901 <http://github.com/ceph/ceph/pull/10901>`_, Michal Jarzabek)
-* mds: MDSDaemon: move C_MDS_Tick class to .cc file (`pr#11220 <http://github.com/ceph/ceph/pull/11220>`_, Michal Jarzabek)
-* mgr: implement con reset handling (`pr#11299 <http://github.com/ceph/ceph/pull/11299>`_, Sage Weil)
-* mgr: squash compiler warnings (`pr#11307 <http://github.com/ceph/ceph/pull/11307>`_, John Spray)
-* mon: MonClient may hang on pinging an unresponsive monitor (`pr#9259 <http://github.com/ceph/ceph/pull/9259>`_, xie xingguo)
-* mon: Monitor: validate prefix on handle_command() (`issue#16297 <http://tracker.ceph.com/issues/16297>`_, `pr#9700 <http://github.com/ceph/ceph/pull/9700>`_, You Ji)
-* mon: OSDMonitor: Missing nearfull flag set (`pr#11082 <http://github.com/ceph/ceph/pull/11082>`_, Igor Podoski)
-* mon: change osdmap flags set and unset messages (`issue#15983 <http://tracker.ceph.com/issues/15983>`_, `pr#9252 <http://github.com/ceph/ceph/pull/9252>`_, Vikhyat Umrao)
-* mon: clear list in better way (`pr#9718 <http://github.com/ceph/ceph/pull/9718>`_, song baisen)
-* mon: do not recalculate 'to_remove' when it's known (`pr#9717 <http://github.com/ceph/ceph/pull/9717>`_, song baisen)
-* mon: misc cleanups (`pr#10591 <http://github.com/ceph/ceph/pull/10591>`_, xie xingguo)
-* mon: remove the redundant cancel_probe_timeout function (`pr#10261 <http://github.com/ceph/ceph/pull/10261>`_, song baisen)
-* mon: remove the redundant is_active judge in PaxosService (`pr#9749 <http://github.com/ceph/ceph/pull/9749>`_, song baisen)
-* mon: tear down standby replays on MDS rank stop (`issue#16909 <http://tracker.ceph.com/issues/16909>`_, `pr#10628 <http://github.com/ceph/ceph/pull/10628>`_, John Spray)
-* mon: use clearer code structure (`pr#10192 <http://github.com/ceph/ceph/pull/10192>`_, Patrick Donnelly)
-* mon: validate states transmitted in beacons (`issue#16592 <http://tracker.ceph.com/issues/16592>`_, `pr#10428 <http://github.com/ceph/ceph/pull/10428>`_, John Spray)
-* mon: wait 10m (not 5m) before marking down OSDs out (`pr#11184 <http://github.com/ceph/ceph/pull/11184>`_, Sage Weil)
-* mon: write fsid use the right return value (`pr#10197 <http://github.com/ceph/ceph/pull/10197>`_, song baisen)
-* mon: Elector:move C_ElectionExpire class to cc file (`pr#10416 <http://github.com/ceph/ceph/pull/10416>`_, Michal Jarzabek)
-* mon: HealthMonitor: add override to virtual functs (`pr#10549 <http://github.com/ceph/ceph/pull/10549>`_, Michal Jarzabek)
-* mon: HealthMonitor: remove unneeded include (`pr#10563 <http://github.com/ceph/ceph/pull/10563>`_, Michal Jarzabek)
-* mon: MonClient.h: delete copy constr and assing op (`pr#10599 <http://github.com/ceph/ceph/pull/10599>`_, Michal Jarzabek)
-* mon: MonClient: move C_CancelMonCommand to cc file (`pr#10392 <http://github.com/ceph/ceph/pull/10392>`_, Michal Jarzabek)
-* mon: MonClient: move C_Tick struct to cc file (`pr#10383 <http://github.com/ceph/ceph/pull/10383>`_, Michal Jarzabek)
-* mon: Monitor.h: add override to virtual functions (`pr#10515 <http://github.com/ceph/ceph/pull/10515>`_, Michal Jarzabek)
-* mon: Monitor: move C_Scrub, C_ScrubTimeout to .cc (`pr#10513 <http://github.com/ceph/ceph/pull/10513>`_, Michal Jarzabek)
-* mon: OSDMonitor.cc: remove unneeded casts (`pr#10575 <http://github.com/ceph/ceph/pull/10575>`_, Michal Jarzabek)
-* mon: Paxos: move classes to .cc file (`pr#11215 <http://github.com/ceph/ceph/pull/11215>`_, Michal Jarzabek)
-* mon: PaxosService: move classes to cc file (`pr#10529 <http://github.com/ceph/ceph/pull/10529>`_, Michal Jarzabek)
-* mon: remove the redundant list swap in paxos commit_proposal (`pr#10011 <http://github.com/ceph/ceph/pull/10011>`_, song baisen)
-* msgr: set close on exec flag (`issue#16390 <http://tracker.ceph.com/issues/16390>`_, `pr#9772 <http://github.com/ceph/ceph/pull/9772>`_, Kefu Chai)
-* msgr: Accepter.h: add override to virtual function (`pr#10422 <http://github.com/ceph/ceph/pull/10422>`_, Michal Jarzabek)
-* msgr: Accepter: move include to cc file (`pr#10441 <http://github.com/ceph/ceph/pull/10441>`_, Michal Jarzabek)
-* msgr: AsyncConnection: add const to mem functions (`pr#10302 <http://github.com/ceph/ceph/pull/10302>`_, Michal Jarzabek)
-* msgr: AsyncMessenger.cc: remove unneeded cast (`pr#10141 <http://github.com/ceph/ceph/pull/10141>`_, Michal Jarzabek)
-* msgr: AsyncMessenger: add const to function (`pr#10114 <http://github.com/ceph/ceph/pull/10114>`_, Michal Jarzabek)
-* msgr: AsyncMessenger: move C_handle_reap class to cc (`pr#10113 <http://github.com/ceph/ceph/pull/10113>`_, Michal Jarzabek)
-* msgr: AsyncMessenger: move C_processor_accept class (`pr#9991 <http://github.com/ceph/ceph/pull/9991>`_, Michal Jarzabek)
-* msgr: AsyncMessenger: remove unneeded include file (`pr#10195 <http://github.com/ceph/ceph/pull/10195>`_, Michal Jarzabek)
-* msgr: AsyncMessenger: remove unused function (`pr#10163 <http://github.com/ceph/ceph/pull/10163>`_, Michal Jarzabek)
-* msgr: EventKqueue.h: add override to virtual func (`pr#10318 <http://github.com/ceph/ceph/pull/10318>`_, Michal Jarzabek)
-* msgr: EventPoll.h: add override to virtual functions (`pr#10314 <http://github.com/ceph/ceph/pull/10314>`_, Michal Jarzabek)
-* msgr: EventSelect.h: add override to virtual funct (`pr#10321 <http://github.com/ceph/ceph/pull/10321>`_, Michal Jarzabek)
-* msgr: EventSelect: move includes to cc file (`pr#10333 <http://github.com/ceph/ceph/pull/10333>`_, Michal Jarzabek)
-* msgr: FastStrategy.h: add override to virtual funct (`pr#10482 <http://github.com/ceph/ceph/pull/10482>`_, Michal Jarzabek)
-* msgr: Message.h: add const to member function (`pr#10354 <http://github.com/ceph/ceph/pull/10354>`_, Michal Jarzabek)
-* msgr: Message.h: remove code duplication (`pr#10356 <http://github.com/ceph/ceph/pull/10356>`_, Michal Jarzabek)
-* msgr: QueueStrategy: add override to virtual functs (`pr#10503 <http://github.com/ceph/ceph/pull/10503>`_, Michal Jarzabek)
-* msgr: Stack.h: delete copy constr and assign op (`pr#11107 <http://github.com/ceph/ceph/pull/11107>`_, Michal Jarzabek)
-* msgr: async/Event.h: add const to member function (`pr#10224 <http://github.com/ceph/ceph/pull/10224>`_, Michal Jarzabek)
-* msgr: async: remove unused code. (`pr#11247 <http://github.com/ceph/ceph/pull/11247>`_, Jianpeng Ma)
-* osd: bail out if transaction size overflows (`issue#16982 <http://tracker.ceph.com/issues/16982>`_, `pr#10753 <http://github.com/ceph/ceph/pull/10753>`_, Kefu Chai)
-* osd: cleanup options and other redundancies (`pr#10450 <http://github.com/ceph/ceph/pull/10450>`_, xie xingguo)
-* osd: drop unused variables/methods (`pr#10559 <http://github.com/ceph/ceph/pull/10559>`_, xie xingguo)
-* osd: fix the mem leak of RepGather (`issue#16801 <http://tracker.ceph.com/issues/16801>`_, `pr#10423 <http://github.com/ceph/ceph/pull/10423>`_, Kefu Chai)
-* osd: fixups to explicitly persistenting missing sets (`pr#10405 <http://github.com/ceph/ceph/pull/10405>`_, Samuel Just)
-* osd: increment stats on recovery pull also (`issue#16277 <http://tracker.ceph.com/issues/16277>`_, `pr#10152 <http://github.com/ceph/ceph/pull/10152>`_, Kefu Chai)
-* osd: limit omap data in push op (`issue#16128 <http://tracker.ceph.com/issues/16128>`_, `pr#9894 <http://github.com/ceph/ceph/pull/9894>`_, Wanlong Gao)
-* osd: minor performance improvements (`pr#10470 <http://github.com/ceph/ceph/pull/10470>`_, xie xingguo)
-* osd: minor performance improvements and fixes (`pr#10526 <http://github.com/ceph/ceph/pull/10526>`_, xie xingguo)
-* osd: misc fixes and cleanups (`pr#10610 <http://github.com/ceph/ceph/pull/10610>`_, xie xingguo)
-* osd: miscellaneous fixes (`pr#10572 <http://github.com/ceph/ceph/pull/10572>`_, xie xingguo)
-* osd: more cleanups (`pr#10548 <http://github.com/ceph/ceph/pull/10548>`_, xie xingguo)
-* osd: object class loading and execution permissions (`pr#9972 <http://github.com/ceph/ceph/pull/9972>`_, Noah Watkins)
-* osd: pass shared_ptr by const reference (`pr#11266 <http://github.com/ceph/ceph/pull/11266>`_, Michal Jarzabek)
-* osd: persist the missing set explicitly (`pr#10334 <http://github.com/ceph/ceph/pull/10334>`_, Samuel Just)
-* osd: remove dispatch queue check since we don't queue hb message to this (`pr#9947 <http://github.com/ceph/ceph/pull/9947>`_, Haomai Wang)
-* osd: remove duplicated function (`pr#9117 <http://github.com/ceph/ceph/pull/9117>`_, Wei Jin)
-* osd: replace ceph:atomic_t with std::atomic in osd module. (`pr#9138 <http://github.com/ceph/ceph/pull/9138>`_, Xiaowei Chen)
-* osd: should not look up an empty pg (`issue#17380 <http://tracker.ceph.com/issues/17380>`_, `pr#11208 <http://github.com/ceph/ceph/pull/11208>`_, Kefu Chai, Loic Dachary)
-* osd: small cleanups (`pr#9980 <http://github.com/ceph/ceph/pull/9980>`_, Wanlong Gao)
-* osd: subscribe for old osdmaps when pause flag is set (`issue#17023 <http://tracker.ceph.com/issues/17023>`_, `pr#10725 <http://github.com/ceph/ceph/pull/10725>`_, Kefu Chai)
-* osd:preserve allocation hint attribute during recovery (`pr#9452 <http://github.com/ceph/ceph/pull/9452>`_, yaoning)
-* osd: osd-fast-mark-down.sh: fix typo in variable assignments (`pr#11224 <http://github.com/ceph/ceph/pull/11224>`_, Willem Jan Withagen)
-* osd: OSD.cc: initialise variable at definition (`pr#11099 <http://github.com/ceph/ceph/pull/11099>`_, Michal Jarzabek)
-* osd: OSD.cc: remove unneeded searching of map (`pr#11000 <http://github.com/ceph/ceph/pull/11000>`_, Michal Jarzabek)
-* osd: OSD.h: make some members private (`pr#11085 <http://github.com/ceph/ceph/pull/11085>`_, Michal Jarzabek)
-* osd: PG.cc: remove unneeded use of count (`pr#11228 <http://github.com/ceph/ceph/pull/11228>`_, Michal Jarzabek)
-* osd: PGBackend.h: move structs to .cc file (`pr#10975 <http://github.com/ceph/ceph/pull/10975>`_, Michal Jarzabek)
-* osd: ReplicatedBackend: move classes to cc file (`pr#10967 <http://github.com/ceph/ceph/pull/10967>`_, Michal Jarzabek)
-* osd: ReplicatedPG.h: add override to virtual funct (`pr#11271 <http://github.com/ceph/ceph/pull/11271>`_, Michal Jarzabek)
-* osd: ReplicatedPG: move classes to .cc file (`pr#10971 <http://github.com/ceph/ceph/pull/10971>`_, Michal Jarzabek)
-* osd: ReplicatedPG:move C_OSD_OnApplied class to cc (`pr#11288 <http://github.com/ceph/ceph/pull/11288>`_, Michal Jarzabek)
-* osd: Watch.h: remove unneeded forward declaration (`pr#10269 <http://github.com/ceph/ceph/pull/10269>`_, Michal Jarzabek)
-* osd: osdc/ObjectCacher.h: add const to member functions (`pr#9569 <http://github.com/ceph/ceph/pull/9569>`_, Michal Jarzabek)
-* osd: osdc/ObjectCacher.h: add const to member functions (`pr#9652 <http://github.com/ceph/ceph/pull/9652>`_, Michal Jarzabek)
-* osd: osdc/Objecter: move RequestStateHook class to .cc (`pr#10734 <http://github.com/ceph/ceph/pull/10734>`_, Michal Jarzabek)
-* pybind: Port Python-based tests and remaining Python bindings to Python 3 (`pr#10177 <http://github.com/ceph/ceph/pull/10177>`_, Oleh Prypin)
-* pybind: Rework cephfs/setup.py for PyPI (`pr#10315 <http://github.com/ceph/ceph/pull/10315>`_, Anirudha Bose)
-* pybind: Rework rbd/setup.py for PyPI (`issue#16940 <http://tracker.ceph.com/issues/16940>`_, `pr#10376 <http://github.com/ceph/ceph/pull/10376>`_, Anirudha Bose)
-* pybind: global/signal_handler: dump cmdline instead of arg[0] (`pr#10345 <http://github.com/ceph/ceph/pull/10345>`_, Kefu Chai)
-* pybind: make rados ready for PyPI (`pr#9833 <http://github.com/ceph/ceph/pull/9833>`_, Anirudha Bose)
-* pybind: pybind/ceph_argparse: handle non ascii unicode args (`issue#12287 <http://tracker.ceph.com/issues/12287>`_, `pr#8943 <http://github.com/ceph/ceph/pull/8943>`_, Kefu Chai)
-* pybind: Python 3 compatibility for workunits (`pr#10815 <http://github.com/ceph/ceph/pull/10815>`_, Anirudha Bose)
-* rbd: Allow user to remove snapshot with --force to auto flatten children (`pr#10087 <http://github.com/ceph/ceph/pull/10087>`_, Dongsheng Yang)
-* rbd: Reviewed-off-by: Ilya Dryomov <idryomov@gmail.com> (`issue#16171 <http://tracker.ceph.com/issues/16171>`_, `pr#10481 <http://github.com/ceph/ceph/pull/10481>`_, Jason Dillaman)
-* rbd: Reviewed-off-by: Ilya Dryomov <idryomov@gmail.com> (`issue#17030 <http://tracker.ceph.com/issues/17030>`_, `pr#10735 <http://github.com/ceph/ceph/pull/10735>`_, Jason Dillaman)
-* rbd: bench io-size should not be larger than image size (`issue#16967 <http://tracker.ceph.com/issues/16967>`_, `pr#10708 <http://github.com/ceph/ceph/pull/10708>`_, Jason Dillaman)
-* rbd: cleanup - Proxied operations shouldn't result in error messages if replayed (`issue#16130 <http://tracker.ceph.com/issues/16130>`_, `pr#9724 <http://github.com/ceph/ceph/pull/9724>`_, Vikhyat Umrao)
-* rbd: cls_rbd: clean up status from rbd-mirror if image removed (`pr#11142 <http://github.com/ceph/ceph/pull/11142>`_, Huan Zhang)
-* rbd: cls_rbd: set omap values in batch during image creation (`pr#9981 <http://github.com/ceph/ceph/pull/9981>`_, Dongsheng Yang)
-* rbd: inherit the parent image features when cloning an image (`issue#15388 <http://tracker.ceph.com/issues/15388>`_, `pr#9334 <http://github.com/ceph/ceph/pull/9334>`_, Dongsheng Yang)
-* rbd: journal: ensure in-flight ops are complete destroying journaler (`issue#17446 <http://tracker.ceph.com/issues/17446>`_, `pr#11257 <http://github.com/ceph/ceph/pull/11257>`_, Mykola Golub, Jason Dillaman)
-* rbd: journal: increase concurrency/parallelism of journal recorder (`issue#15259 <http://tracker.ceph.com/issues/15259>`_, `pr#10445 <http://github.com/ceph/ceph/pull/10445>`_, Ricardo Dias)
-* rbd: journal: move JournalTrimmer::C_RemoveSet struct (`pr#10912 <http://github.com/ceph/ceph/pull/10912>`_, Michal Jarzabek)
-* rbd: qa/workunits/rbd: before removing image make sure it is not bootstrapped (`issue#16555 <http://tracker.ceph.com/issues/16555>`_, `pr#10155 <http://github.com/ceph/ceph/pull/10155>`_, Mykola Golub)
-* rbd: qa/workunits/rbd: check status also in pool dir after asok commands (`pr#11291 <http://github.com/ceph/ceph/pull/11291>`_, Mykola Golub)
-* rbd: qa/workunits/rbd: set image-meta on primary image and wait it is replicated (`pr#11294 <http://github.com/ceph/ceph/pull/11294>`_, Mykola Golub)
-* rbd: qa/workunits/rbd: small fixup and improvements for rbd-mirror tests (`pr#10483 <http://github.com/ceph/ceph/pull/10483>`_, Mykola Golub)
-* rbd: qa/workunits/rbd: wait for image deleted before checking health (`pr#10545 <http://github.com/ceph/ceph/pull/10545>`_, Mykola Golub)
-* rbd: qa/workunits: support filtering cls_rbd unit test cases (`issue#16529 <http://tracker.ceph.com/issues/16529>`_, `pr#10714 <http://github.com/ceph/ceph/pull/10714>`_, Jason Dillaman)
-* rbd: rbd-mirror: 'wait_for_scheduled_deletion' callback might deadlock (`issue#16491 <http://tracker.ceph.com/issues/16491>`_, `pr#9964 <http://github.com/ceph/ceph/pull/9964>`_, Jason Dillaman)
-* rbd: rbd-mirror: Add sparse read for sync image (`issue#16780 <http://tracker.ceph.com/issues/16780>`_, `pr#11005 <http://github.com/ceph/ceph/pull/11005>`_, tianqing)
-* rbd: rbd-mirror: add additional test scenarios (`pr#10488 <http://github.com/ceph/ceph/pull/10488>`_, lande1234)
-* rbd: rbd-mirror: concurrent access of event might result in heap corruption (`issue#17283 <http://tracker.ceph.com/issues/17283>`_, `pr#11104 <http://github.com/ceph/ceph/pull/11104>`_, Jason Dillaman)
-* rbd: rbd-mirror: force-promoted image will remain R/O until rbd-mirror daemon restarted (`issue#16974 <http://tracker.ceph.com/issues/16974>`_, `pr#11090 <http://github.com/ceph/ceph/pull/11090>`_, Jason Dillaman)
-* rbd: rbd-mirror: gracefully fail if object map is unavailable (`issue#16558 <http://tracker.ceph.com/issues/16558>`_, `pr#10065 <http://github.com/ceph/ceph/pull/10065>`_, Jason Dillaman)
-* rbd: rbd-mirror: gracefully handle being blacklisted (`issue#16349 <http://tracker.ceph.com/issues/16349>`_, `pr#9970 <http://github.com/ceph/ceph/pull/9970>`_, Jason Dillaman)
-* rbd: rbd-mirror: image deleter should use pool id + global image uuid for key (`issue#16538 <http://tracker.ceph.com/issues/16538>`_, `issue#16227 <http://tracker.ceph.com/issues/16227>`_, `pr#10484 <http://github.com/ceph/ceph/pull/10484>`_, Jason Dillaman)
-* rbd: rbd-mirror: improve split-brain detection logic (`issue#16855 <http://tracker.ceph.com/issues/16855>`_, `pr#10703 <http://github.com/ceph/ceph/pull/10703>`_, Jason Dillaman)
-* rbd: rbd-mirror: include local pool id in resync throttle unique key (`issue#16536 <http://tracker.ceph.com/issues/16536>`_, `pr#10254 <http://github.com/ceph/ceph/pull/10254>`_, Jason Dillaman)
-* rbd: rbd-mirror: non-primary image is recording journal events during image sync (`pr#10462 <http://github.com/ceph/ceph/pull/10462>`_, Jason Dillaman)
-* rbd: rbd-mirror: potential IO stall when using asok flush request (`issue#16708 <http://tracker.ceph.com/issues/16708>`_, `pr#10432 <http://github.com/ceph/ceph/pull/10432>`_, Jason Dillaman)
-* rbd: rbd-mirror: potential assertion failure during error-induced shutdown (`issue#16956 <http://tracker.ceph.com/issues/16956>`_, `pr#10613 <http://github.com/ceph/ceph/pull/10613>`_, Jason Dillaman)
-* rbd: rbd-mirror: potential race condition during failure shutdown (`issue#16980 <http://tracker.ceph.com/issues/16980>`_, `pr#10667 <http://github.com/ceph/ceph/pull/10667>`_, Jason Dillaman)
-* rbd: rbd-mirror: quiesce in-flight event commits before shut down (`issue#17355 <http://tracker.ceph.com/issues/17355>`_, `pr#11185 <http://github.com/ceph/ceph/pull/11185>`_, Jason Dillaman)
-* rbd: rbd-mirror: reduce memory footprint during journal replay (`issue#16223 <http://tracker.ceph.com/issues/16223>`_, `pr#10341 <http://github.com/ceph/ceph/pull/10341>`_, Jason Dillaman)
-* rbd: rbd-mirror: remove ceph_test_rbd_mirror_image_replay test case (`issue#16539 <http://tracker.ceph.com/issues/16539>`_, `pr#10083 <http://github.com/ceph/ceph/pull/10083>`_, Mykola Golub)
-* rbd: rbd-mirror: replaying state should include flush action (`issue#16970 <http://tracker.ceph.com/issues/16970>`_, `pr#10627 <http://github.com/ceph/ceph/pull/10627>`_, Jason Dillaman)
-* rbd: rbd-mirror: replicate dynamic feature updates (`issue#16213 <http://tracker.ceph.com/issues/16213>`_, `pr#10980 <http://github.com/ceph/ceph/pull/10980>`_, Mykola Golub)
-* rbd: rbd-mirror: replicate image metadata settings (`issue#16212 <http://tracker.ceph.com/issues/16212>`_, `pr#11168 <http://github.com/ceph/ceph/pull/11168>`_, Mykola Golub)
-* rbd: rbd-mirror: snap rename does not properly replicate to peers (`issue#16622 <http://tracker.ceph.com/issues/16622>`_, `pr#10249 <http://github.com/ceph/ceph/pull/10249>`_, Jason Dillaman)
-* rbd: rbd-nbd does not properly handle resize notifications (`issue#15715 <http://tracker.ceph.com/issues/15715>`_, `pr#9291 <http://github.com/ceph/ceph/pull/9291>`_, Mykola Golub)
-* rbd: rbd-nbd: fix kernel deadlock during teuthology testing (`issue#16921 <http://tracker.ceph.com/issues/16921>`_, `pr#10985 <http://github.com/ceph/ceph/pull/10985>`_, Jason Dillaman)
-* rbd: recognize lock_on_read option (`pr#11313 <http://github.com/ceph/ceph/pull/11313>`_, Ilya Dryomov)
-* rbd: return error if we specified a wrong image name for rbd du (`issue#16987 <http://tracker.ceph.com/issues/16987>`_, `pr#11031 <http://github.com/ceph/ceph/pull/11031>`_, Dongsheng Yang)
-* rbd: test/librbd/fsx: enable exclusive-lock feature in krbd mode (`pr#10984 <http://github.com/ceph/ceph/pull/10984>`_, Ilya Dryomov)
-* rbd: test/rbd: fix possible mock journal race conditions (`issue#17317 <http://tracker.ceph.com/issues/17317>`_, `pr#11153 <http://github.com/ceph/ceph/pull/11153>`_, Jason Dillaman)
-* rbd: test: cmake related fixups for rbd tests (`pr#10124 <http://github.com/ceph/ceph/pull/10124>`_, Mykola Golub)
-* rbd: test: run-rbd-tests test cmake fixup (`pr#10134 <http://github.com/ceph/ceph/pull/10134>`_, Mykola Golub)
-* rbd: test: use wrapper that respects RBD_FEATURES when creating rbd image (`issue#16717 <http://tracker.ceph.com/issues/16717>`_, `pr#10348 <http://github.com/ceph/ceph/pull/10348>`_, Mykola Golub)
-* rbd: udev: add krbd readahead placeholder (`pr#10841 <http://github.com/ceph/ceph/pull/10841>`_, Nick Fisk)
-* rbd: rbd_mirror/ImageSynceThrottler: move struct to .cc (`pr#10928 <http://github.com/ceph/ceph/pull/10928>`_, Michal Jarzabek)
-* rgw: (build verified, provably unused/not aliased) (`pr#9993 <http://github.com/ceph/ceph/pull/9993>`_, weiqiaomiao)
-* rgw: Add documentation for the Multi-tenancy feature (`pr#9570 <http://github.com/ceph/ceph/pull/9570>`_, Pete Zaitcev)
-* rgw: Clean up lifecycle thread (`pr#10480 <http://github.com/ceph/ceph/pull/10480>`_, Daniel Gryniewicz)
-* rgw: Do not archive metadata by default (`issue#17256 <http://tracker.ceph.com/issues/17256>`_, `pr#11051 <http://github.com/ceph/ceph/pull/11051>`_, Pavan Rallabhandi)
-* rgw: Fix Host->bucket fallback logic inversion (`issue#15975 <http://tracker.ceph.com/issues/15975>`_, `issue#17136 <http://tracker.ceph.com/issues/17136>`_, `pr#10873 <http://github.com/ceph/ceph/pull/10873>`_, Robin H. Johnson)
-* rgw: Fix for using port 443 with pre-signed urls. (`issue#16548 <http://tracker.ceph.com/issues/16548>`_, `pr#10088 <http://github.com/ceph/ceph/pull/10088>`_, Pritha Srivastava)
-* rgw: Fix incorrect content length and range for zero sized objects during range requests (`issue#16388 <http://tracker.ceph.com/issues/16388>`_, `pr#10207 <http://github.com/ceph/ceph/pull/10207>`_, Pavan Rallabhandi)
-* rgw: Got rid of recursive mutex. (`pr#10562 <http://github.com/ceph/ceph/pull/10562>`_, Adam Kupczyk)
-* rgw: RGW : setting socket backlog for via ceph.conf (`issue#16406 <http://tracker.ceph.com/issues/16406>`_, `pr#9891 <http://github.com/ceph/ceph/pull/9891>`_, Feng Guo)
-* rgw: RGWMetaSyncCR holds refs to stacks instead of crs (`issue#16666 <http://tracker.ceph.com/issues/16666>`_, `pr#10301 <http://github.com/ceph/ceph/pull/10301>`_, Casey Bodley)
-* rgw: Reviewed by: Pritha Srivastava <prsrivas@redhat.com> (`issue#16188 <http://tracker.ceph.com/issues/16188>`_, `pr#9584 <http://github.com/ceph/ceph/pull/9584>`_, Albert Tu)
-* rgw: Rgw lifecycle testing (`pr#11131 <http://github.com/ceph/ceph/pull/11131>`_, Daniel Gryniewicz)
-* rgw: Rgw nfs 28 (`pr#10611 <http://github.com/ceph/ceph/pull/10611>`_, Matt Benjamin)
-* rgw: add configurables for {data,meta} sync error injection (`pr#10388 <http://github.com/ceph/ceph/pull/10388>`_, Yehuda Sadeh)
-* rgw: add deadlock detection to RGWCoroutinesManager::run() (`pr#10032 <http://github.com/ceph/ceph/pull/10032>`_, Casey Bodley)
-* rgw: add lc_pool when decode or encode struct RGWZoneParams (`pr#10439 <http://github.com/ceph/ceph/pull/10439>`_, weiqiaomiao)
-* rgw: add missing master_zone when running with old default region config (`issue#16627 <http://tracker.ceph.com/issues/16627>`_, `pr#10205 <http://github.com/ceph/ceph/pull/10205>`_, Orit Wasserman)
-* rgw: add pg_ver to tombstone_cache (`pr#9851 <http://github.com/ceph/ceph/pull/9851>`_, Casey Bodley)
-* rgw: add reinit/rebind logic (ldap) (`pr#10532 <http://github.com/ceph/ceph/pull/10532>`_, Matt Benjamin)
-* rgw: add return value checking to avoid possible subsequent `parse` exception (`pr#10241 <http://github.com/ceph/ceph/pull/10241>`_, Yan Jun)
-* rgw: add suport for Swift-at-root dependent features of Swift API (`issue#16673 <http://tracker.ceph.com/issues/16673>`_, `pr#10280 <http://github.com/ceph/ceph/pull/10280>`_, Pritha Srivastava, Radoslaw Zarzynski)
-* rgw: add support for Static Website of Swift API (`pr#9844 <http://github.com/ceph/ceph/pull/9844>`_, Radoslaw Zarzynski)
-* rgw: add tenant support to multisite sync (`issue#16469 <http://tracker.ceph.com/issues/16469>`_, `pr#10075 <http://github.com/ceph/ceph/pull/10075>`_, Casey Bodley)
-* rgw: back off bucket sync on failures, don't store marker (`issue#16742 <http://tracker.ceph.com/issues/16742>`_, `pr#10355 <http://github.com/ceph/ceph/pull/10355>`_, Yehuda Sadeh)
-* rgw: better error message when user has no bucket created yet (`issue#16444 <http://tracker.ceph.com/issues/16444>`_, `pr#10162 <http://github.com/ceph/ceph/pull/10162>`_, Gaurav Kumar Garg)
-* rgw: clean-up in the authentication infrastructure (`pr#10212 <http://github.com/ceph/ceph/pull/10212>`_, Radoslaw Zarzynski)
-* rgw: clear realm watch on failed watch_restart (`issue#16817 <http://tracker.ceph.com/issues/16817>`_, `pr#10446 <http://github.com/ceph/ceph/pull/10446>`_, Casey Bodley)
-* rgw: collect skips a specific coroutine stack (`issue#16665 <http://tracker.ceph.com/issues/16665>`_, `pr#10274 <http://github.com/ceph/ceph/pull/10274>`_, Yehuda Sadeh)
-* rgw: cosmetic changes only--build verified, f23 (`pr#9931 <http://github.com/ceph/ceph/pull/9931>`_, Yan Jun)
-* rgw: delete region map after upgrade to zonegroup map (`issue#17051 <http://tracker.ceph.com/issues/17051>`_, `pr#10831 <http://github.com/ceph/ceph/pull/10831>`_, Casey Bodley)
-* rgw: do not try to encode or decode time_t and fix compiling warnings (`pr#10751 <http://github.com/ceph/ceph/pull/10751>`_, Kefu Chai)
-* rgw: don't fail if lost race when setting acls (`issue#16930 <http://tracker.ceph.com/issues/16930>`_, `pr#11286 <http://github.com/ceph/ceph/pull/11286>`_, Yehuda Sadeh)
-* rgw: drop create_bucket in fwd_request log message (`pr#10214 <http://github.com/ceph/ceph/pull/10214>`_, Abhishek Lekshmanan)
-* rgw: eradicate dynamic memory allocation in RGWPostObj. (`pr#11054 <http://github.com/ceph/ceph/pull/11054>`_, Radoslaw Zarzynski)
-* rgw: file setattr (`pr#8618 <http://github.com/ceph/ceph/pull/8618>`_, Matt Benjamin)
-* rgw: finish error_repo cr in stop_spawned_services() (`issue#16530 <http://tracker.ceph.com/issues/16530>`_, `pr#10031 <http://github.com/ceph/ceph/pull/10031>`_, Yehuda Sadeh)
-* rgw: fix RGWAccessControlPolicy_SWIFT::create return value check error (`issue#17090 <http://tracker.ceph.com/issues/17090>`_, `pr#10727 <http://github.com/ceph/ceph/pull/10727>`_, weiqiaomiao)
-* rgw: fix compilation (`pr#10252 <http://github.com/ceph/ceph/pull/10252>`_, Josh Durgin)
-* rgw: fix decoding of creation_time and last_update. (`issue#17167 <http://tracker.ceph.com/issues/17167>`_, `pr#11132 <http://github.com/ceph/ceph/pull/11132>`_, Orit Wasserman)
-* rgw: fix error_repo segfault in data sync (`issue#16603 <http://tracker.ceph.com/issues/16603>`_, `pr#10157 <http://github.com/ceph/ceph/pull/10157>`_, Casey Bodley)
-* rgw: fix failed to create bucket if a non-master zonegroup has a single zone (`pr#10991 <http://github.com/ceph/ceph/pull/10991>`_, weiqiaomiao)
-* rgw: fix flush_read_list() error msg (`pr#10749 <http://github.com/ceph/ceph/pull/10749>`_, Jiaying Ren)
-* rgw: fix for issue 16494 (`issue#16494 <http://tracker.ceph.com/issues/16494>`_, `pr#10077 <http://github.com/ceph/ceph/pull/10077>`_, Yehuda Sadeh)
-* rgw: fix for s3tests failure when ldap auth is not applied (`pr#10669 <http://github.com/ceph/ceph/pull/10669>`_, Casey Bodley)
-* rgw: fix get object instance returned NoSuchKey error (`issue#17111 <http://tracker.ceph.com/issues/17111>`_, `pr#10820 <http://github.com/ceph/ceph/pull/10820>`_, Yang Honggang)
-* rgw: fix is_admin handling in RGWLDAPAuthEngine and introduce acct_privilege_t (`pr#10687 <http://github.com/ceph/ceph/pull/10687>`_, Radoslaw Zarzynski)
-* rgw: fix issue 16435 (`issue#16435 <http://tracker.ceph.com/issues/16435>`_, `pr#10193 <http://github.com/ceph/ceph/pull/10193>`_, Yehuda Sadeh)
-* rgw: fix multi-delete query param parsing. (`issue#16618 <http://tracker.ceph.com/issues/16618>`_, `pr#10187 <http://github.com/ceph/ceph/pull/10187>`_, Robin H. Johnson)
-* rgw: fix period update --commit return error (`issue#17110 <http://tracker.ceph.com/issues/17110>`_, `pr#10836 <http://github.com/ceph/ceph/pull/10836>`_, weiqiaomiao)
-* rgw: fix radosgw daemon core when reopen logs (`issue#17036 <http://tracker.ceph.com/issues/17036>`_, `pr#10737 <http://github.com/ceph/ceph/pull/10737>`_, weiqiaomiao)
-* rgw: fix regression with handling double underscore (`issue#16856 <http://tracker.ceph.com/issues/16856>`_, `pr#10939 <http://github.com/ceph/ceph/pull/10939>`_, Orit Wasserman)
-* rgw: fix rgw_bucket_dir_entry decode v (`pr#10918 <http://github.com/ceph/ceph/pull/10918>`_, Tianshan Qu)
-* rgw: fix the error return variable in log message and cleanups (`pr#10138 <http://github.com/ceph/ceph/pull/10138>`_, Yan Jun)
-* rgw: fix the missing return value (`pr#10122 <http://github.com/ceph/ceph/pull/10122>`_, Yan Jun)
-* rgw: fix upgrade from old multisite to new multisite configuration (`issue#16751 <http://tracker.ceph.com/issues/16751>`_, `pr#10368 <http://github.com/ceph/ceph/pull/10368>`_, Orit Wasserman)
-* rgw: fix wrong variable definition in cls_version_check func (`pr#10233 <http://github.com/ceph/ceph/pull/10233>`_, weiqiaomiao)
-* rgw: fix wrong variable definition in rgw_cls_lc_set_entry function (`pr#10408 <http://github.com/ceph/ceph/pull/10408>`_, weiqiaomiao)
-* rgw: for the create_bucket api, if the input creation_time is zero, we should set it to 'now" (`issue#16597 <http://tracker.ceph.com/issues/16597>`_, `pr#10118 <http://github.com/ceph/ceph/pull/10118>`_, weiqiaomiao)
-* rgw: kill a compile warning for rgw_sync (`pr#10425 <http://github.com/ceph/ceph/pull/10425>`_, Casey Bodley, Abhishek Lekshmanan)
-* rgw: lgtm (`pr#9941 <http://github.com/ceph/ceph/pull/9941>`_, weiqiaomiao)
-* rgw: lgtm (build verified, f23) (`pr#9754 <http://github.com/ceph/ceph/pull/9754>`_, John Coyle)
-* rgw: lgtm, build verified f23 (`pr#10035 <http://github.com/ceph/ceph/pull/10035>`_, Yan Jun)
-* rgw: lgtm--build verified, f23 (`pr#10002 <http://github.com/ceph/ceph/pull/10002>`_, Yan Jun)
-* rgw: lgtm--build verified, f23 (`pr#9985 <http://github.com/ceph/ceph/pull/9985>`_, Yan Jun)
-* rgw: lgtm--should backport (`pr#9979 <http://github.com/ceph/ceph/pull/9979>`_, Yan Jun)
-* rgw: log mp upload failures due to parts mismatch (`pr#10424 <http://github.com/ceph/ceph/pull/10424>`_, Abhishek Lekshmanan)
-* rgw: merge setting flags operation together and cleanups (`pr#10203 <http://github.com/ceph/ceph/pull/10203>`_, Yan Jun)
-* rgw: miscellaneous cleanups (`pr#10299 <http://github.com/ceph/ceph/pull/10299>`_, Yan Jun)
-* rgw: multiple fixes for Swift's object expiration (`issue#16705 <http://tracker.ceph.com/issues/16705>`_, `issue#16684 <http://tracker.ceph.com/issues/16684>`_, `pr#10330 <http://github.com/ceph/ceph/pull/10330>`_, Radoslaw Zarzynski)
-* rgw: need to 'open_object_section' before dump stats in 'RGWGetUsage\_… (`issue#17499 <http://tracker.ceph.com/issues/17499>`_, `pr#11325 <http://github.com/ceph/ceph/pull/11325>`_, weiqiaomiao)
-* rgw: obsolete 'radosgw-admin period prepare' command (`issue#17387 <http://tracker.ceph.com/issues/17387>`_, `pr#11278 <http://github.com/ceph/ceph/pull/11278>`_, Gaurav Kumar Garg)
-* rgw: radosgw-admin: add "--orphan-stale-secs" to --help (`issue#17280 <http://tracker.ceph.com/issues/17280>`_, `pr#11098 <http://github.com/ceph/ceph/pull/11098>`_, Ken Dreyer)
-* rgw: radosgw-admin: zone[group] modify can change realm id (`issue#16839 <http://tracker.ceph.com/issues/16839>`_, `pr#10477 <http://github.com/ceph/ceph/pull/10477>`_, Casey Bodley)
-* rgw: raise log levels for common radosgw-admin errors (`issue#16935 <http://tracker.ceph.com/issues/16935>`_, `pr#10602 <http://github.com/ceph/ceph/pull/10602>`_, Shilpa Jagannath)
-* rgw: register the correct handler for cls_user_complete_stats (`issue#16624 <http://tracker.ceph.com/issues/16624>`_, `pr#10151 <http://github.com/ceph/ceph/pull/10151>`_, Orit Wasserman)
-* rgw: remove bucket index objects when deleting the bucket (`issue#16412 <http://tracker.ceph.com/issues/16412>`_, `pr#10120 <http://github.com/ceph/ceph/pull/10120>`_, Orit Wasserman)
-* rgw: remove possible duplicate setting (`pr#10110 <http://github.com/ceph/ceph/pull/10110>`_, Yan Jun)
-* rgw: remove the field ret from class RGWPutLC (`pr#10726 <http://github.com/ceph/ceph/pull/10726>`_, weiqiaomiao)
-* rgw: remove unused bufferlist variable (`pr#10194 <http://github.com/ceph/ceph/pull/10194>`_, Yan Jun)
-* rgw: remove unused realm from radosgw-admin zone modify (`issue#16632 <http://tracker.ceph.com/issues/16632>`_, `pr#10211 <http://github.com/ceph/ceph/pull/10211>`_, Orit Wasserman)
-* rgw: remove unused variables (`pr#10589 <http://github.com/ceph/ceph/pull/10589>`_, Yan Jun)
-* rgw: return "NoSuchLifecycleConfiguration" if lifecycle config does not exist (`pr#10442 <http://github.com/ceph/ceph/pull/10442>`_, weiqiaomiao)
-* rgw: revert a commit that broke s3 signature validation (`issue#17279 <http://tracker.ceph.com/issues/17279>`_, `pr#11102 <http://github.com/ceph/ceph/pull/11102>`_, Casey Bodley)
-* rgw: rgw file: remove busy-wait in RGWLibFS::gc() (`pr#10638 <http://github.com/ceph/ceph/pull/10638>`_, Matt Benjamin)
-* rgw: rgw ldap: protect rgw::from_base64 from non-base64 input (`pr#10777 <http://github.com/ceph/ceph/pull/10777>`_, Matt Benjamin)
-* rgw: rgw ldap: enforce simple_bind w/LDAPv3 (`pr#10593 <http://github.com/ceph/ceph/pull/10593>`_, Matt Benjamin)
-* rgw: rgw multisite: RGWCoroutinesManager::run returns status of last cr (`issue#17047 <http://tracker.ceph.com/issues/17047>`_, `pr#10778 <http://github.com/ceph/ceph/pull/10778>`_, Casey Bodley)
-* rgw: rgw multisite: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR (`issue#17073 <http://tracker.ceph.com/issues/17073>`_, `pr#10779 <http://github.com/ceph/ceph/pull/10779>`_, Casey Bodley)
-* rgw: rgw multisite: fix for assertion in RGWMetaSyncCR (`issue#17044 <http://tracker.ceph.com/issues/17044>`_, `pr#10743 <http://github.com/ceph/ceph/pull/10743>`_, Casey Bodley)
-* rgw: rgw multisite: fixes for period puller (`issue#16939 <http://tracker.ceph.com/issues/16939>`_, `pr#10596 <http://github.com/ceph/ceph/pull/10596>`_, Casey Bodley)
-* rgw: rgw multisite: trim data logs as peer zones catch up (`pr#10372 <http://github.com/ceph/ceph/pull/10372>`_, Casey Bodley)
-* rgw: rgw nfs v3 completions (`pr#10745 <http://github.com/ceph/ceph/pull/10745>`_, Matt Benjamin)
-* rgw: rgw-admin: allow unsetting user's email (`issue#13286 <http://tracker.ceph.com/issues/13286>`_, `pr#11340 <http://github.com/ceph/ceph/pull/11340>`_, Yehuda Sadeh, Weijun Duan)
-* rgw: rgw/admin: fix some return values and indents (`pr#9170 <http://github.com/ceph/ceph/pull/9170>`_, Yan Jun)
-* rgw: rgw/rados: remove confused error printout (`pr#9351 <http://github.com/ceph/ceph/pull/9351>`_, Yan Jun)
-* rgw: rgw/rgw_common.cc: modify the end check in RGWHTTPArgs::sys_get (`pr#9136 <http://github.com/ceph/ceph/pull/9136>`_, zhao kun)
-* rgw: rgw/rgw_lc.cc: fix sleep time according to the error message (`pr#10930 <http://github.com/ceph/ceph/pull/10930>`_, Weibing Zhang)
-* rgw: rgw/rgw_main: fix unnecessary variables defined (`pr#10475 <http://github.com/ceph/ceph/pull/10475>`_, zhang.zezhu)
-* rgw: rgw/swift: remove redundant assignment operation (`pr#11292 <http://github.com/ceph/ceph/pull/11292>`_, Yan Jun)
-* rgw: rgw_file: pre-assign times (`issue#17367 <http://tracker.ceph.com/issues/17367>`_, `pr#11181 <http://github.com/ceph/ceph/pull/11181>`_, Matt Benjamin)
-* rgw: rgw_file: fix rename cases and unify unlink (`pr#10271 <http://github.com/ceph/ceph/pull/10271>`_, Matt Benjamin)
-* rgw: rgw_file: fix set_attrs operation (`pr#11159 <http://github.com/ceph/ceph/pull/11159>`_, Matt Benjamin)
-* rgw: rgw_file: refuse partial, out-of-order writes (`pr#10284 <http://github.com/ceph/ceph/pull/10284>`_, Matt Benjamin)
-* rgw: rgw_file: restore local definition of RGWLibFS gc interval (`pr#10756 <http://github.com/ceph/ceph/pull/10756>`_, Matt Benjamin)
-* rgw: rgw_file: unlock() must precede out label (`pr#10635 <http://github.com/ceph/ceph/pull/10635>`_, Matt Benjamin)
-* rgw: right parenthesis is missing in radosgw-admin help message on caps (`pr#10947 <http://github.com/ceph/ceph/pull/10947>`_, Weibing Zhang)
-* rgw: set correct instance on the object (`issue#17443 <http://tracker.ceph.com/issues/17443>`_, `pr#11270 <http://github.com/ceph/ceph/pull/11270>`_, Yehuda Sadeh)
-* rgw: store oldest mdlog period in rados (`issue#16894 <http://tracker.ceph.com/issues/16894>`_, `pr#10558 <http://github.com/ceph/ceph/pull/10558>`_, Casey Bodley)
-* rgw: test/multi.py add a destructive attr to tests (`pr#10401 <http://github.com/ceph/ceph/pull/10401>`_, Abhishek Lekshmanan)
-* rgw: test/rgw: add --gateways-per-zone to test_multi.py (`pr#10742 <http://github.com/ceph/ceph/pull/10742>`_, Casey Bodley)
-* rgw: test_multi.py avoid creating mds (`pr#10174 <http://github.com/ceph/ceph/pull/10174>`_, Abhishek Lekshmanan)
-* rgw: test_rgw_bencode: null terminate strings before checking (`issue#16861 <http://tracker.ceph.com/issues/16861>`_, `pr#10510 <http://github.com/ceph/ceph/pull/10510>`_, Yehuda Sadeh)
-* rgw: use endpoints from master zone instead of zonegroup (`issue#16834 <http://tracker.ceph.com/issues/16834>`_, `pr#10456 <http://github.com/ceph/ceph/pull/10456>`_, Casey Bodley)
-* rgw: use the standard usage of string.find (`pr#10226 <http://github.com/ceph/ceph/pull/10226>`_, Yan Jun)
-* rgw: verfied: f23, subset of s3tests (`pr#10448 <http://github.com/ceph/ceph/pull/10448>`_, Pritha Srivastava)
-* rgw: verified (`pr#10000 <http://github.com/ceph/ceph/pull/10000>`_, weiqiaomiao)
-* rgw: verified non-regression (MS AD) (`pr#10597 <http://github.com/ceph/ceph/pull/10597>`_, Pritha Srivastava)
-* rgw: verified: autobuild (`issue#16928 <http://tracker.ceph.com/issues/16928>`_, `pr#10579 <http://github.com/ceph/ceph/pull/10579>`_, Robin H. Johnson)
-* rgw: verified: MS AD (`pr#10307 <http://github.com/ceph/ceph/pull/10307>`_, Pritha Srivastava)
-* rgw: verified: f23 (`pr#10882 <http://github.com/ceph/ceph/pull/10882>`_, Michal Jarzabek)
-* rgw: verified: f23 (`pr#10858 <http://github.com/ceph/ceph/pull/10858>`_, Weibing Zhang)
-* rgw: verified: f23 (`pr#10822 <http://github.com/ceph/ceph/pull/10822>`_, Yan Jun)
-* rgw: verified: f23 (`pr#10929 <http://github.com/ceph/ceph/pull/10929>`_, Weibing Zhang)
-* rgw: wip: rgw multisite: preserve zone's extra pool (`issue#16712 <http://tracker.ceph.com/issues/16712>`_, `pr#10397 <http://github.com/ceph/ceph/pull/10397>`_, Abhishek Lekshmanan)
-* rgw: work around curl_multi_wait bug with non-blocking reads (`issue#15915 <http://tracker.ceph.com/issues/15915>`_, `issue#16695 <http://tracker.ceph.com/issues/16695>`_, `pr#10998 <http://github.com/ceph/ceph/pull/10998>`_, Casey Bodley)
-* rgw:add a s3 API of make torrent for a object (`pr#10396 <http://github.com/ceph/ceph/pull/10396>`_, zhouruisong)
-* rgw:add a s3 API of make torrent for a object (`pr#9589 <http://github.com/ceph/ceph/pull/9589>`_, zhouruisong)
-* rgw:bucket check remove _multipart_ prefix (`pr#6501 <http://github.com/ceph/ceph/pull/6501>`_, Weijun Duan)
-* rgw:clean unuse bufferlist (`pr#10232 <http://github.com/ceph/ceph/pull/10232>`_, weiqiaomiao)
-* rgw:fix rgw boot failed after upgrade to master latest version (`pr#10409 <http://github.com/ceph/ceph/pull/10409>`_, weiqiaomiao)
-* rgw:lifecycle feature [rebased] (`pr#9737 <http://github.com/ceph/ceph/pull/9737>`_, Ji Chen, Daniel Gryniewicz)
-* rgw: rgw/rgw_rados.h: remove unneeded class C_Tick (`pr#10954 <http://github.com/ceph/ceph/pull/10954>`_, Michal Jarzabek)
-* rgw: ext_mime_map_init add string describing for error number (`pr#9807 <http://github.com/ceph/ceph/pull/9807>`_, Yan Jun)
-* tests: Add test for global static non-POD segfault (`pr#10486 <http://github.com/ceph/ceph/pull/10486>`_, Brad Hubbard)
-* tests: populate /dev/disk/by-partuuid for scsi_debug (`issue#17100 <http://tracker.ceph.com/issues/17100>`_, `pr#10824 <http://github.com/ceph/ceph/pull/10824>`_, Loic Dachary)
-* tests: use a fixture for memstore clone testing (`pr#11190 <http://github.com/ceph/ceph/pull/11190>`_, Kefu Chai)
-* tests: run-\*make-check.sh: Make DRY_RUN actually mean a dry run (`pr#11074 <http://github.com/ceph/ceph/pull/11074>`_, Brad Hubbard)
-* tests: run-cmake-check.sh: Actually run the tests (`pr#11075 <http://github.com/ceph/ceph/pull/11075>`_, Brad Hubbard)
-* tests: run-cmake-check.sh: Init submodules (`pr#11091 <http://github.com/ceph/ceph/pull/11091>`_, Brad Hubbard)
-* tests: run-make-check.sh: Make DRY_RUN actually do a dry run (`pr#11092 <http://github.com/ceph/ceph/pull/11092>`_, Brad Hubbard)
-* tests: run-make-check.sh: pass args to do_cmake.sh (`pr#10701 <http://github.com/ceph/ceph/pull/10701>`_, John Coyle)
-* tests: unittest_chain_xattr: account for existing xattrs (`issue#16025 <http://tracker.ceph.com/issues/16025>`_, `pr#11109 <http://github.com/ceph/ceph/pull/11109>`_, Dan Mick)
-* tests: src/test/cli/* tests: POSIX Convert grep -P to grep -E (`pr#10319 <http://github.com/ceph/ceph/pull/10319>`_, Willem Jan Withagen)
-* test: ceph_test_msgr: fix circular locking dependency (`issue#16955 <http://tracker.ceph.com/issues/16955>`_, `pr#10612 <http://github.com/ceph/ceph/pull/10612>`_, Kefu Chai)
-* test: cli/crushtool: fix the test of compile-decompile-recompile.t (`issue#17306 <http://tracker.ceph.com/issues/17306>`_, `pr#11173 <http://github.com/ceph/ceph/pull/11173>`_, Kefu Chai)
-* test: libcephfs: fix gcc sys/fcntl.h warnings (`pr#10126 <http://github.com/ceph/ceph/pull/10126>`_, John Coyle)
-* test: librados: rados_connect() should succeed (`issue#17087 <http://tracker.ceph.com/issues/17087>`_, `pr#10806 <http://github.com/ceph/ceph/pull/10806>`_, Kefu Chai)
-* test: mds: add fs dump in test_ceph_argparse.py (`pr#10347 <http://github.com/ceph/ceph/pull/10347>`_, huanwen ren)
-* test: simple_dispatcher.cc: remove unused variable (`pr#9932 <http://github.com/ceph/ceph/pull/9932>`_, Michal Jarzabek)
-* test: store_test: tidy-up SyntheticWorkloadState class (`pr#10775 <http://github.com/ceph/ceph/pull/10775>`_, xie xingguo)
-* test: More portable use of mmap(MAP_ANON) (`pr#10557 <http://github.com/ceph/ceph/pull/10557>`_, Willem Jan Withagen)
-* test: Removeall merged after print_function commit needs a fix (`pr#10535 <http://github.com/ceph/ceph/pull/10535>`_, David Zafman)
-* test: ceph-disk.sh do not kill all daemons (`issue#16729 <http://tracker.ceph.com/issues/16729>`_, `pr#10346 <http://github.com/ceph/ceph/pull/10346>`_, Kefu Chai)
-* test: cephtool/test.sh: fix expect_false() calls (`pr#10133 <http://github.com/ceph/ceph/pull/10133>`_, Kefu Chai)
-* test: fix usage info of omapbench (`pr#10089 <http://github.com/ceph/ceph/pull/10089>`_, Wanlong Gao)
-* test: remove ceph_test_rados_api_tmap_migrate (`issue#16144 <http://tracker.ceph.com/issues/16144>`_, `pr#10256 <http://github.com/ceph/ceph/pull/10256>`_, Kefu Chai)
-* test: test_{compression_plugin,async_compressor}: do not copy plugins (`pr#10153 <http://github.com/ceph/ceph/pull/10153>`_, Kefu Chai)
-* test: test_rados_tool.sh: Make script work under ctest (`pr#10166 <http://github.com/ceph/ceph/pull/10166>`_, Willem Jan Withagen)
-* test: qa/workunits/cephtool/test.sh: fix omission of ceph-command (`pr#10979 <http://github.com/ceph/ceph/pull/10979>`_, Willem Jan Withagen)
-* test: qa/workunits/cephtool/test.sh: s/TMPDIR/TEMP_DIR/ (`pr#10306 <http://github.com/ceph/ceph/pull/10306>`_, Kefu Chai)
-* test: qa/workunits/cephtool/test.sh: use absolute path for TEMP_DIR (`pr#10430 <http://github.com/ceph/ceph/pull/10430>`_, Kefu Chai)
-* tools: New "removeall" used to remove head with snapshots (`pr#10098 <http://github.com/ceph/ceph/pull/10098>`_, David Zafman)
-* tools: do not closed stdout ; fix overload of "<" operator (`pr#9290 <http://github.com/ceph/ceph/pull/9290>`_, xie xingguo)
-* tools: fix the core dump when get the crushmap do not exist (`pr#10451 <http://github.com/ceph/ceph/pull/10451>`_, song baisen)
-* tools: rebuild monstore (`issue#17179 <http://tracker.ceph.com/issues/17179>`_, `pr#10933 <http://github.com/ceph/ceph/pull/10933>`_, Kefu Chai)
-* tools: use TextTable for "rados df" plain output (`pr#9362 <http://github.com/ceph/ceph/pull/9362>`_, xie xingguo)
-* tools: fio engine for objectstore (`pr#10267 <http://github.com/ceph/ceph/pull/10267>`_, Casey Bodley, Igor Fedotov, Daniel Gollub)
-* tools: rados/client: fix typo (`pr#10493 <http://github.com/ceph/ceph/pull/10493>`_, Yan Jun)
-* tools: rados/client: fix waiting on the condition variable more efficient. (`pr#9939 <http://github.com/ceph/ceph/pull/9939>`_, Yan Jun)
-* tools: tools/rebuild_mondb: kill comipling warning and other fixes (`pr#11117 <http://github.com/ceph/ceph/pull/11117>`_, xie xingguo)
-* tools: authtool: Enhance argument combinations validation (`issue#2904 <http://tracker.ceph.com/issues/2904>`_, `pr#9704 <http://github.com/ceph/ceph/pull/9704>`_, Brad Hubbard)
-* tools: ceph-disk: change ownership of initfile to ceph:ceph (`issue#16280 <http://tracker.ceph.com/issues/16280>`_, `pr#9688 <http://github.com/ceph/ceph/pull/9688>`_, Shylesh Kumar)
-* test: ceph_test_rados_api_tmap_migrate: remove test for tmap_upgrade (`pr#10234 <http://github.com/ceph/ceph/pull/10234>`_, Kefu Chai)
-
-
-v10.2.9 Jewel
-=============
-
-This point release fixes a regression introduced in v10.2.8.
-
-We recommend that all Jewel users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.9.txt>`.
-
-
-Notable Changes
----------------
-
-* cephfs: Damaged MDS with 10.2.8 (`issue#20599 <http://tracker.ceph.com/issues/20599>`_, `pr#16282 <https://github.com/ceph/ceph/pull/16282>`_, Nathan Cutler)
-
-
-
-v10.2.8 Jewel
-=============
-
-This point release brought a number of important bugfixes in all major
-components of Ceph. However, it also introduced a regression that could cause
-MDS damage, and a new release, v10.2.9, was published to address this.
-Therefore, Jewel users should *not* upgrade to this version - instead, we
-recommend upgrading directly to v10.2.9.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.8.txt>`.
-
-OSD Removal Caveat
-------------------
-
-There was a bug introduced in Jewel (#19119) that broke the mapping behavior
-when an "out" OSD that still existed in the CRUSH map was removed with 'osd rm'.
-This could result in 'misdirected op' and other errors. The bug is now fixed,
-but the fix itself introduces the same risk because the behavior may vary between
-clients and OSDs. To avoid problems, please ensure that all OSDs are removed
-from the CRUSH map before deleting them. That is, be sure to do::
-
- ceph osd crush rm osd.123
-
-before::
-
- ceph osd rm osd.123
-
-Snap Trimmer Improvements
--------------------------
-
-This release greatly improves control and throttling of the snap trimmer. It
-introduces the "osd max trimming pgs" option (defaulting to 2), which limits
-how many PGs on an OSD can be trimming snapshots at a time. And it restores
-the safe use of the "osd snap trim sleep" option, wihch defaults to 0 but
-otherwise adds the given number of seconds in delay between every dispatch
-of trim operations to the underlying system.
-
-Other Notable Changes
----------------------
-
-* build/ops: "osd marked itself down" will not recognised if host runs mon + osd on shutdown/reboot (`issue#18516 <http://tracker.ceph.com/issues/18516>`_, `pr#13492 <https://github.com/ceph/ceph/pull/13492>`_, Boris Ranto)
-* build/ops: ceph-base package missing dependency for psmisc (`issue#19129 <http://tracker.ceph.com/issues/19129>`_, `pr#13786 <https://github.com/ceph/ceph/pull/13786>`_, Nathan Cutler)
-* build/ops: enable build of ceph-resource-agents package on rpm-based os (`issue#17613 <http://tracker.ceph.com/issues/17613>`_, `issue#19546 <http://tracker.ceph.com/issues/19546>`_, `pr#13606 <https://github.com/ceph/ceph/pull/13606>`_, Nathan Cutler)
-* build/ops: rbdmap.service not included in debian packaging (jewel-only) (`issue#19547 <http://tracker.ceph.com/issues/19547>`_, `pr#14383 <https://github.com/ceph/ceph/pull/14383>`_, Ken Dreyer)
-* cephfs: Journaler may execute on_safe contexts prematurely (`issue#20055 <http://tracker.ceph.com/issues/20055>`_, `pr#15468 <https://github.com/ceph/ceph/pull/15468>`_, "Yan, Zheng")
-* cephfs: MDS assert failed when shutting down (`issue#19204 <http://tracker.ceph.com/issues/19204>`_, `pr#14683 <https://github.com/ceph/ceph/pull/14683>`_, John Spray)
-* cephfs: MDS goes readonly writing backtrace for a file whose data pool has been removed (`issue#19401 <http://tracker.ceph.com/issues/19401>`_, `pr#14682 <https://github.com/ceph/ceph/pull/14682>`_, John Spray)
-* cephfs: MDS server crashes due to inconsistent metadata (`issue#19406 <http://tracker.ceph.com/issues/19406>`_, `pr#14676 <https://github.com/ceph/ceph/pull/14676>`_, John Spray)
-* cephfs: No output for ceph mds rmfailed 0 --yes-i-really-mean-it command (`issue#16709 <http://tracker.ceph.com/issues/16709>`_, `pr#14674 <https://github.com/ceph/ceph/pull/14674>`_, John Spray)
-* cephfs: Test failure: test_data_isolated (tasks.cephfs.test_volume_client.TestVolumeClient) (`issue#18914 <http://tracker.ceph.com/issues/18914>`_, `pr#14685 <https://github.com/ceph/ceph/pull/14685>`_, "Yan, Zheng")
-* cephfs: Test failure: test_open_inode (`issue#18661 <http://tracker.ceph.com/issues/18661>`_, `pr#14669 <https://github.com/ceph/ceph/pull/14669>`_, John Spray)
-* cephfs: The mount point break off when mds switch hanppened (`issue#19437 <http://tracker.ceph.com/issues/19437>`_, `pr#14679 <https://github.com/ceph/ceph/pull/14679>`_, Guan yunfei)
-* cephfs: ceph-fuse does not recover after lost connection to MDS (`issue#16743 <http://tracker.ceph.com/issues/16743>`_, `issue#18757 <http://tracker.ceph.com/issues/18757>`_, `pr#14698 <https://github.com/ceph/ceph/pull/14698>`_, Kefu Chai, Henrik Korkuc, Patrick Donnelly)
-* cephfs: client: fix the cross-quota rename boundary check conditions (`issue#18699 <http://tracker.ceph.com/issues/18699>`_, `pr#14667 <https://github.com/ceph/ceph/pull/14667>`_, Greg Farnum)
-* cephfs: mds is crushed, after I set about 400 64KB xattr kv pairs to a file (`issue#19033 <http://tracker.ceph.com/issues/19033>`_, `pr#14684 <https://github.com/ceph/ceph/pull/14684>`_, Yang Honggang)
-* cephfs: non-local quota changes not visible until some IO is done (`issue#17939 <http://tracker.ceph.com/issues/17939>`_, `pr#15466 <https://github.com/ceph/ceph/pull/15466>`_, John Spray, Nathan Cutler)
-* cephfs: normalize file open flags internally used by cephfs (`issue#18872 <http://tracker.ceph.com/issues/18872>`_, `issue#19890 <http://tracker.ceph.com/issues/19890>`_, `pr#15000 <https://github.com/ceph/ceph/pull/15000>`_, Jan Fajerski, "Yan, Zheng")
-* common: monitor creation with IPv6 public network segfaults (`issue#19371 <http://tracker.ceph.com/issues/19371>`_, `pr#14324 <https://github.com/ceph/ceph/pull/14324>`_, Fabian Grünbichler)
-* common: radosstriper: protect aio_write API from calls with 0 bytes (`issue#14609 <http://tracker.ceph.com/issues/14609>`_, `pr#13254 <https://github.com/ceph/ceph/pull/13254>`_, Sebastien Ponce)
-* core: Objecter::epoch_barrier isn't respected in _op_submit() (`issue#19396 <http://tracker.ceph.com/issues/19396>`_, `pr#14332 <https://github.com/ceph/ceph/pull/14332>`_, Ilya Dryomov)
-* core: clear divergent_priors set off disk (`issue#17916 <http://tracker.ceph.com/issues/17916>`_, `pr#14596 <https://github.com/ceph/ceph/pull/14596>`_, Greg Farnum)
-* core: improve snap trimming, enable restriction of parallelism (`issue#19241 <http://tracker.ceph.com/issues/19241>`_, `pr#14492 <https://github.com/ceph/ceph/pull/14492>`_, Samuel Just, Greg Farnum)
-* core: os/filestore/HashIndex: be loud about splits (`issue#18235 <http://tracker.ceph.com/issues/18235>`_, `pr#13788 <https://github.com/ceph/ceph/pull/13788>`_, Dan van der Ster)
-* core: os/filestore: fix clang static check warn use-after-free (`issue#19311 <http://tracker.ceph.com/issues/19311>`_, `pr#14044 <https://github.com/ceph/ceph/pull/14044>`_, liuchang0812, yaoning)
-* core: transient jerasure unit test failures (`issue#18070 <http://tracker.ceph.com/issues/18070>`_, `issue#17762 <http://tracker.ceph.com/issues/17762>`_, `issue#18128 <http://tracker.ceph.com/issues/18128>`_, `issue#17951 <http://tracker.ceph.com/issues/17951>`_, `pr#14701 <https://github.com/ceph/ceph/pull/14701>`_, Kefu Chai, Pan Liu, Loic Dachary, Jason Dillaman)
-* core: two instances of omap_digest mismatch (`issue#18533 <http://tracker.ceph.com/issues/18533>`_, `pr#14204 <https://github.com/ceph/ceph/pull/14204>`_, Samuel Just, David Zafman)
-* doc: Improvements to crushtool manpage (`issue#19649 <http://tracker.ceph.com/issues/19649>`_, `pr#14635 <https://github.com/ceph/ceph/pull/14635>`_, Loic Dachary, Nathan Cutler)
-* doc: PendingReleaseNotes: note about 19119 (`issue#19119 <http://tracker.ceph.com/issues/19119>`_, `pr#13732 <https://github.com/ceph/ceph/pull/13732>`_, Sage Weil)
-* doc: admin ops: fix the quota section (`issue#19397 <http://tracker.ceph.com/issues/19397>`_, `pr#14654 <https://github.com/ceph/ceph/pull/14654>`_, Chu, Hua-Rong)
-* doc: radosgw-admin: add the 'object stat' command to usage (`issue#19013 <http://tracker.ceph.com/issues/19013>`_, `pr#13872 <https://github.com/ceph/ceph/pull/13872>`_, Pavan Rallabhandi)
-* doc: rgw S3 create bucket should not do response in json (`issue#18889 <http://tracker.ceph.com/issues/18889>`_, `pr#13874 <https://github.com/ceph/ceph/pull/13874>`_, Abhishek Lekshmanan)
-* fs: Invalid error code returned by MDS is causing a kernel client WARNING (`issue#19205 <http://tracker.ceph.com/issues/19205>`_, `pr#13831 <https://github.com/ceph/ceph/pull/13831>`_, Jan Fajerski, xie xingguo)
-* librbd: Incomplete declaration for ContextWQ in librbd/Journal.h (`issue#18862 <http://tracker.ceph.com/issues/18862>`_, `pr#14152 <https://github.com/ceph/ceph/pull/14152>`_, Boris Ranto)
-* librbd: Issues with C API image metadata retrieval functions (`issue#19588 <http://tracker.ceph.com/issues/19588>`_, `pr#14666 <https://github.com/ceph/ceph/pull/14666>`_, Mykola Golub)
-* librbd: Possible deadlock performing a synchronous API action while refresh in-progress (`issue#18419 <http://tracker.ceph.com/issues/18419>`_, `pr#13154 <https://github.com/ceph/ceph/pull/13154>`_, Jason Dillaman)
-* librbd: is_exclusive_lock_owner API should ping OSD (`issue#19287 <http://tracker.ceph.com/issues/19287>`_, `pr#14481 <https://github.com/ceph/ceph/pull/14481>`_, Jason Dillaman)
-* librbd: remove image header lock assertions (`issue#18244 <http://tracker.ceph.com/issues/18244>`_, `pr#13809 <https://github.com/ceph/ceph/pull/13809>`_, Jason Dillaman)
-* mds: C_MDSInternalNoop::complete doesn't free itself (`issue#19501 <http://tracker.ceph.com/issues/19501>`_, `pr#14677 <https://github.com/ceph/ceph/pull/14677>`_, "Yan, Zheng")
-* mds: Too many stat ops when trying to probe a large file (`issue#19955 <http://tracker.ceph.com/issues/19955>`_, `pr#15472 <https://github.com/ceph/ceph/pull/15472>`_, "Yan, Zheng")
-* mds: avoid reusing deleted inode in StrayManager::_purge_stray_logged (`issue#18877 <http://tracker.ceph.com/issues/18877>`_, `pr#14670 <https://github.com/ceph/ceph/pull/14670>`_, Zhi Zhang)
-* mds: enable start when session ino info is corrupt (`issue#19708 <http://tracker.ceph.com/issues/19708>`_, `issue#16842 <http://tracker.ceph.com/issues/16842>`_, `pr#14700 <https://github.com/ceph/ceph/pull/14700>`_, John Spray)
-* mds: fragment space check can cause replayed request fail (`issue#18660 <http://tracker.ceph.com/issues/18660>`_, `pr#14668 <https://github.com/ceph/ceph/pull/14668>`_, "Yan, Zheng")
-* mds: heartbeat timeout during rejoin, when working with large amount of caps/inodes (`issue#19118 <http://tracker.ceph.com/issues/19118>`_, `pr#14672 <https://github.com/ceph/ceph/pull/14672>`_, John Spray)
-* mds: issue new caps when sending reply to client (`issue#19635 <http://tracker.ceph.com/issues/19635>`_, `pr#15438 <https://github.com/ceph/ceph/pull/15438>`_, "Yan, Zheng")
-* mon: OSDMonitor: make 'osd crush move ...' work on osds (`issue#18587 <http://tracker.ceph.com/issues/18587>`_, `pr#13261 <https://github.com/ceph/ceph/pull/13261>`_, Sage Weil)
-* mon: fix 'sortbitwise' warning on jewel (`issue#20578 <http://tracker.ceph.com/issues/20578>`_, `pr#15208 <https://github.com/ceph/ceph/pull/15208>`_, huanwen ren, Sage Weil)
-* mon: make get_mon_log_message() atomic (`issue#19427 <http://tracker.ceph.com/issues/19427>`_, `pr#14587 <https://github.com/ceph/ceph/pull/14587>`_, Kefu Chai)
-* mon: remove bad rocksdb option (`issue#19392 <http://tracker.ceph.com/issues/19392>`_, `pr#14236 <https://github.com/ceph/ceph/pull/14236>`_, Sage Weil)
-* msg: IPv6 Heartbeat packets are not marked with DSCP QoS - simple messenger (`issue#18887 <http://tracker.ceph.com/issues/18887>`_, `pr#13450 <https://github.com/ceph/ceph/pull/13450>`_, Yan Jun, Robin H. Johnson)
-* msg: set close on exec flag (`issue#16390 <http://tracker.ceph.com/issues/16390>`_, `pr#13585 <https://github.com/ceph/ceph/pull/13585>`_, Kefu Chai)
-* osd: --flush-journal: sporadic segfaults on exit (`issue#18820 <http://tracker.ceph.com/issues/18820>`_, `pr#13477 <https://github.com/ceph/ceph/pull/13477>`_, Alexey Sheplyakov)
-* osd: Give requested scrubs a higher priority (`issue#15789 <http://tracker.ceph.com/issues/15789>`_, `pr#14686 <https://github.com/ceph/ceph/pull/14686>`_, David Zafman)
-* osd: Implement asynchronous scrub sleep (`issue#19986 <http://tracker.ceph.com/issues/19986>`_, `issue#19497 <http://tracker.ceph.com/issues/19497>`_, `pr#15529 <https://github.com/ceph/ceph/pull/15529>`_, Brad Hubbard)
-* osd: Object level shard errors are tracked and used if no auth available (`issue#20089 <http://tracker.ceph.com/issues/20089>`_, `pr#15416 <https://github.com/ceph/ceph/pull/15416>`_, David Zafman)
-* osd: ReplicatedPG: try with pool's use-gmt setting if hitset archive not found (`issue#19185 <http://tracker.ceph.com/issues/19185>`_, `pr#13827 <https://github.com/ceph/ceph/pull/13827>`_, Kefu Chai)
-* osd: allow client throttler to be adjusted on-fly, without restart (`issue#18791 <http://tracker.ceph.com/issues/18791>`_, `pr#13214 <https://github.com/ceph/ceph/pull/13214>`_, Piotr Dałek)
-* osd: bypass readonly ops when osd full (`issue#19394 <http://tracker.ceph.com/issues/19394>`_, `pr#14181 <https://github.com/ceph/ceph/pull/14181>`_, Jianpeng Ma, yaoning)
-* osd: degraded and misplaced status output inaccurate (`issue#18619 <http://tracker.ceph.com/issues/18619>`_, `pr#14325 <https://github.com/ceph/ceph/pull/14325>`_, David Zafman)
-* osd: new added OSD always down when full flag is set (`issue#15025 <http://tracker.ceph.com/issues/15025>`_, `pr#14326 <https://github.com/ceph/ceph/pull/14326>`_, Mingxin Liu)
-* osd: pg_pool_t::encode(): be compatible with Hammer <= 0.94.6 (`issue#19508 <http://tracker.ceph.com/issues/19508>`_, `pr#14392 <https://github.com/ceph/ceph/pull/14392>`_, Alexey Sheplyakov)
-* osd: pre-jewel "osd rm" incrementals are misinterpreted (`issue#19119 <http://tracker.ceph.com/issues/19119>`_, `pr#13884 <https://github.com/ceph/ceph/pull/13884>`_, Ilya Dryomov)
-* osd: preserve allocation hint attribute during recovery (`issue#19083 <http://tracker.ceph.com/issues/19083>`_, `pr#13647 <https://github.com/ceph/ceph/pull/13647>`_, yaoning)
-* osd: promote throttle parameters are reversed (`issue#19773 <http://tracker.ceph.com/issues/19773>`_, `pr#14791 <https://github.com/ceph/ceph/pull/14791>`_, Mark Nelson)
-* osd: reindex properly on pg log split (`issue#18975 <http://tracker.ceph.com/issues/18975>`_, `pr#14047 <https://github.com/ceph/ceph/pull/14047>`_, Alexey Sheplyakov)
-* osd: restrict want_acting to up+acting on recovery completion (`issue#18929 <http://tracker.ceph.com/issues/18929>`_, `pr#13541 <https://github.com/ceph/ceph/pull/13541>`_, Sage Weil)
-* rbd-nbd: check /sys/block/nbdX/size to ensure kernel mapped correctly (`issue#18335 <http://tracker.ceph.com/issues/18335>`_, `pr#13932 <https://github.com/ceph/ceph/pull/13932>`_, Mykola Golub, Alexey Sheplyakov)
-* rbd: [api] temporarily restrict (rbd\_)mirror_peer_add from adding multiple peers (`issue#19256 <http://tracker.ceph.com/issues/19256>`_, `pr#14664 <https://github.com/ceph/ceph/pull/14664>`_, Jason Dillaman)
-* rbd: qemu crash triggered by network issues (`issue#18436 <http://tracker.ceph.com/issues/18436>`_, `pr#13244 <https://github.com/ceph/ceph/pull/13244>`_, Jason Dillaman)
-* rbd: rbd --pool=x rename y z does not work (`issue#18326 <http://tracker.ceph.com/issues/18326>`_, `pr#14148 <https://github.com/ceph/ceph/pull/14148>`_, Gaurav Kumar Garg)
-* rbd: systemctl stop rbdmap unmaps all rbds and not just the ones in /etc/ceph/rbdmap (`issue#18884 <http://tracker.ceph.com/issues/18884>`_, `issue#18262 <http://tracker.ceph.com/issues/18262>`_, `pr#14083 <https://github.com/ceph/ceph/pull/14083>`_, David Disseldorp, Nathan Cutler)
-* rgw: "cluster [WRN] bad locator @X on object @X...." in cluster log (`issue#18980 <http://tracker.ceph.com/issues/18980>`_, `pr#14064 <https://github.com/ceph/ceph/pull/14064>`_, Casey Bodley)
-* rgw: 'radosgw-admin sync status' on master zone of non-master zonegroup (`issue#18091 <http://tracker.ceph.com/issues/18091>`_, `pr#13779 <https://github.com/ceph/ceph/pull/13779>`_, Jing Wenjun)
-* rgw: Change loglevel to 20 for 'System already converted' message (`issue#18919 <http://tracker.ceph.com/issues/18919>`_, `pr#13834 <https://github.com/ceph/ceph/pull/13834>`_, Vikhyat Umrao)
-* rgw: Use decoded URI when verifying TempURL (`issue#18590 <http://tracker.ceph.com/issues/18590>`_, `pr#13724 <https://github.com/ceph/ceph/pull/13724>`_, Alexey Sheplyakov)
-* rgw: a few cases where rgw_obj is incorrectly initialized (`issue#19096 <http://tracker.ceph.com/issues/19096>`_, `pr#13842 <https://github.com/ceph/ceph/pull/13842>`_, Yehuda Sadeh)
-* rgw: add apis to support ragweed suite (`issue#19804 <http://tracker.ceph.com/issues/19804>`_, `pr#14851 <https://github.com/ceph/ceph/pull/14851>`_, Yehuda Sadeh)
-* rgw: add bucket size limit check to radosgw-admin (`issue#17925 <http://tracker.ceph.com/issues/17925>`_, `pr#14787 <https://github.com/ceph/ceph/pull/14787>`_, Matt Benjamin)
-* rgw: allow system users to read SLO parts (`issue#19027 <http://tracker.ceph.com/issues/19027>`_, `pr#14752 <https://github.com/ceph/ceph/pull/14752>`_, Casey Bodley)
-* rgw: don't return skew time in pre-signed url (`issue#18828 <http://tracker.ceph.com/issues/18828>`_, `issue#18829 <http://tracker.ceph.com/issues/18829>`_, `pr#14605 <https://github.com/ceph/ceph/pull/14605>`_, liuchang0812)
-* rgw: failure to create s3 type subuser from admin rest api (`issue#16682 <http://tracker.ceph.com/issues/16682>`_, `pr#14815 <https://github.com/ceph/ceph/pull/14815>`_, snakeAngel2015)
-* rgw: fix break inside of yield in RGWFetchAllMetaCR (`issue#17655 <http://tracker.ceph.com/issues/17655>`_, `pr#14066 <https://github.com/ceph/ceph/pull/14066>`_, Casey Bodley)
-* rgw: fix failed to create bucket if a non-master zonegroup has a single zone (`issue#19756 <http://tracker.ceph.com/issues/19756>`_, `pr#14766 <https://github.com/ceph/ceph/pull/14766>`_, weiqiaomiao)
-* rgw: health check errors out incorrectly (`issue#19025 <http://tracker.ceph.com/issues/19025>`_, `pr#13865 <https://github.com/ceph/ceph/pull/13865>`_, Pavan Rallabhandi)
-* rgw: list_plain_entries() stops before bi_log entries (`issue#19876 <http://tracker.ceph.com/issues/19876>`_, `pr#15383 <https://github.com/ceph/ceph/pull/15383>`_, Casey Bodley)
-* rgw: multisite: fetch_remote_obj() gets wrong version when copying from remote (`issue#19599 <http://tracker.ceph.com/issues/19599>`_, `pr#14607 <https://github.com/ceph/ceph/pull/14607>`_, Zhang Shaowen, Casey Bodley)
-* rgw: multisite: some yields in RGWMetaSyncShardCR::full_sync() resume in incremental_sync() (`issue#18076 <http://tracker.ceph.com/issues/18076>`_, `pr#13837 <https://github.com/ceph/ceph/pull/13837>`_, Casey Bodley, Abhishek Lekshmanan)
-* rgw: only append zonegroups to rest params if not empty (`issue#20078 <http://tracker.ceph.com/issues/20078>`_, `pr#15312 <https://github.com/ceph/ceph/pull/15312>`_, Yehuda Sadeh, Karol Mroz)
-* rgw: pullup civet chunked (`issue#19736 <http://tracker.ceph.com/issues/19736>`_, `pr#14776 <https://github.com/ceph/ceph/pull/14776>`_, Matt Benjamin)
-* rgw: rgw_file: fix event expire check, don't expire directories being read (`issue#19623 <http://tracker.ceph.com/issues/19623>`_, `issue#19270 <http://tracker.ceph.com/issues/19270>`_, `issue#19625 <http://tracker.ceph.com/issues/19625>`_, `issue#19624 <http://tracker.ceph.com/issues/19624>`_, `issue#19634 <http://tracker.ceph.com/issues/19634>`_, `issue#19435 <http://tracker.ceph.com/issues/19435>`_, `pr#14653 <https://github.com/ceph/ceph/pull/14653>`_, Gui Hecheng, Matt Benjamin)
-* rgw: swift: disable revocation thread under certain circumstances (`issue#19499 <http://tracker.ceph.com/issues/19499>`_, `issue#9493 <http://tracker.ceph.com/issues/9493>`_, `pr#14789 <https://github.com/ceph/ceph/pull/14789>`_, Marcus Watts)
-* rgw: the swift container acl does not support field .ref (`issue#18484 <http://tracker.ceph.com/issues/18484>`_, `pr#13833 <https://github.com/ceph/ceph/pull/13833>`_, Jing Wenjun)
-* rgw: typo in rgw_admin.cc (`issue#19026 <http://tracker.ceph.com/issues/19026>`_, `pr#13863 <https://github.com/ceph/ceph/pull/13863>`_, Ronak Jain)
-* rgw: unsafe access in RGWListBucket_ObjStore_SWIFT::send_response() (`issue#19249 <http://tracker.ceph.com/issues/19249>`_, `pr#14661 <https://github.com/ceph/ceph/pull/14661>`_, Yehuda Sadeh)
-* rgw: upgrade to multisite v2 fails if there is a zone without zone info (`issue#19231 <http://tracker.ceph.com/issues/19231>`_, `pr#14136 <https://github.com/ceph/ceph/pull/14136>`_, Danny Al-Gaaf, Orit Wasserman)
-* rgw: use separate http_manager for read_sync_status (`issue#19236 <http://tracker.ceph.com/issues/19236>`_, `pr#14195 <https://github.com/ceph/ceph/pull/14195>`_, Casey Bodley, Shasha Lu)
-* rgw: when converting region_map we need to use rgw_zone_root_pool (`issue#19195 <http://tracker.ceph.com/issues/19195>`_, `pr#14143 <https://github.com/ceph/ceph/pull/14143>`_, Orit Wasserman)
-* rgw: zonegroupmap set does not work (`issue#19498 <http://tracker.ceph.com/issues/19498>`_, `issue#18725 <http://tracker.ceph.com/issues/18725>`_, `pr#14660 <https://github.com/ceph/ceph/pull/14660>`_, Orit Wasserman, Casey Bodley)
-* rgw:fix memory leaks in data/md sync (`issue#20088 <http://tracker.ceph.com/issues/20088>`_, `pr#15382 <https://github.com/ceph/ceph/pull/15382>`_, weiqiaomiao)
-* tests: 'ceph auth import -i' overwrites caps, should alert user before overwrite (`issue#18932 <http://tracker.ceph.com/issues/18932>`_, `pr#13544 <https://github.com/ceph/ceph/pull/13544>`_, Vikhyat Umrao)
-* tests: New upgrade test for #19508 (`issue#19829 <http://tracker.ceph.com/issues/19829>`_, `issue#19508 <http://tracker.ceph.com/issues/19508>`_, `pr#14930 <https://github.com/ceph/ceph/pull/14930>`_, Nathan Cutler)
-* tests: [ FAILED ] TestLibRBD.ImagePollIO in upgrade:client-upgrade-kraken-distro-basic-smithi (`issue#18617 <http://tracker.ceph.com/issues/18617>`_, `pr#13107 <https://github.com/ceph/ceph/pull/13107>`_, Jason Dillaman)
-* tests: [librados_test_stub] cls_cxx_map_get_XYZ methods don't return correct value (`issue#19597 <http://tracker.ceph.com/issues/19597>`_, `pr#14665 <https://github.com/ceph/ceph/pull/14665>`_, Jason Dillaman)
-* tests: additional rbd-mirror test stability improvements (`issue#18935 <http://tracker.ceph.com/issues/18935>`_, `pr#14154 <https://github.com/ceph/ceph/pull/14154>`_, Jason Dillaman)
-* tests: api_misc: [ FAILED ] LibRadosMiscConnectFailure.ConnectFailure (`issue#15368 <http://tracker.ceph.com/issues/15368>`_, `pr#14763 <https://github.com/ceph/ceph/pull/14763>`_, Sage Weil)
-* tests: buffer overflow in test LibCephFS.DirLs (`issue#18941 <http://tracker.ceph.com/issues/18941>`_, `pr#14671 <https://github.com/ceph/ceph/pull/14671>`_, "Yan, Zheng")
-* tests: clone workunit using the branch specified by task (`issue#19429 <http://tracker.ceph.com/issues/19429>`_, `pr#14371 <https://github.com/ceph/ceph/pull/14371>`_, Kefu Chai, Dan Mick)
-* tests: drop upgrade/hammer-jewel-x (`issue#20574 <http://tracker.ceph.com/issues/20574>`_, `pr#15933 <https://github.com/ceph/ceph/pull/15933>`_, Nathan Cutler)
-* tests: dummy suite fails in OpenStack (`issue#18259 <http://tracker.ceph.com/issues/18259>`_, `pr#14070 <https://github.com/ceph/ceph/pull/14070>`_, Nathan Cutler)
-* tests: eliminate race condition in Thrasher constructor (`issue#18799 <http://tracker.ceph.com/issues/18799>`_, `pr#13608 <https://github.com/ceph/ceph/pull/13608>`_, Nathan Cutler)
-* tests: enable quotas for pre-luminous quota tests (`issue#20412 <http://tracker.ceph.com/issues/20412>`_, `pr#15936 <https://github.com/ceph/ceph/pull/15936>`_, Patrick Donnelly)
-* tests: fix oversight in yaml comment (`issue#20581 <http://tracker.ceph.com/issues/20581>`_, `pr#14449 <https://github.com/ceph/ceph/pull/14449>`_, Nathan Cutler)
-* tests: move swift.py task from teuthology to ceph, phase one (jewel) (`issue#20392 <http://tracker.ceph.com/issues/20392>`_, `pr#15870 <https://github.com/ceph/ceph/pull/15870>`_, Nathan Cutler, Sage Weil, Warren Usui, Greg Farnum, Ali Maredia, Tommi Virtanen, Zack Cerza, Sam Lang, Yehuda Sadeh, Joe Buck, Josh Durgin)
-* tests: qa/Fixed upgrade sequence to 10.2.0 -> 10.2.7 -> latest -x (10.2.8) (`issue#20572 <http://tracker.ceph.com/issues/20572>`_, `pr#16089 <https://github.com/ceph/ceph/pull/16089>`_, Yuri Weinstein)
-* tests: qa/suites/upgrade/hammer-x: set "sortbitwise" for jewel clusters (`issue#20342 <http://tracker.ceph.com/issues/20342>`_, `pr#15842 <https://github.com/ceph/ceph/pull/15842>`_, Nathan Cutler)
-* tests: qa/workunits/rados/test-upgrade-\*: whitelist tests for master (part 1) (`issue#20577 <http://tracker.ceph.com/issues/20577>`_, `pr#15360 <https://github.com/ceph/ceph/pull/15360>`_, Sage Weil)
-* tests: qa/workunits/rados/test-upgrade-\*: whitelist tests for master (part 2) (`issue#20576 <http://tracker.ceph.com/issues/20576>`_, `pr#15778 <https://github.com/ceph/ceph/pull/15778>`_, Kefu Chai)
-* tests: qa/workunits/rados/test-upgrade-\*: whitelist tests the right way (`issue#20575 <http://tracker.ceph.com/issues/20575>`_, `pr#15824 <https://github.com/ceph/ceph/pull/15824>`_, Kefu Chai)
-* tests: rados: sleep before ceph tell osd.0 flush_pg_stats after restart (`issue#16239 <http://tracker.ceph.com/issues/16239>`_, `issue#20489 <http://tracker.ceph.com/issues/20489>`_, `pr#14710 <https://github.com/ceph/ceph/pull/14710>`_, Kefu Chai, Nathan Cutler)
-* tests: run upgrade/client-upgrade on latest CentOS 7.3 (`issue#20573 <http://tracker.ceph.com/issues/20573>`_, `pr#16088 <https://github.com/ceph/ceph/pull/16088>`_, Nathan Cutler)
-* tests: run-rbd-unit-tests.sh assert in lockdep_will_lock, TestLibRBD.ObjectMapConsistentSnap (`issue#17447 <http://tracker.ceph.com/issues/17447>`_, `pr#14150 <https://github.com/ceph/ceph/pull/14150>`_, Jason Dillaman)
-* tests: systemd test backport to jewel (`issue#19717 <http://tracker.ceph.com/issues/19717>`_, `pr#14694 <https://github.com/ceph/ceph/pull/14694>`_, Vasu Kulkarni)
-* tests: test/librados/tmap_migrate: g_ceph_context->put() upon return (`issue#20579 <http://tracker.ceph.com/issues/20579>`_, `pr#14809 <https://github.com/ceph/ceph/pull/14809>`_, Kefu Chai)
-* tests: test_notify.py: rbd.InvalidArgument: error updating features for image test_notify_clone2 (`issue#19692 <http://tracker.ceph.com/issues/19692>`_, `pr#14680 <https://github.com/ceph/ceph/pull/14680>`_, Jason Dillaman)
-* tests: upgrade/hammer-x failing with OSD has the store locked when Thrasher runs ceph-objectstore-tool on down PG (`issue#19556 <http://tracker.ceph.com/issues/19556>`_, `pr#14416 <https://github.com/ceph/ceph/pull/14416>`_, Nathan Cutler)
-* tests: upgrade:hammer-x/stress-split-erasure-code-x86_64 fails in 10.2.8 integration testing (`issue#20413 <http://tracker.ceph.com/issues/20413>`_, `pr#15904 <https://github.com/ceph/ceph/pull/15904>`_, Nathan Cutler)
-* tools: brag fails to count "in" mds (`issue#19192 <http://tracker.ceph.com/issues/19192>`_, `pr#14112 <https://github.com/ceph/ceph/pull/14112>`_, Oleh Prypin, Peng Zhang)
-* tools: ceph-disk does not support cluster names different than 'ceph' (`issue#17821 <http://tracker.ceph.com/issues/17821>`_, `pr#14765 <https://github.com/ceph/ceph/pull/14765>`_, Loic Dachary)
-* tools: ceph-disk: Racing between partition creation and device node creation (`issue#19428 <http://tracker.ceph.com/issues/19428>`_, `pr#14329 <https://github.com/ceph/ceph/pull/14329>`_, Erwan Velu)
-* tools: ceph-disk: bluestore --setgroup incorrectly set with user (`issue#18955 <http://tracker.ceph.com/issues/18955>`_, `pr#13489 <https://github.com/ceph/ceph/pull/13489>`_, craigchi)
-* tools: ceph-disk: ceph-disk list reports mount error for OSD having mount options with SELinux context (`issue#17331 <http://tracker.ceph.com/issues/17331>`_, `pr#14402 <https://github.com/ceph/ceph/pull/14402>`_, Brad Hubbard)
-* tools: ceph-disk: do not setup_statedir on trigger (`issue#19941 <http://tracker.ceph.com/issues/19941>`_, `pr#15504 <https://github.com/ceph/ceph/pull/15504>`_, Loic Dachary)
-* tools: ceph-disk: enable directory backed OSD at boot time (`issue#19628 <http://tracker.ceph.com/issues/19628>`_, `pr#14602 <https://github.com/ceph/ceph/pull/14602>`_, Loic Dachary)
-* tools: rados: RadosImport::import should return an error if Rados::connect fails (`issue#19319 <http://tracker.ceph.com/issues/19319>`_, `pr#14113 <https://github.com/ceph/ceph/pull/14113>`_, Brad Hubbard)
-
-
-v10.2.7 Jewel
-=============
-
-This point release fixes several important bugs in RBD mirroring, librbd & RGW.
-
-We recommend that all v10.2.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.7.txt>`.
-
-
-Notable Changes
----------------
-
-* librbd: possible race in ExclusiveLock handle_peer_notification (`issue#19368 <http://tracker.ceph.com/issues/19368>`_, `pr#14233 <https://github.com/ceph/ceph/pull/14233>`_, Mykola Golub)
-* osd: Increase priority for inactive PGs backfill (`issue#18350 <http://tracker.ceph.com/issues/18350>`_, `pr#13232 <https://github.com/ceph/ceph/pull/13232>`_, Bartłomiej Święcki)
-* osd: Scrub improvements and other fixes (`issue#17857 <http://tracker.ceph.com/issues/17857>`_, `issue#18114 <http://tracker.ceph.com/issues/18114>`_, `issue#13937 <http://tracker.ceph.com/issues/13937>`_, `issue#18113 <http://tracker.ceph.com/issues/18113>`_, `pr#13146 <https://github.com/ceph/ceph/pull/13146>`_, Kefu Chai, David Zafman)
-* osd: fix OSD network address in OSD heartbeat_check log message (`issue#18657 <http://tracker.ceph.com/issues/18657>`_, `pr#13108 <https://github.com/ceph/ceph/pull/13108>`_, Vikhyat Umrao)
-* rbd-mirror: deleting a snapshot during sync can result in read errors (`issue#18990 <http://tracker.ceph.com/issues/18990>`_, `pr#13596 <https://github.com/ceph/ceph/pull/13596>`_, Jason Dillaman)
-* rgw: 'period update' does not remove short_zone_ids of deleted zones (`issue#15618 <http://tracker.ceph.com/issues/15618>`_, `pr#14140 <https://github.com/ceph/ceph/pull/14140>`_, Casey Bodley)
-* rgw: DUMPABLE flag is cleared by setuid preventing coredumps (`issue#19089 <http://tracker.ceph.com/issues/19089>`_, `pr#13844 <https://github.com/ceph/ceph/pull/13844>`_, Brad Hubbard)
-* rgw: clear data_sync_cr if RGWDataSyncControlCR fails (`issue#17569 <http://tracker.ceph.com/issues/17569>`_, `pr#13886 <https://github.com/ceph/ceph/pull/13886>`_, Casey Bodley)
-* rgw: fix openssl (`issue#11239 <http://tracker.ceph.com/issues/11239>`_, `issue#19098 <http://tracker.ceph.com/issues/19098>`_, `issue#16535 <http://tracker.ceph.com/issues/16535>`_, `pr#14215 <https://github.com/ceph/ceph/pull/14215>`_, Marcus Watts)
-* rgw: fix swift cannot disable object versioning with empty X-Versions-Location (`issue#18852 <http://tracker.ceph.com/issues/18852>`_, `pr#13823 <https://github.com/ceph/ceph/pull/13823>`_, Jing Wenjun)
-* rgw: librgw: RGWLibFS::setattr fails on directories (`issue#18808 <http://tracker.ceph.com/issues/18808>`_, `pr#13778 <https://github.com/ceph/ceph/pull/13778>`_, Matt Benjamin)
-* rgw: make sending Content-Length in 204 and 304 controllable (`issue#16602 <http://tracker.ceph.com/issues/16602>`_, `pr#13503 <https://github.com/ceph/ceph/pull/13503>`_, Radoslaw Zarzynski, Matt Benjamin)
-* rgw: multipart uploads copy part support (`issue#12790 <http://tracker.ceph.com/issues/12790>`_, `pr#13219 <https://github.com/ceph/ceph/pull/13219>`_, Yehuda Sadeh, Javier M. Mellid, Matt Benjamin)
-* rgw: multisite: RGWMetaSyncShardControlCR gives up on EIO (`issue#19019 <http://tracker.ceph.com/issues/19019>`_, `pr#13867 <https://github.com/ceph/ceph/pull/13867>`_, Casey Bodley)
-* rgw: radosgw/swift: clean up flush / newline behavior (`issue#18473 <http://tracker.ceph.com/issues/18473>`_, `pr#14100 <https://github.com/ceph/ceph/pull/14100>`_, Nathan Cutler, Marcus Watts, Matt Benjamin)
-* rgw: radosgw/swift: clean up flush / newline behavior. (`issue#18473 <http://tracker.ceph.com/issues/18473>`_, `pr#13143 <https://github.com/ceph/ceph/pull/13143>`_, Marcus Watts, Matt Benjamin)
-* rgw: rgw_fh: RGWFileHandle dtor must also cond-unlink from FHCache (`issue#19112 <http://tracker.ceph.com/issues/19112>`_, `pr#14231 <https://github.com/ceph/ceph/pull/14231>`_, Matt Benjamin)
-* rgw: rgw_file: avoid interning .. in FHCache table and don't ref for them (`issue#19036 <http://tracker.ceph.com/issues/19036>`_, `pr#13848 <https://github.com/ceph/ceph/pull/13848>`_, Matt Benjamin)
-* rgw: rgw_file: interned RGWFileHandle objects need parent refs (`issue#18650 <http://tracker.ceph.com/issues/18650>`_, `pr#13583 <https://github.com/ceph/ceph/pull/13583>`_, Matt Benjamin)
-* rgw: rgw_file: restore (corrected) fix for dir partial match (return of FLAG_EXACT_MATCH) (`issue#19060 <http://tracker.ceph.com/issues/19060>`_, `issue#18992 <http://tracker.ceph.com/issues/18992>`_, `issue#19059 <http://tracker.ceph.com/issues/19059>`_, `pr#13858 <https://github.com/ceph/ceph/pull/13858>`_, Matt Benjamin)
-* rgw: rgw_file: FHCache residence check should be exhaustive (`issue#19111 <http://tracker.ceph.com/issues/19111>`_, `pr#14169 <https://github.com/ceph/ceph/pull/14169>`_, Matt Benjamin)
-* rgw: rgw_file: ensure valid_s3_object_name for directories, too (`issue#19066 <http://tracker.ceph.com/issues/19066>`_, `pr#13717 <https://github.com/ceph/ceph/pull/13717>`_, Matt Benjamin)
-* rgw: rgw_file: fix marker computation (`issue#19018 <http://tracker.ceph.com/issues/19018>`_, `issue#18989 <http://tracker.ceph.com/issues/18989>`_, `issue#18992 <http://tracker.ceph.com/issues/18992>`_, `issue#18991 <http://tracker.ceph.com/issues/18991>`_, `pr#13869 <https://github.com/ceph/ceph/pull/13869>`_, Matt Benjamin)
-* rgw: rgw_file: wip dir orphan (`issue#18992 <http://tracker.ceph.com/issues/18992>`_, `issue#18989 <http://tracker.ceph.com/issues/18989>`_, `issue#19018 <http://tracker.ceph.com/issues/19018>`_, `issue#18991 <http://tracker.ceph.com/issues/18991>`_, `pr#14205 <https://github.com/ceph/ceph/pull/14205>`_, Gui Hecheng, Matt Benjamin)
-* rgw: rgw_file: various fixes (`pr#14206 <https://github.com/ceph/ceph/pull/14206>`_, Matt Benjamin)
-* rgw: rgw_file: expand argv (`pr#14230 <https://github.com/ceph/ceph/pull/14230>`_, Matt Benjamin)
-
-
-v10.2.6 Jewel
-=============
-
-This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
-
-We recommend that all v10.2.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.6.txt>`.
-
-OSDs No Longer Send ENXIO by Default
-------------------------------------
-
-In previous versions, if a client sent an op to the wrong OSD, the OSD
-would reply with ENXIO. The rationale here is that the client or OSD is
-clearly buggy and we want to surface the error as clearly as possible.
-We now only send the ENXIO reply if the osd_enxio_on_misdirected_op option
-is enabled (it's off by default). This means that a VM using librbd that
-previously would have gotten an EIO and gone read-only will now see a
-blocked/hung IO instead.
-
-Other Notable Changes
----------------------
-
-* build/ops: add hostname sanity check to run-{c}make-check.sh (`issue#18134 <http://tracker.ceph.com/issues/18134>`_, `pr#12302 <http://github.com/ceph/ceph/pull/12302>`_, Nathan Cutler)
-* build/ops: add ldap lib to rgw lib deps based on build config (`issue#17313 <http://tracker.ceph.com/issues/17313>`_, `pr#13183 <http://github.com/ceph/ceph/pull/13183>`_, Nathan Cutler)
-* build/ops: ceph-create-keys loops forever (`issue#17753 <http://tracker.ceph.com/issues/17753>`_, `pr#11884 <http://github.com/ceph/ceph/pull/11884>`_, Alfredo Deza)
-* build/ops: ceph daemons DUMPABLE flag is cleared by setuid preventing coredumps (`issue#17650 <http://tracker.ceph.com/issues/17650>`_, `pr#11736 <http://github.com/ceph/ceph/pull/11736>`_, Patrick Donnelly)
-* build/ops: fixed compilation error when --with-radowsgw=no (`issue#18512 <http://tracker.ceph.com/issues/18512>`_, `pr#12729 <http://github.com/ceph/ceph/pull/12729>`_, Pan Liu)
-* build/ops: fixed the issue when --disable-server, compilation fails. (`issue#18120 <http://tracker.ceph.com/issues/18120>`_, `pr#12239 <http://github.com/ceph/ceph/pull/12239>`_, Pan Liu)
-* build/ops: fix undefined crypto references with --with-xio (`issue#18133 <http://tracker.ceph.com/issues/18133>`_, `pr#12296 <http://github.com/ceph/ceph/pull/12296>`_, Nathan Cutler)
-* build/ops: install-deps.sh based on /etc/os-release (`issue#18466 <http://tracker.ceph.com/issues/18466>`_, `issue#18198 <http://tracker.ceph.com/issues/18198>`_, `pr#12405 <http://github.com/ceph/ceph/pull/12405>`_, Jan Fajerski, Nitin A Kamble, Nathan Cutler)
-* build/ops: Remove the runtime dependency on lsb_release (`issue#17425 <http://tracker.ceph.com/issues/17425>`_, `pr#11875 <http://github.com/ceph/ceph/pull/11875>`_, John Coyle, Brad Hubbard)
-* build/ops: rpm: /etc/ceph/rbdmap is packaged with executable access rights (`issue#17395 <http://tracker.ceph.com/issues/17395>`_, `pr#11855 <http://github.com/ceph/ceph/pull/11855>`_, Ken Dreyer)
-* build/ops: selinux: Allow ceph to manage tmp files (`issue#17436 <http://tracker.ceph.com/issues/17436>`_, `pr#13048 <http://github.com/ceph/ceph/pull/13048>`_, Boris Ranto)
-* build/ops: systemd: Restart Mon after 10s in case of failure (`issue#18635 <http://tracker.ceph.com/issues/18635>`_, `pr#13058 <http://github.com/ceph/ceph/pull/13058>`_, Wido den Hollander)
-* build/ops: systemd restarts Ceph Mon to quickly after failing to start (`issue#18635 <http://tracker.ceph.com/issues/18635>`_, `pr#13184 <http://github.com/ceph/ceph/pull/13184>`_, Wido den Hollander)
-* ceph-disk: fix flake8 errors (`issue#17898 <http://tracker.ceph.com/issues/17898>`_, `pr#11976 <http://github.com/ceph/ceph/pull/11976>`_, Ken Dreyer)
-* cephfs: fuse client crash when adding a new osd (`issue#17270 <http://tracker.ceph.com/issues/17270>`_, `pr#11860 <http://github.com/ceph/ceph/pull/11860>`_, John Spray)
-* cli: ceph-disk: convert none str to str before printing it (`issue#18371 <http://tracker.ceph.com/issues/18371>`_, `pr#13187 <http://github.com/ceph/ceph/pull/13187>`_, Kefu Chai)
-* client: Fix lookup of "/.." in jewel (`issue#18408 <http://tracker.ceph.com/issues/18408>`_, `pr#12766 <http://github.com/ceph/ceph/pull/12766>`_, Jeff Layton)
-* client: fix stale entries in command table (`issue#17974 <http://tracker.ceph.com/issues/17974>`_, `pr#12137 <http://github.com/ceph/ceph/pull/12137>`_, John Spray)
-* client: populate metadata during mount (`issue#18361 <http://tracker.ceph.com/issues/18361>`_, `pr#13085 <http://github.com/ceph/ceph/pull/13085>`_, John Spray)
-* cli: implement functionality for adding, editing and removing omap values with binary keys (`issue#18123 <http://tracker.ceph.com/issues/18123>`_, `pr#12755 <http://github.com/ceph/ceph/pull/12755>`_, Jason Dillaman)
-* common: Improve linux dcache hash algorithm (`issue#17599 <http://tracker.ceph.com/issues/17599>`_, `pr#11529 <http://github.com/ceph/ceph/pull/11529>`_, Yibo Cai)
-* common: utime.h: fix timezone issue in round_to_* funcs. (`issue#14862 <http://tracker.ceph.com/issues/14862>`_, `pr#11508 <http://github.com/ceph/ceph/pull/11508>`_, Zhao Chao)
-* doc: Python Swift client commands in Quick Developer Guide don't match configuration in vstart.sh (`issue#17746 <http://tracker.ceph.com/issues/17746>`_, `pr#13043 <http://github.com/ceph/ceph/pull/13043>`_, Ronak Jain)
-* librbd: allow to open an image without opening parent image (`issue#18325 <http://tracker.ceph.com/issues/18325>`_, `pr#13130 <http://github.com/ceph/ceph/pull/13130>`_, Ricardo Dias)
-* librbd: metadata_set API operation should not change global config setting (`issue#18465 <http://tracker.ceph.com/issues/18465>`_, `pr#13168 <http://github.com/ceph/ceph/pull/13168>`_, Mykola Golub)
-* librbd: new API method to force break a peer's exclusive lock (`issue#15632 <http://tracker.ceph.com/issues/15632>`_, `issue#16773 <http://tracker.ceph.com/issues/16773>`_, `issue#17188 <http://tracker.ceph.com/issues/17188>`_, `issue#16988 <http://tracker.ceph.com/issues/16988>`_, `issue#17210 <http://tracker.ceph.com/issues/17210>`_, `issue#17251 <http://tracker.ceph.com/issues/17251>`_, `issue#18429 <http://tracker.ceph.com/issues/18429>`_, `issue#17227 <http://tracker.ceph.com/issues/17227>`_, `issue#18327 <http://tracker.ceph.com/issues/18327>`_, `issue#17015 <http://tracker.ceph.com/issues/17015>`_, `pr#12890 <http://github.com/ceph/ceph/pull/12890>`_, Danny Al-Gaaf, Mykola Golub, Jason Dillaman)
-* librbd: properly order concurrent updates to the object map (`issue#16176 <http://tracker.ceph.com/issues/16176>`_, `pr#12909 <http://github.com/ceph/ceph/pull/12909>`_, Jason Dillaman)
-* librbd: restore journal access when force disabling mirroring (`issue#17588 <http://tracker.ceph.com/issues/17588>`_, `pr#11916 <http://github.com/ceph/ceph/pull/11916>`_, Mykola Golub)
-* mds: Cannot create deep directories when caps contain path=/somepath (`issue#17858 <http://tracker.ceph.com/issues/17858>`_, `pr#12154 <http://github.com/ceph/ceph/pull/12154>`_, Patrick Donnelly)
-* mds: cephfs metadata pool: deep-scrub error omap_digest != best guess omap_digest (`issue#17177 <http://tracker.ceph.com/issues/17177>`_, `pr#12380 <http://github.com/ceph/ceph/pull/12380>`_, Yan, Zheng)
-* mds: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa) (`issue#18574 <http://tracker.ceph.com/issues/18574>`_, `pr#13023 <http://github.com/ceph/ceph/pull/13023>`_, John Spray)
-* mds: ceph-fuse crash during snapshot tests (`issue#18460 <http://tracker.ceph.com/issues/18460>`_, `pr#13120 <http://github.com/ceph/ceph/pull/13120>`_, Yan, Zheng)
-* mds: ceph_volume_client: fix recovery from partial auth update (`issue#17216 <http://tracker.ceph.com/issues/17216>`_, `pr#11656 <http://github.com/ceph/ceph/pull/11656>`_, Ramana Raja)
-* mds: ceph_volume_client.py : Error: Can't handle arrays of non-strings (`issue#17800 <http://tracker.ceph.com/issues/17800>`_, `pr#12325 <http://github.com/ceph/ceph/pull/12325>`_, Ramana Raja)
-* mds: Cleanly reject session evict command when in replay (`issue#17801 <http://tracker.ceph.com/issues/17801>`_, `pr#12153 <http://github.com/ceph/ceph/pull/12153>`_, Yan, Zheng)
-* mds: client segfault on ceph_rmdir path / (`issue#9935 <http://tracker.ceph.com/issues/9935>`_, `pr#13029 <http://github.com/ceph/ceph/pull/13029>`_, Michal Jarzabek)
-* mds: Clients without pool-changing caps shouldn't be allowed to change pool_namespace (`issue#17798 <http://tracker.ceph.com/issues/17798>`_, `pr#12155 <http://github.com/ceph/ceph/pull/12155>`_, John Spray)
-* mds: Decode errors on backtrace will crash MDS (`issue#18311 <http://tracker.ceph.com/issues/18311>`_, `pr#12836 <http://github.com/ceph/ceph/pull/12836>`_, Nathan Cutler, John Spray)
-* mds: false failing to respond to cache pressure warning (`issue#17611 <http://tracker.ceph.com/issues/17611>`_, `pr#11861 <http://github.com/ceph/ceph/pull/11861>`_, Yan, Zheng)
-* mds: finish clientreplay requests before requesting active state (`issue#18461 <http://tracker.ceph.com/issues/18461>`_, `pr#13113 <http://github.com/ceph/ceph/pull/13113>`_, Yan, Zheng)
-* mds: fix incorrect assertion in Server::_dir_is_nonempty() (`issue#18578 <http://tracker.ceph.com/issues/18578>`_, `pr#13459 <http://github.com/ceph/ceph/pull/13459>`_, Yan, Zheng)
-* mds: fix MDSMap upgrade decoding (`issue#17837 <http://tracker.ceph.com/issues/17837>`_, `pr#13139 <http://github.com/ceph/ceph/pull/13139>`_, John Spray, Patrick Donnelly)
-* mds: fix missing ll_get for ll_walk (`issue#18086 <http://tracker.ceph.com/issues/18086>`_, `pr#13125 <http://github.com/ceph/ceph/pull/13125>`_, Gui Hecheng)
-* mds: Fix mount root for ceph_mount users and change tarball format (`issue#18312 <http://tracker.ceph.com/issues/18312>`_, `issue#18254 <http://tracker.ceph.com/issues/18254>`_, `pr#12592 <http://github.com/ceph/ceph/pull/12592>`_, Jeff Layton)
-* mds: fix null pointer dereference in Locker::handle_client_caps (`issue#18306 <http://tracker.ceph.com/issues/18306>`_, `pr#13060 <http://github.com/ceph/ceph/pull/13060>`_, Yan, Zheng)
-* mds: lookup of /.. in returns -ENOENT (`issue#18408 <http://tracker.ceph.com/issues/18408>`_, `pr#12783 <http://github.com/ceph/ceph/pull/12783>`_, Jeff Layton)
-* mds: MDS crashes on missing metadata object (`issue#18179 <http://tracker.ceph.com/issues/18179>`_, `pr#13119 <http://github.com/ceph/ceph/pull/13119>`_, Yan, Zheng)
-* mds: mds fails to respawn if executable has changed (`issue#17531 <http://tracker.ceph.com/issues/17531>`_, `pr#11873 <http://github.com/ceph/ceph/pull/11873>`_, Patrick Donnelly)
-* mds: MDS: false failing to respond to cache pressure warning (`issue#17716 <http://tracker.ceph.com/issues/17716>`_, `pr#11856 <http://github.com/ceph/ceph/pull/11856>`_, Yan, Zheng)
-* mds: MDS goes damaged on blacklist (failed to read JournalPointer: -108 ((108) Cannot send after transport endpoint shutdown) (`issue#17236 <http://tracker.ceph.com/issues/17236>`_, `pr#11413 <http://github.com/ceph/ceph/pull/11413>`_, John Spray)
-* mds: MDS long-time blocked ops. ceph-fuse locks up with getattr of file (`issue#17275 <http://tracker.ceph.com/issues/17275>`_, `pr#11858 <http://github.com/ceph/ceph/pull/11858>`_, Yan, Zheng)
-* mds: speed up readdir by skipping unwanted dn (`issue#18519 <http://tracker.ceph.com/issues/18519>`_, `pr#12921 <http://github.com/ceph/ceph/pull/12921>`_, Xiaoxi Chen)
-* mds: standby-replay daemons can sometimes miss events (`issue#17954 <http://tracker.ceph.com/issues/17954>`_, `pr#13126 <http://github.com/ceph/ceph/pull/13126>`_, John Spray)
-* mon: cache tiering: base pool last_force_resend not respected (racing read got wrong version) (`issue#18366 <http://tracker.ceph.com/issues/18366>`_, `pr#13115 <http://github.com/ceph/ceph/pull/13115>`_, Sage Weil)
-* mon: ceph osd down detection behaviour (`issue#18104 <http://tracker.ceph.com/issues/18104>`_, `pr#12677 <http://github.com/ceph/ceph/pull/12677>`_, xie xingguo)
-* mon: Error EINVAL: removing mon.a at 172.21.15.16:6789/0, there will be 1 monitors (`issue#17725 <http://tracker.ceph.com/issues/17725>`_, `pr#11999 <http://github.com/ceph/ceph/pull/11999>`_, Joao Eduardo Luis)
-* mon: health does not report pgs stuck in more than one state (`issue#17515 <http://tracker.ceph.com/issues/17515>`_, `pr#11660 <http://github.com/ceph/ceph/pull/11660>`_, Sage Weil)
-* mon: monitor assertion failure when deactivating mds in (invalid) fscid 0 (`issue#17518 <http://tracker.ceph.com/issues/17518>`_, `pr#11862 <http://github.com/ceph/ceph/pull/11862>`_, Patrick Donnelly)
-* mon: monitor cannot start because of FAILED assert(info.state == MDSMap::STATE_STANDBY) (`issue#18166 <http://tracker.ceph.com/issues/18166>`_, `pr#13123 <http://github.com/ceph/ceph/pull/13123>`_, John Spray, Patrick Donnelly)
-* mon: osd flag health message is misleading (`issue#18175 <http://tracker.ceph.com/issues/18175>`_, `pr#13117 <http://github.com/ceph/ceph/pull/13117>`_, Sage Weil)
-* mon: OSDMonitor: clear jewel+ feature bits when talking to Hammer OSD (`issue#18582 <http://tracker.ceph.com/issues/18582>`_, `pr#13131 <http://github.com/ceph/ceph/pull/13131>`_, Piotr Dałek)
-* mon: OSDs marked OUT wrongly after monitor failover (`issue#17719 <http://tracker.ceph.com/issues/17719>`_, `pr#11947 <http://github.com/ceph/ceph/pull/11947>`_, Dong Wu)
-* mon: peon wrongly delete routed pg stats op before receive pg stats ack (`issue#18458 <http://tracker.ceph.com/issues/18458>`_, `pr#13045 <http://github.com/ceph/ceph/pull/13045>`_, Mingxin Liu)
-* mon: send updated monmap to its subscribers (`issue#17558 <http://tracker.ceph.com/issues/17558>`_, `pr#11743 <http://github.com/ceph/ceph/pull/11743>`_, Kefu Chai)
-* msgr: don't truncate message sequence to 32-bits (`issue#16122 <http://tracker.ceph.com/issues/16122>`_, `pr#12416 <http://github.com/ceph/ceph/pull/12416>`_, Yan, Zheng)
-* msgr: msg/simple: clear_pipe when wait() is mopping up pipes (`issue#15784 <http://tracker.ceph.com/issues/15784>`_, `pr#13062 <http://github.com/ceph/ceph/pull/13062>`_, Sage Weil)
-* msgr: msg/simple/Pipe: error decoding addr (`issue#18072 <http://tracker.ceph.com/issues/18072>`_, `pr#12291 <http://github.com/ceph/ceph/pull/12291>`_, Sage Weil)
-* osd: Add config option to disable new scrubs during recovery (`issue#17866 <http://tracker.ceph.com/issues/17866>`_, `pr#11944 <http://github.com/ceph/ceph/pull/11944>`_, Wido den Hollander)
-* osd: collection_list shadow return value # (`issue#17713 <http://tracker.ceph.com/issues/17713>`_, `pr#11737 <http://github.com/ceph/ceph/pull/11737>`_, Haomai Wang)
-* osd: do not send ENXIO on misdirected op by default (`issue#18751 <http://tracker.ceph.com/issues/18751>`_, `pr#13255 <http://github.com/ceph/ceph/pull/13255>`_, Sage Weil)
-* osd: FileStore: fiemap cannot be totally retrieved in xfs when the number of extents > 1364 (`issue#17610 <http://tracker.ceph.com/issues/17610>`_, `pr#11998 <http://github.com/ceph/ceph/pull/11998>`_, Kefu Chai, Ning Yao)
-* osd: leveldb corruption leads to Operation not permitted not handled and assert (`issue#18037 <http://tracker.ceph.com/issues/18037>`_, `pr#12789 <http://github.com/ceph/ceph/pull/12789>`_, Nathan Cutler)
-* osd: limit omap data in push op (`issue#16128 <http://tracker.ceph.com/issues/16128>`_, `pr#11991 <http://github.com/ceph/ceph/pull/11991>`_, Wanlong Gao)
-* osd: osd crashes when radosgw-admin bi list --max-entries=1 command runing (`issue#17745 <http://tracker.ceph.com/issues/17745>`_, `pr#11758 <http://github.com/ceph/ceph/pull/11758>`_, weiqiaomiao)
-* osd: osd_max_backfills default has changed, documentation should reflect that. (`issue#17701 <http://tracker.ceph.com/issues/17701>`_, `pr#11735 <http://github.com/ceph/ceph/pull/11735>`_, huangjun)
-* osd: OSDMonitor: only reject MOSDBoot based on up_from if inst matches (`issue#17899 <http://tracker.ceph.com/issues/17899>`_, `pr#12868 <http://github.com/ceph/ceph/pull/12868>`_, Samuel Just)
-* osd: osd/PG: publish PG stats when backfill-related states change (`issue#18369 <http://tracker.ceph.com/issues/18369>`_, `pr#12875 <http://github.com/ceph/ceph/pull/12875>`_, Alexey Sheplyakov, Sage Weil)
-* osd: Remove extra call to reg_next_scrub() during splits (`issue#16474 <http://tracker.ceph.com/issues/16474>`_, `pr#11606 <http://github.com/ceph/ceph/pull/11606>`_, David Zafman)
-* osd: Revert "Merge pull request #12978 from asheplyakov/jewel-18581" (`issue#18809 <http://tracker.ceph.com/issues/18809>`_, `pr#13280 <http://github.com/ceph/ceph/pull/13280>`_, Samuel Just)
-* osd: update_log_missing does not order correctly with osd_ops (`issue#17789 <http://tracker.ceph.com/issues/17789>`_, `pr#11997 <http://github.com/ceph/ceph/pull/11997>`_, Samuel Just)
-* qa/tasks: backport rbd_fio fixes to jewel (`issue#13512 <http://tracker.ceph.com/issues/13512>`_, `pr#13104 <http://github.com/ceph/ceph/pull/13104>`_, Ilya Dryomov)
-* qa/tasks/workunits: backport misc fixes to jewel (`issue#18336 <http://tracker.ceph.com/issues/18336>`_, `pr#12912 <http://github.com/ceph/ceph/pull/12912>`_, Sage Weil)
-* rados: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas (part 2) (`issue#15943 <http://tracker.ceph.com/issues/15943>`_, `issue#18504 <http://tracker.ceph.com/issues/18504>`_, `pr#12791 <http://github.com/ceph/ceph/pull/12791>`_, Samuel Just)
-* rados: Memory leaks in object_list_begin and object_list_end (`issue#18252 <http://tracker.ceph.com/issues/18252>`_, `pr#13118 <http://github.com/ceph/ceph/pull/13118>`_, Brad Hubbard)
-* rados: The request lock RPC message might be incorrectly ignored (`issue#17030 <http://tracker.ceph.com/issues/17030>`_, `pr#10865 <http://github.com/ceph/ceph/pull/10865>`_, Jason Dillaman)
-* rbd: add image id block name prefix APIs (`issue#18270 <http://tracker.ceph.com/issues/18270>`_, `pr#12529 <http://github.com/ceph/ceph/pull/12529>`_, Jason Dillaman)
-* rbd: add max_part and nbds_max options in rbd nbd map, in order to keep consistent with (`issue#18186 <http://tracker.ceph.com/issues/18186>`_, `pr#12426 <http://github.com/ceph/ceph/pull/12426>`_, Pan Liu)
-* rbd: Attempting to remove an image w/ incompatible features results in partial removal (`issue#18315 <http://tracker.ceph.com/issues/18315>`_, `pr#13156 <http://github.com/ceph/ceph/pull/13156>`_, Dongsheng Yang)
-* rbd: bench-write will crash if --io-size is 4G (`issue#18422 <http://tracker.ceph.com/issues/18422>`_, `pr#13129 <http://github.com/ceph/ceph/pull/13129>`_, Gaurav Kumar Garg)
-* rbd: diff calculate can hide parent extents when examining first snapshot in clone (`issue#18068 <http://tracker.ceph.com/issues/18068>`_, `pr#12322 <http://github.com/ceph/ceph/pull/12322>`_, Jason Dillaman)
-* rbd: Exclusive lock improperly initialized on read-only image when using snap_set API (`issue#17618 <http://tracker.ceph.com/issues/17618>`_, `pr#11852 <http://github.com/ceph/ceph/pull/11852>`_, Jason Dillaman)
-* rbd: FAILED assert(m_processing == 0) while running test_lock_fence.sh (`issue#17973 <http://tracker.ceph.com/issues/17973>`_, `pr#12323 <http://github.com/ceph/ceph/pull/12323>`_, Venky Shankar)
-* rbd: Improve error reporting from rbd feature enable/disable (`issue#16985 <http://tracker.ceph.com/issues/16985>`_, `pr#13157 <http://github.com/ceph/ceph/pull/13157>`_, Gaurav Kumar Garg)
-* rbd: JournalMetadata flooding with errors when being blacklisted (`issue#18243 <http://tracker.ceph.com/issues/18243>`_, `pr#12739 <http://github.com/ceph/ceph/pull/12739>`_, Jason Dillaman)
-* rbd: librbd: use proper snapshot when computing diff parent overlap (`issue#18200 <http://tracker.ceph.com/issues/18200>`_, `pr#12649 <http://github.com/ceph/ceph/pull/12649>`_, Xiaoxi Chen)
-* rbd: partition func should be enabled When load nbd.ko for rbd-nbd (`issue#18115 <http://tracker.ceph.com/issues/18115>`_, `pr#12754 <http://github.com/ceph/ceph/pull/12754>`_, Pan Liu)
-* rbd: Potential race when removing two-way mirroring image (`issue#18447 <http://tracker.ceph.com/issues/18447>`_, `pr#13233 <http://github.com/ceph/ceph/pull/13233>`_, Mykola Golub)
-* rbd: [qa] crash in journal-enabled fsx run (`issue#18618 <http://tracker.ceph.com/issues/18618>`_, `pr#13128 <http://github.com/ceph/ceph/pull/13128>`_, Jason Dillaman)
-* rbd: 'rbd du' of missing image does not return error (`issue#16987 <http://tracker.ceph.com/issues/16987>`_, `pr#11854 <http://github.com/ceph/ceph/pull/11854>`_, Dongsheng Yang)
-* rbd: rbd-mirror: gmock warnings in bootstrap request unit tests (`issue#18048 <http://tracker.ceph.com/issues/18048>`_, `issue#18012 <http://tracker.ceph.com/issues/18012>`_, `issue#18156 <http://tracker.ceph.com/issues/18156>`_, `issue#16991 <http://tracker.ceph.com/issues/16991>`_, `issue#18051 <http://tracker.ceph.com/issues/18051>`_, `pr#12425 <http://github.com/ceph/ceph/pull/12425>`_, Mykola Golub)
-* rbd: rbd-mirror: image sync object map reload logs message (`issue#16179 <http://tracker.ceph.com/issues/16179>`_, `pr#12753 <http://github.com/ceph/ceph/pull/12753>`_, runsisi)
-* rbd: rbd-mirror: snap protect of non-layered image results in split-brain (`issue#16962 <http://tracker.ceph.com/issues/16962>`_, `pr#11869 <http://github.com/ceph/ceph/pull/11869>`_, Mykola Golub)
-* rbd: [rbd-mirror] sporadic image replayer shut down failure (`issue#18441 <http://tracker.ceph.com/issues/18441>`_, `pr#13155 <http://github.com/ceph/ceph/pull/13155>`_, Jason Dillaman)
-* rbd: rbd-nbd: disallow mapping images >2TB in size (`issue#17219 <http://tracker.ceph.com/issues/17219>`_, `pr#11870 <http://github.com/ceph/ceph/pull/11870>`_, Mykola Golub)
-* rbd: rbd-nbd: invalid error code for "failed to read nbd request" messages (`issue#18242 <http://tracker.ceph.com/issues/18242>`_, `pr#12756 <http://github.com/ceph/ceph/pull/12756>`_, Mykola Golub)
-* rbd: status json format has duplicated/overwritten key (`issue#18261 <http://tracker.ceph.com/issues/18261>`_, `pr#12741 <http://github.com/ceph/ceph/pull/12741>`_, Mykola Golub)
-* rbd: TestLibRBD.DiscardAfterWrite doesn't handle rbd_skip_partial_discard = true (`issue#17750 <http://tracker.ceph.com/issues/17750>`_, `pr#11853 <http://github.com/ceph/ceph/pull/11853>`_, Jason Dillaman)
-* rbd: truncate can cause unflushed snapshot data lose (`issue#17193 <http://tracker.ceph.com/issues/17193>`_, `pr#12324 <http://github.com/ceph/ceph/pull/12324>`_, Yan, Zheng)
-* : ReplicatedBackend: take read locks for clone sources during recovery (`issue#17831 <http://tracker.ceph.com/issues/17831>`_, `issue#18583 <http://tracker.ceph.com/issues/18583>`_, `pr#12978 <http://github.com/ceph/ceph/pull/12978>`_, Samuel Just)
-* rgw: add option to log custom HTTP headers (rgw_log_http_headers) (`issue#18891 <http://tracker.ceph.com/issues/18891>`_, `pr#12490 <http://github.com/ceph/ceph/pull/12490>`_, Matt Benjamin)
-* rgw: add suport for Swift-at-root dependent features of Swift API (`issue#18526 <http://tracker.ceph.com/issues/18526>`_, `issue#16673 <http://tracker.ceph.com/issues/16673>`_, `pr#11497 <http://github.com/ceph/ceph/pull/11497>`_, Pritha Srivastava, Radoslaw Zarzynski, Pete Zaitcev, Abhishek Lekshmanan)
-* rgw: add support for the prefix parameter in account listing of Swift API (`issue#17931 <http://tracker.ceph.com/issues/17931>`_, `pr#12258 <http://github.com/ceph/ceph/pull/12258>`_, Radoslaw Zarzynski)
-* rgw: Add workaround for upgrade issues for older jewel versions (`issue#17820 <http://tracker.ceph.com/issues/17820>`_, `pr#12316 <http://github.com/ceph/ceph/pull/12316>`_, Orit Wasserman)
-* rgw: be aware abount tenants on cls_user_bucket -> rgw_bucket conversion (`issue#18364 <http://tracker.ceph.com/issues/18364>`_, `issue#16355 <http://tracker.ceph.com/issues/16355>`_, `pr#13276 <http://github.com/ceph/ceph/pull/13276>`_, Radoslaw Zarzynski)
-* rgw: bucket check remove _multipart_ prefix (`issue#13724 <http://tracker.ceph.com/issues/13724>`_, `pr#11470 <http://github.com/ceph/ceph/pull/11470>`_, Weijun Duan)
-* rgw: bucket resharding (`issue#17549 <http://tracker.ceph.com/issues/17549>`_, `issue#17550 <http://tracker.ceph.com/issues/17550>`_, `pr#13341 <http://github.com/ceph/ceph/pull/13341>`_, Yehuda Sadeh, Robin H. Johnson)
-* rgw: disable virtual hosting of buckets when no hostnames are configured (`issue#17440 <http://tracker.ceph.com/issues/17440>`_, `issue#15975 <http://tracker.ceph.com/issues/15975>`_, `issue#17136 <http://tracker.ceph.com/issues/17136>`_, `pr#11760 <http://github.com/ceph/ceph/pull/11760>`_, Casey Bodley, Robin H. Johnson)
-* rgw: do not abort when accept a CORS request with short origin (`issue#18187 <http://tracker.ceph.com/issues/18187>`_, `pr#12397 <http://github.com/ceph/ceph/pull/12397>`_, LiuYang)
-* rgw: don't store empty chains in gc (`issue#17897 <http://tracker.ceph.com/issues/17897>`_, `pr#12174 <http://github.com/ceph/ceph/pull/12174>`_, Yehuda Sadeh)
-* rgw:fix for deleting objects name beginning and ending with underscores of one bucket using POST method of js sdk. (`issue#17888 <http://tracker.ceph.com/issues/17888>`_, `pr#12320 <http://github.com/ceph/ceph/pull/12320>`_, Casey Bodley)
-* rgw: fix period update crash (`issue#18631 <http://tracker.ceph.com/issues/18631>`_, `pr#13273 <http://github.com/ceph/ceph/pull/13273>`_, Orit Wasserman)
-* rgw: fix put_acls for objects starting and ending with underscore (`issue#17625 <http://tracker.ceph.com/issues/17625>`_, `pr#11675 <http://github.com/ceph/ceph/pull/11675>`_, Orit Wasserman)
-* rgw: fix use of marker in List::list_objects() (`issue#18331 <http://tracker.ceph.com/issues/18331>`_, `pr#13358 <http://github.com/ceph/ceph/pull/13358>`_, Yehuda Sadeh)
-* rgw: for the create_bucket api, if the input creation_time is zero, we … (`issue#16597 <http://tracker.ceph.com/issues/16597>`_, `pr#11990 <http://github.com/ceph/ceph/pull/11990>`_, weiqiaomiao)
-* rgw: Have a flavor of bucket deletion in radosgw-admin to bypass garbage collection (`issue#15557 <http://tracker.ceph.com/issues/15557>`_, `pr#10661 <http://github.com/ceph/ceph/pull/10661>`_, Pavan Rallabhandi)
-* rgw: json encode/decode of RGWBucketInfo missing index_type field (`issue#17755 <http://tracker.ceph.com/issues/17755>`_, `pr#11759 <http://github.com/ceph/ceph/pull/11759>`_, Yehuda Sadeh)
-* rgw: ldap: enforce simple_bind w/LDAPv3 redux (`issue#18339 <http://tracker.ceph.com/issues/18339>`_, `pr#12678 <http://github.com/ceph/ceph/pull/12678>`_, Weibing Zhang)
-* rgw: leak from RGWMetaSyncShardCR::incremental_sync (`issue#18412 <http://tracker.ceph.com/issues/18412>`_, `issue#18300 <http://tracker.ceph.com/issues/18300>`_, `pr#13004 <http://github.com/ceph/ceph/pull/13004>`_, Casey Bodley, Sage Weil)
-* rgw: leak in RGWFetchAllMetaCR (`issue#17812 <http://tracker.ceph.com/issues/17812>`_, `pr#11872 <http://github.com/ceph/ceph/pull/11872>`_, Casey Bodley)
-* rgw: librgw: objects created from s3 apis are not visible from nfs mount point (`issue#18651 <http://tracker.ceph.com/issues/18651>`_, `pr#13177 <http://github.com/ceph/ceph/pull/13177>`_, Matt Benjamin)
-* rgw: log name instead of id for SystemMetaObj on failure (`issue#15776 <http://tracker.ceph.com/issues/15776>`_, `pr#12622 <http://github.com/ceph/ceph/pull/12622>`_, Wido den Hollander, Abhishek Lekshmanan)
-* rgw: multimds: mds entering up:replay and processing down mds aborts (`issue#17670 <http://tracker.ceph.com/issues/17670>`_, `pr#11857 <http://github.com/ceph/ceph/pull/11857>`_, Patrick Donnelly)
-* rgw: multipart upload copy (`issue#12790 <http://tracker.ceph.com/issues/12790>`_, `pr#13068 <http://github.com/ceph/ceph/pull/13068>`_, Yehuda Sadeh, Javier M. Mellid, Matt Benjamin)
-* rgw: multisite: after finishing full sync on a bucket, incremental sync starts over from the beginning (`issue#17661 <http://tracker.ceph.com/issues/17661>`_, `issue#17624 <http://tracker.ceph.com/issues/17624>`_, `pr#11864 <http://github.com/ceph/ceph/pull/11864>`_, Zengran Zhang, Casey Bodley)
-* rgw: multisite: assert(next) failed in RGWMetaSyncCR (`issue#17044 <http://tracker.ceph.com/issues/17044>`_, `pr#11477 <http://github.com/ceph/ceph/pull/11477>`_, Casey Bodley)
-* rgw: multisite: coroutine deadlock assertion on error in FetchAllMetaCR (`issue#17571 <http://tracker.ceph.com/issues/17571>`_, `pr#11866 <http://github.com/ceph/ceph/pull/11866>`_, Casey Bodley)
-* rgw: multisite: coroutine deadlock in RGWMetaSyncCR after ECANCELED errors (`issue#17465 <http://tracker.ceph.com/issues/17465>`_, `pr#12738 <http://github.com/ceph/ceph/pull/12738>`_, Casey Bodley)
-* rgw: multisite doesn't retry RGWFetchAllMetaCR on failed lease (`issue#17047 <http://tracker.ceph.com/issues/17047>`_, `pr#11476 <http://github.com/ceph/ceph/pull/11476>`_, Casey Bodley)
-* rgw: multisite: ECANCELED & 500 error on bucket delete (`issue#17698 <http://tracker.ceph.com/issues/17698>`_, `pr#12044 <http://github.com/ceph/ceph/pull/12044>`_, Casey Bodley)
-* rgw: multisite: failed assertion in 'radosgw-admin bucket sync status' (`issue#18083 <http://tracker.ceph.com/issues/18083>`_, `pr#12314 <http://github.com/ceph/ceph/pull/12314>`_, Casey Bodley)
-* rgw: multisite: fix ref counting of completions (`issue#17792 <http://tracker.ceph.com/issues/17792>`_, `issue#18414 <http://tracker.ceph.com/issues/18414>`_, `issue#17793 <http://tracker.ceph.com/issues/17793>`_, `issue#18407 <http://tracker.ceph.com/issues/18407>`_, `pr#13001 <http://github.com/ceph/ceph/pull/13001>`_, Casey Bodley)
-* rgw: multisite: metadata master can get the wrong value for 'oldest_log_period' (`issue#16894 <http://tracker.ceph.com/issues/16894>`_, `pr#11868 <http://github.com/ceph/ceph/pull/11868>`_, Casey Bodley)
-* rgw: multisite: obsolete 'radosgw-admin period prepare' command (`issue#17387 <http://tracker.ceph.com/issues/17387>`_, `pr#11574 <http://github.com/ceph/ceph/pull/11574>`_, Gaurav Kumar Garg)
-* rgw: multisite: race between ReadSyncStatus and InitSyncStatus leads to EIO errors (`issue#17568 <http://tracker.ceph.com/issues/17568>`_, `pr#11865 <http://github.com/ceph/ceph/pull/11865>`_, Casey Bodley)
-* rgw: multisite requests failing with '400 Bad Request' with civetweb 1.8 (`issue#17822 <http://tracker.ceph.com/issues/17822>`_, `pr#12313 <http://github.com/ceph/ceph/pull/12313>`_, Casey Bodley)
-* rgw: multisite: segfault after changing value of rgw_data_log_num_shards (`issue#18488 <http://tracker.ceph.com/issues/18488>`_, `pr#13180 <http://github.com/ceph/ceph/pull/13180>`_, Casey Bodley)
-* rgw: multisite: sync status reports master is on a different period (`issue#18064 <http://tracker.ceph.com/issues/18064>`_, `pr#13175 <http://github.com/ceph/ceph/pull/13175>`_, Abhishek Lekshmanan)
-* rgw: multisite upgrade from hammer -> jewel ignores rgw_region_root_pool (`issue#17963 <http://tracker.ceph.com/issues/17963>`_, `pr#12156 <http://github.com/ceph/ceph/pull/12156>`_, Casey Bodley)
-* rgw: radosgw-admin period update reverts deleted zonegroup (`issue#17239 <http://tracker.ceph.com/issues/17239>`_, `pr#13171 <http://github.com/ceph/ceph/pull/13171>`_, Orit Wasserman)
-* rgw: Realm set does not create a new period (`issue#18333 <http://tracker.ceph.com/issues/18333>`_, `pr#13182 <http://github.com/ceph/ceph/pull/13182>`_, Orit Wasserman)
-* rgw: remove spurious mount entries for RGW buckets (`issue#17850 <http://tracker.ceph.com/issues/17850>`_, `pr#12045 <http://github.com/ceph/ceph/pull/12045>`_, Matt Benjamin)
-* rgw: Replacing '+' with "%20" in canonical uri for s3 v4 auth. (`issue#17076 <http://tracker.ceph.com/issues/17076>`_, `pr#12542 <http://github.com/ceph/ceph/pull/12542>`_, Pritha Srivastava)
-* rgw: rgw-admin: missing command to modify placement targets (`issue#18078 <http://tracker.ceph.com/issues/18078>`_, `pr#12428 <http://github.com/ceph/ceph/pull/12428>`_, Yehuda Sadeh, Casey Bodley)
-* rgw: RGWRados::get_system_obj() sends unnecessary stat request before read (`issue#17580 <http://tracker.ceph.com/issues/17580>`_, `pr#11867 <http://github.com/ceph/ceph/pull/11867>`_, Casey Bodley)
-* rgw: rgw_rest_s3: apply missed base64 try-catch (`issue#17663 <http://tracker.ceph.com/issues/17663>`_, `pr#11672 <http://github.com/ceph/ceph/pull/11672>`_, Matt Benjamin)
-* rgw: RGW will not list Argonaut-era bucket via HTTP (but radosgw-admin works) (`issue#17372 <http://tracker.ceph.com/issues/17372>`_, `pr#11863 <http://github.com/ceph/ceph/pull/11863>`_, Yehuda Sadeh)
-* rgw: sends omap_getvals with (u64)-1 limit (`issue#17985 <http://tracker.ceph.com/issues/17985>`_, `pr#12419 <http://github.com/ceph/ceph/pull/12419>`_, Yehuda Sadeh, Sage Weil)
-* rgw: slave zonegroup cannot enable the bucket versioning (`issue#18003 <http://tracker.ceph.com/issues/18003>`_, `pr#13173 <http://github.com/ceph/ceph/pull/13173>`_, Orit Wasserman)
-* rgw: TempURL properly handles accounts created with the implicit tenant (`issue#17961 <http://tracker.ceph.com/issues/17961>`_, `pr#12079 <http://github.com/ceph/ceph/pull/12079>`_, Radoslaw Zarzynski)
-* rgw: the value of total_time is wrong in the result of 'radosgw-admin log show' opt (`issue#17598 <http://tracker.ceph.com/issues/17598>`_, `pr#11876 <http://github.com/ceph/ceph/pull/11876>`_, weiqiaomiao)
-* rgw: Unable to commit period zonegroup change (`issue#17364 <http://tracker.ceph.com/issues/17364>`_, `pr#12315 <http://github.com/ceph/ceph/pull/12315>`_, Orit Wasserman)
-* rgw: valgrind "invalid read size 4" RGWGetObj (`issue#18071 <http://tracker.ceph.com/issues/18071>`_, `pr#12997 <http://github.com/ceph/ceph/pull/12997>`_, Matt Benjamin)
-* rgw: work around curl_multi_wait bug with non-blocking reads (`issue#15915 <http://tracker.ceph.com/issues/15915>`_, `issue#16368 <http://tracker.ceph.com/issues/16368>`_, `issue#16695 <http://tracker.ceph.com/issues/16695>`_, `pr#11627 <http://github.com/ceph/ceph/pull/11627>`_, John Coyle, Casey Bodley)
-* tests: add require_jewel_osds before upgrading last hammer node (`issue#18719 <http://tracker.ceph.com/issues/18719>`_, `pr#13161 <http://github.com/ceph/ceph/pull/13161>`_, Nathan Cutler)
-* tests: add require_jewel_osds to upgrade/hammer-x/tiering (`issue#18920 <http://tracker.ceph.com/issues/18920>`_, `pr#13404 <http://github.com/ceph/ceph/pull/13404>`_, Nathan Cutler)
-* tests: assertion failure in a radosgw-admin related task (`issue#17167 <http://tracker.ceph.com/issues/17167>`_, `pr#12764 <http://github.com/ceph/ceph/pull/12764>`_, Orit Wasserman)
-* tests: Cannot reserve CentOS 7.2 smithi machines (`issue#18416 <http://tracker.ceph.com/issues/18416>`_, `issue#18401 <http://tracker.ceph.com/issues/18401>`_, `pr#13050 <http://github.com/ceph/ceph/pull/13050>`_, Nathan Cutler, Sage Weil, Yuri Weinstein)
-* tests: ignore bogus ceph-objectstore-tool error in ceph_manager (`issue#16263 <http://tracker.ceph.com/issues/16263>`_, `pr#13240 <http://github.com/ceph/ceph/pull/13240>`_, Nathan Cutler, Kefu Chai)
-* tests: objecter_requests workunit fails on wip branches (`issue#18393 <http://tracker.ceph.com/issues/18393>`_, `pr#12761 <http://github.com/ceph/ceph/pull/12761>`_, Sage Weil)
-* tests: qa/suites/upgrade/hammer-x: break stress split ec symlinks (`issue#19006 <http://tracker.ceph.com/issues/19006>`_, `pr#13533 <http://github.com/ceph/ceph/pull/13533>`_, Nathan Cutler)
-* tests: qa/suites/upgrade/hammer-x/stress-split: finish thrashing before final upgrade (`issue#19004 <http://tracker.ceph.com/issues/19004>`_, `pr#13222 <http://github.com/ceph/ceph/pull/13222>`_, Sage Weil)
-* tests: qa/tasks/ceph_deploy.py: use dev option (`issue#18736 <http://tracker.ceph.com/issues/18736>`_, `pr#13106 <http://github.com/ceph/ceph/pull/13106>`_, Vasu Kulkarni)
-* tests: qa/workunits/rbd: use more recent qemu-iotests that support Xenial (`issue#18149 <http://tracker.ceph.com/issues/18149>`_, `issue#10773 <http://tracker.ceph.com/issues/10773>`_, `pr#13103 <http://github.com/ceph/ceph/pull/13103>`_, Jason Dillaman)
-* tests: remove qa/suites/buildpackages (`issue#18846 <http://tracker.ceph.com/issues/18846>`_, `pr#13299 <http://github.com/ceph/ceph/pull/13299>`_, Loic Dachary)
-* tests: SUSE yaml facets in qa/distros/all are out of date (`issue#18856 <http://tracker.ceph.com/issues/18856>`_, `issue#18846 <http://tracker.ceph.com/issues/18846>`_, `pr#13331 <http://github.com/ceph/ceph/pull/13331>`_, Nathan Cutler)
-* tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci (`issue#18440 <http://tracker.ceph.com/issues/18440>`_, `pr#12822 <http://github.com/ceph/ceph/pull/12822>`_, Nathan Cutler, Venky Shankar)
-* tests: update Ubuntu image url after ceph.com refactor (`issue#18542 <http://tracker.ceph.com/issues/18542>`_, `pr#12959 <http://github.com/ceph/ceph/pull/12959>`_, Jason Dillaman)
-* tests: upgrade:hammer-x: install firefly only on Ubuntu 14.04 (`issue#18089 <http://tracker.ceph.com/issues/18089>`_, `pr#13153 <http://github.com/ceph/ceph/pull/13153>`_, Nathan Cutler)
-* tests: use ceph-jewel branch for s3tests (`issue#18384 <http://tracker.ceph.com/issues/18384>`_, `pr#12745 <http://github.com/ceph/ceph/pull/12745>`_, Nathan Cutler)
-* tests: Workunits needlessly wget from git.ceph.com (`issue#18336 <http://tracker.ceph.com/issues/18336>`_, `issue#18271 <http://tracker.ceph.com/issues/18271>`_, `issue#18388 <http://tracker.ceph.com/issues/18388>`_, `pr#12686 <http://github.com/ceph/ceph/pull/12686>`_, Nathan Cutler, Sage Weil)
-* test: temporarily disable fork()'ing tests (`issue#16556 <http://tracker.ceph.com/issues/16556>`_, `issue#17832 <http://tracker.ceph.com/issues/17832>`_, `pr#11953 <http://github.com/ceph/ceph/pull/11953>`_, John Spray)
-* test: test fails due to The UNIX domain socket path (`issue#16014 <http://tracker.ceph.com/issues/16014>`_, `pr#12151 <http://github.com/ceph/ceph/pull/12151>`_, Loic Dachary)
-* tools: ceph-disk: ceph-disk@.service races with ceph-osd@.service (`issue#17889 <http://tracker.ceph.com/issues/17889>`_, `issue#17813 <http://tracker.ceph.com/issues/17813>`_, `pr#12147 <http://github.com/ceph/ceph/pull/12147>`_, Loic Dachary)
-* tools: ceph-disk --dmcrypt create must not require admin key (`issue#17849 <http://tracker.ceph.com/issues/17849>`_, `pr#12033 <http://github.com/ceph/ceph/pull/12033>`_, Loic Dachary)
-* tools: ceph-disk prepare writes osd log 0 with root owner (`issue#18538 <http://tracker.ceph.com/issues/18538>`_, `pr#13025 <http://github.com/ceph/ceph/pull/13025>`_, Samuel Matzek)
-* tools: crushtool --compile is create output despite of missing item (`issue#17306 <http://tracker.ceph.com/issues/17306>`_, `pr#11410 <http://github.com/ceph/ceph/pull/11410>`_, Kefu Chai)
-* tools: rados bench seq must verify the hostname (`issue#17526 <http://tracker.ceph.com/issues/17526>`_, `pr#13049 <http://github.com/ceph/ceph/pull/13049>`_, Loic Dachary)
-* tools: snapshotted RBD extent objects can't be manually evicted from a cache tier (`issue#17896 <http://tracker.ceph.com/issues/17896>`_, `pr#11968 <http://github.com/ceph/ceph/pull/11968>`_, Mingxin Liu)
-* tools: systemd/ceph-disk: reduce ceph-disk flock contention (`issue#18049 <http://tracker.ceph.com/issues/18049>`_, `issue#13160 <http://tracker.ceph.com/issues/13160>`_, `pr#12210 <http://github.com/ceph/ceph/pull/12210>`_, David Disseldorp)
-
-
-v10.2.5 Jewel
-=============
-
-This point release fixes an important `regression introduced in v10.2.4 <http://tracker.ceph.com/issues/18185>`_.
-
-We recommend that all v10.2.x users upgrade.
-
-Notable Changes
----------------
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.5.txt>`.
-
-* msg/simple/Pipe: avoid returning 0 on poll timeout (`issue#18185 <http://tracker.ceph.com/issues/18185>`_, `pr#12376 <https://github.com/ceph/ceph/pull/12376>`_, Sage Weil)
-
-v10.2.4 Jewel
-=============
-
-This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
-
-We recommend that all v10.2.x users upgrade. Also note the following when upgrading from hammer
-
-Upgrading from hammer
----------------------
-
-When the last hammer OSD in a cluster containing jewel MONs is
-upgraded to jewel, as of 10.2.4 the jewel MONs will issue this
-warning: "all OSDs are running jewel or later but the
-'require_jewel_osds' osdmap flag is not set" and change the
-cluster health status to HEALTH_WARN.
-
-This is a signal for the admin to do "ceph osd set require_jewel_osds" - by
-doing this, the upgrade path is complete and no more pre-Jewel OSDs may be added
-to the cluster.
-
-
-Notable Changes
----------------
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.4.txt>`.
-
-* build/ops: aarch64: Compiler-based detection of crc32 extended CPU type is broken (`issue#17516 <http://tracker.ceph.com/issues/17516>`_, `pr#11492 <http://github.com/ceph/ceph/pull/11492>`_, Alexander Graf)
-* build/ops: allow building RGW with LDAP disabled (`issue#17312 <http://tracker.ceph.com/issues/17312>`_, `pr#11478 <http://github.com/ceph/ceph/pull/11478>`_, Daniel Gryniewicz)
-* build/ops: backport 'logrotate: Run as root/ceph' (`issue#17381 <http://tracker.ceph.com/issues/17381>`_, `pr#11201 <http://github.com/ceph/ceph/pull/11201>`_, Boris Ranto)
-* build/ops: ceph installs stuff in %_udevrulesdir but does not own that directory (`issue#16949 <http://tracker.ceph.com/issues/16949>`_, `pr#10862 <http://github.com/ceph/ceph/pull/10862>`_, Nathan Cutler)
-* build/ops: ceph-osd-prestart.sh fails confusingly when data directory does not exist (`issue#17091 <http://tracker.ceph.com/issues/17091>`_, `pr#10812 <http://github.com/ceph/ceph/pull/10812>`_, Nathan Cutler)
-* build/ops: disable LTTng-UST in openSUSE builds (`issue#16937 <http://tracker.ceph.com/issues/16937>`_, `pr#10794 <http://github.com/ceph/ceph/pull/10794>`_, Michel Normand)
-* build/ops: i386 tarball gitbuilder failure on master (`issue#16398 <http://tracker.ceph.com/issues/16398>`_, `pr#10855 <http://github.com/ceph/ceph/pull/10855>`_, Vikhyat Umrao, Kefu Chai)
-* build/ops: include more files in "make dist" tarball (`issue#17560 <http://tracker.ceph.com/issues/17560>`_, `pr#11431 <http://github.com/ceph/ceph/pull/11431>`_, Ken Dreyer)
-* build/ops: incorrect value of CINIT_FLAG_DEFER_DROP_PRIVILEGES (`issue#16663 <http://tracker.ceph.com/issues/16663>`_, `pr#10278 <http://github.com/ceph/ceph/pull/10278>`_, Casey Bodley)
-* build/ops: remove SYSTEMD_RUN from initscript (`issue#7627 <http://tracker.ceph.com/issues/7627>`_, `issue#16441 <http://tracker.ceph.com/issues/16441>`_, `issue#16440 <http://tracker.ceph.com/issues/16440>`_, `pr#9872 <http://github.com/ceph/ceph/pull/9872>`_, Vladislav Odintsov)
-* build/ops: systemd: add install section to rbdmap.service file (`issue#17541 <http://tracker.ceph.com/issues/17541>`_, `pr#11158 <http://github.com/ceph/ceph/pull/11158>`_, Jelle vd Kooij)
-* common: Enable/Disable of features is allowed even the features are already enabled/disabled (`issue#16079 <http://tracker.ceph.com/issues/16079>`_, `pr#11460 <http://github.com/ceph/ceph/pull/11460>`_, Lu Shi)
-* common: Log.cc: Assign LOG_INFO priority to syslog calls (`issue#15808 <http://tracker.ceph.com/issues/15808>`_, `pr#11231 <http://github.com/ceph/ceph/pull/11231>`_, Brad Hubbard)
-* common: Proxied operations shouldn't result in error messages if replayed (`issue#16130 <http://tracker.ceph.com/issues/16130>`_, `pr#11461 <http://github.com/ceph/ceph/pull/11461>`_, Vikhyat Umrao)
-* common: Request exclusive lock if owner sends -ENOTSUPP for proxied maintenance op (`issue#16171 <http://tracker.ceph.com/issues/16171>`_, `pr#10784 <http://github.com/ceph/ceph/pull/10784>`_, Jason Dillaman)
-* common: msgr/async: Messenger thread long time lock hold risk (`issue#15758 <http://tracker.ceph.com/issues/15758>`_, `pr#10761 <http://github.com/ceph/ceph/pull/10761>`_, Wei Jin)
-* doc: fix description for rsize and rasize (`issue#17357 <http://tracker.ceph.com/issues/17357>`_, `pr#11171 <http://github.com/ceph/ceph/pull/11171>`_, Andreas Gerstmayr)
-* filestore: can get stuck in an unbounded loop during scrub (`issue#17859 <http://tracker.ceph.com/issues/17859>`_, `pr#12001 <http://github.com/ceph/ceph/pull/12001>`_, Sage Weil)
-* fs: Failure in snaptest-git-ceph.sh (`issue#17172 <http://tracker.ceph.com/issues/17172>`_, `pr#11419 <http://github.com/ceph/ceph/pull/11419>`_, Yan, Zheng)
-* fs: Log path as well as ino when detecting metadata damage (`issue#16973 <http://tracker.ceph.com/issues/16973>`_, `pr#11418 <http://github.com/ceph/ceph/pull/11418>`_, John Spray)
-* fs: client: FAILED assert(root_ancestor->qtree == __null) (`issue#16066 <http://tracker.ceph.com/issues/16066>`_, `issue#16067 <http://tracker.ceph.com/issues/16067>`_, `pr#10107 <http://github.com/ceph/ceph/pull/10107>`_, Yan, Zheng)
-* fs: client: add missing client_lock for get_root (`issue#17197 <http://tracker.ceph.com/issues/17197>`_, `pr#10921 <http://github.com/ceph/ceph/pull/10921>`_, Patrick Donnelly)
-* fs: client: fix shutdown with open inodes (`issue#16764 <http://tracker.ceph.com/issues/16764>`_, `pr#10958 <http://github.com/ceph/ceph/pull/10958>`_, John Spray)
-* fs: client: nlink count is not maintained correctly (`issue#16668 <http://tracker.ceph.com/issues/16668>`_, `pr#10877 <http://github.com/ceph/ceph/pull/10877>`_, Jeff Layton)
-* fs: multimds: allow_multimds not required when max_mds is set in ceph.conf at startup (`issue#17105 <http://tracker.ceph.com/issues/17105>`_, `pr#10997 <http://github.com/ceph/ceph/pull/10997>`_, Patrick Donnelly)
-* librados: memory leaks from ceph::crypto (WITH_NSS) (`issue#17205 <http://tracker.ceph.com/issues/17205>`_, `pr#11409 <http://github.com/ceph/ceph/pull/11409>`_, Casey Bodley)
-* librados: modify Pipe::connect() to return the error code (`issue#15308 <http://tracker.ceph.com/issues/15308>`_, `pr#11193 <http://github.com/ceph/ceph/pull/11193>`_, Vikhyat Umrao)
-* librados: remove new setxattr overload to avoid breaking the C++ ABI (`issue#18058 <http://tracker.ceph.com/issues/18058>`_, `pr#12207 <http://github.com/ceph/ceph/pull/12207>`_, Josh Durgin)
-* librbd: cannot disable journaling or remove non-mirrored, non-primary image (`issue#16740 <http://tracker.ceph.com/issues/16740>`_, `pr#11337 <http://github.com/ceph/ceph/pull/11337>`_, Jason Dillaman)
-* librbd: discard after write can result in assertion failure (`issue#17695 <http://tracker.ceph.com/issues/17695>`_, `pr#11644 <http://github.com/ceph/ceph/pull/11644>`_, Jason Dillaman)
-* librbd::Operations: update notification failed: (2) No such file or directory (`issue#17549 <http://tracker.ceph.com/issues/17549>`_, `pr#11420 <http://github.com/ceph/ceph/pull/11420>`_, Jason Dillaman)
-* mds: Crash in Client::_invalidate_kernel_dcache when reconnecting during unmount (`issue#17253 <http://tracker.ceph.com/issues/17253>`_, `pr#11414 <http://github.com/ceph/ceph/pull/11414>`_, Yan, Zheng)
-* mds: Duplicate damage table entries (`issue#17173 <http://tracker.ceph.com/issues/17173>`_, `pr#11412 <http://github.com/ceph/ceph/pull/11412>`_, John Spray)
-* mds: Failure in dirfrag.sh (`issue#17286 <http://tracker.ceph.com/issues/17286>`_, `pr#11416 <http://github.com/ceph/ceph/pull/11416>`_, Yan, Zheng)
-* mds: Failure in snaptest-git-ceph.sh (`issue#17271 <http://tracker.ceph.com/issues/17271>`_, `pr#11415 <http://github.com/ceph/ceph/pull/11415>`_, Yan, Zheng)
-* mon: Ceph Status - Segmentation Fault (`issue#16266 <http://tracker.ceph.com/issues/16266>`_, `pr#11408 <http://github.com/ceph/ceph/pull/11408>`_, Brad Hubbard)
-* mon: Display full flag in ceph status if full flag is set (`issue#15809 <http://tracker.ceph.com/issues/15809>`_, `pr#9388 <http://github.com/ceph/ceph/pull/9388>`_, Vikhyat Umrao)
-* mon: Error EINVAL: removing mon.a at 172.21.15.16:6789/0, there will be 1 monitors (`issue#17725 <http://tracker.ceph.com/issues/17725>`_, `pr#12267 <http://github.com/ceph/ceph/pull/12267>`_, Joao Eduardo Luis)
-* mon: OSDMonitor: only reject MOSDBoot based on up_from if inst matches (`issue#17899 <http://tracker.ceph.com/issues/17899>`_, `pr#12067 <http://github.com/ceph/ceph/pull/12067>`_, Samuel Just)
-* mon: OSDMonitor: Missing nearfull flag set (`issue#17390 <http://tracker.ceph.com/issues/17390>`_, `pr#11272 <http://github.com/ceph/ceph/pull/11272>`_, Igor Podoski)
-* mon: Upgrading 0.94.6 -> 0.94.9 saturating mon node networking (`issue#17365 <http://tracker.ceph.com/issues/17365>`_, `issue#17386 <http://tracker.ceph.com/issues/17386>`_, `pr#11679 <http://github.com/ceph/ceph/pull/11679>`_, Sage Weil, xie xingguo)
-* mon: ceph mon Segmentation fault after set crush_ruleset ceph 10.2.2 (`issue#16653 <http://tracker.ceph.com/issues/16653>`_, `pr#10861 <http://github.com/ceph/ceph/pull/10861>`_, song baisen)
-* mon: crash: crush/CrushWrapper.h: 940: FAILED assert(successful_detach) (`issue#16525 <http://tracker.ceph.com/issues/16525>`_, `pr#10496 <http://github.com/ceph/ceph/pull/10496>`_, Kefu Chai)
-* mon: don't crash on invalid standby_for_fscid (`issue#17466 <http://tracker.ceph.com/issues/17466>`_, `pr#11389 <http://github.com/ceph/ceph/pull/11389>`_, John Spray)
-* mon: fix missing osd metadata (again) (`issue#17685 <http://tracker.ceph.com/issues/17685>`_, `pr#11642 <http://github.com/ceph/ceph/pull/11642>`_, John Spray)
-* mon: osdmonitor: decouple adjust_heartbeat_grace and min_down_reporters (`issue#17055 <http://tracker.ceph.com/issues/17055>`_, `pr#10757 <http://github.com/ceph/ceph/pull/10757>`_, Zengran Zhang)
-* mon: the %USED of ceph df is wrong (`issue#16933 <http://tracker.ceph.com/issues/16933>`_, `pr#10860 <http://github.com/ceph/ceph/pull/10860>`_, Kefu Chai)
-* osd: condition OSDMap encoding on features (`issue#18015 <http://tracker.ceph.com/issues/18015>`_, `pr#12167 <http://github.com/ceph/ceph/pull/12167>`_, Sage Weil)
-* osd: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items (`issue#16998 <http://tracker.ceph.com/issues/16998>`_, `pr#10883 <http://github.com/ceph/ceph/pull/10883>`_, Samuel Just)
-* osd: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (\*this == hobject_t(hobject_t::get_max()))) (`issue#13967 <http://tracker.ceph.com/issues/13967>`_, `pr#10885 <http://github.com/ceph/ceph/pull/10885>`_, Tao Chang)
-* osd: Potential crash during journal::Replay shut down (`issue#16433 <http://tracker.ceph.com/issues/16433>`_, `pr#10645 <http://github.com/ceph/ceph/pull/10645>`_, Jason Dillaman)
-* osd: add peer_addr in heartbeat_check log message (`issue#15762 <http://tracker.ceph.com/issues/15762>`_, `pr#9739 <http://github.com/ceph/ceph/pull/9739>`_, Vikhyat Umrao, Sage Weil)
-* osd: adjust scrub boundary to object without SnapSet (`issue#17470 <http://tracker.ceph.com/issues/17470>`_, `pr#11311 <http://github.com/ceph/ceph/pull/11311>`_, Samuel Just)
-* osd: ceph osd df does not show summarized info correctly if one or more OSDs are out (`issue#16706 <http://tracker.ceph.com/issues/16706>`_, `pr#10759 <http://github.com/ceph/ceph/pull/10759>`_, xie xingguo)
-* osd: journal: do not prematurely flag object recorder as closed (`issue#17590 <http://tracker.ceph.com/issues/17590>`_, `pr#11634 <http://github.com/ceph/ceph/pull/11634>`_, Jason Dillaman)
-* osd: mark_all_unfound_lost() leaves unapplied changes (`issue#16156 <http://tracker.ceph.com/issues/16156>`_, `pr#10886 <http://github.com/ceph/ceph/pull/10886>`_, Samuel Just)
-* osd: segfault in ObjectCacher::FlusherThread (`issue#16610 <http://tracker.ceph.com/issues/16610>`_, `pr#10864 <http://github.com/ceph/ceph/pull/10864>`_, Yan, Zheng)
-* qa: remove EnumerateObjects from librados upgrade tests (`pr#11728 <https://github.com/ceph/ceph/pull/11728>`_, Josh Durgin)
-* rbd: Disabling pool mirror mode with registered peers results orphaned mirrored images (`issue#16984 <http://tracker.ceph.com/issues/16984>`_, `pr#10857 <http://github.com/ceph/ceph/pull/10857>`_, Jason Dillaman)
-* rbd: ImageWatcher: use after free within C_UnwatchAndFlush (`issue#17289 <http://tracker.ceph.com/issues/17289>`_, `issue#17254 <http://tracker.ceph.com/issues/17254>`_, `pr#11466 <http://github.com/ceph/ceph/pull/11466>`_, Jason Dillaman)
-* rbd: Prevent the creation of a clone from a non-primary mirrored image (`issue#16449 <http://tracker.ceph.com/issues/16449>`_, `pr#10650 <http://github.com/ceph/ceph/pull/10650>`_, Mykola Golub)
-* rbd: RBD should restrict mirror enable/disable actions on parents/clones (`issue#16056 <http://tracker.ceph.com/issues/16056>`_, `pr#11459 <http://github.com/ceph/ceph/pull/11459>`_, zhuangzeqiang)
-* rbd: TestJournalReplay: sporadic assert(m_state == STATE_READY || m_state == STATE_STOPPING) failure (`issue#17566 <http://tracker.ceph.com/issues/17566>`_, `pr#11590 <http://github.com/ceph/ceph/pull/11590>`_, Jason Dillaman)
-* rbd: bench io-size should not be larger than image size (`issue#16967 <http://tracker.ceph.com/issues/16967>`_, `pr#10796 <http://github.com/ceph/ceph/pull/10796>`_, Jason Dillaman)
-* rbd: ceph 10.2.2 rbd status on image format 2 returns (2) No such file or directory (`issue#16887 <http://tracker.ceph.com/issues/16887>`_, `pr#10652 <http://github.com/ceph/ceph/pull/10652>`_, Jason Dillaman)
-* rbd: helgrind: TestLibRBD.TestIOPP potential deadlock closing an image with read-ahead enabled (`issue#17198 <http://tracker.ceph.com/issues/17198>`_, `pr#11463 <http://github.com/ceph/ceph/pull/11463>`_, Jason Dillaman)
-* rbd: image.stat() call in librbdpy fails sometimes (`issue#17310 <http://tracker.ceph.com/issues/17310>`_, `pr#11464 <http://github.com/ceph/ceph/pull/11464>`_, Jason Dillaman)
-* rbd: krbd qa scripts and concurrent.sh test fix (`issue#17223 <http://tracker.ceph.com/issues/17223>`_, `pr#11018 <http://github.com/ceph/ceph/pull/11018>`_, Ilya Dryomov)
-* rbd: krbd-related CLI patches (`issue#17554 <http://tracker.ceph.com/issues/17554>`_, `pr#11400 <http://github.com/ceph/ceph/pull/11400>`_, Ilya Dryomov)
-* rbd: mirror: improve resiliency of stress test case (`issue#16855 <http://tracker.ceph.com/issues/16855>`_, `issue#16555 <http://tracker.ceph.com/issues/16555>`_, `issue#14738 <http://tracker.ceph.com/issues/14738>`_, `issue#15259 <http://tracker.ceph.com/issues/15259>`_, `issue#17446 <http://tracker.ceph.com/issues/17446>`_, `issue#17355 <http://tracker.ceph.com/issues/17355>`_, `issue#16538 <http://tracker.ceph.com/issues/16538>`_, `issue#16974 <http://tracker.ceph.com/issues/16974>`_, `issue#17283 <http://tracker.ceph.com/issues/17283>`_, `issue#17317 <http://tracker.ceph.com/issues/17317>`_, `issue#17416 <http://tracker.ceph.com/issues/17416>`_, `issue#16227 <http://tracker.ceph.com/issues/16227>`_, `pr#11433 <http://github.com/ceph/ceph/pull/11433>`_, Mykola Golub, Ricardo Dias, Jason Dillaman)
-* rbd: rbd-nbd IO hang (`issue#16921 <http://tracker.ceph.com/issues/16921>`_, `pr#11467 <http://github.com/ceph/ceph/pull/11467>`_, Jason Dillaman)
-* rbd: update_features API needs to support backwards/forward compatibility (`issue#17330 <http://tracker.ceph.com/issues/17330>`_, `pr#11462 <http://github.com/ceph/ceph/pull/11462>`_, Jason Dillaman)
-* rgw: COPY broke multipart files uploaded under dumpling (`issue#16435 <http://tracker.ceph.com/issues/16435>`_, `pr#10866 <http://github.com/ceph/ceph/pull/10866>`_, Yehuda Sadeh)
-* rgw: Config parameter rgw keystone make new tenants in radosgw multitenancy does not work (`issue#17293 <http://tracker.ceph.com/issues/17293>`_, `pr#11473 <http://github.com/ceph/ceph/pull/11473>`_, SirishaGuduru)
-* rgw: Do not archive metadata by default (`issue#17256 <http://tracker.ceph.com/issues/17256>`_, `pr#11321 <http://github.com/ceph/ceph/pull/11321>`_, Pavan Rallabhandi, Matt Benjamin)
-* rgw: ERROR: got unexpected error when trying to read object: -2 (`issue#17111 <http://tracker.ceph.com/issues/17111>`_, `pr#11472 <http://github.com/ceph/ceph/pull/11472>`_, Yang Honggang)
-* rgw: Modification for TEST S3 ACCESS section in INSTALL CEPH OBJECT GATEWAY page (`issue#15603 <http://tracker.ceph.com/issues/15603>`_, `pr#11475 <http://github.com/ceph/ceph/pull/11475>`_, la-sguduru)
-* rgw: RGW loses realm/period/zonegroup/zone data: period overwritten if somewhere in the cluster is still running Hammer (`issue#17371 <http://tracker.ceph.com/issues/17371>`_, `pr#11519 <http://github.com/ceph/ceph/pull/11519>`_, Orit Wasserman)
-* rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR (`issue#17073 <http://tracker.ceph.com/issues/17073>`_, `pr#11330 <http://github.com/ceph/ceph/pull/11330>`_, Casey Bodley)
-* rgw: S3 object versioning fails when applied on a non-master zone (`issue#16494 <http://tracker.ceph.com/issues/16494>`_, `pr#11367 <http://github.com/ceph/ceph/pull/11367>`_, Yehuda Sadeh)
-* rgw: add orphan options to radosgw-admin --help and man page (`issue#17281 <http://tracker.ceph.com/issues/17281>`_, `issue#17280 <http://tracker.ceph.com/issues/17280>`_, `pr#11139 <http://github.com/ceph/ceph/pull/11139>`_, Ken Dreyer, Thomas Serlin)
-* rgw: back off bucket sync on failures, don't store marker (`issue#16742 <http://tracker.ceph.com/issues/16742>`_, `pr#11021 <http://github.com/ceph/ceph/pull/11021>`_, Yehuda Sadeh)
-* rgw: combined LDAP backports (`issue#17544 <http://tracker.ceph.com/issues/17544>`_, `issue#17185 <http://tracker.ceph.com/issues/17185>`_, `pr#11332 <http://github.com/ceph/ceph/pull/11332>`_, Harald Klein, Matt Benjamin)
-* rgw: cors auto memleak (`issue#16564 <http://tracker.ceph.com/issues/16564>`_, `pr#10656 <http://github.com/ceph/ceph/pull/10656>`_, Yan Jun)
-* rgw: default quota fixes (`issue#16410 <http://tracker.ceph.com/issues/16410>`_, `pr#10832 <http://github.com/ceph/ceph/pull/10832>`_, Pavan Rallabhandi, Daniel Gryniewicz)
-* rgw: doc: description of multipart part entity is wrong (`issue#17504 <http://tracker.ceph.com/issues/17504>`_, `pr#11342 <http://github.com/ceph/ceph/pull/11342>`_, weiqiaomiao)
-* rgw: don't loop forever when reading data from 0 sized segment. (`issue#17692 <http://tracker.ceph.com/issues/17692>`_, `pr#11626 <http://github.com/ceph/ceph/pull/11626>`_, Marcus Watts)
-* rgw: fix put_acls for objects starting and ending with underscore (`issue#17625 <http://tracker.ceph.com/issues/17625>`_, `pr#11669 <http://github.com/ceph/ceph/pull/11669>`_, Orit Wasserman)
-* rgw: fix regression with handling double underscore (`issue#17443 <http://tracker.ceph.com/issues/17443>`_, `issue#16856 <http://tracker.ceph.com/issues/16856>`_, `pr#11563 <http://github.com/ceph/ceph/pull/11563>`_, Yehuda Sadeh, Orit Wasserman)
-* rgw: handle empty POST condition (`issue#17635 <http://tracker.ceph.com/issues/17635>`_, `pr#11662 <http://github.com/ceph/ceph/pull/11662>`_, Yehuda Sadeh)
-* rgw: metadata sync can skip markers for failed/incomplete entries (`issue#16759 <http://tracker.ceph.com/issues/16759>`_, `pr#10657 <http://github.com/ceph/ceph/pull/10657>`_, Yehuda Sadeh)
-* rgw: nfs backports (`issue#17393 <http://tracker.ceph.com/issues/17393>`_, `issue#17311 <http://tracker.ceph.com/issues/17311>`_, `issue#17367 <http://tracker.ceph.com/issues/17367>`_, `issue#17319 <http://tracker.ceph.com/issues/17319>`_, `issue#17321 <http://tracker.ceph.com/issues/17321>`_, `issue#17322 <http://tracker.ceph.com/issues/17322>`_, `issue#17323 <http://tracker.ceph.com/issues/17323>`_, `issue#17325 <http://tracker.ceph.com/issues/17325>`_, `issue#17326 <http://tracker.ceph.com/issues/17326>`_, `issue#17327 <http://tracker.ceph.com/issues/17327>`_, `pr#11335 <http://github.com/ceph/ceph/pull/11335>`_, Min Chen, Yan Jun, Weibing Zhang, Matt Benjamin)
-* rgw: period commit loses zonegroup changes: region_map converted repeatedly (`issue#17051 <http://tracker.ceph.com/issues/17051>`_, `pr#10890 <http://github.com/ceph/ceph/pull/10890>`_, Casey Bodley)
-* rgw: period commit return error when the current period has a zonegroup which doesn't have a master zone (`issue#17110 <http://tracker.ceph.com/issues/17110>`_, `pr#10867 <http://github.com/ceph/ceph/pull/10867>`_, weiqiaomiao)
-* rgw: radosgw daemon core when reopen logs (`issue#17036 <http://tracker.ceph.com/issues/17036>`_, `pr#10868 <http://github.com/ceph/ceph/pull/10868>`_, weiqiaomiao)
-* rgw: rgw file uses too much CPU in gc/idle thread (`issue#16976 <http://tracker.ceph.com/issues/16976>`_, `pr#10889 <http://github.com/ceph/ceph/pull/10889>`_, Matt Benjamin)
-* rgw: s3tests-test-readwrite failing with 500 (`issue#16930 <http://tracker.ceph.com/issues/16930>`_, `pr#11471 <http://github.com/ceph/ceph/pull/11471>`_, Yehuda Sadeh)
-* rgw: upgrade from old multisite to new multisite fails (`issue#16751 <http://tracker.ceph.com/issues/16751>`_, `pr#10891 <http://github.com/ceph/ceph/pull/10891>`_, Orit Wasserman)
-* rgw:response information is error when geting token of swift account (`issue#15195 <http://tracker.ceph.com/issues/15195>`_, `pr#11474 <http://github.com/ceph/ceph/pull/11474>`_, Qiankun Zheng)
-* rgw:user email can modify to empty when it has values (`issue#13286 <http://tracker.ceph.com/issues/13286>`_, `pr#11469 <http://github.com/ceph/ceph/pull/11469>`_, Yehuda Sadeh, Weijun Duan)
-* tests: ceph-disk must ignore debug monc (`issue#17607 <http://tracker.ceph.com/issues/17607>`_, `pr#11548 <http://github.com/ceph/ceph/pull/11548>`_, Loic Dachary)
-* tests: fix TestClsRbd.mirror_image failure in upgrade:jewel-x-master-distro-basic-vps (`issue#16529 <http://tracker.ceph.com/issues/16529>`_, `pr#10888 <http://github.com/ceph/ceph/pull/10888>`_, Jason Dillaman)
-* tests: scsi_debug fails /dev/disk/by-partuuid (`issue#17100 <http://tracker.ceph.com/issues/17100>`_, `pr#11411 <http://github.com/ceph/ceph/pull/11411>`_, Loic Dachary)
-* tests: test/ceph_test_msgr: do not use Message::middle for holding transient… (`issue#17365 <http://tracker.ceph.com/issues/17365>`_, `issue#17728 <http://tracker.ceph.com/issues/17728>`_, `issue#16955 <http://tracker.ceph.com/issues/16955>`_, `pr#11742 <http://github.com/ceph/ceph/pull/11742>`_, Haomai Wang, Kefu Chai, Michal Jarzabek, Sage Weil)
-* tools: Missing comma in ceph-create-keys causes concatenation of arguments (`issue#17815 <http://tracker.ceph.com/issues/17815>`_, `pr#11822 <http://github.com/ceph/ceph/pull/11822>`_, Patrick Donnelly)
-* tools: add a tool to rebuild mon store from OSD (`issue#17179 <http://tracker.ceph.com/issues/17179>`_, `issue#17400 <http://tracker.ceph.com/issues/17400>`_, `pr#11126 <http://github.com/ceph/ceph/pull/11126>`_, Kefu Chai, xie xingguo)
-* tools: ceph-create-keys: sometimes blocks forever if mds allow is set (`issue#16255 <http://tracker.ceph.com/issues/16255>`_, `pr#11417 <http://github.com/ceph/ceph/pull/11417>`_, John Spray)
-* tools: ceph-disk should timeout when a lock cannot be acquired (`issue#16580 <http://tracker.ceph.com/issues/16580>`_, `pr#10758 <http://github.com/ceph/ceph/pull/10758>`_, Loic Dachary)
-* tools: ceph-disk: expected systemd unit failures are confusing (`issue#15990 <http://tracker.ceph.com/issues/15990>`_, `pr#10884 <http://github.com/ceph/ceph/pull/10884>`_, Boris Ranto)
-* tools: ceph-disk: using a regular file as a journal fails (`issue#16280 <http://tracker.ceph.com/issues/16280>`_, `issue#17662 <http://tracker.ceph.com/issues/17662>`_, `pr#11657 <http://github.com/ceph/ceph/pull/11657>`_, Jayashree Candadai, Anirudha Bose, Loic Dachary, Shylesh Kumar)
-* tools: ceph-objectstore-tool crashes if --journal-path <a-directory> (`issue#17307 <http://tracker.ceph.com/issues/17307>`_, `pr#11407 <http://github.com/ceph/ceph/pull/11407>`_, Kefu Chai)
-* tools: ceph-objectstore-tool: add a way to split filestore directories offline (`issue#17220 <http://tracker.ceph.com/issues/17220>`_, `pr#11252 <http://github.com/ceph/ceph/pull/11252>`_, Josh Durgin)
-* tools: ceph-post-file: use new ssh key (`issue#14267 <http://tracker.ceph.com/issues/14267>`_, `pr#11746 <http://github.com/ceph/ceph/pull/11746>`_, David Galloway)
-
-
-v10.2.3 Jewel
-=============
-
-This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
-
-We recommend that all v10.2.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.3.txt>`.
-
-Notable Changes
----------------
-
-* build/ops: 60-ceph-partuuid-workaround-rules still needed by debian jessie (udev 215-17) (`issue#16351 <http://tracker.ceph.com/issues/16351>`_, `pr#10653 <http://github.com/ceph/ceph/pull/10653>`_, runsisi, Loic Dachary)
-* build/ops: ceph Resource Agent does not work with systemd (`issue#14828 <http://tracker.ceph.com/issues/14828>`_, `pr#9917 <http://github.com/ceph/ceph/pull/9917>`_, Nathan Cutler)
-* build/ops: ceph-base requires parted (`issue#16095 <http://tracker.ceph.com/issues/16095>`_, `pr#10008 <http://github.com/ceph/ceph/pull/10008>`_, Ken Dreyer)
-* build/ops: ceph-osd-prestart.sh contains Upstart-specific code (`issue#15984 <http://tracker.ceph.com/issues/15984>`_, `pr#10364 <http://github.com/ceph/ceph/pull/10364>`_, Nathan Cutler)
-* build/ops: mount.ceph: move from ceph-base to ceph-common and add symlink in /sbin for SUSE (`issue#16598 <http://tracker.ceph.com/issues/16598>`_, `issue#16645 <http://tracker.ceph.com/issues/16645>`_, `pr#10357 <http://github.com/ceph/ceph/pull/10357>`_, Nathan Cutler, Dan Horák, Ricardo Dias, Kefu Chai)
-* build/ops: need rocksdb commit 7ca731b12ce for ppc64le build (`issue#17092 <http://tracker.ceph.com/issues/17092>`_, `pr#10816 <http://github.com/ceph/ceph/pull/10816>`_, Nathan Cutler)
-* build/ops: rpm: OBS needs ExclusiveArch (`issue#16936 <http://tracker.ceph.com/issues/16936>`_, `pr#10614 <http://github.com/ceph/ceph/pull/10614>`_, Michel Normand)
-* cli: ceph command line tool chokes on ceph –w (the dash is unicode 'en dash' &ndash, copy-paste to reproduce) (`issue#12287 <http://tracker.ceph.com/issues/12287>`_, `pr#10420 <http://github.com/ceph/ceph/pull/10420>`_, Oleh Prypin, Kefu Chai)
-* common: expose buffer const_iterator symbols (`issue#16899 <http://tracker.ceph.com/issues/16899>`_, `pr#10552 <http://github.com/ceph/ceph/pull/10552>`_, Noah Watkins)
-* common: global-init: fixup chown of the run directory along with log and asok files (`issue#15607 <http://tracker.ceph.com/issues/15607>`_, `pr#8754 <http://github.com/ceph/ceph/pull/8754>`_, Karol Mroz)
-* fs: ceph-fuse: link to libtcmalloc or jemalloc (`issue#16655 <http://tracker.ceph.com/issues/16655>`_, `pr#10303 <http://github.com/ceph/ceph/pull/10303>`_, Yan, Zheng)
-* fs: client: crash in unmount when fuse_use_invalidate_cb is enabled (`issue#16137 <http://tracker.ceph.com/issues/16137>`_, `pr#10106 <http://github.com/ceph/ceph/pull/10106>`_, Yan, Zheng)
-* fs: client: fstat cap release (`issue#15723 <http://tracker.ceph.com/issues/15723>`_, `pr#9562 <http://github.com/ceph/ceph/pull/9562>`_, Yan, Zheng, Noah Watkins)
-* fs: essential backports for OpenStack Manila (`issue#15406 <http://tracker.ceph.com/issues/15406>`_, `issue#15614 <http://tracker.ceph.com/issues/15614>`_, `issue#15615 <http://tracker.ceph.com/issues/15615>`_, `pr#10453 <http://github.com/ceph/ceph/pull/10453>`_, John Spray, Ramana Raja, Xiaoxi Chen)
-* fs: fix double-unlock on shutdown (`issue#17126 <http://tracker.ceph.com/issues/17126>`_, `pr#10847 <http://github.com/ceph/ceph/pull/10847>`_, Greg Farnum)
-* fs: fix mdsmap print_summary with standby replays (`issue#15705 <http://tracker.ceph.com/issues/15705>`_, `pr#9547 <http://github.com/ceph/ceph/pull/9547>`_, John Spray)
-* fs: fuse mounted file systems fails SAMBA CTDB ping_pong rw test with v9.0.2 (`issue#12653 <http://tracker.ceph.com/issues/12653>`_, `issue#15634 <http://tracker.ceph.com/issues/15634>`_, `pr#10108 <http://github.com/ceph/ceph/pull/10108>`_, Yan, Zheng)
-* librados: Missing export for rados_aio_get_version in src/include/rados/librados.h (`issue#15535 <http://tracker.ceph.com/issues/15535>`_, `pr#9574 <http://github.com/ceph/ceph/pull/9574>`_, Jim Wright)
-* librados: osd: bad flags can crash the osd (`issue#16012 <http://tracker.ceph.com/issues/16012>`_, `pr#9997 <http://github.com/ceph/ceph/pull/9997>`_, Sage Weil)
-* librbd: Close journal and object map before flagging exclusive lock as released (`issue#16450 <http://tracker.ceph.com/issues/16450>`_, `pr#10053 <http://github.com/ceph/ceph/pull/10053>`_, Jason Dillaman)
-* librbd: Crash when utilizing advisory locking API functions (`issue#16364 <http://tracker.ceph.com/issues/16364>`_, `pr#10051 <http://github.com/ceph/ceph/pull/10051>`_, Jason Dillaman)
-* librbd: ExclusiveLock object leaked when switching to snapshot (`issue#16446 <http://tracker.ceph.com/issues/16446>`_, `pr#10054 <http://github.com/ceph/ceph/pull/10054>`_, Jason Dillaman)
-* librbd: FAILED assert(object_no < m_object_map.size()) (`issue#16561 <http://tracker.ceph.com/issues/16561>`_, `pr#10647 <http://github.com/ceph/ceph/pull/10647>`_, Jason Dillaman)
-* librbd: Image removal doesn't necessarily clean up all rbd_mirroring entries (`issue#16471 <http://tracker.ceph.com/issues/16471>`_, `pr#10009 <http://github.com/ceph/ceph/pull/10009>`_, Jason Dillaman)
-* librbd: Object map/fast-diff invalidated if journal replays the same snap remove event (`issue#16350 <http://tracker.ceph.com/issues/16350>`_, `pr#10010 <http://github.com/ceph/ceph/pull/10010>`_, Jason Dillaman)
-* librbd: Timeout sending mirroring notification shouldn't result in failure (`issue#16470 <http://tracker.ceph.com/issues/16470>`_, `pr#10052 <http://github.com/ceph/ceph/pull/10052>`_, Jason Dillaman)
-* librbd: Whitelist EBUSY error from snap unprotect for journal replay (`issue#16445 <http://tracker.ceph.com/issues/16445>`_, `pr#10055 <http://github.com/ceph/ceph/pull/10055>`_, Jason Dillaman)
-* librbd: cancel all tasks should wait until finisher is done (`issue#16517 <http://tracker.ceph.com/issues/16517>`_, `pr#9752 <http://github.com/ceph/ceph/pull/9752>`_, Haomai Wang)
-* librbd: delay acquiring lock if image watch has failed (`issue#16923 <http://tracker.ceph.com/issues/16923>`_, `pr#10827 <http://github.com/ceph/ceph/pull/10827>`_, Jason Dillaman)
-* librbd: fix missing return statement if failed to get mirror image state (`issue#16600 <http://tracker.ceph.com/issues/16600>`_, `pr#10144 <http://github.com/ceph/ceph/pull/10144>`_, runsisi)
-* librbd: flag image as updated after proxying maintenance op (`issue#16404 <http://tracker.ceph.com/issues/16404>`_, `pr#9883 <http://github.com/ceph/ceph/pull/9883>`_, Jason Dillaman)
-* librbd: mkfs.xfs slow performance with discards and object map (`issue#16707 <http://tracker.ceph.com/issues/16707>`_, `issue#16689 <http://tracker.ceph.com/issues/16689>`_, `pr#10649 <http://github.com/ceph/ceph/pull/10649>`_, Jason Dillaman)
-* librbd: potential use after free on refresh error (`issue#16519 <http://tracker.ceph.com/issues/16519>`_, `pr#9952 <http://github.com/ceph/ceph/pull/9952>`_, Mykola Golub)
-* librbd: rbd-nbd does not properly handle resize notifications (`issue#15715 <http://tracker.ceph.com/issues/15715>`_, `pr#10679 <http://github.com/ceph/ceph/pull/10679>`_, Mykola Golub)
-* librbd: the option 'rbd_cache_writethrough_until_flush=true' dosn't work (`issue#16740 <http://tracker.ceph.com/issues/16740>`_, `issue#16386 <http://tracker.ceph.com/issues/16386>`_, `issue#16708 <http://tracker.ceph.com/issues/16708>`_, `issue#16654 <http://tracker.ceph.com/issues/16654>`_, `issue#16478 <http://tracker.ceph.com/issues/16478>`_, `pr#10797 <http://github.com/ceph/ceph/pull/10797>`_, Mykola Golub, xinxin shu, Xiaowei Chen, Jason Dillaman)
-* mds: tell command blocks forever with async messenger (TestVolumeClient.test_evict_client failure) (`issue#16288 <http://tracker.ceph.com/issues/16288>`_, `pr#10501 <http://github.com/ceph/ceph/pull/10501>`_, Douglas Fuller)
-* mds: Confusing MDS log message when shut down with stalled journaler reads (`issue#15689 <http://tracker.ceph.com/issues/15689>`_, `pr#9557 <http://github.com/ceph/ceph/pull/9557>`_, John Spray)
-* mds: Deadlock on shutdown active rank while busy with metadata IO (`issue#16042 <http://tracker.ceph.com/issues/16042>`_, `pr#10502 <http://github.com/ceph/ceph/pull/10502>`_, Patrick Donnelly)
-* mds: Failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7 (`issue#16013 <http://tracker.ceph.com/issues/16013>`_, `pr#10199 <http://github.com/ceph/ceph/pull/10199>`_, Yan, Zheng)
-* mds: Fix shutting down mds timed-out due to deadlock (`issue#16396 <http://tracker.ceph.com/issues/16396>`_, `pr#10500 <http://github.com/ceph/ceph/pull/10500>`_, Zhi Zhang)
-* mds: MDSMonitor fixes (`issue#16136 <http://tracker.ceph.com/issues/16136>`_, `pr#9561 <http://github.com/ceph/ceph/pull/9561>`_, xie xingguo)
-* mds: MDSMonitor::check_subs() is very buggy (`issue#16022 <http://tracker.ceph.com/issues/16022>`_, `pr#10103 <http://github.com/ceph/ceph/pull/10103>`_, Yan, Zheng)
-* mds: Session::check_access() is buggy (`issue#16358 <http://tracker.ceph.com/issues/16358>`_, `pr#10105 <http://github.com/ceph/ceph/pull/10105>`_, Yan, Zheng)
-* mds: StrayManager.cc: 520: FAILED assert(dnl->is_primary()) (`issue#15920 <http://tracker.ceph.com/issues/15920>`_, `pr#9559 <http://github.com/ceph/ceph/pull/9559>`_, Yan, Zheng)
-* mds: enforce a dirfrag limit on entries (`issue#16164 <http://tracker.ceph.com/issues/16164>`_, `pr#10104 <http://github.com/ceph/ceph/pull/10104>`_, Patrick Donnelly)
-* mds: fix SnapRealm::have_past_parents_open() (`issue#16299 <http://tracker.ceph.com/issues/16299>`_, `pr#10499 <http://github.com/ceph/ceph/pull/10499>`_, Yan, Zheng)
-* mds: fix getattr starve setattr (`issue#16154 <http://tracker.ceph.com/issues/16154>`_, `pr#9560 <http://github.com/ceph/ceph/pull/9560>`_, Yan, Zheng)
-* mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs (`issue#15702 <http://tracker.ceph.com/issues/15702>`_, `pr#9405 <http://github.com/ceph/ceph/pull/9405>`_, Zhi Zhang)
-* mon: "mon metadata" fails when only one monitor exists (`issue#15866 <http://tracker.ceph.com/issues/15866>`_, `pr#10654 <http://github.com/ceph/ceph/pull/10654>`_, John Spray, Kefu Chai)
-* mon: Monitor: validate prefix on handle_command() (`issue#16297 <http://tracker.ceph.com/issues/16297>`_, `pr#10036 <http://github.com/ceph/ceph/pull/10036>`_, You Ji)
-* mon: OSDMonitor: drop pg temps from not the current primary (`issue#16127 <http://tracker.ceph.com/issues/16127>`_, `pr#9998 <http://github.com/ceph/ceph/pull/9998>`_, Samuel Just)
-* mon: prepare_pgtemp needs to only update up_thru if newer than the existing one (`issue#16185 <http://tracker.ceph.com/issues/16185>`_, `pr#10001 <http://github.com/ceph/ceph/pull/10001>`_, Samuel Just)
-* msgr: AsyncConnection::lockmsg/async lockdep cycle: AsyncMessenger::lock, MDSDaemon::mds_lock, AsyncConnection::lock (`issue#16237 <http://tracker.ceph.com/issues/16237>`_, `pr#10004 <http://github.com/ceph/ceph/pull/10004>`_, Haomai Wang)
-* msgr: async messenger mon crash (`issue#16378 <http://tracker.ceph.com/issues/16378>`_, `issue#16418 <http://tracker.ceph.com/issues/16418>`_, `pr#9996 <http://github.com/ceph/ceph/pull/9996>`_, Haomai Wang)
-* msgr: backports of all asyncmsgr fixes to jewel (`issue#15503 <http://tracker.ceph.com/issues/15503>`_, `issue#15372 <http://tracker.ceph.com/issues/15372>`_, `pr#9633 <http://github.com/ceph/ceph/pull/9633>`_, Yan Jun, Haomai Wang, Piotr Dałek)
-* msgr: msg/async: connection race hang (`issue#15849 <http://tracker.ceph.com/issues/15849>`_, `pr#10003 <http://github.com/ceph/ceph/pull/10003>`_, Haomai Wang)
-* osd: FileStore: umount hang because sync thread doesn't exit (`issue#15695 <http://tracker.ceph.com/issues/15695>`_, `pr#9105 <http://github.com/ceph/ceph/pull/9105>`_, Kefu Chai)
-* osd: Fixes for list-inconsistent-* (`issue#15766 <http://tracker.ceph.com/issues/15766>`_, `issue#16192 <http://tracker.ceph.com/issues/16192>`_, `issue#15719 <http://tracker.ceph.com/issues/15719>`_, `pr#9565 <http://github.com/ceph/ceph/pull/9565>`_, David Zafman)
-* osd: New pools have bogus stuck inactive/unclean HEALTH_ERR messages until they are first active and clean (`issue#14952 <http://tracker.ceph.com/issues/14952>`_, `pr#10007 <http://github.com/ceph/ceph/pull/10007>`_, Sage Weil)
-* osd: OSD crash with Hammer to Jewel Upgrade: void FileStore::init_temp_collections() (`issue#16672 <http://tracker.ceph.com/issues/16672>`_, `pr#10561 <http://github.com/ceph/ceph/pull/10561>`_, David Zafman)
-* osd: OSD failed to subscribe skipped osdmaps after ceph osd pause (`issue#17023 <http://tracker.ceph.com/issues/17023>`_, `pr#10804 <http://github.com/ceph/ceph/pull/10804>`_, Kefu Chai)
-* osd: ObjectCacher split BufferHead read fix (`issue#16002 <http://tracker.ceph.com/issues/16002>`_, `pr#10074 <http://github.com/ceph/ceph/pull/10074>`_, Greg Farnum)
-* osd: ReplicatedBackend doesn't increment stats on pull, only push (`issue#16277 <http://tracker.ceph.com/issues/16277>`_, `pr#10421 <http://github.com/ceph/ceph/pull/10421>`_, Kefu Chai)
-* osd: Scrub error: 0/1 pinned (`issue#15952 <http://tracker.ceph.com/issues/15952>`_, `pr#9576 <http://github.com/ceph/ceph/pull/9576>`_, Samuel Just)
-* osd: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas (`issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#9575 <http://github.com/ceph/ceph/pull/9575>`_, Samuel Just)
-* osd: partprobe intermittent issues during ceph-disk prepare (`issue#15176 <http://tracker.ceph.com/issues/15176>`_, `pr#10497 <http://github.com/ceph/ceph/pull/10497>`_, Marius Vollmer, Loic Dachary)
-* osd: saw valgrind issues in ReplicatedPG::new_repop (`issue#16801 <http://tracker.ceph.com/issues/16801>`_, `pr#10760 <http://github.com/ceph/ceph/pull/10760>`_, Kefu Chai)
-* osd: sparse_read on ec pool should return extends with correct offset (`issue#16138 <http://tracker.ceph.com/issues/16138>`_, `pr#10006 <http://github.com/ceph/ceph/pull/10006>`_, kofiliu)
-* osd:sched_time not actually randomized (`issue#15890 <http://tracker.ceph.com/issues/15890>`_, `pr#9578 <http://github.com/ceph/ceph/pull/9578>`_, xie xingguo)
-* rbd: ImageReplayer::is_replaying does not include flush state (`issue#16970 <http://tracker.ceph.com/issues/16970>`_, `pr#10790 <http://github.com/ceph/ceph/pull/10790>`_, Jason Dillaman)
-* rbd: Journal duplicate op detection can cause lockdep error (`issue#16363 <http://tracker.ceph.com/issues/16363>`_, `pr#10044 <http://github.com/ceph/ceph/pull/10044>`_, Jason Dillaman)
-* rbd: Journal needs to handle duplicate maintenance op tids (`issue#16362 <http://tracker.ceph.com/issues/16362>`_, `pr#10045 <http://github.com/ceph/ceph/pull/10045>`_, Jason Dillaman)
-* rbd: Unable to disable journaling feature if in unexpected mirror state (`issue#16348 <http://tracker.ceph.com/issues/16348>`_, `pr#10042 <http://github.com/ceph/ceph/pull/10042>`_, Jason Dillaman)
-* rbd: bashism in src/rbdmap (`issue#16608 <http://tracker.ceph.com/issues/16608>`_, `pr#10786 <http://github.com/ceph/ceph/pull/10786>`_, Jason Dillaman)
-* rbd: doc: format 2 now is the default image format (`issue#17026 <http://tracker.ceph.com/issues/17026>`_, `pr#10732 <http://github.com/ceph/ceph/pull/10732>`_, Chengwei Yang)
-* rbd: hen journaling is enabled, a flush request shouldn't flush the cache (`issue#15761 <http://tracker.ceph.com/issues/15761>`_, `pr#10041 <http://github.com/ceph/ceph/pull/10041>`_, Yuan Zhou)
-* rbd: possible race condition during journal transition from replay to ready (`issue#16198 <http://tracker.ceph.com/issues/16198>`_, `pr#10047 <http://github.com/ceph/ceph/pull/10047>`_, Jason Dillaman)
-* rbd: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable (`issue#16289 <http://tracker.ceph.com/issues/16289>`_, `pr#9721 <http://github.com/ceph/ceph/pull/9721>`_, Mykola Golub)
-* rbd: rbd-mirror should disable proxied maintenance ops for non-primary image (`issue#16411 <http://tracker.ceph.com/issues/16411>`_, `pr#10050 <http://github.com/ceph/ceph/pull/10050>`_, Jason Dillaman)
-* rbd: rbd-mirror: FAILED assert(m_local_image_ctx->object_map != nullptr) (`issue#16558 <http://tracker.ceph.com/issues/16558>`_, `pr#10646 <http://github.com/ceph/ceph/pull/10646>`_, Jason Dillaman)
-* rbd: rbd-mirror: FAILED assert(m_on_update_status_finish == nullptr) (`issue#16956 <http://tracker.ceph.com/issues/16956>`_, `pr#10792 <http://github.com/ceph/ceph/pull/10792>`_, Jason Dillaman)
-* rbd: rbd-mirror: FAILED assert(m_state == STATE_STOPPING) (`issue#16980 <http://tracker.ceph.com/issues/16980>`_, `pr#10791 <http://github.com/ceph/ceph/pull/10791>`_, Jason Dillaman)
-* rbd: rbd-mirror: ensure replay status formatter has completed before stopping replay (`issue#16352 <http://tracker.ceph.com/issues/16352>`_, `pr#10043 <http://github.com/ceph/ceph/pull/10043>`_, Jason Dillaman)
-* rbd: rbd-mirror: include local pool id in resync throttle unique key (`issue#16536 <http://tracker.ceph.com/issues/16536>`_, `issue#15239 <http://tracker.ceph.com/issues/15239>`_, `issue#16488 <http://tracker.ceph.com/issues/16488>`_, `issue#16491 <http://tracker.ceph.com/issues/16491>`_, `issue#16329 <http://tracker.ceph.com/issues/16329>`_, `issue#15108 <http://tracker.ceph.com/issues/15108>`_, `issue#15670 <http://tracker.ceph.com/issues/15670>`_, `pr#10678 <http://github.com/ceph/ceph/pull/10678>`_, Ricardo Dias, Jason Dillaman)
-* rbd: rbd-mirror: potential race condition accessing local image journal (`issue#16230 <http://tracker.ceph.com/issues/16230>`_, `pr#10046 <http://github.com/ceph/ceph/pull/10046>`_, Jason Dillaman)
-* rbd: rbd-mirror: reduce memory footprint during journal replay (`issue#16321 <http://tracker.ceph.com/issues/16321>`_, `issue#16489 <http://tracker.ceph.com/issues/16489>`_, `issue#16622 <http://tracker.ceph.com/issues/16622>`_, `issue#16539 <http://tracker.ceph.com/issues/16539>`_, `issue#16223 <http://tracker.ceph.com/issues/16223>`_, `issue#16349 <http://tracker.ceph.com/issues/16349>`_, `pr#10684 <http://github.com/ceph/ceph/pull/10684>`_, Mykola Golub, Jason Dillaman)
-* rgw: A query on a static large object fails with 404 error (`issue#16015 <http://tracker.ceph.com/issues/16015>`_, `pr#9544 <http://github.com/ceph/ceph/pull/9544>`_, Radoslaw Zarzynski)
-* rgw: Add zone rename to radosgw_admin (`issue#16934 <http://tracker.ceph.com/issues/16934>`_, `pr#10663 <http://github.com/ceph/ceph/pull/10663>`_, Shilpa Jagannath)
-* rgw: Bucket index shards orphaned after bucket delete (`issue#16412 <http://tracker.ceph.com/issues/16412>`_, `pr#10525 <http://github.com/ceph/ceph/pull/10525>`_, Orit Wasserman)
-* rgw: Bug when using port 443s in rgw. (`issue#16548 <http://tracker.ceph.com/issues/16548>`_, `pr#10664 <http://github.com/ceph/ceph/pull/10664>`_, Pritha Srivastava)
-* rgw: Fallback to Host header for bucket name. (`issue#15975 <http://tracker.ceph.com/issues/15975>`_, `pr#10693 <http://github.com/ceph/ceph/pull/10693>`_, Robin H. Johnson)
-* rgw: Fix civetweb IPv6 (`issue#16928 <http://tracker.ceph.com/issues/16928>`_, `pr#10580 <http://github.com/ceph/ceph/pull/10580>`_, Robin H. Johnson)
-* rgw: Increase log level for messages occuring while running rgw admin command (`issue#16935 <http://tracker.ceph.com/issues/16935>`_, `pr#10765 <http://github.com/ceph/ceph/pull/10765>`_, Shilpa Jagannath)
-* rgw: No Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest (`issue#15812 <http://tracker.ceph.com/issues/15812>`_, `pr#9265 <http://github.com/ceph/ceph/pull/9265>`_, Radoslaw Zarzynski)
-* rgw: RGWPeriodPuller tries to pull from itself (`issue#16939 <http://tracker.ceph.com/issues/16939>`_, `pr#10764 <http://github.com/ceph/ceph/pull/10764>`_, Casey Bodley)
-* rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule (`issue#15348 <http://tracker.ceph.com/issues/15348>`_, `pr#9453 <http://github.com/ceph/ceph/pull/9453>`_, Wido den Hollander)
-* rgw: Swift API returns double space usage and objects of account metadata (`issue#16188 <http://tracker.ceph.com/issues/16188>`_, `pr#10148 <http://github.com/ceph/ceph/pull/10148>`_, Albert Tu)
-* rgw: account/container metadata not actually present in a request are deleted during POST through Swift API (`issue#15977 <http://tracker.ceph.com/issues/15977>`_, `issue#15779 <http://tracker.ceph.com/issues/15779>`_, `pr#9542 <http://github.com/ceph/ceph/pull/9542>`_, Radoslaw Zarzynski)
-* rgw: add socket backlog setting for via ceph.conf (`issue#16406 <http://tracker.ceph.com/issues/16406>`_, `pr#10216 <http://github.com/ceph/ceph/pull/10216>`_, Feng Guo)
-* rgw: add tenant support to multisite sync (`issue#16469 <http://tracker.ceph.com/issues/16469>`_, `issue#16121 <http://tracker.ceph.com/issues/16121>`_, `issue#16665 <http://tracker.ceph.com/issues/16665>`_, `pr#10845 <http://github.com/ceph/ceph/pull/10845>`_, Yehuda Sadeh, Josh Durgin, Casey Bodley, Pritha Srivastava)
-* rgw: add_zone only clears master_zone if --master=false (`issue#15901 <http://tracker.ceph.com/issues/15901>`_, `pr#9327 <http://github.com/ceph/ceph/pull/9327>`_, Casey Bodley)
-* rgw: aws4 parsing issue (`issue#15940 <http://tracker.ceph.com/issues/15940>`_, `issue#15939 <http://tracker.ceph.com/issues/15939>`_, `pr#9545 <http://github.com/ceph/ceph/pull/9545>`_, Yehuda Sadeh)
-* rgw: aws4: add STREAMING-AWS4-HMAC-SHA256-PAYLOAD support (`issue#16146 <http://tracker.ceph.com/issues/16146>`_, `pr#10167 <http://github.com/ceph/ceph/pull/10167>`_, Radoslaw Zarzynski, Javier M. Mellid)
-* rgw: backport merge of static sites fixes (`issue#15555 <http://tracker.ceph.com/issues/15555>`_, `issue#15532 <http://tracker.ceph.com/issues/15532>`_, `issue#15531 <http://tracker.ceph.com/issues/15531>`_, `pr#9568 <http://github.com/ceph/ceph/pull/9568>`_, Robin H. Johnson)
-* rgw: can set negative max_buckets on RGWUserInfo (`issue#14534 <http://tracker.ceph.com/issues/14534>`_, `pr#10655 <http://github.com/ceph/ceph/pull/10655>`_, Yehuda Sadeh)
-* rgw: cleanup radosgw-admin temp command as it was deprecated (`issue#16023 <http://tracker.ceph.com/issues/16023>`_, `pr#9390 <http://github.com/ceph/ceph/pull/9390>`_, Vikhyat Umrao)
-* rgw: comparing return code to ERR_NOT_MODIFIED in rgw_rest_s3.cc (needs minus sign) (`issue#16327 <http://tracker.ceph.com/issues/16327>`_, `pr#9790 <http://github.com/ceph/ceph/pull/9790>`_, Nathan Cutler)
-* rgw: custom metadata aren't camelcased in Swift's responses (`issue#15902 <http://tracker.ceph.com/issues/15902>`_, `pr#9267 <http://github.com/ceph/ceph/pull/9267>`_, Radoslaw Zarzynski)
-* rgw: data sync stops after getting error in all data log sync shards (`issue#16530 <http://tracker.ceph.com/issues/16530>`_, `pr#10073 <http://github.com/ceph/ceph/pull/10073>`_, Yehuda Sadeh)
-* rgw: default zone and zonegroup cannot be added to a realm (`issue#16839 <http://tracker.ceph.com/issues/16839>`_, `pr#10658 <http://github.com/ceph/ceph/pull/10658>`_, Casey Bodley)
-* rgw: document multi tenancy (`issue#16635 <http://tracker.ceph.com/issues/16635>`_, `pr#10217 <http://github.com/ceph/ceph/pull/10217>`_, Pete Zaitcev)
-* rgw: don't unregister request if request is not connected to manager (`issue#15911 <http://tracker.ceph.com/issues/15911>`_, `pr#9242 <http://github.com/ceph/ceph/pull/9242>`_, Yehuda Sadeh)
-* rgw: failed to create bucket after upgrade from hammer to jewel (`issue#16627 <http://tracker.ceph.com/issues/16627>`_, `pr#10524 <http://github.com/ceph/ceph/pull/10524>`_, Orit Wasserman)
-* rgw: fix ldap bindpw parsing (`issue#16286 <http://tracker.ceph.com/issues/16286>`_, `pr#10518 <http://github.com/ceph/ceph/pull/10518>`_, Matt Benjamin)
-* rgw: fix multi-delete query param parsing. (`issue#16618 <http://tracker.ceph.com/issues/16618>`_, `pr#10188 <http://github.com/ceph/ceph/pull/10188>`_, Robin H. Johnson)
-* rgw: improve support for Swift's object versioning. (`issue#15925 <http://tracker.ceph.com/issues/15925>`_, `pr#10710 <http://github.com/ceph/ceph/pull/10710>`_, Radoslaw Zarzynski)
-* rgw: initial slashes are not properly handled in Swift's BulkDelete (`issue#15948 <http://tracker.ceph.com/issues/15948>`_, `pr#9316 <http://github.com/ceph/ceph/pull/9316>`_, Radoslaw Zarzynski)
-* rgw: master: build failures with boost > 1.58 (`issue#16392 <http://tracker.ceph.com/issues/16392>`_, `issue#16391 <http://tracker.ceph.com/issues/16391>`_, `pr#10026 <http://github.com/ceph/ceph/pull/10026>`_, Abhishek Lekshmanan)
-* rgw: multisite segfault on ~RGWRealmWatcher if realm was deleted (`issue#16817 <http://tracker.ceph.com/issues/16817>`_, `pr#10660 <http://github.com/ceph/ceph/pull/10660>`_, Casey Bodley)
-* rgw: multisite sync races with deletes (`issue#16222 <http://tracker.ceph.com/issues/16222>`_, `issue#16464 <http://tracker.ceph.com/issues/16464>`_, `issue#16220 <http://tracker.ceph.com/issues/16220>`_, `issue#16143 <http://tracker.ceph.com/issues/16143>`_, `pr#10293 <http://github.com/ceph/ceph/pull/10293>`_, Yehuda Sadeh, Casey Bodley)
-* rgw: multisite: preserve zone's extra pool (`issue#16712 <http://tracker.ceph.com/issues/16712>`_, `pr#10537 <http://github.com/ceph/ceph/pull/10537>`_, Abhishek Lekshmanan)
-* rgw: object expirer's hints might be trimmed without processing in some circumstances (`issue#16705 <http://tracker.ceph.com/issues/16705>`_, `issue#16684 <http://tracker.ceph.com/issues/16684>`_, `pr#10763 <http://github.com/ceph/ceph/pull/10763>`_, Radoslaw Zarzynski)
-* rgw: radosgw-admin failure for user create after upgrade from hammer to jewel (`issue#15937 <http://tracker.ceph.com/issues/15937>`_, `pr#9294 <http://github.com/ceph/ceph/pull/9294>`_, Orit Wasserman, Abhishek Lekshmanan)
-* rgw: radosgw-admin: EEXIST messages for create operations (`issue#15720 <http://tracker.ceph.com/issues/15720>`_, `pr#9268 <http://github.com/ceph/ceph/pull/9268>`_, Abhishek Lekshmanan)
-* rgw: radosgw-admin: inconsistency in uid/email handling (`issue#13598 <http://tracker.ceph.com/issues/13598>`_, `pr#10520 <http://github.com/ceph/ceph/pull/10520>`_, Matt Benjamin)
-* rgw: realm pull fails when using apache frontend (`issue#15846 <http://tracker.ceph.com/issues/15846>`_, `pr#9266 <http://github.com/ceph/ceph/pull/9266>`_, Orit Wasserman)
-* rgw: retry on bucket sync errors (`issue#16108 <http://tracker.ceph.com/issues/16108>`_, `pr#9425 <http://github.com/ceph/ceph/pull/9425>`_, Yehuda Sadeh)
-* rgw: s3website: x-amz-website-redirect-location header returns malformed HTTP response (`issue#15531 <http://tracker.ceph.com/issues/15531>`_, `pr#9099 <http://github.com/ceph/ceph/pull/9099>`_, Robin H. Johnson)
-* rgw: segfault in RGWOp_MDLog_Notify (`issue#16666 <http://tracker.ceph.com/issues/16666>`_, `pr#10662 <http://github.com/ceph/ceph/pull/10662>`_, Casey Bodley)
-* rgw: segmentation fault on error_repo in data sync (`issue#16603 <http://tracker.ceph.com/issues/16603>`_, `pr#10523 <http://github.com/ceph/ceph/pull/10523>`_, Casey Bodley)
-* rgw: selinux denials in RGW (`issue#16126 <http://tracker.ceph.com/issues/16126>`_, `pr#10519 <http://github.com/ceph/ceph/pull/10519>`_, Boris Ranto)
-* rgw: support size suffixes for --max-size in radosgw-admin command (`issue#16004 <http://tracker.ceph.com/issues/16004>`_, `pr#9743 <http://github.com/ceph/ceph/pull/9743>`_, Vikhyat Umrao)
-* rgw: updating CORS/ACLs might not work in some circumstances (`issue#15976 <http://tracker.ceph.com/issues/15976>`_, `pr#9543 <http://github.com/ceph/ceph/pull/9543>`_, Radoslaw Zarzynski)
-* rgw: use zone endpoints instead of zonegroup endpoints (`issue#16834 <http://tracker.ceph.com/issues/16834>`_, `pr#10659 <http://github.com/ceph/ceph/pull/10659>`_, Casey Bodley)
-* tests: improve rbd-mirror test case coverage (`issue#16197 <http://tracker.ceph.com/issues/16197>`_, `pr#9631 <http://github.com/ceph/ceph/pull/9631>`_, Mykola Golub, Jason Dillaman)
-* tests: rados/test.sh workunit timesout on OpenStack (`issue#15403 <http://tracker.ceph.com/issues/15403>`_, `pr#8904 <http://github.com/ceph/ceph/pull/8904>`_, Loic Dachary)
-* tools: ceph-disk: Accept bcache devices as data disks (`issue#13278 <http://tracker.ceph.com/issues/13278>`_, `pr#8497 <http://github.com/ceph/ceph/pull/8497>`_, Peter Sabaini)
-* tools: rados: Add cleanup message with time to rados bench output (`issue#15704 <http://tracker.ceph.com/issues/15704>`_, `pr#9740 <http://github.com/ceph/ceph/pull/9740>`_, Vikhyat Umrao)
-* tools: src/script/subman fails with KeyError: 'nband' (`issue#16961 <http://tracker.ceph.com/issues/16961>`_, `pr#10625 <http://github.com/ceph/ceph/pull/10625>`_, Loic Dachary, Ali Maredia)
-
-
-v10.2.2 Jewel
-=============
-
-This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
-
-We recommend that all v10.2.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.2.txt>`.
-
-Notable Changes
----------------
-
-* ceph: cli: exception when pool name has non-ascii characters (`issue#15913 <http://tracker.ceph.com/issues/15913>`_, `pr#9320 <http://github.com/ceph/ceph/pull/9320>`_, Ricardo Dias)
-* ceph-disk: workaround gperftool hang (`issue#13522 <http://tracker.ceph.com/issues/13522>`_, `issue#16103 <http://tracker.ceph.com/issues/16103>`_, `pr#9427 <http://github.com/ceph/ceph/pull/9427>`_, Loic Dachary)
-* cephfs: backports needed for Manila (`issue#15599 <http://tracker.ceph.com/issues/15599>`_, `issue#15417 <http://tracker.ceph.com/issues/15417>`_, `issue#15045 <http://tracker.ceph.com/issues/15045>`_, `pr#9430 <http://github.com/ceph/ceph/pull/9430>`_, John Spray, Ramana Raja, Xiaoxi Chen)
-* ceph.spec.in: drop support for RHEL<7 and SUSE<1210 in jewel and above (`issue#15725 <http://tracker.ceph.com/issues/15725>`_, `issue#15627 <http://tracker.ceph.com/issues/15627>`_, `issue#13445 <http://tracker.ceph.com/issues/13445>`_, `issue#15822 <http://tracker.ceph.com/issues/15822>`_, `issue#15472 <http://tracker.ceph.com/issues/15472>`_, `issue#15987 <http://tracker.ceph.com/issues/15987>`_, `issue#15516 <http://tracker.ceph.com/issues/15516>`_, `issue#15549 <http://tracker.ceph.com/issues/15549>`_, `pr#8938 <http://github.com/ceph/ceph/pull/8938>`_, Boris Ranto, Sage Weil, Nathan Cutler, Lars Marowsky-Bree)
-* ceph_test_librbd_fsx crashes during journal replay shut down (`issue#16123 <http://tracker.ceph.com/issues/16123>`_, `pr#9556 <http://github.com/ceph/ceph/pull/9556>`_, Jason Dillaman)
-* client: fix bugs accidentally disabling readahead (`issue#16024 <http://tracker.ceph.com/issues/16024>`_, `pr#9656 <http://github.com/ceph/ceph/pull/9656>`_, Patrick Donnelly, Greg Farnum)
-* cls_journal: initialize empty commit position upon client register (`issue#15757 <http://tracker.ceph.com/issues/15757>`_, `pr#9376 <http://github.com/ceph/ceph/pull/9376>`_, runsisi, Venky Shankar)
-* cls::rbd: mirror_image_status_list returned max 64 items (`pr#9069 <http://github.com/ceph/ceph/pull/9069>`_, Mykola Golub)
-* cls_rbd: mirror image status summary should read full directory (`issue#16178 <http://tracker.ceph.com/issues/16178>`_, `pr#9608 <http://github.com/ceph/ceph/pull/9608>`_, Jason Dillaman)
-* common: BackoffThrottle spins unnecessarily with very small backoff while the throttle is full (`issue#15953 <http://tracker.ceph.com/issues/15953>`_, `pr#9579 <http://github.com/ceph/ceph/pull/9579>`_, Samuel Just)
-* common: Do not link lttng into libglobal (`pr#9194 <http://github.com/ceph/ceph/pull/9194>`_, Karol Mroz)
-* debian: install systemd target files (`issue#15573 <http://tracker.ceph.com/issues/15573>`_, `pr#8815 <http://github.com/ceph/ceph/pull/8815>`_, Kefu Chai, Sage Weil)
-* doc: update mirroring guide to include pool/image status commands (`issue#15746 <http://tracker.ceph.com/issues/15746>`_, `pr#9180 <http://github.com/ceph/ceph/pull/9180>`_, Mykola Golub)
-* librbd: Disabling journaling feature results in "Transport endpoint is not connected" error (`issue#15863 <http://tracker.ceph.com/issues/15863>`_, `pr#9548 <http://github.com/ceph/ceph/pull/9548>`_, Yuan Zhou)
-* librbd: do not shut down exclusive lock while acquiring' (`issue#16291 <http://tracker.ceph.com/issues/16291>`_, `issue#16260 <http://tracker.ceph.com/issues/16260>`_, `pr#9691 <http://github.com/ceph/ceph/pull/9691>`_, Jason Dillaman)
-* librbd: Initial python APIs to support mirroring (`issue#15656 <http://tracker.ceph.com/issues/15656>`_, `pr#9550 <http://github.com/ceph/ceph/pull/9550>`_, Mykola Golub)
-* librbd: journal IO error results in failed assertion in AioCompletion (`issue#16077 <http://tracker.ceph.com/issues/16077>`_, `issue#15034 <http://tracker.ceph.com/issues/15034>`_, `issue#15791 <http://tracker.ceph.com/issues/15791>`_, `pr#9611 <http://github.com/ceph/ceph/pull/9611>`_, Hector Martin, Jason Dillaman)
-* librbd: journal: live replay might skip entries from previous object set (`issue#15864 <http://tracker.ceph.com/issues/15864>`_, `issue#15665 <http://tracker.ceph.com/issues/15665>`_, `pr#9217 <http://github.com/ceph/ceph/pull/9217>`_, Jason Dillaman)
-* librbd: journal: support asynchronous shutdown (`issue#15949 <http://tracker.ceph.com/issues/15949>`_, `issue#14530 <http://tracker.ceph.com/issues/14530>`_, `issue#15993 <http://tracker.ceph.com/issues/15993>`_, `pr#9373 <http://github.com/ceph/ceph/pull/9373>`_, Jason Dillaman)
-* librbd: Metadata config overrides are applied synchronously (`issue#15928 <http://tracker.ceph.com/issues/15928>`_, `pr#9318 <http://github.com/ceph/ceph/pull/9318>`_, Jason Dillaman)
-* librbd: Object Map is showing as invalid, even when Object Map is disabled for that Image. (`issue#16076 <http://tracker.ceph.com/issues/16076>`_, `pr#9555 <http://github.com/ceph/ceph/pull/9555>`_, xinxin shu)
-* librbd: prevent error messages when journal externally disabled (`issue#16114 <http://tracker.ceph.com/issues/16114>`_, `pr#9610 <http://github.com/ceph/ceph/pull/9610>`_, Zhiqiang Wang, Jason Dillaman)
-* librbd: recursive lock possible when disabling journaling (`issue#16235 <http://tracker.ceph.com/issues/16235>`_, `pr#9654 <http://github.com/ceph/ceph/pull/9654>`_, Jason Dillaman)
-* librbd: refresh image if needed in mirror functions (`issue#16096 <http://tracker.ceph.com/issues/16096>`_, `pr#9609 <http://github.com/ceph/ceph/pull/9609>`_, Jon Bernard)
-* librbd: remove should ignore mirror errors from older OSDs (`issue#16268 <http://tracker.ceph.com/issues/16268>`_, `pr#9692 <http://github.com/ceph/ceph/pull/9692>`_, Jason Dillaman)
-* librbd: reuse ImageCtx::finisher and SafeTimer for lots of images case (`issue#13938 <http://tracker.ceph.com/issues/13938>`_, `pr#9580 <http://github.com/ceph/ceph/pull/9580>`_, Haomai Wang)
-* librbd: validate image metadata configuration overrides (`issue#15522 <http://tracker.ceph.com/issues/15522>`_, `pr#9554 <http://github.com/ceph/ceph/pull/9554>`_, zhuangzeqiang)
-* mds: order directories by hash and fix simultaneous readdir races (`issue#15508 <http://tracker.ceph.com/issues/15508>`_, `pr#9655 <http://github.com/ceph/ceph/pull/9655>`_, Yan, Zheng, Greg Farnum)
-* mon: Hammer (0.94.3) OSD does not delete old OSD Maps in a timely fashion (maybe at all?) (`issue#13990 <http://tracker.ceph.com/issues/13990>`_, `pr#9100 <http://github.com/ceph/ceph/pull/9100>`_, Kefu Chai)
-* mon/Monitor: memory leak on Monitor::handle_ping() (`issue#15793 <http://tracker.ceph.com/issues/15793>`_, `pr#9270 <http://github.com/ceph/ceph/pull/9270>`_, xie xingguo)
-* osd: acting_primary not updated on split (`issue#15523 <http://tracker.ceph.com/issues/15523>`_, `pr#8968 <http://github.com/ceph/ceph/pull/8968>`_, Sage Weil)
-* osd: boot race with noup being set (`issue#15678 <http://tracker.ceph.com/issues/15678>`_, `pr#9101 <http://github.com/ceph/ceph/pull/9101>`_, Sage Weil)
-* osd: deadlock in OSD::_committed_osd_maps (`issue#15701 <http://tracker.ceph.com/issues/15701>`_, `pr#9103 <http://github.com/ceph/ceph/pull/9103>`_, Xinze Chi)
-* osd: hobject_t::get_max() vs is_max() discrepancy (`issue#16113 <http://tracker.ceph.com/issues/16113>`_, `pr#9614 <http://github.com/ceph/ceph/pull/9614>`_, Samuel Just)
-* osd: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv (`issue#15760 <http://tracker.ceph.com/issues/15760>`_, `pr#9104 <http://github.com/ceph/ceph/pull/9104>`_, Sage Weil)
-* osd: remove reliance on FLAG_OMAP for reads (`pr#9638 <http://github.com/ceph/ceph/pull/9638>`_, Samuel Just)
-* osd valgrind invalid reads/writes (`issue#15870 <http://tracker.ceph.com/issues/15870>`_, `pr#9237 <http://github.com/ceph/ceph/pull/9237>`_, Samuel Just)
-* pybind: rbd API should default features parameter to None (`issue#15982 <http://tracker.ceph.com/issues/15982>`_, `pr#9553 <http://github.com/ceph/ceph/pull/9553>`_, Mykola Golub)
-* qa: dynamic_features.sh races with image deletion (`issue#15500 <http://tracker.ceph.com/issues/15500>`_, `pr#9552 <http://github.com/ceph/ceph/pull/9552>`_, Mykola Golub)
-* qa/workunits: ensure replay has started before checking position (`issue#16248 <http://tracker.ceph.com/issues/16248>`_, `pr#9674 <http://github.com/ceph/ceph/pull/9674>`_, Jason Dillaman)
-* qa/workunits/rbd: fixed rbd_mirror teuthology runtime errors (`pr#9232 <http://github.com/ceph/ceph/pull/9232>`_, Jason Dillaman)
-* radosgw-admin: fix 'period push' handling of --url (`issue#15926 <http://tracker.ceph.com/issues/15926>`_, `pr#9210 <http://github.com/ceph/ceph/pull/9210>`_, Casey Bodley)
-* rbd-mirror: Delete local image mirror when remote image mirroring is disabled (`issue#15916 <http://tracker.ceph.com/issues/15916>`_, `issue#14421 <http://tracker.ceph.com/issues/14421>`_, `pr#9372 <http://github.com/ceph/ceph/pull/9372>`_, runsisi, Mykola Golub, Ricardo Dias)
-* rbd-mirror: do not propagate deletions when pool unavailable (`issue#16229 <http://tracker.ceph.com/issues/16229>`_, `pr#9630 <http://github.com/ceph/ceph/pull/9630>`_, Jason Dillaman)
-* rbd-mirror: do not re-use image id from mirror directory if creating image (`issue#16253 <http://tracker.ceph.com/issues/16253>`_, `pr#9673 <http://github.com/ceph/ceph/pull/9673>`_, Jason Dillaman)
-* rbd-mirror: FAILED assert(!m_status_watcher) (`issue#16245 <http://tracker.ceph.com/issues/16245>`_, `issue#16290 <http://tracker.ceph.com/issues/16290>`_, `pr#9690 <http://github.com/ceph/ceph/pull/9690>`_, Mykola Golub)
-* rbd-mirror: fix deletion propagation edge cases (`issue#16226 <http://tracker.ceph.com/issues/16226>`_, `pr#9629 <http://github.com/ceph/ceph/pull/9629>`_, Jason Dillaman)
-* rbd-mirror: fix journal shut down ordering (`issue#16165 <http://tracker.ceph.com/issues/16165>`_, `pr#9628 <http://github.com/ceph/ceph/pull/9628>`_, Jason Dillaman)
-* rbd-mirror: potential crash during image status update (`issue#15909 <http://tracker.ceph.com/issues/15909>`_, `pr#9226 <http://github.com/ceph/ceph/pull/9226>`_, Mykola Golub, Jason Dillaman)
-* rbd-mirror: refresh image after creating sync point (`issue#16196 <http://tracker.ceph.com/issues/16196>`_, `pr#9627 <http://github.com/ceph/ceph/pull/9627>`_, Jason Dillaman)
-* rbd-mirror: replicate cloned images (`issue#14937 <http://tracker.ceph.com/issues/14937>`_, `pr#9423 <http://github.com/ceph/ceph/pull/9423>`_, Jason Dillaman)
-* rbd-mirror should disable the rbd cache for local images (`issue#15930 <http://tracker.ceph.com/issues/15930>`_, `pr#9317 <http://github.com/ceph/ceph/pull/9317>`_, Jason Dillaman)
-* rbd-mirror: support bootstrap canceling (`issue#16201 <http://tracker.ceph.com/issues/16201>`_, `pr#9612 <http://github.com/ceph/ceph/pull/9612>`_, Mykola Golub)
-* rbd-mirror: support multiple replicated pools (`issue#16045 <http://tracker.ceph.com/issues/16045>`_, `pr#9409 <http://github.com/ceph/ceph/pull/9409>`_, Jason Dillaman)
-* rgw: fix manager selection when APIs customized (`issue#15974 <http://tracker.ceph.com/issues/15974>`_, `issue#15973 <http://tracker.ceph.com/issues/15973>`_, `pr#9245 <http://github.com/ceph/ceph/pull/9245>`_, Robin H. Johnson)
-* rgw: keep track of written_objs correctly (`issue#15886 <http://tracker.ceph.com/issues/15886>`_, `pr#9239 <http://github.com/ceph/ceph/pull/9239>`_, Yehuda Sadeh)
-* rpm: ceph gid mismatch on upgrade from hammer with pre-existing ceph user (SUSE) (`issue#15869 <http://tracker.ceph.com/issues/15869>`_, `pr#9424 <http://github.com/ceph/ceph/pull/9424>`_, Nathan Cutler)
-* systemd: ceph-{mds,mon,osd,radosgw} systemd unit files need wants=time-sync.target (`issue#15419 <http://tracker.ceph.com/issues/15419>`_, `pr#8802 <http://github.com/ceph/ceph/pull/8802>`_, Nathan Cutler)
-* test: failure in journal.sh workunit test (`issue#16011 <http://tracker.ceph.com/issues/16011>`_, `pr#9377 <http://github.com/ceph/ceph/pull/9377>`_, Mykola Golub)
-* tests: rm -fr /tmp/*virtualenv* (`issue#16087 <http://tracker.ceph.com/issues/16087>`_, `pr#9403 <http://github.com/ceph/ceph/pull/9403>`_, Loic Dachary)
-
-v10.2.1 Jewel
-=============
-
-This is the first bugfix release for Jewel. It contains several annoying
-packaging and init system fixes and a range of important bugfixes across
-RBD, RGW, and CephFS.
-
-We recommend that all v10.2.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v10.2.1.txt>`.
-
-Notable Changes
----------------
-
-* cephfs: CephFSVolumeClient should isolate volumes by RADOS namespace (`issue#15400 <http://tracker.ceph.com/issues/15400>`_, `pr#8787 <http://github.com/ceph/ceph/pull/8787>`_, Xiaoxi Chen)
-* cephfs: handle standby-replay nodes properly in upgrades (`issue#15591 <http://tracker.ceph.com/issues/15591>`_, `pr#8971 <http://github.com/ceph/ceph/pull/8971>`_, John Spray)
-* ceph-{mds,mon,osd} packages need scriptlets with systemd code (`issue#14941 <http://tracker.ceph.com/issues/14941>`_, `pr#8801 <http://github.com/ceph/ceph/pull/8801>`_, Boris Ranto, Nathan Cutler)
-* ceph_test_keyvaluedb: fix (`issue#15435 <http://tracker.ceph.com/issues/15435>`_, `pr#9051 <http://github.com/ceph/ceph/pull/9051>`_, Allen Samuels, Sage Weil)
-* cmake: add missing source file to rbd_mirror/image_replayer (`pr#9052 <http://github.com/ceph/ceph/pull/9052>`_, Casey Bodley)
-* cmake: fix rbd compile errors (`pr#9076 <http://github.com/ceph/ceph/pull/9076>`_, runsisi, Jason Dillaman)
-* journal: incorrectly computed object offset within set (`issue#15765 <http://tracker.ceph.com/issues/15765>`_, `pr#9038 <http://github.com/ceph/ceph/pull/9038>`_, Jason Dillaman)
-* librbd: client-side handling for incompatible object map sizes (`issue#15642 <http://tracker.ceph.com/issues/15642>`_, `pr#9039 <http://github.com/ceph/ceph/pull/9039>`_, Jason Dillaman)
-* librbd: constrain size of AioWriteEvent journal entries (`issue#15750 <http://tracker.ceph.com/issues/15750>`_, `pr#9048 <http://github.com/ceph/ceph/pull/9048>`_, Jason Dillaman)
-* librbd: does not crash if image header is too short (`pr#9044 <http://github.com/ceph/ceph/pull/9044>`_, Kefu Chai)
-* librbd: Errors encountered disabling object-map while flatten is in-progress (`issue#15572 <http://tracker.ceph.com/issues/15572>`_, `pr#8869 <http://github.com/ceph/ceph/pull/8869>`_, Jason Dillaman)
-* librbd: fix get/list mirror image status API (`issue#15771 <http://tracker.ceph.com/issues/15771>`_, `pr#9036 <http://github.com/ceph/ceph/pull/9036>`_, Mykola Golub)
-* librbd: Parent image is closed twice if error encountered while opening (`issue#15574 <http://tracker.ceph.com/issues/15574>`_, `pr#8867 <http://github.com/ceph/ceph/pull/8867>`_, Jason Dillaman)
-* librbd: possible double-free of object map invalidation request upon error (`issue#15643 <http://tracker.ceph.com/issues/15643>`_, `pr#8865 <http://github.com/ceph/ceph/pull/8865>`_, runsisi)
-* librbd: possible race condition leads to use-after-free (`issue#15690 <http://tracker.ceph.com/issues/15690>`_, `pr#9009 <http://github.com/ceph/ceph/pull/9009>`_, Jason Dillaman)
-* librbd: potential concurrent event processing during journal replay (`issue#15755 <http://tracker.ceph.com/issues/15755>`_, `pr#9040 <http://github.com/ceph/ceph/pull/9040>`_, Jason Dillaman)
-* librbd: Potential double free of SetSnapRequest instance (`issue#15571 <http://tracker.ceph.com/issues/15571>`_, `pr#8803 <http://github.com/ceph/ceph/pull/8803>`_, runsisi)
-* librbd: put the validation of image snap context earlier (`pr#9046 <http://github.com/ceph/ceph/pull/9046>`_, runsisi)
-* librbd: reduce log level for image format 1 warning (`issue#15577 <http://tracker.ceph.com/issues/15577>`_, `pr#9003 <http://github.com/ceph/ceph/pull/9003>`_, Jason Dillaman)
-* mds/MDSAuthCap parse no longer fails on paths with hyphens (`issue#15465 <http://tracker.ceph.com/issues/15465>`_, `pr#8969 <http://github.com/ceph/ceph/pull/8969>`_, John Spray)
-* mds: MDS incarnation no longer gets lost after remove filesystem (`issue#15399 <http://tracker.ceph.com/issues/15399>`_, `pr#8970 <http://github.com/ceph/ceph/pull/8970>`_, John Spray)
-* mon/OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1 (`issue#15655 <http://tracker.ceph.com/issues/15655>`_, `pr#9006 <http://github.com/ceph/ceph/pull/9006>`_, Samuel Just)
-* python: clone operation will fail if config overridden with "rbd default format = 1" (`issue#15685 <http://tracker.ceph.com/issues/15685>`_, `pr#8972 <http://github.com/ceph/ceph/pull/8972>`_, Jason Dillaman)
-* radosgw-admin: add missing --zonegroup-id to usage (`issue#15650 <http://tracker.ceph.com/issues/15650>`_, `pr#9019 <http://github.com/ceph/ceph/pull/9019>`_, Casey Bodley)
-* radosgw-admin: update usage for zone[group] modify (`issue#15651 <http://tracker.ceph.com/issues/15651>`_, `pr#9016 <http://github.com/ceph/ceph/pull/9016>`_, Casey Bodley)
-* radosgw-admin: zonegroup remove command (`issue#15684 <http://tracker.ceph.com/issues/15684>`_, `pr#9015 <http://github.com/ceph/ceph/pull/9015>`_, Casey Bodley)
-* rbd CLI to retrieve rbd mirror state for a pool / specific image (`issue#15144 <http://tracker.ceph.com/issues/15144>`_, `issue#14420 <http://tracker.ceph.com/issues/14420>`_, `pr#8868 <http://github.com/ceph/ceph/pull/8868>`_, Mykola Golub)
-* rbd disk-usage CLI command should support calculating full image usage (`issue#14540 <http://tracker.ceph.com/issues/14540>`_, `pr#8870 <http://github.com/ceph/ceph/pull/8870>`_, Jason Dillaman)
-* rbd: helpful error message on map failure (`issue#15721 <http://tracker.ceph.com/issues/15721>`_, `pr#9041 <http://github.com/ceph/ceph/pull/9041>`_, Venky Shankar)
-* rbd: help message distinction between commands and aliases (`issue#15521 <http://tracker.ceph.com/issues/15521>`_, `pr#9004 <http://github.com/ceph/ceph/pull/9004>`_, Yongqiang He)
-* rbd-mirror: admin socket commands to start/stop/restart mirroring (`issue#15718 <http://tracker.ceph.com/issues/15718>`_, `pr#9010 <http://github.com/ceph/ceph/pull/9010>`_, Mykola Golub, Josh Durgin)
-* rbd-mirror can crash if start up is interrupted (`issue#15630 <http://tracker.ceph.com/issues/15630>`_, `pr#8866 <http://github.com/ceph/ceph/pull/8866>`_, Jason Dillaman)
-* rbd-mirror: image sync needs to handle snapshot size and protection status (`issue#15110 <http://tracker.ceph.com/issues/15110>`_, `pr#9050 <http://github.com/ceph/ceph/pull/9050>`_, Jason Dillaman)
-* rbd-mirror: lockdep error during bootstrap (`issue#15664 <http://tracker.ceph.com/issues/15664>`_, `pr#9008 <http://github.com/ceph/ceph/pull/9008>`_, Jason Dillaman)
-* rbd-nbd: fix rbd-nbd aio callback error handling (`issue#15604 <http://tracker.ceph.com/issues/15604>`_, `pr#9005 <http://github.com/ceph/ceph/pull/9005>`_, Chang-Yi Lee)
-* rgw: add AWS4 completion support for RGW_OP_SET_BUCKET_WEBSITE (`issue#15626 <http://tracker.ceph.com/issues/15626>`_, `pr#9018 <http://github.com/ceph/ceph/pull/9018>`_, Javier M. Mellid)
-* rgw admin output (`issue#15747 <http://tracker.ceph.com/issues/15747>`_, `pr#9054 <http://github.com/ceph/ceph/pull/9054>`_, Casey Bodley)
-* rgw: fix issue #15597 (`issue#15597 <http://tracker.ceph.com/issues/15597>`_, `pr#9020 <http://github.com/ceph/ceph/pull/9020>`_, Yehuda Sadeh)
-* rgw: fix printing wrong X-Storage-Url in Swift's TempAuth. (`issue#15667 <http://tracker.ceph.com/issues/15667>`_, `pr#9021 <http://github.com/ceph/ceph/pull/9021>`_, Radoslaw Zarzynski)
-* rgw: handle stripe transition when flushing final pending_data_bl (`issue#15745 <http://tracker.ceph.com/issues/15745>`_, `pr#9053 <http://github.com/ceph/ceph/pull/9053>`_, Yehuda Sadeh)
-* rgw: leak fixes (`issue#15792 <http://tracker.ceph.com/issues/15792>`_, `pr#9022 <http://github.com/ceph/ceph/pull/9022>`_, Yehuda Sadeh)
-* rgw: multisite: Issues with Deleting Buckets (`issue#15540 <http://tracker.ceph.com/issues/15540>`_, `pr#8930 <http://github.com/ceph/ceph/pull/8930>`_, Abhishek Lekshmanan)
-* rgw: period commit fix (`issue#15828 <http://tracker.ceph.com/issues/15828>`_, `pr#9081 <http://github.com/ceph/ceph/pull/9081>`_, Casey Bodley)
-* rgw: period delete fixes (`issue#15469 <http://tracker.ceph.com/issues/15469>`_, `pr#9047 <http://github.com/ceph/ceph/pull/9047>`_, Casey Bodley)
-* rgw: radosgw-admin zone set cuts pool names short if name starts with a period (`issue#15598 <http://tracker.ceph.com/issues/15598>`_, `pr#9029 <http://github.com/ceph/ceph/pull/9029>`_, Yehuda Sadeh)
-* rgw: segfault at RGWAsyncGetSystemObj (`issue#15565 <http://tracker.ceph.com/issues/15565>`_, `issue#15625 <http://tracker.ceph.com/issues/15625>`_, `pr#9017 <http://github.com/ceph/ceph/pull/9017>`_, Yehuda Sadeh)
-* several backports (`issue#15588 <http://tracker.ceph.com/issues/15588>`_, `issue#15655 <http://tracker.ceph.com/issues/15655>`_, `pr#8853 <http://github.com/ceph/ceph/pull/8853>`_, Alexandre Derumier, xie xingguo, Alfredo Deza)
-* systemd: fix typo in preset file (`pr#8843 <http://github.com/ceph/ceph/pull/8843>`_, Nathan Cutler)
-* tests: make check fails on ext4 (`issue#15837 <http://tracker.ceph.com/issues/15837>`_, `pr#9063 <http://github.com/ceph/ceph/pull/9063>`_, Loic Dachary, Sage Weil)
-
-
-v10.2.0 Jewel
-=============
-
-This major release of Ceph is the foundation for the next
-long-term stable release series. There have been many major changes since
-the Infernalis (9.2.x) and Hammer (0.94.x) releases, and the upgrade
-process is non-trivial. Please read these release notes carefully.
-
-Major Changes from Infernalis
------------------------------
-
-- *CephFS*:
-
- * This is the first release in which CephFS is declared stable!
- Several features are disabled by default, including snapshots and
- multiple active MDS servers.
- * The repair and disaster recovery tools are now feature-complete.
- * A new cephfs-volume-manager module is included that provides a
- high-level interface for creating "shares" for OpenStack Manila
- and similar projects.
- * There is now experimental support for multiple CephFS file systems
- within a single cluster.
-
-- *RGW*:
-
- * The multisite feature has been almost completely rearchitected and
- rewritten to support any number of clusters/sites, bidirectional
- fail-over, and active/active configurations.
- * You can now access radosgw buckets via NFS (experimental).
- * The AWS4 authentication protocol is now supported.
- * There is now support for S3 request payer buckets.
- * The new multitenancy infrastructure improves compatibility with
- Swift, which provides a separate container namespace for each
- user/tenant.
- * The OpenStack Keystone v3 API is now supported. There are a range
- of other small Swift API features and compatibility improvements
- as well, including bulk delete and SLO (static large objects).
-
-- *RBD*:
-
- * There is new support for mirroring (asynchronous replication) of
- RBD images across clusters. This is implemented as a per-RBD
- image journal that can be streamed across a WAN to another site,
- and a new rbd-mirror daemon that performs the cross-cluster
- replication.
- * The exclusive-lock, object-map, fast-diff, and journaling features
- can be enabled or disabled dynamically. The deep-flatten features
- can be disabled dynamically but not re-enabled.
- * The RBD CLI has been rewritten to provide command-specific help
- and full bash completion support.
- * RBD snapshots can now be renamed.
-
-- *RADOS*:
-
- * BlueStore, a new OSD backend, is included as an experimental
- feature. The plan is for it to become the default backend in the
- K or L release.
- * The OSD now persists scrub results and provides a librados API to
- query results in detail.
- * We have revised our documentation to recommend *against* using
- ext4 as the underlying filesystem for Ceph OSD daemons due to
- problems supporting our long object name handling.
-
-Major Changes from Hammer
--------------------------
-
-- *General*:
-
- * Ceph daemons are now managed via systemd (with the exception of
- Ubuntu Trusty, which still uses upstart).
- * Ceph daemons run as 'ceph' user instead of 'root'.
- * On Red Hat distros, there is also an SELinux policy.
-
-- *RADOS*:
-
- * The RADOS cache tier can now proxy write operations to the base
- tier, allowing writes to be handled without forcing migration of
- an object into the cache.
- * The SHEC erasure coding support is no longer flagged as
- experimental. SHEC trades some additional storage space for faster
- repair.
- * There is now a unified queue (and thus prioritization) of client
- IO, recovery, scrubbing, and snapshot trimming.
- * There have been many improvements to low-level repair tooling
- (ceph-objectstore-tool).
- * The internal ObjectStore API has been significantly cleaned up in order
- to faciliate new storage backends like BlueStore.
-
-- *RGW*:
-
- * The Swift API now supports object expiration.
- * There are many Swift API compatibility improvements.
-
-- *RBD*:
-
- * The ``rbd du`` command shows actual usage (quickly, when
- object-map is enabled).
- * The object-map feature has seen many stability improvements.
- * The object-map and exclusive-lock features can be enabled or disabled
- dynamically.
- * You can now store user metadata and set persistent librbd options
- associated with individual images.
- * The new deep-flatten features allow flattening of a clone and all
- of its snapshots. (Previously snapshots could not be flattened.)
- * The export-diff command is now faster (it uses aio). There is also
- a new fast-diff feature.
- * The --size argument can be specified with a suffix for units
- (e.g., ``--size 64G``).
- * There is a new ``rbd status`` command that, for now, shows who has
- the image open/mapped.
-
-- *CephFS*:
-
- * You can now rename snapshots.
- * There have been ongoing improvements around administration, diagnostics,
- and the check and repair tools.
- * The caching and revocation of client cache state due to unused
- inodes has been dramatically improved.
- * The ceph-fuse client behaves better on 32-bit hosts.
-
-Distro compatibility
---------------------
-
-Starting with Infernalis, we have dropped support for many older
-distributions so that we can move to a newer compiler toolchain (e.g.,
-C++11). Although it is still possible to build Ceph on older
-distributions by installing backported development tools, we are not
-building and publishing release packages for ceph.com.
-
-We now build packages for the following distributions and architectures:
-
-- x86_64:
-
- * CentOS 7.x. We have dropped support for CentOS 6 (and other RHEL 6
- derivatives, like Scientific Linux 6).
- * Debian Jessie 8.x. Debian Wheezy 7.x's g++ has incomplete support
- for C++11 (and no systemd).
- * Ubuntu Xenial 16.04 and Trusty 14.04. Ubuntu Precise 12.04 is no
- longer supported.
- * Fedora 22 or later.
-
-- aarch64 / arm64:
-
- * Ubuntu Xenial 16.04.
-
-Upgrading from Infernalis or Hammer
------------------------------------
-
-* We now recommend against using ``ext4`` as the underlying file
- system for Ceph OSDs, especially when RGW or other users of long
- RADOS object names are used. For more information about why, please
- see `Filesystem Recommendations`_.
-
- If you have an existing cluster that uses ext4 for the OSDs but uses only
- RBD and/or CephFS, then the ext4 limitations will not affect you. Before
- upgrading, be sure add the following to ``ceph.conf`` to allow the OSDs to
- start::
-
- osd max object name len = 256
- osd max object namespace len = 64
-
- Keep in mind that if you set these lower object name limits and
- later decide to use RGW on this cluster, it will have problems
- storing S3/Swift objects with long names. This startup check can also be
- disabled via the below option, although this is not recommended::
-
- osd check max object name len on startup = false
-
-.. _Filesystem Recommendations: ../configuration/filesystem-recommendations
-
-* There are no major compatibility changes since Infernalis. Simply
- upgrading the daemons on each host and restarting all daemons is
- sufficient.
-
-* The rbd CLI no longer accepts the deprecated '--image-features' option
- during create, import, and clone operations. The '--image-feature'
- option should be used instead.
-
-* The rbd legacy image format (version 1) is deprecated with the Jewel release.
- Attempting to create a new version 1 RBD image will result in a warning.
- Future releases of Ceph will remove support for version 1 RBD images.
-
-* The 'send_pg_creates' and 'map_pg_creates' mon CLI commands are
- obsolete and no longer supported.
-
-* A new configure option 'mon_election_timeout' is added to specifically
- limit max waiting time of monitor election process, which was previously
- restricted by 'mon_lease'.
-
-* CephFS filesystems created using versions older than Firefly (0.80) must
- use the new 'cephfs-data-scan tmap_upgrade' command after upgrading to
- Jewel. See 'Upgrading' in the CephFS documentation for more information.
-
-* The 'ceph mds setmap' command has been removed.
-
-* The default RBD image features for new images have been updated to
- enable the following: exclusive lock, object map, fast-diff, and
- deep-flatten. These features are not currently supported by the RBD
- kernel driver nor older RBD clients. They can be disabled on a per-image
- basis via the RBD CLI, or the default features can be updated to the
- pre-Jewel setting by adding the following to the client section of the Ceph
- configuration file::
-
- rbd default features = 1
-
-* The rbd legacy image format (version 1) is deprecated with the Jewel
- release.
-
-* After upgrading, users should set the 'sortbitwise' flag to enable the new
- internal object sort order::
-
- ceph osd set sortbitwise
-
- This flag is important for the new object enumeration API and for
- new backends like BlueStore.
-
-* The rbd CLI no longer permits creating images and snapshots with potentially
- ambiguous names (e.g. the '/' and '@' characters are disallowed). The
- validation can be temporarily disabled by adding "--rbd-validate-names=false"
- to the rbd CLI when creating an image or snapshot. It can also be disabled
- by adding the following to the client section of the Ceph configuration file::
-
- rbd validate names = false
-
-Upgrading from Hammer
----------------------
-
-* All cluster nodes must first upgrade to Hammer v0.94.4 or a later
- v0.94.z release; only then is it possible to upgrade to Jewel
- 10.2.z.
-
-* For all distributions that support systemd (CentOS 7, Fedora, Debian
- Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd
- files instead of the legacy sysvinit scripts. For example::
-
- systemctl start ceph.target # start all daemons
- systemctl status ceph-osd@12 # check status of osd.12
-
- The main notable distro that is *not* yet using systemd is Ubuntu trusty
- 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
-
-* Ceph daemons now run as user and group ``ceph`` by default. The
- ceph user has a static UID assigned by Fedora and Debian (also used by
- derivative distributions like RHEL/CentOS and Ubuntu). On SUSE the same
- UID/GID as in Fedora and Debian will be used, *provided it is not already
- assigned*. In the unlikely event the preferred UID or GID is assigned to a
- different user/group, ceph will get a dynamically assigned UID/GID.
-
- If your systems already have a ceph user, upgrading the package will cause
- problems. We suggest you first remove or rename the existing 'ceph' user
- and 'ceph' group before upgrading.
-
- When upgrading, administrators have two options:
-
- #. Add the following line to ``ceph.conf`` on all hosts::
-
- setuser match path = /var/lib/ceph/$type/$cluster-$id
-
- This will make the Ceph daemons run as root (i.e., not drop
- privileges and switch to user ceph) if the daemon's data
- directory is still owned by root. Newly deployed daemons will
- be created with data owned by user ceph and will run with
- reduced privileges, but upgraded daemons will continue to run as
- root.
-
- #. Fix the data ownership during the upgrade. This is the
- preferred option, but it is more work and can be very time
- consuming. The process for each host is to:
-
- #. Upgrade the ceph package. This creates the ceph user and group. For
- example::
-
- ceph-deploy install --stable jewel HOST
-
- #. Stop the daemon(s)::
-
- service ceph stop # fedora, centos, rhel, debian
- stop ceph-all # ubuntu
-
- #. Fix the ownership::
-
- chown -R ceph:ceph /var/lib/ceph
- chown -R ceph:ceph /var/log/ceph
-
- #. Restart the daemon(s)::
-
- start ceph-all # ubuntu
- systemctl start ceph.target # debian, centos, fedora, rhel
-
- Alternatively, the same process can be done with a single daemon
- type, for example by stopping only monitors and chowning only
- ``/var/lib/ceph/mon``.
-
-* The on-disk format for the experimental KeyValueStore OSD backend has
- changed. You will need to remove any OSDs using that backend before you
- upgrade any test clusters that use it.
-
-* When a pool quota is reached, librados operations now block indefinitely,
- the same way they do when the cluster fills up. (Previously they would return
- -ENOSPC.) By default, a full cluster or pool will now block. If your
- librados application can handle ENOSPC or EDQUOT errors gracefully, you can
- get error returns instead by using the new librados OPERATION_FULL_TRY flag.
-
-* The return code for librbd's rbd_aio_read and Image::aio_read API methods no
- longer returns the number of bytes read upon success. Instead, it returns 0
- upon success and a negative value upon failure.
-
-* 'ceph scrub', 'ceph compact' and 'ceph sync force' are now DEPRECATED. Users
- should instead use 'ceph mon scrub', 'ceph mon compact' and
- 'ceph mon sync force'.
-
-* 'ceph mon_metadata' should now be used as 'ceph mon metadata'. There is no
- need to deprecate this command (same major release since it was first
- introduced).
-
-* The `--dump-json` option of "osdmaptool" is replaced by `--dump json`.
-
-* The commands of "pg ls-by-{pool,primary,osd}" and "pg ls" now take "recovering"
- instead of "recovery", to include the recovering pgs in the listed pgs.
-
-Upgrading from Firefly
-----------------------
-
-Upgrading directly from Firefly v0.80.z is not recommended. It is
-possible to do a direct upgrade, but not without downtime, as all OSDs
-must be stopped, upgraded, and then restarted. We recommend that
-clusters be first upgraded to Hammer v0.94.6 or a later v0.94.z
-release; only then is it possible to upgrade to Jewel 10.2.z for an
-online upgrade (see below).
-
-To do an offline upgrade directly from Firefly, all Firefly OSDs must
-be stopped and marked down before any Jewel OSDs will be allowed
-to start up. This fencing is enforced by the Jewel monitor, so
-you should use an upgrade procedure like:
-
- #. Upgrade Ceph on monitor hosts
- #. Restart all ceph-mon daemons
- #. Set noout::
- ceph osd set noout
- #. Upgrade Ceph on all OSD hosts
- #. Stop all ceph-osd daemons
- #. Mark all OSDs down with something like::
- ceph osd down `seq 0 1000`
- #. Start all ceph-osd daemons
- #. Let the cluster settle and then unset noout::
- ceph osd unset noout
- #. Upgrade and restart any remaining daemons (ceph-mds, radosgw)
-
-Notable Changes since Infernalis
---------------------------------
-
-* admin/build-doc: depend on zlib1g-dev and graphviz (`pr#7522 <http://github.com/ceph/ceph/pull/7522>`_, Ken Dreyer)
-* auth: fail if rotating key is missing (do not spam log) (`pr#6473 <http://github.com/ceph/ceph/pull/6473>`_, Qiankun Zheng)
-* auth: fix crash when bad keyring is passed (`pr#6698 <http://github.com/ceph/ceph/pull/6698>`_, Dunrong Huang)
-* auth: make keyring without mon entity type return -EACCES (`pr#5734 <http://github.com/ceph/ceph/pull/5734>`_, Xiaowei Chen)
-* AUTHORS: update email (`pr#7854 <http://github.com/ceph/ceph/pull/7854>`_, Yehuda Sadeh)
-* authtool: update --help and manpage to match code. (`pr#8456 <http://github.com/ceph/ceph/pull/8456>`_, Robin H. Johnson)
-* bluestore: latest and greatest (`issue#14210 <http://tracker.ceph.com/issues/14210>`_, `issue#13801 <http://tracker.ceph.com/issues/13801>`_, `pr#6896 <http://github.com/ceph/ceph/pull/6896>`_, xie.xingguo, Jianpeng Ma, YiQiang Chen, Sage Weil, Ning Yao)
-* buffer: add symmetry operator==() and operator!=() (`pr#7974 <http://github.com/ceph/ceph/pull/7974>`_, Kefu Chai)
-* buffer: fix internal iterator invalidation on rebuild, get_contiguous (`pr#6962 <http://github.com/ceph/ceph/pull/6962>`_, Sage Weil)
-* buffer: hide iterator_impl symbols (`issue#14788 <http://tracker.ceph.com/issues/14788>`_, `pr#7688 <http://github.com/ceph/ceph/pull/7688>`_, Kefu Chai)
-* buffer: increment history alloc as well in raw_combined (`issue#14955 <http://tracker.ceph.com/issues/14955>`_, `pr#7910 <http://github.com/ceph/ceph/pull/7910>`_, Samuel Just)
-* buffer: make usable outside of ceph source again (`pr#6863 <http://github.com/ceph/ceph/pull/6863>`_, Josh Durgin)
-* buffer: raw_combined allocations buffer and ref count together (`pr#7612 <http://github.com/ceph/ceph/pull/7612>`_, Sage Weil)
-* buffer: use move construct to append/push_back/push_front (`pr#7455 <http://github.com/ceph/ceph/pull/7455>`_, Haomai Wang)
-* build: Adding build requires (`pr#7742 <http://github.com/ceph/ceph/pull/7742>`_, Erwan Velu)
-* build: a few armhf (32-bit build) fixes (`pr#7999 <http://github.com/ceph/ceph/pull/7999>`_, Eric Lee, Sage Weil)
-* build: allow jemalloc with rocksdb-static (`pr#7368 <http://github.com/ceph/ceph/pull/7368>`_, Somnath Roy)
-* build: build internal plugins and classes as modules (`pr#6462 <http://github.com/ceph/ceph/pull/6462>`_, James Page)
-* build: cmake check fixes (`pr#6787 <http://github.com/ceph/ceph/pull/6787>`_, Orit Wasserman)
-* build: cmake tweaks (`pr#6254 <http://github.com/ceph/ceph/pull/6254>`_, John Spray)
-* build: fix a few warnings (`pr#6847 <http://github.com/ceph/ceph/pull/6847>`_, Orit Wasserman)
-* build: fix bz2-dev dependency (`pr#6948 <http://github.com/ceph/ceph/pull/6948>`_, Samuel Just)
-* build: fix compiling warnings (`pr#8366 <http://github.com/ceph/ceph/pull/8366>`_, Dongsheng Yang)
-* build: Fixing BTRFS issue at 'make check' (`pr#7805 <http://github.com/ceph/ceph/pull/7805>`_, Erwan Velu)
-* build: fix Jenkins make check errors due to deep-scrub randomization (`pr#6671 <http://github.com/ceph/ceph/pull/6671>`_, David Zafman)
-* build: fix the autotools and cmake build (the new fusestore needs libfuse) (`pr#7393 <http://github.com/ceph/ceph/pull/7393>`_, Kefu Chai)
-* build: fix warnings (`pr#7197 <http://github.com/ceph/ceph/pull/7197>`_, Kefu Chai, xie xingguo)
-* build: fix warnings (`pr#7315 <http://github.com/ceph/ceph/pull/7315>`_, Kefu Chai)
-* build: FreeBSD related fixes (`pr#7170 <http://github.com/ceph/ceph/pull/7170>`_, Mykola Golub)
-* build: Gentoo: _FORTIFY_SOURCE fix. (`issue#13920 <http://tracker.ceph.com/issues/13920>`_, `pr#6739 <http://github.com/ceph/ceph/pull/6739>`_, Robin H. Johnson)
-* build: kill warnings (`pr#7397 <http://github.com/ceph/ceph/pull/7397>`_, Kefu Chai)
-* build: misc make check fixes (`pr#7153 <http://github.com/ceph/ceph/pull/7153>`_, Sage Weil)
-* build: more CMake package check fixes (`pr#6108 <http://github.com/ceph/ceph/pull/6108>`_, Daniel Gryniewicz)
-* build: move libexec scripts to standardize across distros (`issue#14687 <http://tracker.ceph.com/issues/14687>`_, `issue#14705 <http://tracker.ceph.com/issues/14705>`_, `issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7636 <http://github.com/ceph/ceph/pull/7636>`_, Nathan Cutler, Kefu Chai)
-* build/ops: enable CR in CentOS 7 (`issue#13997 <http://tracker.ceph.com/issues/13997>`_, `pr#6844 <http://github.com/ceph/ceph/pull/6844>`_, Loic Dachary)
-* build/ops: rbd-replay moved from ceph-test-dbg to ceph-common-dbg (`issue#13785 <http://tracker.ceph.com/issues/13785>`_, `pr#6578 <http://github.com/ceph/ceph/pull/6578>`_, Loic Dachary)
-* build/ops: systemd ceph-disk unit must not assume /bin/flock (`issue#13975 <http://tracker.ceph.com/issues/13975>`_, `pr#6803 <http://github.com/ceph/ceph/pull/6803>`_, Loic Dachary)
-* build: Refrain from versioning and packaging EC testing plugins (`issue#14756 <http://tracker.ceph.com/issues/14756>`_, `issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7637 <http://github.com/ceph/ceph/pull/7637>`_, Nathan Cutler, Kefu Chai)
-* build: Respect TMPDIR for virtualenv. (`pr#8457 <http://github.com/ceph/ceph/pull/8457>`_, Robin H. Johnson)
-* build: spdk submodule; cmake (`pr#7503 <http://github.com/ceph/ceph/pull/7503>`_, Kefu Chai)
-* build: workaround an automake bug for "make check" (`issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7626 <http://github.com/ceph/ceph/pull/7626>`_, Kefu Chai)
-* ceph: bash auto complete for CLI based on mon command descriptions (`pr#7693 <http://github.com/ceph/ceph/pull/7693>`_, Adam Kupczyk)
-* ceph_daemon.py: Resolved ImportError to work with python3 (`pr#7937 <http://github.com/ceph/ceph/pull/7937>`_, Sarthak Munshi)
-* ceph-detect-init: add debian/jessie test (`pr#8074 <http://github.com/ceph/ceph/pull/8074>`_, Kefu Chai)
-* ceph-detect-init: add missing test case (`pr#8105 <http://github.com/ceph/ceph/pull/8105>`_, Nathan Cutler)
-* ceph-detect-init: fix py3 test (`pr#7025 <http://github.com/ceph/ceph/pull/7025>`_, Kefu Chai)
-* ceph-detect-init: fix py3 test (`pr#7243 <http://github.com/ceph/ceph/pull/7243>`_, Kefu Chai)
-* ceph_detect_init/__init__.py: remove shebang (`pr#7731 <http://github.com/ceph/ceph/pull/7731>`_, Nathan Cutler)
-* ceph-detect-init: return correct value on recent SUSE distros (`issue#14770 <http://tracker.ceph.com/issues/14770>`_, `pr#7909 <http://github.com/ceph/ceph/pull/7909>`_, Nathan Cutler)
-* ceph-detect-init/run-tox.sh: FreeBSD: No init detect (`pr#8373 <http://github.com/ceph/ceph/pull/8373>`_, Willem Jan Withagen)
-* ceph-detect-init: Ubuntu >= 15.04 uses systemd (`pr#6873 <http://github.com/ceph/ceph/pull/6873>`_, James Page)
-* ceph-disk: Add destroy and deactivate option (`issue#7454 <http://tracker.ceph.com/issues/7454>`_, `pr#5867 <http://github.com/ceph/ceph/pull/5867>`_, Vicente Cheng)
-* ceph-disk: add -f flag for btrfs mkfs (`pr#7222 <http://github.com/ceph/ceph/pull/7222>`_, Darrell Enns)
-* ceph-disk: Add --setuser and --setgroup options for ceph-disk (`pr#7351 <http://github.com/ceph/ceph/pull/7351>`_, Mike Shuey)
-* ceph-disk: ceph-disk list fails on /dev/cciss!c0d0 (`issue#13970 <http://tracker.ceph.com/issues/13970>`_, `issue#14233 <http://tracker.ceph.com/issues/14233>`_, `issue#14230 <http://tracker.ceph.com/issues/14230>`_, `pr#6879 <http://github.com/ceph/ceph/pull/6879>`_, Loic Dachary)
-* ceph-disk: compare parted output with the dereferenced path (`issue#13438 <http://tracker.ceph.com/issues/13438>`_, `pr#6219 <http://github.com/ceph/ceph/pull/6219>`_, Joe Julian)
-* ceph-disk: deactivate / destroy PATH arg are optional (`pr#7756 <http://github.com/ceph/ceph/pull/7756>`_, Loic Dachary)
-* ceph-disk: do not always fail when re-using a partition (`pr#8508 <http://github.com/ceph/ceph/pull/8508>`_, You Ji)
-* ceph-disk: fix failures when preparing disks with udev > 214 (`issue#14080 <http://tracker.ceph.com/issues/14080>`_, `issue#14094 <http://tracker.ceph.com/issues/14094>`_, `pr#6926 <http://github.com/ceph/ceph/pull/6926>`_, Loic Dachary, Ilya Dryomov)
-* ceph-disk: fix prepare --help (`pr#7758 <http://github.com/ceph/ceph/pull/7758>`_, Loic Dachary)
-* ceph-disk: Fix trivial typo (`pr#7472 <http://github.com/ceph/ceph/pull/7472>`_, Brad Hubbard)
-* ceph-disk: flake8 fixes (`pr#7646 <http://github.com/ceph/ceph/pull/7646>`_, Loic Dachary)
-* ceph-disk: get Nonetype when ceph-disk list with --format plain on single device. (`pr#6410 <http://github.com/ceph/ceph/pull/6410>`_, Vicente Cheng)
-* ceph-disk: Improving 'make check' for ceph-disk (`pr#7762 <http://github.com/ceph/ceph/pull/7762>`_, Erwan Velu)
-* ceph-disk: key management support (`issue#14669 <http://tracker.ceph.com/issues/14669>`_, `pr#7552 <http://github.com/ceph/ceph/pull/7552>`_, Loic Dachary)
-* ceph-disk: make some arguments as required if necessary (`pr#7687 <http://github.com/ceph/ceph/pull/7687>`_, Dongsheng Yang)
-* ceph-disk: s/dmcrpyt/dmcrypt/ (`issue#14838 <http://tracker.ceph.com/issues/14838>`_, `pr#7744 <http://github.com/ceph/ceph/pull/7744>`_, Loic Dachary, Frode Sandholtbraaten)
-* ceph-disk: support bluestore (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7218 <http://github.com/ceph/ceph/pull/7218>`_, Loic Dachary, Sage Weil)
-* ceph-disk/test: fix test_prepare.py::TestPrepare tests (`pr#7549 <http://github.com/ceph/ceph/pull/7549>`_, Kefu Chai)
-* ceph-disk: warn for prepare partitions with bad GUIDs (`issue#13943 <http://tracker.ceph.com/issues/13943>`_, `pr#6760 <http://github.com/ceph/ceph/pull/6760>`_, David Disseldorp)
-* ceph: fix tell behavior (`pr#6329 <http://github.com/ceph/ceph/pull/6329>`_, David Zafman)
-* cephfs-data-scan: scan_frags (`pr#5941 <http://github.com/ceph/ceph/pull/5941>`_, John Spray)
-* cephfs-data-scan: scrub tag filtering (#12133 and #12145) (`issue#12133 <http://tracker.ceph.com/issues/12133>`_, `issue#12145 <http://tracker.ceph.com/issues/12145>`_, `pr#5685 <http://github.com/ceph/ceph/pull/5685>`_, John Spray)
-* ceph-fuse: add process to ceph-fuse --help (`pr#6821 <http://github.com/ceph/ceph/pull/6821>`_, Wei Feng)
-* ceph-fuse: fix double decreasing the count to trim caps (`issue#14319 <http://tracker.ceph.com/issues/14319>`_, `pr#7229 <http://github.com/ceph/ceph/pull/7229>`_, Zhi Zhang)
-* ceph-fuse: fix double free of args (`pr#7015 <http://github.com/ceph/ceph/pull/7015>`_, Ilya Shipitsin)
-* ceph-fuse: fix fsync() (`pr#6388 <http://github.com/ceph/ceph/pull/6388>`_, Yan, Zheng)
-* ceph-fuse: Fix potential filehandle ref leak at umount (`issue#14800 <http://tracker.ceph.com/issues/14800>`_, `pr#7686 <http://github.com/ceph/ceph/pull/7686>`_, Zhi Zhang)
-* ceph-fuse,libcephfs: Fix client handling of "lost" open directories on shutdown (`issue#14996 <http://tracker.ceph.com/issues/14996>`_, `pr#7994 <http://github.com/ceph/ceph/pull/7994>`_, Yan, Zheng)
-* ceph-fuse,libcephfs: fix free fds being exhausted eventually because freed fds are never put back (`issue#14798 <http://tracker.ceph.com/issues/14798>`_, `pr#7685 <http://github.com/ceph/ceph/pull/7685>`_, Zhi Zhang)
-* ceph-fuse:print usage information when no parameter specified (`pr#6868 <http://github.com/ceph/ceph/pull/6868>`_, Bo Cai)
-* ceph-fuse: rotate log file (`pr#8485 <http://github.com/ceph/ceph/pull/8485>`_, Sage Weil)
-* ceph-fuse: While starting ceph-fuse, start the log thread first (`issue#13443 <http://tracker.ceph.com/issues/13443>`_, `pr#6224 <http://github.com/ceph/ceph/pull/6224>`_, Wenjun Huang)
-* ceph: improve the error message (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#7106 <http://github.com/ceph/ceph/pull/7106>`_, Kefu Chai)
-* ceph.in: avoid a broken pipe error when use ceph command (`issue#14354 <http://tracker.ceph.com/issues/14354>`_, `pr#7212 <http://github.com/ceph/ceph/pull/7212>`_, Bo Cai)
-* ceph.in: correct dev python path for automake builds (`pr#8360 <http://github.com/ceph/ceph/pull/8360>`_, Josh Durgin)
-* ceph.in: fix python libpath for automake as well (`pr#8362 <http://github.com/ceph/ceph/pull/8362>`_, Josh Durgin)
-* ceph.in: Minor python3 specific changes (`pr#7947 <http://github.com/ceph/ceph/pull/7947>`_, Sarthak Munshi)
-* ceph-kvstore-tool: handle bad out file on command line (`pr#6093 <http://github.com/ceph/ceph/pull/6093>`_, Kefu Chai)
-* ceph-mds:add --help/-h (`pr#6850 <http://github.com/ceph/ceph/pull/6850>`_, Cilang Zhao)
-* ceph_objectstore_bench: fix race condition, bugs (`issue#13516 <http://tracker.ceph.com/issues/13516>`_, `pr#6681 <http://github.com/ceph/ceph/pull/6681>`_, Igor Fedotov)
-* ceph-objectstore-tool: fix --dry-run for many ceph-objectstore-tool operations (`pr#6545 <http://github.com/ceph/ceph/pull/6545>`_, David Zafman)
-* ceph-rest-api: fix fs/flag/set (`pr#8428 <http://github.com/ceph/ceph/pull/8428>`_, Sage Weil)
-* ceph.spec.in: add BuildRequires: systemd (`issue#13860 <http://tracker.ceph.com/issues/13860>`_, `pr#6692 <http://github.com/ceph/ceph/pull/6692>`_, Nathan Cutler)
-* ceph.spec.in: add copyright notice (`issue#14694 <http://tracker.ceph.com/issues/14694>`_, `pr#7569 <http://github.com/ceph/ceph/pull/7569>`_, Nathan Cutler)
-* ceph.spec.in: add license declaration (`pr#7574 <http://github.com/ceph/ceph/pull/7574>`_, Nathan Cutler)
-* ceph.spec.in: disable lttng and babeltrace explicitly (`issue#14844 <http://tracker.ceph.com/issues/14844>`_, `pr#7857 <http://github.com/ceph/ceph/pull/7857>`_, Kefu Chai)
-* ceph.spec.in: do not install Ceph RA on systemd platforms (`issue#14828 <http://tracker.ceph.com/issues/14828>`_, `pr#7894 <http://github.com/ceph/ceph/pull/7894>`_, Nathan Cutler)
-* ceph.spec.in: fix openldap and openssl build dependencies for SUSE (`issue#15138 <http://tracker.ceph.com/issues/15138>`_, `pr#8120 <http://github.com/ceph/ceph/pull/8120>`_, Nathan Cutler)
-* ceph.spec.in: limit _smp_mflags when lowmem_builder is set in SUSE's OBS (`issue#13858 <http://tracker.ceph.com/issues/13858>`_, `pr#6691 <http://github.com/ceph/ceph/pull/6691>`_, Nathan Cutler)
-* ceph.spec.in: terminate if statement in %pre scriptlet (`pr#8628 <http://github.com/ceph/ceph/pull/8628>`_, Nathan Cutler)
-* ceph_test_libcephfs: tolerate duplicated entries in readdir (`issue#14377 <http://tracker.ceph.com/issues/14377>`_, `pr#7246 <http://github.com/ceph/ceph/pull/7246>`_, Yan, Zheng)
-* ceph_test_msgr: reduce test size to fix memory size (`pr#8127 <http://github.com/ceph/ceph/pull/8127>`_, Haomai Wang)
-* ceph_test_msgr: Use send_message instead of keepalive to wakeup connection (`pr#6605 <http://github.com/ceph/ceph/pull/6605>`_, Haomai Wang)
-* ceph_test_rados: make long name ~300 chars, (not ~800) (`pr#8600 <http://github.com/ceph/ceph/pull/8600>`_, Sage Weil)
-* ceph_test_rados_misc: shorten mount timeout (`pr#8209 <http://github.com/ceph/ceph/pull/8209>`_, Sage Weil)
-* check-generated.sh: can't source bash from sh (`pr#8521 <http://github.com/ceph/ceph/pull/8521>`_, Michal Jarzabek)
-* cleanup (`pr#8058 <http://github.com/ceph/ceph/pull/8058>`_, Yehuda Sadeh, Orit Wasserman)
-* cleanup: remove misc dead code (`pr#7201 <http://github.com/ceph/ceph/pull/7201>`_, Erwan Velu)
-* client: a better check for MDS availability (`pr#6253 <http://github.com/ceph/ceph/pull/6253>`_, John Spray)
-* client: add option to control how directory size is calculated (`pr#7323 <http://github.com/ceph/ceph/pull/7323>`_, Yan, Zheng)
-* client: avoid creating orphan object in Client::check_pool_perm() (`issue#13782 <http://tracker.ceph.com/issues/13782>`_, `pr#6603 <http://github.com/ceph/ceph/pull/6603>`_, Yan, Zheng)
-* client: check if Fh is readable when processing a read (`issue#11517 <http://tracker.ceph.com/issues/11517>`_, `pr#7209 <http://github.com/ceph/ceph/pull/7209>`_, Yan, Zheng)
-* client: close mds sessions in shutdown() (`pr#6269 <http://github.com/ceph/ceph/pull/6269>`_, John Spray)
-* client: don't invalidate page cache when inode is no longer used (`pr#6380 <http://github.com/ceph/ceph/pull/6380>`_, Yan, Zheng)
-* client: don't mark_down on command reply (`pr#6204 <http://github.com/ceph/ceph/pull/6204>`_, John Spray)
-* client: drop prefix from ints (`pr#6275 <http://github.com/ceph/ceph/pull/6275>`_, John Coyle)
-* client: flush kernel pagecache before creating snapshot (`issue#10436 <http://tracker.ceph.com/issues/10436>`_, `pr#7495 <http://github.com/ceph/ceph/pull/7495>`_, Yan, Zheng)
-* client: modify a word in log (`pr#6906 <http://github.com/ceph/ceph/pull/6906>`_, YongQiang He)
-* client: properly trim unlinked inode (`issue#13903 <http://tracker.ceph.com/issues/13903>`_, `pr#7297 <http://github.com/ceph/ceph/pull/7297>`_, Yan, Zheng)
-* client: removed unused Mutex from MetaRequest (`pr#7655 <http://github.com/ceph/ceph/pull/7655>`_, Greg Farnum)
-* client: sys/file.h includes for flock operations (`pr#6282 <http://github.com/ceph/ceph/pull/6282>`_, John Coyle)
-* client: use null snapc to check pool permission (`issue#13714 <http://tracker.ceph.com/issues/13714>`_, `pr#6497 <http://github.com/ceph/ceph/pull/6497>`_, Yan, Zheng)
-* cls/cls_rbd.cc: fix misused metadata_name_from_key (`issue#13922 <http://tracker.ceph.com/issues/13922>`_, `pr#6661 <http://github.com/ceph/ceph/pull/6661>`_, Xiaoxi Chen)
-* cls/cls_rbd: pass string by reference (`pr#7232 <http://github.com/ceph/ceph/pull/7232>`_, Jeffrey Lu)
-* cls_hello: Fix grammatical error in description comment (`pr#7951 <http://github.com/ceph/ceph/pull/7951>`_, Brad Hubbard)
-* cls_journal: fix -EEXIST checking (`pr#8413 <http://github.com/ceph/ceph/pull/8413>`_, runsisi)
-* cls_rbd: add guards for error cases (`issue#14316 <http://tracker.ceph.com/issues/14316>`_, `issue#14317 <http://tracker.ceph.com/issues/14317>`_, `pr#7165 <http://github.com/ceph/ceph/pull/7165>`_, xie xingguo)
-* cls_rbd: change object_map_update to return 0 on success, add logging (`pr#6467 <http://github.com/ceph/ceph/pull/6467>`_, Douglas Fuller)
-* cls_rbd: enable object map checksums for object_map_save (`issue#14280 <http://tracker.ceph.com/issues/14280>`_, `pr#7149 <http://github.com/ceph/ceph/pull/7149>`_, Douglas Fuller)
-* cls_rbd: fix -EEXIST checking in cls::rbd::image_set (`pr#8371 <http://github.com/ceph/ceph/pull/8371>`_, runsisi)
-* cls_rbd: fix the test for ceph-dencoder (`pr#7793 <http://github.com/ceph/ceph/pull/7793>`_, Kefu Chai)
-* cls_rbd: mirror_image_list should return global image id (`pr#8297 <http://github.com/ceph/ceph/pull/8297>`_, Jason Dillaman)
-* cls_rbd: mirroring directory (`issue#14419 <http://tracker.ceph.com/issues/14419>`_, `pr#7620 <http://github.com/ceph/ceph/pull/7620>`_, Josh Durgin)
-* cls_rbd: pass WILLNEED fadvise flags during object map update (`issue#15332 <http://tracker.ceph.com/issues/15332>`_, `pr#8380 <http://github.com/ceph/ceph/pull/8380>`_, Jason Dillaman)
-* cls_rbd: protect against excessively large object maps (`issue#15121 <http://tracker.ceph.com/issues/15121>`_, `pr#8099 <http://github.com/ceph/ceph/pull/8099>`_, Jason Dillaman)
-* cls_rbd: read_peers: update last_read on next cls_cxx_map_get_vals (`pr#8374 <http://github.com/ceph/ceph/pull/8374>`_, Mykola Golub)
-* cls/rgw: fix FTBFS (`pr#8142 <http://github.com/ceph/ceph/pull/8142>`_, Kefu Chai)
-* cls/rgw: fix use of timespan (`issue#15181 <http://tracker.ceph.com/issues/15181>`_, `pr#8212 <http://github.com/ceph/ceph/pull/8212>`_, Yehuda Sadeh)
-* cmake: add common/fs_types.cc to libcommon (`pr#7898 <http://github.com/ceph/ceph/pull/7898>`_, Orit Wasserman)
-* cmake: Add common/PluginRegistry.cc to CMakeLists.txt (`pr#6805 <http://github.com/ceph/ceph/pull/6805>`_, Pete Zaitcev)
-* cmake: Added new unittests to make check (`pr#7572 <http://github.com/ceph/ceph/pull/7572>`_, Ali Maredia)
-* cmake: Add ENABLE_GIT_VERSION to avoid rebuilding (`pr#7171 <http://github.com/ceph/ceph/pull/7171>`_, Kefu Chai)
-* cmake: add ErasureCode.cc to jerasure plugins (`pr#7808 <http://github.com/ceph/ceph/pull/7808>`_, Casey Bodley)
-* cmake: add FindOpenSSL.cmake (`pr#8106 <http://github.com/ceph/ceph/pull/8106>`_, Marcus Watts, Matt Benjamin)
-* cmake: add KernelDevice.cc to libos_srcs (`pr#7507 <http://github.com/ceph/ceph/pull/7507>`_, Kefu Chai)
-* cmake: add missing check for HAVE_EXECINFO_H (`pr#7270 <http://github.com/ceph/ceph/pull/7270>`_, Casey Bodley)
-* cmake: add missing librbd image_watcher sources (`issue#14823 <http://tracker.ceph.com/issues/14823>`_, `pr#7717 <http://github.com/ceph/ceph/pull/7717>`_, Casey Bodley)
-* cmake: add missing librbd/MirrorWatcher.cc and librd/ObjectWatcher.cc (`pr#8399 <http://github.com/ceph/ceph/pull/8399>`_, Orit Wasserman)
-* cmake: add nss as a suffix for pk11pub.h (`pr#6556 <http://github.com/ceph/ceph/pull/6556>`_, Samuel Just)
-* cmake: add rgw_basic_types.cc to librgw.a (`pr#6786 <http://github.com/ceph/ceph/pull/6786>`_, Orit Wasserman)
-* cmake: add StandardPolicy.cc to librbd (`pr#8368 <http://github.com/ceph/ceph/pull/8368>`_, Kefu Chai)
-* cmake: add TracepointProvider.cc to libcommon (`pr#6823 <http://github.com/ceph/ceph/pull/6823>`_, Orit Wasserman)
-* cmake: avoid false-positive LDAP header detect (`pr#8100 <http://github.com/ceph/ceph/pull/8100>`_, Matt Benjamin)
-* cmake: Build cython modules and change paths to bin/, lib/ (`pr#8351 <http://github.com/ceph/ceph/pull/8351>`_, John Spray, Ali Maredia)
-* cmake: check for libsnappy in default path also (`pr#7366 <http://github.com/ceph/ceph/pull/7366>`_, Kefu Chai)
-* cmake: cleanups and more features from automake (`pr#7103 <http://github.com/ceph/ceph/pull/7103>`_, Casey Bodley, Ali Maredia)
-* cmake: define STRERROR_R_CHAR_P for GNU-specific strerror_r (`pr#6751 <http://github.com/ceph/ceph/pull/6751>`_, Ilya Dryomov)
-* cmake: detect bzip2 and lz4 (`pr#7126 <http://github.com/ceph/ceph/pull/7126>`_, Kefu Chai)
-* cmake: feb5 (`pr#7541 <http://github.com/ceph/ceph/pull/7541>`_, Matt Benjamin)
-* cmake: fix build with bluestore (`pr#7099 <http://github.com/ceph/ceph/pull/7099>`_, John Spray)
-* cmake: fix files list (`pr#6539 <http://github.com/ceph/ceph/pull/6539>`_, Yehuda Sadeh)
-* cmake: fix mrun to handle cmake build structure (`pr#8237 <http://github.com/ceph/ceph/pull/8237>`_, Orit Wasserman)
-* cmake: fix paths to various EC source files (`pr#7748 <http://github.com/ceph/ceph/pull/7748>`_, Ali Maredia, Matt Benjamin)
-* cmake: fix the build of test_rados_api_list (`pr#8438 <http://github.com/ceph/ceph/pull/8438>`_, Kefu Chai)
-* cmake: fix the build of tests (`pr#7523 <http://github.com/ceph/ceph/pull/7523>`_, Kefu Chai)
-* cmake: fix the build on trusty (`pr#7249 <http://github.com/ceph/ceph/pull/7249>`_, Kefu Chai)
-* cmake: For CMake version <= 2.8.11, use LINK_PRIVATE and LINK_PUBLIC (`pr#7474 <http://github.com/ceph/ceph/pull/7474>`_, Tao Chang)
-* cmake: For CMake version <= 2.8.11, use LINK_PRIVATE (`pr#8422 <http://github.com/ceph/ceph/pull/8422>`_, Haomai Wang)
-* cmake: let ceph-client-debug link with tcmalloc (`pr#7314 <http://github.com/ceph/ceph/pull/7314>`_, Kefu Chai)
-* cmake: librbd and libjournal build fixes (`pr#6557 <http://github.com/ceph/ceph/pull/6557>`_, Ilya Dryomov)
-* cmake: made rocksdb an imported library (`pr#7131 <http://github.com/ceph/ceph/pull/7131>`_, Ali Maredia)
-* cmake: make check (`pr#7912 <http://github.com/ceph/ceph/pull/7912>`_, Kefu Chai, Ali Maredia)
-* cmake: no need to run configure from run-cmake-check.sh (`pr#6959 <http://github.com/ceph/ceph/pull/6959>`_, Orit Wasserman)
-* cmake (`pr#7849 <http://github.com/ceph/ceph/pull/7849>`_, Ali Maredia)
-* cmake/pybind: fix include paths for cephfs (`pr#8381 <http://github.com/ceph/ceph/pull/8381>`_, Josh Durgin)
-* cmake: Remove duplicate find_package libcurl line. (`pr#7972 <http://github.com/ceph/ceph/pull/7972>`_, Brad Hubbard)
-* cmake: support ccache via a WITH_CCACHE build option (`pr#6875 <http://github.com/ceph/ceph/pull/6875>`_, John Coyle)
-* cmake: test_build_libcephfs needs ${ALLOC_LIBS} (`pr#7300 <http://github.com/ceph/ceph/pull/7300>`_, Ali Maredia)
-* cmake: update for recent librbd changes (`pr#6715 <http://github.com/ceph/ceph/pull/6715>`_, John Spray)
-* cmake: update for recent rbd changes (`pr#6818 <http://github.com/ceph/ceph/pull/6818>`_, Mykola Golub)
-* cmake: Use uname instead of arch. (`pr#6358 <http://github.com/ceph/ceph/pull/6358>`_, John Coyle)
-* coc: fix typo in the apt-get command (`pr#6659 <http://github.com/ceph/ceph/pull/6659>`_, Chris Holcombe)
-* common: add generic plugin infrastructure (`pr#6696 <http://github.com/ceph/ceph/pull/6696>`_, Sage Weil)
-* common: add latency perf counter for finisher (`pr#6175 <http://github.com/ceph/ceph/pull/6175>`_, Xinze Chi)
-* common/address_help.cc: fix the leak in entity_addr_from_url() (`issue#14132 <http://tracker.ceph.com/issues/14132>`_, `pr#6987 <http://github.com/ceph/ceph/pull/6987>`_, Qiankun Zheng)
-* common: add thread names (`pr#5882 <http://github.com/ceph/ceph/pull/5882>`_, Igor Podoski)
-* common: add zlib compression plugin (`pr#7437 <http://github.com/ceph/ceph/pull/7437>`_, Alyona Kiseleva, Kiseleva Alyona)
-* common: admin socket commands for tcmalloc heap get/set operations (`pr#7512 <http://github.com/ceph/ceph/pull/7512>`_, Samuel Just)
-* common: ake ceph_time clocks work under BSD (`pr#7340 <http://github.com/ceph/ceph/pull/7340>`_, Adam C. Emerson)
-* common: allow enable/disable of optracker at runtime (`pr#5168 <http://github.com/ceph/ceph/pull/5168>`_, Jianpeng Ma)
-* common: Allow OPT_INT settings with negative values (`issue#13829 <http://tracker.ceph.com/issues/13829>`_, `pr#7390 <http://github.com/ceph/ceph/pull/7390>`_, Brad Hubbard, Kefu Chai)
-* common: assert: abort() rather than throw (`pr#6804 <http://github.com/ceph/ceph/pull/6804>`_, Adam C. Emerson)
-* common: assert: __STRING macro is not defined by musl libc. (`pr#6210 <http://github.com/ceph/ceph/pull/6210>`_, John Coyle)
-* common/bit_vector: use hard-coded value for block size (`issue#14747 <http://tracker.ceph.com/issues/14747>`_, `pr#7610 <http://github.com/ceph/ceph/pull/7610>`_, Jason Dillaman)
-* common: buffer: add cached_crc and cached_crc_adjust counts to perf dump (`pr#6535 <http://github.com/ceph/ceph/pull/6535>`_, Ning Yao)
-* common: buffer/assert minor fixes (`pr#6990 <http://github.com/ceph/ceph/pull/6990>`_, Matt Benjamin)
-* common: buffer: put a guard for stat() syscall during read_file (`pr#7956 <http://github.com/ceph/ceph/pull/7956>`_, xie xingguo)
-* common: buffer: remove unneeded list destructor (`pr#6456 <http://github.com/ceph/ceph/pull/6456>`_, Michal Jarzabek)
-* common/buffer: replace RWLock with spinlocks (`pr#7294 <http://github.com/ceph/ceph/pull/7294>`_, Piotr Dałek)
-* common/ceph_context.cc:fix order of initialisers (`pr#6838 <http://github.com/ceph/ceph/pull/6838>`_, Michal Jarzabek)
-* common: change the type of counter total/unhealthy_workers (`pr#7254 <http://github.com/ceph/ceph/pull/7254>`_, Guang Yang)
-* common: default cluster name to config file prefix (`pr#7364 <http://github.com/ceph/ceph/pull/7364>`_, Javen Wu)
-* common: Deprecate or free up a bunch of feature bits (`pr#8214 <http://github.com/ceph/ceph/pull/8214>`_, Samuel Just)
-* common: Do not use non-portable constants in mutex_debug (`pr#7766 <http://github.com/ceph/ceph/pull/7766>`_, Adam C. Emerson)
-* common: don't reverse hobject_t hash bits when zero (`pr#6653 <http://github.com/ceph/ceph/pull/6653>`_, Piotr Dałek)
-* common: fix OpTracker age histogram calculation (`pr#5065 <http://github.com/ceph/ceph/pull/5065>`_, Zhiqiang Wang)
-* common: fix race during optracker switches between enabled/disabled mode (`pr#8330 <http://github.com/ceph/ceph/pull/8330>`_, xie xingguo)
-* common: fix reset max in Throttle using perf reset command (`issue#13517 <http://tracker.ceph.com/issues/13517>`_, `pr#6300 <http://github.com/ceph/ceph/pull/6300>`_, Xinze Chi)
-* common: fix time_t cast in decode (`issue#15330 <http://tracker.ceph.com/issues/15330>`_, `pr#8419 <http://github.com/ceph/ceph/pull/8419>`_, Adam C. Emerson)
-* common/Formatter: avoid newline if there is no output (`pr#5351 <http://github.com/ceph/ceph/pull/5351>`_, Aran85)
-* common: improve shared_cache and simple_cache efficiency with hash table (`pr#6909 <http://github.com/ceph/ceph/pull/6909>`_, Ning Yao)
-* common/lockdep: increase max lock names (`pr#6961 <http://github.com/ceph/ceph/pull/6961>`_, Sage Weil)
-* common: log: Assign LOG_DEBUG priority to syslog calls (`issue#13993 <http://tracker.ceph.com/issues/13993>`_, `pr#6815 <http://github.com/ceph/ceph/pull/6815>`_, Brad Hubbard)
-* common: log: predict log message buffer allocation size (`pr#6641 <http://github.com/ceph/ceph/pull/6641>`_, Adam Kupczyk)
-* common/MemoryModel: Added explicit feature check for mallinfo(). (`pr#6252 <http://github.com/ceph/ceph/pull/6252>`_, John Coyle)
-* common: new timekeeping common code, and Objecter conversion (`pr#5782 <http://github.com/ceph/ceph/pull/5782>`_, Adam C. Emerson)
-* common/obj_bencher.cc: bump the precision of bandwidth field (`pr#8021 <http://github.com/ceph/ceph/pull/8021>`_, Piotr Dałek)
-* common/obj_bencher.cc: faster object name generation (`pr#7863 <http://github.com/ceph/ceph/pull/7863>`_, Piotr Dałek)
-* common/obj_bencher.cc: fix verification crashing when there's no objects (`pr#5853 <http://github.com/ceph/ceph/pull/5853>`_, Piotr Dałek)
-* common/obj_bencher.cc: make verify error fatal (`issue#14971 <http://tracker.ceph.com/issues/14971>`_, `pr#7897 <http://github.com/ceph/ceph/pull/7897>`_, Piotr Dałek)
-* common: optimize debug logging code (`pr#6441 <http://github.com/ceph/ceph/pull/6441>`_, Adam Kupczyk)
-* common: optimize debug logging (`pr#6307 <http://github.com/ceph/ceph/pull/6307>`_, Adam Kupczyk)
-* common/page.cc: _page_mask has too many bits (`pr#7588 <http://github.com/ceph/ceph/pull/7588>`_, Dan Mick)
-* common: perf counter for bufferlist history total alloc (`pr#6198 <http://github.com/ceph/ceph/pull/6198>`_, Xinze Chi)
-* common: reduce CPU usage by making stringstream in stringify function thread local (`pr#6543 <http://github.com/ceph/ceph/pull/6543>`_, Evgeniy Firsov)
-* common: re-enable backtrace support (`pr#6771 <http://github.com/ceph/ceph/pull/6771>`_, Jason Dillaman)
-* common: set thread name from correct thread (`pr#7845 <http://github.com/ceph/ceph/pull/7845>`_, Igor Podoski)
-* common: signal_handler: added support for using reentrant strsignal() implementations vs. sys_siglist[] (`pr#6796 <http://github.com/ceph/ceph/pull/6796>`_, John Coyle)
-* common: snappy decompressor may assert when handling segmented input bufferlist (`issue#14400 <http://tracker.ceph.com/issues/14400>`_, `pr#7268 <http://github.com/ceph/ceph/pull/7268>`_, Igor Fedotov)
-* common: string.h: return type from str_len(...) need not be const (`pr#7679 <http://github.com/ceph/ceph/pull/7679>`_, Matt Benjamin)
-* common/str_map: cleanup: replaced get_str_map() function overloading by using default parameters for delimiters (`pr#7266 <http://github.com/ceph/ceph/pull/7266>`_, Sahithi R V)
-* common/strtol.cc: fix the coverity warnings (`pr#7967 <http://github.com/ceph/ceph/pull/7967>`_, Kefu Chai)
-* common: SubProcess: Avoid buffer corruption when calling err() (`issue#15011 <http://tracker.ceph.com/issues/15011>`_, `pr#8054 <http://github.com/ceph/ceph/pull/8054>`_, Erwan Velu)
-* common: SubProcess: fix multiple definition bug (`pr#6790 <http://github.com/ceph/ceph/pull/6790>`_, Yunchuan Wen)
-* common: Thread: move copy constructor and assignment op (`pr#5133 <http://github.com/ceph/ceph/pull/5133>`_, Michal Jarzabek)
-* common: time: have skewing-now call non-skewing now (`pr#7466 <http://github.com/ceph/ceph/pull/7466>`_, Adam C. Emerson)
-* common/TrackedOp: fix inaccurate counting for slow requests (`issue#14804 <http://tracker.ceph.com/issues/14804>`_, `pr#7690 <http://github.com/ceph/ceph/pull/7690>`_, xie xingguo)
-* common: unit test for interval_set implementations (`pr#6 <http://github.com/ceph/ceph/pull/6>`_, Igor Fedotov)
-* common: use namespace instead of subclasses for buffer (`pr#6686 <http://github.com/ceph/ceph/pull/6686>`_, Michal Jarzabek)
-* common: various fixes from SCA runs (`pr#7680 <http://github.com/ceph/ceph/pull/7680>`_, Danny Al-Gaaf)
-* common: WeightedPriorityQueue Re-Add Round Robin for Classes (`pr#7984 <http://github.com/ceph/ceph/pull/7984>`_, Robert LeBlanc)
-* common: WorkQueue: new PointerWQ base class for ContextWQ (`issue#13636 <http://tracker.ceph.com/issues/13636>`_, `pr#6525 <http://github.com/ceph/ceph/pull/6525>`_, Jason Dillaman)
-* compat: use prefixed typeof extension (`pr#6216 <http://github.com/ceph/ceph/pull/6216>`_, John Coyle)
-* config: add $data_dir/config to config search path (`pr#7377 <http://github.com/ceph/ceph/pull/7377>`_, Sage Weil)
-* config: complains when a setting is not tracked (`issue#11692 <http://tracker.ceph.com/issues/11692>`_, `pr#7085 <http://github.com/ceph/ceph/pull/7085>`_, Kefu Chai)
-* config: fix osd_crush_initial_weight (`pr#7975 <http://github.com/ceph/ceph/pull/7975>`_, You Ji)
-* config: increase default async op threads (`pr#7802 <http://github.com/ceph/ceph/pull/7802>`_, Piotr Dałek)
-* config_opts: disable filestore throttle soft backoff by default (`pr#8265 <http://github.com/ceph/ceph/pull/8265>`_, Samuel Just)
-* configure.ac: boost_iostreams is required, not optional (`pr#7816 <http://github.com/ceph/ceph/pull/7816>`_, Hector Martin)
-* configure.ac: macro fix (`pr#6769 <http://github.com/ceph/ceph/pull/6769>`_, Igor Podoski)
-* configure.ac: make "--with-librocksdb-static" default to 'check' (`issue#14463 <http://tracker.ceph.com/issues/14463>`_, `pr#7317 <http://github.com/ceph/ceph/pull/7317>`_, Dan Mick)
-* configure.ac: update help strings for cython (`pr#7856 <http://github.com/ceph/ceph/pull/7856>`_, Josh Durgin)
-* configure: Add -D_LARGEFILE64_SOURCE to Linux build. (`pr#8402 <http://github.com/ceph/ceph/pull/8402>`_, Ira Cooper)
-* configure: detect bz2 and lz4 (`issue#13850 <http://tracker.ceph.com/issues/13850>`_, `issue#13981 <http://tracker.ceph.com/issues/13981>`_, `pr#7030 <http://github.com/ceph/ceph/pull/7030>`_, Kefu Chai)
-* correct radosgw-admin command (`pr#7006 <http://github.com/ceph/ceph/pull/7006>`_, YankunLi)
-* crush: add chooseleaf_stable tunable (`pr#6572 <http://github.com/ceph/ceph/pull/6572>`_, Sangdi Xu, Sage Weil)
-* crush: add safety assert (`issue#14496 <http://tracker.ceph.com/issues/14496>`_, `pr#7344 <http://github.com/ceph/ceph/pull/7344>`_, songbaisen)
-* crush: clean up whitespace removal (`issue#14302 <http://tracker.ceph.com/issues/14302>`_, `pr#7157 <http://github.com/ceph/ceph/pull/7157>`_, songbaisen)
-* crush/CrushTester: check for overlapped rules (`pr#7139 <http://github.com/ceph/ceph/pull/7139>`_, Kefu Chai)
-* crush/CrushTester: workaround a bug in boost::icl (`pr#7560 <http://github.com/ceph/ceph/pull/7560>`_, Kefu Chai)
-* crush: fix cli tests for new crush tunables (`pr#8107 <http://github.com/ceph/ceph/pull/8107>`_, Sage Weil)
-* crush: fix error log (`pr#8430 <http://github.com/ceph/ceph/pull/8430>`_, Wei Jin)
-* crush: fix typo (`pr#8518 <http://github.com/ceph/ceph/pull/8518>`_, Wei Jin)
-* crush: reply quickly from get_immediate_parent (`issue#14334 <http://tracker.ceph.com/issues/14334>`_, `pr#7181 <http://github.com/ceph/ceph/pull/7181>`_, song baisen)
-* crushtool: Don't crash when called on a file that isn't a crushmap (`issue#8286 <http://tracker.ceph.com/issues/8286>`_, `pr#8038 <http://github.com/ceph/ceph/pull/8038>`_, Brad Hubbard)
-* crushtool: improve usage/tip messages (`pr#7142 <http://github.com/ceph/ceph/pull/7142>`_, xie xingguo)
-* crushtool: set type 0 name "device" for --build option (`pr#6824 <http://github.com/ceph/ceph/pull/6824>`_, Sangdi Xu)
-* crush: update tunable docs. change default profile to jewel (`pr#7964 <http://github.com/ceph/ceph/pull/7964>`_, Sage Weil)
-* crush: validate bucket id before indexing buckets array (`issue#13477 <http://tracker.ceph.com/issues/13477>`_, `pr#6246 <http://github.com/ceph/ceph/pull/6246>`_, Sage Weil)
-* debian/changelog: Remove stray 'v' in version (`pr#7936 <http://github.com/ceph/ceph/pull/7936>`_, Dan Mick)
-* debian/changelog: Remove stray 'v' in version (`pr#7938 <http://github.com/ceph/ceph/pull/7938>`_, Dan Mick)
-* debian: include cpio in build-requiers (`pr#7533 <http://github.com/ceph/ceph/pull/7533>`_, Rémi BUISSON)
-* debian: package librgw_file* tests (`pr#7930 <http://github.com/ceph/ceph/pull/7930>`_, Ken Dreyer)
-* debian: packaging fixes for jewel (`pr#7807 <http://github.com/ceph/ceph/pull/7807>`_, Ken Dreyer, Ali Maredia)
-* debian/rpm split servers (`issue#10587 <http://tracker.ceph.com/issues/10587>`_, `pr#7746 <http://github.com/ceph/ceph/pull/7746>`_, Ken Dreyer)
-* debian/rules: put init-ceph in /etc/init.d/ceph, not ceph-base (`issue#15329 <http://tracker.ceph.com/issues/15329>`_, `pr#8406 <http://github.com/ceph/ceph/pull/8406>`_, Dan Mick)
-* debian: start ceph-mon-all and ceph-osd-all on package install (`issue#15098 <http://tracker.ceph.com/issues/15098>`_, `pr#8617 <http://github.com/ceph/ceph/pull/8617>`_, Sage Weil)
-* doc: add ceph-detect-init(8) source to dist tarball (`pr#7933 <http://github.com/ceph/ceph/pull/7933>`_, Ken Dreyer)
-* doc: add cinder backend section to rbd-openstack.rst (`pr#7923 <http://github.com/ceph/ceph/pull/7923>`_, RustShen)
-* doc: adding "--allow-shrink" in decreasing the size of the rbd block to distinguish from the increasing option (`pr#7020 <http://github.com/ceph/ceph/pull/7020>`_, Yehua)
-* doc: Adding documentation on how to use new dynamic throttle scheme (`pr#8069 <http://github.com/ceph/ceph/pull/8069>`_, Somnath Roy)
-* doc: add orphans commands to radosgw-admin(8) (`issue#14637 <http://tracker.ceph.com/issues/14637>`_, `pr#7518 <http://github.com/ceph/ceph/pull/7518>`_, Ken Dreyer)
-* doc: add v0.80.11 to the release timeline (`pr#6658 <http://github.com/ceph/ceph/pull/6658>`_, Loic Dachary)
-* doc: admin/build-doc: add lxml dependencies on debian (`pr#6610 <http://github.com/ceph/ceph/pull/6610>`_, Ken Dreyer)
-* doc: admin/build-doc: make paths absolute (`pr#7119 <http://github.com/ceph/ceph/pull/7119>`_, Dan Mick)
-* doc: amend Fixes instructions in SubmittingPatches (`pr#8312 <http://github.com/ceph/ceph/pull/8312>`_, Nathan Cutler)
-* doc: amend the rados.8 (`pr#7251 <http://github.com/ceph/ceph/pull/7251>`_, Kefu Chai)
-* doc/architecture.rst: remove redundant word "across" (`pr#8179 <http://github.com/ceph/ceph/pull/8179>`_, Zhao Junwang)
-* doc/cephfs/posix: update (`pr#6922 <http://github.com/ceph/ceph/pull/6922>`_, Sage Weil)
-* doc: Clarify usage on starting single osd/mds/mon. (`pr#7641 <http://github.com/ceph/ceph/pull/7641>`_, Patrick Donnelly)
-* doc: CodingStyle: fix broken URLs (`pr#6733 <http://github.com/ceph/ceph/pull/6733>`_, Kefu Chai)
-* doc: correct typo 'restared' to 'restarted' (`pr#6734 <http://github.com/ceph/ceph/pull/6734>`_, Yilong Zhao)
-* doc: detailed description of bugfixing workflow (`pr#7941 <http://github.com/ceph/ceph/pull/7941>`_, Nathan Cutler)
-* doc/dev: add "Deploy a cluster for manual testing" section (`issue#15218 <http://tracker.ceph.com/issues/15218>`_, `pr#8228 <http://github.com/ceph/ceph/pull/8228>`_, Nathan Cutler)
-* doc/dev: add section on interrupting a running suite (`pr#8116 <http://github.com/ceph/ceph/pull/8116>`_, Nathan Cutler)
-* doc/dev: continue writing Testing in the cloud chapter (`pr#7960 <http://github.com/ceph/ceph/pull/7960>`_, Nathan Cutler)
-* doc: dev: document ceph-qa-suite (`pr#6955 <http://github.com/ceph/ceph/pull/6955>`_, Loic Dachary)
-* doc/dev/index: refactor/reorg (`pr#6792 <http://github.com/ceph/ceph/pull/6792>`_, Nathan Cutler)
-* doc/dev/index.rst: begin writing Contributing to Ceph (`pr#6727 <http://github.com/ceph/ceph/pull/6727>`_, Nathan Cutler)
-* doc/dev/index.rst: fix headings (`pr#6780 <http://github.com/ceph/ceph/pull/6780>`_, Nathan Cutler)
-* doc/dev: integrate testing into the narrative (`pr#7946 <http://github.com/ceph/ceph/pull/7946>`_, Nathan Cutler)
-* doc: dev: introduction to tests (`pr#6910 <http://github.com/ceph/ceph/pull/6910>`_, Loic Dachary)
-* doc/dev: various refinements (`pr#7954 <http://github.com/ceph/ceph/pull/7954>`_, Nathan Cutler)
-* doc: document "readforward" and "readproxy" cache mode (`pr#7023 <http://github.com/ceph/ceph/pull/7023>`_, Kefu Chai)
-* doc: download GPG key from download.ceph.com (`issue#13603 <http://tracker.ceph.com/issues/13603>`_, `pr#6384 <http://github.com/ceph/ceph/pull/6384>`_, Ken Dreyer)
-* doc: draft notes for jewel (`pr#8211 <http://github.com/ceph/ceph/pull/8211>`_, Loic Dachary, Sage Weil)
-* doc: file must be empty when writing layout fields of file use "setfattr" (`pr#6848 <http://github.com/ceph/ceph/pull/6848>`_, Cilang Zhao)
-* doc: fix 0.94.4 and 0.94.5 ordering (`pr#7763 <http://github.com/ceph/ceph/pull/7763>`_, Loic Dachary)
-* doc: fix dependencies (`pr#8587 <http://github.com/ceph/ceph/pull/8587>`_, Etienne Menguy)
-* doc: Fixed incorrect name of a "List Multipart Upload Parts" Response Entity (`issue#14003 <http://tracker.ceph.com/issues/14003>`_, `pr#6829 <http://github.com/ceph/ceph/pull/6829>`_, Lenz Grimmer)
-* doc: Fixes a CRUSH map step take argument (`pr#7327 <http://github.com/ceph/ceph/pull/7327>`_, Ivan Grcic)
-* doc: Fixes a spelling error (`pr#6705 <http://github.com/ceph/ceph/pull/6705>`_, Jeremy Qian)
-* doc: Fixes headline different font size and type (`pr#8328 <http://github.com/ceph/ceph/pull/8328>`_, scienceluo)
-* doc: fixing image in section ERASURE CODING (`pr#7298 <http://github.com/ceph/ceph/pull/7298>`_, Rachana Patel)
-* doc: fix misleading configuration guide on cache tiering (`pr#7000 <http://github.com/ceph/ceph/pull/7000>`_, Yuan Zhou)
-* doc: fix "mon osd down out subtree limit" option name (`pr#7164 <http://github.com/ceph/ceph/pull/7164>`_, François Lafont)
-* doc: fix outdated content in cache tier (`pr#6272 <http://github.com/ceph/ceph/pull/6272>`_, Yuan Zhou)
-* doc: fix S3 C# example (`pr#7027 <http://github.com/ceph/ceph/pull/7027>`_, Dunrong Huang)
-* doc: fix typo, duplicated content etc. for Jewel release notes (`pr#8342 <http://github.com/ceph/ceph/pull/8342>`_, xie xingguo)
-* doc: fix typo in cephfs/quota (`pr#6745 <http://github.com/ceph/ceph/pull/6745>`_, Drunkard Zhang)
-* doc: fix typo, indention etc. (`pr#7829 <http://github.com/ceph/ceph/pull/7829>`_, xie xingguo)
-* doc: fix typo in developer guide (`pr#6943 <http://github.com/ceph/ceph/pull/6943>`_, Nathan Cutler)
-* doc: fix typo (`pr#7004 <http://github.com/ceph/ceph/pull/7004>`_, tianqing)
-* doc: fix wrong type of hyphen (`pr#8252 <http://github.com/ceph/ceph/pull/8252>`_, xie xingguo)
-* doc: initial draft of RBD mirroring admin documentation (`issue#15041 <http://tracker.ceph.com/issues/15041>`_, `pr#8169 <http://github.com/ceph/ceph/pull/8169>`_, Jason Dillaman)
-* doc: INSTALL redirect to online documentation (`pr#6749 <http://github.com/ceph/ceph/pull/6749>`_, Loic Dachary)
-* doc: little improvements for troubleshooting scrub issues (`pr#6827 <http://github.com/ceph/ceph/pull/6827>`_, Mykola Golub)
-* doc: Modified a note section in rbd-snapshot doc. (`pr#6908 <http://github.com/ceph/ceph/pull/6908>`_, Nilamdyuti Goswami)
-* doc: note that cephfs auth stuff is new in jewel (`pr#6858 <http://github.com/ceph/ceph/pull/6858>`_, John Spray)
-* doc: osd-config Add Configuration Options for op queue. (`pr#7837 <http://github.com/ceph/ceph/pull/7837>`_, Robert LeBlanc)
-* doc: osd: s/schedued/scheduled/ (`pr#6872 <http://github.com/ceph/ceph/pull/6872>`_, Loic Dachary)
-* doc/rados/api/librados-intro.rst: fix typo (`pr#7879 <http://github.com/ceph/ceph/pull/7879>`_, xie xingguo)
-* doc/rados/operations/crush: fix the formatting (`pr#8306 <http://github.com/ceph/ceph/pull/8306>`_, Kefu Chai)
-* doc: recommend against ext4 (`pr#8556 <http://github.com/ceph/ceph/pull/8556>`_, Sage Weil)
-* doc: reinstate accidentally removed section header (`pr#8569 <http://github.com/ceph/ceph/pull/8569>`_, Josh Durgin)
-* doc: release-notes: draft v0.80.11 release notes (`pr#6374 <http://github.com/ceph/ceph/pull/6374>`_, Loic Dachary)
-* doc: release-notes: draft v10.0.0 release notes (`pr#6666 <http://github.com/ceph/ceph/pull/6666>`_, Loic Dachary)
-* doc/release-notes: fix indents (`pr#8345 <http://github.com/ceph/ceph/pull/8345>`_, Kefu Chai)
-* doc/release-notes: jewel updates (`pr#8590 <http://github.com/ceph/ceph/pull/8590>`_, Nathan Cutler, Sage Weil)
-* doc/release-notes: v9.1.0 (`pr#6281 <http://github.com/ceph/ceph/pull/6281>`_, Loic Dachary)
-* doc/releases-notes: fix build error (`pr#6483 <http://github.com/ceph/ceph/pull/6483>`_, Kefu Chai)
-* doc: Remove Ceph Monitors do lots of fsync() (`issue#15288 <http://tracker.ceph.com/issues/15288>`_, `pr#8327 <http://github.com/ceph/ceph/pull/8327>`_, Vikhyat Umrao)
-* doc: remove redundant space in ceph-authtool/monmaptool doc (`pr#7244 <http://github.com/ceph/ceph/pull/7244>`_, Jiaying Ren)
-* doc: remove toctree items under Create CephFS (`pr#6241 <http://github.com/ceph/ceph/pull/6241>`_, Jevon Qiao)
-* doc: remove unnecessary period in headline (`pr#6775 <http://github.com/ceph/ceph/pull/6775>`_, Marc Koderer)
-* doc: rename the "Create a Ceph User" section and add verbage about… (`issue#13502 <http://tracker.ceph.com/issues/13502>`_, `pr#6297 <http://github.com/ceph/ceph/pull/6297>`_, ritz303)
-* doc: revise SubmittingPatches (`pr#7292 <http://github.com/ceph/ceph/pull/7292>`_, Kefu Chai)
-* doc: rgw adding a very basic multisite doc (`issue#15247 <http://tracker.ceph.com/issues/15247>`_, `pr#8281 <http://github.com/ceph/ceph/pull/8281>`_, Abhishek Lekshmanan)
-* doc: rgw admin uses "region list" not "regions list" (`pr#8517 <http://github.com/ceph/ceph/pull/8517>`_, Kris Jurka)
-* doc: rgw explain keystone's verify ssl switch (`pr#7862 <http://github.com/ceph/ceph/pull/7862>`_, Abhishek Lekshmanan)
-* doc: rgw multisite, add pools section & minor cosmetic improvements (`pr#8653 <http://github.com/ceph/ceph/pull/8653>`_, Abhishek Lekshmanan)
-* doc: rgw: port changes from downstream to upstream (`pr#7264 <http://github.com/ceph/ceph/pull/7264>`_, Bara Ancincova)
-* doc: rgw_region_root_pool option should be in [global] (`issue#15244 <http://tracker.ceph.com/issues/15244>`_, `pr#8271 <http://github.com/ceph/ceph/pull/8271>`_, Vikhyat Umrao)
-* doc: rst style fix for pools document (`pr#6816 <http://github.com/ceph/ceph/pull/6816>`_, Drunkard Zhang)
-* doc: script and guidelines for mirroring Ceph (`pr#7384 <http://github.com/ceph/ceph/pull/7384>`_, Wido den Hollander)
-* docs: Fix styling of newly added mirror docs (`pr#6127 <http://github.com/ceph/ceph/pull/6127>`_, Wido den Hollander)
-* doc: small fixes (`pr#7813 <http://github.com/ceph/ceph/pull/7813>`_, xiexingguo)
-* doc: standardize @param (not @parma, @parmam, @params) (`pr#7714 <http://github.com/ceph/ceph/pull/7714>`_, Nathan Cutler)
-* doc: SubmittingPatches: there is no next; only jewel (`pr#6811 <http://github.com/ceph/ceph/pull/6811>`_, Nathan Cutler)
-* doc, tests: update all http://ceph.com/ to download.ceph.com (`pr#6435 <http://github.com/ceph/ceph/pull/6435>`_, Alfredo Deza)
-* doc: Update ceph-disk manual page with new feature deactivate/destroy. (`pr#6637 <http://github.com/ceph/ceph/pull/6637>`_, Vicente Cheng)
-* doc: Updated CloudStack RBD documentation (`pr#8308 <http://github.com/ceph/ceph/pull/8308>`_, Wido den Hollander)
-* doc: update doc for with new pool settings (`pr#5951 <http://github.com/ceph/ceph/pull/5951>`_, Guang Yang)
-* doc: Updated the rados command man page to include the --run-name opt… (`issue#12899 <http://tracker.ceph.com/issues/12899>`_, `pr#5900 <http://github.com/ceph/ceph/pull/5900>`_, ritz303)
-* doc: update infernalis release notes (`pr#6575 <http://github.com/ceph/ceph/pull/6575>`_, vasukulkarni)
-* doc: Update list of admin/build-doc dependencies (`issue#14070 <http://tracker.ceph.com/issues/14070>`_, `pr#6934 <http://github.com/ceph/ceph/pull/6934>`_, Nathan Cutler)
-* doc: update radosgw-admin example (`pr#6256 <http://github.com/ceph/ceph/pull/6256>`_, YankunLi)
-* doc: update the OS recommendations for newer Ceph releases (`pr#6355 <http://github.com/ceph/ceph/pull/6355>`_, ritz303)
-* doc: use 'ceph auth get-or-create' for creating RGW keyring (`pr#6930 <http://github.com/ceph/ceph/pull/6930>`_, Wido den Hollander)
-* doc: very basic doc on mstart (`pr#8207 <http://github.com/ceph/ceph/pull/8207>`_, Abhishek Lekshmanan)
-* drop envz.h includes (`pr#6285 <http://github.com/ceph/ceph/pull/6285>`_, John Coyle)
-* fix FTBFS introduced by d0af316 (`pr#7792 <http://github.com/ceph/ceph/pull/7792>`_, Kefu Chai)
-* fix: use right init_flags to finish CephContext (`pr#6549 <http://github.com/ceph/ceph/pull/6549>`_, Yunchuan Wen)
-* fs: be more careful about the "mds setmap" command to prevent breakage (`issue#14380 <http://tracker.ceph.com/issues/14380>`_, `pr#7262 <http://github.com/ceph/ceph/pull/7262>`_, Yan, Zheng)
-* ghobject_t: use # instead of ! as a separator (`pr#8055 <http://github.com/ceph/ceph/pull/8055>`_, Sage Weil)
-* global: do not start two daemons with a single pid-file (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7075 <http://github.com/ceph/ceph/pull/7075>`_, shun song)
-* global: do not start two daemons with a single pid-file (part 2) (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7463 <http://github.com/ceph/ceph/pull/7463>`_, Loic Dachary)
-* global/global_init: expand metavariables in setuser_match_path (`issue#15365 <http://tracker.ceph.com/issues/15365>`_, `pr#8433 <http://github.com/ceph/ceph/pull/8433>`_, Sage Weil)
-* global/signal_handler: print thread name in signal handler (`pr#8177 <http://github.com/ceph/ceph/pull/8177>`_, Jianpeng Ma)
-* helgrind: additional race conditionslibrbd: journal replay should honor inter-event dependencies (`pr#7274 <http://github.com/ceph/ceph/pull/7274>`_, Jason Dillaman)
-* helgrind: fix real (and imaginary) race conditions (`issue#14163 <http://tracker.ceph.com/issues/14163>`_, `pr#7208 <http://github.com/ceph/ceph/pull/7208>`_, Jason Dillaman)
-* include/encoding: do not try to be clever with list encoding (`pr#7913 <http://github.com/ceph/ceph/pull/7913>`_, Sage Weil)
-* init-ceph: do umount when the path exists. (`pr#6866 <http://github.com/ceph/ceph/pull/6866>`_, Xiaoxi Chen)
-* init-ceph.in: allow case-insensitive true in `osd crush update on start' (`pr#7943 <http://github.com/ceph/ceph/pull/7943>`_, Eric Cook)
-* init-ceph.in: skip ceph-disk if it is not present (`issue#10587 <http://tracker.ceph.com/issues/10587>`_, `pr#7286 <http://github.com/ceph/ceph/pull/7286>`_, Ken Dreyer)
-* init-ceph: use getopt to make option processing more flexible (`issue#3015 <http://tracker.ceph.com/issues/3015>`_, `pr#6089 <http://github.com/ceph/ceph/pull/6089>`_, Nathan Cutler)
-* journal: async methods to (un)register and update client (`pr#7832 <http://github.com/ceph/ceph/pull/7832>`_, Mykola Golub)
-* journal: disconnect watch after watch error (`issue#14168 <http://tracker.ceph.com/issues/14168>`_, `pr#7113 <http://github.com/ceph/ceph/pull/7113>`_, Jason Dillaman)
-* journal: fire replay complete event after reading last object (`issue#13924 <http://tracker.ceph.com/issues/13924>`_, `pr#6762 <http://github.com/ceph/ceph/pull/6762>`_, Jason Dillaman)
-* journal: fix final result for JournalTrimmer::C_RemoveSet (`pr#8516 <http://github.com/ceph/ceph/pull/8516>`_, runsisi)
-* journal: fix race condition between Future and journal shutdown (`issue#15364 <http://tracker.ceph.com/issues/15364>`_, `pr#8477 <http://github.com/ceph/ceph/pull/8477>`_, Jason Dillaman)
-* journal: flush commit position on metadata shutdown (`pr#7385 <http://github.com/ceph/ceph/pull/7385>`_, Mykola Golub)
-* journal: improve commit position tracking (`pr#7776 <http://github.com/ceph/ceph/pull/7776>`_, Jason Dillaman)
-* journal: incremental improvements and fixes (`pr#6552 <http://github.com/ceph/ceph/pull/6552>`_, Mykola Golub)
-* journal: possible race condition during live replay (`issue#15352 <http://tracker.ceph.com/issues/15352>`_, `pr#8494 <http://github.com/ceph/ceph/pull/8494>`_, Jason Dillaman)
-* journal: prevent race injecting new records into overflowed object (`issue#15202 <http://tracker.ceph.com/issues/15202>`_, `pr#8220 <http://github.com/ceph/ceph/pull/8220>`_, Jason Dillaman)
-* journal: reset commit_position_task_ctx pointer after task complete (`pr#7480 <http://github.com/ceph/ceph/pull/7480>`_, Mykola Golub)
-* journal: re-use common threads between journalers (`pr#7906 <http://github.com/ceph/ceph/pull/7906>`_, Jason Dillaman)
-* journal: support replaying beyond skipped splay objects (`pr#6687 <http://github.com/ceph/ceph/pull/6687>`_, Jason Dillaman)
-* krbd: remove deprecated --quiet param from udevadm (`issue#13560 <http://tracker.ceph.com/issues/13560>`_, `pr#6394 <http://github.com/ceph/ceph/pull/6394>`_, Jason Dillaman)
-* kv: fix bug in kv key optimization (`pr#6511 <http://github.com/ceph/ceph/pull/6511>`_, Sage Weil)
-* kv: implement value_as_ptr() and use it in .get() (`pr#7052 <http://github.com/ceph/ceph/pull/7052>`_, Piotr Dałek)
-* kv/KineticStore: fix broken split_key (`pr#6574 <http://github.com/ceph/ceph/pull/6574>`_, Haomai Wang)
-* kv: optimize and clean up internal key/value interface (`pr#6312 <http://github.com/ceph/ceph/pull/6312>`_, Piotr Dałek, Sage Weil)
-* libcephfs: fix python tests and fix getcwd on missing dir (`pr#7901 <http://github.com/ceph/ceph/pull/7901>`_, John Spray)
-* libcephfs: Improve portability by replacing loff_t type usage with off_t (`pr#6301 <http://github.com/ceph/ceph/pull/6301>`_, John Coyle)
-* libcephfs: only check file offset on glibc platforms (`pr#6288 <http://github.com/ceph/ceph/pull/6288>`_, John Coyle)
-* libcephfs: update LIBCEPHFS_VERSION to indicate the interface was changed (`pr#7551 <http://github.com/ceph/ceph/pull/7551>`_, Jevon Qiao)
-* librados: add c++ style osd/pg command interface (`pr#6893 <http://github.com/ceph/ceph/pull/6893>`_, Yunchuan Wen)
-* librados: aix gcc librados port (`pr#6675 <http://github.com/ceph/ceph/pull/6675>`_, Rohan Mars)
-* librados: avoid malloc(0) (which can return NULL on some platforms) (`issue#13944 <http://tracker.ceph.com/issues/13944>`_, `pr#6779 <http://github.com/ceph/ceph/pull/6779>`_, Dan Mick)
-* librados: cancel aio notification linger op upon completion (`pr#8102 <http://github.com/ceph/ceph/pull/8102>`_, Jason Dillaman)
-* librados: check connection state in rados_monitor_log (`issue#14499 <http://tracker.ceph.com/issues/14499>`_, `pr#7350 <http://github.com/ceph/ceph/pull/7350>`_, David Disseldorp)
-* librados: clean up Objecter.h (`pr#6731 <http://github.com/ceph/ceph/pull/6731>`_, Jie Wang)
-* librados: detect laggy ops with objecter_timeout, not osd_timeout (`pr#7629 <http://github.com/ceph/ceph/pull/7629>`_, Greg Farnum)
-* librados: do cleanup (`pr#6488 <http://github.com/ceph/ceph/pull/6488>`_, xie xingguo)
-* librados: do not clear handle for aio_watch() (`pr#7771 <http://github.com/ceph/ceph/pull/7771>`_, xie xingguo)
-* librados: fix examples/librados/Makefile error. (`pr#6320 <http://github.com/ceph/ceph/pull/6320>`_, You Ji)
-* librados: fix pool alignment API overflow issue (`issue#13715 <http://tracker.ceph.com/issues/13715>`_, `pr#6489 <http://github.com/ceph/ceph/pull/6489>`_, xie xingguo)
-* librados: fix potential null pointer access when do pool_snap_list (`issue#13639 <http://tracker.ceph.com/issues/13639>`_, `pr#6422 <http://github.com/ceph/ceph/pull/6422>`_, xie xingguo)
-* librados: fix PromoteOn2ndRead test for EC (`pr#6373 <http://github.com/ceph/ceph/pull/6373>`_, Sage Weil)
-* librados: fix rare race where pool op callback may hang forever (`issue#13642 <http://tracker.ceph.com/issues/13642>`_, `pr#6426 <http://github.com/ceph/ceph/pull/6426>`_, xie xingguo)
-* librados: fix several flaws introduced by the enumeration_objects API (`issue#14299 <http://tracker.ceph.com/issues/14299>`_, `issue#14301 <http://tracker.ceph.com/issues/14301>`_, `issue#14300 <http://tracker.ceph.com/issues/14300>`_, `pr#7156 <http://github.com/ceph/ceph/pull/7156>`_, xie xingguo)
-* librados: fix test failure with new aio watch/unwatch API (`pr#7824 <http://github.com/ceph/ceph/pull/7824>`_, Jason Dillaman)
-* librados: implement async watch/unwatch (`pr#7649 <http://github.com/ceph/ceph/pull/7649>`_, Haomai Wang)
-* librados: include/rados/librados.h: fix typo (`pr#6741 <http://github.com/ceph/ceph/pull/6741>`_, Nathan Cutler)
-* librados: init crush_location from config file. (`issue#13473 <http://tracker.ceph.com/issues/13473>`_, `pr#6243 <http://github.com/ceph/ceph/pull/6243>`_, Wei Luo)
-* librados: mix lock cycle (un)registering asok commands (`pr#7581 <http://github.com/ceph/ceph/pull/7581>`_, John Spray)
-* librados: move to c++11 concurrency types (`pr#5931 <http://github.com/ceph/ceph/pull/5931>`_, Adam C. Emerson)
-* librados: new style (sharded) object listing (`pr#6405 <http://github.com/ceph/ceph/pull/6405>`_, John Spray, Sage Weil)
-* librados: potential null pointer access in list_(n)objects (`issue#13822 <http://tracker.ceph.com/issues/13822>`_, `pr#6639 <http://github.com/ceph/ceph/pull/6639>`_, xie xingguo)
-* librados: race condition on aio_notify completion handling (`pr#7864 <http://github.com/ceph/ceph/pull/7864>`_, Jason Dillaman)
-* librados: remove duplicate definitions for rados pool_stat_t and cluster_stat_t (`pr#7330 <http://github.com/ceph/ceph/pull/7330>`_, Igor Fedotov)
-* librados: Revert "rados: Add new field flags for ceph_osd_op.copy_get." (`pr#8486 <http://github.com/ceph/ceph/pull/8486>`_, Sage Weil)
-* librados: shutdown finisher in a more graceful way (`pr#7519 <http://github.com/ceph/ceph/pull/7519>`_, xie xingguo)
-* librados: Solaris port (`pr#6416 <http://github.com/ceph/ceph/pull/6416>`_, Rohan Mars)
-* librados: stat2 with higher time precision (`pr#7915 <http://github.com/ceph/ceph/pull/7915>`_, Yehuda Sadeh, Matt Benjamin)
-* librados: Striper: Fix incorrect push_front -> append_zero change (`pr#7578 <http://github.com/ceph/ceph/pull/7578>`_, Haomai Wang)
-* librados_test_stub: protect against notify/unwatch race (`pr#7540 <http://github.com/ceph/ceph/pull/7540>`_, Jason Dillaman)
-* librados: wrongly passed in argument for stat command (`issue#13703 <http://tracker.ceph.com/issues/13703>`_, `pr#6476 <http://github.com/ceph/ceph/pull/6476>`_, xie xingguo)
-* librbd: allocate new journal tag after acquiring exclusive lock (`pr#7884 <http://github.com/ceph/ceph/pull/7884>`_, Jason Dillaman)
-* librbd: API: async open and close (`issue#14264 <http://tracker.ceph.com/issues/14264>`_, `pr#7259 <http://github.com/ceph/ceph/pull/7259>`_, Mykola Golub)
-* librbd: automatically flush IO after blocking write operations (`issue#13913 <http://tracker.ceph.com/issues/13913>`_, `pr#6742 <http://github.com/ceph/ceph/pull/6742>`_, Jason Dillaman)
-* librbd: Avoid create two threads per image (`pr#7400 <http://github.com/ceph/ceph/pull/7400>`_, Haomai Wang)
-* librbd: avoid throwing error if mirroring is unsupported (`pr#8417 <http://github.com/ceph/ceph/pull/8417>`_, Jason Dillaman)
-* librbd: better handling of exclusive lock transition period (`pr#7204 <http://github.com/ceph/ceph/pull/7204>`_, Jason Dillaman)
-* librbd: block maintenance ops until after journal is ready (`issue#14510 <http://tracker.ceph.com/issues/14510>`_, `pr#7382 <http://github.com/ceph/ceph/pull/7382>`_, Jason Dillaman)
-* librbd: block read requests until journal replayed (`pr#7627 <http://github.com/ceph/ceph/pull/7627>`_, Jason Dillaman)
-* librbd: check for presence of journal before attempting to remove (`issue#13912 <http://tracker.ceph.com/issues/13912>`_, `pr#6737 <http://github.com/ceph/ceph/pull/6737>`_, Jason Dillaman)
-* librbd: clear error when older OSD doesn't support image flags (`issue#14122 <http://tracker.ceph.com/issues/14122>`_, `pr#7035 <http://github.com/ceph/ceph/pull/7035>`_, Jason Dillaman)
-* librbd: correct include guard in RenameRequest.h (`pr#7143 <http://github.com/ceph/ceph/pull/7143>`_, Jason Dillaman)
-* librbd: correct issues discovered during teuthology testing (`issue#14108 <http://tracker.ceph.com/issues/14108>`_, `issue#14107 <http://tracker.ceph.com/issues/14107>`_, `pr#6974 <http://github.com/ceph/ceph/pull/6974>`_, Jason Dillaman)
-* librbd: correct issues discovered via valgrind memcheck (`pr#8132 <http://github.com/ceph/ceph/pull/8132>`_, Jason Dillaman)
-* librbd: correct issues discovered when cache is disabled (`issue#14123 <http://tracker.ceph.com/issues/14123>`_, `pr#6979 <http://github.com/ceph/ceph/pull/6979>`_, Jason Dillaman)
-* librbd: correct race conditions discovered during unit testing (`issue#14060 <http://tracker.ceph.com/issues/14060>`_, `pr#6923 <http://github.com/ceph/ceph/pull/6923>`_, Jason Dillaman)
-* librbd: deadlock while attempting to flush AIO requests (`issue#13726 <http://tracker.ceph.com/issues/13726>`_, `pr#6508 <http://github.com/ceph/ceph/pull/6508>`_, Jason Dillaman)
-* librbd: differentiate journal replay flush vs shut down (`pr#7698 <http://github.com/ceph/ceph/pull/7698>`_, Jason Dillaman)
-* librbd: disable copy-on-read when not exclusive lock owner (`issue#14167 <http://tracker.ceph.com/issues/14167>`_, `pr#7129 <http://github.com/ceph/ceph/pull/7129>`_, Jason Dillaman)
-* librbd: disable image mirroring when image is removed (`issue#15265 <http://tracker.ceph.com/issues/15265>`_, `pr#8375 <http://github.com/ceph/ceph/pull/8375>`_, Ricardo Dias)
-* librbd: disallow unsafe rbd_op_threads values (`issue#15034 <http://tracker.ceph.com/issues/15034>`_, `pr#8459 <http://github.com/ceph/ceph/pull/8459>`_, Josh Durgin)
-* librbd: do not ignore self-managed snapshot release result (`issue#14170 <http://tracker.ceph.com/issues/14170>`_, `pr#7043 <http://github.com/ceph/ceph/pull/7043>`_, Jason Dillaman)
-* librbd: enable/disable image mirroring automatically for pool mode (`issue#15143 <http://tracker.ceph.com/issues/15143>`_, `pr#8204 <http://github.com/ceph/ceph/pull/8204>`_, Ricardo Dias)
-* librbd: ensure copy-on-read requests are complete prior to closing parent image (`pr#6740 <http://github.com/ceph/ceph/pull/6740>`_, Jason Dillaman)
-* librbd: ensure librados callbacks are flushed prior to destroying (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `pr#7040 <http://github.com/ceph/ceph/pull/7040>`_, Jason Dillaman)
-* librbd: exit if parent's snap is gone during clone (`issue#14118 <http://tracker.ceph.com/issues/14118>`_, `pr#6968 <http://github.com/ceph/ceph/pull/6968>`_, xie xingguo)
-* librbd: fix enable objectmap feature issue (`issue#13558 <http://tracker.ceph.com/issues/13558>`_, `pr#6339 <http://github.com/ceph/ceph/pull/6339>`_, xinxin shu)
-* librbd: fix handling of proxied maintenance operations during shut down (`issue#15471 <http://tracker.ceph.com/issues/15471>`_, `issue#15456 <http://tracker.ceph.com/issues/15456>`_, `pr#8565 <http://github.com/ceph/ceph/pull/8565>`_, Jason Dillaman)
-* librbd: fix internal handling of dynamic feature updates (`pr#7299 <http://github.com/ceph/ceph/pull/7299>`_, Jason Dillaman)
-* librbd: fix journal iohint (`pr#6917 <http://github.com/ceph/ceph/pull/6917>`_, Jianpeng Ma)
-* librbd: fix known test case race condition failures (`issue#13969 <http://tracker.ceph.com/issues/13969>`_, `pr#6800 <http://github.com/ceph/ceph/pull/6800>`_, Jason Dillaman)
-* librbd: fix merge-diff for >2GB diff-files (`issue#14030 <http://tracker.ceph.com/issues/14030>`_, `pr#6889 <http://github.com/ceph/ceph/pull/6889>`_, Yunchuan Wen)
-* librbd: fix potential memory leak (`issue#14332 <http://tracker.ceph.com/issues/14332>`_, `issue#14333 <http://tracker.ceph.com/issues/14333>`_, `pr#7174 <http://github.com/ceph/ceph/pull/7174>`_, xie xingguo)
-* librbd: fix snap_exists API return code overflow (`issue#14129 <http://tracker.ceph.com/issues/14129>`_, `pr#6986 <http://github.com/ceph/ceph/pull/6986>`_, xie xingguo)
-* librbd: fix state machine race conditions during shut down (`pr#7761 <http://github.com/ceph/ceph/pull/7761>`_, Jason Dillaman)
-* librbd: fix test case race condition for journaling ops (`pr#6877 <http://github.com/ceph/ceph/pull/6877>`_, Jason Dillaman)
-* librbd: fix tracepoint parameter in diff_iterate (`pr#6892 <http://github.com/ceph/ceph/pull/6892>`_, Yunchuan Wen)
-* librbd: flush and invalidate cache via admin socket (`issue#2468 <http://tracker.ceph.com/issues/2468>`_, `pr#6453 <http://github.com/ceph/ceph/pull/6453>`_, Mykola Golub)
-* librbd: handle unregistering the image watcher when disconnected (`pr#8094 <http://github.com/ceph/ceph/pull/8094>`_, Jason Dillaman)
-* librbd: image refresh code paths converted to async state machines (`pr#6859 <http://github.com/ceph/ceph/pull/6859>`_, Jason Dillaman)
-* librbd: include missing header for bool type (`pr#6798 <http://github.com/ceph/ceph/pull/6798>`_, Mykola Golub)
-* librbd: initial collection of state machine unit tests (`pr#6703 <http://github.com/ceph/ceph/pull/6703>`_, Jason Dillaman)
-* librbd: integrate journaling for maintenance operations (`pr#6625 <http://github.com/ceph/ceph/pull/6625>`_, Jason Dillaman)
-* librbd: integrate journaling support for IO operations (`pr#6541 <http://github.com/ceph/ceph/pull/6541>`_, Jason Dillaman)
-* librbd: integrate journal replay with fsx testing (`pr#7583 <http://github.com/ceph/ceph/pull/7583>`_, Jason Dillaman)
-* librbd: IO deadlock when dynamically enabling/disabling features (`issue#15102 <http://tracker.ceph.com/issues/15102>`_, `pr#8511 <http://github.com/ceph/ceph/pull/8511>`_, Jason Dillaman)
-* librbd: journal framework for tracking exclusive lock transitions (`issue#13298 <http://tracker.ceph.com/issues/13298>`_, `pr#7529 <http://github.com/ceph/ceph/pull/7529>`_, Jason Dillaman)
-* librbd: journaling-related lock dependency cleanup (`pr#6777 <http://github.com/ceph/ceph/pull/6777>`_, Jason Dillaman)
-* librbd: journal replay needs to support re-executing maintenance ops (`issue#14822 <http://tracker.ceph.com/issues/14822>`_, `pr#7785 <http://github.com/ceph/ceph/pull/7785>`_, Jason Dillaman)
-* librbd: journal replay should honor inter-event dependencies (`pr#7019 <http://github.com/ceph/ceph/pull/7019>`_, Jason Dillaman)
-* librbd: journal shut down flush race condition (`issue#14434 <http://tracker.ceph.com/issues/14434>`_, `pr#7302 <http://github.com/ceph/ceph/pull/7302>`_, Jason Dillaman)
-* librbd: not necessary to hold owner_lock while releasing snap id (`issue#13914 <http://tracker.ceph.com/issues/13914>`_, `pr#6736 <http://github.com/ceph/ceph/pull/6736>`_, Jason Dillaman)
-* librbd: only send signal when AIO completions queue empty (`pr#6729 <http://github.com/ceph/ceph/pull/6729>`_, Jianpeng Ma)
-* librbd: optionally validate new RBD pools for snapshot support (`issue#13633 <http://tracker.ceph.com/issues/13633>`_, `pr#6925 <http://github.com/ceph/ceph/pull/6925>`_, Jason Dillaman)
-* librbd: partial revert of commit 9b0e359 (`issue#13969 <http://tracker.ceph.com/issues/13969>`_, `pr#6789 <http://github.com/ceph/ceph/pull/6789>`_, Jason Dillaman)
-* librbd: perf counters might not be initialized on error (`issue#13740 <http://tracker.ceph.com/issues/13740>`_, `pr#6523 <http://github.com/ceph/ceph/pull/6523>`_, Jason Dillaman)
-* librbd: perf section name: use hyphen to separate components (`issue#13719 <http://tracker.ceph.com/issues/13719>`_, `pr#6516 <http://github.com/ceph/ceph/pull/6516>`_, Mykola Golub)
-* librbd: properly handle replay of snap remove RPC message (`issue#14164 <http://tracker.ceph.com/issues/14164>`_, `pr#7042 <http://github.com/ceph/ceph/pull/7042>`_, Jason Dillaman)
-* librbd: reduce mem copies to user-buffer during read (`pr#7548 <http://github.com/ceph/ceph/pull/7548>`_, Jianpeng Ma)
-* librbd: reduce verbosity of common error condition logging (`issue#14234 <http://tracker.ceph.com/issues/14234>`_, `pr#7114 <http://github.com/ceph/ceph/pull/7114>`_, Jason Dillaman)
-* librbd: refresh image if required before replaying journal ops (`issue#14908 <http://tracker.ceph.com/issues/14908>`_, `pr#7978 <http://github.com/ceph/ceph/pull/7978>`_, Jason Dillaman)
-* librbd: remove canceled tasks from timer thread (`issue#14476 <http://tracker.ceph.com/issues/14476>`_, `pr#7329 <http://github.com/ceph/ceph/pull/7329>`_, Douglas Fuller)
-* librbd: remove duplicate read_only test in librbd::async_flatten (`pr#5856 <http://github.com/ceph/ceph/pull/5856>`_, runsisi)
-* librbd: remove last synchronous librados calls from open/close state machine (`pr#7839 <http://github.com/ceph/ceph/pull/7839>`_, Jason Dillaman)
-* librbd: replaying a journal op post-refresh requires locking (`pr#8028 <http://github.com/ceph/ceph/pull/8028>`_, Jason Dillaman)
-* librbd: resize should only update image size within header (`issue#13674 <http://tracker.ceph.com/issues/13674>`_, `pr#6447 <http://github.com/ceph/ceph/pull/6447>`_, Jason Dillaman)
-* librbd: retrieve image name when opening by id (`pr#7736 <http://github.com/ceph/ceph/pull/7736>`_, Mykola Golub)
-* librbd: return error if we fail to delete object_map head object (`issue#14098 <http://tracker.ceph.com/issues/14098>`_, `pr#6958 <http://github.com/ceph/ceph/pull/6958>`_, xie xingguo)
-* librbd: Revert "librbd: use task finisher per CephContext" (`issue#14780 <http://tracker.ceph.com/issues/14780>`_, `pr#7667 <http://github.com/ceph/ceph/pull/7667>`_, Josh Durgin)
-* librbd: send notifications for mirroring status updates (`pr#8355 <http://github.com/ceph/ceph/pull/8355>`_, Jason Dillaman)
-* librbd: several race conditions discovered under single CPU environment (`pr#7653 <http://github.com/ceph/ceph/pull/7653>`_, Jason Dillaman)
-* librbd: simplify IO method signatures for 32bit environments (`pr#6700 <http://github.com/ceph/ceph/pull/6700>`_, Jason Dillaman)
-* librbd: small fixes for error messages and readahead counter (`issue#14127 <http://tracker.ceph.com/issues/14127>`_, `pr#6983 <http://github.com/ceph/ceph/pull/6983>`_, xie xingguo)
-* librbd: start perf counters after id is initialized (`issue#13720 <http://tracker.ceph.com/issues/13720>`_, `pr#6494 <http://github.com/ceph/ceph/pull/6494>`_, Mykola Golub)
-* librbd: support eventfd for AIO completion notifications (`pr#5465 <http://github.com/ceph/ceph/pull/5465>`_, Haomai Wang)
-* librbd: truncate does not need to mark the object as existing in the object map (`issue#14789 <http://tracker.ceph.com/issues/14789>`_, `pr#7772 <http://github.com/ceph/ceph/pull/7772>`_, xinxin shu)
-* librbd: uninitialized state in snap remove state machine (`pr#6982 <http://github.com/ceph/ceph/pull/6982>`_, Jason Dillaman)
-* librbd: update of mirror pool mode and mirror peer handling (`pr#7718 <http://github.com/ceph/ceph/pull/7718>`_, Jason Dillaman)
-* librbd: use async librados notifications (`pr#7668 <http://github.com/ceph/ceph/pull/7668>`_, Jason Dillaman)
-* log: do not repeat errors to stderr (`issue#14616 <http://tracker.ceph.com/issues/14616>`_, `pr#7983 <http://github.com/ceph/ceph/pull/7983>`_, Sage Weil)
-* log: fix stack overflow when flushing large log lines (`issue#14707 <http://tracker.ceph.com/issues/14707>`_, `pr#7599 <http://github.com/ceph/ceph/pull/7599>`_, Igor Fedotov)
-* log: segv in a portable way (`issue#14856 <http://tracker.ceph.com/issues/14856>`_, `pr#7790 <http://github.com/ceph/ceph/pull/7790>`_, Kefu Chai)
-* log: use delete[] (`pr#7904 <http://github.com/ceph/ceph/pull/7904>`_, Sage Weil)
-* mailmap: Abhishek Lekshmanan affiliation (`pr#8615 <http://github.com/ceph/ceph/pull/8615>`_, Abhishek Lekshmanan)
-* mailmap: add UMCloud affiliation (`pr#6820 <http://github.com/ceph/ceph/pull/6820>`_, Jiaying Ren)
-* mailmap for 10.0.4 (`pr#7932 <http://github.com/ceph/ceph/pull/7932>`_, Abhishek Lekshmanan)
-* mailmap: hange organization for Dongmao Zhang (`pr#7173 <http://github.com/ceph/ceph/pull/7173>`_, Dongmao Zhang)
-* mailmap: Igor Podoski affiliation (`pr#7219 <http://github.com/ceph/ceph/pull/7219>`_, Igor Podoski)
-* mailmap: Jewel updates (`pr#6750 <http://github.com/ceph/ceph/pull/6750>`_, Abhishek Lekshmanan)
-* mailmap: modify member info (`pr#6468 <http://github.com/ceph/ceph/pull/6468>`_, Xiaowei Chen)
-* mailmap: revise organization (`pr#6519 <http://github.com/ceph/ceph/pull/6519>`_, Li Wang)
-* mailmap: Ubuntu Kylin name changed to Kylin Cloud (`pr#6532 <http://github.com/ceph/ceph/pull/6532>`_, Loic Dachary)
-* mailmap: update .organizationmap (`pr#6565 <http://github.com/ceph/ceph/pull/6565>`_, chenji-kael)
-* mailmap update (`pr#7210 <http://github.com/ceph/ceph/pull/7210>`_, M Ranga Swami Reddy)
-* mailmap update (`pr#8522 <http://github.com/ceph/ceph/pull/8522>`_, M Ranga Swami Reddy)
-* mailmap update (`pr#8608 <http://github.com/ceph/ceph/pull/8608>`_, M Ranga Swami Reddy)
-* mailmap: updates for infernalis. (`pr#6495 <http://github.com/ceph/ceph/pull/6495>`_, Yann Dupont)
-* mailmap: updates (`pr#6258 <http://github.com/ceph/ceph/pull/6258>`_, M Ranga Swami Reddy)
-* mailmap: updates (`pr#6594 <http://github.com/ceph/ceph/pull/6594>`_, chenji-kael)
-* mailmap updates (`pr#6992 <http://github.com/ceph/ceph/pull/6992>`_, Loic Dachary)
-* mailmap updates (`pr#7189 <http://github.com/ceph/ceph/pull/7189>`_, Loic Dachary)
-* mailmap updates (`pr#7528 <http://github.com/ceph/ceph/pull/7528>`_, Yann Dupont)
-* mailmap updates (`pr#8256 <http://github.com/ceph/ceph/pull/8256>`_, Loic Dachary)
-* mailmap: Xie Xingguo affiliation (`pr#6409 <http://github.com/ceph/ceph/pull/6409>`_, Loic Dachary)
-* Makefile-env.am: set a default for CEPH_BUILD_VIRTUALENV (part 2) (`pr#8320 <http://github.com/ceph/ceph/pull/8320>`_, Loic Dachary)
-* makefile: fix rbdmap manpage (`pr#8310 <http://github.com/ceph/ceph/pull/8310>`_, Kefu Chai)
-* makefile: remove libedit from libclient.la (`pr#7284 <http://github.com/ceph/ceph/pull/7284>`_, Kefu Chai)
-* makefiles: remove bz2-dev from dependencies (`issue#13981 <http://tracker.ceph.com/issues/13981>`_, `pr#6939 <http://github.com/ceph/ceph/pull/6939>`_, Piotr Dałek)
-* man/8/ceph-disk: fix formatting issue (`pr#8003 <http://github.com/ceph/ceph/pull/8003>`_, Sage Weil)
-* man/8/ceph-disk: fix formatting issue (`pr#8012 <http://github.com/ceph/ceph/pull/8012>`_, Sage Weil)
-* man: document listwatchers cmd in "rados" manpage (`pr#7021 <http://github.com/ceph/ceph/pull/7021>`_, Kefu Chai)
-* mdsa: A few more snapshot fixes, mostly around snapshotted inode/dentry tracking (`pr#7798 <http://github.com/ceph/ceph/pull/7798>`_, Yan, Zheng)
-* mds: Add cmapv to ESessions default constructor initializer list (`pr#8403 <http://github.com/ceph/ceph/pull/8403>`_, John Coyle)
-* mds: add 'p' flag in auth caps to control setting pool in layout (`pr#6567 <http://github.com/ceph/ceph/pull/6567>`_, John Spray)
-* mds: advance clientreplay when replying (`issue#14357 <http://tracker.ceph.com/issues/14357>`_, `pr#7216 <http://github.com/ceph/ceph/pull/7216>`_, John Spray)
-* mds: allow client to request caps when opening file (`issue#14360 <http://tracker.ceph.com/issues/14360>`_, `pr#7952 <http://github.com/ceph/ceph/pull/7952>`_, Yan, Zheng)
-* mds: Be more careful about directory fragmentation and scrubbing (`issue#15167 <http://tracker.ceph.com/issues/15167>`_, `pr#8180 <http://github.com/ceph/ceph/pull/8180>`_, Yan, Zheng)
-* mds, client: add namespace to file_layout_t (previously ceph_file_layout) (`pr#7098 <http://github.com/ceph/ceph/pull/7098>`_, Yan, Zheng, Sage Weil)
-* mds, client: fix locking around handle_conf_change (`issue#14365 <http://tracker.ceph.com/issues/14365>`_, `issue#14374 <http://tracker.ceph.com/issues/14374>`_, `pr#7312 <http://github.com/ceph/ceph/pull/7312>`_, John Spray)
-* mds: don't double-shutdown the timer when suiciding (`issue#14697 <http://tracker.ceph.com/issues/14697>`_, `pr#7616 <http://github.com/ceph/ceph/pull/7616>`_, Greg Farnum)
-* mds: expose state of recovery to status ASOK command (`issue#14146 <http://tracker.ceph.com/issues/14146>`_, `pr#7068 <http://github.com/ceph/ceph/pull/7068>`_, Yan, Zheng)
-* mds: filelock deadlock (`pr#7713 <http://github.com/ceph/ceph/pull/7713>`_, Yan, Zheng)
-* mds: fix client capabilities during reconnect (client.XXXX isn't responding to mclientcaps(revoke)) (`issue#11482 <http://tracker.ceph.com/issues/11482>`_, `pr#6432 <http://github.com/ceph/ceph/pull/6432>`_, Yan, Zheng)
-* mds: fix client cap/message replay order on restart (`issue#14254 <http://tracker.ceph.com/issues/14254>`_, `issue#13546 <http://tracker.ceph.com/issues/13546>`_, `pr#7199 <http://github.com/ceph/ceph/pull/7199>`_, Yan, Zheng)
-* mds: fix file_layout_t legacy encoding snafu (`pr#8455 <http://github.com/ceph/ceph/pull/8455>`_, Sage Weil)
-* mds: fix fsmap decode (`pr#8063 <http://github.com/ceph/ceph/pull/8063>`_, Greg Farnum)
-* mds: fix FSMap upgrade with daemons in the map (`pr#8073 <http://github.com/ceph/ceph/pull/8073>`_, John Spray, Greg Farnum)
-* mds: fix inode_t::compare() (`issue#15038 <http://tracker.ceph.com/issues/15038>`_, `pr#8014 <http://github.com/ceph/ceph/pull/8014>`_, Yan, Zheng)
-* mds: fix scrub_path (`pr#6684 <http://github.com/ceph/ceph/pull/6684>`_, John Spray)
-* mds: fix setvxattr (broken in a536d114) (`issue#14029 <http://tracker.ceph.com/issues/14029>`_, `pr#6941 <http://github.com/ceph/ceph/pull/6941>`_, John Spray)
-* mds: fix standby replay thread creation (`issue#14144 <http://tracker.ceph.com/issues/14144>`_, `pr#7132 <http://github.com/ceph/ceph/pull/7132>`_, John Spray)
-* mds: fix stray purging in 'stripe_count > 1' case (`issue#15050 <http://tracker.ceph.com/issues/15050>`_, `pr#8040 <http://github.com/ceph/ceph/pull/8040>`_, Yan, Zheng)
-* mds: FSmap decode fix (`pr#8604 <http://github.com/ceph/ceph/pull/8604>`_, Greg Farnum)
-* mds/FSMap: use _ in key name (`pr#8614 <http://github.com/ceph/ceph/pull/8614>`_, Sage Weil)
-* mds: function parameter 'df' should be passed by reference (`pr#7490 <http://github.com/ceph/ceph/pull/7490>`_, Na Xie)
-* mds: implement snapshot rename (`pr#5645 <http://github.com/ceph/ceph/pull/5645>`_, xinxin shu)
-* mds: judgment added to avoid the risk of visiting the NULL pointer (`pr#7358 <http://github.com/ceph/ceph/pull/7358>`_, Kongming Wu)
-* mds: messages/MOSDOp: cast in assert to eliminate warnings (`issue#13625 <http://tracker.ceph.com/issues/13625>`_, `pr#6414 <http://github.com/ceph/ceph/pull/6414>`_, David Zafman)
-* mds: Minor fixes around data scan in some scenarios (`pr#8115 <http://github.com/ceph/ceph/pull/8115>`_, Yan, Zheng)
-* mds: Multi-filesystem support (`issue#14952 <http://tracker.ceph.com/issues/14952>`_, `pr#6953 <http://github.com/ceph/ceph/pull/6953>`_, John Spray, Sage Weil)
-* mds: new filtered MDS tell commands for sessions (`pr#6180 <http://github.com/ceph/ceph/pull/6180>`_, John Spray)
-* mds: properly set STATE_STRAY/STATE_ORPHAN for stray dentry/inode (`issue#13777 <http://tracker.ceph.com/issues/13777>`_, `pr#6553 <http://github.com/ceph/ceph/pull/6553>`_, Yan, Zheng)
-* mds: repair the command option "--hot-standby" (`pr#6454 <http://github.com/ceph/ceph/pull/6454>`_, Wei Feng)
-* mds: ScrubStack and "tag path" command (`pr#5662 <http://github.com/ceph/ceph/pull/5662>`_, Yan, Zheng, John Spray, Greg Farnum)
-* mds/Session: use projected parent for auth path check (`issue#13364 <http://tracker.ceph.com/issues/13364>`_, `pr#6200 <http://github.com/ceph/ceph/pull/6200>`_, Sage Weil)
-* mds: tear down connections from `tell` commands (`issue#14048 <http://tracker.ceph.com/issues/14048>`_, `pr#6933 <http://github.com/ceph/ceph/pull/6933>`_, John Spray)
-* mds: we should wait messenger when MDSDaemon suicide (`pr#6996 <http://github.com/ceph/ceph/pull/6996>`_, Wei Feng)
-* messages/MOSDOp: clear reqid inc for v6 encoding (`issue#15230 <http://tracker.ceph.com/issues/15230>`_, `pr#8299 <http://github.com/ceph/ceph/pull/8299>`_, Sage Weil)
-* mirrors: Change contact e-mail address for se.ceph.com (`pr#8007 <http://github.com/ceph/ceph/pull/8007>`_, Wido den Hollander)
-* mirrors: Updated scripts and documentation for mirrors (`pr#7847 <http://github.com/ceph/ceph/pull/7847>`_, Wido den Hollander)
-* misc: use make_shared while creating shared_ptr (`pr#7769 <http://github.com/ceph/ceph/pull/7769>`_, Somnath Roy)
-* mon: add an independent option for max election time (`pr#7245 <http://github.com/ceph/ceph/pull/7245>`_, Sangdi Xu)
-* mon: add `osd blacklist clear` (`pr#6945 <http://github.com/ceph/ceph/pull/6945>`_, John Spray)
-* mon: add RAW USED column to ceph df detail (`pr#7087 <http://github.com/ceph/ceph/pull/7087>`_, Ruifeng Yang)
-* mon: block 'ceph osd pg-temp ...' if pg_temp update is already pending (`pr#6704 <http://github.com/ceph/ceph/pull/6704>`_, Sage Weil)
-* mon: cleanup set-quota error msg (`pr#7371 <http://github.com/ceph/ceph/pull/7371>`_, Abhishek Lekshmanan)
-* monclient: avoid key renew storm on clock skew (`issue#12065 <http://tracker.ceph.com/issues/12065>`_, `pr#8258 <http://github.com/ceph/ceph/pull/8258>`_, Alexey Sheplyakov)
-* mon: compact full epochs also (`issue#14537 <http://tracker.ceph.com/issues/14537>`_, `pr#7396 <http://github.com/ceph/ceph/pull/7396>`_, Kefu Chai)
-* mon: consider pool size when creating pool (`issue#14509 <http://tracker.ceph.com/issues/14509>`_, `pr#7359 <http://github.com/ceph/ceph/pull/7359>`_, songbaisen)
-* mon: consider the pool size when setting pool crush rule (`issue#14495 <http://tracker.ceph.com/issues/14495>`_, `pr#7341 <http://github.com/ceph/ceph/pull/7341>`_, song baisen)
-* mon: degrade a log message to level 2 (`pr#6929 <http://github.com/ceph/ceph/pull/6929>`_, Kongming Wu)
-* mon: do not send useless pg_create messages for split pgs (`pr#8247 <http://github.com/ceph/ceph/pull/8247>`_, Sage Weil)
-* mon: don't require OSD W for MRemoveSnaps (`issue#13777 <http://tracker.ceph.com/issues/13777>`_, `pr#6601 <http://github.com/ceph/ceph/pull/6601>`_, John Spray)
-* mon: drop useless rank init assignment (`issue#14508 <http://tracker.ceph.com/issues/14508>`_, `pr#7321 <http://github.com/ceph/ceph/pull/7321>`_, huanwen ren)
-* mon: enable 'mon osd prime pg temp' by default (`pr#7838 <http://github.com/ceph/ceph/pull/7838>`_, Robert LeBlanc)
-* mon: fix calculation of %USED (`pr#7881 <http://github.com/ceph/ceph/pull/7881>`_, Adam Kupczyk)
-* mon: fix ceph df pool available calculation for 0-weighted OSDs (`pr#6660 <http://github.com/ceph/ceph/pull/6660>`_, Chengyuan Li)
-* mon: fix coding-style on PG related Monitor files (`pr#6881 <http://github.com/ceph/ceph/pull/6881>`_, Wido den Hollander)
-* mon: fixes related to mondbstore->get() changes (`pr#6564 <http://github.com/ceph/ceph/pull/6564>`_, Piotr Dałek)
-* mon: fix keyring permissions (`issue#14950 <http://tracker.ceph.com/issues/14950>`_, `pr#7880 <http://github.com/ceph/ceph/pull/7880>`_, Owen Synge)
-* mon: fix locking in preinit error paths (`issue#14473 <http://tracker.ceph.com/issues/14473>`_, `pr#7353 <http://github.com/ceph/ceph/pull/7353>`_, huanwen ren)
-* mon: fix monmap creation stamp (`pr#7459 <http://github.com/ceph/ceph/pull/7459>`_, duanweijun)
-* mon: fix reuse of osd ids (clear osd info on osd deletion) (`issue#13988 <http://tracker.ceph.com/issues/13988>`_, `pr#6900 <http://github.com/ceph/ceph/pull/6900>`_, Loic Dachary, Sage Weil)
-* mon: fix routed_request_tids leak (`pr#6102 <http://github.com/ceph/ceph/pull/6102>`_, Ning Yao)
-* mon: fix sync of config-key data (`pr#7363 <http://github.com/ceph/ceph/pull/7363>`_, Xiaowei Chen)
-* mon: fix the can't change subscribe level bug in monitoring log (`pr#7031 <http://github.com/ceph/ceph/pull/7031>`_, Zhiqiang Wang)
-* mon: go into ERR state if multiple PGs are stuck inactive (`issue#13923 <http://tracker.ceph.com/issues/13923>`_, `pr#7253 <http://github.com/ceph/ceph/pull/7253>`_, Wido den Hollander)
-* mon: initialize last_* timestamps on new pgs to creation time (`issue#14952 <http://tracker.ceph.com/issues/14952>`_, `pr#7980 <http://github.com/ceph/ceph/pull/7980>`_, Sage Weil)
-* mon: initialize recorded election epoch properly even when standalone (`issue#13627 <http://tracker.ceph.com/issues/13627>`_, `pr#6407 <http://github.com/ceph/ceph/pull/6407>`_, huanwen ren)
-* mon: make clock skew checks sane (`issue#14175 <http://tracker.ceph.com/issues/14175>`_, `pr#7141 <http://github.com/ceph/ceph/pull/7141>`_, Joao Eduardo Luis)
-* mon: mark_down_pgs in lockstep with pg_map's osdmap epoch (`pr#8208 <http://github.com/ceph/ceph/pull/8208>`_, Sage Weil)
-* mon/MDSMonitor: add confirmation to "ceph mds rmfailed" (`issue#14379 <http://tracker.ceph.com/issues/14379>`_, `pr#7248 <http://github.com/ceph/ceph/pull/7248>`_, Yan, Zheng)
-* mon/MDSMonitor.cc: properly note beacon when health metrics changes (`issue#14684 <http://tracker.ceph.com/issues/14684>`_, `pr#7757 <http://github.com/ceph/ceph/pull/7757>`_, Yan, Zheng)
-* mon: modify a dout level in OSDMonitor.cc (`pr#6928 <http://github.com/ceph/ceph/pull/6928>`_, Yongqiang He)
-* mon/MonClient: avoid null pointer error when configured incorrectly (`issue#14405 <http://tracker.ceph.com/issues/14405>`_, `pr#7276 <http://github.com/ceph/ceph/pull/7276>`_, Bo Cai)
-* mon/MonClient: fix shutdown race (`issue#13992 <http://tracker.ceph.com/issues/13992>`_, `pr#8335 <http://github.com/ceph/ceph/pull/8335>`_, Sage Weil)
-* mon/monitor: some clean up (`pr#7520 <http://github.com/ceph/ceph/pull/7520>`_, huanwen ren)
-* mon: MonmapMonitor: don't expose uncommitted state to client (`pr#6854 <http://github.com/ceph/ceph/pull/6854>`_, Joao Eduardo Luis)
-* mon/OSDMonitor: osdmap laggy set a maximum limit for interval (`pr#7109 <http://github.com/ceph/ceph/pull/7109>`_, Zengran Zhang)
-* mon: osd [test-]reweight-by-{pg,utilization} command updates (`pr#7890 <http://github.com/ceph/ceph/pull/7890>`_, Dan van der Ster, Sage Weil)
-* mon: paxos is_recovering calc error (`pr#7227 <http://github.com/ceph/ceph/pull/7227>`_, Weijun Duan)
-* mon/PGMap: show rd/wr iops separately in status reports (`pr#7072 <http://github.com/ceph/ceph/pull/7072>`_, Cilang Zhao)
-* mon: PGMonitor: acting primary diff with cur_stat, should not set pg to stale (`pr#7083 <http://github.com/ceph/ceph/pull/7083>`_, Xiaowei Chen)
-* mon/PGMonitor: reliably mark PGs state (`pr#8089 <http://github.com/ceph/ceph/pull/8089>`_, Sage Weil)
-* mon: PG Monitor should report waiting for backfill (`issue#12744 <http://tracker.ceph.com/issues/12744>`_, `pr#7398 <http://github.com/ceph/ceph/pull/7398>`_, Abhishek Lekshmanan)
-* mon/pgmonitor: use appropriate forced conversions in get_rule_avail (`pr#7705 <http://github.com/ceph/ceph/pull/7705>`_, huanwen ren)
-* mon: reduce CPU and memory manager pressure of pg health check (`pr#7482 <http://github.com/ceph/ceph/pull/7482>`_, Piotr Dałek)
-* mon: remove 'mds setmap' (`issue#15136 <http://tracker.ceph.com/issues/15136>`_, `pr#8121 <http://github.com/ceph/ceph/pull/8121>`_, Sage Weil)
-* mon: remove remove_legacy_versions() (`pr#8324 <http://github.com/ceph/ceph/pull/8324>`_, Kefu Chai)
-* mon: remove unnecessary comment for update_from_paxos (`pr#8400 <http://github.com/ceph/ceph/pull/8400>`_, Qinghua Jin)
-* mon: remove unused variable (`issue#15292 <http://tracker.ceph.com/issues/15292>`_, `pr#8337 <http://github.com/ceph/ceph/pull/8337>`_, Javier M. Mellid)
-* mon: revert MonitorDBStore's WholeStoreIteratorImpl::get (`issue#13742 <http://tracker.ceph.com/issues/13742>`_, `pr#6522 <http://github.com/ceph/ceph/pull/6522>`_, Piotr Dałek)
-* mon: should not set isvalid = true when cephx_verify_authorizer return false (`issue#13525 <http://tracker.ceph.com/issues/13525>`_, `pr#6306 <http://github.com/ceph/ceph/pull/6306>`_, Ruifeng Yang)
-* mon: show the pool quota info on ceph df detail command (`issue#14216 <http://tracker.ceph.com/issues/14216>`_, `pr#7094 <http://github.com/ceph/ceph/pull/7094>`_, song baisen)
-* mon: some cleanup in MonmapMonitor.cc (`pr#7418 <http://github.com/ceph/ceph/pull/7418>`_, huanwen ren)
-* mon: standardize Ceph removal commands (`pr#7939 <http://github.com/ceph/ceph/pull/7939>`_, Dongsheng Yang)
-* mon: support min_down_reporter by subtree level (default by host) (`pr#6709 <http://github.com/ceph/ceph/pull/6709>`_, Xiaoxi Chen)
-* mon: unconfuse object count skew message (`pr#7882 <http://github.com/ceph/ceph/pull/7882>`_, Piotr Dałek)
-* mon: unregister command on shutdown (`pr#7504 <http://github.com/ceph/ceph/pull/7504>`_, huanwen ren)
-* mon: warn if pg(s) not scrubbed (`issue#13142 <http://tracker.ceph.com/issues/13142>`_, `pr#6440 <http://github.com/ceph/ceph/pull/6440>`_, Michal Jarzabek)
-* mount.ceph: memory leaks (`pr#6905 <http://github.com/ceph/ceph/pull/6905>`_, Qiankun Zheng)
-* mount.fuse.ceph: better parsing of arguments passed to mount.fuse.ceph by mount command (`issue#14735 <http://tracker.ceph.com/issues/14735>`_, `pr#7607 <http://github.com/ceph/ceph/pull/7607>`_, Florent Bautista)
-* mrun: update path to cmake binaries (`pr#8447 <http://github.com/ceph/ceph/pull/8447>`_, Casey Bodley)
-* msg: add override to virutal methods (`pr#6977 <http://github.com/ceph/ceph/pull/6977>`_, Michal Jarzabek)
-* msg: add thread safety for "random" Messenger + fix wrong usage of random functions (`pr#7650 <http://github.com/ceph/ceph/pull/7650>`_, Avner BenHanoch)
-* msg/async: AsyncConnection: avoid debug log in cleanup_handler (`pr#7547 <http://github.com/ceph/ceph/pull/7547>`_, Haomai Wang)
-* msg/async: AsyncConnection: avoid is_connected require connection's lock (`issue#15440 <http://tracker.ceph.com/issues/15440>`_, `pr#8520 <http://github.com/ceph/ceph/pull/8520>`_, Haomai Wang)
-* msg/async: AsyncMessenger: fix several bugs (`pr#7831 <http://github.com/ceph/ceph/pull/7831>`_, Haomai Wang)
-* msg/async: AsyncMessenger: fix valgrind leak (`pr#7725 <http://github.com/ceph/ceph/pull/7725>`_, Haomai Wang)
-* msg/async: avoid log spam on throttle (`issue#15031 <http://tracker.ceph.com/issues/15031>`_, `pr#8263 <http://github.com/ceph/ceph/pull/8263>`_, Kefu Chai)
-* msg/async: bunch of fixes (`pr#7379 <http://github.com/ceph/ceph/pull/7379>`_, Piotr Dałek)
-* msg/async: cleanup dead connection and misc things (`pr#7158 <http://github.com/ceph/ceph/pull/7158>`_, Haomai Wang)
-* msg/async: don't calculate msg header crc when not needed (`pr#7815 <http://github.com/ceph/ceph/pull/7815>`_, Piotr Dałek)
-* msg/async: don't use shared_ptr to manage EventCallback (`pr#7028 <http://github.com/ceph/ceph/pull/7028>`_, Haomai Wang)
-* msg/async: Event: fix clock skew problem (`pr#7949 <http://github.com/ceph/ceph/pull/7949>`_, Wei Jin)
-* msg/async: fix array boundary (`pr#7451 <http://github.com/ceph/ceph/pull/7451>`_, Wei Jin)
-* msg: async: fix perf counter description and simplify _send_keepalive_or_ack (`pr#8046 <http://github.com/ceph/ceph/pull/8046>`_, xie xingguo)
-* msg/async: fix potential race condition (`pr#7453 <http://github.com/ceph/ceph/pull/7453>`_, Haomai Wang)
-* msg/async: fix send closed local_connection message problem (`pr#7255 <http://github.com/ceph/ceph/pull/7255>`_, Haomai Wang)
-* msg/async: let receiver ack message ASAP (`pr#6478 <http://github.com/ceph/ceph/pull/6478>`_, Haomai Wang)
-* msg/async: reduce extra tcp packet for message ack (`pr#7380 <http://github.com/ceph/ceph/pull/7380>`_, Haomai Wang)
-* msg/async: remove experiment feature (`pr#7820 <http://github.com/ceph/ceph/pull/7820>`_, Haomai Wang)
-* msg: async: small cleanups (`pr#7871 <http://github.com/ceph/ceph/pull/7871>`_, xie xingguo)
-* msg/async: smarter MSG_MORE (`pr#7625 <http://github.com/ceph/ceph/pull/7625>`_, Piotr Dałek)
-* msg: async: start over after failing to bind a port in specified range (`issue#14928 <http://tracker.ceph.com/issues/14928>`_, `issue#13002 <http://tracker.ceph.com/issues/13002>`_, `pr#7852 <http://github.com/ceph/ceph/pull/7852>`_, xie xingguo)
-* msg/async: support of non-block connect in async messenger (`issue#12802 <http://tracker.ceph.com/issues/12802>`_, `pr#5848 <http://github.com/ceph/ceph/pull/5848>`_, Jianhui Yuan)
-* msg/async: _try_send trim already sent for outcoming_bl more efficient (`pr#7970 <http://github.com/ceph/ceph/pull/7970>`_, Yan Jun)
-* msg/async: will crash if enabling async msg because of an assertion (`pr#6640 <http://github.com/ceph/ceph/pull/6640>`_, Zhi Zhang)
-* msg: filter out lo addr when bind osd addr (`pr#7012 <http://github.com/ceph/ceph/pull/7012>`_, Ji Chen)
-* msg: removed unneeded includes from Dispatcher (`pr#6814 <http://github.com/ceph/ceph/pull/6814>`_, Michal Jarzabek)
-* msg: remove duplicated code - local_delivery will now call 'enqueue' (`pr#7948 <http://github.com/ceph/ceph/pull/7948>`_, Avner BenHanoch)
-* msg: remove unneeded inline (`pr#6989 <http://github.com/ceph/ceph/pull/6989>`_, Michal Jarzabek)
-* msgr: fix large message data content length causing overflow (`pr#6809 <http://github.com/ceph/ceph/pull/6809>`_, Jun Huang, Haomai Wang)
-* msg: significantly reduce minimal memory usage of connections (`pr#7567 <http://github.com/ceph/ceph/pull/7567>`_, Piotr Dałek)
-* msg/simple: pipe: memory leak when signature check failed (`pr#7096 <http://github.com/ceph/ceph/pull/7096>`_, Ruifeng Yang)
-* msg/simple: remove unneeded friend declarations (`pr#6924 <http://github.com/ceph/ceph/pull/6924>`_, Michal Jarzabek)
-* msg/xio: fix compilation (`pr#7479 <http://github.com/ceph/ceph/pull/7479>`_, Roi Dayan)
-* msg/xio: fixes (`pr#7603 <http://github.com/ceph/ceph/pull/7603>`_, Roi Dayan)
-* msg/xio: simple fixes (`pr#8555 <http://github.com/ceph/ceph/pull/8555>`_, Avner BenHanoch)
-* mstart: start rgw on different ports as well (`pr#8167 <http://github.com/ceph/ceph/pull/8167>`_, Abhishek Lekshmanan)
-* nfs for rgw (Matt Benjamin, Orit Wasserman) (`pr#7634 <http://github.com/ceph/ceph/pull/7634>`_, Yehuda Sadeh, Matt Benjamin)
-* objecter: avoid recursive lock of Objecter::rwlock (`pr#7343 <http://github.com/ceph/ceph/pull/7343>`_, Yan, Zheng)
-* organizationmap: modify org mail info. (`pr#7240 <http://github.com/ceph/ceph/pull/7240>`_, Xiaowei Chen)
-* os/bluestore: a few fixes (`pr#8193 <http://github.com/ceph/ceph/pull/8193>`_, Sage Weil)
-* os/bluestore/BlueFS: Before reap ioct, it should wait io complete (`pr#8178 <http://github.com/ceph/ceph/pull/8178>`_, Jianpeng Ma)
-* os/bluestore/BlueStore: Don't leak trim overlay data before write. (`pr#7895 <http://github.com/ceph/ceph/pull/7895>`_, Jianpeng Ma)
-* os/bluestore: ceph-bluefs-tool fixes (`issue#15261 <http://tracker.ceph.com/issues/15261>`_, `pr#8292 <http://github.com/ceph/ceph/pull/8292>`_, Venky Shankar)
-* os/bluestore: clone overlay data (`pr#7860 <http://github.com/ceph/ceph/pull/7860>`_, Jianpeng Ma)
-* os/bluestore: fix assert (`issue#14436 <http://tracker.ceph.com/issues/14436>`_, `pr#7293 <http://github.com/ceph/ceph/pull/7293>`_, xie xingguo)
-* os/bluestore: fix a typo in SPDK path parsing (`pr#7601 <http://github.com/ceph/ceph/pull/7601>`_, Jianjian Huo)
-* os/bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7342 <http://github.com/ceph/ceph/pull/7342>`_, Kefu Chai)
-* os/bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7419 <http://github.com/ceph/ceph/pull/7419>`_, Kefu Chai, Brad Hubbard)
-* os/bluestore: fix shortened bluefs paths in env mirror case (`pr#8498 <http://github.com/ceph/ceph/pull/8498>`_, Sage Weil)
-* os/bluestore: insert new onode to the front position of onode LRU (`pr#7492 <http://github.com/ceph/ceph/pull/7492>`_, Jianjian Huo)
-* os/bluestore/KernelDevice: force block size (`pr#8006 <http://github.com/ceph/ceph/pull/8006>`_, Sage Weil)
-* os/bluestore: make bluestore_sync_transaction = true can work. (`pr#7674 <http://github.com/ceph/ceph/pull/7674>`_, Jianpeng Ma)
-* os/bluestore/NVMEDevice: make IO thread using dpdk launch (`pr#8160 <http://github.com/ceph/ceph/pull/8160>`_, Haomai Wang)
-* os/bluestore/NVMEDevice: refactor probe/attach codes and support zero command (`pr#7647 <http://github.com/ceph/ceph/pull/7647>`_, Haomai Wang)
-* os/bluestore: revamp BlueFS bdev management and add perfcounters (`issue#15376 <http://tracker.ceph.com/issues/15376>`_, `pr#8431 <http://github.com/ceph/ceph/pull/8431>`_, Sage Weil)
-* os/bluestore: small fixes in bluestore StupidAllocator (`pr#8101 <http://github.com/ceph/ceph/pull/8101>`_, Jianjian Huo)
-* os/bluestore: use intrusive_ptr for Dir (`pr#7247 <http://github.com/ceph/ceph/pull/7247>`_, Igor Fedotov)
-* osd: add cache hint when pushing raw clone during recovery (`pr#7069 <http://github.com/ceph/ceph/pull/7069>`_, Zhiqiang Wang)
-* osd: Add config option osd_read_ec_check_for_errors for testing (`pr#5865 <http://github.com/ceph/ceph/pull/5865>`_, David Zafman)
-* osd: add missing newline to usage message (`pr#7613 <http://github.com/ceph/ceph/pull/7613>`_, Willem Jan Withagen)
-* osd: add osd op queue latency perfcounter (`pr#5793 <http://github.com/ceph/ceph/pull/5793>`_, Haomai Wang)
-* osd: add pin/unpin support to cache tier (11066) (`pr#6326 <http://github.com/ceph/ceph/pull/6326>`_, Zhiqiang Wang)
-* osd: add 'proxy' cache mode (`issue#12814 <http://tracker.ceph.com/issues/12814>`_, `pr#8210 <http://github.com/ceph/ceph/pull/8210>`_, Sage Weil)
-* osd: add scrub persist/query API (`issue#13505 <http://tracker.ceph.com/issues/13505>`_, `pr#6898 <http://github.com/ceph/ceph/pull/6898>`_, Kefu Chai, Samuel Just)
-* osd: add the support of per pool scrub priority (`pr#7062 <http://github.com/ceph/ceph/pull/7062>`_, Zhiqiang Wang)
-* osd: a fix for HeartbeatDispatcher and cleanups (`pr#7550 <http://github.com/ceph/ceph/pull/7550>`_, Kefu Chai)
-* osd: Allow repair of history.last_epoch_started using config (`pr#6793 <http://github.com/ceph/ceph/pull/6793>`_, David Zafman)
-* osd: auto repair EC pool (`issue#12754 <http://tracker.ceph.com/issues/12754>`_, `pr#6196 <http://github.com/ceph/ceph/pull/6196>`_, Guang Yang)
-* osd: avoid calculating crush mapping for most ops (`pr#6371 <http://github.com/ceph/ceph/pull/6371>`_, Sage Weil)
-* osd: avoid debug std::string initialization in PG::get/put (`pr#7117 <http://github.com/ceph/ceph/pull/7117>`_, Evgeniy Firsov)
-* osd: avoid double-check for replaying and can_checkpoint() in FileStore::_check_replay_guard (`pr#6471 <http://github.com/ceph/ceph/pull/6471>`_, Ning Yao)
-* osd: avoid duplicate op->mark_started in ReplicatedBackend (`pr#6689 <http://github.com/ceph/ceph/pull/6689>`_, Jacek J. Åakis)
-* osd: avoid FORCE updating digest been overwritten by MAYBE when comparing scrub map (`pr#7051 <http://github.com/ceph/ceph/pull/7051>`_, Zhiqiang Wang)
-* osd: avoid osd_op_thread suicide because osd_scrub_sleep (`pr#7009 <http://github.com/ceph/ceph/pull/7009>`_, Jianpeng Ma)
-* osd: bail out of _committed_osd_maps if we are shutting down (`pr#8267 <http://github.com/ceph/ceph/pull/8267>`_, Samuel Just)
-* osd: blockdevice: avoid implicit cast and add guard (`pr#7460 <http://github.com/ceph/ceph/pull/7460>`_, xie xingguo)
-* osd: bluefs: fix alignment for odd page sizes (`pr#7900 <http://github.com/ceph/ceph/pull/7900>`_, Dan Mick)
-* osd: bluestore: add 'override' to virtual functions (`pr#7886 <http://github.com/ceph/ceph/pull/7886>`_, Michal Jarzabek)
-* osd: bluestore: allow _dump_onode dynamic accept log level (`pr#7995 <http://github.com/ceph/ceph/pull/7995>`_, Jianpeng Ma)
-* osd: bluestore/blockdevice: use std::mutex et al (`pr#7568 <http://github.com/ceph/ceph/pull/7568>`_, Sage Weil)
-* osd: bluestore: bluefs: fix several small bugs (`issue#14344 <http://tracker.ceph.com/issues/14344>`_, `issue#14343 <http://tracker.ceph.com/issues/14343>`_, `pr#7200 <http://github.com/ceph/ceph/pull/7200>`_, xie xingguo)
-* osd: bluestore/BlueFS: initialize super block_size earlier in mkfs (`pr#7535 <http://github.com/ceph/ceph/pull/7535>`_, Sage Weil)
-* osd: bluestore: don't include when building without libaio (`issue#14207 <http://tracker.ceph.com/issues/14207>`_, `pr#7169 <http://github.com/ceph/ceph/pull/7169>`_, Mykola Golub)
-* osd: bluestore: fix bluestore onode_t attr leak (`pr#7125 <http://github.com/ceph/ceph/pull/7125>`_, Ning Yao)
-* osd: bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7168 <http://github.com/ceph/ceph/pull/7168>`_, Kefu Chai)
-* osd: bluestore: fix check for write falling within the same extent (`issue#14954 <http://tracker.ceph.com/issues/14954>`_, `pr#7892 <http://github.com/ceph/ceph/pull/7892>`_, Jianpeng Ma)
-* osd: BlueStore: fix fsck and blockdevice read-relevant issue (`pr#7362 <http://github.com/ceph/ceph/pull/7362>`_, xie xingguo)
-* osd: BlueStore: fix null pointer access (`issue#14561 <http://tracker.ceph.com/issues/14561>`_, `pr#7435 <http://github.com/ceph/ceph/pull/7435>`_, xie xingguo)
-* osd: bluestore: fix several bugs (`issue#14259 <http://tracker.ceph.com/issues/14259>`_, `issue#14353 <http://tracker.ceph.com/issues/14353>`_, `issue#14260 <http://tracker.ceph.com/issues/14260>`_, `issue#14261 <http://tracker.ceph.com/issues/14261>`_, `pr#7122 <http://github.com/ceph/ceph/pull/7122>`_, xie xingguo)
-* osd: bluestore: fix space rebalancing, collection split, buffered reads (`pr#7196 <http://github.com/ceph/ceph/pull/7196>`_, Sage Weil)
-* osd: bluestore: for overwrite a extent, allocate new extent on min_alloc_size write (`pr#7996 <http://github.com/ceph/ceph/pull/7996>`_, Jianpeng Ma)
-* osd: bluestore: improve fs-type verification and tidy up (`pr#7651 <http://github.com/ceph/ceph/pull/7651>`_, xie xingguo)
-* osd: bluestore, kstore: fix nid overwritten logic (`issue#14407 <http://tracker.ceph.com/issues/14407>`_, `issue#14433 <http://tracker.ceph.com/issues/14433>`_, `pr#7283 <http://github.com/ceph/ceph/pull/7283>`_, xie xingguo)
-* osd: bluestore: misc fixes (`pr#7658 <http://github.com/ceph/ceph/pull/7658>`_, Jianpeng Ma)
-* osd: bluestore: more fixes (`pr#7130 <http://github.com/ceph/ceph/pull/7130>`_, Sage Weil)
-* osd: BlueStore/NVMEDevice: fix compiling and fd leak (`pr#7496 <http://github.com/ceph/ceph/pull/7496>`_, xie xingguo)
-* osd: bluestore: NVMEDevice: fix error handling (`pr#7799 <http://github.com/ceph/ceph/pull/7799>`_, xie xingguo)
-* osd: bluestore: remove unneeded includes (`pr#7870 <http://github.com/ceph/ceph/pull/7870>`_, Michal Jarzabek)
-* osd: bluestore: Revert NVMEDevice task cstor and refresh interface changes (`pr#7729 <http://github.com/ceph/ceph/pull/7729>`_, Haomai Wang)
-* osd: bluestore updates, scrub fixes (`pr#8035 <http://github.com/ceph/ceph/pull/8035>`_, Sage Weil)
-* osd: bluestore: use btree_map for allocator (`pr#7269 <http://github.com/ceph/ceph/pull/7269>`_, Igor Fedotov, Sage Weil)
-* osd: cache tier: add config option for eviction check list size (`pr#6997 <http://github.com/ceph/ceph/pull/6997>`_, Yuan Zhou)
-* osd: call on_new_interval on newly split child PG (`issue#13962 <http://tracker.ceph.com/issues/13962>`_, `pr#6778 <http://github.com/ceph/ceph/pull/6778>`_, Sage Weil)
-* osd: cancel failure reports if we fail to rebind network (`pr#6278 <http://github.com/ceph/ceph/pull/6278>`_, Xinze Chi)
-* osdc: Fix race condition with tick_event and shutdown (`issue#14256 <http://tracker.ceph.com/issues/14256>`_, `pr#7151 <http://github.com/ceph/ceph/pull/7151>`_, Adam C. Emerson)
-* osd: change mutex to spinlock to optimize thread context switch. (`pr#6492 <http://github.com/ceph/ceph/pull/6492>`_, Xiaowei Chen)
-* osd: check do_shutdown before do_restart (`pr#6547 <http://github.com/ceph/ceph/pull/6547>`_, Xiaoxi Chen)
-* osd: check health state before pre_booting (`issue#14181 <http://tracker.ceph.com/issues/14181>`_, `pr#7053 <http://github.com/ceph/ceph/pull/7053>`_, Xiaoxi Chen)
-* osd: clarify the scrub result report (`pr#6534 <http://github.com/ceph/ceph/pull/6534>`_, Li Wang)
-* osd/ClassHandler: only dlclose() the classes not missing (`pr#8354 <http://github.com/ceph/ceph/pull/8354>`_, Kefu Chai)
-* osd: clean up CMPXATTR checks (`pr#5961 <http://github.com/ceph/ceph/pull/5961>`_, Jianpeng Ma)
-* osd: clean up temp object if copy-from fails (`pr#8487 <http://github.com/ceph/ceph/pull/8487>`_, Sage Weil)
-* osd: clear pg_stat_queue after stopping pgs (`issue#14212 <http://tracker.ceph.com/issues/14212>`_, `pr#7091 <http://github.com/ceph/ceph/pull/7091>`_, Sage Weil)
-* osd: clear requeue_scrub_on_unblock flag after requeue scrub (`pr#8570 <http://github.com/ceph/ceph/pull/8570>`_, xie xingguo)
-* osdc/Objecter: dout log after assign tid (`pr#8202 <http://github.com/ceph/ceph/pull/8202>`_, Xinze Chi)
-* osdc/Objecter: fix narrow race with tid assignment (`issue#14364 <http://tracker.ceph.com/issues/14364>`_, `pr#7981 <http://github.com/ceph/ceph/pull/7981>`_, Sage Weil)
-* osdc/Objecter: use full pgid hash in PGNLS ops (`pr#8378 <http://github.com/ceph/ceph/pull/8378>`_, Sage Weil)
-* osd: consider high/low mode when putting agent to sleep (`issue#14752 <http://tracker.ceph.com/issues/14752>`_, `pr#7631 <http://github.com/ceph/ceph/pull/7631>`_, Sage Weil)
-* osd: correctly handle small osd_scrub_interval_randomize_ratio (`pr#7147 <http://github.com/ceph/ceph/pull/7147>`_, Samuel Just)
-* osdc/Striper: reduce assemble_result log level (`pr#8426 <http://github.com/ceph/ceph/pull/8426>`_, Jason Dillaman)
-* osd: defer decoding of MOSDRepOp/MOSDRepOpReply (`pr#6503 <http://github.com/ceph/ceph/pull/6503>`_, Xinze Chi)
-* osd: delay populating in-memory PG log hashmaps (`pr#6425 <http://github.com/ceph/ceph/pull/6425>`_, Piotr Dałek)
-* osd: disable filestore_xfs_extsize by default (`issue#14397 <http://tracker.ceph.com/issues/14397>`_, `pr#7265 <http://github.com/ceph/ceph/pull/7265>`_, Ken Dreyer)
-* osd: do not keep ref of old osdmap in pg (`issue#13990 <http://tracker.ceph.com/issues/13990>`_, `pr#7007 <http://github.com/ceph/ceph/pull/7007>`_, Kefu Chai)
-* osd: don't do random deep scrubs for user initiated scrubs (`pr#6673 <http://github.com/ceph/ceph/pull/6673>`_, David Zafman)
-* osd: don't update epoch and rollback_info objects attrs if there is no need (`pr#6555 <http://github.com/ceph/ceph/pull/6555>`_, Ning Yao)
-* osd: drop deprecated removal pg type (`pr#6970 <http://github.com/ceph/ceph/pull/6970>`_, Igor Podoski)
-* osd: drop fiemap len=0 logic (`pr#7267 <http://github.com/ceph/ceph/pull/7267>`_, Sage Weil)
-* osd: drop the interim set from load_pgs() (`pr#6277 <http://github.com/ceph/ceph/pull/6277>`_, Piotr Dałek)
-* osd: dump number of missing objects for each peer with pg query (`pr#6058 <http://github.com/ceph/ceph/pull/6058>`_, Guang Yang)
-* osd: duplicated clear for peer_missing (`pr#8315 <http://github.com/ceph/ceph/pull/8315>`_, Ning Yao)
-* osd: enable perfcounters on sharded work queue mutexes (`pr#6455 <http://github.com/ceph/ceph/pull/6455>`_, Jacek J. Åakis)
-* osd: ensure new osdmaps commit before publishing them to pgs (`issue#15073 <http://tracker.ceph.com/issues/15073>`_, `pr#8096 <http://github.com/ceph/ceph/pull/8096>`_, Sage Weil)
-* osd: FileJournal: _fdump wrongly returns if journal is currently unreadable. (`issue#13626 <http://tracker.ceph.com/issues/13626>`_, `pr#6406 <http://github.com/ceph/ceph/pull/6406>`_, xie xingguo)
-* osd: FileJournal: fix return code of create method (`issue#14134 <http://tracker.ceph.com/issues/14134>`_, `pr#6988 <http://github.com/ceph/ceph/pull/6988>`_, xie xingguo)
-* osd: FileJournal: reduce locking scope in write_aio_bl (`issue#12789 <http://tracker.ceph.com/issues/12789>`_, `pr#5670 <http://github.com/ceph/ceph/pull/5670>`_, Zhi Zhang)
-* osd: filejournal: report journal entry count (`pr#7643 <http://github.com/ceph/ceph/pull/7643>`_, tianqing)
-* osd: FileJournal: support batch peak and pop from writeq (`pr#6701 <http://github.com/ceph/ceph/pull/6701>`_, Xinze Chi)
-* osd: FileStore: add a field indicate xattr only one chunk for set xattr. (`pr#6244 <http://github.com/ceph/ceph/pull/6244>`_, Jianpeng Ma)
-* osd: FileStore: Added O_DSYNC write scheme (`pr#7752 <http://github.com/ceph/ceph/pull/7752>`_, Somnath Roy)
-* osd: FileStore: add error check for object_map->sync() (`pr#7281 <http://github.com/ceph/ceph/pull/7281>`_, Chendi Xue)
-* osd: FileStore: cleanup: remove obsolete option "filestore_xattr_use_omap" (`issue#14356 <http://tracker.ceph.com/issues/14356>`_, `pr#7217 <http://github.com/ceph/ceph/pull/7217>`_, Vikhyat Umrao)
-* osd: FileStore: conditional collection of drive metadata (`pr#6956 <http://github.com/ceph/ceph/pull/6956>`_, Somnath Roy)
-* osd: filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE (`pr#7768 <http://github.com/ceph/ceph/pull/7768>`_, xinxin shu)
-* osd: filestore: fast abort if statfs encounters ENOENT (`pr#7703 <http://github.com/ceph/ceph/pull/7703>`_, xie xingguo)
-* osd: FileStore: fix initialization order for m_disable_wbthrottle (`pr#8067 <http://github.com/ceph/ceph/pull/8067>`_, Samuel Just)
-* osd: filestore: fix race condition with split vs collection_move_rename and long object names (`issue#14766 <http://tracker.ceph.com/issues/14766>`_, `pr#8136 <http://github.com/ceph/ceph/pull/8136>`_, Samuel Just)
-* osd: filestore: fix result code overwritten for clone (`issue#14817 <http://tracker.ceph.com/issues/14817>`_, `issue#14827 <http://tracker.ceph.com/issues/14827>`_, `pr#7711 <http://github.com/ceph/ceph/pull/7711>`_, xie xingguo)
-* osd: filestore: fix wrong scope of result code for error cases during mkfs (`issue#14814 <http://tracker.ceph.com/issues/14814>`_, `pr#7704 <http://github.com/ceph/ceph/pull/7704>`_, xie xingguo)
-* osd: filestore: fix wrong scope of result code for error cases during mount (`issue#14815 <http://tracker.ceph.com/issues/14815>`_, `pr#7707 <http://github.com/ceph/ceph/pull/7707>`_, xie xingguo)
-* osd: FileStore: LFNIndex: remove redundant local variable 'obj'. (`issue#13552 <http://tracker.ceph.com/issues/13552>`_, `pr#6333 <http://github.com/ceph/ceph/pull/6333>`_, xiexingguo)
-* osd: FileStore: modify the format of colon (`pr#7333 <http://github.com/ceph/ceph/pull/7333>`_, Donghai Xu)
-* osd: FileStore:: optimize lfn_unlink (`pr#6649 <http://github.com/ceph/ceph/pull/6649>`_, Jianpeng Ma)
-* osd: FileStore: potential memory leak if _fgetattrs fails (`issue#13597 <http://tracker.ceph.com/issues/13597>`_, `pr#6377 <http://github.com/ceph/ceph/pull/6377>`_, xie xingguo)
-* osd: FileStore: print file name before osd assert if read file failed (`pr#7111 <http://github.com/ceph/ceph/pull/7111>`_, Ji Chen)
-* osd: FileStore: remove __SWORD_TYPE dependency (`pr#6263 <http://github.com/ceph/ceph/pull/6263>`_, John Coyle)
-* osd: FileStore: remove unused local variable 'handle' (`pr#6381 <http://github.com/ceph/ceph/pull/6381>`_, xie xingguo)
-* osd: filestore: restructure journal and op queue throttling (`pr#7767 <http://github.com/ceph/ceph/pull/7767>`_, Samuel Just)
-* osd: FileStore: support multiple ondisk finish and apply finishers (`pr#6486 <http://github.com/ceph/ceph/pull/6486>`_, Xinze Chi, Haomai Wang)
-* osd: FileStore: use pwritev instead of lseek+writev (`pr#7349 <http://github.com/ceph/ceph/pull/7349>`_, Haomai Wang, Tao Chang)
-* osd: fix bogus scrub results when missing a clone (`issue#12738 <http://tracker.ceph.com/issues/12738>`_, `issue#12740 <http://tracker.ceph.com/issues/12740>`_, `pr#5783 <http://github.com/ceph/ceph/pull/5783>`_, David Zafman)
-* osd: fix broken balance / localized read handling (`issue#13491 <http://tracker.ceph.com/issues/13491>`_, `pr#6364 <http://github.com/ceph/ceph/pull/6364>`_, Jason Dillaman)
-* osd: fix bug in last_* PG state timestamps (`pr#6517 <http://github.com/ceph/ceph/pull/6517>`_, Li Wang)
-* osd: fix bugs for omap ops (`pr#8230 <http://github.com/ceph/ceph/pull/8230>`_, Jianpeng Ma)
-* osd: fix ClassHandler::ClassData::get_filter() (`pr#6747 <http://github.com/ceph/ceph/pull/6747>`_, Yan, Zheng)
-* osd: fix/clean up full map request handling (`pr#8446 <http://github.com/ceph/ceph/pull/8446>`_, Sage Weil)
-* osd: fix debug message in OSD::is_healthy (`pr#6226 <http://github.com/ceph/ceph/pull/6226>`_, Xiaoxi Chen)
-* osd: fix dirtying info without correctly setting drity_info field (`pr#8275 <http://github.com/ceph/ceph/pull/8275>`_, xie xingguo)
-* osd: fix dump_ops_in_flight races (`issue#8885 <http://tracker.ceph.com/issues/8885>`_, `pr#8044 <http://github.com/ceph/ceph/pull/8044>`_, David Zafman)
-* osd: fix epoch check in handle_pg_create (`pr#8382 <http://github.com/ceph/ceph/pull/8382>`_, Samuel Just)
-* osd: fixes for several cases where op result code was not checked or set (`issue#13566 <http://tracker.ceph.com/issues/13566>`_, `pr#6347 <http://github.com/ceph/ceph/pull/6347>`_, xie xingguo)
-* osd: fix failure report handling during ms_handle_connect() (`pr#8348 <http://github.com/ceph/ceph/pull/8348>`_, xie xingguo)
-* osd: fix FileStore::_destroy_collection error return code (`pr#6612 <http://github.com/ceph/ceph/pull/6612>`_, Ruifeng Yang)
-* osd: fix forced prmootion for CALL ops (`issue#14745 <http://tracker.ceph.com/issues/14745>`_, `pr#7617 <http://github.com/ceph/ceph/pull/7617>`_, Sage Weil)
-* osd: fix fusestore hanging during stop/quit (`issue#14786 <http://tracker.ceph.com/issues/14786>`_, `pr#7677 <http://github.com/ceph/ceph/pull/7677>`_, xie xingguo)
-* osd: fix inaccurate counter and skip over queueing an empty transaction (`pr#7754 <http://github.com/ceph/ceph/pull/7754>`_, xie xingguo)
-* osd: fix incorrect throttle in WBThrottle (`pr#6713 <http://github.com/ceph/ceph/pull/6713>`_, Zhang Huan)
-* osd: fix invalid list traversal in process_copy_chunk (`pr#7511 <http://github.com/ceph/ceph/pull/7511>`_, Samuel Just)
-* osd: fix lack of object unblock when flush fails (`issue#14511 <http://tracker.ceph.com/issues/14511>`_, `pr#7584 <http://github.com/ceph/ceph/pull/7584>`_, Igor Fedotov)
-* osd: fix log info (`pr#8273 <http://github.com/ceph/ceph/pull/8273>`_, Wei Jin)
-* osd: fix MOSDOp encoding (`pr#6174 <http://github.com/ceph/ceph/pull/6174>`_, Sage Weil)
-* osd: fix MOSDRepScrub reference counter in replica_scrub (`pr#6730 <http://github.com/ceph/ceph/pull/6730>`_, Jie Wang)
-* osd: fix null pointer access and race condition (`issue#14072 <http://tracker.ceph.com/issues/14072>`_, `pr#6916 <http://github.com/ceph/ceph/pull/6916>`_, xie xingguo)
-* osd: fix overload of '==' operator for pg_stat_t (`issue#14921 <http://tracker.ceph.com/issues/14921>`_, `pr#7842 <http://github.com/ceph/ceph/pull/7842>`_, xie xingguo)
-* osd: fix race condition for heartbeat_need_update (`issue#14387 <http://tracker.ceph.com/issues/14387>`_, `pr#7739 <http://github.com/ceph/ceph/pull/7739>`_, xie xingguo)
-* osd: fix reactivate (check OSDSuperblock in mkfs() when we already have the superblock) (`issue#13586 <http://tracker.ceph.com/issues/13586>`_, `pr#6385 <http://github.com/ceph/ceph/pull/6385>`_, Vicente Cheng)
-* osd: fix reference count, rare race condition etc. (`pr#8254 <http://github.com/ceph/ceph/pull/8254>`_, xie xingguo)
-* osd: fix return value from maybe_handle_cache_detail() (`pr#7593 <http://github.com/ceph/ceph/pull/7593>`_, Igor Fedotov)
-* osd: fix rollback_info_trimmed_to before index() (`issue#13965 <http://tracker.ceph.com/issues/13965>`_, `pr#6801 <http://github.com/ceph/ceph/pull/6801>`_, Samuel Just)
-* osd: fix scrub start hobject (`pr#7467 <http://github.com/ceph/ceph/pull/7467>`_, Sage Weil)
-* osd: fix sparse-read result code checking logic (`issue#14151 <http://tracker.ceph.com/issues/14151>`_, `pr#7016 <http://github.com/ceph/ceph/pull/7016>`_, xie xingguo)
-* osd: fix temp object removal after upgrade (`issue#13862 <http://tracker.ceph.com/issues/13862>`_, `pr#6976 <http://github.com/ceph/ceph/pull/6976>`_, David Zafman)
-* osd: fix tick relevant issues (`pr#8369 <http://github.com/ceph/ceph/pull/8369>`_, xie xingguo)
-* osd: fix trivial scrub bug (`pr#6533 <http://github.com/ceph/ceph/pull/6533>`_, Li Wang)
-* osd: fix two scrub relevant issues (`pr#8462 <http://github.com/ceph/ceph/pull/8462>`_, xie xingguo)
-* osd: fix unnecessary object promotion when deleting from cache pool (`issue#13894 <http://tracker.ceph.com/issues/13894>`_, `pr#7537 <http://github.com/ceph/ceph/pull/7537>`_, Igor Fedotov)
-* osd: fix watch reconnect race (`issue#15441 <http://tracker.ceph.com/issues/15441>`_, `pr#8586 <http://github.com/ceph/ceph/pull/8586>`_, Sage Weil)
-* osd: fix wip (l_osd_op_wip) perf counter and remove repop_map (`pr#7077 <http://github.com/ceph/ceph/pull/7077>`_, Xinze Chi)
-* osd: fix wrongly placed assert and some cleanups (`pr#6766 <http://github.com/ceph/ceph/pull/6766>`_, xiexingguo, xie xingguo)
-* osd: fix wrong return type of find_osd_on_ip() (`issue#14872 <http://tracker.ceph.com/issues/14872>`_, `pr#7812 <http://github.com/ceph/ceph/pull/7812>`_, xie xingguo)
-* osd: fix wrong use of right parenthesis in localized read logic (`pr#6566 <http://github.com/ceph/ceph/pull/6566>`_, Jie Wang)
-* osd: ghobject_t: use ! instead of @ as a separator (`pr#7595 <http://github.com/ceph/ceph/pull/7595>`_, Sage Weil)
-* osd: handle dup pg_create that races with pg deletion (`pr#8033 <http://github.com/ceph/ceph/pull/8033>`_, Sage Weil)
-* osd: improve temperature calculation for cache tier agent (`pr#4737 <http://github.com/ceph/ceph/pull/4737>`_, MingXin Liu)
-* osd: initialize last_recalibrate field at construction (`pr#8071 <http://github.com/ceph/ceph/pull/8071>`_, xie xingguo)
-* osd: init started to 0 (`issue#13206 <http://tracker.ceph.com/issues/13206>`_, `pr#6107 <http://github.com/ceph/ceph/pull/6107>`_, Sage Weil)
-* osd: KeyValueStore: don't queue NULL context (`pr#6783 <http://github.com/ceph/ceph/pull/6783>`_, Haomai Wang)
-* osd: KeyValueStore: fix return code of mkfs (`pr#7036 <http://github.com/ceph/ceph/pull/7036>`_, xie xingguo)
-* osd: KeyValueStore: fix the name's typo of keyvaluestore_default_strip_size (`pr#6375 <http://github.com/ceph/ceph/pull/6375>`_, Zhi Zhang)
-* osd: KeyValueStore: fix wrongly placed assert (`issue#14176 <http://tracker.ceph.com/issues/14176>`_, `issue#14178 <http://tracker.ceph.com/issues/14178>`_, `pr#7047 <http://github.com/ceph/ceph/pull/7047>`_, xie xingguo)
-* osd: kstore: fix a race condition in _txc_finish() (`pr#7804 <http://github.com/ceph/ceph/pull/7804>`_, Jianjian Huo)
-* osd: kstore: latency breakdown (`pr#7850 <http://github.com/ceph/ceph/pull/7850>`_, James Liu)
-* osd: kstore: several small fixes (`issue#14351 <http://tracker.ceph.com/issues/14351>`_, `issue#14352 <http://tracker.ceph.com/issues/14352>`_, `pr#7213 <http://github.com/ceph/ceph/pull/7213>`_, xie xingguo)
-* osd: kstore: small fixes to kstore (`issue#14204 <http://tracker.ceph.com/issues/14204>`_, `pr#7095 <http://github.com/ceph/ceph/pull/7095>`_, xie xingguo)
-* osd: kstore: sync up kstore with recent bluestore updates (`pr#7681 <http://github.com/ceph/ceph/pull/7681>`_, Jianjian Huo)
-* osd: make backend and block device code a bit more generic (`pr#6759 <http://github.com/ceph/ceph/pull/6759>`_, Sage Weil)
-* osd: make list_missing query missing_loc.needs_recovery_map (`pr#6298 <http://github.com/ceph/ceph/pull/6298>`_, Guang Yang)
-* osdmap: remove unused local variables (`pr#6864 <http://github.com/ceph/ceph/pull/6864>`_, luo kexue)
-* osdmap: rm nonused variable (`pr#8423 <http://github.com/ceph/ceph/pull/8423>`_, Wei Jin)
-* osd: memstore: fix alignment of Page for test_pageset (`pr#7587 <http://github.com/ceph/ceph/pull/7587>`_, Casey Bodley)
-* osd: memstore: fix two bugs (`pr#6963 <http://github.com/ceph/ceph/pull/6963>`_, Casey Bodley, Sage Weil)
-* osd: merge local_t and op_t txn to single one (`pr#6439 <http://github.com/ceph/ceph/pull/6439>`_, Xinze Chi)
-* osd: min_write_recency_for_promote & min_read_recency_for_promote are tiering only (`pr#8081 <http://github.com/ceph/ceph/pull/8081>`_, huanwen ren)
-* osd: misc FileStore fixes (`issue#14192 <http://tracker.ceph.com/issues/14192>`_, `issue#14188 <http://tracker.ceph.com/issues/14188>`_, `issue#14194 <http://tracker.ceph.com/issues/14194>`_, `issue#14187 <http://tracker.ceph.com/issues/14187>`_, `issue#14186 <http://tracker.ceph.com/issues/14186>`_, `pr#7059 <http://github.com/ceph/ceph/pull/7059>`_, xie xingguo)
-* osd: misc optimization for map utilization (`pr#6950 <http://github.com/ceph/ceph/pull/6950>`_, Ning Yao)
-* osd, mon: fix exit issue (`pr#7420 <http://github.com/ceph/ceph/pull/7420>`_, Jiaying Ren)
-* osd,mon: log leveldb and rocksdb to ceph log (`pr#6921 <http://github.com/ceph/ceph/pull/6921>`_, Sage Weil)
-* osd: more fixes for incorrectly dirtying info; resend reply for duplicated scrub-reserve req (`pr#8291 <http://github.com/ceph/ceph/pull/8291>`_, xie xingguo)
-* osd: move newest decode version of MOSDOp and MOSDOpReply to the front (`pr#6642 <http://github.com/ceph/ceph/pull/6642>`_, Jacek J. Åakis)
-* osd: new and delete ObjectStore::Transaction in a function is not necessary (`pr#6299 <http://github.com/ceph/ceph/pull/6299>`_, Ruifeng Yang)
-* osd: newstore: misc updates (including kv and os/fs stuff) (`pr#6609 <http://github.com/ceph/ceph/pull/6609>`_, Sage Weil)
-* osd: note down the number of missing clones (`pr#6654 <http://github.com/ceph/ceph/pull/6654>`_, Kefu Chai)
-* osd: Omap small bugs adapted (`pr#6669 <http://github.com/ceph/ceph/pull/6669>`_, Jianpeng Ma, David Zafman)
-* osd: optimize clone write path if object-map is enabled (`pr#6403 <http://github.com/ceph/ceph/pull/6403>`_, xinxin shu)
-* osd: optimize get_object_context (`pr#6305 <http://github.com/ceph/ceph/pull/6305>`_, Jianpeng Ma)
-* osd: optimize MOSDOp/do_op/handle_op (`pr#5211 <http://github.com/ceph/ceph/pull/5211>`_, Jacek J. Lakis)
-* osd: optimize scrub subset_last_update calculation (`pr#6518 <http://github.com/ceph/ceph/pull/6518>`_, Li Wang)
-* osd: optimize the session_handle_reset function (`issue#14182 <http://tracker.ceph.com/issues/14182>`_, `pr#7054 <http://github.com/ceph/ceph/pull/7054>`_, songbaisen)
-* osd: os/chain_xattr: On linux use linux/limits.h for XATTR_NAME_MAX. (`pr#6343 <http://github.com/ceph/ceph/pull/6343>`_, John Coyle)
-* osd/OSD.cc: finish full_map_request every MOSDMap message. (`issue#15130 <http://tracker.ceph.com/issues/15130>`_, `pr#8147 <http://github.com/ceph/ceph/pull/8147>`_, Xiaoxi Chen)
-* osd/OSD: fix build_past_intervals_parallel (`pr#8215 <http://github.com/ceph/ceph/pull/8215>`_, David Zafman)
-* osd/OSDMap: fix typo in summarize_mapping_stats (`pr#8088 <http://github.com/ceph/ceph/pull/8088>`_, Sage Weil)
-* osd: OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from (`issue#14686 <http://tracker.ceph.com/issues/14686>`_, `pr#7553 <http://github.com/ceph/ceph/pull/7553>`_, Xinze Chi)
-* osd: OSDService: Fix typo in osdmap comment (`pr#7275 <http://github.com/ceph/ceph/pull/7275>`_, Brad Hubbard)
-* osd: os: skip checking pg_meta object existance in FileStore (`pr#6870 <http://github.com/ceph/ceph/pull/6870>`_, Ning Yao)
-* osd: partial revert of "ReplicatedPG: result code not correctly set in some cases." (`issue#13796 <http://tracker.ceph.com/issues/13796>`_, `pr#6622 <http://github.com/ceph/ceph/pull/6622>`_, Sage Weil)
-* osd: PG::activate(): handle unexpected cached_removed_snaps more gracefully (`issue#14428 <http://tracker.ceph.com/issues/14428>`_, `pr#7309 <http://github.com/ceph/ceph/pull/7309>`_, Alexey Sheplyakov)
-* osd/PG: indicate in pg query output whether ignore_history_les would help (`pr#8156 <http://github.com/ceph/ceph/pull/8156>`_, Sage Weil)
-* osd: PGLog: clean up read_log (`pr#7092 <http://github.com/ceph/ceph/pull/7092>`_, Jie Wang)
-* osd/PGLog: fix warning (`pr#8057 <http://github.com/ceph/ceph/pull/8057>`_, Sage Weil)
-* osd/PG: pg down state blocked by osd.x, lost osd.x cannot solve peering stuck (`issue#13531 <http://tracker.ceph.com/issues/13531>`_, `pr#6317 <http://github.com/ceph/ceph/pull/6317>`_, Xiaowei Chen)
-* osd: pg_pool_t: add dictionary for pool options (`issue#13077 <http://tracker.ceph.com/issues/13077>`_, `pr#6081 <http://github.com/ceph/ceph/pull/6081>`_, Mykola Golub)
-* osd: PG: set epoch_created and parent_split_bits for child pg (`issue#15426 <http://tracker.ceph.com/issues/15426>`_, `pr#8552 <http://github.com/ceph/ceph/pull/8552>`_, Kefu Chai)
-* osd: prevent osd_recovery_sleep from causing recovery-thread suicide (`pr#7065 <http://github.com/ceph/ceph/pull/7065>`_, Jianpeng Ma)
-* osd: probabilistic cache tier promotion throttling (`pr#7465 <http://github.com/ceph/ceph/pull/7465>`_, Sage Weil)
-* osd: randomize deep scrubbing (`pr#6550 <http://github.com/ceph/ceph/pull/6550>`_, Dan van der Ster, Herve Rousseau)
-* osd: reduce memory consumption of some structs (`pr#6475 <http://github.com/ceph/ceph/pull/6475>`_, Piotr Dałek)
-* osd: reduce string use in coll_t::calc_str() (`pr#6505 <http://github.com/ceph/ceph/pull/6505>`_, Igor Podoski)
-* osd: refuse to start if object name limits are not possible (`pr#8560 <http://github.com/ceph/ceph/pull/8560>`_, Sage Weil)
-* osd: release related sources when scrub is interrupted (`pr#6744 <http://github.com/ceph/ceph/pull/6744>`_, Jianpeng Ma)
-* osd: release the message throttle when OpRequest unregistered (`issue#14248 <http://tracker.ceph.com/issues/14248>`_, `pr#7148 <http://github.com/ceph/ceph/pull/7148>`_, Samuel Just)
-* osd: remove __SWORD_TYPE dependency (`pr#6262 <http://github.com/ceph/ceph/pull/6262>`_, John Coyle)
-* osd: remove unused OSDMap::set_weightf() (`issue#14369 <http://tracker.ceph.com/issues/14369>`_, `pr#7231 <http://github.com/ceph/ceph/pull/7231>`_, huanwen ren)
-* osd: remove up_thru_pending field, which is never used (`pr#7991 <http://github.com/ceph/ceph/pull/7991>`_, xie xingguo)
-* osd: reorder bool fields in PGLog struct (`pr#6279 <http://github.com/ceph/ceph/pull/6279>`_, Piotr Dałek)
-* osd: Replace snprintf with faster implementation in eversion_t::get_key_name (`pr#7121 <http://github.com/ceph/ceph/pull/7121>`_, Evgeniy Firsov)
-* osd/ReplicatedPG: be more careful about calling publish_stats_to_osd() (`issue#14962 <http://tracker.ceph.com/issues/14962>`_, `pr#8039 <http://github.com/ceph/ceph/pull/8039>`_, Greg Farnum)
-* osd: replicatedpg: break out loop if we encounter fatal error during do_pg_op() (`issue#14922 <http://tracker.ceph.com/issues/14922>`_, `pr#7844 <http://github.com/ceph/ceph/pull/7844>`_, xie xingguo)
-* osd: ReplicatedPG: clean up unused function (`pr#7211 <http://github.com/ceph/ceph/pull/7211>`_, Xiaowei Chen)
-* osd/ReplicatedPG: clear watches on change after applying repops (`issue#15151 <http://tracker.ceph.com/issues/15151>`_, `pr#8163 <http://github.com/ceph/ceph/pull/8163>`_, Sage Weil)
-* osd/ReplicatedPG: fix implementation of register_on_success() (`pr#8612 <http://github.com/ceph/ceph/pull/8612>`_, xie xingguo)
-* osd/ReplicatedPG: fix promotion recency logic (`issue#14320 <http://tracker.ceph.com/issues/14320>`_, `pr#6702 <http://github.com/ceph/ceph/pull/6702>`_, Sage Weil)
-* osd/ReplicatedPG: make handle_watch_timeout no-op if !active (`issue#15391 <http://tracker.ceph.com/issues/15391>`_, `pr#8505 <http://github.com/ceph/ceph/pull/8505>`_, Sage Weil)
-* osd: ReplicatedPG: remove unused local variables (`issue#13575 <http://tracker.ceph.com/issues/13575>`_, `pr#6360 <http://github.com/ceph/ceph/pull/6360>`_, xiexingguo)
-* osd/ReplicatedPG::_rollback_to: update the OMAP flag (`issue#14777 <http://tracker.ceph.com/issues/14777>`_, `pr#8495 <http://github.com/ceph/ceph/pull/8495>`_, Samuel Just)
-* osd: repop and lost-unfound overhaul (`pr#7765 <http://github.com/ceph/ceph/pull/7765>`_, Samuel Just)
-* osd: reset primary and up_primary when building a new past_interval. (`issue#13471 <http://tracker.ceph.com/issues/13471>`_, `pr#6240 <http://github.com/ceph/ceph/pull/6240>`_, xiexingguo)
-* osd: resolve boot vs NOUP set + clear race (`pr#7483 <http://github.com/ceph/ceph/pull/7483>`_, Sage Weil)
-* osd: scrub: do not assign value if read error (`pr#6568 <http://github.com/ceph/ceph/pull/6568>`_, Li Wang)
-* osd/ScrubStore: remove unused function (`pr#8045 <http://github.com/ceph/ceph/pull/8045>`_, Kefu Chai)
-* osd: several small cleanups (`pr#7055 <http://github.com/ceph/ceph/pull/7055>`_, xie xingguo)
-* osd: shut down if we flap too many times in a short period (`pr#6708 <http://github.com/ceph/ceph/pull/6708>`_, Xiaoxi Chen)
-* osd: skip promote for writefull w/ FADVISE_DONTNEED/NOCACHE (`pr#7010 <http://github.com/ceph/ceph/pull/7010>`_, Jianpeng Ma)
-* osd: slightly reduce actual size of pg_log_entry_t (`pr#6690 <http://github.com/ceph/ceph/pull/6690>`_, Piotr Dałek)
-* osd: small fixes to memstore (`issue#14228 <http://tracker.ceph.com/issues/14228>`_, `issue#14229 <http://tracker.ceph.com/issues/14229>`_, `issue#14227 <http://tracker.ceph.com/issues/14227>`_, `pr#7107 <http://github.com/ceph/ceph/pull/7107>`_, xie xingguo)
-* osd: some debug output for old osdmap trimming (`pr#8613 <http://github.com/ceph/ceph/pull/8613>`_, Sage Weil)
-* osd: support pool level recovery_priority and recovery_op_priority (`pr#5953 <http://github.com/ceph/ceph/pull/5953>`_, Guang Yang)
-* osd: try evicting after flushing is done (`pr#5630 <http://github.com/ceph/ceph/pull/5630>`_, Zhiqiang Wang)
-* osd: use atomic to generate ceph_tid (`pr#7017 <http://github.com/ceph/ceph/pull/7017>`_, Evgeniy Firsov)
-* osd: use optimized is_zero in object_stat_sum_t.is_zero() (`pr#7203 <http://github.com/ceph/ceph/pull/7203>`_, Piotr Dałek)
-* osd: use pg id (without shard) when referring the PG (`pr#6236 <http://github.com/ceph/ceph/pull/6236>`_, Guang Yang)
-* osd: utime_t, eversion_t, osd_stat_sum_t encoding optimization (`pr#6902 <http://github.com/ceph/ceph/pull/6902>`_, Xinze Chi)
-* osd: WeightedPriorityQueue: move to intrusive containers (`pr#7654 <http://github.com/ceph/ceph/pull/7654>`_, Robert LeBlanc)
-* osd: write file journal optimization (`pr#6484 <http://github.com/ceph/ceph/pull/6484>`_, Xinze Chi)
-* os/filestore/FileJournal: set block size via config option (`pr#7628 <http://github.com/ceph/ceph/pull/7628>`_, Sage Weil)
-* os/filestore: fix punch hole usage in _zero (`pr#8050 <http://github.com/ceph/ceph/pull/8050>`_, Sage Weil)
-* os/filestore: fix result handling logic of destroy_collection (`pr#7721 <http://github.com/ceph/ceph/pull/7721>`_, xie xingguo)
-* os/filestore: fix return type mismatch for lfn parse (`pr#8545 <http://github.com/ceph/ceph/pull/8545>`_, xie xingguo)
-* os/filestore: force lfn attrs to be written atomically, restructure name length limits (`pr#8496 <http://github.com/ceph/ceph/pull/8496>`_, Samuel Just)
-* os/filestore: require offset == length == 0 for full object read; add test (`pr#7957 <http://github.com/ceph/ceph/pull/7957>`_, Jianpeng Ma)
-* os/fs: fix io_getevents argument (`pr#7355 <http://github.com/ceph/ceph/pull/7355>`_, Jingkai Yuan)
-* os/fusestore: add error handling (`pr#7395 <http://github.com/ceph/ceph/pull/7395>`_, xie xingguo)
-* os/keyvaluestore: kill KeyValueStore (`pr#7320 <http://github.com/ceph/ceph/pull/7320>`_, Haomai Wang)
-* os/kstore: insert new onode to the front position of onode LRU (`pr#7505 <http://github.com/ceph/ceph/pull/7505>`_, xie xingguo)
-* os/ObjectStore: add custom move operations for ObjectStore::Transaction (`pr#7303 <http://github.com/ceph/ceph/pull/7303>`_, Casey Bodley)
-* os/ObjectStore: add noexcept to ensure move ctor is used (`pr#8421 <http://github.com/ceph/ceph/pull/8421>`_, Kefu Chai)
-* os/ObjectStore: fix _update_op for split dest_cid (`pr#8364 <http://github.com/ceph/ceph/pull/8364>`_, Sage Weil)
-* os/ObjectStore: implement more efficient get_encoded_bytes() (`pr#7775 <http://github.com/ceph/ceph/pull/7775>`_, Piotr Dałek)
-* os/ObjectStore: make device uuid probe output something friendly (`pr#8418 <http://github.com/ceph/ceph/pull/8418>`_, Sage Weil)
-* os/ObjectStore: try_move_rename in transaction append and add coverage to store_test (`issue#15205 <http://tracker.ceph.com/issues/15205>`_, `pr#8359 <http://github.com/ceph/ceph/pull/8359>`_, Samuel Just)
-* packaging: add build dependency on python devel package (`pr#7205 <http://github.com/ceph/ceph/pull/7205>`_, Josh Durgin)
-* packaging: make infernalis -> jewel upgrade work (`issue#15047 <http://tracker.ceph.com/issues/15047>`_, `pr#8034 <http://github.com/ceph/ceph/pull/8034>`_, Nathan Cutler)
-* packaging: move cephfs repair tools to ceph-common (`issue#15145 <http://tracker.ceph.com/issues/15145>`_, `pr#8133 <http://github.com/ceph/ceph/pull/8133>`_, Boris Ranto, Ken Dreyer)
-* pybind: add ceph_volume_client interface for Manila and similar frameworks (`pr#6205 <http://github.com/ceph/ceph/pull/6205>`_, John Spray)
-* pybind: add flock to libcephfs python bindings (`pr#7902 <http://github.com/ceph/ceph/pull/7902>`_, John Spray)
-* pybind/cephfs: add symlink and its unit test (`pr#6323 <http://github.com/ceph/ceph/pull/6323>`_, Shang Ding)
-* pybind: decode empty string in conf_parse_argv() correctly (`pr#6711 <http://github.com/ceph/ceph/pull/6711>`_, Josh Durgin)
-* pybind: Ensure correct python flags are passed (`pr#7663 <http://github.com/ceph/ceph/pull/7663>`_, James Page)
-* pybind: fix build failure, remove extraneous semicolon in method (`issue#14371 <http://tracker.ceph.com/issues/14371>`_, `pr#7235 <http://github.com/ceph/ceph/pull/7235>`_, Abhishek Lekshmanan)
-* pybind: flag an RBD image as closed regardless of result code (`pr#8005 <http://github.com/ceph/ceph/pull/8005>`_, Jason Dillaman)
-* pybind: Implementation of rados_ioctx_snapshot_rollback (`pr#6878 <http://github.com/ceph/ceph/pull/6878>`_, Florent Manens)
-* pybind/Makefile.am: Prevent race creating CYTHON_BUILD_DIR (`issue#15276 <http://tracker.ceph.com/issues/15276>`_, `pr#8356 <http://github.com/ceph/ceph/pull/8356>`_, Dan Mick)
-* pybind: move cephfs to Cython (`pr#7745 <http://github.com/ceph/ceph/pull/7745>`_, John Spray, Mehdi Abaakouk)
-* pybind: port the rbd bindings to Cython (`issue#13115 <http://tracker.ceph.com/issues/13115>`_, `pr#6768 <http://github.com/ceph/ceph/pull/6768>`_, Hector Martin)
-* pybind/rados: fix object lifetime issues and other bugs in aio (`pr#7778 <http://github.com/ceph/ceph/pull/7778>`_, Hector Martin)
-* pybind/rados: fix omap method return values (`pr#8603 <http://github.com/ceph/ceph/pull/8603>`_, Roland Mechler)
-* pybind/rados: python3 fix (`pr#8331 <http://github.com/ceph/ceph/pull/8331>`_, Mehdi Abaakouk)
-* pybind/rados: use __dealloc__ since __del__ is ignored by cython (`pr#7692 <http://github.com/ceph/ceph/pull/7692>`_, Mehdi Abaakouk)
-* pybind: remove next() on iterators (`pr#7706 <http://github.com/ceph/ceph/pull/7706>`_, Mehdi Abaakouk)
-* pybind: replace __del__ with __dealloc__ for rbd (`pr#7708 <http://github.com/ceph/ceph/pull/7708>`_, Josh Durgin)
-* pybind: support ioctx:exec (`pr#6795 <http://github.com/ceph/ceph/pull/6795>`_, Noah Watkins)
-* pybind/test_rbd: fix test_create_defaults (`issue#14279 <http://tracker.ceph.com/issues/14279>`_, `pr#7155 <http://github.com/ceph/ceph/pull/7155>`_, Josh Durgin)
-* pybind: use correct subdir for rados install-exec rule (`pr#7684 <http://github.com/ceph/ceph/pull/7684>`_, Josh Durgin)
-* python binding of librados with cython (`pr#7621 <http://github.com/ceph/ceph/pull/7621>`_, Mehdi Abaakouk)
-* python: use pip instead of python setup.py (`pr#7605 <http://github.com/ceph/ceph/pull/7605>`_, Loic Dachary)
-* qa: add workunit to run ceph_test_rbd_mirror (`pr#8221 <http://github.com/ceph/ceph/pull/8221>`_, Josh Durgin)
-* qa: disable rbd/qemu-iotests test case 055 on RHEL/CentOSlibrbd: journal replay should honor inter-event dependencies (`issue#14385 <http://tracker.ceph.com/issues/14385>`_, `pr#7272 <http://github.com/ceph/ceph/pull/7272>`_, Jason Dillaman)
-* qa: erasure-code benchmark plugin selection (`pr#6685 <http://github.com/ceph/ceph/pull/6685>`_, Loic Dachary)
-* qa/krbd: Expunge generic/247 (`pr#6831 <http://github.com/ceph/ceph/pull/6831>`_, Douglas Fuller)
-* qa: update rest test cephfs calls (`issue#15309 <http://tracker.ceph.com/issues/15309>`_, `pr#8372 <http://github.com/ceph/ceph/pull/8372>`_, John Spray)
-* qa: update rest test cephfs calls (part 2) (`issue#15309 <http://tracker.ceph.com/issues/15309>`_, `pr#8393 <http://github.com/ceph/ceph/pull/8393>`_, John Spray)
-* qa/workunits/cephtool/test.sh: false positive fail on /tmp/obj1. (`pr#6837 <http://github.com/ceph/ceph/pull/6837>`_, Robin H. Johnson)
-* qa/workunits/cephtool/test.sh: no ./ (`pr#6748 <http://github.com/ceph/ceph/pull/6748>`_, Sage Weil)
-* qa/workunits/cephtool/test.sh: wait longer in ceph_watch_start() (`issue#14910 <http://tracker.ceph.com/issues/14910>`_, `pr#7861 <http://github.com/ceph/ceph/pull/7861>`_, Kefu Chai)
-* qa/workunits: merge_diff shouldn't attempt to use striping (`issue#14165 <http://tracker.ceph.com/issues/14165>`_, `pr#7041 <http://github.com/ceph/ceph/pull/7041>`_, Jason Dillaman)
-* qa/workunits/rados: Test exit values on test.sh, fix tier.cc (`issue#15165 <http://tracker.ceph.com/issues/15165>`_, `pr#8266 <http://github.com/ceph/ceph/pull/8266>`_, Samuel Just)
-* qa/workunits/rados/test.sh: capture stderr too (`pr#8004 <http://github.com/ceph/ceph/pull/8004>`_, Sage Weil)
-* qa/workunits/rados/test.sh: test tmap_migrate (`pr#8114 <http://github.com/ceph/ceph/pull/8114>`_, Sage Weil)
-* qa/workunits/rbd: do not use object map during read flag testing (`pr#8104 <http://github.com/ceph/ceph/pull/8104>`_, Jason Dillaman)
-* qa/workunits/rbd: new online maintenance op tests (`pr#8216 <http://github.com/ceph/ceph/pull/8216>`_, Jason Dillaman)
-* qa/workunits/rbd: rbd-nbd test should use sudo for map/unmap ops (`issue#14221 <http://tracker.ceph.com/issues/14221>`_, `pr#7101 <http://github.com/ceph/ceph/pull/7101>`_, Jason Dillaman)
-* qa/workunits/rbd: use POSIX function definition (`issue#15104 <http://tracker.ceph.com/issues/15104>`_, `pr#8068 <http://github.com/ceph/ceph/pull/8068>`_, Nathan Cutler)
-* qa/workunits/rest/test.py: add confirmation to 'mds setmap' (`issue#14606 <http://tracker.ceph.com/issues/14606>`_, `pr#7982 <http://github.com/ceph/ceph/pull/7982>`_, Sage Weil)
-* qa/workunits/rest/test.py: don't use newfs (`pr#8191 <http://github.com/ceph/ceph/pull/8191>`_, Sage Weil)
-* qa/workunits/snaps: move snap tests into fs sub-directory (`pr#6496 <http://github.com/ceph/ceph/pull/6496>`_, Yan, Zheng)
-* rados: add ceph:: namespace to bufferlist type (`pr#8059 <http://github.com/ceph/ceph/pull/8059>`_, Noah Watkins)
-* rados: bench: fix off-by-one to avoid writing past object_size (`pr#6677 <http://github.com/ceph/ceph/pull/6677>`_, Tao Chang)
-* rados: fix bug for write bench (`pr#7851 <http://github.com/ceph/ceph/pull/7851>`_, James Liu)
-* radosgw-admin: allow 'period pull --url' without full multisite config (`pr#8567 <http://github.com/ceph/ceph/pull/8567>`_, Casey Bodley)
-* radosgw-admin: allow (`pr#8529 <http://github.com/ceph/ceph/pull/8529>`_, Orit Wasserman)
-* radosgw-admin: Checking the legality of the parameters (`issue#13018 <http://tracker.ceph.com/issues/13018>`_, `pr#5879 <http://github.com/ceph/ceph/pull/5879>`_, Qiankun Zheng)
-* radosgw-admin: Create --secret-key alias for --secret (`issue#5821 <http://tracker.ceph.com/issues/5821>`_, `pr#5335 <http://github.com/ceph/ceph/pull/5335>`_, Yuan Zhou)
-* radosgw-admin: fix for 'realm pull' (`pr#8404 <http://github.com/ceph/ceph/pull/8404>`_, Casey Bodley)
-* radosgw-admin: metadata list user should return an empty list when user pool is empty (`issue#13596 <http://tracker.ceph.com/issues/13596>`_, `pr#6465 <http://github.com/ceph/ceph/pull/6465>`_, Orit Wasserman)
-* radosgw-admin: 'period commit' supplies user-readable error messages (`pr#8264 <http://github.com/ceph/ceph/pull/8264>`_, Casey Bodley)
-* rados: implement rm --force option to force remove when full (`pr#6202 <http://github.com/ceph/ceph/pull/6202>`_, Xiaowei Chen)
-* rados: new options for write benchmark (`pr#6340 <http://github.com/ceph/ceph/pull/6340>`_, Joaquim Rocha)
-* rbd: accept --user, refuse -i command-line optionals (`pr#6590 <http://github.com/ceph/ceph/pull/6590>`_, Ilya Dryomov)
-* rbd: additional validation for striping parameters (`pr#6914 <http://github.com/ceph/ceph/pull/6914>`_, Na Xie)
-* rbd: add missing command aliases to refactored CLI (`issue#13806 <http://tracker.ceph.com/issues/13806>`_, `pr#6606 <http://github.com/ceph/ceph/pull/6606>`_, Jason Dillaman)
-* rbd: add --object-size option, deprecate --order (`issue#12112 <http://tracker.ceph.com/issues/12112>`_, `pr#6830 <http://github.com/ceph/ceph/pull/6830>`_, Vikhyat Umrao)
-* rbd: add pool name to disambiguate rbd admin socket commands (`pr#6904 <http://github.com/ceph/ceph/pull/6904>`_, wuxiangwei)
-* rbd: add RBD pool mirroring configuration API + CLI (`pr#6129 <http://github.com/ceph/ceph/pull/6129>`_, Jason Dillaman)
-* rbd: add support for mirror image promotion/demotion/resync (`pr#8138 <http://github.com/ceph/ceph/pull/8138>`_, Jason Dillaman)
-* rbd: allow librados to prune the command-line for config overrides (`issue#15250 <http://tracker.ceph.com/issues/15250>`_, `pr#8282 <http://github.com/ceph/ceph/pull/8282>`_, Jason Dillaman)
-* rbd: clone operation should default to image format 2 (`pr#8119 <http://github.com/ceph/ceph/pull/8119>`_, Jason Dillaman)
-* rbd: correct an output string for merge-diff (`pr#7046 <http://github.com/ceph/ceph/pull/7046>`_, Kongming Wu)
-* rbd: deprecate image format 1 (`pr#7841 <http://github.com/ceph/ceph/pull/7841>`_, Jason Dillaman)
-* rbd: dynamically generated bash completion (`issue#13494 <http://tracker.ceph.com/issues/13494>`_, `pr#6316 <http://github.com/ceph/ceph/pull/6316>`_, Jason Dillaman)
-* rbd: fix build with "--without-rbd" (`issue#14058 <http://tracker.ceph.com/issues/14058>`_, `pr#6899 <http://github.com/ceph/ceph/pull/6899>`_, Piotr Dałek)
-* rbd: fix clone isssue (`issue#13553 <http://tracker.ceph.com/issues/13553>`_, `pr#6334 <http://github.com/ceph/ceph/pull/6334>`_, xinxin shu)
-* rbd: fixes for refactored CLI and related tests (`pr#6738 <http://github.com/ceph/ceph/pull/6738>`_, Ilya Dryomov)
-* rbd: fix init-rbdmap CMDPARAMS (`issue#13214 <http://tracker.ceph.com/issues/13214>`_, `pr#6109 <http://github.com/ceph/ceph/pull/6109>`_, Sage Weil)
-* rbd: fix static initialization ordering issues (`pr#6978 <http://github.com/ceph/ceph/pull/6978>`_, Mykola Golub)
-* rbd-fuse: image name can not include snap name (`pr#7044 <http://github.com/ceph/ceph/pull/7044>`_, Yongqiang He)
-* rbd-fuse: implement mv operation (`pr#6938 <http://github.com/ceph/ceph/pull/6938>`_, wuxiangwei)
-* rbd: journal: configuration via conf, cli, api and some fixes (`pr#6665 <http://github.com/ceph/ceph/pull/6665>`_, Mykola Golub)
-* rbd: journal reset should disable/re-enable journaling feature (`issue#15097 <http://tracker.ceph.com/issues/15097>`_, `pr#8490 <http://github.com/ceph/ceph/pull/8490>`_, Jason Dillaman)
-* rbd: loosen image spec validation requirements (`pr#8606 <http://github.com/ceph/ceph/pull/8606>`_, Jason Dillaman)
-* rbd: make config changes actually apply (`pr#6520 <http://github.com/ceph/ceph/pull/6520>`_, Mykola Golub)
-* rbdmap: add manpage (`issue#15212 <http://tracker.ceph.com/issues/15212>`_, `pr#8224 <http://github.com/ceph/ceph/pull/8224>`_, Nathan Cutler)
-* rbdmap: systemd support (`issue#13374 <http://tracker.ceph.com/issues/13374>`_, `pr#6479 <http://github.com/ceph/ceph/pull/6479>`_, Boris Ranto)
-* rbd: merge_diff test should use new --object-size parameter instead of --order (`issue#14106 <http://tracker.ceph.com/issues/14106>`_, `pr#6972 <http://github.com/ceph/ceph/pull/6972>`_, Na Xie, Jason Dillaman)
-* rbd-mirror: asok commands to get status and flush on Mirror and Replayer level (`pr#8235 <http://github.com/ceph/ceph/pull/8235>`_, Mykola Golub)
-* rbd-mirror: enabling/disabling pool mirroring should update the mirroring directory (`issue#15217 <http://tracker.ceph.com/issues/15217>`_, `pr#8261 <http://github.com/ceph/ceph/pull/8261>`_, Ricardo Dias)
-* rbd-mirror: fix image replay test failures (`pr#8158 <http://github.com/ceph/ceph/pull/8158>`_, Jason Dillaman)
-* rbd-mirror: fix long termination due to 30sec wait in main loop (`pr#8185 <http://github.com/ceph/ceph/pull/8185>`_, Mykola Golub)
-* rbd-mirror: fix missing increment for iterators (`pr#8352 <http://github.com/ceph/ceph/pull/8352>`_, runsisi)
-* rbd-mirror: ImageReplayer async start/stop (`pr#7944 <http://github.com/ceph/ceph/pull/7944>`_, Mykola Golub)
-* rbd-mirror: ImageReplayer improvements (`pr#7759 <http://github.com/ceph/ceph/pull/7759>`_, Mykola Golub)
-* rbd-mirror: implement ImageReplayer (`pr#7614 <http://github.com/ceph/ceph/pull/7614>`_, Mykola Golub)
-* rbd-mirror: initial failover / failback support (`pr#8287 <http://github.com/ceph/ceph/pull/8287>`_, Jason Dillaman)
-* rbd-mirror: integrate with image sync state machine (`pr#8079 <http://github.com/ceph/ceph/pull/8079>`_, Jason Dillaman)
-* rbd-mirror: make remote context respect env and argv config params (`pr#8182 <http://github.com/ceph/ceph/pull/8182>`_, Mykola Golub)
-* rbd-mirror: minor fix-ups for initial skeleton implementation (`pr#7958 <http://github.com/ceph/ceph/pull/7958>`_, Mykola Golub)
-* rbd-mirror: prevent enabling/disabling an image's mirroring when not in image mode (`issue#15267 <http://tracker.ceph.com/issues/15267>`_, `pr#8332 <http://github.com/ceph/ceph/pull/8332>`_, Ricardo Dias)
-* rbd-mirror: remote to local cluster image sync (`pr#7979 <http://github.com/ceph/ceph/pull/7979>`_, Jason Dillaman)
-* rbd-mirror: switch fsid over to mirror uuid (`issue#15238 <http://tracker.ceph.com/issues/15238>`_, `pr#8280 <http://github.com/ceph/ceph/pull/8280>`_, Ricardo Dias)
-* rbd-mirror: use pool/image names in asok commands (`pr#8159 <http://github.com/ceph/ceph/pull/8159>`_, Mykola Golub)
-* rbd-mirror: use the mirroring directory to detect candidate images (`issue#15142 <http://tracker.ceph.com/issues/15142>`_, `pr#8162 <http://github.com/ceph/ceph/pull/8162>`_, Ricardo Dias)
-* rbd-mirror: workaround for intermingled lockdep singletons (`pr#8476 <http://github.com/ceph/ceph/pull/8476>`_, Jason Dillaman)
-* rbd: must specify both of stripe-unit and stripe-count when specifying stripingv2 feature (`pr#7026 <http://github.com/ceph/ceph/pull/7026>`_, Donghai Xu)
-* rbd-nbd: add copyright (`pr#7166 <http://github.com/ceph/ceph/pull/7166>`_, Li Wang)
-* rbd-nbd: fix up return code handling (`pr#7215 <http://github.com/ceph/ceph/pull/7215>`_, Mykola Golub)
-* rbd-nbd: network block device (NBD) support for RBD (`pr#6657 <http://github.com/ceph/ceph/pull/6657>`_, Yunchuan Wen, Li Wang)
-* rbd-nbd: small improvements in logging and forking (`pr#7127 <http://github.com/ceph/ceph/pull/7127>`_, Mykola Golub)
-* rbd: output formatter may not be closed upon error (`issue#13711 <http://tracker.ceph.com/issues/13711>`_, `pr#6706 <http://github.com/ceph/ceph/pull/6706>`_, xie xingguo)
-* rbd: rbdmap improvements (`pr#6445 <http://github.com/ceph/ceph/pull/6445>`_, Boris Ranto)
-* rbd: rbd order will be place in 22, when set to 0 in the config_opt (`issue#14139 <http://tracker.ceph.com/issues/14139>`_, `issue#14047 <http://tracker.ceph.com/issues/14047>`_, `pr#6886 <http://github.com/ceph/ceph/pull/6886>`_, huanwen ren)
-* rbd: refactor cli command handling (`pr#5987 <http://github.com/ceph/ceph/pull/5987>`_, Jason Dillaman)
-* rbd/run_cli_tests.sh: Reflect test failures (`issue#14825 <http://tracker.ceph.com/issues/14825>`_, `pr#7781 <http://github.com/ceph/ceph/pull/7781>`_, Zack Cerza)
-* rbd: stripe unit/count set incorrectly from config (`pr#6593 <http://github.com/ceph/ceph/pull/6593>`_, Mykola Golub)
-* rbd: striping parameters should support 64bit integers (`pr#6942 <http://github.com/ceph/ceph/pull/6942>`_, Na Xie)
-* rbd: support for enabling/disabling mirroring on specific images (`issue#13296 <http://tracker.ceph.com/issues/13296>`_, `pr#8056 <http://github.com/ceph/ceph/pull/8056>`_, Ricardo Dias)
-* rbd: support negative boolean command-line optionals (`issue#13784 <http://tracker.ceph.com/issues/13784>`_, `pr#6607 <http://github.com/ceph/ceph/pull/6607>`_, Jason Dillaman)
-* rbd: unbreak rbd map + cephx_sign_messages option (`pr#6583 <http://github.com/ceph/ceph/pull/6583>`_, Ilya Dryomov)
-* rbd: update default image features (`pr#7846 <http://github.com/ceph/ceph/pull/7846>`_, Jason Dillaman)
-* rbd: use default order from configuration when not specified (`pr#6965 <http://github.com/ceph/ceph/pull/6965>`_, Yunchuan Wen)
-* release-notes: draft v0.94.4 release notes (`pr#5907 <http://github.com/ceph/ceph/pull/5907>`_, Loic Dachary)
-* release-notes: draft v0.94.4 release notes (`pr#6195 <http://github.com/ceph/ceph/pull/6195>`_, Loic Dachary)
-* release-notes: draft v0.94.4 release notes (`pr#6238 <http://github.com/ceph/ceph/pull/6238>`_, Loic Dachary)
-* release-notes: draft v0.94.6 release notes (`issue#13356 <http://tracker.ceph.com/issues/13356>`_, `pr#7689 <http://github.com/ceph/ceph/pull/7689>`_, Abhishek Varshney, Loic Dachary)
-* release-notes: draft v10.0.3 release notes (`pr#7592 <http://github.com/ceph/ceph/pull/7592>`_, Loic Dachary)
-* release-notes: draft v10.0.4 release notes (`pr#7966 <http://github.com/ceph/ceph/pull/7966>`_, Loic Dachary)
-* release-notes: draft v9.2.1 release notes (`issue#13750 <http://tracker.ceph.com/issues/13750>`_, `pr#7694 <http://github.com/ceph/ceph/pull/7694>`_, Abhishek Varshney)
-* release-notes: v10.1.2 release notes (`pr#8594 <http://github.com/ceph/ceph/pull/8594>`_, Loic Dachary)
-* releases: what is merged where and when ? (`pr#8358 <http://github.com/ceph/ceph/pull/8358>`_, Loic Dachary)
-* rgw: accept data only at the first time in response to a request (`pr#8084 <http://github.com/ceph/ceph/pull/8084>`_, sunspot)
-* rgw: add a few more help options in admin interface (`pr#8410 <http://github.com/ceph/ceph/pull/8410>`_, Abhishek Lekshmanan)
-* rgw: add a method to purge all associate keys when removing a subuser (`issue#12890 <http://tracker.ceph.com/issues/12890>`_, `pr#6002 <http://github.com/ceph/ceph/pull/6002>`_, Sangdi Xu)
-* rgw: add a missing cap type (`pr#6774 <http://github.com/ceph/ceph/pull/6774>`_, Yehuda Sadeh)
-* rgw: add an inspection to the field of type when assigning user caps (`pr#6051 <http://github.com/ceph/ceph/pull/6051>`_, Kongming Wu)
-* rgw: Add a test for multi-tenancy (`pr#8592 <http://github.com/ceph/ceph/pull/8592>`_, Pete Zaitcev)
-* rgw: add bucket request payment feature usage statistics integration (`issue#13834 <http://tracker.ceph.com/issues/13834>`_, `pr#6656 <http://github.com/ceph/ceph/pull/6656>`_, Javier M. Mellid)
-* rgw: add compat header for TEMP_FAILURE_RETRY (`pr#6294 <http://github.com/ceph/ceph/pull/6294>`_, John Coyle)
-* rgw: add default quota config (`pr#6400 <http://github.com/ceph/ceph/pull/6400>`_, Daniel Gryniewicz)
-* rgw: add LifeCycle feature (`pr#6331 <http://github.com/ceph/ceph/pull/6331>`_, Ji Chen)
-* rgw: add missing error code for admin op API (`pr#7037 <http://github.com/ceph/ceph/pull/7037>`_, Dunrong Huang)
-* rgw: adds the radosgw-admin sync status command that gives a human readable status of the sync process at a specific zone (`pr#8030 <http://github.com/ceph/ceph/pull/8030>`_, Yehuda Sadeh)
-* rgw: add support for caching of Keystone admin token. (`pr#7630 <http://github.com/ceph/ceph/pull/7630>`_, Radoslaw Zarzynski)
-* rgw: add support for "end_marker" parameter for GET on Swift account. (`issue#10682 <http://tracker.ceph.com/issues/10682>`_, `pr#4216 <http://github.com/ceph/ceph/pull/4216>`_, Radoslaw Zarzynski)
-* rgw: add support for getting Swift's DLO without manifest handling (`pr#6206 <http://github.com/ceph/ceph/pull/6206>`_, Radoslaw Zarzynski)
-* rgw: add support for metadata upload during PUT on Swift container. (`pr#8002 <http://github.com/ceph/ceph/pull/8002>`_, Radoslaw Zarzynski)
-* rgw: add support for Static Large Objects of Swift API (`issue#12886 <http://tracker.ceph.com/issues/12886>`_, `issue#13452 <http://tracker.ceph.com/issues/13452>`_, `pr#6643 <http://github.com/ceph/ceph/pull/6643>`_, Yehuda Sadeh, Radoslaw Zarzynski)
-* rgw: add support for system requests over Swift API (`pr#7666 <http://github.com/ceph/ceph/pull/7666>`_, Radoslaw Zarzynski)
-* rgw: add zone delete to rgw-admin help (`pr#8184 <http://github.com/ceph/ceph/pull/8184>`_, Abhishek Lekshmanan)
-* rgw: adjust error code when bucket does not exist in copy operation (`issue#14975 <http://tracker.ceph.com/issues/14975>`_, `pr#7916 <http://github.com/ceph/ceph/pull/7916>`_, Yehuda Sadeh)
-* rgw: adjust the request_uri to support absoluteURI of http request (`issue#12917 <http://tracker.ceph.com/issues/12917>`_, `pr#7675 <http://github.com/ceph/ceph/pull/7675>`_, Wenjun Huang)
-* rgw: admin api for retrieving usage info (Ji Chen) (`pr#8031 <http://github.com/ceph/ceph/pull/8031>`_, Yehuda Sadeh, Ji Chen)
-* rgw_admin: improve period update errors (`issue#15251 <http://tracker.ceph.com/issues/15251>`_, `pr#8564 <http://github.com/ceph/ceph/pull/8564>`_, Abhishek Lekshmanan)
-* rgw_admin: orphans finish segfaults (`pr#6652 <http://github.com/ceph/ceph/pull/6652>`_, Igor Fedotov)
-* rgw-admin: remove unused iterator and fix error message (`pr#8507 <http://github.com/ceph/ceph/pull/8507>`_, Karol Mroz)
-* rgw_admin: remove unused parent_period arg (`pr#8411 <http://github.com/ceph/ceph/pull/8411>`_, Abhishek Lekshmanan)
-* rgw: Allow an implicit tenant in case of Keystone (`pr#8139 <http://github.com/ceph/ceph/pull/8139>`_, Pete Zaitcev)
-* rgw: allow authentication keystone with self signed certs (`issue#14853 <http://tracker.ceph.com/issues/14853>`_, `issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7777 <http://github.com/ceph/ceph/pull/7777>`_, Abhishek Lekshmanan)
-* rgw: approximate AmazonS3 HostId error field. (`pr#7444 <http://github.com/ceph/ceph/pull/7444>`_, Robin H. Johnson)
-* rgw: aws4: handle UNSIGNED-PAYLOAD under header auth (`issue#15499 <http://tracker.ceph.com/issues/15499>`_, `pr#8601 <http://github.com/ceph/ceph/pull/8601>`_, Javier M. Mellid)
-* rgw: aws4 subdomain calling bugfix (`issue#15369 <http://tracker.ceph.com/issues/15369>`_, `pr#8472 <http://github.com/ceph/ceph/pull/8472>`_, Javier M. Mellid)
-* rgw: bucket link now set the bucket.instance acl (bug fix) (`issue#11076 <http://tracker.ceph.com/issues/11076>`_, `pr#8037 <http://github.com/ceph/ceph/pull/8037>`_, Zengran Zhang)
-* rgw: bucket request payment support (`issue#13427 <http://tracker.ceph.com/issues/13427>`_, `pr#6214 <http://github.com/ceph/ceph/pull/6214>`_, Javier M. Mellid)
-* rgw: Bug fix for mtime anomalies in RadosGW and other places (`pr#7328 <http://github.com/ceph/ceph/pull/7328>`_, Adam C. Emerson, Casey Bodley)
-* rgw: build-related fixes (`pr#8076 <http://github.com/ceph/ceph/pull/8076>`_, Yehuda Sadeh, Matt Benjamin)
-* rgw: calculate payload hash in RGWPutObj_ObjStore only when necessary. (`pr#7869 <http://github.com/ceph/ceph/pull/7869>`_, Radoslaw Zarzynski)
-* rgw: call rgw_log_usage_finalize() on reconfiguration (`pr#8585 <http://github.com/ceph/ceph/pull/8585>`_, Casey Bodley)
-* rgw: Check return code in RGWFileHandle::write (`pr#7875 <http://github.com/ceph/ceph/pull/7875>`_, Brad Hubbard)
-* rgw: check the return value when call fe->run() (`issue#14585 <http://tracker.ceph.com/issues/14585>`_, `pr#7457 <http://github.com/ceph/ceph/pull/7457>`_, wei qiaomiao)
-* rgw: clarify the error message when trying to create an existed user (`pr#5938 <http://github.com/ceph/ceph/pull/5938>`_, Zeqiang Zhuang)
-* rgw: cleanups to comments and messages (`pr#7633 <http://github.com/ceph/ceph/pull/7633>`_, Pete Zaitcev)
-* rgw: content length (`issue#13582 <http://tracker.ceph.com/issues/13582>`_, `pr#6975 <http://github.com/ceph/ceph/pull/6975>`_, Yehuda Sadeh)
-* rgw: convert plain object to versioned (with null version) when removing (`issue#15243 <http://tracker.ceph.com/issues/15243>`_, `pr#8268 <http://github.com/ceph/ceph/pull/8268>`_, Yehuda Sadeh)
-* rgw: delete default zone (`pr#7005 <http://github.com/ceph/ceph/pull/7005>`_, YankunLi)
-* rgw: do not abort radowgw server when using admin op API with bad parameters (`issue#14190 <http://tracker.ceph.com/issues/14190>`_, `issue#14191 <http://tracker.ceph.com/issues/14191>`_, `pr#7063 <http://github.com/ceph/ceph/pull/7063>`_, Dunrong Huang)
-* rgw: Do not send a Content-Type on a '304 Not Modified' response (`issue#15119 <http://tracker.ceph.com/issues/15119>`_, `pr#8253 <http://github.com/ceph/ceph/pull/8253>`_, Wido den Hollander)
-* rgw: don't use s->bucket for metadata api path entry (`issue#14549 <http://tracker.ceph.com/issues/14549>`_, `pr#7408 <http://github.com/ceph/ceph/pull/7408>`_, Yehuda Sadeh)
-* rgw: Drop a debugging message (`pr#7280 <http://github.com/ceph/ceph/pull/7280>`_, Pete Zaitcev)
-* rgw: drop permissions of rgw/civetweb after startup (`issue#13600 <http://tracker.ceph.com/issues/13600>`_, `pr#8019 <http://github.com/ceph/ceph/pull/8019>`_, Karol Mroz)
-* rgw: Drop unused usage_exit from rgw_admin.cc (`pr#7632 <http://github.com/ceph/ceph/pull/7632>`_, Pete Zaitcev)
-* rgw: Ensure xmlns is consistent on S3 responses. (`pr#8526 <http://github.com/ceph/ceph/pull/8526>`_, Robin H. Johnson)
-* rgw: extend rgw_extended_http_attrs to affect Swift accounts and containers as well (`pr#5969 <http://github.com/ceph/ceph/pull/5969>`_, Radoslaw Zarzynski)
-* rgw: fcgi should include acconfig (`pr#7760 <http://github.com/ceph/ceph/pull/7760>`_, Abhishek Lekshmanan)
-* rgw_file: set owner uid, gid, and Unix mode on new objects (`pr#8321 <http://github.com/ceph/ceph/pull/8321>`_, Matt Benjamin)
-* rgw: file unix (`pr#8563 <http://github.com/ceph/ceph/pull/8563>`_, Matt Benjamin)
-* rgw: fix a glaring syntax error (`pr#6888 <http://github.com/ceph/ceph/pull/6888>`_, Pavan Rallabhandi)
-* rgw: fix a typo in error message (`pr#8434 <http://github.com/ceph/ceph/pull/8434>`_, Abhishek Lekshmanan)
-* rgw: fix a typo in init-radosgw (`pr#6817 <http://github.com/ceph/ceph/pull/6817>`_, Zhi Zhang)
-* rgw: fix binfo_cache, RGWShardCollectCR (`pr#8619 <http://github.com/ceph/ceph/pull/8619>`_, Yehuda Sadeh)
-* rgw: fix compilation warning (`pr#7160 <http://github.com/ceph/ceph/pull/7160>`_, Yehuda Sadeh)
-* rgw: fix compiling error (`pr#8394 <http://github.com/ceph/ceph/pull/8394>`_, xie xingguo)
-* rgw: fixes for per-period metadata logs (`pr#7827 <http://github.com/ceph/ceph/pull/7827>`_, Casey Bodley)
-* rgw: fix lockdep false positive (`pr#8284 <http://github.com/ceph/ceph/pull/8284>`_, Yehuda Sadeh)
-* rgw: fix mdlog (`pr#8183 <http://github.com/ceph/ceph/pull/8183>`_, Orit Wasserman)
-* rgw: fix objects can not be displayed which object name does not cont… (`issue#12963 <http://tracker.ceph.com/issues/12963>`_, `pr#5738 <http://github.com/ceph/ceph/pull/5738>`_, Weijun Duan)
-* rgw: fix openssl linkage (`pr#6513 <http://github.com/ceph/ceph/pull/6513>`_, Yehuda Sadeh)
-* rgw: fix partial read issue in rgw_admin and rgw_tools (`pr#6761 <http://github.com/ceph/ceph/pull/6761>`_, Jiaying Ren)
-* rgw: fix problem deleting objects begining with double underscores (`issue#15318 <http://tracker.ceph.com/issues/15318>`_, `pr#8488 <http://github.com/ceph/ceph/pull/8488>`_, Orit Wasserman)
-* rgw: fix reload on non Debian systems. (`pr#6482 <http://github.com/ceph/ceph/pull/6482>`_, Hervé Rousseau)
-* rgw: fix response of delete expired objects (`issue#13469 <http://tracker.ceph.com/issues/13469>`_, `pr#6228 <http://github.com/ceph/ceph/pull/6228>`_, Yuan Zhou)
-* rgw: Fix subuser harder with tenants (`pr#7618 <http://github.com/ceph/ceph/pull/7618>`_, Pete Zaitcev)
-* rgw: fix swift API returning incorrect account metadata (`issue#13140 <http://tracker.ceph.com/issues/13140>`_, `pr#6047 <http://github.com/ceph/ceph/pull/6047>`_, Sangdi Xu)
-* rgw: fix the build failure (`pr#6927 <http://github.com/ceph/ceph/pull/6927>`_, Kefu Chai)
-* rgw: fix typo in RGWHTTPClient::process error message (`pr#6424 <http://github.com/ceph/ceph/pull/6424>`_, Brad Hubbard)
-* rgw: fix unsafe c_str() usage (`issue#15463 <http://tracker.ceph.com/issues/15463>`_, `pr#8559 <http://github.com/ceph/ceph/pull/8559>`_, Sage Weil)
-* rgw: fix wrong check for parse() return (`pr#6797 <http://github.com/ceph/ceph/pull/6797>`_, Dunrong Huang)
-* rgw: fix wrong etag calculation during POST on S3 bucket. (`issue#11241 <http://tracker.ceph.com/issues/11241>`_, `pr#6030 <http://github.com/ceph/ceph/pull/6030>`_, Radoslaw Zarzynski)
-* rgw: fix wrong handling of limit=0 during listing of Swift account. (`issue#14903 <http://tracker.ceph.com/issues/14903>`_, `pr#7821 <http://github.com/ceph/ceph/pull/7821>`_, Radoslaw Zarzynski)
-* rgw: handle no current_period in is_syncing_bucket_meta (`pr#8597 <http://github.com/ceph/ceph/pull/8597>`_, Orit Wasserman)
-* rgw: highres time stamps (`pr#8108 <http://github.com/ceph/ceph/pull/8108>`_, Yehuda Sadeh, Adam C. Emerson, Matt Benjamin)
-* rgw: improve error handling in S3/Keystone integration (`pr#7597 <http://github.com/ceph/ceph/pull/7597>`_, Radoslaw Zarzynski)
-* rgw: increase verbosity level on RGWObjManifest line (`pr#7285 <http://github.com/ceph/ceph/pull/7285>`_, magicrobotmonkey)
-* rgw: indexless (`pr#7786 <http://github.com/ceph/ceph/pull/7786>`_, Yehuda Sadeh)
-* rgw: jewel nfs fixes (`pr#8460 <http://github.com/ceph/ceph/pull/8460>`_, Matt Benjamin)
-* rgw: keystone v3 (`pr#7719 <http://github.com/ceph/ceph/pull/7719>`_, Mark Barnes, Radoslaw Zarzynski)
-* rgw: ldap fixes (`pr#8168 <http://github.com/ceph/ceph/pull/8168>`_, Matt Benjamin)
-* rgw_ldap: make ldap.h inclusion conditional (`pr#8500 <http://github.com/ceph/ceph/pull/8500>`_, Matt Benjamin)
-* rgw: ldap (Matt Benjamin) (`pr#7985 <http://github.com/ceph/ceph/pull/7985>`_, Matt Benjamin)
-* rgw leaks fixes (`pr#8636 <http://github.com/ceph/ceph/pull/8636>`_, Yehuda Sadeh)
-* rgw: let radosgw-admin bucket stats return a standard josn (`pr#7029 <http://github.com/ceph/ceph/pull/7029>`_, Ruifeng Yang)
-* rgw: link against system openssl (instead of dlopen at runtime) (`pr#6419 <http://github.com/ceph/ceph/pull/6419>`_, Sage Weil)
-* rgw: link civetweb with openssl (Sage, Marcus Watts) (`pr#7825 <http://github.com/ceph/ceph/pull/7825>`_, Marcus Watts, Sage Weil)
-* rgw: link payer info to usage logging (`pr#7918 <http://github.com/ceph/ceph/pull/7918>`_, Yehuda Sadeh, Javier M. Mellid)
-* rgw: mdlog trim add usage prompt (`pr#6059 <http://github.com/ceph/ceph/pull/6059>`_, Weijun Duan)
-* rgw: modify command stucking when operating radosgw-admin metadata list user (`pr#7032 <http://github.com/ceph/ceph/pull/7032>`_, Peiyang Liu)
-* rgw: modify documents and help infos' descriptions to the usage of option date when executing command "log show" (`pr#6080 <http://github.com/ceph/ceph/pull/6080>`_, Kongming Wu)
-* rgw: modify the conditional statement in parse_metadata_key method. (`pr#5875 <http://github.com/ceph/ceph/pull/5875>`_, Zengran Zhang)
-* rgw: move signal.h dependency from rgw_front.h (`pr#7678 <http://github.com/ceph/ceph/pull/7678>`_, Matt Benjamin)
-* rgw: Multipart ListPartsResult ETag quotes (`issue#15334 <http://tracker.ceph.com/issues/15334>`_, `pr#8387 <http://github.com/ceph/ceph/pull/8387>`_, Robin H. Johnson)
-* rgw: multiple improvements regarding etag calculation for SLO/DLO of Swift API. (`pr#7764 <http://github.com/ceph/ceph/pull/7764>`_, Radoslaw Zarzynski)
-* rgw: multiple Swift API compliance improvements for TempURL (Radoslaw Zarzynsk) (`issue#14806 <http://tracker.ceph.com/issues/14806>`_, `issue#11163 <http://tracker.ceph.com/issues/11163>`_, `pr#7891 <http://github.com/ceph/ceph/pull/7891>`_, Radoslaw Zarzynski)
-* rgw: multisite fixes (`pr#8013 <http://github.com/ceph/ceph/pull/8013>`_, Yehuda Sadeh)
-* rgw: multitenancy support (`pr#6784 <http://github.com/ceph/ceph/pull/6784>`_, Yehuda Sadeh, Pete Zaitcev)
-* rgw: new multisite merge (`issue#14549 <http://tracker.ceph.com/issues/14549>`_, `pr#7709 <http://github.com/ceph/ceph/pull/7709>`_, Yehuda Sadeh, Orit Wasserman, Casey Bodley, Daniel Gryniewicz)
-* rgw: Parse --subuser better (`pr#7279 <http://github.com/ceph/ceph/pull/7279>`_, Pete Zaitcev)
-* rgw: prevent anonymous user from reading bucket with authenticated read ACL (`issue#13207 <http://tracker.ceph.com/issues/13207>`_, `pr#6057 <http://github.com/ceph/ceph/pull/6057>`_, root)
-* rgw: radosgw-admin bucket check --fix not work (`pr#7093 <http://github.com/ceph/ceph/pull/7093>`_, Weijun Duan)
-* rgw-rados: return RGWSystemMetaObj init directly (`pr#8534 <http://github.com/ceph/ceph/pull/8534>`_, Karol Mroz)
-* rgw: refuse to calculate digest when the s3 secret key is empty (`issue#13133 <http://tracker.ceph.com/issues/13133>`_, `pr#6045 <http://github.com/ceph/ceph/pull/6045>`_, Sangdi Xu)
-* rgw : region to zonegroup related fixes (`pr#8620 <http://github.com/ceph/ceph/pull/8620>`_, Yehuda Sadeh)
-* rgw: remove duplicated code in RGWRados::get_bucket_info() (`pr#7413 <http://github.com/ceph/ceph/pull/7413>`_, liyankun)
-* rgw: remove extra check in RGWGetObj::execute (`issue#12352 <http://tracker.ceph.com/issues/12352>`_, `pr#5262 <http://github.com/ceph/ceph/pull/5262>`_, Javier M. Mellid)
-* rgw: Remove unused code in PutMetadataAccount:execute (`pr#6668 <http://github.com/ceph/ceph/pull/6668>`_, Pete Zaitcev)
-* rgw: remove unused variable in RGWPutMetadataBucket::execute (`pr#6735 <http://github.com/ceph/ceph/pull/6735>`_, Radoslaw Zarzynski)
-* rgw: remove unused vector (`pr#7990 <http://github.com/ceph/ceph/pull/7990>`_, Na Xie)
-* rgw: reset return code in when iterating over the bucket the objects (`issue#14826 <http://tracker.ceph.com/issues/14826>`_, `pr#7803 <http://github.com/ceph/ceph/pull/7803>`_, Orit Wasserman)
-* rgw: retry RGWRemoteMetaLog::read_log_info() while master is down (`pr#8453 <http://github.com/ceph/ceph/pull/8453>`_, Casey Bodley)
-* rgw: Revert "rgw ldap" (`pr#8075 <http://github.com/ceph/ceph/pull/8075>`_, Yehuda Sadeh)
-* rgw/rgw_admin:fix bug about list and stats command (`pr#8200 <http://github.com/ceph/ceph/pull/8200>`_, Qiankun Zheng)
-* rgw/rgw_common.h: fix the RGWBucketInfo decoding (`pr#8154 <http://github.com/ceph/ceph/pull/8154>`_, Kefu Chai)
-* rgw/rgw_common.h: fix the RGWBucketInfo decoding (`pr#8165 <http://github.com/ceph/ceph/pull/8165>`_, Kefu Chai)
-* rgw: RGWLib::env is not used so remove it (`pr#7874 <http://github.com/ceph/ceph/pull/7874>`_, Brad Hubbard)
-* rgw/rgw_orphan: check the return value of save_state (`pr#7544 <http://github.com/ceph/ceph/pull/7544>`_, Boris Ranto)
-* rgw: RGWPeriod::reflect() sets master zonegroup as default (`pr#8566 <http://github.com/ceph/ceph/pull/8566>`_, Casey Bodley)
-* rgw/rgw_resolve: fallback to res_query when res_nquery not implemented (`pr#6292 <http://github.com/ceph/ceph/pull/6292>`_, John Coyle)
-* rgw: RGWZoneParams::create should not handle -EEXIST error (`pr#7927 <http://github.com/ceph/ceph/pull/7927>`_, Orit Wasserman)
-* rgw: S3: set EncodingType in ListBucketResult (`pr#7712 <http://github.com/ceph/ceph/pull/7712>`_, Victor Makarov)
-* rgw: signature mismatch with escaped characters in url query portion (`issue#15358 <http://tracker.ceph.com/issues/15358>`_, `pr#8445 <http://github.com/ceph/ceph/pull/8445>`_, Javier M. Mellid)
-* rgw: static large objects (Radoslaw Zarzynski, Yehuda Sadeh)
-* rgw: store system object meta in cache when creating it (`issue#14678 <http://tracker.ceph.com/issues/14678>`_, `pr#7615 <http://github.com/ceph/ceph/pull/7615>`_, Yehuda Sadeh)
-* rgw: support core file limit for radosgw daemon (`pr#6346 <http://github.com/ceph/ceph/pull/6346>`_, Guang Yang)
-* rgw: support for aws authentication v4 (Javier M. Mellid) (`issue#10333 <http://tracker.ceph.com/issues/10333>`_, `pr#7720 <http://github.com/ceph/ceph/pull/7720>`_, Yehuda Sadeh, Javier M. Mellid)
-* rgw: support json format for admin policy API (Dunrong Huang) (`issue#14090 <http://tracker.ceph.com/issues/14090>`_, `pr#8036 <http://github.com/ceph/ceph/pull/8036>`_, Yehuda Sadeh, Dunrong Huang)
-* rgw: swift bulk delete (Radoslaw Zarzynski)
-* rgw: swift use Civetweb ssl can not get right url (`issue#13628 <http://tracker.ceph.com/issues/13628>`_, `pr#6408 <http://github.com/ceph/ceph/pull/6408>`_, Weijun Duan)
-* rgw: swift versioning disabled (`pr#8066 <http://github.com/ceph/ceph/pull/8066>`_, Yehuda Sadeh, Radoslaw Zarzynski)
-* rgw: sync fixes 3 (`pr#8170 <http://github.com/ceph/ceph/pull/8170>`_, Yehuda Sadeh)
-* rgw: sync fixes 4 (`pr#8190 <http://github.com/ceph/ceph/pull/8190>`_, Yehuda Sadeh)
-* rgw sync fixes (`pr#8095 <http://github.com/ceph/ceph/pull/8095>`_, Yehuda Sadeh)
-* rgw: the map 'headers' is assigned a wrong value (`pr#8481 <http://github.com/ceph/ceph/pull/8481>`_, weiqiaomiao)
-* rgw: try to parse Keystone token in order appropriate to configuration. (`pr#7822 <http://github.com/ceph/ceph/pull/7822>`_, Radoslaw Zarzynski)
-* rgw: try to use current period id in a few more cases (`pr#8588 <http://github.com/ceph/ceph/pull/8588>`_, Yehuda Sadeh)
-* rgw:Use count fn in RGWUserBuckets for quota check (`pr#8294 <http://github.com/ceph/ceph/pull/8294>`_, Abhishek Lekshmanan)
-* rgw: use pimpl pattern for RGWPeriodHistory (`pr#7809 <http://github.com/ceph/ceph/pull/7809>`_, Casey Bodley)
-* rgw: user quota may not adjust on bucket removal (`issue#14507 <http://tracker.ceph.com/issues/14507>`_, `pr#7586 <http://github.com/ceph/ceph/pull/7586>`_, root)
-* rgw: use smart pointer for C_Reinitwatch (`pr#6767 <http://github.com/ceph/ceph/pull/6767>`_, Orit Wasserman)
-* rgw: warn on suspicious civetweb frontend parameters (`pr#6944 <http://github.com/ceph/ceph/pull/6944>`_, Matt Benjamin)
-* rocksdb: build with PORTABLE=1 (`pr#6311 <http://github.com/ceph/ceph/pull/6311>`_, Sage Weil)
-* rocksdb: remove rdb source files from dist tarball (`issue#13554 <http://tracker.ceph.com/issues/13554>`_, `pr#6379 <http://github.com/ceph/ceph/pull/6379>`_, Kefu Chai)
-* rocksdb: remove rdb sources from dist tarball (`issue#13554 <http://tracker.ceph.com/issues/13554>`_, `pr#7105 <http://github.com/ceph/ceph/pull/7105>`_, Venky Shankar)
-* rocksdb: use native rocksdb makefile (and our autotools) (`pr#6290 <http://github.com/ceph/ceph/pull/6290>`_, Sage Weil)
-* rpm: ceph.spec.in: correctly declare systemd dependency for SLE/openSUSE (`pr#6114 <http://github.com/ceph/ceph/pull/6114>`_, Nathan Cutler)
-* rpm: ceph.spec.in: fix libs-compat / devel-compat conditional (`issue#12315 <http://tracker.ceph.com/issues/12315>`_, `pr#5219 <http://github.com/ceph/ceph/pull/5219>`_, Ken Dreyer)
-* rpm,deb: remove conditional BuildRequires for btrfs-progs (`issue#15042 <http://tracker.ceph.com/issues/15042>`_, `pr#8016 <http://github.com/ceph/ceph/pull/8016>`_, Erwan Velu)
-* rpm: move %post(un) ldconfig calls to ceph-base (`issue#14940 <http://tracker.ceph.com/issues/14940>`_, `pr#7867 <http://github.com/ceph/ceph/pull/7867>`_, Nathan Cutler)
-* rpm: move runtime dependencies to ceph-base and fix other packaging issues (`issue#14864 <http://tracker.ceph.com/issues/14864>`_, `pr#7826 <http://github.com/ceph/ceph/pull/7826>`_, Nathan Cutler)
-* rpm: prefer UID/GID 167 when creating ceph user/group (`issue#15246 <http://tracker.ceph.com/issues/15246>`_, `pr#8277 <http://github.com/ceph/ceph/pull/8277>`_, Nathan Cutler)
-* rpm: remove sub-package dependencies on "ceph" (`issue#15146 <http://tracker.ceph.com/issues/15146>`_, `pr#8137 <http://github.com/ceph/ceph/pull/8137>`_, Ken Dreyer)
-* rpm: rhel 5.9 librados compile fix, moved blkid to RBD check/compilation (`issue#13177 <http://tracker.ceph.com/issues/13177>`_, `pr#5954 <http://github.com/ceph/ceph/pull/5954>`_, Rohan Mars)
-* script: add missing stop_rgw variable to stop.sh script (`pr#7959 <http://github.com/ceph/ceph/pull/7959>`_, Karol Mroz)
-* scripts: adjust mstart and mstop script to run with cmake build (`pr#6920 <http://github.com/ceph/ceph/pull/6920>`_, Orit Wasserman)
-* scripts: release_notes can track original issue (`pr#6009 <http://github.com/ceph/ceph/pull/6009>`_, Abhishek Lekshmanan)
-* script: subscription-manager support (`issue#14972 <http://tracker.ceph.com/issues/14972>`_, `pr#7907 <http://github.com/ceph/ceph/pull/7907>`_, Loic Dachary)
-* selinux: allow log files to be located in /var/log/radosgw (`pr#7604 <http://github.com/ceph/ceph/pull/7604>`_, Boris Ranto)
-* selinux: Update policy to grant additional access (`issue#14870 <http://tracker.ceph.com/issues/14870>`_, `pr#7971 <http://github.com/ceph/ceph/pull/7971>`_, Boris Ranto)
-* set 128MB tcmalloc cache size by bytes (`pr#8427 <http://github.com/ceph/ceph/pull/8427>`_, Star Guo)
-* stringify outputted error code and fix unmatched parentheses. (`pr#6998 <http://github.com/ceph/ceph/pull/6998>`_, xie.xingguo, xie xingguo)
-* submodules: revert an accidental change (`pr#7929 <http://github.com/ceph/ceph/pull/7929>`_, Yehuda Sadeh)
-* systemd: correctly escape block device paths (`issue#14706 <http://tracker.ceph.com/issues/14706>`_, `pr#7579 <http://github.com/ceph/ceph/pull/7579>`_, James Page)
-* systemd: drop any systemd imposed process/thread limits (`pr#8450 <http://github.com/ceph/ceph/pull/8450>`_, James Page)
-* systemd: fix typos (`pr#6679 <http://github.com/ceph/ceph/pull/6679>`_, Tobias Suckow)
-* systemd: set up environment in rbdmap unit file (`issue#14984 <http://tracker.ceph.com/issues/14984>`_, `pr#8222 <http://github.com/ceph/ceph/pull/8222>`_, Nathan Cutler)
-* systemd: start/stop/restart ceph services by daemon type (`issue#13497 <http://tracker.ceph.com/issues/13497>`_, `pr#6276 <http://github.com/ceph/ceph/pull/6276>`_, Zhi Zhang)
-* systemd: Use the same restart limits as upstart (`pr#8188 <http://github.com/ceph/ceph/pull/8188>`_, Boris Ranto)
-* sysvinit: allow custom cluster names (`pr#6732 <http://github.com/ceph/ceph/pull/6732>`_, Richard Chan)
-* test: add missing shut_down mock method (`pr#8125 <http://github.com/ceph/ceph/pull/8125>`_, Jason Dillaman)
-* test/bufferlist: Avoid false-positive tests (`pr#7955 <http://github.com/ceph/ceph/pull/7955>`_, Erwan Velu)
-* test: ceph_test_rados: use less CPU (`pr#7513 <http://github.com/ceph/ceph/pull/7513>`_, Samuel Just)
-* test/cli-integration/rbd: disable progress output (`issue#14931 <http://tracker.ceph.com/issues/14931>`_, `pr#7858 <http://github.com/ceph/ceph/pull/7858>`_, Josh Durgin)
-* test: correct librbd errors discovered with unoptimized cmake build (`pr#7914 <http://github.com/ceph/ceph/pull/7914>`_, Jason Dillaman)
-* test: create pools for rbd tests with different prefix (`pr#7738 <http://github.com/ceph/ceph/pull/7738>`_, Mykola Golub)
-* test: enable test for bug #2339 which has been resolved. (`pr#7743 <http://github.com/ceph/ceph/pull/7743>`_, You Ji)
-* test/encoding/readable.sh fix (`pr#6714 <http://github.com/ceph/ceph/pull/6714>`_, Igor Podoski)
-* test/encoding/readable: use [ for "test" not (( (`pr#8574 <http://github.com/ceph/ceph/pull/8574>`_, Kefu Chai)
-* test: fix issues discovered via the rbd permissions test case (`pr#8129 <http://github.com/ceph/ceph/pull/8129>`_, Jason Dillaman)
-* test: fix osd-scrub-snaps.sh (`pr#6697 <http://github.com/ceph/ceph/pull/6697>`_, Xinze Chi)
-* test: Fix test to run with btrfs which has snap_### dirs (`issue#15347 <http://tracker.ceph.com/issues/15347>`_, `pr#8420 <http://github.com/ceph/ceph/pull/8420>`_, David Zafman)
-* test: fixup and improvements for rbd-mirror test (`pr#8090 <http://github.com/ceph/ceph/pull/8090>`_, Mykola Golub)
-* test: fix ut test failure caused by lfn change (`issue#15464 <http://tracker.ceph.com/issues/15464>`_, `pr#8544 <http://github.com/ceph/ceph/pull/8544>`_, xie xingguo)
-* test: fix valgrind memcheck issues for rbd-mirror test cases (`issue#15354 <http://tracker.ceph.com/issues/15354>`_, `pr#8493 <http://github.com/ceph/ceph/pull/8493>`_, Jason Dillaman)
-* test: handle exception thrown from close during rbd lock test (`pr#8124 <http://github.com/ceph/ceph/pull/8124>`_, Jason Dillaman)
-* test: image replayer needs dummy remote mirror peer uuid (`pr#8584 <http://github.com/ceph/ceph/pull/8584>`_, Jason Dillaman)
-* test/libcephfs/flock: add sys/file.h include for flock operations (`pr#6310 <http://github.com/ceph/ceph/pull/6310>`_, John Coyle)
-* test/librados/test.cc: clean up EC pools' crush rules too (`issue#13878 <http://tracker.ceph.com/issues/13878>`_, `pr#6788 <http://github.com/ceph/ceph/pull/6788>`_, Loic Dachary, Dan Mick)
-* test/librbd/fsx: Use c++11 std::mt19937 generator instead of random_r() (`pr#6332 <http://github.com/ceph/ceph/pull/6332>`_, John Coyle)
-* test/mon/osd-erasure-code-profile: pick new mon port (`pr#7161 <http://github.com/ceph/ceph/pull/7161>`_, Sage Weil)
-* test: more debug logging for TestWatchNotify (`pr#7737 <http://github.com/ceph/ceph/pull/7737>`_, Mykola Golub)
-* test: new librbd flatten test case (`pr#7609 <http://github.com/ceph/ceph/pull/7609>`_, Jason Dillaman)
-* test/osd: Relax the timing intervals in osd-markdown.sh (`pr#7899 <http://github.com/ceph/ceph/pull/7899>`_, Dan Mick)
-* test_pool_create.sh: put test files in the test dir so they are cleaned up (`pr#8219 <http://github.com/ceph/ceph/pull/8219>`_, Josh Durgin)
-* test/pybind/test_ceph_argparse: fix reweight-by-utilization tests (`pr#8027 <http://github.com/ceph/ceph/pull/8027>`_, Kefu Chai, Sage Weil)
-* test/radosgw-admin: update the expected usage outputs (`pr#7723 <http://github.com/ceph/ceph/pull/7723>`_, Kefu Chai)
-* test: rbd-mirror: add "switch to the next tag" test (`pr#8149 <http://github.com/ceph/ceph/pull/8149>`_, Mykola Golub)
-* test: rbd-mirror: compare positions using all fields (`pr#8172 <http://github.com/ceph/ceph/pull/8172>`_, Mykola Golub)
-* test: rbd-mirror: script improvements for manual testing (`pr#8325 <http://github.com/ceph/ceph/pull/8325>`_, Mykola Golub)
-* test: reproducer for writeback CoW deadlock (`pr#8009 <http://github.com/ceph/ceph/pull/8009>`_, Jason Dillaman)
-* test/rgw: add multisite test for meta sync across periods (`pr#7887 <http://github.com/ceph/ceph/pull/7887>`_, Casey Bodley)
-* test_rgw_admin: use freopen for output redirection. (`pr#6303 <http://github.com/ceph/ceph/pull/6303>`_, John Coyle)
-* tests: add const for ec test (`pr#6911 <http://github.com/ceph/ceph/pull/6911>`_, Michal Jarzabek)
-* tests: add Ubuntu 16.04 xenial dockerfile (`pr#8519 <http://github.com/ceph/ceph/pull/8519>`_, Loic Dachary)
-* tests: allow docker-test.sh to run under root (`issue#13355 <http://tracker.ceph.com/issues/13355>`_, `pr#6173 <http://github.com/ceph/ceph/pull/6173>`_, Loic Dachary)
-* tests: allow object corpus readable test to skip specific incompat instances (`pr#6932 <http://github.com/ceph/ceph/pull/6932>`_, Igor Podoski)
-* tests: centos7 needs the Continuous Release (CR) Repository enabled for (`issue#13997 <http://tracker.ceph.com/issues/13997>`_, `pr#6842 <http://github.com/ceph/ceph/pull/6842>`_, Brad Hubbard)
-* tests: ceph-disk.sh: should use "readlink -f" instead (`pr#7594 <http://github.com/ceph/ceph/pull/7594>`_, Kefu Chai)
-* tests: ceph-disk.sh: use "readlink -f" instead for fullpath (`pr#7606 <http://github.com/ceph/ceph/pull/7606>`_, Kefu Chai)
-* tests: ceph-disk workunit uses configobj (`pr#6342 <http://github.com/ceph/ceph/pull/6342>`_, Loic Dachary)
-* tests: ceph-helpers assert success getting backfills (`pr#6699 <http://github.com/ceph/ceph/pull/6699>`_, Loic Dachary)
-* tests: ceph_test_keyvaluedb_iterators: fix broken test (`pr#6597 <http://github.com/ceph/ceph/pull/6597>`_, Haomai Wang)
-* tests: concatenate test_rados_test_tool from src and qa (`issue#13691 <http://tracker.ceph.com/issues/13691>`_, `pr#6464 <http://github.com/ceph/ceph/pull/6464>`_, Loic Dachary)
-* tests: configure with rocksdb by default (`issue#14220 <http://tracker.ceph.com/issues/14220>`_, `pr#7100 <http://github.com/ceph/ceph/pull/7100>`_, Loic Dachary)
-* tests: destroy testprofile before creating one (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6446 <http://github.com/ceph/ceph/pull/6446>`_, Loic Dachary)
-* test: set a default $CEPH_ROOT env variable (`pr#8645 <http://github.com/ceph/ceph/pull/8645>`_, Kefu Chai)
-* tests: fix a few build warnings (`pr#7608 <http://github.com/ceph/ceph/pull/7608>`_, Sage Weil)
-* tests: fix failure for osd-scrub-snap.sh (`issue#13986 <http://tracker.ceph.com/issues/13986>`_, `pr#6890 <http://github.com/ceph/ceph/pull/6890>`_, Loic Dachary, Ning Yao)
-* tests: Fix for make check. (`pr#7102 <http://github.com/ceph/ceph/pull/7102>`_, David Zafman)
-* tests: Fixing broken test/cephtool-test-mon.sh test (`pr#8429 <http://github.com/ceph/ceph/pull/8429>`_, Erwan Velu)
-* tests: fix race condition testing auto scrub (`issue#13592 <http://tracker.ceph.com/issues/13592>`_, `pr#6724 <http://github.com/ceph/ceph/pull/6724>`_, Xinze Chi, Loic Dachary)
-* tests: fix test_rados_tools.sh rados lookup (`issue#13691 <http://tracker.ceph.com/issues/13691>`_, `pr#6502 <http://github.com/ceph/ceph/pull/6502>`_, Loic Dachary)
-* tests: fix typo in TestClsRbd.snapshots test case (`issue#13727 <http://tracker.ceph.com/issues/13727>`_, `pr#6504 <http://github.com/ceph/ceph/pull/6504>`_, Jason Dillaman)
-* tests: flush op work queue prior to destroying MockImageCtx (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `pr#7002 <http://github.com/ceph/ceph/pull/7002>`_, Jason Dillaman)
-* tests: ignore test-suite.log (`pr#6584 <http://github.com/ceph/ceph/pull/6584>`_, Loic Dachary)
-* tests: Improving 'make check' execution time (`pr#8131 <http://github.com/ceph/ceph/pull/8131>`_, Erwan Velu)
-* tests: notification slave needs to wait for master (`issue#13810 <http://tracker.ceph.com/issues/13810>`_, `pr#7220 <http://github.com/ceph/ceph/pull/7220>`_, Jason Dillaman)
-* tests: --osd-scrub-load-threshold=2000 for more consistency (`issue#14027 <http://tracker.ceph.com/issues/14027>`_, `pr#6871 <http://github.com/ceph/ceph/pull/6871>`_, Loic Dachary)
-* tests: osd-scrub-snaps.sh to display full osd logs on error (`issue#13986 <http://tracker.ceph.com/issues/13986>`_, `pr#6857 <http://github.com/ceph/ceph/pull/6857>`_, Loic Dachary)
-* tests: port uniqueness reminder (`pr#6387 <http://github.com/ceph/ceph/pull/6387>`_, Loic Dachary)
-* tests: restore run-cli-tests (`pr#6571 <http://github.com/ceph/ceph/pull/6571>`_, Loic Dachary, Sage Weil, Jason Dillaman)
-* tests: snap rename and rebuild object map in client update test (`pr#7224 <http://github.com/ceph/ceph/pull/7224>`_, Jason Dillaman)
-* tests: sync ceph-erasure-code-corpus for mktemp -d (`pr#7596 <http://github.com/ceph/ceph/pull/7596>`_, Loic Dachary)
-* tests: test/librados/test.cc must create profile (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6452 <http://github.com/ceph/ceph/pull/6452>`_, Loic Dachary)
-* tests: test_pidfile.sh lingering processes (`issue#14834 <http://tracker.ceph.com/issues/14834>`_, `pr#7734 <http://github.com/ceph/ceph/pull/7734>`_, Loic Dachary)
-* tests: unittest_bufferlist: fix hexdump test (`pr#7152 <http://github.com/ceph/ceph/pull/7152>`_, Sage Weil)
-* tests: unittest_ipaddr: fix segv (`pr#7154 <http://github.com/ceph/ceph/pull/7154>`_, Sage Weil)
-* test/system/rados_list_parallel: print oid if rados_write fails (`issue#15240 <http://tracker.ceph.com/issues/15240>`_, `pr#8309 <http://github.com/ceph/ceph/pull/8309>`_, Kefu Chai)
-* test/system/\*: use dynamically generated pool name (`issue#15240 <http://tracker.ceph.com/issues/15240>`_, `pr#8318 <http://github.com/ceph/ceph/pull/8318>`_, Kefu Chai)
-* test/test-erasure-code.sh: disable pg_temp priming (`issue#15211 <http://tracker.ceph.com/issues/15211>`_, `pr#8260 <http://github.com/ceph/ceph/pull/8260>`_, Sage Weil)
-* test: TestMirroringWatcher test cases were not closing images (`pr#8435 <http://github.com/ceph/ceph/pull/8435>`_, Jason Dillaman)
-* test/TestPGLog: fix the FTBFS (`issue#14930 <http://tracker.ceph.com/issues/14930>`_, `pr#7855 <http://github.com/ceph/ceph/pull/7855>`_, Kefu Chai)
-* test/test_pool_create.sh: fix port (`pr#8361 <http://github.com/ceph/ceph/pull/8361>`_, Sage Weil)
-* test/time: no need to abs(uint64_t) for comparing (`pr#7726 <http://github.com/ceph/ceph/pull/7726>`_, Kefu Chai)
-* test: update rbd integration cram tests for new default features (`pr#8001 <http://github.com/ceph/ceph/pull/8001>`_, Jason Dillaman)
-* test: use sequential journal_tid for object cacher test (`issue#13877 <http://tracker.ceph.com/issues/13877>`_, `pr#6710 <http://github.com/ceph/ceph/pull/6710>`_, Josh Durgin)
-* tools: add cephfs-table-tool 'take_inos' (`pr#6655 <http://github.com/ceph/ceph/pull/6655>`_, John Spray)
-* tools/cephfs: add tmap_upgrade (`pr#7003 <http://github.com/ceph/ceph/pull/7003>`_, John Spray)
-* tools/cephfs: fix overflow writing header to fixed size buffer (#13816) (`pr#6617 <http://github.com/ceph/ceph/pull/6617>`_, John Spray)
-* tools/cephfs: fix overflow writing header to fixed size buffer (#13816) (`pr#6617 <http://github.com/ceph/ceph/pull/6617>`_, John Spray)
-* tools/cephfs: fix tmap_upgrade (`issue#15135 <http://tracker.ceph.com/issues/15135>`_, `pr#8128 <http://github.com/ceph/ceph/pull/8128>`_, John Spray)
-* tools: ceph_monstore_tool: add inflate-pgmap command (`issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#7097 <http://github.com/ceph/ceph/pull/7097>`_, Kefu Chai)
-* tools: ceph-monstore-update-crush: add "--test" when testing crushmap (`pr#6418 <http://github.com/ceph/ceph/pull/6418>`_, Kefu Chai)
-* tools: Fix layout handing in cephfs-data-scan (#13898) (`pr#6719 <http://github.com/ceph/ceph/pull/6719>`_, John Spray)
-* tools: monstore: add 'show-versions' command. (`pr#7073 <http://github.com/ceph/ceph/pull/7073>`_, Cilang Zhao)
-* tools/rados: reduce "rados put" memory usage by op_size (`pr#7928 <http://github.com/ceph/ceph/pull/7928>`_, Piotr Dałek)
-* tools:remove duplicate references (`pr#5917 <http://github.com/ceph/ceph/pull/5917>`_, Bo Cai)
-* tools: support printing part cluster map in readable fashion (`issue#13079 <http://tracker.ceph.com/issues/13079>`_, `pr#5921 <http://github.com/ceph/ceph/pull/5921>`_, Bo Cai)
-* unittest_compression_zlib: do not assume buffer will be null terminated (`pr#8064 <http://github.com/ceph/ceph/pull/8064>`_, Sage Weil)
-* unittest_erasure_code_plugin: fix deadlock (Alpine) (`pr#8314 <http://github.com/ceph/ceph/pull/8314>`_, John Coyle)
-* unittest_osdmap: default crush tunables now firefly (`pr#8098 <http://github.com/ceph/ceph/pull/8098>`_, Sage Weil)
-* vstart: fix up cmake paths when VSTART_DEST is given (`pr#8363 <http://github.com/ceph/ceph/pull/8363>`_, Casey Bodley)
-* vstart: grant full access to Swift testing account (`pr#6239 <http://github.com/ceph/ceph/pull/6239>`_, Yuan Zhou)
-* vstart: make -k with optional mon_num. (`pr#8251 <http://github.com/ceph/ceph/pull/8251>`_, Jianpeng Ma)
-* vstart: set cephfs root uid/gid to caller (`pr#6255 <http://github.com/ceph/ceph/pull/6255>`_, John Spray)
-* vstart.sh: add mstart, mstop, mrun wrappers for running multiple vstart-style test clusters out of src tree (`pr#6901 <http://github.com/ceph/ceph/pull/6901>`_, Yehuda Sadeh)
-* vstart.sh: avoid race condition starting rgw via vstart.sh (`issue#14829 <http://tracker.ceph.com/issues/14829>`_, `pr#7727 <http://github.com/ceph/ceph/pull/7727>`_, Javier M. Mellid)
-* vstart.sh: silence a harmless msg where btrfs is not found (`pr#7640 <http://github.com/ceph/ceph/pull/7640>`_, Patrick Donnelly)
-* xio: add prefix to xio msgr logs (`pr#8148 <http://github.com/ceph/ceph/pull/8148>`_, Roi Dayan)
-* xio: fix compilation against latest accelio (`pr#8022 <http://github.com/ceph/ceph/pull/8022>`_, Roi Dayan)
-* xio: fix incorrect ip being assigned in case of multiple RDMA ports (`pr#7747 <http://github.com/ceph/ceph/pull/7747>`_, Subramanyam Varanasi)
-* xio: remove duplicate assignment of peer addr (`pr#8025 <http://github.com/ceph/ceph/pull/8025>`_, Roi Dayan)
-* xio: remove redundant magic methods (`pr#7773 <http://github.com/ceph/ceph/pull/7773>`_, Roi Dayan)
-* xio: remove unused variable (`pr#8023 <http://github.com/ceph/ceph/pull/8023>`_, Roi Dayan)
-* xio: xio_init needs to be called before any other xio function (`pr#8227 <http://github.com/ceph/ceph/pull/8227>`_, Roi Dayan)
-* xxhash: use clone of xxhash.git; add .gitignore (`pr#7986 <http://github.com/ceph/ceph/pull/7986>`_, Sage Weil)
-
-Notable Changes since Hammer
-----------------------------
-
-* aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
-* auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
-* auth: reinit NSS after fork() (#11128 Yan, Zheng)
-* autotools: fix out of tree build (Krxysztof Kosinski)
-* autotools: improve make check output (Loic Dachary)
-* buffer: add invalidate_crc() (Piotr Dalek)
-* buffer: fix zero bug (#12252 Haomai Wang)
-* buffer: some cleanup (Michal Jarzabek)
-* build: allow tcmalloc-minimal (Thorsten Behrens)
-* build: C++11 now supported
-* build: cmake: fix nss linking (Danny Al-Gaaf)
-* build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
-* build: disable LTTNG by default (#11333 Josh Durgin)
-* build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
-* build: fix junit detection on Fedora 22 (Ira Cooper)
-* build: fix pg ref disabling (William A. Kennington III)
-* build: fix ppc build (James Page)
-* build: install-deps: misc fixes (Loic Dachary)
-* build: install-deps.sh improvements (Loic Dachary)
-* build: install-deps: support OpenSUSE (Loic Dachary)
-* build: make_dist_tarball.sh (Sage Weil)
-* build: many cmake improvements
-* build: misc cmake fixes (Matt Benjamin)
-* build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
-* build: OSX build fixes (Yan, Zheng)
-* build: remove rest-bench
-* ceph-authtool: fix return code on error (Gerhard Muntingh)
-* ceph-detect-init: added Linux Mint (Michal Jarzabek)
-* ceph-detect-init: robust init system detection (Owen Synge)
-* ceph-disk: ensure 'zap' only operates on a full disk (#11272 Loic Dachary)
-* ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
-* ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
-* ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
-* ceph-disk: improve parted output parsing (#10983 Loic Dachary)
-* ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
-* ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
-* ceph-disk: many fixes (Loic Dachary, Alfredo Deza)
-* ceph-disk: fixes to respect init system (Loic Dachary, Owen Synge)
-* ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
-* ceph-disk: support for multipath devices (Loic Dachary)
-* ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
-* ceph: fix 'df' units (Zhe Zhang)
-* ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
-* cephfs-data-scan: many additions, improvements (John Spray)
-* ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
-* ceph-fuse, libcephfs: don't clear COMPLETE when trimming null (Yan, Zheng)
-* ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
-* ceph-fuse,libcephfs: fix uninline (#11356 Yan, Zheng)
-* ceph-fuse, libcephfs: hold exclusive caps on dirs we "own" (#11226 Greg Farnum)
-* ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
-* ceph: improve error output for 'tell' (#11101 Kefu Chai)
-* ceph-monstore-tool: fix store-copy (Huangjun)
-* ceph: new 'ceph daemonperf' command (John Spray, Mykola Golub)
-* ceph-objectstore-tool: many many improvements (David Zafman)
-* ceph-objectstore-tool: refactoring and cleanup (John Spray)
-* ceph-post-file: misc fixes (Joey McDonald, Sage Weil)
-* ceph_test_rados: test pipelined reads (Zhiqiang Wang)
-* client: avoid sending unnecessary FLUSHSNAP messages (Yan, Zheng)
-* client: exclude setfilelock when calculating oldest tid (Yan, Zheng)
-* client: fix error handling in check_pool_perm (John Spray)
-* client: fsync waits only for inode's caps to flush (Yan, Zheng)
-* client: invalidate kernel dcache when cache size exceeds limits (Yan, Zheng)
-* client: make fsync wait for unsafe dir operations (Yan, Zheng)
-* client: pin lookup dentry to avoid inode being freed (Yan, Zheng)
-* common: add descriptions to perfcounters (Kiseleva Alyona)
-* common: add perf counter descriptions (Alyona Kiseleva)
-* common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
-* common: detect overflow of int config values (#11484 Kefu Chai)
-* common: fix bit_vector extent calc (#12611 Jason Dillaman)
-* common: fix json parsing of utf8 (#7387 Tim Serong)
-* common: fix leak of pthread_mutexattr (#11762 Ketor Meng)
-* common: fix LTTNG vs fork issue (Josh Durgin)
-* common: fix throttle max change (Henry Chang)
-* common: make mutex more efficient
-* common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
-* common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
-* common: PriorityQueue tests (Kefu Chai)
-* common: some async compression infrastructure (Haomai Wang)
-* crush: add --check to validate dangling names, max osd id (Kefu Chai)
-* crush: cleanup, sync with kernel (Ilya Dryomov)
-* crush: fix crash from invalid 'take' argument (#11602 Shiva Rkreddy, Sage Weil)
-* crush: fix divide-by-2 in straw2 (#11357 Yann Dupont, Sage Weil)
-* crush: fix has_v4_buckets (#11364 Sage Weil)
-* crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
-* crush: respect default replicated ruleset config on map creation (Ilya Dryomov)
-* crushtool: fix order of operations, usage (Sage Weil)
-* crypto: fix NSS leak (Jason Dillaman)
-* crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
-* deb: fix rest-bench-dbg and ceph-test-dbg dependendies (Ken Dreyer)
-* debian: minor package reorg (Ken Dreyer)
-* deb, rpm: move ceph-objectstore-tool to ceph (Ken Dreyer)
-* doc: docuemnt object corpus generation (#11099 Alexis Normand)
-* doc: document region hostnames (Robin H. Johnson)
-* doc: fix gender neutrality (Alexandre Maragone)
-* doc: fix install doc (#10957 Kefu Chai)
-* doc: fix sphinx issues (Kefu Chai)
-* doc: man page updates (Kefu Chai)
-* doc: mds data structure docs (Yan, Zheng)
-* doc: misc updates (Fracois Lafont, Ken Dreyer, Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao, Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
-* doc: swift tempurls (#10184 Abhishek Lekshmanan)
-* doc: switch doxygen integration back to breathe (#6115 Kefu Chai)
-* doc: update release schedule docs (Loic Dachary)
-* erasure-code: cleanup (Kefu Chai)
-* erasure-code: improve tests (Loic Dachary)
-* erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
-* erasure-code: update ISA-L to 2.13 (Yuan Zhou)
-* gmock: switch to submodule (Danny Al-Gaaf, Loic Dachary)
-* hadoop: add terasort test (Noah Watkins)
-* init-radosgw: merge with sysv version; fix enumeration (Sage Weil)
-* java: fix libcephfs bindings (Noah Watkins)
-* libcephfs: add pread, pwrite (Jevon Qiao)
-* libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
-* libcephfs,ceph-fuse: fix request resend on cap reconnect (#10912 Yan, Zheng)
-* librados: add config observer (Alistair Strachan)
-* librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
-* librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
-* librados: define C++ flags from C constants (Josh Durgin)
-* librados: fadvise flags per op (Jianpeng Ma)
-* librados: fix last_force_resent handling (#11026 Jianpeng Ma)
-* librados: fix memory leak from C_TwoContexts (Xiong Yiliang)
-* librados: fix notify completion race (#13114 Sage Weil)
-* librados: fix striper when stripe_count = 1 and stripe_unit != object_size (#11120 Yan, Zheng)
-* librados, libcephfs: randomize client nonces (Josh Durgin)
-* librados: op perf counters (John Spray)
-* librados: pybind: fix binary omap values (Robin H. Johnson)
-* librados: pybind: fix write() method return code (Javier Guerra)
-* librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
-* libradosstriper: fix leak (Danny Al-Gaaf)
-* librbd: add const for single-client-only features (Josh Durgin)
-* librbd: add deep-flatten operation (Jason Dillaman)
-* librbd: add purge_on_error cache behavior (Jianpeng Ma)
-* librbd: allow additional metadata to be stored with the image (Haomai Wang)
-* librbd: avoid blocking aio API methods (#11056 Jason Dillaman)
-* librbd: better handling for dup flatten requests (#11370 Jason Dillaman)
-* librbd: cancel in-flight ops on watch error (#11363 Jason Dillaman)
-* librbd: default new images to format 2 (#11348 Jason Dillaman)
-* librbd: fadvise for copy, export, import (Jianpeng Ma)
-* librbd: fast diff implementation that leverages object map (Jason Dillaman)
-* librbd: fix fast diff bugs (#11553 Jason Dillaman)
-* librbd: fix image format detection (Zhiqiang Wang)
-* librbd: fix lock ordering issue (#11577 Jason Dillaman)
-* librbd: fix reads larger than the cache size (Lu Shi)
-* librbd: fix snapshot creation when other snap is active (#11475 Jason Dillaman)
-* librbd: flatten/copyup fixes (Jason Dillaman)
-* librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
-* librbd: lockdep, helgrind validation (Jason Dillaman, Josh Durgin)
-* librbd: metadata filter fixes (Haomai Wang)
-* librbd: misc aio fixes (#5488 Jason Dillaman)
-* librbd: misc rbd fixes (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
-* librbd: new diff_iterate2 API (Jason Dillaman)
-* librbd: object map rebuild support (Jason Dillaman)
-* librbd: only update image flags while hold exclusive lock (#11791 Jason Dillaman)
-* librbd: optionally disable allocation hint (Haomai Wang)
-* librbd: prevent race between resize requests (#12664 Jason Dillaman)
-* librbd: readahead fixes (Zhiqiang Wang)
-* librbd: return result code from close (#12069 Jason Dillaman)
-* librbd: store metadata, including config options, in image (Haomai Wang)
-* librbd: tolerate old osds when getting image metadata (#11549 Jason Dillaman)
-* librbd: use write_full when possible (Zhiqiang Wang)
-* log: fix data corruption race resulting from log rotation (#12465 Samuel Just)
-* logrotate.d: prefer service over invoke-rc.d (#11330 Win Hierman, Sage Weil)
-* mds: add 'damaged' state to MDSMap (John Spray)
-* mds: add nicknames for perfcounters (John Spray)
-* mds: avoid emitting cap warnigns before evicting session (John Spray)
-* mds: avoid getting stuck in XLOCKDONE (#11254 Yan, Zheng)
-* mds: disable problematic rstat propagation into snap parents (Yan, Zheng)
-* mds: do not add snapped items to bloom filter (Yan, Zheng)
-* mds: expose frags via asok (John Spray)
-* mds: fix expected holes in journal objects (#13167 Yan, Zheng)
-* mds: fix handling for missing mydir dirfrag (#11641 John Spray)
-* mds: fix integer truncateion on large client ids (Henry Chang)
-* mds: fix mydir replica issue with shutdown (#10743 John Spray)
-* mds: fix out-of-order messages (#11258 Yan, Zheng)
-* mds: fix rejoin (Yan, Zheng)
-* mds: fix setting entire file layout in one setxattr (John Spray)
-* mds: fix shutdown (John Spray)
-* mds: fix shutdown with strays (#10744 John Spray)
-* mds: fix SnapServer crash on deleted pool (John Spray)
-* mds: fix snapshot bugs (Yan, Zheng)
-* mds: fix stray reintegration (Yan, Zheng)
-* mds: fix stray handling (John Spray)
-* mds: fix suicide beacon (John Spray)
-* mds: flush immediately in do_open_truncate (#11011 John Spray)
-* mds: handle misc corruption issues (John Spray)
-* mds: improve dump methods (John Spray)
-* mds: many fixes (Yan, Zheng, John Spray, Greg Farnum)
-* mds: many snapshot and stray fixes (Yan, Zheng)
-* mds: misc fixes (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
-* mds: misc journal cleanups and fixes (#10368 John Spray)
-* mds: misc repair improvements (John Spray)
-* mds: misc snap fixes (Zheng Yan)
-* mds: misc snapshot fixes (Yan, Zheng)
-* mds: new SessionMap storage using omap (#10649 John Spray)
-* mds: persist completed_requests reliably (#11048 John Spray)
-* mds: reduce memory consumption (Yan, Zheng)
-* mds: respawn instead of suicide on blacklist (John Spray)
-* mds: separate safe_pos in Journaler (#10368 John Spray)
-* mds: snapshot rename support (#3645 Yan, Zheng)
-* mds: store layout on header object (#4161 John Spray)
-* mds: throttle purge stray operations (#10390 John Spray)
-* mds: tolerate clock jumping backwards (#11053 Yan, Zheng)
-* mds: warn when clients fail to advance oldest_client_tid (#10657 Yan, Zheng)
-* misc cleanups and fixes (Danny Al-Gaaf)
-* misc coverity fixes (Danny Al-Gaaf)
-* misc performance and cleanup (Nathan Cutler, Xinxin Shu)
-* mon: add cache over MonitorDBStore (Kefu Chai)
-* mon: add 'mon_metadata <id>' command (Kefu Chai)
-* mon: add 'node ls ...' command (Kefu Chai)
-* mon: add NOFORWARD, OBSOLETE, DEPRECATE flags for mon commands (Joao Eduardo Luis)
-* mon: add PG count to 'ceph osd df' output (Michal Jarzabek)
-* mon: 'ceph osd metadata' can dump all osds (Haomai Wang)
-* mon: clean up, reorg some mon commands (Joao Eduardo Luis)
-* monclient: flush_log (John Spray)
-* mon: detect kv backend failures (Sage Weil)
-* mon: disallow >2 tiers (#11840 Kefu Chai)
-* mon: disallow ec pools as tiers (#11650 Samuel Just)
-* mon: do not deactivate last mds (#10862 John Spray)
-* mon: fix average utilization calc for 'osd df' (Mykola Golub)
-* mon: fix CRUSH map test for new pools (Sage Weil)
-* mon: fix log dump crash when debugging (Mykola Golub)
-* mon: fix mds beacon replies (#11590 Kefu Chai)
-* mon: fix metadata update race (Mykola Golub)
-* mon: fix min_last_epoch_clean tracking (Kefu Chai)
-* mon: fix 'pg ls' sort order, state names (#11569 Kefu Chai)
-* mon: fix refresh (#11470 Joao Eduardo Luis)
-* mon: fix variance calc in 'osd df' (Sage Weil)
-* mon: improve callout to crushtool (Mykola Golub)
-* mon: make blocked op messages more readable (Jianpeng Ma)
-* mon: make osd get pool 'all' only return applicable fields (#10891 Michal Jarzabek)
-* mon: misc scaling fixes (Sage Weil)
-* mon: normalize erasure-code profile for storage and comparison (Loic Dachary)
-* mon: only send mon metadata to supporting peers (Sage Weil)
-* mon: optionally specify osd id on 'osd create' (Mykola Golub)
-* mon: 'osd tree' fixes (Kefu Chai)
-* mon: periodic background scrub (Joao Eduardo Luis)
-* mon: prevent bucket deletion when referenced by a crush rule (#11602 Sage Weil)
-* mon: prevent pgp_num > pg_num (#12025 Xinxin Shu)
-* mon: prevent pool with snapshot state from being used as a tier (#11493 Sage Weil)
-* mon: prime pg_temp when CRUSH map changes (Sage Weil)
-* mon: refine check_remove_tier checks (#11504 John Spray)
-* mon: reject large max_mds values (#12222 John Spray)
-* mon: remove spurious who arg from 'mds rm ...' (John Spray)
-* mon: streamline session handling, fix memory leaks (Sage Weil)
-* mon: upgrades must pass through hammer (Sage Weil)
-* mon: warn on bogus cache tier config (Jianpeng Ma)
-* msgr: add ceph_perf_msgr tool (Hoamai Wang)
-* msgr: async: fix seq handling (Haomai Wang)
-* msgr: async: many many fixes (Haomai Wang)
-* msgr: simple: fix clear_pipe (#11381 Haomai Wang)
-* msgr: simple: fix connect_seq assert (Haomai Wang)
-* msgr: xio: fastpath improvements (Raju Kurunkad)
-* msgr: xio: fix ip and nonce (Raju Kurunkad)
-* msgr: xio: improve lane assignment (Vu Pham)
-* msgr: xio: sync with accellio v1.4 (Vu Pham)
-* msgr: xio: misc fixes (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham, Casey Bodley)
-* msg: unit tests (Haomai Wang)
-* objectcacher: misc bug fixes (Jianpeng Ma)
-* osd: add latency perf counters for tier operations (Xinze Chi)
-* osd: add misc perfcounters (Xinze Chi)
-* osd: add simple sleep injection in recovery (Sage Weil)
-* osd: allow SEEK_HOLE/SEEK_DATA for sparse read (Zhiqiang Wang)
-* osd: avoid dup omap sets for in pg metadata (Sage Weil)
-* osd: avoid multiple hit set insertions (Zhiqiang Wang)
-* osd: avoid transaction append in some cases (Sage Weil)
-* osd: break PG removal into multiple iterations (#10198 Guang Yang)
-* osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
-* osd: check scrub state when handling map (Jianpeng Ma)
-* osd: clean up some constness, privateness (Kefu Chai)
-* osd: clean up temp object if promotion fails (Jianpeng Ma)
-* osd: configure promotion based on write recency (Zhiqiang Wang)
-* osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
-* osd: don't send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
-* osd: EIO injection (David Zhang)
-* osd: elminiate txn apend, ECSubWrite copy (Samuel Just)
-* osd: erasure-code: drop entries according to LRU (Andreas-Joachim Peters)
-* osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
-* osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
-* osd: filejournal: cleanup (David Zafman)
-* osd: filestore: clone using splice (Jianpeng Ma)
-* osd: filestore: fix recursive lock (Xinxin Shu)
-* osd: fix check_for_full (Henry Chang)
-* osd: fix dirty accounting in make_writeable (Zhiqiang Wang)
-* osd: fix dup promotion lost op bug (Zhiqiang Wang)
-* osd: fix endless repair when object is unrecoverable (Jianpeng Ma, Kefu Chai)
-* osd: fix hitset object naming to use GMT (Kefu Chai)
-* osd: fix misc memory leaks (Sage Weil)
-* osd: fix negative degraded stats during backfill (Guang Yang)
-* osd: fix osdmap dump of blacklist items (John Spray)
-* osd: fix peek_queue locking in FileStore (Xinze Chi)
-* osd: fix pg resurrection (#11429 Samuel Just)
-* osd: fix promotion vs full cache tier (Samuel Just)
-* osd: fix replay requeue when pg is still activating (#13116 Samuel Just)
-* osd: fix scrub stat bugs (Sage Weil, Samuel Just)
-* osd: fix snap flushing from cache tier (again) (#11787 Samuel Just)
-* osd: fix snap handling on promotion (#11296 Sam Just)
-* osd: fix temp-clearing (David Zafman)
-* osd: force promotion for ops EC can't handle (Zhiqiang Wang)
-* osd: handle log split with overlapping entries (#11358 Samuel Just)
-* osd: ignore non-existent osds in unfound calc (#10976 Mykola Golub)
-* osd: improve behavior on machines with large memory pages (Steve Capper)
-* osd: include a temp namespace within each collection/pgid (Sage Weil)
-* osd: increase default max open files (Owen Synge)
-* osd: keyvaluestore: misc fixes (Varada Kari)
-* osd: low and high speed flush modes (Mingxin Liu)
-* osd: make suicide timeouts individually configurable (Samuel Just)
-* osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
-* osd: misc fixes (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
-* osd: move scrub in OpWQ (Samuel Just)
-* osd: newstore prototype (Sage Weil)
-* osd: ObjectStore internal API refactor (Sage Weil)
-* osd: peer_features includes self (David Zafman)
-* osd: pool size change triggers new interval (#11771 Samuel Just)
-* osd: prepopulate needs_recovery_map when only one peer has missing (#9558 Guang Yang)
-* osd: randomize scrub times (#10973 Kefu Chai)
-* osd: recovery, peering fixes (#11687 Samuel Just)
-* osd: refactor scrub and digest recording (Sage Weil)
-* osd: refuse first write to EC object at non-zero offset (Jianpeng Ma)
-* osd: relax reply order on proxy read (#11211 Zhiqiang Wang)
-* osd: require firefly features (David Zafman)
-* osd: set initial crush weight with more precision (Sage Weil)
-* osd: SHEC no longer experimental
-* osd: skip promotion for flush/evict op (Zhiqiang Wang)
-* osd: stripe over small xattrs to fit in XFS's 255 byte inline limit (Sage Weil, Ning Yao)
-* osd: sync object_map on syncfs (Samuel Just)
-* osd: take excl lock of op is rw (Samuel Just)
-* osd: throttle evict ops (Yunchuan Wen)
-* osd: upgrades must pass through hammer (Sage Weil)
-* osd: use a temp object for recovery (Sage Weil)
-* osd: use blkid to collection partition information (Joseph Handzik)
-* osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
-* osd: WBThrottle cleanups (Jianpeng Ma)
-* osd: write journal header on clean shutdown (Xinze Chi)
-* osdc/Objecter: allow per-pool calls to op_cancel_writes (John Spray)
-* os/filestore: enlarge getxattr buffer size (Jianpeng Ma)
-* pybind: pep8 cleanups (Danny Al-Gaaf)
-* pycephfs: many fixes for bindings (Haomai Wang)
-* qa: fix filelock_interrupt.py test (Yan, Zheng)
-* qa: improve ceph-disk tests (Loic Dachary)
-* qa: improve docker build layers (Loic Dachary)
-* qa: run-make-check.sh script (Loic Dachary)
-* rados: add --striper option to use libradosstriper (#10759 Sebastien Ponce)
-* rados: bench: add --no-verify option to improve performance (Piotr Dalek)
-* rados bench: misc fixes (Dmitry Yatsushkevich)
-* rados: fix error message on failed pool removal (Wido den Hollander)
-* radosgw-admin: add 'bucket check' function to repair bucket index (Yehuda Sadeh)
-* radosgw-admin: fix subuser modify output (#12286 Guce)
-* rados: handle --snapid arg properly (Abhishek Lekshmanan)
-* rados: improve bench buffer handling, performance (Piotr Dalek)
-* rados: misc bench fixes (Dmitry Yatsushkevich)
-* rados: new pool import implementation (John Spray)
-* rados: translate errno to string in CLI (#10877 Kefu Chai)
-* rbd: accept map options config option (Ilya Dryomov)
-* rbd: add disk usage tool (#7746 Jason Dillaman)
-* rbd: allow unmapping by spec (Ilya Dryomov)
-* rbd: cli: fix arg parsing with --io-pattern (Dmitry Yatsushkevich)
-* rbd: deprecate --new-format option (Jason Dillman)
-* rbd: fix error messages (#2862 Rajesh Nambiar)
-* rbd: fix link issues (Jason Dillaman)
-* rbd: improve CLI arg parsing, usage (Ilya Dryomov)
-* rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
-* rbd: recognize queue_depth kernel option (Ilya Dryomov)
-* rbd: support G and T units for CLI (Abhishek Lekshmanan)
-* rbd: update rbd man page (Ilya Dryomov)
-* rbd: update xfstests tests (Douglas Fuller)
-* rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
-* rest-bench: misc fixes (Shawn Chen)
-* rest-bench: support https (#3968 Yuan Zhou)
-* rgw: add max multipart upload parts (#12146 Abshishek Dixit)
-* rgw: add missing headers to Swift container details (#10666 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: add stats to headers for account GET (#10684 Yuan Zhou)
-* rgw: add Trasnaction-Id to response (Abhishek Dixit)
-* rgw: add X-Timestamp for Swift containers (#10938 Radoslaw Zarzynski)
-* rgw: always check if token is expired (#11367 Anton Aksola, Riku Lehto)
-* rgw: conversion tool to repair broken multipart objects (#12079 Yehuda Sadeh)
-* rgw: document layout of pools and objects (Pete Zaitcev)
-* rgw: do not enclose bucket header in quotes (#11860 Wido den Hollander)
-* rgw: do not prefetch data for HEAD requests (Guang Yang)
-* rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
-* rgw: do not set content-type if length is 0 (#11091 Orit Wasserman)
-* rgw: don't clobber bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: don't use end_marker for namespaced object listing (#11437 Yehuda Sadeh)
-* rgw: don't use rgw_socket_path if frontend is configured (#11160 Yehuda Sadeh)
-* rgw: enforce Content-Length for POST on Swift cont/obj (#10661 Radoslaw Zarzynski)
-* rgw: error out if frontend did not send all data (#11851 Yehuda Sadeh)
-* rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
-* rgw: fail if parts not specified on multipart upload (#11435 Yehuda Sadeh)
-* rgw: fix assignment of copy obj attributes (#11563 Yehuda Sadeh)
-* rgw: fix broken stats in container listing (#11285 Radoslaw Zarzynski)
-* rgw: fix bug in domain/subdomain splitting (Robin H. Johnson)
-* rgw: fix casing of Content-Type header (Robin H. Johnson)
-* rgw: fix civetweb max threads (#10243 Yehuda Sadeh)
-* rgw: fix Connection: header handling (#12298 Wido den Hollander)
-* rgw: fix copy metadata, support X-Copied-From for swift (#10663 Radoslaw Zarzynski)
-* rgw: fix data corruptions race condition (#11749 Wuxingyi)
-* rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
-* rgw: fix GET on swift account when limit == 0 (#10683 Radoslaw Zarzynski)
-* rgw: fix handling empty metadata items on Swift container (#11088 Radoslaw Zarzynski)
-* rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
-* rgw: fix locator for objects starting with _ (#11442 Yehuda Sadeh)
-* rgw: fix log rotation (Wuxingyi)
-* rgw: fix mulitipart upload in retry path (#11604 Yehuda Sadeh)
-* rgw: fix quota enforcement on POST (#11323 Sergey Arkhipov)
-* rgw: fix reset_loc (#11974 Yehuda Sadeh)
-* rgw: fix return code on missing upload (#11436 Yehuda Sadeh)
-* rgw: fix sysvinit script
-* rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
-* rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
-* rgw: force content type header on responses with no body (#11438 Orit Wasserman)
-* rgw: generate Date header for civetweb (#10873 Radoslaw Zarzynski)
-* rgw: generate new object tag when setting attrs (#11256 Yehuda Sadeh)
-* rgw: improve content-length env var handling (#11419 Robin H. Johnson)
-* rgw: improved support for swift account metadata (Radoslaw Zarzynski)
-* rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
-* rgw: issue aio for first chunk before flush cached data (#11322 Guang Yang)
-* rgw: log to /var/log/ceph instead of /var/log/radosgw
-* rgw: make init script wait for radosgw to stop (#11140 Dmitry Yatsushkevich)
-* rgw: make max put size configurable (#6999 Yuan Zhou)
-* rgw: make quota/gc threads configurable (#11047 Guang Yang)
-* rgw: make read user buckets backward compat (#10683 Radoslaw Zarzynski)
-* rgw: merge manifests properly with prefix override (#11622 Yehuda Sadeh)
-* rgw: only scan for objects not in a namespace (#11984 Yehuda Sadeh)
-* rgw: orphan detection tool (Yehuda Sadeh)
-* rgw: pass in civetweb configurables (#10907 Yehuda Sadeh)
-* rgw: rectify 202 Accepted in PUT response (#11148 Radoslaw Zarzynski)
-* rgw: remove meta file after deleting bucket (#11149 Orit Wasserman)
-* rgw: remove trailing :port from HTTP_HOST header (Sage Weil)
-* rgw: return 412 on bad limit when listing buckets (#11613 Yehuda Sadeh)
-* rgw: rework X-Trans-Id header to conform with Swift API (Radoslaw Rzarzynski)
-* rgw: s3 encoding-type for get bucket (Jeff Weber)
-* rgw: send ETag, Last-Modified for swift (#11087 Radoslaw Zarzynski)
-* rgw: set content length on container GET, PUT, DELETE, HEAD (#10971, #11036 Radoslaw Zarzynski)
-* rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
-* rgw: shard work over multiple librados instances (Pavan Rallabhandi)
-* rgw: support end marker on swift container GET (#10682 Radoslaw Zarzynski)
-* rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
-* rgw: swift: allow setting attributes with COPY (#10662 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: swift: do not override sent content type (#12363 Orit Wasserman)
-* rgw: swift: enforce Content-Type in response (#12157 Radoslaw Zarzynski)
-* rgw: swift: fix account listing (#11501 Radoslaw Zarzynski)
-* rgw: swift: fix metadata handling on copy (#10645 Radoslaw Zarzynski)
-* rgw: swift: send Last-Modified header (#10650 Radoslaw Zarzynski)
-* rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
-* rgw: swift: set content-length on keystone tokens (#11473 Herv Rousseau)
-* rgw: update keystone cache with token info (#11125 Yehuda Sadeh)
-* rgw: update to latest civetweb, enable config for IPv6 (#10965 Yehuda Sadeh)
-* rgw: use attrs from source bucket on copy (#11639 Javier M. Mellid)
-* rgw: use correct oid for gc chains (#11447 Yehuda Sadeh)
-* rgw: user rm is idempotent (Orit Wasserman)
-* rgw: use unique request id for civetweb (#10295 Orit Wasserman)
-* rocksdb: add perf counters for get/put latency (Xinxin Shu)
-* rocksdb, leveldb: fix compact_on_mount (Xiaoxi Chen)
-* rocksdb: pass options as single string (Xiaoxi Chen)
-* rocksdb: update to latest (Xiaoxi Chen)
-* rpm: add suse firewall files (Tim Serong)
-* rpm: always rebuild and install man pages for rpm (Owen Synge)
-* rpm: loosen ceph-test dependencies (Ken Dreyer)
-* rpm: many spec file fixes (Owen Synge, Ken Dreyer)
-* rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
-* rpm: misc systemd and SUSE fixes (Owen Synge, Nathan Cutler)
-* selinux policy (Boris Ranto, Milan Broz)
-* systemd: logrotate fixes (Tim Serong, Lars Marowsky-Bree, Nathan Cutler)
-* systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
-* systemd: run daemons as user ceph
-* sysvinit compat: misc fixes (Owen Synge)
-* test: misc fs test improvements (John Spray, Loic Dachary)
-* test: python tests, linter cleanup (Alfredo Deza)
-* tests: fixes for rbd xstests (Douglas Fuller)
-* tests: fix tiering health checks (Loic Dachary)
-* tests for low-level performance (Haomai Wang)
-* tests: many ec non-regression improvements (Loic Dachary)
-* tests: many many ec test improvements (Loic Dachary)
-* upstart: throttle restarts (#11798 Sage Weil, Greg Farnum)
-
-
-v10.1.2 Jewel (release candidate)
-=================================
-
-This is the third (and likely final) release candidate for Jewel.
-
-Notable Changes since v10.1.1
------------------------------
-
-* rgw: Jewel nfs fixes 3 (`pr#8460 <http://github.com/ceph/ceph/pull/8460>`_, Matt Benjamin)
-* osd/PG: set epoch_created and parent_split_bits for child pg (`issue#15426 <http://tracker.ceph.com/issues/15426>`_, `pr#8552 <http://github.com/ceph/ceph/pull/8552>`_, Kefu Chai)
-* rgw: signature mismatch with escaped characters in url query portion (`issue#15358 <http://tracker.ceph.com/issues/15358>`_, `pr#8445 <http://github.com/ceph/ceph/pull/8445>`_, Javier M. Mellid)
-* authtool: update --help and manpage to match code. (`pr#8456 <http://github.com/ceph/ceph/pull/8456>`_, Robin H. Johnson)
-* build: Respect TMPDIR for virtualenv. (`pr#8457 <http://github.com/ceph/ceph/pull/8457>`_, Robin H. Johnson)
-* ceph-disk: do not always fail when re-using a partition (`pr#8508 <http://github.com/ceph/ceph/pull/8508>`_, You Ji)
-* ceph-fuse: rotate log file (`pr#8485 <http://github.com/ceph/ceph/pull/8485>`_, Sage Weil)
-* ceph-rest-api: fix fs/flag/set (`pr#8428 <http://github.com/ceph/ceph/pull/8428>`_, Sage Weil)
-* check-generated.sh: can't source bash from sh (`pr#8521 <http://github.com/ceph/ceph/pull/8521>`_, Michal Jarzabek)
-* common: buffer: put a guard for stat() syscall during read_file (`pr#7956 <http://github.com/ceph/ceph/pull/7956>`_, xie xingguo)
-* common: fix time_t cast in decode (`issue#15330 <http://tracker.ceph.com/issues/15330>`_, `pr#8419 <http://github.com/ceph/ceph/pull/8419>`_, Adam C. Emerson)
-* crush: fix typo (`pr#8518 <http://github.com/ceph/ceph/pull/8518>`_, Wei Jin)
-* doc: rgw admin uses "region list" not "regions list" (`pr#8517 <http://github.com/ceph/ceph/pull/8517>`_, Kris Jurka)
-* journal: fix final result for JournalTrimmer::C_RemoveSet (`pr#8516 <http://github.com/ceph/ceph/pull/8516>`_, runsisi)
-* journal: fix race condition between Future and journal shutdown (`issue#15364 <http://tracker.ceph.com/issues/15364>`_, `pr#8477 <http://github.com/ceph/ceph/pull/8477>`_, Jason Dillaman)
-* librados: Revert "rados: Add new field flags for ceph_osd_op.copy_get." (`pr#8486 <http://github.com/ceph/ceph/pull/8486>`_, Sage Weil)
-* librbd: disallow unsafe rbd_op_threads values (`issue#15034 <http://tracker.ceph.com/issues/15034>`_, `pr#8459 <http://github.com/ceph/ceph/pull/8459>`_, Josh Durgin)
-* mailmap update (`pr#8522 <http://github.com/ceph/ceph/pull/8522>`_, M Ranga Swami Reddy)
-* mds: Add cmapv to ESessions default constructor initializer list (`pr#8403 <http://github.com/ceph/ceph/pull/8403>`_, John Coyle)
-* mds: fix file_layout_t legacy encoding snafu (`pr#8455 <http://github.com/ceph/ceph/pull/8455>`_, Sage Weil)
-* mds: Protect a number of unstable/experimental features behind durable flags (`pr#8383 <https://github.com/ceph/ceph/pull/8383>`_, Greg Farnum)
-* mds: Extend the existing pool access checking to include specific RADOS namespacse. (`pr#8444 <https://github.com/ceph/ceph/pull/8444>`_, Yan, Zheng)
-* os/ObjectStore: make device uuid probe output something friendly (`pr#8418 <http://github.com/ceph/ceph/pull/8418>`_, Sage Weil)
-* os/bluestore: revamp BlueFS bdev management and add perfcounters (`issue#15376 <http://tracker.ceph.com/issues/15376>`_, `pr#8431 <http://github.com/ceph/ceph/pull/8431>`_, Sage Weil)
-* os/filestore: force lfn attrs to be written atomically, restructure name length limits (`pr#8496 <http://github.com/ceph/ceph/pull/8496>`_, Samuel Just)
-* osd/ReplicatedPG::_rollback_to: update the OMAP flag (`issue#14777 <http://tracker.ceph.com/issues/14777>`_, `pr#8495 <http://github.com/ceph/ceph/pull/8495>`_, Samuel Just)
-* osd: clean up temp object if copy-from fails (`pr#8487 <http://github.com/ceph/ceph/pull/8487>`_, Sage Weil)
-* osd: fix two scrub relevant issues (`pr#8462 <http://github.com/ceph/ceph/pull/8462>`_, xie xingguo)
-* osd: fix/clean up full map request handling (`pr#8446 <http://github.com/ceph/ceph/pull/8446>`_, Sage Weil)
-* osdc/Objecter: fix narrow race with tid assignment (`issue#14364 <http://tracker.ceph.com/issues/14364>`_, `pr#7981 <http://github.com/ceph/ceph/pull/7981>`_, Sage Weil)
-* radosgw-admin: allow (`pr#8529 <http://github.com/ceph/ceph/pull/8529>`_, Orit Wasserman)
-* rbd-mirror: workaround for intermingled lockdep singletons (`pr#8476 <http://github.com/ceph/ceph/pull/8476>`_, Jason Dillaman)
-* rbd: journal reset should disable/re-enable journaling feature (`issue#15097 <http://tracker.ceph.com/issues/15097>`_, `pr#8490 <http://github.com/ceph/ceph/pull/8490>`_, Jason Dillaman)
-* rgw-admin: remove unused iterator and fix error message (`pr#8507 <http://github.com/ceph/ceph/pull/8507>`_, Karol Mroz)
-* rgw: aws4 subdomain calling bugfix (`issue#15369 <http://tracker.ceph.com/issues/15369>`_, `pr#8472 <http://github.com/ceph/ceph/pull/8472>`_, Javier M. Mellid)
-* rgw: fix a typo in error message (`pr#8434 <http://github.com/ceph/ceph/pull/8434>`_, Abhishek Lekshmanan)
-* rgw: fix problem deleting objects begining with double underscores (`issue#15318 <http://tracker.ceph.com/issues/15318>`_, `pr#8488 <http://github.com/ceph/ceph/pull/8488>`_, Orit Wasserman)
-* rgw: retry RGWRemoteMetaLog::read_log_info() while master is down (`pr#8453 <http://github.com/ceph/ceph/pull/8453>`_, Casey Bodley)
-* rgw: the map 'headers' is assigned a wrong value (`pr#8481 <http://github.com/ceph/ceph/pull/8481>`_, weiqiaomiao)
-* rgw_ldap: make ldap.h inclusion conditional (`pr#8500 <http://github.com/ceph/ceph/pull/8500>`_, Matt Benjamin)
-* systemd: drop any systemd imposed process/thread limits (`pr#8450 <http://github.com/ceph/ceph/pull/8450>`_, James Page)
-* test: fix ut test failure caused by lfn change (`issue#15464 <http://tracker.ceph.com/issues/15464>`_, `pr#8544 <http://github.com/ceph/ceph/pull/8544>`_, xie xingguo)
-* test: fix valgrind memcheck issues for rbd-mirror test cases (`issue#15354 <http://tracker.ceph.com/issues/15354>`_, `pr#8493 <http://github.com/ceph/ceph/pull/8493>`_, Jason Dillaman)
-* tests: add Ubuntu 16.04 xenial dockerfile (`pr#8519 <http://github.com/ceph/ceph/pull/8519>`_, Loic Dachary)
-
-v10.1.1 Jewel (release candidate)
-=================================
-
-This is the first release build that includes arm64/aarch64 packages
-for Ubuntu Xenial 16.04.
-
-Know issues with this release candidate
----------------------------------------
-
-There are a few known issues to watch out for:
-
- * Old CephFS clusters will mangle the layouts with this release; the
- fix was committed just after it was cut. Wait for the next RC or the
- release if you're upgrading a cluster that has a CephFS data pool as
- pool 0.
-
- * The upstart ceph-mds-all.conf file is missing.
-
-
-Notable Changes since v10.1.0
------------------------------
-
-* Adding documentation on how to use new dynamic throttle scheme (`pr#8069 <http://github.com/ceph/ceph/pull/8069>`_, Somnath Roy)
-* Be more careful about directory fragmentation and scrubbing (`issue#15167 <http://tracker.ceph.com/issues/15167>`_, `pr#8180 <http://github.com/ceph/ceph/pull/8180>`_, Yan, Zheng)
-* CMake: For CMake version <= 2.8.11, use LINK_PRIVATE (`pr#8422 <http://github.com/ceph/ceph/pull/8422>`_, Haomai Wang)
-* Makefile-env.am: set a default for CEPH_BUILD_VIRTUALENV (part 2) (`pr#8320 <http://github.com/ceph/ceph/pull/8320>`_, Loic Dachary)
-* Minor fixes around data scan in some scenarios (`pr#8115 <http://github.com/ceph/ceph/pull/8115>`_, Yan, Zheng)
-* PG: pg down state blocked by osd.x, lost osd.x cannot solve peering stuck (`issue#13531 <http://tracker.ceph.com/issues/13531>`_, `pr#6317 <http://github.com/ceph/ceph/pull/6317>`_, Xiaowei Chen)
-* osd/PG: indicate in pg query output whether ignore_history_les would help (`pr#8156 <http://github.com/ceph/ceph/pull/8156>`_, Sage Weil)
-* Striper: reduce assemble_result log level (`pr#8426 <http://github.com/ceph/ceph/pull/8426>`_, Jason Dillaman)
-* Test exit values on test.sh, fix tier.cc (`issue#15165 <http://tracker.ceph.com/issues/15165>`_, `pr#8266 <http://github.com/ceph/ceph/pull/8266>`_, Samuel Just)
-* ceph.in: correct dev python path for automake builds (`pr#8360 <http://github.com/ceph/ceph/pull/8360>`_, Josh Durgin)
-* osd/OSD: fix build_past_intervals_parallel (`pr#8215 <http://github.com/ceph/ceph/pull/8215>`_, David Zafman)
-* rgw: sync fixes 4 (`pr#8190 <http://github.com/ceph/ceph/pull/8190>`_, Yehuda Sadeh)
-* [rgw] Check return code in RGWFileHandle::write (`pr#7875 <http://github.com/ceph/ceph/pull/7875>`_, Brad Hubbard)
-* build: fix compiling warnings (`pr#8366 <http://github.com/ceph/ceph/pull/8366>`_, Dongsheng Yang)
-* ceph-detect-init/run-tox.sh: FreeBSD: No init detect (`pr#8373 <http://github.com/ceph/ceph/pull/8373>`_, Willem Jan Withagen)
-* ceph.in: fix python libpath for automake as well (`pr#8362 <http://github.com/ceph/ceph/pull/8362>`_, Josh Durgin)
-* ceph: bash auto complete for CLI based on mon command descriptions (`pr#7693 <http://github.com/ceph/ceph/pull/7693>`_, Adam Kupczyk)
-* cls_journal: fix -EEXIST checking (`pr#8413 <http://github.com/ceph/ceph/pull/8413>`_, runsisi)
-* cls_rbd: fix -EEXIST checking in cls::rbd::image_set (`pr#8371 <http://github.com/ceph/ceph/pull/8371>`_, runsisi)
-* cls_rbd: mirror_image_list should return global image id (`pr#8297 <http://github.com/ceph/ceph/pull/8297>`_, Jason Dillaman)
-* cls_rbd: pass WILLNEED fadvise flags during object map update (`issue#15332 <http://tracker.ceph.com/issues/15332>`_, `pr#8380 <http://github.com/ceph/ceph/pull/8380>`_, Jason Dillaman)
-* cls_rbd: read_peers: update last_read on next cls_cxx_map_get_vals (`pr#8374 <http://github.com/ceph/ceph/pull/8374>`_, Mykola Golub)
-* cmake: Build cython modules and change paths to bin/, lib/ (`pr#8351 <http://github.com/ceph/ceph/pull/8351>`_, John Spray, Ali Maredia)
-* cmake: add FindOpenSSL.cmake (`pr#8106 <http://github.com/ceph/ceph/pull/8106>`_, Marcus Watts, Matt Benjamin)
-* cmake: add StandardPolicy.cc to librbd (`pr#8368 <http://github.com/ceph/ceph/pull/8368>`_, Kefu Chai)
-* cmake: add missing librbd/MirrorWatcher.cc and librd/ObjectWatcher.cc (`pr#8399 <http://github.com/ceph/ceph/pull/8399>`_, Orit Wasserman)
-* cmake: fix mrun to handle cmake build structure (`pr#8237 <http://github.com/ceph/ceph/pull/8237>`_, Orit Wasserman)
-* cmake: fix the build of test_rados_api_list (`pr#8438 <http://github.com/ceph/ceph/pull/8438>`_, Kefu Chai)
-* common: fix race during optracker switches between enabled/disabled mode (`pr#8330 <http://github.com/ceph/ceph/pull/8330>`_, xie xingguo)
-* config_opts: disable filestore throttle soft backoff by default (`pr#8265 <http://github.com/ceph/ceph/pull/8265>`_, Samuel Just)
-* configure: Add -D_LARGEFILE64_SOURCE to Linux build. (`pr#8402 <http://github.com/ceph/ceph/pull/8402>`_, Ira Cooper)
-* crush: fix error log (`pr#8430 <http://github.com/ceph/ceph/pull/8430>`_, Wei Jin)
-* crushtool: Don't crash when called on a file that isn't a crushmap (`issue#8286 <http://tracker.ceph.com/issues/8286>`_, `pr#8038 <http://github.com/ceph/ceph/pull/8038>`_, Brad Hubbard)
-* debian/rules: put init-ceph in /etc/init.d/ceph, not ceph-base (`issue#15329 <http://tracker.ceph.com/issues/15329>`_, `pr#8406 <http://github.com/ceph/ceph/pull/8406>`_, Dan Mick)
-* doc/dev: add "Deploy a cluster for manual testing" section (`issue#15218 <http://tracker.ceph.com/issues/15218>`_, `pr#8228 <http://github.com/ceph/ceph/pull/8228>`_, Nathan Cutler)
-* doc/rados/operations/crush: fix the formatting (`pr#8306 <http://github.com/ceph/ceph/pull/8306>`_, Kefu Chai)
-* doc/release-notes: fix indents (`pr#8345 <http://github.com/ceph/ceph/pull/8345>`_, Kefu Chai)
-* doc: Fixes headline different font size and type (`pr#8328 <http://github.com/ceph/ceph/pull/8328>`_, scienceluo)
-* doc: Remove Ceph Monitors do lots of fsync() (`issue#15288 <http://tracker.ceph.com/issues/15288>`_, `pr#8327 <http://github.com/ceph/ceph/pull/8327>`_, Vikhyat Umrao)
-* doc: Updated CloudStack RBD documentation (`pr#8308 <http://github.com/ceph/ceph/pull/8308>`_, Wido den Hollander)
-* doc: amend Fixes instructions in SubmittingPatches (`pr#8312 <http://github.com/ceph/ceph/pull/8312>`_, Nathan Cutler)
-* doc: draft notes for jewel (`pr#8211 <http://github.com/ceph/ceph/pull/8211>`_, Loic Dachary, Sage Weil)
-* doc: fix typo, duplicated content etc. for Jewel release notes (`pr#8342 <http://github.com/ceph/ceph/pull/8342>`_, xie xingguo)
-* doc: fix wrong type of hyphen (`pr#8252 <http://github.com/ceph/ceph/pull/8252>`_, xie xingguo)
-* doc: rgw_region_root_pool option should be in [global] (`issue#15244 <http://tracker.ceph.com/issues/15244>`_, `pr#8271 <http://github.com/ceph/ceph/pull/8271>`_, Vikhyat Umrao)
-* doc: very basic doc on mstart (`pr#8207 <http://github.com/ceph/ceph/pull/8207>`_, Abhishek Lekshmanan)
-* global/global_init: expand metavariables in setuser_match_path (`issue#15365 <http://tracker.ceph.com/issues/15365>`_, `pr#8433 <http://github.com/ceph/ceph/pull/8433>`_, Sage Weil)
-* global/signal_handler: print thread name in signal handler (`pr#8177 <http://github.com/ceph/ceph/pull/8177>`_, Jianpeng Ma)
-* libcephfs: fix python tests and fix getcwd on missing dir (`pr#7901 <http://github.com/ceph/ceph/pull/7901>`_, John Spray)
-* librbd: avoid throwing error if mirroring is unsupported (`pr#8417 <http://github.com/ceph/ceph/pull/8417>`_, Jason Dillaman)
-* librbd: disable image mirroring when image is removed (`issue#15265 <http://tracker.ceph.com/issues/15265>`_, `pr#8375 <http://github.com/ceph/ceph/pull/8375>`_, Ricardo Dias)
-* librbd: send notifications for mirroring status updates (`pr#8355 <http://github.com/ceph/ceph/pull/8355>`_, Jason Dillaman)
-* mailmap updates (`pr#8256 <http://github.com/ceph/ceph/pull/8256>`_, Loic Dachary)
-* makefile: fix rbdmap manpage (`pr#8310 <http://github.com/ceph/ceph/pull/8310>`_, Kefu Chai)
-* mds: allow client to request caps when opening file (`issue#14360 <http://tracker.ceph.com/issues/14360>`_, `pr#7952 <http://github.com/ceph/ceph/pull/7952>`_, Yan, Zheng)
-* messages/MOSDOp: clear reqid inc for v6 encoding (`issue#15230 <http://tracker.ceph.com/issues/15230>`_, `pr#8299 <http://github.com/ceph/ceph/pull/8299>`_, Sage Weil)
-* mon/MonClient: fix shutdown race (`issue#13992 <http://tracker.ceph.com/issues/13992>`_, `pr#8335 <http://github.com/ceph/ceph/pull/8335>`_, Sage Weil)
-* mon: do not send useless pg_create messages for split pgs (`pr#8247 <http://github.com/ceph/ceph/pull/8247>`_, Sage Weil)
-* mon: mark_down_pgs in lockstep with pg_map's osdmap epoch (`pr#8208 <http://github.com/ceph/ceph/pull/8208>`_, Sage Weil)
-* mon: remove remove_legacy_versions() (`pr#8324 <http://github.com/ceph/ceph/pull/8324>`_, Kefu Chai)
-* mon: remove unnecessary comment for update_from_paxos (`pr#8400 <http://github.com/ceph/ceph/pull/8400>`_, Qinghua Jin)
-* mon: remove unused variable (`issue#15292 <http://tracker.ceph.com/issues/15292>`_, `pr#8337 <http://github.com/ceph/ceph/pull/8337>`_, Javier M. Mellid)
-* mon: show the pool quota info on ceph df detail command (`issue#14216 <http://tracker.ceph.com/issues/14216>`_, `pr#7094 <http://github.com/ceph/ceph/pull/7094>`_, song baisen)
-* monclient: avoid key renew storm on clock skew (`issue#12065 <http://tracker.ceph.com/issues/12065>`_, `pr#8258 <http://github.com/ceph/ceph/pull/8258>`_, Alexey Sheplyakov)
-* mrun: update path to cmake binaries (`pr#8447 <http://github.com/ceph/ceph/pull/8447>`_, Casey Bodley)
-* msg/async: avoid log spam on throttle (`issue#15031 <http://tracker.ceph.com/issues/15031>`_, `pr#8263 <http://github.com/ceph/ceph/pull/8263>`_, Kefu Chai)
-* msg/async: remove experiment feature (`pr#7820 <http://github.com/ceph/ceph/pull/7820>`_, Haomai Wang)
-* os/ObjectStore: add noexcept to ensure move ctor is used (`pr#8421 <http://github.com/ceph/ceph/pull/8421>`_, Kefu Chai)
-* os/ObjectStore: fix _update_op for split dest_cid (`pr#8364 <http://github.com/ceph/ceph/pull/8364>`_, Sage Weil)
-* os/ObjectStore: try_move_rename in transaction append and add coverage to store_test (`issue#15205 <http://tracker.ceph.com/issues/15205>`_, `pr#8359 <http://github.com/ceph/ceph/pull/8359>`_, Samuel Just)
-* os/bluestore: a few fixes (`pr#8193 <http://github.com/ceph/ceph/pull/8193>`_, Sage Weil)
-* os/bluestore: ceph-bluefs-tool fixes (`issue#15261 <http://tracker.ceph.com/issues/15261>`_, `pr#8292 <http://github.com/ceph/ceph/pull/8292>`_, Venky Shankar)
-* osd/ClassHandler: only dlclose() the classes not missing (`pr#8354 <http://github.com/ceph/ceph/pull/8354>`_, Kefu Chai)
-* osd/OSD.cc: finish full_map_request every MOSDMap message. (`issue#15130 <http://tracker.ceph.com/issues/15130>`_, `pr#8147 <http://github.com/ceph/ceph/pull/8147>`_, Xiaoxi Chen)
-* osd: add 'proxy' cache mode (`issue#12814 <http://tracker.ceph.com/issues/12814>`_, `pr#8210 <http://github.com/ceph/ceph/pull/8210>`_, Sage Weil)
-* osd: add the support of per pool scrub priority (`pr#7062 <http://github.com/ceph/ceph/pull/7062>`_, Zhiqiang Wang)
-* osd: bail out of _committed_osd_maps if we are shutting down (`pr#8267 <http://github.com/ceph/ceph/pull/8267>`_, Samuel Just)
-* osd: duplicated clear for peer_missing (`pr#8315 <http://github.com/ceph/ceph/pull/8315>`_, Ning Yao)
-* osd: fix bugs for omap ops (`pr#8230 <http://github.com/ceph/ceph/pull/8230>`_, Jianpeng Ma)
-* osd: fix dirtying info without correctly setting drity_info field (`pr#8275 <http://github.com/ceph/ceph/pull/8275>`_, xie xingguo)
-* osd: fix dump_ops_in_flight races (`issue#8885 <http://tracker.ceph.com/issues/8885>`_, `pr#8044 <http://github.com/ceph/ceph/pull/8044>`_, David Zafman)
-* osd: fix epoch check in handle_pg_create (`pr#8382 <http://github.com/ceph/ceph/pull/8382>`_, Samuel Just)
-* osd: fix failure report handling during ms_handle_connect() (`pr#8348 <http://github.com/ceph/ceph/pull/8348>`_, xie xingguo)
-* osd: fix log info (`pr#8273 <http://github.com/ceph/ceph/pull/8273>`_, Wei Jin)
-* osd: fix reference count, rare race condition etc. (`pr#8254 <http://github.com/ceph/ceph/pull/8254>`_, xie xingguo)
-* osd: fix tick relevant issues (`pr#8369 <http://github.com/ceph/ceph/pull/8369>`_, xie xingguo)
-* osd: more fixes for incorrectly dirtying info; resend reply for duplicated scrub-reserve req (`pr#8291 <http://github.com/ceph/ceph/pull/8291>`_, xie xingguo)
-* osdc/Objecter: dout log after assign tid (`pr#8202 <http://github.com/ceph/ceph/pull/8202>`_, Xinze Chi)
-* osdc/Objecter: use full pgid hash in PGNLS ops (`pr#8378 <http://github.com/ceph/ceph/pull/8378>`_, Sage Weil)
-* osdmap: rm nonused variable (`pr#8423 <http://github.com/ceph/ceph/pull/8423>`_, Wei Jin)
-* pybind/Makefile.am: Prevent race creating CYTHON_BUILD_DIR (`issue#15276 <http://tracker.ceph.com/issues/15276>`_, `pr#8356 <http://github.com/ceph/ceph/pull/8356>`_, Dan Mick)
-* pybind/rados: python3 fix (`pr#8331 <http://github.com/ceph/ceph/pull/8331>`_, Mehdi Abaakouk)
-* pybind: add flock to libcephfs python bindings (`pr#7902 <http://github.com/ceph/ceph/pull/7902>`_, John Spray)
-* qa: update rest test cephfs calls (`issue#15309 <http://tracker.ceph.com/issues/15309>`_, `pr#8372 <http://github.com/ceph/ceph/pull/8372>`_, John Spray)
-* qa: update rest test cephfs calls (part 2) (`issue#15309 <http://tracker.ceph.com/issues/15309>`_, `pr#8393 <http://github.com/ceph/ceph/pull/8393>`_, John Spray)
-* radosgw-admin: 'period commit' supplies user-readable error messages (`pr#8264 <http://github.com/ceph/ceph/pull/8264>`_, Casey Bodley)
-* radosgw-admin: fix for 'realm pull' (`pr#8404 <http://github.com/ceph/ceph/pull/8404>`_, Casey Bodley)
-* rbd-mirror: asok commands to get status and flush on Mirror and Replayer level (`pr#8235 <http://github.com/ceph/ceph/pull/8235>`_, Mykola Golub)
-* rbd-mirror: enabling/disabling pool mirroring should update the mirroring directory (`issue#15217 <http://tracker.ceph.com/issues/15217>`_, `pr#8261 <http://github.com/ceph/ceph/pull/8261>`_, Ricardo Dias)
-* rbd-mirror: fix missing increment for iterators (`pr#8352 <http://github.com/ceph/ceph/pull/8352>`_, runsisi)
-* rbd-mirror: initial failover / failback support (`pr#8287 <http://github.com/ceph/ceph/pull/8287>`_, Jason Dillaman)
-* rbd-mirror: prevent enabling/disabling an image's mirroring when not in image mode (`issue#15267 <http://tracker.ceph.com/issues/15267>`_, `pr#8332 <http://github.com/ceph/ceph/pull/8332>`_, Ricardo Dias)
-* rbd-mirror: switch fsid over to mirror uuid (`issue#15238 <http://tracker.ceph.com/issues/15238>`_, `pr#8280 <http://github.com/ceph/ceph/pull/8280>`_, Ricardo Dias)
-* rbd: allow librados to prune the command-line for config overrides (`issue#15250 <http://tracker.ceph.com/issues/15250>`_, `pr#8282 <http://github.com/ceph/ceph/pull/8282>`_, Jason Dillaman)
-* rbdmap: add manpage (`issue#15212 <http://tracker.ceph.com/issues/15212>`_, `pr#8224 <http://github.com/ceph/ceph/pull/8224>`_, Nathan Cutler)
-* releases: what is merged where and when ? (`pr#8358 <http://github.com/ceph/ceph/pull/8358>`_, Loic Dachary)
-* rgw/rgw_admin:fix bug about list and stats command (`pr#8200 <http://github.com/ceph/ceph/pull/8200>`_, Qiankun Zheng)
-* rgw: Do not send a Content-Type on a '304 Not Modified' response (`issue#15119 <http://tracker.ceph.com/issues/15119>`_, `pr#8253 <http://github.com/ceph/ceph/pull/8253>`_, Wido den Hollander)
-* rgw: Multipart ListPartsResult ETag quotes (`issue#15334 <http://tracker.ceph.com/issues/15334>`_, `pr#8387 <http://github.com/ceph/ceph/pull/8387>`_, Robin H. Johnson)
-* rgw: S3: set EncodingType in ListBucketResult (`pr#7712 <http://github.com/ceph/ceph/pull/7712>`_, Victor Makarov)
-* rgw: accept data only at the first time in response to a request (`pr#8084 <http://github.com/ceph/ceph/pull/8084>`_, sunspot)
-* rgw: add a few more help options in admin interface (`pr#8410 <http://github.com/ceph/ceph/pull/8410>`_, Abhishek Lekshmanan)
-* rgw: add zone delete to rgw-admin help (`pr#8184 <http://github.com/ceph/ceph/pull/8184>`_, Abhishek Lekshmanan)
-* rgw: convert plain object to versioned (with null version) when removing (`issue#15243 <http://tracker.ceph.com/issues/15243>`_, `pr#8268 <http://github.com/ceph/ceph/pull/8268>`_, Yehuda Sadeh)
-* rgw: fix compiling error (`pr#8394 <http://github.com/ceph/ceph/pull/8394>`_, xie xingguo)
-* rgw: fix lockdep false positive (`pr#8284 <http://github.com/ceph/ceph/pull/8284>`_, Yehuda Sadeh)
-* rgw:Use count fn in RGWUserBuckets for quota check (`pr#8294 <http://github.com/ceph/ceph/pull/8294>`_, Abhishek Lekshmanan)
-* rgw_admin: remove unused parent_period arg (`pr#8411 <http://github.com/ceph/ceph/pull/8411>`_, Abhishek Lekshmanan)
-* rgw_file: set owner uid, gid, and Unix mode on new objects (`pr#8321 <http://github.com/ceph/ceph/pull/8321>`_, Matt Benjamin)
-* rpm: prefer UID/GID 167 when creating ceph user/group (`issue#15246 <http://tracker.ceph.com/issues/15246>`_, `pr#8277 <http://github.com/ceph/ceph/pull/8277>`_, Nathan Cutler)
-* script: subscription-manager support (`issue#14972 <http://tracker.ceph.com/issues/14972>`_, `pr#7907 <http://github.com/ceph/ceph/pull/7907>`_, Loic Dachary)
-* set 128MB tcmalloc cache size by bytes (`pr#8427 <http://github.com/ceph/ceph/pull/8427>`_, Star Guo)
-* systemd: set up environment in rbdmap unit file (`issue#14984 <http://tracker.ceph.com/issues/14984>`_, `pr#8222 <http://github.com/ceph/ceph/pull/8222>`_, Nathan Cutler)
-* test/system/\*: use dynamically generated pool name (`issue#15240 <http://tracker.ceph.com/issues/15240>`_, `pr#8318 <http://github.com/ceph/ceph/pull/8318>`_, Kefu Chai)
-* test/system/rados_list_parallel: print oid if rados_write fails (`issue#15240 <http://tracker.ceph.com/issues/15240>`_, `pr#8309 <http://github.com/ceph/ceph/pull/8309>`_, Kefu Chai)
-* test/test-erasure-code.sh: disable pg_temp priming (`issue#15211 <http://tracker.ceph.com/issues/15211>`_, `pr#8260 <http://github.com/ceph/ceph/pull/8260>`_, Sage Weil)
-* test/test_pool_create.sh: fix port (`pr#8361 <http://github.com/ceph/ceph/pull/8361>`_, Sage Weil)
-* test: Fix test to run with btrfs which has snap_### dirs (`issue#15347 <http://tracker.ceph.com/issues/15347>`_, `pr#8420 <http://github.com/ceph/ceph/pull/8420>`_, David Zafman)
-* test: TestMirroringWatcher test cases were not closing images (`pr#8435 <http://github.com/ceph/ceph/pull/8435>`_, Jason Dillaman)
-* test: rbd-mirror: script improvements for manual testing (`pr#8325 <http://github.com/ceph/ceph/pull/8325>`_, Mykola Golub)
-* tests: Fixing broken test/cephtool-test-mon.sh test (`pr#8429 <http://github.com/ceph/ceph/pull/8429>`_, Erwan Velu)
-* tests: Improving 'make check' execution time (`pr#8131 <http://github.com/ceph/ceph/pull/8131>`_, Erwan Velu)
-* unittest_erasure_code_plugin: fix deadlock (Alpine) (`pr#8314 <http://github.com/ceph/ceph/pull/8314>`_, John Coyle)
-* vstart: fix up cmake paths when VSTART_DEST is given (`pr#8363 <http://github.com/ceph/ceph/pull/8363>`_, Casey Bodley)
-* vstart: make -k with optional mon_num. (`pr#8251 <http://github.com/ceph/ceph/pull/8251>`_, Jianpeng Ma)
-* xio: add prefix to xio msgr logs (`pr#8148 <http://github.com/ceph/ceph/pull/8148>`_, Roi Dayan)
-* xio: fix compilation against latest accelio (`pr#8022 <http://github.com/ceph/ceph/pull/8022>`_, Roi Dayan)
-* xio: xio_init needs to be called before any other xio function (`pr#8227 <http://github.com/ceph/ceph/pull/8227>`_, Roi Dayan)
-* ceph.spec.in: disable lttng and babeltrace explicitly (`issue#14844 <http://tracker.ceph.com/issues/14844>`_, `pr#7857 <http://github.com/ceph/ceph/pull/7857>`_, Kefu Chai)
-
-v10.1.0 Jewel (release candidate)
-=================================
-
-There are a few known issues with this release candidate; see below.
-
-Known Issues with v10.1.0
--------------------------
-
-* While running a mixed version cluster of jewel and infernalis or
- hammer monitors, any MDSMap updates will cause the pre-jewel
- monitors to crash. Workaround is to simply upgrde all monitors.
- There is a fix but it is still being tested.
-
-* Some of the rbd-mirror functionality for switching between active
- and replica images is not yet merged.
-
-Notable Changes since v10.0.4
------------------------------
-
-* ceph.spec.in: do not install Ceph RA on systemd platforms (`issue#14828 <http://tracker.ceph.com/issues/14828>`_, `pr#7894 <http://github.com/ceph/ceph/pull/7894>`_, Nathan Cutler)
-* mdsa: A few more snapshot fixes, mostly around snapshotted inode/dentry tracking (`pr#7798 <http://github.com/ceph/ceph/pull/7798>`_, Yan, Zheng)
-* AUTHORS: update email (`pr#7854 <http://github.com/ceph/ceph/pull/7854>`_, Yehuda Sadeh)
-* ceph-disk: Add --setuser and --setgroup options for ceph-disk (`pr#7351 <http://github.com/ceph/ceph/pull/7351>`_, Mike Shuey)
-* build: Adding build requires (`pr#7742 <http://github.com/ceph/ceph/pull/7742>`_, Erwan Velu)
-* msg/async: AsyncMessenger: fix several bugs (`pr#7831 <http://github.com/ceph/ceph/pull/7831>`_, Haomai Wang)
-* msg/async: AsyncMessenger: fix valgrind leak (`pr#7725 <http://github.com/ceph/ceph/pull/7725>`_, Haomai Wang)
-* doc: Clarify usage on starting single osd/mds/mon. (`pr#7641 <http://github.com/ceph/ceph/pull/7641>`_, Patrick Donnelly)
-* common: Deprecate or free up a bunch of feature bits (`pr#8214 <http://github.com/ceph/ceph/pull/8214>`_, Samuel Just)
-* msg/async: Event: fix clock skew problem (`pr#7949 <http://github.com/ceph/ceph/pull/7949>`_, Wei Jin)
-* osd: FileStore: Added O_DSYNC write scheme (`pr#7752 <http://github.com/ceph/ceph/pull/7752>`_, Somnath Roy)
-* osd: FileStore: fix initialization order for m_disable_wbthrottle (`pr#8067 <http://github.com/ceph/ceph/pull/8067>`_, Samuel Just)
-* build: Fixing BTRFS issue at 'make check' (`pr#7805 <http://github.com/ceph/ceph/pull/7805>`_, Erwan Velu)
-* build: FreeBSD related fixes (`pr#7170 <http://github.com/ceph/ceph/pull/7170>`_, Mykola Golub)
-* ceph-disk: Improving 'make check' for ceph-disk (`pr#7762 <http://github.com/ceph/ceph/pull/7762>`_, Erwan Velu)
-* rgw: increase verbosity level on RGWObjManifest line (`pr#7285 <http://github.com/ceph/ceph/pull/7285>`_, magicrobotmonkey)
-* build: workaround an automake bug for "make check" (`issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7626 <http://github.com/ceph/ceph/pull/7626>`_, Kefu Chai)
-* ceph-fuse,libcephfs: Fix client handling of "lost" open directories on shutdown (`issue#14996 <http://tracker.ceph.com/issues/14996>`_, `pr#7994 <http://github.com/ceph/ceph/pull/7994>`_, Yan, Zheng)
-* mds: Multi-filesystem support (`issue#14952 <http://tracker.ceph.com/issues/14952>`_, `pr#6953 <http://github.com/ceph/ceph/pull/6953>`_, John Spray, Sage Weil)
-* os/bluestore/NVMEDevice: refactor probe/attach codes and support zero command (`pr#7647 <http://github.com/ceph/ceph/pull/7647>`_, Haomai Wang)
-* librados: detect laggy ops with objecter_timeout, not osd_timeout (`pr#7629 <http://github.com/ceph/ceph/pull/7629>`_, Greg Farnum)
-* ceph.spec.in: fix openldap and openssl build dependencies for SUSE (`issue#15138 <http://tracker.ceph.com/issues/15138>`_, `pr#8120 <http://github.com/ceph/ceph/pull/8120>`_, Nathan Cutler)
-* osd: repop and lost-unfound overhaul (`pr#7765 <http://github.com/ceph/ceph/pull/7765>`_, Samuel Just)
-* librbd: Revert "librbd: use task finisher per CephContext" (`issue#14780 <http://tracker.ceph.com/issues/14780>`_, `pr#7667 <http://github.com/ceph/ceph/pull/7667>`_, Josh Durgin)
-* rgw: Fix subuser harder with tenants (`pr#7618 <http://github.com/ceph/ceph/pull/7618>`_, Pete Zaitcev)
-* rgw: ldap fixes (`pr#8168 <http://github.com/ceph/ceph/pull/8168>`_, Matt Benjamin)
-* rgw: check the return value when call fe->run() (`issue#14585 <http://tracker.ceph.com/issues/14585>`_, `pr#7457 <http://github.com/ceph/ceph/pull/7457>`_, wei qiaomiao)
-* rgw: Revert "rgw ldap" (`pr#8075 <http://github.com/ceph/ceph/pull/8075>`_, Yehuda Sadeh)
-* librados: Striper: Fix incorrect push_front -> append_zero change (`pr#7578 <http://github.com/ceph/ceph/pull/7578>`_, Haomai Wang)
-* rgw: build-related fixes (`pr#8076 <http://github.com/ceph/ceph/pull/8076>`_, Yehuda Sadeh, Matt Benjamin)
-* mirrors: Updated scripts and documentation for mirrors (`pr#7847 <http://github.com/ceph/ceph/pull/7847>`_, Wido den Hollander)
-* misc: use make_shared while creating shared_ptr (`pr#7769 <http://github.com/ceph/ceph/pull/7769>`_, Somnath Roy)
-* cmake (`pr#7849 <http://github.com/ceph/ceph/pull/7849>`_, Ali Maredia)
-* mds: filelock deadlock (`pr#7713 <http://github.com/ceph/ceph/pull/7713>`_, Yan, Zheng)
-* mds: fix fsmap decode (`pr#8063 <http://github.com/ceph/ceph/pull/8063>`_, Greg Farnum)
-* rgw: fix mdlog (`pr#8183 <http://github.com/ceph/ceph/pull/8183>`_, Orit Wasserman)
-* rgw: highres time stamps (`pr#8108 <http://github.com/ceph/ceph/pull/8108>`_, Yehuda Sadeh, Adam C. Emerson, Matt Benjamin)
-* rgw: swift versioning disabled (`pr#8066 <http://github.com/ceph/ceph/pull/8066>`_, Yehuda Sadeh, Radoslaw Zarzynski)
-* rgw: sync fixes 3 (`pr#8170 <http://github.com/ceph/ceph/pull/8170>`_, Yehuda Sadeh)
-* msg/xio: fixes (`pr#7603 <http://github.com/ceph/ceph/pull/7603>`_, Roi Dayan)
-* ceph-fuse,libcephfs: fix free fds being exhausted eventually because freed fds are never put back (`issue#14798 <http://tracker.ceph.com/issues/14798>`_, `pr#7685 <http://github.com/ceph/ceph/pull/7685>`_, Zhi Zhang)
-* rgw: RGWLib::env is not used so remove it (`pr#7874 <http://github.com/ceph/ceph/pull/7874>`_, Brad Hubbard)
-* build: a few armhf (32-bit build) fixes (`pr#7999 <http://github.com/ceph/ceph/pull/7999>`_, Eric Lee, Sage Weil)
-* osd: add scrub persist/query API (`issue#13505 <http://tracker.ceph.com/issues/13505>`_, `pr#6898 <http://github.com/ceph/ceph/pull/6898>`_, Kefu Chai, Samuel Just)
-* rgw: adds the radosgw-admin sync status command that gives a human readable status of the sync process at a specific zone (`pr#8030 <http://github.com/ceph/ceph/pull/8030>`_, Yehuda Sadeh)
-* scripts: adjust mstart and mstop script to run with cmake build (`pr#6920 <http://github.com/ceph/ceph/pull/6920>`_, Orit Wasserman)
-* buffer: add symmetry operator==() and operator!=() (`pr#7974 <http://github.com/ceph/ceph/pull/7974>`_, Kefu Chai)
-* buffer: hide iterator_impl symbols (`issue#14788 <http://tracker.ceph.com/issues/14788>`_, `pr#7688 <http://github.com/ceph/ceph/pull/7688>`_, Kefu Chai)
-* buffer: increment history alloc as well in raw_combined (`issue#14955 <http://tracker.ceph.com/issues/14955>`_, `pr#7910 <http://github.com/ceph/ceph/pull/7910>`_, Samuel Just)
-* buffer: raw_combined allocations buffer and ref count together (`pr#7612 <http://github.com/ceph/ceph/pull/7612>`_, Sage Weil)
-* ceph-detect-init: add debian/jessie test (`pr#8074 <http://github.com/ceph/ceph/pull/8074>`_, Kefu Chai)
-* ceph-detect-init: add missing test case (`pr#8105 <http://github.com/ceph/ceph/pull/8105>`_, Nathan Cutler)
-* ceph-detect-init: fix py3 test (`pr#7243 <http://github.com/ceph/ceph/pull/7243>`_, Kefu Chai)
-* ceph-detect-init: return correct value on recent SUSE distros (`issue#14770 <http://tracker.ceph.com/issues/14770>`_, `pr#7909 <http://github.com/ceph/ceph/pull/7909>`_, Nathan Cutler)
-* ceph-disk: deactivate / destroy PATH arg are optional (`pr#7756 <http://github.com/ceph/ceph/pull/7756>`_, Loic Dachary)
-* ceph-disk: fix prepare --help (`pr#7758 <http://github.com/ceph/ceph/pull/7758>`_, Loic Dachary)
-* ceph-disk: flake8 fixes (`pr#7646 <http://github.com/ceph/ceph/pull/7646>`_, Loic Dachary)
-* ceph-disk: key management support (`issue#14669 <http://tracker.ceph.com/issues/14669>`_, `pr#7552 <http://github.com/ceph/ceph/pull/7552>`_, Loic Dachary)
-* ceph-disk: make some arguments as required if necessary (`pr#7687 <http://github.com/ceph/ceph/pull/7687>`_, Dongsheng Yang)
-* ceph-disk: s/dmcrpyt/dmcrypt/ (`issue#14838 <http://tracker.ceph.com/issues/14838>`_, `pr#7744 <http://github.com/ceph/ceph/pull/7744>`_, Loic Dachary, Frode Sandholtbraaten)
-* ceph-fuse: Fix potential filehandle ref leak at umount (`issue#14800 <http://tracker.ceph.com/issues/14800>`_, `pr#7686 <http://github.com/ceph/ceph/pull/7686>`_, Zhi Zhang)
-* ceph.in: Minor python3 specific changes (`pr#7947 <http://github.com/ceph/ceph/pull/7947>`_, Sarthak Munshi)
-* ceph_daemon.py: Resolved ImportError to work with python3 (`pr#7937 <http://github.com/ceph/ceph/pull/7937>`_, Sarthak Munshi)
-* ceph_detect_init/__init__.py: remove shebang (`pr#7731 <http://github.com/ceph/ceph/pull/7731>`_, Nathan Cutler)
-* ceph_test_msgr: reduce test size to fix memory size (`pr#8127 <http://github.com/ceph/ceph/pull/8127>`_, Haomai Wang)
-* ceph_test_rados_misc: shorten mount timeout (`pr#8209 <http://github.com/ceph/ceph/pull/8209>`_, Sage Weil)
-* cleanup (`pr#8058 <http://github.com/ceph/ceph/pull/8058>`_, Yehuda Sadeh, Orit Wasserman)
-* client: flush kernel pagecache before creating snapshot (`issue#10436 <http://tracker.ceph.com/issues/10436>`_, `pr#7495 <http://github.com/ceph/ceph/pull/7495>`_, Yan, Zheng)
-* client: removed unused Mutex from MetaRequest (`pr#7655 <http://github.com/ceph/ceph/pull/7655>`_, Greg Farnum)
-* cls/rgw: fix FTBFS (`pr#8142 <http://github.com/ceph/ceph/pull/8142>`_, Kefu Chai)
-* cls/rgw: fix use of timespan (`issue#15181 <http://tracker.ceph.com/issues/15181>`_, `pr#8212 <http://github.com/ceph/ceph/pull/8212>`_, Yehuda Sadeh)
-* cls_hello: Fix grammatical error in description comment (`pr#7951 <http://github.com/ceph/ceph/pull/7951>`_, Brad Hubbard)
-* cls_rbd: fix the test for ceph-dencoder (`pr#7793 <http://github.com/ceph/ceph/pull/7793>`_, Kefu Chai)
-* cls_rbd: mirroring directory (`issue#14419 <http://tracker.ceph.com/issues/14419>`_, `pr#7620 <http://github.com/ceph/ceph/pull/7620>`_, Josh Durgin)
-* cls_rbd: protect against excessively large object maps (`issue#15121 <http://tracker.ceph.com/issues/15121>`_, `pr#8099 <http://github.com/ceph/ceph/pull/8099>`_, Jason Dillaman)
-* cmake: Remove duplicate find_package libcurl line. (`pr#7972 <http://github.com/ceph/ceph/pull/7972>`_, Brad Hubbard)
-* cmake: add ErasureCode.cc to jerasure plugins (`pr#7808 <http://github.com/ceph/ceph/pull/7808>`_, Casey Bodley)
-* cmake: add common/fs_types.cc to libcommon (`pr#7898 <http://github.com/ceph/ceph/pull/7898>`_, Orit Wasserman)
-* cmake: add missing librbd image_watcher sources (`issue#14823 <http://tracker.ceph.com/issues/14823>`_, `pr#7717 <http://github.com/ceph/ceph/pull/7717>`_, Casey Bodley)
-* cmake: avoid false-positive LDAP header detect (`pr#8100 <http://github.com/ceph/ceph/pull/8100>`_, Matt Benjamin)
-* cmake: fix paths to various EC source files (`pr#7748 <http://github.com/ceph/ceph/pull/7748>`_, Ali Maredia, Matt Benjamin)
-* cmake: fix the build of tests (`pr#7523 <http://github.com/ceph/ceph/pull/7523>`_, Kefu Chai)
-* common/TrackedOp: fix inaccurate counting for slow requests (`issue#14804 <http://tracker.ceph.com/issues/14804>`_, `pr#7690 <http://github.com/ceph/ceph/pull/7690>`_, xie xingguo)
-* common/bit_vector: use hard-coded value for block size (`issue#14747 <http://tracker.ceph.com/issues/14747>`_, `pr#7610 <http://github.com/ceph/ceph/pull/7610>`_, Jason Dillaman)
-* common/obj_bencher.cc: bump the precision of bandwidth field (`pr#8021 <http://github.com/ceph/ceph/pull/8021>`_, Piotr Dałek)
-* common/obj_bencher.cc: faster object name generation (`pr#7863 <http://github.com/ceph/ceph/pull/7863>`_, Piotr Dałek)
-* common/obj_bencher.cc: make verify error fatal (`issue#14971 <http://tracker.ceph.com/issues/14971>`_, `pr#7897 <http://github.com/ceph/ceph/pull/7897>`_, Piotr Dałek)
-* common/page.cc: _page_mask has too many bits (`pr#7588 <http://github.com/ceph/ceph/pull/7588>`_, Dan Mick)
-* common/strtol.cc: fix the coverity warnings (`pr#7967 <http://github.com/ceph/ceph/pull/7967>`_, Kefu Chai)
-* common: Do not use non-portable constants in mutex_debug (`pr#7766 <http://github.com/ceph/ceph/pull/7766>`_, Adam C. Emerson)
-* common: SubProcess: Avoid buffer corruption when calling err() (`issue#15011 <http://tracker.ceph.com/issues/15011>`_, `pr#8054 <http://github.com/ceph/ceph/pull/8054>`_, Erwan Velu)
-* common: default cluster name to config file prefix (`pr#7364 <http://github.com/ceph/ceph/pull/7364>`_, Javen Wu)
-* common: set thread name from correct thread (`pr#7845 <http://github.com/ceph/ceph/pull/7845>`_, Igor Podoski)
-* common: various fixes from SCA runs (`pr#7680 <http://github.com/ceph/ceph/pull/7680>`_, Danny Al-Gaaf)
-* config: fix osd_crush_initial_weight (`pr#7975 <http://github.com/ceph/ceph/pull/7975>`_, You Ji)
-* config: increase default async op threads (`pr#7802 <http://github.com/ceph/ceph/pull/7802>`_, Piotr Dałek)
-* configure.ac: boost_iostreams is required, not optional (`pr#7816 <http://github.com/ceph/ceph/pull/7816>`_, Hector Martin)
-* configure.ac: update help strings for cython (`pr#7856 <http://github.com/ceph/ceph/pull/7856>`_, Josh Durgin)
-* crush/CrushTester: workaround a bug in boost::icl (`pr#7560 <http://github.com/ceph/ceph/pull/7560>`_, Kefu Chai)
-* crush: fix cli tests for new crush tunables (`pr#8107 <http://github.com/ceph/ceph/pull/8107>`_, Sage Weil)
-* crush: update tunable docs. change default profile to jewel (`pr#7964 <http://github.com/ceph/ceph/pull/7964>`_, Sage Weil)
-* debian/changelog: Remove stray 'v' in version (`pr#7936 <http://github.com/ceph/ceph/pull/7936>`_, Dan Mick)
-* debian/changelog: Remove stray 'v' in version (`pr#7938 <http://github.com/ceph/ceph/pull/7938>`_, Dan Mick)
-* debian: include cpio in build-requiers (`pr#7533 <http://github.com/ceph/ceph/pull/7533>`_, Rémi BUISSON)
-* debian: package librgw_file* tests (`pr#7930 <http://github.com/ceph/ceph/pull/7930>`_, Ken Dreyer)
-* doc/architecture.rst: remove redundant word "across" (`pr#8179 <http://github.com/ceph/ceph/pull/8179>`_, Zhao Junwang)
-* doc/dev: add section on interrupting a running suite (`pr#8116 <http://github.com/ceph/ceph/pull/8116>`_, Nathan Cutler)
-* doc/dev: continue writing Testing in the cloud chapter (`pr#7960 <http://github.com/ceph/ceph/pull/7960>`_, Nathan Cutler)
-* doc/dev: integrate testing into the narrative (`pr#7946 <http://github.com/ceph/ceph/pull/7946>`_, Nathan Cutler)
-* doc/dev: various refinements (`pr#7954 <http://github.com/ceph/ceph/pull/7954>`_, Nathan Cutler)
-* doc/rados/api/librados-intro.rst: fix typo (`pr#7879 <http://github.com/ceph/ceph/pull/7879>`_, xie xingguo)
-* doc: add ceph-detect-init(8) source to dist tarball (`pr#7933 <http://github.com/ceph/ceph/pull/7933>`_, Ken Dreyer)
-* doc: add cinder backend section to rbd-openstack.rst (`pr#7923 <http://github.com/ceph/ceph/pull/7923>`_, RustShen)
-* doc: detailed description of bugfixing workflow (`pr#7941 <http://github.com/ceph/ceph/pull/7941>`_, Nathan Cutler)
-* doc: fix 0.94.4 and 0.94.5 ordering (`pr#7763 <http://github.com/ceph/ceph/pull/7763>`_, Loic Dachary)
-* doc: fix typo, indention etc. (`pr#7829 <http://github.com/ceph/ceph/pull/7829>`_, xie xingguo)
-* doc: initial draft of RBD mirroring admin documentation (`issue#15041 <http://tracker.ceph.com/issues/15041>`_, `pr#8169 <http://github.com/ceph/ceph/pull/8169>`_, Jason Dillaman)
-* doc: osd-config Add Configuration Options for op queue. (`pr#7837 <http://github.com/ceph/ceph/pull/7837>`_, Robert LeBlanc)
-* doc: rgw explain keystone's verify ssl switch (`pr#7862 <http://github.com/ceph/ceph/pull/7862>`_, Abhishek Lekshmanan)
-* doc: small fixes (`pr#7813 <http://github.com/ceph/ceph/pull/7813>`_, xiexingguo)
-* doc: standardize @param (not @parma, @parmam, @params) (`pr#7714 <http://github.com/ceph/ceph/pull/7714>`_, Nathan Cutler)
-* fix FTBFS introduced by d0af316 (`pr#7792 <http://github.com/ceph/ceph/pull/7792>`_, Kefu Chai)
-* ghobject_t: use # instead of ! as a separator (`pr#8055 <http://github.com/ceph/ceph/pull/8055>`_, Sage Weil)
-* include/encoding: do not try to be clever with list encoding (`pr#7913 <http://github.com/ceph/ceph/pull/7913>`_, Sage Weil)
-* init-ceph.in: allow case-insensitive true in `osd crush update on start' (`pr#7943 <http://github.com/ceph/ceph/pull/7943>`_, Eric Cook)
-* init-ceph.in: skip ceph-disk if it is not present (`issue#10587 <http://tracker.ceph.com/issues/10587>`_, `pr#7286 <http://github.com/ceph/ceph/pull/7286>`_, Ken Dreyer)
-* journal: async methods to (un)register and update client (`pr#7832 <http://github.com/ceph/ceph/pull/7832>`_, Mykola Golub)
-* journal: improve commit position tracking (`pr#7776 <http://github.com/ceph/ceph/pull/7776>`_, Jason Dillaman)
-* journal: prevent race injecting new records into overflowed object (`issue#15202 <http://tracker.ceph.com/issues/15202>`_, `pr#8220 <http://github.com/ceph/ceph/pull/8220>`_, Jason Dillaman)
-* librados: cancel aio notification linger op upon completion (`pr#8102 <http://github.com/ceph/ceph/pull/8102>`_, Jason Dillaman)
-* librados: check connection state in rados_monitor_log (`issue#14499 <http://tracker.ceph.com/issues/14499>`_, `pr#7350 <http://github.com/ceph/ceph/pull/7350>`_, David Disseldorp)
-* librados: do not clear handle for aio_watch() (`pr#7771 <http://github.com/ceph/ceph/pull/7771>`_, xie xingguo)
-* librados: fix test failure with new aio watch/unwatch API (`pr#7824 <http://github.com/ceph/ceph/pull/7824>`_, Jason Dillaman)
-* librados: implement async watch/unwatch (`pr#7649 <http://github.com/ceph/ceph/pull/7649>`_, Haomai Wang)
-* librados: mix lock cycle (un)registering asok commands (`pr#7581 <http://github.com/ceph/ceph/pull/7581>`_, John Spray)
-* librados: race condition on aio_notify completion handling (`pr#7864 <http://github.com/ceph/ceph/pull/7864>`_, Jason Dillaman)
-* librados: stat2 with higher time precision (`pr#7915 <http://github.com/ceph/ceph/pull/7915>`_, Yehuda Sadeh, Matt Benjamin)
-* librbd: allocate new journal tag after acquiring exclusive lock (`pr#7884 <http://github.com/ceph/ceph/pull/7884>`_, Jason Dillaman)
-* librbd: block read requests until journal replayed (`pr#7627 <http://github.com/ceph/ceph/pull/7627>`_, Jason Dillaman)
-* librbd: correct issues discovered via valgrind memcheck (`pr#8132 <http://github.com/ceph/ceph/pull/8132>`_, Jason Dillaman)
-* librbd: differentiate journal replay flush vs shut down (`pr#7698 <http://github.com/ceph/ceph/pull/7698>`_, Jason Dillaman)
-* librbd: enable/disable image mirroring automatically for pool mode (`issue#15143 <http://tracker.ceph.com/issues/15143>`_, `pr#8204 <http://github.com/ceph/ceph/pull/8204>`_, Ricardo Dias)
-* librbd: fix state machine race conditions during shut down (`pr#7761 <http://github.com/ceph/ceph/pull/7761>`_, Jason Dillaman)
-* librbd: handle unregistering the image watcher when disconnected (`pr#8094 <http://github.com/ceph/ceph/pull/8094>`_, Jason Dillaman)
-* librbd: integrate journal replay with fsx testing (`pr#7583 <http://github.com/ceph/ceph/pull/7583>`_, Jason Dillaman)
-* librbd: journal replay needs to support re-executing maintenance ops (`issue#14822 <http://tracker.ceph.com/issues/14822>`_, `pr#7785 <http://github.com/ceph/ceph/pull/7785>`_, Jason Dillaman)
-* librbd: reduce mem copies to user-buffer during read (`pr#7548 <http://github.com/ceph/ceph/pull/7548>`_, Jianpeng Ma)
-* librbd: refresh image if required before replaying journal ops (`issue#14908 <http://tracker.ceph.com/issues/14908>`_, `pr#7978 <http://github.com/ceph/ceph/pull/7978>`_, Jason Dillaman)
-* librbd: remove last synchronous librados calls from open/close state machine (`pr#7839 <http://github.com/ceph/ceph/pull/7839>`_, Jason Dillaman)
-* librbd: replaying a journal op post-refresh requires locking (`pr#8028 <http://github.com/ceph/ceph/pull/8028>`_, Jason Dillaman)
-* librbd: retrieve image name when opening by id (`pr#7736 <http://github.com/ceph/ceph/pull/7736>`_, Mykola Golub)
-* librbd: several race conditions discovered under single CPU environment (`pr#7653 <http://github.com/ceph/ceph/pull/7653>`_, Jason Dillaman)
-* librbd: truncate does not need to mark the object as existing in the object map (`issue#14789 <http://tracker.ceph.com/issues/14789>`_, `pr#7772 <http://github.com/ceph/ceph/pull/7772>`_, xinxin shu)
-* librbd: update of mirror pool mode and mirror peer handling (`pr#7718 <http://github.com/ceph/ceph/pull/7718>`_, Jason Dillaman)
-* librbd: use async librados notifications (`pr#7668 <http://github.com/ceph/ceph/pull/7668>`_, Jason Dillaman)
-* log: do not repeat errors to stderr (`issue#14616 <http://tracker.ceph.com/issues/14616>`_, `pr#7983 <http://github.com/ceph/ceph/pull/7983>`_, Sage Weil)
-* log: fix stack overflow when flushing large log lines (`issue#14707 <http://tracker.ceph.com/issues/14707>`_, `pr#7599 <http://github.com/ceph/ceph/pull/7599>`_, Igor Fedotov)
-* log: segv in a portable way (`issue#14856 <http://tracker.ceph.com/issues/14856>`_, `pr#7790 <http://github.com/ceph/ceph/pull/7790>`_, Kefu Chai)
-* log: use delete[] (`pr#7904 <http://github.com/ceph/ceph/pull/7904>`_, Sage Weil)
-* mailmap for 10.0.4 (`pr#7932 <http://github.com/ceph/ceph/pull/7932>`_, Abhishek Lekshmanan)
-* mailmap updates (`pr#7528 <http://github.com/ceph/ceph/pull/7528>`_, Yann Dupont)
-* man/8/ceph-disk: fix formatting issue (`pr#8012 <http://github.com/ceph/ceph/pull/8012>`_, Sage Weil)
-* man/8/ceph-disk: fix formatting issue (`pr#8003 <http://github.com/ceph/ceph/pull/8003>`_, Sage Weil)
-* mds, client: add namespace to file_layout_t (previously ceph_file_layout) (`pr#7098 <http://github.com/ceph/ceph/pull/7098>`_, Yan, Zheng, Sage Weil)
-* mds: don't double-shutdown the timer when suiciding (`issue#14697 <http://tracker.ceph.com/issues/14697>`_, `pr#7616 <http://github.com/ceph/ceph/pull/7616>`_, Greg Farnum)
-* mds: fix FSMap upgrade with daemons in the map (`pr#8073 <http://github.com/ceph/ceph/pull/8073>`_, John Spray, Greg Farnum)
-* mds: fix inode_t::compare() (`issue#15038 <http://tracker.ceph.com/issues/15038>`_, `pr#8014 <http://github.com/ceph/ceph/pull/8014>`_, Yan, Zheng)
-* mds: fix stray purging in 'stripe_count > 1' case (`issue#15050 <http://tracker.ceph.com/issues/15050>`_, `pr#8040 <http://github.com/ceph/ceph/pull/8040>`_, Yan, Zheng)
-* mds: function parameter 'df' should be passed by reference (`pr#7490 <http://github.com/ceph/ceph/pull/7490>`_, Na Xie)
-* mirrors: Change contact e-mail address for se.ceph.com (`pr#8007 <http://github.com/ceph/ceph/pull/8007>`_, Wido den Hollander)
-* mon/PGMonitor: reliably mark PGs state (`pr#8089 <http://github.com/ceph/ceph/pull/8089>`_, Sage Weil)
-* mon/monitor: some clean up (`pr#7520 <http://github.com/ceph/ceph/pull/7520>`_, huanwen ren)
-* mon/pgmonitor: use appropriate forced conversions in get_rule_avail (`pr#7705 <http://github.com/ceph/ceph/pull/7705>`_, huanwen ren)
-* mon: cleanup set-quota error msg (`pr#7371 <http://github.com/ceph/ceph/pull/7371>`_, Abhishek Lekshmanan)
-* mon: consider pool size when creating pool (`issue#14509 <http://tracker.ceph.com/issues/14509>`_, `pr#7359 <http://github.com/ceph/ceph/pull/7359>`_, songbaisen)
-* mon: enable 'mon osd prime pg temp' by default (`pr#7838 <http://github.com/ceph/ceph/pull/7838>`_, Robert LeBlanc)
-* mon: fix calculation of %USED (`pr#7881 <http://github.com/ceph/ceph/pull/7881>`_, Adam Kupczyk)
-* mon: fix keyring permissions (`issue#14950 <http://tracker.ceph.com/issues/14950>`_, `pr#7880 <http://github.com/ceph/ceph/pull/7880>`_, Owen Synge)
-* mon: initialize last_* timestamps on new pgs to creation time (`issue#14952 <http://tracker.ceph.com/issues/14952>`_, `pr#7980 <http://github.com/ceph/ceph/pull/7980>`_, Sage Weil)
-* mon: make clock skew checks sane (`issue#14175 <http://tracker.ceph.com/issues/14175>`_, `pr#7141 <http://github.com/ceph/ceph/pull/7141>`_, Joao Eduardo Luis)
-* mon: osd [test-]reweight-by-{pg,utilization} command updates (`pr#7890 <http://github.com/ceph/ceph/pull/7890>`_, Dan van der Ster, Sage Weil)
-* mon: remove 'mds setmap' (`issue#15136 <http://tracker.ceph.com/issues/15136>`_, `pr#8121 <http://github.com/ceph/ceph/pull/8121>`_, Sage Weil)
-* mon: standardize Ceph removal commands (`pr#7939 <http://github.com/ceph/ceph/pull/7939>`_, Dongsheng Yang)
-* mon: unconfuse object count skew message (`pr#7882 <http://github.com/ceph/ceph/pull/7882>`_, Piotr Dałek)
-* mon: unregister command on shutdown (`pr#7504 <http://github.com/ceph/ceph/pull/7504>`_, huanwen ren)
-* mount.fuse.ceph: better parsing of arguments passed to mount.fuse.ceph by mount command (`issue#14735 <http://tracker.ceph.com/issues/14735>`_, `pr#7607 <http://github.com/ceph/ceph/pull/7607>`_, Florent Bautista)
-* msg/async: _try_send trim already sent for outcoming_bl more efficient (`pr#7970 <http://github.com/ceph/ceph/pull/7970>`_, Yan Jun)
-* msg/async: don't calculate msg header crc when not needed (`pr#7815 <http://github.com/ceph/ceph/pull/7815>`_, Piotr Dałek)
-* msg/async: smarter MSG_MORE (`pr#7625 <http://github.com/ceph/ceph/pull/7625>`_, Piotr Dałek)
-* msg: add thread safety for "random" Messenger + fix wrong usage of random functions (`pr#7650 <http://github.com/ceph/ceph/pull/7650>`_, Avner BenHanoch)
-* msg: async: fix perf counter description and simplify _send_keepalive_or_ack (`pr#8046 <http://github.com/ceph/ceph/pull/8046>`_, xie xingguo)
-* msg: async: small cleanups (`pr#7871 <http://github.com/ceph/ceph/pull/7871>`_, xie xingguo)
-* msg: async: start over after failing to bind a port in specified range (`issue#14928 <http://tracker.ceph.com/issues/14928>`_, `issue#13002 <http://tracker.ceph.com/issues/13002>`_, `pr#7852 <http://github.com/ceph/ceph/pull/7852>`_, xie xingguo)
-* msg: remove duplicated code - local_delivery will now call 'enqueue' (`pr#7948 <http://github.com/ceph/ceph/pull/7948>`_, Avner BenHanoch)
-* msg: significantly reduce minimal memory usage of connections (`pr#7567 <http://github.com/ceph/ceph/pull/7567>`_, Piotr Dałek)
-* mstart: start rgw on different ports as well (`pr#8167 <http://github.com/ceph/ceph/pull/8167>`_, Abhishek Lekshmanan)
-* nfs for rgw (Matt Benjamin, Orit Wasserman) (`pr#7634 <http://github.com/ceph/ceph/pull/7634>`_, Yehuda Sadeh, Matt Benjamin)
-* os/ObjectStore: implement more efficient get_encoded_bytes() (`pr#7775 <http://github.com/ceph/ceph/pull/7775>`_, Piotr Dałek)
-* os/bluestore/BlueFS: Before reap ioct, it should wait io complete (`pr#8178 <http://github.com/ceph/ceph/pull/8178>`_, Jianpeng Ma)
-* os/bluestore/BlueStore: Don't leak trim overlay data before write. (`pr#7895 <http://github.com/ceph/ceph/pull/7895>`_, Jianpeng Ma)
-* os/bluestore/KernelDevice: force block size (`pr#8006 <http://github.com/ceph/ceph/pull/8006>`_, Sage Weil)
-* os/bluestore/NVMEDevice: make IO thread using dpdk launch (`pr#8160 <http://github.com/ceph/ceph/pull/8160>`_, Haomai Wang)
-* os/bluestore: clone overlay data (`pr#7860 <http://github.com/ceph/ceph/pull/7860>`_, Jianpeng Ma)
-* os/bluestore: fix a typo in SPDK path parsing (`pr#7601 <http://github.com/ceph/ceph/pull/7601>`_, Jianjian Huo)
-* os/bluestore: make bluestore_sync_transaction = true can work. (`pr#7674 <http://github.com/ceph/ceph/pull/7674>`_, Jianpeng Ma)
-* os/bluestore: small fixes in bluestore StupidAllocator (`pr#8101 <http://github.com/ceph/ceph/pull/8101>`_, Jianjian Huo)
-* os/filestore/FileJournal: set block size via config option (`pr#7628 <http://github.com/ceph/ceph/pull/7628>`_, Sage Weil)
-* os/filestore: fix punch hole usage in _zero (`pr#8050 <http://github.com/ceph/ceph/pull/8050>`_, Sage Weil)
-* os/filestore: fix result handling logic of destroy_collection (`pr#7721 <http://github.com/ceph/ceph/pull/7721>`_, xie xingguo)
-* os/filestore: require offset == length == 0 for full object read; add test (`pr#7957 <http://github.com/ceph/ceph/pull/7957>`_, Jianpeng Ma)
-* osd/OSDMap: fix typo in summarize_mapping_stats (`pr#8088 <http://github.com/ceph/ceph/pull/8088>`_, Sage Weil)
-* osd/PGLog: fix warning (`pr#8057 <http://github.com/ceph/ceph/pull/8057>`_, Sage Weil)
-* osd/ReplicatedPG: be more careful about calling publish_stats_to_osd() (`issue#14962 <http://tracker.ceph.com/issues/14962>`_, `pr#8039 <http://github.com/ceph/ceph/pull/8039>`_, Greg Farnum)
-* osd/ReplicatedPG: clear watches on change after applying repops (`issue#15151 <http://tracker.ceph.com/issues/15151>`_, `pr#8163 <http://github.com/ceph/ceph/pull/8163>`_, Sage Weil)
-* osd/ScrubStore: remove unused function (`pr#8045 <http://github.com/ceph/ceph/pull/8045>`_, Kefu Chai)
-* osd: BlueStore/NVMEDevice: fix compiling and fd leak (`pr#7496 <http://github.com/ceph/ceph/pull/7496>`_, xie xingguo)
-* osd: FileStore: use pwritev instead of lseek+writev (`pr#7349 <http://github.com/ceph/ceph/pull/7349>`_, Haomai Wang, Tao Chang)
-* osd: OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from (`issue#14686 <http://tracker.ceph.com/issues/14686>`_, `pr#7553 <http://github.com/ceph/ceph/pull/7553>`_, Xinze Chi)
-* osd: Replace snprintf with faster implementation in eversion_t::get_key_name (`pr#7121 <http://github.com/ceph/ceph/pull/7121>`_, Evgeniy Firsov)
-* osd: WeightedPriorityQueue: move to intrusive containers (`pr#7654 <http://github.com/ceph/ceph/pull/7654>`_, Robert LeBlanc)
-* osd: a fix for HeartbeatDispatcher and cleanups (`pr#7550 <http://github.com/ceph/ceph/pull/7550>`_, Kefu Chai)
-* osd: add missing newline to usage message (`pr#7613 <http://github.com/ceph/ceph/pull/7613>`_, Willem Jan Withagen)
-* osd: avoid FORCE updating digest been overwritten by MAYBE when comparing scrub map (`pr#7051 <http://github.com/ceph/ceph/pull/7051>`_, Zhiqiang Wang)
-* osd: bluefs: fix alignment for odd page sizes (`pr#7900 <http://github.com/ceph/ceph/pull/7900>`_, Dan Mick)
-* osd: bluestore updates, scrub fixes (`pr#8035 <http://github.com/ceph/ceph/pull/8035>`_, Sage Weil)
-* osd: bluestore/blockdevice: use std::mutex et al (`pr#7568 <http://github.com/ceph/ceph/pull/7568>`_, Sage Weil)
-* osd: bluestore: NVMEDevice: fix error handling (`pr#7799 <http://github.com/ceph/ceph/pull/7799>`_, xie xingguo)
-* osd: bluestore: Revert NVMEDevice task cstor and refresh interface changes (`pr#7729 <http://github.com/ceph/ceph/pull/7729>`_, Haomai Wang)
-* osd: bluestore: add 'override' to virtual functions (`pr#7886 <http://github.com/ceph/ceph/pull/7886>`_, Michal Jarzabek)
-* osd: bluestore: allow _dump_onode dynamic accept log level (`pr#7995 <http://github.com/ceph/ceph/pull/7995>`_, Jianpeng Ma)
-* osd: bluestore: fix check for write falling within the same extent (`issue#14954 <http://tracker.ceph.com/issues/14954>`_, `pr#7892 <http://github.com/ceph/ceph/pull/7892>`_, Jianpeng Ma)
-* osd: bluestore: for overwrite a extent, allocate new extent on min_alloc_size write (`pr#7996 <http://github.com/ceph/ceph/pull/7996>`_, Jianpeng Ma)
-* osd: bluestore: improve fs-type verification and tidy up (`pr#7651 <http://github.com/ceph/ceph/pull/7651>`_, xie xingguo)
-* osd: bluestore: misc fixes (`pr#7658 <http://github.com/ceph/ceph/pull/7658>`_, Jianpeng Ma)
-* osd: bluestore: remove unneeded includes (`pr#7870 <http://github.com/ceph/ceph/pull/7870>`_, Michal Jarzabek)
-* osd: clean up CMPXATTR checks (`pr#5961 <http://github.com/ceph/ceph/pull/5961>`_, Jianpeng Ma)
-* osd: consider high/low mode when putting agent to sleep (`issue#14752 <http://tracker.ceph.com/issues/14752>`_, `pr#7631 <http://github.com/ceph/ceph/pull/7631>`_, Sage Weil)
-* osd: ensure new osdmaps commit before publishing them to pgs (`issue#15073 <http://tracker.ceph.com/issues/15073>`_, `pr#8096 <http://github.com/ceph/ceph/pull/8096>`_, Sage Weil)
-* osd: filejournal: report journal entry count (`pr#7643 <http://github.com/ceph/ceph/pull/7643>`_, tianqing)
-* osd: filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE (`pr#7768 <http://github.com/ceph/ceph/pull/7768>`_, xinxin shu)
-* osd: filestore: fast abort if statfs encounters ENOENT (`pr#7703 <http://github.com/ceph/ceph/pull/7703>`_, xie xingguo)
-* osd: filestore: fix race condition with split vs collection_move_rename and long object names (`issue#14766 <http://tracker.ceph.com/issues/14766>`_, `pr#8136 <http://github.com/ceph/ceph/pull/8136>`_, Samuel Just)
-* osd: filestore: fix result code overwritten for clone (`issue#14817 <http://tracker.ceph.com/issues/14817>`_, `issue#14827 <http://tracker.ceph.com/issues/14827>`_, `pr#7711 <http://github.com/ceph/ceph/pull/7711>`_, xie xingguo)
-* osd: filestore: fix wrong scope of result code for error cases during mkfs (`issue#14814 <http://tracker.ceph.com/issues/14814>`_, `pr#7704 <http://github.com/ceph/ceph/pull/7704>`_, xie xingguo)
-* osd: filestore: fix wrong scope of result code for error cases during mount (`issue#14815 <http://tracker.ceph.com/issues/14815>`_, `pr#7707 <http://github.com/ceph/ceph/pull/7707>`_, xie xingguo)
-* osd: filestore: restructure journal and op queue throttling (`pr#7767 <http://github.com/ceph/ceph/pull/7767>`_, Samuel Just)
-* osd: fix forced prmootion for CALL ops (`issue#14745 <http://tracker.ceph.com/issues/14745>`_, `pr#7617 <http://github.com/ceph/ceph/pull/7617>`_, Sage Weil)
-* osd: fix fusestore hanging during stop/quit (`issue#14786 <http://tracker.ceph.com/issues/14786>`_, `pr#7677 <http://github.com/ceph/ceph/pull/7677>`_, xie xingguo)
-* osd: fix inaccurate counter and skip over queueing an empty transaction (`pr#7754 <http://github.com/ceph/ceph/pull/7754>`_, xie xingguo)
-* osd: fix lack of object unblock when flush fails (`issue#14511 <http://tracker.ceph.com/issues/14511>`_, `pr#7584 <http://github.com/ceph/ceph/pull/7584>`_, Igor Fedotov)
-* osd: fix overload of '==' operator for pg_stat_t (`issue#14921 <http://tracker.ceph.com/issues/14921>`_, `pr#7842 <http://github.com/ceph/ceph/pull/7842>`_, xie xingguo)
-* osd: fix race condition for heartbeat_need_update (`issue#14387 <http://tracker.ceph.com/issues/14387>`_, `pr#7739 <http://github.com/ceph/ceph/pull/7739>`_, xie xingguo)
-* osd: fix return value from maybe_handle_cache_detail() (`pr#7593 <http://github.com/ceph/ceph/pull/7593>`_, Igor Fedotov)
-* osd: fix unnecessary object promotion when deleting from cache pool (`issue#13894 <http://tracker.ceph.com/issues/13894>`_, `pr#7537 <http://github.com/ceph/ceph/pull/7537>`_, Igor Fedotov)
-* osd: fix wrong return type of find_osd_on_ip() (`issue#14872 <http://tracker.ceph.com/issues/14872>`_, `pr#7812 <http://github.com/ceph/ceph/pull/7812>`_, xie xingguo)
-* osd: ghobject_t: use ! instead of @ as a separator (`pr#7595 <http://github.com/ceph/ceph/pull/7595>`_, Sage Weil)
-* osd: handle dup pg_create that races with pg deletion (`pr#8033 <http://github.com/ceph/ceph/pull/8033>`_, Sage Weil)
-* osd: initialize last_recalibrate field at construction (`pr#8071 <http://github.com/ceph/ceph/pull/8071>`_, xie xingguo)
-* osd: kstore: fix a race condition in _txc_finish() (`pr#7804 <http://github.com/ceph/ceph/pull/7804>`_, Jianjian Huo)
-* osd: kstore: latency breakdown (`pr#7850 <http://github.com/ceph/ceph/pull/7850>`_, James Liu)
-* osd: kstore: sync up kstore with recent bluestore updates (`pr#7681 <http://github.com/ceph/ceph/pull/7681>`_, Jianjian Huo)
-* osd: memstore: fix alignment of Page for test_pageset (`pr#7587 <http://github.com/ceph/ceph/pull/7587>`_, Casey Bodley)
-* osd: min_write_recency_for_promote & min_read_recency_for_promote are tiering only (`pr#8081 <http://github.com/ceph/ceph/pull/8081>`_, huanwen ren)
-* osd: probabilistic cache tier promotion throttling (`pr#7465 <http://github.com/ceph/ceph/pull/7465>`_, Sage Weil)
-* osd: remove up_thru_pending field, which is never used (`pr#7991 <http://github.com/ceph/ceph/pull/7991>`_, xie xingguo)
-* osd: replicatedpg: break out loop if we encounter fatal error during do_pg_op() (`issue#14922 <http://tracker.ceph.com/issues/14922>`_, `pr#7844 <http://github.com/ceph/ceph/pull/7844>`_, xie xingguo)
-* osd: resolve boot vs NOUP set + clear race (`pr#7483 <http://github.com/ceph/ceph/pull/7483>`_, Sage Weil)
-* packaging: make infernalis -> jewel upgrade work (`issue#15047 <http://tracker.ceph.com/issues/15047>`_, `pr#8034 <http://github.com/ceph/ceph/pull/8034>`_, Nathan Cutler)
-* packaging: move cephfs repair tools to ceph-common (`issue#15145 <http://tracker.ceph.com/issues/15145>`_, `pr#8133 <http://github.com/ceph/ceph/pull/8133>`_, Boris Ranto, Ken Dreyer)
-* pybind/rados: fix object lifetime issues and other bugs in aio (`pr#7778 <http://github.com/ceph/ceph/pull/7778>`_, Hector Martin)
-* pybind/rados: use __dealloc__ since __del__ is ignored by cython (`pr#7692 <http://github.com/ceph/ceph/pull/7692>`_, Mehdi Abaakouk)
-* pybind: Ensure correct python flags are passed (`pr#7663 <http://github.com/ceph/ceph/pull/7663>`_, James Page)
-* pybind: flag an RBD image as closed regardless of result code (`pr#8005 <http://github.com/ceph/ceph/pull/8005>`_, Jason Dillaman)
-* pybind: move cephfs to Cython (`pr#7745 <http://github.com/ceph/ceph/pull/7745>`_, John Spray, Mehdi Abaakouk)
-* pybind: remove next() on iterators (`pr#7706 <http://github.com/ceph/ceph/pull/7706>`_, Mehdi Abaakouk)
-* pybind: replace __del__ with __dealloc__ for rbd (`pr#7708 <http://github.com/ceph/ceph/pull/7708>`_, Josh Durgin)
-* pybind: use correct subdir for rados install-exec rule (`pr#7684 <http://github.com/ceph/ceph/pull/7684>`_, Josh Durgin)
-* python binding of librados with cython (`pr#7621 <http://github.com/ceph/ceph/pull/7621>`_, Mehdi Abaakouk)
-* python: use pip instead of python setup.py (`pr#7605 <http://github.com/ceph/ceph/pull/7605>`_, Loic Dachary)
-* qa/workunits/cephtool/test.sh: wait longer in ceph_watch_start() (`issue#14910 <http://tracker.ceph.com/issues/14910>`_, `pr#7861 <http://github.com/ceph/ceph/pull/7861>`_, Kefu Chai)
-* qa/workunits/rados/test.sh: capture stderr too (`pr#8004 <http://github.com/ceph/ceph/pull/8004>`_, Sage Weil)
-* qa/workunits/rados/test.sh: test tmap_migrate (`pr#8114 <http://github.com/ceph/ceph/pull/8114>`_, Sage Weil)
-* qa/workunits/rbd: do not use object map during read flag testing (`pr#8104 <http://github.com/ceph/ceph/pull/8104>`_, Jason Dillaman)
-* qa/workunits/rbd: new online maintenance op tests (`pr#8216 <http://github.com/ceph/ceph/pull/8216>`_, Jason Dillaman)
-* qa/workunits/rbd: use POSIX function definition (`issue#15104 <http://tracker.ceph.com/issues/15104>`_, `pr#8068 <http://github.com/ceph/ceph/pull/8068>`_, Nathan Cutler)
-* qa/workunits/rest/test.py: add confirmation to 'mds setmap' (`issue#14606 <http://tracker.ceph.com/issues/14606>`_, `pr#7982 <http://github.com/ceph/ceph/pull/7982>`_, Sage Weil)
-* qa/workunits/rest/test.py: don't use newfs (`pr#8191 <http://github.com/ceph/ceph/pull/8191>`_, Sage Weil)
-* qa: add workunit to run ceph_test_rbd_mirror (`pr#8221 <http://github.com/ceph/ceph/pull/8221>`_, Josh Durgin)
-* rados: add ceph:: namespace to bufferlist type (`pr#8059 <http://github.com/ceph/ceph/pull/8059>`_, Noah Watkins)
-* rados: fix bug for write bench (`pr#7851 <http://github.com/ceph/ceph/pull/7851>`_, James Liu)
-* rbd-mirror: ImageReplayer async start/stop (`pr#7944 <http://github.com/ceph/ceph/pull/7944>`_, Mykola Golub)
-* rbd-mirror: ImageReplayer improvements (`pr#7759 <http://github.com/ceph/ceph/pull/7759>`_, Mykola Golub)
-* rbd-mirror: fix image replay test failures (`pr#8158 <http://github.com/ceph/ceph/pull/8158>`_, Jason Dillaman)
-* rbd-mirror: fix long termination due to 30sec wait in main loop (`pr#8185 <http://github.com/ceph/ceph/pull/8185>`_, Mykola Golub)
-* rbd-mirror: implement ImageReplayer (`pr#7614 <http://github.com/ceph/ceph/pull/7614>`_, Mykola Golub)
-* rbd-mirror: integrate with image sync state machine (`pr#8079 <http://github.com/ceph/ceph/pull/8079>`_, Jason Dillaman)
-* rbd-mirror: minor fix-ups for initial skeleton implementation (`pr#7958 <http://github.com/ceph/ceph/pull/7958>`_, Mykola Golub)
-* rbd-mirror: remote to local cluster image sync (`pr#7979 <http://github.com/ceph/ceph/pull/7979>`_, Jason Dillaman)
-* rbd-mirror: use pool/image names in asok commands (`pr#8159 <http://github.com/ceph/ceph/pull/8159>`_, Mykola Golub)
-* rbd-mirror: use the mirroring directory to detect candidate images (`issue#15142 <http://tracker.ceph.com/issues/15142>`_, `pr#8162 <http://github.com/ceph/ceph/pull/8162>`_, Ricardo Dias)
-* rbd/run_cli_tests.sh: Reflect test failures (`issue#14825 <http://tracker.ceph.com/issues/14825>`_, `pr#7781 <http://github.com/ceph/ceph/pull/7781>`_, Zack Cerza)
-* rbd: add support for mirror image promotion/demotion/resync (`pr#8138 <http://github.com/ceph/ceph/pull/8138>`_, Jason Dillaman)
-* rbd: clone operation should default to image format 2 (`pr#8119 <http://github.com/ceph/ceph/pull/8119>`_, Jason Dillaman)
-* rbd: deprecate image format 1 (`pr#7841 <http://github.com/ceph/ceph/pull/7841>`_, Jason Dillaman)
-* rbd: support for enabling/disabling mirroring on specific images (`issue#13296 <http://tracker.ceph.com/issues/13296>`_, `pr#8056 <http://github.com/ceph/ceph/pull/8056>`_, Ricardo Dias)
-* release-notes: draft v0.94.6 release notes (`issue#13356 <http://tracker.ceph.com/issues/13356>`_, `pr#7689 <http://github.com/ceph/ceph/pull/7689>`_, Abhishek Varshney, Loic Dachary)
-* release-notes: draft v10.0.3 release notes (`pr#7592 <http://github.com/ceph/ceph/pull/7592>`_, Loic Dachary)
-* release-notes: draft v10.0.4 release notes (`pr#7966 <http://github.com/ceph/ceph/pull/7966>`_, Loic Dachary)
-* release-notes: draft v9.2.1 release notes (`issue#13750 <http://tracker.ceph.com/issues/13750>`_, `pr#7694 <http://github.com/ceph/ceph/pull/7694>`_, Abhishek Varshney)
-* rgw: ldap (Matt Benjamin) (`pr#7985 <http://github.com/ceph/ceph/pull/7985>`_, Matt Benjamin)
-* rgw: multisite fixes (`pr#8013 <http://github.com/ceph/ceph/pull/8013>`_, Yehuda Sadeh)
-* rgw: support for aws authentication v4 (Javier M. Mellid) (`issue#10333 <http://tracker.ceph.com/issues/10333>`_, `pr#7720 <http://github.com/ceph/ceph/pull/7720>`_, Yehuda Sadeh, Javier M. Mellid)
-* rgw sync fixes (`pr#8095 <http://github.com/ceph/ceph/pull/8095>`_, Yehuda Sadeh)
-* rgw/rgw_common.h: fix the RGWBucketInfo decoding (`pr#8165 <http://github.com/ceph/ceph/pull/8165>`_, Kefu Chai)
-* rgw/rgw_common.h: fix the RGWBucketInfo decoding (`pr#8154 <http://github.com/ceph/ceph/pull/8154>`_, Kefu Chai)
-* rgw/rgw_orphan: check the return value of save_state (`pr#7544 <http://github.com/ceph/ceph/pull/7544>`_, Boris Ranto)
-* rgw: Allow an implicit tenant in case of Keystone (`pr#8139 <http://github.com/ceph/ceph/pull/8139>`_, Pete Zaitcev)
-* rgw: Drop unused usage_exit from rgw_admin.cc (`pr#7632 <http://github.com/ceph/ceph/pull/7632>`_, Pete Zaitcev)
-* rgw: RGWZoneParams::create should not handle -EEXIST error (`pr#7927 <http://github.com/ceph/ceph/pull/7927>`_, Orit Wasserman)
-* rgw: add bucket request payment feature usage statistics integration (`issue#13834 <http://tracker.ceph.com/issues/13834>`_, `pr#6656 <http://github.com/ceph/ceph/pull/6656>`_, Javier M. Mellid)
-* rgw: add support for caching of Keystone admin token. (`pr#7630 <http://github.com/ceph/ceph/pull/7630>`_, Radoslaw Zarzynski)
-* rgw: add support for metadata upload during PUT on Swift container. (`pr#8002 <http://github.com/ceph/ceph/pull/8002>`_, Radoslaw Zarzynski)
-* rgw: add support for system requests over Swift API (`pr#7666 <http://github.com/ceph/ceph/pull/7666>`_, Radoslaw Zarzynski)
-* rgw: adjust the request_uri to support absoluteURI of http request (`issue#12917 <http://tracker.ceph.com/issues/12917>`_, `pr#7675 <http://github.com/ceph/ceph/pull/7675>`_, Wenjun Huang)
-* rgw: admin api for retrieving usage info (Ji Chen) (`pr#8031 <http://github.com/ceph/ceph/pull/8031>`_, Yehuda Sadeh, Ji Chen)
-* rgw: allow authentication keystone with self signed certs (`issue#14853 <http://tracker.ceph.com/issues/14853>`_, `issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7777 <http://github.com/ceph/ceph/pull/7777>`_, Abhishek Lekshmanan)
-* rgw: approximate AmazonS3 HostId error field. (`pr#7444 <http://github.com/ceph/ceph/pull/7444>`_, Robin H. Johnson)
-* rgw: calculate payload hash in RGWPutObj_ObjStore only when necessary. (`pr#7869 <http://github.com/ceph/ceph/pull/7869>`_, Radoslaw Zarzynski)
-* rgw: cleanups to comments and messages (`pr#7633 <http://github.com/ceph/ceph/pull/7633>`_, Pete Zaitcev)
-* rgw: don't use s->bucket for metadata api path entry (`issue#14549 <http://tracker.ceph.com/issues/14549>`_, `pr#7408 <http://github.com/ceph/ceph/pull/7408>`_, Yehuda Sadeh)
-* rgw: drop permissions of rgw/civetweb after startup (`issue#13600 <http://tracker.ceph.com/issues/13600>`_, `pr#8019 <http://github.com/ceph/ceph/pull/8019>`_, Karol Mroz)
-* rgw: fcgi should include acconfig (`pr#7760 <http://github.com/ceph/ceph/pull/7760>`_, Abhishek Lekshmanan)
-* rgw: fix wrong handling of limit=0 during listing of Swift account. (`issue#14903 <http://tracker.ceph.com/issues/14903>`_, `pr#7821 <http://github.com/ceph/ceph/pull/7821>`_, Radoslaw Zarzynski)
-* rgw: fixes for per-period metadata logs (`pr#7827 <http://github.com/ceph/ceph/pull/7827>`_, Casey Bodley)
-* rgw: improve error handling in S3/Keystone integration (`pr#7597 <http://github.com/ceph/ceph/pull/7597>`_, Radoslaw Zarzynski)
-* rgw: link civetweb with openssl (Sage, Marcus Watts) (`pr#7825 <http://github.com/ceph/ceph/pull/7825>`_, Marcus Watts, Sage Weil)
-* rgw: link payer info to usage logging (`pr#7918 <http://github.com/ceph/ceph/pull/7918>`_, Yehuda Sadeh, Javier M. Mellid)
-* rgw: move signal.h dependency from rgw_front.h (`pr#7678 <http://github.com/ceph/ceph/pull/7678>`_, Matt Benjamin)
-* rgw: multiple Swift API compliance improvements for TempURL (Radoslaw Zarzynsk) (`issue#14806 <http://tracker.ceph.com/issues/14806>`_, `issue#11163 <http://tracker.ceph.com/issues/11163>`_, `pr#7891 <http://github.com/ceph/ceph/pull/7891>`_, Radoslaw Zarzynski)
-* rgw: multiple improvements regarding etag calculation for SLO/DLO of Swift API. (`pr#7764 <http://github.com/ceph/ceph/pull/7764>`_, Radoslaw Zarzynski)
-* rgw: remove duplicated code in RGWRados::get_bucket_info() (`pr#7413 <http://github.com/ceph/ceph/pull/7413>`_, liyankun)
-* rgw: remove unused vector (`pr#7990 <http://github.com/ceph/ceph/pull/7990>`_, Na Xie)
-* rgw: reset return code in when iterating over the bucket the objects (`issue#14826 <http://tracker.ceph.com/issues/14826>`_, `pr#7803 <http://github.com/ceph/ceph/pull/7803>`_, Orit Wasserman)
-* rgw: store system object meta in cache when creating it (`issue#14678 <http://tracker.ceph.com/issues/14678>`_, `pr#7615 <http://github.com/ceph/ceph/pull/7615>`_, Yehuda Sadeh)
-* rgw: support json format for admin policy API (Dunrong Huang) (`issue#14090 <http://tracker.ceph.com/issues/14090>`_, `pr#8036 <http://github.com/ceph/ceph/pull/8036>`_, Yehuda Sadeh, Dunrong Huang)
-* rgw: try to parse Keystone token in order appropriate to configuration. (`pr#7822 <http://github.com/ceph/ceph/pull/7822>`_, Radoslaw Zarzynski)
-* rgw: use pimpl pattern for RGWPeriodHistory (`pr#7809 <http://github.com/ceph/ceph/pull/7809>`_, Casey Bodley)
-* rgw: user quota may not adjust on bucket removal (`issue#14507 <http://tracker.ceph.com/issues/14507>`_, `pr#7586 <http://github.com/ceph/ceph/pull/7586>`_, root)
-* rgw:bucket link now set the bucket.instance acl (bug fix) (`issue#11076 <http://tracker.ceph.com/issues/11076>`_, `pr#8037 <http://github.com/ceph/ceph/pull/8037>`_, Zengran Zhang)
-* rpm,deb: remove conditional BuildRequires for btrfs-progs (`issue#15042 <http://tracker.ceph.com/issues/15042>`_, `pr#8016 <http://github.com/ceph/ceph/pull/8016>`_, Erwan Velu)
-* rpm: remove sub-package dependencies on "ceph" (`issue#15146 <http://tracker.ceph.com/issues/15146>`_, `pr#8137 <http://github.com/ceph/ceph/pull/8137>`_, Ken Dreyer)
-* script: add missing stop_rgw variable to stop.sh script (`pr#7959 <http://github.com/ceph/ceph/pull/7959>`_, Karol Mroz)
-* selinux: Update policy to grant additional access (`issue#14870 <http://tracker.ceph.com/issues/14870>`_, `pr#7971 <http://github.com/ceph/ceph/pull/7971>`_, Boris Ranto)
-* selinux: allow log files to be located in /var/log/radosgw (`pr#7604 <http://github.com/ceph/ceph/pull/7604>`_, Boris Ranto)
-* sstring.hh: return type from str_len(...) need not be const (`pr#7679 <http://github.com/ceph/ceph/pull/7679>`_, Matt Benjamin)
-* submodules: revert an accidental change (`pr#7929 <http://github.com/ceph/ceph/pull/7929>`_, Yehuda Sadeh)
-* systemd: correctly escape block device paths (`issue#14706 <http://tracker.ceph.com/issues/14706>`_, `pr#7579 <http://github.com/ceph/ceph/pull/7579>`_, James Page)
-* test/TestPGLog: fix the FTBFS (`issue#14930 <http://tracker.ceph.com/issues/14930>`_, `pr#7855 <http://github.com/ceph/ceph/pull/7855>`_, Kefu Chai)
-* test/bufferlist: Avoid false-positive tests (`pr#7955 <http://github.com/ceph/ceph/pull/7955>`_, Erwan Velu)
-* test/cli-integration/rbd: disable progress output (`issue#14931 <http://tracker.ceph.com/issues/14931>`_, `pr#7858 <http://github.com/ceph/ceph/pull/7858>`_, Josh Durgin)
-* test/osd: Relax the timing intervals in osd-markdown.sh (`pr#7899 <http://github.com/ceph/ceph/pull/7899>`_, Dan Mick)
-* test/pybind/test_ceph_argparse: fix reweight-by-utilization tests (`pr#8027 <http://github.com/ceph/ceph/pull/8027>`_, Kefu Chai, Sage Weil)
-* test/radosgw-admin: update the expected usage outputs (`pr#7723 <http://github.com/ceph/ceph/pull/7723>`_, Kefu Chai)
-* test/rgw: add multisite test for meta sync across periods (`pr#7887 <http://github.com/ceph/ceph/pull/7887>`_, Casey Bodley)
-* test/time: no need to abs(uint64_t) for comparing (`pr#7726 <http://github.com/ceph/ceph/pull/7726>`_, Kefu Chai)
-* test: add missing shut_down mock method (`pr#8125 <http://github.com/ceph/ceph/pull/8125>`_, Jason Dillaman)
-* test: correct librbd errors discovered with unoptimized cmake build (`pr#7914 <http://github.com/ceph/ceph/pull/7914>`_, Jason Dillaman)
-* test: create pools for rbd tests with different prefix (`pr#7738 <http://github.com/ceph/ceph/pull/7738>`_, Mykola Golub)
-* test: enable test for bug #2339 which has been resolved. (`pr#7743 <http://github.com/ceph/ceph/pull/7743>`_, You Ji)
-* test: fix issues discovered via the rbd permissions test case (`pr#8129 <http://github.com/ceph/ceph/pull/8129>`_, Jason Dillaman)
-* test: fixup and improvements for rbd-mirror test (`pr#8090 <http://github.com/ceph/ceph/pull/8090>`_, Mykola Golub)
-* test: handle exception thrown from close during rbd lock test (`pr#8124 <http://github.com/ceph/ceph/pull/8124>`_, Jason Dillaman)
-* test: more debug logging for TestWatchNotify (`pr#7737 <http://github.com/ceph/ceph/pull/7737>`_, Mykola Golub)
-* test: new librbd flatten test case (`pr#7609 <http://github.com/ceph/ceph/pull/7609>`_, Jason Dillaman)
-* test: rbd-mirror: add "switch to the next tag" test (`pr#8149 <http://github.com/ceph/ceph/pull/8149>`_, Mykola Golub)
-* test: rbd-mirror: compare positions using all fields (`pr#8172 <http://github.com/ceph/ceph/pull/8172>`_, Mykola Golub)
-* test: reproducer for writeback CoW deadlock (`pr#8009 <http://github.com/ceph/ceph/pull/8009>`_, Jason Dillaman)
-* test: update rbd integration cram tests for new default features (`pr#8001 <http://github.com/ceph/ceph/pull/8001>`_, Jason Dillaman)
-* test_pool_create.sh: put test files in the test dir so they are cleaned up (`pr#8219 <http://github.com/ceph/ceph/pull/8219>`_, Josh Durgin)
-* tests: ceph-disk.sh: should use "readlink -f" instead (`pr#7594 <http://github.com/ceph/ceph/pull/7594>`_, Kefu Chai)
-* tests: ceph-disk.sh: use "readlink -f" instead for fullpath (`pr#7606 <http://github.com/ceph/ceph/pull/7606>`_, Kefu Chai)
-* tests: fix a few build warnings (`pr#7608 <http://github.com/ceph/ceph/pull/7608>`_, Sage Weil)
-* tests: sync ceph-erasure-code-corpus for mktemp -d (`pr#7596 <http://github.com/ceph/ceph/pull/7596>`_, Loic Dachary)
-* tests: test_pidfile.sh lingering processes (`issue#14834 <http://tracker.ceph.com/issues/14834>`_, `pr#7734 <http://github.com/ceph/ceph/pull/7734>`_, Loic Dachary)
-* tools/cephfs: add tmap_upgrade (`pr#7003 <http://github.com/ceph/ceph/pull/7003>`_, John Spray)
-* tools/cephfs: fix tmap_upgrade (`issue#15135 <http://tracker.ceph.com/issues/15135>`_, `pr#8128 <http://github.com/ceph/ceph/pull/8128>`_, John Spray)
-* tools/rados: reduce "rados put" memory usage by op_size (`pr#7928 <http://github.com/ceph/ceph/pull/7928>`_, Piotr Dałek)
-* unittest_compression_zlib: do not assume buffer will be null terminated (`pr#8064 <http://github.com/ceph/ceph/pull/8064>`_, Sage Weil)
-* unittest_osdmap: default crush tunables now firefly (`pr#8098 <http://github.com/ceph/ceph/pull/8098>`_, Sage Weil)
-* vstart.sh: avoid race condition starting rgw via vstart.sh (`issue#14829 <http://tracker.ceph.com/issues/14829>`_, `pr#7727 <http://github.com/ceph/ceph/pull/7727>`_, Javier M. Mellid)
-* vstart.sh: silence a harmless msg where btrfs is not found (`pr#7640 <http://github.com/ceph/ceph/pull/7640>`_, Patrick Donnelly)
-* xio: fix incorrect ip being assigned in case of multiple RDMA ports (`pr#7747 <http://github.com/ceph/ceph/pull/7747>`_, Subramanyam Varanasi)
-* xio: remove duplicate assignment of peer addr (`pr#8025 <http://github.com/ceph/ceph/pull/8025>`_, Roi Dayan)
-* xio: remove redundant magic methods (`pr#7773 <http://github.com/ceph/ceph/pull/7773>`_, Roi Dayan)
-* xio: remove unused variable (`pr#8023 <http://github.com/ceph/ceph/pull/8023>`_, Roi Dayan)
-* xxhash: use clone of xxhash.git; add .gitignore (`pr#7986 <http://github.com/ceph/ceph/pull/7986>`_, Sage Weil)
-* rbd: update default image features (`pr#7846 <http://github.com/ceph/ceph/pull/7846>`_, Jason Dillaman)
-* rbd-mirror: make remote context respect env and argv config params (`pr#8182 <http://github.com/ceph/ceph/pull/8182>`_, Mykola Golub)
-* journal: re-use common threads between journalers (`pr#7906 <http://github.com/ceph/ceph/pull/7906>`_, Jason Dillaman)
-* client: add option to control how directory size is calculated (`pr#7323 <http://github.com/ceph/ceph/pull/7323>`_, Yan, Zheng)
-* rgw: keystone v3 (`pr#7719 <http://github.com/ceph/ceph/pull/7719>`_, Mark Barnes, Radoslaw Zarzynski)
-* rgw: new multisite merge (`issue#14549 <http://tracker.ceph.com/issues/14549>`_, `pr#7709 <http://github.com/ceph/ceph/pull/7709>`_, Yehuda Sadeh, Orit Wasserman, Casey Bodley, Daniel Gryniewicz)
-* rgw: adjust error code when bucket does not exist in copy operation (`issue#14975 <http://tracker.ceph.com/issues/14975>`_, `pr#7916 <http://github.com/ceph/ceph/pull/7916>`_, Yehuda Sadeh)
-* rgw: indexless (`pr#7786 <http://github.com/ceph/ceph/pull/7786>`_, Yehuda Sadeh)
-
-
-
-v10.0.5
-=======
-
-This is identical to v10.0.4 and was only created because of a git tagging mistake.
-
-v10.0.4
-=======
-
-This is the fifth and last development release before Jewel. The next release
-will be a release candidate with the final set of features. Big items include
-RGW static website support, librbd journal framework, fixed mon sync of config-key
-data, C++11 updates, and bluestore/kstore.
-
-Notable Changes
----------------
-
-* admin/build-doc: depend on zlib1g-dev and graphviz (`pr#7522 <http://github.com/ceph/ceph/pull/7522>`_, Ken Dreyer)
-* buffer: use move construct to append/push_back/push_front (`pr#7455 <http://github.com/ceph/ceph/pull/7455>`_, Haomai Wang)
-* build: allow jemalloc with rocksdb-static (`pr#7368 <http://github.com/ceph/ceph/pull/7368>`_, Somnath Roy)
-* build: fix the autotools and cmake build (the new fusestore needs libfuse) (`pr#7393 <http://github.com/ceph/ceph/pull/7393>`_, Kefu Chai)
-* build: fix warnings (`pr#7197 <http://github.com/ceph/ceph/pull/7197>`_, Kefu Chai, xie xingguo)
-* build: fix warnings (`pr#7315 <http://github.com/ceph/ceph/pull/7315>`_, Kefu Chai)
-* build: kill warnings (`pr#7397 <http://github.com/ceph/ceph/pull/7397>`_, Kefu Chai)
-* build: move libexec scripts to standardize across distros (`issue#14687 <http://tracker.ceph.com/issues/14687>`_, `issue#14705 <http://tracker.ceph.com/issues/14705>`_, `issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7636 <http://github.com/ceph/ceph/pull/7636>`_, Nathan Cutler, Kefu Chai)
-* build: Refrain from versioning and packaging EC testing plugins (`issue#14756 <http://tracker.ceph.com/issues/14756>`_, `issue#14723 <http://tracker.ceph.com/issues/14723>`_, `pr#7637 <http://github.com/ceph/ceph/pull/7637>`_, Nathan Cutler, Kefu Chai)
-* build: spdk submodule; cmake (`pr#7503 <http://github.com/ceph/ceph/pull/7503>`_, Kefu Chai)
-* ceph-disk: support bluestore (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7218 <http://github.com/ceph/ceph/pull/7218>`_, Loic Dachary, Sage Weil)
-* ceph-disk/test: fix test_prepare.py::TestPrepare tests (`pr#7549 <http://github.com/ceph/ceph/pull/7549>`_, Kefu Chai)
-* cleanup: remove misc dead code (`pr#7201 <http://github.com/ceph/ceph/pull/7201>`_, Erwan Velu)
-* cls/cls_rbd: pass string by reference (`pr#7232 <http://github.com/ceph/ceph/pull/7232>`_, Jeffrey Lu)
-* cmake: Added new unittests to make check (`pr#7572 <http://github.com/ceph/ceph/pull/7572>`_, Ali Maredia)
-* cmake: add KernelDevice.cc to libos_srcs (`pr#7507 <http://github.com/ceph/ceph/pull/7507>`_, Kefu Chai)
-* cmake: check for libsnappy in default path also (`pr#7366 <http://github.com/ceph/ceph/pull/7366>`_, Kefu Chai)
-* cmake: feb5 (`pr#7541 <http://github.com/ceph/ceph/pull/7541>`_, Matt Benjamin)
-* cmake: For CMake version <= 2.8.11, use LINK_PRIVATE and LINK_PUBLIC (`pr#7474 <http://github.com/ceph/ceph/pull/7474>`_, Tao Chang)
-* cmake: let ceph-client-debug link with tcmalloc (`pr#7314 <http://github.com/ceph/ceph/pull/7314>`_, Kefu Chai)
-* cmake: support ccache via a WITH_CCACHE build option (`pr#6875 <http://github.com/ceph/ceph/pull/6875>`_, John Coyle)
-* common: add zlib compression plugin (`pr#7437 <http://github.com/ceph/ceph/pull/7437>`_, Alyona Kiseleva, Kiseleva Alyona)
-* common: admin socket commands for tcmalloc heap get/set operations (`pr#7512 <http://github.com/ceph/ceph/pull/7512>`_, Samuel Just)
-* common: ake ceph_time clocks work under BSD (`pr#7340 <http://github.com/ceph/ceph/pull/7340>`_, Adam C. Emerson)
-* common: Allow OPT_INT settings with negative values (`issue#13829 <http://tracker.ceph.com/issues/13829>`_, `pr#7390 <http://github.com/ceph/ceph/pull/7390>`_, Brad Hubbard, Kefu Chai)
-* common/buffer: replace RWLock with spinlocks (`pr#7294 <http://github.com/ceph/ceph/pull/7294>`_, Piotr Dałek)
-* common: change the type of counter total/unhealthy_workers (`pr#7254 <http://github.com/ceph/ceph/pull/7254>`_, Guang Yang)
-* common: snappy decompressor may assert when handling segmented input bufferlist (`issue#14400 <http://tracker.ceph.com/issues/14400>`_, `pr#7268 <http://github.com/ceph/ceph/pull/7268>`_, Igor Fedotov)
-* common/str_map: cleanup: replaced get_str_map() function overloading by using default parameters for delimiters (`pr#7266 <http://github.com/ceph/ceph/pull/7266>`_, Sahithi R V)
-* common: time: have skewing-now call non-skewing now (`pr#7466 <http://github.com/ceph/ceph/pull/7466>`_, Adam C. Emerson)
-* common: unit test for interval_set implementations (`pr#6 <http://github.com/ceph/ceph/pull/6>`_, Igor Fedotov)
-* config: add $data_dir/config to config search path (`pr#7377 <http://github.com/ceph/ceph/pull/7377>`_, Sage Weil)
-* configure.ac: make "--with-librocksdb-static" default to 'check' (`issue#14463 <http://tracker.ceph.com/issues/14463>`_, `pr#7317 <http://github.com/ceph/ceph/pull/7317>`_, Dan Mick)
-* crush: add safety assert (`issue#14496 <http://tracker.ceph.com/issues/14496>`_, `pr#7344 <http://github.com/ceph/ceph/pull/7344>`_, songbaisen)
-* crush: reply quickly from get_immediate_parent (`issue#14334 <http://tracker.ceph.com/issues/14334>`_, `pr#7181 <http://github.com/ceph/ceph/pull/7181>`_, song baisen)
-* debian: packaging fixes for jewel (`pr#7807 <http://github.com/ceph/ceph/pull/7807>`_, Ken Dreyer, Ali Maredia)
-* debian/rpm split servers (`issue#10587 <http://tracker.ceph.com/issues/10587>`_, `pr#7746 <http://github.com/ceph/ceph/pull/7746>`_, Ken Dreyer)
-* doc: add orphans commands to radosgw-admin(8) (`issue#14637 <http://tracker.ceph.com/issues/14637>`_, `pr#7518 <http://github.com/ceph/ceph/pull/7518>`_, Ken Dreyer)
-* doc: amend the rados.8 (`pr#7251 <http://github.com/ceph/ceph/pull/7251>`_, Kefu Chai)
-* doc: Fixes a CRUSH map step take argument (`pr#7327 <http://github.com/ceph/ceph/pull/7327>`_, Ivan Grcic)
-* doc: fixing image in section ERASURE CODING (`pr#7298 <http://github.com/ceph/ceph/pull/7298>`_, Rachana Patel)
-* doc: fix misleading configuration guide on cache tiering (`pr#7000 <http://github.com/ceph/ceph/pull/7000>`_, Yuan Zhou)
-* doc: fix S3 C# example (`pr#7027 <http://github.com/ceph/ceph/pull/7027>`_, Dunrong Huang)
-* doc: remove redundant space in ceph-authtool/monmaptool doc (`pr#7244 <http://github.com/ceph/ceph/pull/7244>`_, Jiaying Ren)
-* doc: revise SubmittingPatches (`pr#7292 <http://github.com/ceph/ceph/pull/7292>`_, Kefu Chai)
-* doc: rgw: port changes from downstream to upstream (`pr#7264 <http://github.com/ceph/ceph/pull/7264>`_, Bara Ancincova)
-* doc: script and guidelines for mirroring Ceph (`pr#7384 <http://github.com/ceph/ceph/pull/7384>`_, Wido den Hollander)
-* doc: use 'ceph auth get-or-create' for creating RGW keyring (`pr#6930 <http://github.com/ceph/ceph/pull/6930>`_, Wido den Hollander)
-* global: do not start two daemons with a single pid-file (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7075 <http://github.com/ceph/ceph/pull/7075>`_, shun song)
-* global: do not start two daemons with a single pid-file (part 2) (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7463 <http://github.com/ceph/ceph/pull/7463>`_, Loic Dachary)
-* journal: flush commit position on metadata shutdown (`pr#7385 <http://github.com/ceph/ceph/pull/7385>`_, Mykola Golub)
-* journal: reset commit_position_task_ctx pointer after task complete (`pr#7480 <http://github.com/ceph/ceph/pull/7480>`_, Mykola Golub)
-* libcephfs: update LIBCEPHFS_VERSION to indicate the interface was changed (`pr#7551 <http://github.com/ceph/ceph/pull/7551>`_, Jevon Qiao)
-* librados: move to c++11 concurrency types (`pr#5931 <http://github.com/ceph/ceph/pull/5931>`_, Adam C. Emerson)
-* librados: remove duplicate definitions for rados pool_stat_t and cluster_stat_t (`pr#7330 <http://github.com/ceph/ceph/pull/7330>`_, Igor Fedotov)
-* librados: shutdown finisher in a more graceful way (`pr#7519 <http://github.com/ceph/ceph/pull/7519>`_, xie xingguo)
-* librados_test_stub: protect against notify/unwatch race (`pr#7540 <http://github.com/ceph/ceph/pull/7540>`_, Jason Dillaman)
-* librbd: API: async open and close (`issue#14264 <http://tracker.ceph.com/issues/14264>`_, `pr#7259 <http://github.com/ceph/ceph/pull/7259>`_, Mykola Golub)
-* librbd: Avoid create two threads per image (`pr#7400 <http://github.com/ceph/ceph/pull/7400>`_, Haomai Wang)
-* librbd: block maintenance ops until after journal is ready (`issue#14510 <http://tracker.ceph.com/issues/14510>`_, `pr#7382 <http://github.com/ceph/ceph/pull/7382>`_, Jason Dillaman)
-* librbd: fix internal handling of dynamic feature updates (`pr#7299 <http://github.com/ceph/ceph/pull/7299>`_, Jason Dillaman)
-* librbd: journal framework for tracking exclusive lock transitions (`issue#13298 <http://tracker.ceph.com/issues/13298>`_, `pr#7529 <http://github.com/ceph/ceph/pull/7529>`_, Jason Dillaman)
-* librbd: journal shut down flush race condition (`issue#14434 <http://tracker.ceph.com/issues/14434>`_, `pr#7302 <http://github.com/ceph/ceph/pull/7302>`_, Jason Dillaman)
-* librbd: remove canceled tasks from timer thread (`issue#14476 <http://tracker.ceph.com/issues/14476>`_, `pr#7329 <http://github.com/ceph/ceph/pull/7329>`_, Douglas Fuller)
-* makefile: remove libedit from libclient.la (`pr#7284 <http://github.com/ceph/ceph/pull/7284>`_, Kefu Chai)
-* mds, client: fix locking around handle_conf_change (`issue#14365 <http://tracker.ceph.com/issues/14365>`_, `issue#14374 <http://tracker.ceph.com/issues/14374>`_, `pr#7312 <http://github.com/ceph/ceph/pull/7312>`_, John Spray)
-* mds: judgment added to avoid the risk of visiting the NULL pointer (`pr#7358 <http://github.com/ceph/ceph/pull/7358>`_, Kongming Wu)
-* mon: add an independent option for max election time (`pr#7245 <http://github.com/ceph/ceph/pull/7245>`_, Sangdi Xu)
-* mon: compact full epochs also (`issue#14537 <http://tracker.ceph.com/issues/14537>`_, `pr#7396 <http://github.com/ceph/ceph/pull/7396>`_, Kefu Chai)
-* mon: consider the pool size when setting pool crush rule (`issue#14495 <http://tracker.ceph.com/issues/14495>`_, `pr#7341 <http://github.com/ceph/ceph/pull/7341>`_, song baisen)
-* mon: drop useless rank init assignment (`issue#14508 <http://tracker.ceph.com/issues/14508>`_, `pr#7321 <http://github.com/ceph/ceph/pull/7321>`_, huanwen ren)
-* mon: fix locking in preinit error paths (`issue#14473 <http://tracker.ceph.com/issues/14473>`_, `pr#7353 <http://github.com/ceph/ceph/pull/7353>`_, huanwen ren)
-* mon: fix monmap creation stamp (`pr#7459 <http://github.com/ceph/ceph/pull/7459>`_, duanweijun)
-* mon: fix sync of config-key data (`pr#7363 <http://github.com/ceph/ceph/pull/7363>`_, Xiaowei Chen)
-* mon: go into ERR state if multiple PGs are stuck inactive (`issue#13923 <http://tracker.ceph.com/issues/13923>`_, `pr#7253 <http://github.com/ceph/ceph/pull/7253>`_, Wido den Hollander)
-* mon/MDSMonitor.cc: properly note beacon when health metrics changes (`issue#14684 <http://tracker.ceph.com/issues/14684>`_, `pr#7757 <http://github.com/ceph/ceph/pull/7757>`_, Yan, Zheng)
-* mon/MonClient: avoid null pointer error when configured incorrectly (`issue#14405 <http://tracker.ceph.com/issues/14405>`_, `pr#7276 <http://github.com/ceph/ceph/pull/7276>`_, Bo Cai)
-* mon: PG Monitor should report waiting for backfill (`issue#12744 <http://tracker.ceph.com/issues/12744>`_, `pr#7398 <http://github.com/ceph/ceph/pull/7398>`_, Abhishek Lekshmanan)
-* mon: reduce CPU and memory manager pressure of pg health check (`pr#7482 <http://github.com/ceph/ceph/pull/7482>`_, Piotr Dałek)
-* mon: some cleanup in MonmapMonitor.cc (`pr#7418 <http://github.com/ceph/ceph/pull/7418>`_, huanwen ren)
-* mon: warn if pg(s) not scrubbed (`issue#13142 <http://tracker.ceph.com/issues/13142>`_, `pr#6440 <http://github.com/ceph/ceph/pull/6440>`_, Michal Jarzabek)
-* msg/async: AsyncConnection: avoid debug log in cleanup_handler (`pr#7547 <http://github.com/ceph/ceph/pull/7547>`_, Haomai Wang)
-* msg/async: bunch of fixes (`pr#7379 <http://github.com/ceph/ceph/pull/7379>`_, Piotr Dałek)
-* msg/async: fix array boundary (`pr#7451 <http://github.com/ceph/ceph/pull/7451>`_, Wei Jin)
-* msg/async: fix potential race condition (`pr#7453 <http://github.com/ceph/ceph/pull/7453>`_, Haomai Wang)
-* msg/async: fix send closed local_connection message problem (`pr#7255 <http://github.com/ceph/ceph/pull/7255>`_, Haomai Wang)
-* msg/async: reduce extra tcp packet for message ack (`pr#7380 <http://github.com/ceph/ceph/pull/7380>`_, Haomai Wang)
-* msg/xio: fix compilation (`pr#7479 <http://github.com/ceph/ceph/pull/7479>`_, Roi Dayan)
-* organizationmap: modify org mail info. (`pr#7240 <http://github.com/ceph/ceph/pull/7240>`_, Xiaowei Chen)
-* os/bluestore: fix assert (`issue#14436 <http://tracker.ceph.com/issues/14436>`_, `pr#7293 <http://github.com/ceph/ceph/pull/7293>`_, xie xingguo)
-* os/bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7342 <http://github.com/ceph/ceph/pull/7342>`_, Kefu Chai)
-* os/bluestore: insert new onode to the front position of onode LRU (`pr#7492 <http://github.com/ceph/ceph/pull/7492>`_, Jianjian Huo)
-* os/bluestore: use intrusive_ptr for Dir (`pr#7247 <http://github.com/ceph/ceph/pull/7247>`_, Igor Fedotov)
-* osd: blockdevice: avoid implicit cast and add guard (`pr#7460 <http://github.com/ceph/ceph/pull/7460>`_, xie xingguo)
-* osd: bluestore/BlueFS: initialize super block_size earlier in mkfs (`pr#7535 <http://github.com/ceph/ceph/pull/7535>`_, Sage Weil)
-* osd: BlueStore: fix fsck and blockdevice read-relevant issue (`pr#7362 <http://github.com/ceph/ceph/pull/7362>`_, xie xingguo)
-* osd: BlueStore: fix null pointer access (`issue#14561 <http://tracker.ceph.com/issues/14561>`_, `pr#7435 <http://github.com/ceph/ceph/pull/7435>`_, xie xingguo)
-* osd: bluestore, kstore: fix nid overwritten logic (`issue#14407 <http://tracker.ceph.com/issues/14407>`_, `issue#14433 <http://tracker.ceph.com/issues/14433>`_, `pr#7283 <http://github.com/ceph/ceph/pull/7283>`_, xie xingguo)
-* osd: bluestore: use btree_map for allocator (`pr#7269 <http://github.com/ceph/ceph/pull/7269>`_, Igor Fedotov, Sage Weil)
-* osd: drop fiemap len=0 logic (`pr#7267 <http://github.com/ceph/ceph/pull/7267>`_, Sage Weil)
-* osd: FileStore: add error check for object_map->sync() (`pr#7281 <http://github.com/ceph/ceph/pull/7281>`_, Chendi Xue)
-* osd: FileStore: cleanup: remove obsolete option "filestore_xattr_use_omap" (`issue#14356 <http://tracker.ceph.com/issues/14356>`_, `pr#7217 <http://github.com/ceph/ceph/pull/7217>`_, Vikhyat Umrao)
-* osd: FileStore: modify the format of colon (`pr#7333 <http://github.com/ceph/ceph/pull/7333>`_, Donghai Xu)
-* osd: FileStore: print file name before osd assert if read file failed (`pr#7111 <http://github.com/ceph/ceph/pull/7111>`_, Ji Chen)
-* osd: fix invalid list traversal in process_copy_chunk (`pr#7511 <http://github.com/ceph/ceph/pull/7511>`_, Samuel Just)
-* osd, mon: fix exit issue (`pr#7420 <http://github.com/ceph/ceph/pull/7420>`_, Jiaying Ren)
-* osd: PG::activate(): handle unexpected cached_removed_snaps more gracefully (`issue#14428 <http://tracker.ceph.com/issues/14428>`_, `pr#7309 <http://github.com/ceph/ceph/pull/7309>`_, Alexey Sheplyakov)
-* os/fs: fix io_getevents argument (`pr#7355 <http://github.com/ceph/ceph/pull/7355>`_, Jingkai Yuan)
-* os/fusestore: add error handling (`pr#7395 <http://github.com/ceph/ceph/pull/7395>`_, xie xingguo)
-* os/keyvaluestore: kill KeyValueStore (`pr#7320 <http://github.com/ceph/ceph/pull/7320>`_, Haomai Wang)
-* os/kstore: insert new onode to the front position of onode LRU (`pr#7505 <http://github.com/ceph/ceph/pull/7505>`_, xie xingguo)
-* os/ObjectStore: add custom move operations for ObjectStore::Transaction (`pr#7303 <http://github.com/ceph/ceph/pull/7303>`_, Casey Bodley)
-* rgw: Bug fix for mtime anomalies in RadosGW and other places (`pr#7328 <http://github.com/ceph/ceph/pull/7328>`_, Adam C. Emerson, Casey Bodley)
-* rpm: move %post(un) ldconfig calls to ceph-base (`issue#14940 <http://tracker.ceph.com/issues/14940>`_, `pr#7867 <http://github.com/ceph/ceph/pull/7867>`_, Nathan Cutler)
-* rpm: move runtime dependencies to ceph-base and fix other packaging issues (`issue#14864 <http://tracker.ceph.com/issues/14864>`_, `pr#7826 <http://github.com/ceph/ceph/pull/7826>`_, Nathan Cutler)
-* test: ceph_test_rados: use less CPU (`pr#7513 <http://github.com/ceph/ceph/pull/7513>`_, Samuel Just)
-
-v10.0.3
-=======
-
-This is the fourth development release for Jewel. Several big pieces
-have been added this release, including BlueStore (a new backend for
-OSD to replace FileStore), many ceph-disk fixes, a new CRUSH tunable
-that improves mapping stability, a new librados object enumeration API,
-and a whole slew of OSD and RADOS optimizations.
-
-Note that, due to general developer busyness, we aren't building official
-release packages for this dev release. You can fetch autobuilt gitbuilder
-packages from the usual location (gitbuilder.ceph.com).
-
-Notable Changes
----------------
-
-* bluestore: latest and greatest (`issue#14210 <http://tracker.ceph.com/issues/14210>`_, `issue#13801 <http://tracker.ceph.com/issues/13801>`_, `pr#6896 <http://github.com/ceph/ceph/pull/6896>`_, xie.xingguo, Jianpeng Ma, YiQiang Chen, Sage Weil, Ning Yao)
-* buffer: fix internal iterator invalidation on rebuild, get_contiguous (`pr#6962 <http://github.com/ceph/ceph/pull/6962>`_, Sage Weil)
-* build: fix a few warnings (`pr#6847 <http://github.com/ceph/ceph/pull/6847>`_, Orit Wasserman)
-* build: misc make check fixes (`pr#7153 <http://github.com/ceph/ceph/pull/7153>`_, Sage Weil)
-* ceph-detect-init: fix py3 test (`pr#7025 <http://github.com/ceph/ceph/pull/7025>`_, Kefu Chai)
-* ceph-disk: add -f flag for btrfs mkfs (`pr#7222 <http://github.com/ceph/ceph/pull/7222>`_, Darrell Enns)
-* ceph-disk: ceph-disk list fails on /dev/cciss!c0d0 (`issue#13970 <http://tracker.ceph.com/issues/13970>`_, `issue#14233 <http://tracker.ceph.com/issues/14233>`_, `issue#14230 <http://tracker.ceph.com/issues/14230>`_, `pr#6879 <http://github.com/ceph/ceph/pull/6879>`_, Loic Dachary)
-* ceph-disk: fix failures when preparing disks with udev > 214 (`issue#14080 <http://tracker.ceph.com/issues/14080>`_, `issue#14094 <http://tracker.ceph.com/issues/14094>`_, `pr#6926 <http://github.com/ceph/ceph/pull/6926>`_, Loic Dachary, Ilya Dryomov)
-* ceph-disk: Fix trivial typo (`pr#7472 <http://github.com/ceph/ceph/pull/7472>`_, Brad Hubbard)
-* ceph-disk: warn for prepare partitions with bad GUIDs (`issue#13943 <http://tracker.ceph.com/issues/13943>`_, `pr#6760 <http://github.com/ceph/ceph/pull/6760>`_, David Disseldorp)
-* ceph-fuse: fix double decreasing the count to trim caps (`issue#14319 <http://tracker.ceph.com/issues/14319>`_, `pr#7229 <http://github.com/ceph/ceph/pull/7229>`_, Zhi Zhang)
-* ceph-fuse: fix double free of args (`pr#7015 <http://github.com/ceph/ceph/pull/7015>`_, Ilya Shipitsin)
-* ceph-fuse: fix fsync() (`pr#6388 <http://github.com/ceph/ceph/pull/6388>`_, Yan, Zheng)
-* ceph-fuse:print usage information when no parameter specified (`pr#6868 <http://github.com/ceph/ceph/pull/6868>`_, Bo Cai)
-* ceph: improve the error message (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#7106 <http://github.com/ceph/ceph/pull/7106>`_, Kefu Chai)
-* ceph.in: avoid a broken pipe error when use ceph command (`issue#14354 <http://tracker.ceph.com/issues/14354>`_, `pr#7212 <http://github.com/ceph/ceph/pull/7212>`_, Bo Cai)
-* ceph.spec.in: add copyright notice (`issue#14694 <http://tracker.ceph.com/issues/14694>`_, `pr#7569 <http://github.com/ceph/ceph/pull/7569>`_, Nathan Cutler)
-* ceph.spec.in: add license declaration (`pr#7574 <http://github.com/ceph/ceph/pull/7574>`_, Nathan Cutler)
-* ceph_test_libcephfs: tolerate duplicated entries in readdir (`issue#14377 <http://tracker.ceph.com/issues/14377>`_, `pr#7246 <http://github.com/ceph/ceph/pull/7246>`_, Yan, Zheng)
-* client: check if Fh is readable when processing a read (`issue#11517 <http://tracker.ceph.com/issues/11517>`_, `pr#7209 <http://github.com/ceph/ceph/pull/7209>`_, Yan, Zheng)
-* client: properly trim unlinked inode (`issue#13903 <http://tracker.ceph.com/issues/13903>`_, `pr#7297 <http://github.com/ceph/ceph/pull/7297>`_, Yan, Zheng)
-* cls_rbd: add guards for error cases (`issue#14316 <http://tracker.ceph.com/issues/14316>`_, `issue#14317 <http://tracker.ceph.com/issues/14317>`_, `pr#7165 <http://github.com/ceph/ceph/pull/7165>`_, xie xingguo)
-* cls_rbd: enable object map checksums for object_map_save (`issue#14280 <http://tracker.ceph.com/issues/14280>`_, `pr#7149 <http://github.com/ceph/ceph/pull/7149>`_, Douglas Fuller)
-* cmake: Add ENABLE_GIT_VERSION to avoid rebuilding (`pr#7171 <http://github.com/ceph/ceph/pull/7171>`_, Kefu Chai)
-* cmake: add missing check for HAVE_EXECINFO_H (`pr#7270 <http://github.com/ceph/ceph/pull/7270>`_, Casey Bodley)
-* cmake: cleanups and more features from automake (`pr#7103 <http://github.com/ceph/ceph/pull/7103>`_, Casey Bodley, Ali Maredia)
-* cmake: detect bzip2 and lz4 (`pr#7126 <http://github.com/ceph/ceph/pull/7126>`_, Kefu Chai)
-* cmake: fix build with bluestore (`pr#7099 <http://github.com/ceph/ceph/pull/7099>`_, John Spray)
-* cmake: fix the build on trusty (`pr#7249 <http://github.com/ceph/ceph/pull/7249>`_, Kefu Chai)
-* cmake: made rocksdb an imported library (`pr#7131 <http://github.com/ceph/ceph/pull/7131>`_, Ali Maredia)
-* cmake: no need to run configure from run-cmake-check.sh (`pr#6959 <http://github.com/ceph/ceph/pull/6959>`_, Orit Wasserman)
-* cmake: test_build_libcephfs needs ${ALLOC_LIBS} (`pr#7300 <http://github.com/ceph/ceph/pull/7300>`_, Ali Maredia)
-* common/address_help.cc: fix the leak in entity_addr_from_url() (`issue#14132 <http://tracker.ceph.com/issues/14132>`_, `pr#6987 <http://github.com/ceph/ceph/pull/6987>`_, Qiankun Zheng)
-* common: add thread names (`pr#5882 <http://github.com/ceph/ceph/pull/5882>`_, Igor Podoski)
-* common: assert: abort() rather than throw (`pr#6804 <http://github.com/ceph/ceph/pull/6804>`_, Adam C. Emerson)
-* common: buffer/assert minor fixes (`pr#6990 <http://github.com/ceph/ceph/pull/6990>`_, Matt Benjamin)
-* common/Formatter: avoid newline if there is no output (`pr#5351 <http://github.com/ceph/ceph/pull/5351>`_, Aran85)
-* common: improve shared_cache and simple_cache efficiency with hash table (`pr#6909 <http://github.com/ceph/ceph/pull/6909>`_, Ning Yao)
-* common/lockdep: increase max lock names (`pr#6961 <http://github.com/ceph/ceph/pull/6961>`_, Sage Weil)
-* common: new timekeeping common code, and Objecter conversion (`pr#5782 <http://github.com/ceph/ceph/pull/5782>`_, Adam C. Emerson)
-* common: signal_handler: added support for using reentrant strsignal() implementations vs. sys_siglist[] (`pr#6796 <http://github.com/ceph/ceph/pull/6796>`_, John Coyle)
-* config: complains when a setting is not tracked (`issue#11692 <http://tracker.ceph.com/issues/11692>`_, `pr#7085 <http://github.com/ceph/ceph/pull/7085>`_, Kefu Chai)
-* configure: detect bz2 and lz4 (`issue#13850 <http://tracker.ceph.com/issues/13850>`_, `issue#13981 <http://tracker.ceph.com/issues/13981>`_, `pr#7030 <http://github.com/ceph/ceph/pull/7030>`_, Kefu Chai)
-* correct radosgw-admin command (`pr#7006 <http://github.com/ceph/ceph/pull/7006>`_, YankunLi)
-* crush: add chooseleaf_stable tunable (`pr#6572 <http://github.com/ceph/ceph/pull/6572>`_, Sangdi Xu, Sage Weil)
-* crush: clean up whitespace removal (`issue#14302 <http://tracker.ceph.com/issues/14302>`_, `pr#7157 <http://github.com/ceph/ceph/pull/7157>`_, songbaisen)
-* crush/CrushTester: check for overlapped rules (`pr#7139 <http://github.com/ceph/ceph/pull/7139>`_, Kefu Chai)
-* crushtool: improve usage/tip messages (`pr#7142 <http://github.com/ceph/ceph/pull/7142>`_, xie xingguo)
-* crushtool: set type 0 name "device" for --build option (`pr#6824 <http://github.com/ceph/ceph/pull/6824>`_, Sangdi Xu)
-* doc: adding "--allow-shrink" in decreasing the size of the rbd block to distinguish from the increasing option (`pr#7020 <http://github.com/ceph/ceph/pull/7020>`_, Yehua)
-* doc: admin/build-doc: make paths absolute (`pr#7119 <http://github.com/ceph/ceph/pull/7119>`_, Dan Mick)
-* doc: dev: document ceph-qa-suite (`pr#6955 <http://github.com/ceph/ceph/pull/6955>`_, Loic Dachary)
-* doc: document "readforward" and "readproxy" cache mode (`pr#7023 <http://github.com/ceph/ceph/pull/7023>`_, Kefu Chai)
-* doc: fix "mon osd down out subtree limit" option name (`pr#7164 <http://github.com/ceph/ceph/pull/7164>`_, François Lafont)
-* doc: fix typo (`pr#7004 <http://github.com/ceph/ceph/pull/7004>`_, tianqing)
-* doc: Updated the rados command man page to include the --run-name opt… (`issue#12899 <http://tracker.ceph.com/issues/12899>`_, `pr#5900 <http://github.com/ceph/ceph/pull/5900>`_, ritz303)
-* fs: be more careful about the "mds setmap" command to prevent breakage (`issue#14380 <http://tracker.ceph.com/issues/14380>`_, `pr#7262 <http://github.com/ceph/ceph/pull/7262>`_, Yan, Zheng)
-* helgrind: additional race conditionslibrbd: journal replay should honor inter-event dependencies (`pr#7274 <http://github.com/ceph/ceph/pull/7274>`_, Jason Dillaman)
-* helgrind: fix real (and imaginary) race conditions (`issue#14163 <http://tracker.ceph.com/issues/14163>`_, `pr#7208 <http://github.com/ceph/ceph/pull/7208>`_, Jason Dillaman)
-* kv: implement value_as_ptr() and use it in .get() (`pr#7052 <http://github.com/ceph/ceph/pull/7052>`_, Piotr Dałek)
-* librados: add c++ style osd/pg command interface (`pr#6893 <http://github.com/ceph/ceph/pull/6893>`_, Yunchuan Wen)
-* librados: fix several flaws introduced by the enumeration_objects API (`issue#14299 <http://tracker.ceph.com/issues/14299>`_, `issue#14301 <http://tracker.ceph.com/issues/14301>`_, `issue#14300 <http://tracker.ceph.com/issues/14300>`_, `pr#7156 <http://github.com/ceph/ceph/pull/7156>`_, xie xingguo)
-* librados: new style (sharded) object listing (`pr#6405 <http://github.com/ceph/ceph/pull/6405>`_, John Spray, Sage Weil)
-* librados: potential null pointer access in list_(n)objects (`issue#13822 <http://tracker.ceph.com/issues/13822>`_, `pr#6639 <http://github.com/ceph/ceph/pull/6639>`_, xie xingguo)
-* librbd: exit if parent's snap is gone during clone (`issue#14118 <http://tracker.ceph.com/issues/14118>`_, `pr#6968 <http://github.com/ceph/ceph/pull/6968>`_, xie xingguo)
-* librbd: fix potential memory leak (`issue#14332 <http://tracker.ceph.com/issues/14332>`_, `issue#14333 <http://tracker.ceph.com/issues/14333>`_, `pr#7174 <http://github.com/ceph/ceph/pull/7174>`_, xie xingguo)
-* librbd: fix snap_exists API return code overflow (`issue#14129 <http://tracker.ceph.com/issues/14129>`_, `pr#6986 <http://github.com/ceph/ceph/pull/6986>`_, xie xingguo)
-* librbd: journal replay should honor inter-event dependencies (`pr#7019 <http://github.com/ceph/ceph/pull/7019>`_, Jason Dillaman)
-* librbd: return error if we fail to delete object_map head object (`issue#14098 <http://tracker.ceph.com/issues/14098>`_, `pr#6958 <http://github.com/ceph/ceph/pull/6958>`_, xie xingguo)
-* librbd: small fixes for error messages and readahead counter (`issue#14127 <http://tracker.ceph.com/issues/14127>`_, `pr#6983 <http://github.com/ceph/ceph/pull/6983>`_, xie xingguo)
-* librbd: uninitialized state in snap remove state machine (`pr#6982 <http://github.com/ceph/ceph/pull/6982>`_, Jason Dillaman)
-* mailmap: hange organization for Dongmao Zhang (`pr#7173 <http://github.com/ceph/ceph/pull/7173>`_, Dongmao Zhang)
-* mailmap: Igor Podoski affiliation (`pr#7219 <http://github.com/ceph/ceph/pull/7219>`_, Igor Podoski)
-* mailmap update (`pr#7210 <http://github.com/ceph/ceph/pull/7210>`_, M Ranga Swami Reddy)
-* mailmap updates (`pr#6992 <http://github.com/ceph/ceph/pull/6992>`_, Loic Dachary)
-* mailmap updates (`pr#7189 <http://github.com/ceph/ceph/pull/7189>`_, Loic Dachary)
-* man: document listwatchers cmd in "rados" manpage (`pr#7021 <http://github.com/ceph/ceph/pull/7021>`_, Kefu Chai)
-* mds: advance clientreplay when replying (`issue#14357 <http://tracker.ceph.com/issues/14357>`_, `pr#7216 <http://github.com/ceph/ceph/pull/7216>`_, John Spray)
-* mds: expose state of recovery to status ASOK command (`issue#14146 <http://tracker.ceph.com/issues/14146>`_, `pr#7068 <http://github.com/ceph/ceph/pull/7068>`_, Yan, Zheng)
-* mds: fix client cap/message replay order on restart (`issue#14254 <http://tracker.ceph.com/issues/14254>`_, `issue#13546 <http://tracker.ceph.com/issues/13546>`_, `pr#7199 <http://github.com/ceph/ceph/pull/7199>`_, Yan, Zheng)
-* mds: fix standby replay thread creation (`issue#14144 <http://tracker.ceph.com/issues/14144>`_, `pr#7132 <http://github.com/ceph/ceph/pull/7132>`_, John Spray)
-* mds: we should wait messenger when MDSDaemon suicide (`pr#6996 <http://github.com/ceph/ceph/pull/6996>`_, Wei Feng)
-* mon: add `osd blacklist clear` (`pr#6945 <http://github.com/ceph/ceph/pull/6945>`_, John Spray)
-* mon: add RAW USED column to ceph df detail (`pr#7087 <http://github.com/ceph/ceph/pull/7087>`_, Ruifeng Yang)
-* mon: degrade a log message to level 2 (`pr#6929 <http://github.com/ceph/ceph/pull/6929>`_, Kongming Wu)
-* mon: fix coding-style on PG related Monitor files (`pr#6881 <http://github.com/ceph/ceph/pull/6881>`_, Wido den Hollander)
-* mon: fixes related to mondbstore->get() changes (`pr#6564 <http://github.com/ceph/ceph/pull/6564>`_, Piotr Dałek)
-* mon: fix reuse of osd ids (clear osd info on osd deletion) (`issue#13988 <http://tracker.ceph.com/issues/13988>`_, `pr#6900 <http://github.com/ceph/ceph/pull/6900>`_, Loic Dachary, Sage Weil)
-* mon: fix the can't change subscribe level bug in monitoring log (`pr#7031 <http://github.com/ceph/ceph/pull/7031>`_, Zhiqiang Wang)
-* mon/MDSMonitor: add confirmation to "ceph mds rmfailed" (`issue#14379 <http://tracker.ceph.com/issues/14379>`_, `pr#7248 <http://github.com/ceph/ceph/pull/7248>`_, Yan, Zheng)
-* mon: modify a dout level in OSDMonitor.cc (`pr#6928 <http://github.com/ceph/ceph/pull/6928>`_, Yongqiang He)
-* mon: MonmapMonitor: don't expose uncommitted state to client (`pr#6854 <http://github.com/ceph/ceph/pull/6854>`_, Joao Eduardo Luis)
-* mon/OSDMonitor: osdmap laggy set a maximum limit for interval (`pr#7109 <http://github.com/ceph/ceph/pull/7109>`_, Zengran Zhang)
-* mon: paxos is_recovering calc error (`pr#7227 <http://github.com/ceph/ceph/pull/7227>`_, Weijun Duan)
-* mon/PGMap: show rd/wr iops separately in status reports (`pr#7072 <http://github.com/ceph/ceph/pull/7072>`_, Cilang Zhao)
-* mon: PGMonitor: acting primary diff with cur_stat, should not set pg to stale (`pr#7083 <http://github.com/ceph/ceph/pull/7083>`_, Xiaowei Chen)
-* msg: add override to virutal methods (`pr#6977 <http://github.com/ceph/ceph/pull/6977>`_, Michal Jarzabek)
-* msg/async: cleanup dead connection and misc things (`pr#7158 <http://github.com/ceph/ceph/pull/7158>`_, Haomai Wang)
-* msg/async: don't use shared_ptr to manage EventCallback (`pr#7028 <http://github.com/ceph/ceph/pull/7028>`_, Haomai Wang)
-* msg: filter out lo addr when bind osd addr (`pr#7012 <http://github.com/ceph/ceph/pull/7012>`_, Ji Chen)
-* msg: removed unneeded includes from Dispatcher (`pr#6814 <http://github.com/ceph/ceph/pull/6814>`_, Michal Jarzabek)
-* msg: remove unneeded inline (`pr#6989 <http://github.com/ceph/ceph/pull/6989>`_, Michal Jarzabek)
-* msgr: fix large message data content length causing overflow (`pr#6809 <http://github.com/ceph/ceph/pull/6809>`_, Jun Huang, Haomai Wang)
-* msg/simple: pipe: memory leak when signature check failed (`pr#7096 <http://github.com/ceph/ceph/pull/7096>`_, Ruifeng Yang)
-* msg/simple: remove unneeded friend declarations (`pr#6924 <http://github.com/ceph/ceph/pull/6924>`_, Michal Jarzabek)
-* objecter: avoid recursive lock of Objecter::rwlock (`pr#7343 <http://github.com/ceph/ceph/pull/7343>`_, Yan, Zheng)
-* os/bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7419 <http://github.com/ceph/ceph/pull/7419>`_, Kefu Chai, Brad Hubbard)
-* osd: add cache hint when pushing raw clone during recovery (`pr#7069 <http://github.com/ceph/ceph/pull/7069>`_, Zhiqiang Wang)
-* osd: avoid debug std::string initialization in PG::get/put (`pr#7117 <http://github.com/ceph/ceph/pull/7117>`_, Evgeniy Firsov)
-* osd: avoid osd_op_thread suicide because osd_scrub_sleep (`pr#7009 <http://github.com/ceph/ceph/pull/7009>`_, Jianpeng Ma)
-* osd: bluestore: bluefs: fix several small bugs (`issue#14344 <http://tracker.ceph.com/issues/14344>`_, `issue#14343 <http://tracker.ceph.com/issues/14343>`_, `pr#7200 <http://github.com/ceph/ceph/pull/7200>`_, xie xingguo)
-* osd: bluestore: don't include when building without libaio (`issue#14207 <http://tracker.ceph.com/issues/14207>`_, `pr#7169 <http://github.com/ceph/ceph/pull/7169>`_, Mykola Golub)
-* osd: bluestore: fix bluestore onode_t attr leak (`pr#7125 <http://github.com/ceph/ceph/pull/7125>`_, Ning Yao)
-* osd: bluestore: fix bluestore_wal_transaction_t encoding test (`pr#7168 <http://github.com/ceph/ceph/pull/7168>`_, Kefu Chai)
-* osd: bluestore: fix several bugs (`issue#14259 <http://tracker.ceph.com/issues/14259>`_, `issue#14353 <http://tracker.ceph.com/issues/14353>`_, `issue#14260 <http://tracker.ceph.com/issues/14260>`_, `issue#14261 <http://tracker.ceph.com/issues/14261>`_, `pr#7122 <http://github.com/ceph/ceph/pull/7122>`_, xie xingguo)
-* osd: bluestore: fix space rebalancing, collection split, buffered reads (`pr#7196 <http://github.com/ceph/ceph/pull/7196>`_, Sage Weil)
-* osd: bluestore: more fixes (`pr#7130 <http://github.com/ceph/ceph/pull/7130>`_, Sage Weil)
-* osd: cache tier: add config option for eviction check list size (`pr#6997 <http://github.com/ceph/ceph/pull/6997>`_, Yuan Zhou)
-* osdc: Fix race condition with tick_event and shutdown (`issue#14256 <http://tracker.ceph.com/issues/14256>`_, `pr#7151 <http://github.com/ceph/ceph/pull/7151>`_, Adam C. Emerson)
-* osd: check health state before pre_booting (`issue#14181 <http://tracker.ceph.com/issues/14181>`_, `pr#7053 <http://github.com/ceph/ceph/pull/7053>`_, Xiaoxi Chen)
-* osd: clear pg_stat_queue after stopping pgs (`issue#14212 <http://tracker.ceph.com/issues/14212>`_, `pr#7091 <http://github.com/ceph/ceph/pull/7091>`_, Sage Weil)
-* osd: delay populating in-memory PG log hashmaps (`pr#6425 <http://github.com/ceph/ceph/pull/6425>`_, Piotr Dałek)
-* osd: disable filestore_xfs_extsize by default (`issue#14397 <http://tracker.ceph.com/issues/14397>`_, `pr#7265 <http://github.com/ceph/ceph/pull/7265>`_, Ken Dreyer)
-* osd: do not keep ref of old osdmap in pg (`issue#13990 <http://tracker.ceph.com/issues/13990>`_, `pr#7007 <http://github.com/ceph/ceph/pull/7007>`_, Kefu Chai)
-* osd: drop deprecated removal pg type (`pr#6970 <http://github.com/ceph/ceph/pull/6970>`_, Igor Podoski)
-* osd: FileJournal: fix return code of create method (`issue#14134 <http://tracker.ceph.com/issues/14134>`_, `pr#6988 <http://github.com/ceph/ceph/pull/6988>`_, xie xingguo)
-* osd: FileJournal: support batch peak and pop from writeq (`pr#6701 <http://github.com/ceph/ceph/pull/6701>`_, Xinze Chi)
-* osd: FileStore: conditional collection of drive metadata (`pr#6956 <http://github.com/ceph/ceph/pull/6956>`_, Somnath Roy)
-* osd: FileStore:: optimize lfn_unlink (`pr#6649 <http://github.com/ceph/ceph/pull/6649>`_, Jianpeng Ma)
-* osd: fix null pointer access and race condition (`issue#14072 <http://tracker.ceph.com/issues/14072>`_, `pr#6916 <http://github.com/ceph/ceph/pull/6916>`_, xie xingguo)
-* osd: fix scrub start hobject (`pr#7467 <http://github.com/ceph/ceph/pull/7467>`_, Sage Weil)
-* osd: fix sparse-read result code checking logic (`issue#14151 <http://tracker.ceph.com/issues/14151>`_, `pr#7016 <http://github.com/ceph/ceph/pull/7016>`_, xie xingguo)
-* osd: fix temp object removal after upgrade (`issue#13862 <http://tracker.ceph.com/issues/13862>`_, `pr#6976 <http://github.com/ceph/ceph/pull/6976>`_, David Zafman)
-* osd: fix wip (l_osd_op_wip) perf counter and remove repop_map (`pr#7077 <http://github.com/ceph/ceph/pull/7077>`_, Xinze Chi)
-* osd: fix wrongly placed assert and some cleanups (`pr#6766 <http://github.com/ceph/ceph/pull/6766>`_, xiexingguo, xie xingguo)
-* osd: KeyValueStore: fix return code of mkfs (`pr#7036 <http://github.com/ceph/ceph/pull/7036>`_, xie xingguo)
-* osd: KeyValueStore: fix wrongly placed assert (`issue#14176 <http://tracker.ceph.com/issues/14176>`_, `issue#14178 <http://tracker.ceph.com/issues/14178>`_, `pr#7047 <http://github.com/ceph/ceph/pull/7047>`_, xie xingguo)
-* osd: kstore: several small fixes (`issue#14351 <http://tracker.ceph.com/issues/14351>`_, `issue#14352 <http://tracker.ceph.com/issues/14352>`_, `pr#7213 <http://github.com/ceph/ceph/pull/7213>`_, xie xingguo)
-* osd: kstore: small fixes to kstore (`issue#14204 <http://tracker.ceph.com/issues/14204>`_, `pr#7095 <http://github.com/ceph/ceph/pull/7095>`_, xie xingguo)
-* osd: make list_missing query missing_loc.needs_recovery_map (`pr#6298 <http://github.com/ceph/ceph/pull/6298>`_, Guang Yang)
-* osdmap: remove unused local variables (`pr#6864 <http://github.com/ceph/ceph/pull/6864>`_, luo kexue)
-* osd: memstore: fix two bugs (`pr#6963 <http://github.com/ceph/ceph/pull/6963>`_, Casey Bodley, Sage Weil)
-* osd: misc FileStore fixes (`issue#14192 <http://tracker.ceph.com/issues/14192>`_, `issue#14188 <http://tracker.ceph.com/issues/14188>`_, `issue#14194 <http://tracker.ceph.com/issues/14194>`_, `issue#14187 <http://tracker.ceph.com/issues/14187>`_, `issue#14186 <http://tracker.ceph.com/issues/14186>`_, `pr#7059 <http://github.com/ceph/ceph/pull/7059>`_, xie xingguo)
-* osd: misc optimization for map utilization (`pr#6950 <http://github.com/ceph/ceph/pull/6950>`_, Ning Yao)
-* osd,mon: log leveldb and rocksdb to ceph log (`pr#6921 <http://github.com/ceph/ceph/pull/6921>`_, Sage Weil)
-* osd: Omap small bugs adapted (`pr#6669 <http://github.com/ceph/ceph/pull/6669>`_, Jianpeng Ma, David Zafman)
-* osd: optimize the session_handle_reset function (`issue#14182 <http://tracker.ceph.com/issues/14182>`_, `pr#7054 <http://github.com/ceph/ceph/pull/7054>`_, songbaisen)
-* osd: OSDService: Fix typo in osdmap comment (`pr#7275 <http://github.com/ceph/ceph/pull/7275>`_, Brad Hubbard)
-* osd: os: skip checking pg_meta object existance in FileStore (`pr#6870 <http://github.com/ceph/ceph/pull/6870>`_, Ning Yao)
-* osd: PGLog: clean up read_log (`pr#7092 <http://github.com/ceph/ceph/pull/7092>`_, Jie Wang)
-* osd: prevent osd_recovery_sleep from causing recovery-thread suicide (`pr#7065 <http://github.com/ceph/ceph/pull/7065>`_, Jianpeng Ma)
-* osd: reduce string use in coll_t::calc_str() (`pr#6505 <http://github.com/ceph/ceph/pull/6505>`_, Igor Podoski)
-* osd: release related sources when scrub is interrupted (`pr#6744 <http://github.com/ceph/ceph/pull/6744>`_, Jianpeng Ma)
-* osd: remove unused OSDMap::set_weightf() (`issue#14369 <http://tracker.ceph.com/issues/14369>`_, `pr#7231 <http://github.com/ceph/ceph/pull/7231>`_, huanwen ren)
-* osd: ReplicatedPG: clean up unused function (`pr#7211 <http://github.com/ceph/ceph/pull/7211>`_, Xiaowei Chen)
-* osd/ReplicatedPG: fix promotion recency logic (`issue#14320 <http://tracker.ceph.com/issues/14320>`_, `pr#6702 <http://github.com/ceph/ceph/pull/6702>`_, Sage Weil)
-* osd: several small cleanups (`pr#7055 <http://github.com/ceph/ceph/pull/7055>`_, xie xingguo)
-* osd: shut down if we flap too many times in a short period (`pr#6708 <http://github.com/ceph/ceph/pull/6708>`_, Xiaoxi Chen)
-* osd: skip promote for writefull w/ FADVISE_DONTNEED/NOCACHE (`pr#7010 <http://github.com/ceph/ceph/pull/7010>`_, Jianpeng Ma)
-* osd: small fixes to memstore (`issue#14228 <http://tracker.ceph.com/issues/14228>`_, `issue#14229 <http://tracker.ceph.com/issues/14229>`_, `issue#14227 <http://tracker.ceph.com/issues/14227>`_, `pr#7107 <http://github.com/ceph/ceph/pull/7107>`_, xie xingguo)
-* osd: try evicting after flushing is done (`pr#5630 <http://github.com/ceph/ceph/pull/5630>`_, Zhiqiang Wang)
-* osd: use atomic to generate ceph_tid (`pr#7017 <http://github.com/ceph/ceph/pull/7017>`_, Evgeniy Firsov)
-* osd: use optimized is_zero in object_stat_sum_t.is_zero() (`pr#7203 <http://github.com/ceph/ceph/pull/7203>`_, Piotr Dałek)
-* osd: utime_t, eversion_t, osd_stat_sum_t encoding optimization (`pr#6902 <http://github.com/ceph/ceph/pull/6902>`_, Xinze Chi)
-* pybind: add ceph_volume_client interface for Manila and similar frameworks (`pr#6205 <http://github.com/ceph/ceph/pull/6205>`_, John Spray)
-* pybind: fix build failure, remove extraneous semicolon in method (`issue#14371 <http://tracker.ceph.com/issues/14371>`_, `pr#7235 <http://github.com/ceph/ceph/pull/7235>`_, Abhishek Lekshmanan)
-* pybind/test_rbd: fix test_create_defaults (`issue#14279 <http://tracker.ceph.com/issues/14279>`_, `pr#7155 <http://github.com/ceph/ceph/pull/7155>`_, Josh Durgin)
-* qa: disable rbd/qemu-iotests test case 055 on RHEL/CentOSlibrbd: journal replay should honor inter-event dependencies (`issue#14385 <http://tracker.ceph.com/issues/14385>`_, `pr#7272 <http://github.com/ceph/ceph/pull/7272>`_, Jason Dillaman)
-* qa/workunits: merge_diff shouldn't attempt to use striping (`issue#14165 <http://tracker.ceph.com/issues/14165>`_, `pr#7041 <http://github.com/ceph/ceph/pull/7041>`_, Jason Dillaman)
-* qa/workunits/snaps: move snap tests into fs sub-directory (`pr#6496 <http://github.com/ceph/ceph/pull/6496>`_, Yan, Zheng)
-* rados: implement rm --force option to force remove when full (`pr#6202 <http://github.com/ceph/ceph/pull/6202>`_, Xiaowei Chen)
-* rbd: additional validation for striping parameters (`pr#6914 <http://github.com/ceph/ceph/pull/6914>`_, Na Xie)
-* rbd: add pool name to disambiguate rbd admin socket commands (`pr#6904 <http://github.com/ceph/ceph/pull/6904>`_, wuxiangwei)
-* rbd: correct an output string for merge-diff (`pr#7046 <http://github.com/ceph/ceph/pull/7046>`_, Kongming Wu)
-* rbd: fix static initialization ordering issues (`pr#6978 <http://github.com/ceph/ceph/pull/6978>`_, Mykola Golub)
-* rbd-fuse: image name can not include snap name (`pr#7044 <http://github.com/ceph/ceph/pull/7044>`_, Yongqiang He)
-* rbd-fuse: implement mv operation (`pr#6938 <http://github.com/ceph/ceph/pull/6938>`_, wuxiangwei)
-* rbd: must specify both of stripe-unit and stripe-count when specifying stripingv2 feature (`pr#7026 <http://github.com/ceph/ceph/pull/7026>`_, Donghai Xu)
-* rbd-nbd: add copyright (`pr#7166 <http://github.com/ceph/ceph/pull/7166>`_, Li Wang)
-* rbd-nbd: fix up return code handling (`pr#7215 <http://github.com/ceph/ceph/pull/7215>`_, Mykola Golub)
-* rbd-nbd: small improvements in logging and forking (`pr#7127 <http://github.com/ceph/ceph/pull/7127>`_, Mykola Golub)
-* rbd: rbd order will be place in 22, when set to 0 in the config_opt (`issue#14139 <http://tracker.ceph.com/issues/14139>`_, `issue#14047 <http://tracker.ceph.com/issues/14047>`_, `pr#6886 <http://github.com/ceph/ceph/pull/6886>`_, huanwen ren)
-* rbd: striping parameters should support 64bit integers (`pr#6942 <http://github.com/ceph/ceph/pull/6942>`_, Na Xie)
-* rbd: use default order from configuration when not specified (`pr#6965 <http://github.com/ceph/ceph/pull/6965>`_, Yunchuan Wen)
-* rgw: add a method to purge all associate keys when removing a subuser (`issue#12890 <http://tracker.ceph.com/issues/12890>`_, `pr#6002 <http://github.com/ceph/ceph/pull/6002>`_, Sangdi Xu)
-* rgw: add missing error code for admin op API (`pr#7037 <http://github.com/ceph/ceph/pull/7037>`_, Dunrong Huang)
-* rgw: add support for "end_marker" parameter for GET on Swift account. (`issue#10682 <http://tracker.ceph.com/issues/10682>`_, `pr#4216 <http://github.com/ceph/ceph/pull/4216>`_, Radoslaw Zarzynski)
-* rgw_admin: orphans finish segfaults (`pr#6652 <http://github.com/ceph/ceph/pull/6652>`_, Igor Fedotov)
-* rgw: content length (`issue#13582 <http://tracker.ceph.com/issues/13582>`_, `pr#6975 <http://github.com/ceph/ceph/pull/6975>`_, Yehuda Sadeh)
-* rgw: delete default zone (`pr#7005 <http://github.com/ceph/ceph/pull/7005>`_, YankunLi)
-* rgw: do not abort radowgw server when using admin op API with bad parameters (`issue#14190 <http://tracker.ceph.com/issues/14190>`_, `issue#14191 <http://tracker.ceph.com/issues/14191>`_, `pr#7063 <http://github.com/ceph/ceph/pull/7063>`_, Dunrong Huang)
-* rgw: Drop a debugging message (`pr#7280 <http://github.com/ceph/ceph/pull/7280>`_, Pete Zaitcev)
-* rgw: fix a typo in init-radosgw (`pr#6817 <http://github.com/ceph/ceph/pull/6817>`_, Zhi Zhang)
-* rgw: fix compilation warning (`pr#7160 <http://github.com/ceph/ceph/pull/7160>`_, Yehuda Sadeh)
-* rgw: fix wrong check for parse() return (`pr#6797 <http://github.com/ceph/ceph/pull/6797>`_, Dunrong Huang)
-* rgw: let radosgw-admin bucket stats return a standard josn (`pr#7029 <http://github.com/ceph/ceph/pull/7029>`_, Ruifeng Yang)
-* rgw: modify command stucking when operating radosgw-admin metadata list user (`pr#7032 <http://github.com/ceph/ceph/pull/7032>`_, Peiyang Liu)
-* rgw: modify documents and help infos' descriptions to the usage of option date when executing command "log show" (`pr#6080 <http://github.com/ceph/ceph/pull/6080>`_, Kongming Wu)
-* rgw: Parse --subuser better (`pr#7279 <http://github.com/ceph/ceph/pull/7279>`_, Pete Zaitcev)
-* rgw: radosgw-admin bucket check --fix not work (`pr#7093 <http://github.com/ceph/ceph/pull/7093>`_, Weijun Duan)
-* rgw: warn on suspicious civetweb frontend parameters (`pr#6944 <http://github.com/ceph/ceph/pull/6944>`_, Matt Benjamin)
-* rocksdb: remove rdb sources from dist tarball (`issue#13554 <http://tracker.ceph.com/issues/13554>`_, `pr#7105 <http://github.com/ceph/ceph/pull/7105>`_, Venky Shankar)
-* stringify outputted error code and fix unmatched parentheses. (`pr#6998 <http://github.com/ceph/ceph/pull/6998>`_, xie.xingguo, xie xingguo)
-* test/librbd/fsx: Use c++11 std::mt19937 generator instead of random_r() (`pr#6332 <http://github.com/ceph/ceph/pull/6332>`_, John Coyle)
-* test/mon/osd-erasure-code-profile: pick new mon port (`pr#7161 <http://github.com/ceph/ceph/pull/7161>`_, Sage Weil)
-* tests: add const for ec test (`pr#6911 <http://github.com/ceph/ceph/pull/6911>`_, Michal Jarzabek)
-* tests: configure with rocksdb by default (`issue#14220 <http://tracker.ceph.com/issues/14220>`_, `pr#7100 <http://github.com/ceph/ceph/pull/7100>`_, Loic Dachary)
-* tests: Fix for make check. (`pr#7102 <http://github.com/ceph/ceph/pull/7102>`_, David Zafman)
-* tests: notification slave needs to wait for master (`issue#13810 <http://tracker.ceph.com/issues/13810>`_, `pr#7220 <http://github.com/ceph/ceph/pull/7220>`_, Jason Dillaman)
-* tests: snap rename and rebuild object map in client update test (`pr#7224 <http://github.com/ceph/ceph/pull/7224>`_, Jason Dillaman)
-* tests: unittest_bufferlist: fix hexdump test (`pr#7152 <http://github.com/ceph/ceph/pull/7152>`_, Sage Weil)
-* tests: unittest_ipaddr: fix segv (`pr#7154 <http://github.com/ceph/ceph/pull/7154>`_, Sage Weil)
-* tools: ceph_monstore_tool: add inflate-pgmap command (`issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#7097 <http://github.com/ceph/ceph/pull/7097>`_, Kefu Chai)
-* tools: monstore: add 'show-versions' command. (`pr#7073 <http://github.com/ceph/ceph/pull/7073>`_, Cilang Zhao)
-
-v10.0.2
-=======
-
-This development release includes a raft of changes and improvements
-for Jewel. Key additions include CephFS scrub/repair improvements, an
-AIX and Solaris port of librados, many librbd journaling additions and
-fixes, extended per-pool options, and NBD driver for RBD (rbd-nbd)
-that allows librbd to present a kernel-level block device on Linux,
-multitenancy support for RGW, RGW bucket lifecycle support, RGW
-support for Swift static large objects (SLO), and RGW support for
-Swift bulk delete.
-
-There are also lots of smaller optimizations and performance fixes
-going in all over the tree, particular in the OSD and common code.
-
-Notable Changes
----------------
-
-* auth: fail if rotating key is missing (do not spam log) (`pr#6473 <http://github.com/ceph/ceph/pull/6473>`_, Qiankun Zheng)
-* auth: fix crash when bad keyring is passed (`pr#6698 <http://github.com/ceph/ceph/pull/6698>`_, Dunrong Huang)
-* auth: make keyring without mon entity type return -EACCES (`pr#5734 <http://github.com/ceph/ceph/pull/5734>`_, Xiaowei Chen)
-* buffer: make usable outside of ceph source again (`pr#6863 <http://github.com/ceph/ceph/pull/6863>`_, Josh Durgin)
-* build: cmake check fixes (`pr#6787 <http://github.com/ceph/ceph/pull/6787>`_, Orit Wasserman)
-* build: fix bz2-dev dependency (`pr#6948 <http://github.com/ceph/ceph/pull/6948>`_, Samuel Just)
-* build: Gentoo: _FORTIFY_SOURCE fix. (`issue#13920 <http://tracker.ceph.com/issues/13920>`_, `pr#6739 <http://github.com/ceph/ceph/pull/6739>`_, Robin H. Johnson)
-* build/ops: systemd ceph-disk unit must not assume /bin/flock (`issue#13975 <http://tracker.ceph.com/issues/13975>`_, `pr#6803 <http://github.com/ceph/ceph/pull/6803>`_, Loic Dachary)
-* ceph-detect-init: Ubuntu >= 15.04 uses systemd (`pr#6873 <http://github.com/ceph/ceph/pull/6873>`_, James Page)
-* cephfs-data-scan: scan_frags (`pr#5941 <http://github.com/ceph/ceph/pull/5941>`_, John Spray)
-* cephfs-data-scan: scrub tag filtering (#12133 and #12145) (`issue#12133 <http://tracker.ceph.com/issues/12133>`_, `issue#12145 <http://tracker.ceph.com/issues/12145>`_, `pr#5685 <http://github.com/ceph/ceph/pull/5685>`_, John Spray)
-* ceph-fuse: add process to ceph-fuse --help (`pr#6821 <http://github.com/ceph/ceph/pull/6821>`_, Wei Feng)
-* ceph-kvstore-tool: handle bad out file on command line (`pr#6093 <http://github.com/ceph/ceph/pull/6093>`_, Kefu Chai)
-* ceph-mds:add --help/-h (`pr#6850 <http://github.com/ceph/ceph/pull/6850>`_, Cilang Zhao)
-* ceph_objectstore_bench: fix race condition, bugs (`issue#13516 <http://tracker.ceph.com/issues/13516>`_, `pr#6681 <http://github.com/ceph/ceph/pull/6681>`_, Igor Fedotov)
-* ceph.spec.in: add BuildRequires: systemd (`issue#13860 <http://tracker.ceph.com/issues/13860>`_, `pr#6692 <http://github.com/ceph/ceph/pull/6692>`_, Nathan Cutler)
-* client: a better check for MDS availability (`pr#6253 <http://github.com/ceph/ceph/pull/6253>`_, John Spray)
-* client: close mds sessions in shutdown() (`pr#6269 <http://github.com/ceph/ceph/pull/6269>`_, John Spray)
-* client: don't invalidate page cache when inode is no longer used (`pr#6380 <http://github.com/ceph/ceph/pull/6380>`_, Yan, Zheng)
-* client: modify a word in log (`pr#6906 <http://github.com/ceph/ceph/pull/6906>`_, YongQiang He)
-* cls/cls_rbd.cc: fix misused metadata_name_from_key (`issue#13922 <http://tracker.ceph.com/issues/13922>`_, `pr#6661 <http://github.com/ceph/ceph/pull/6661>`_, Xiaoxi Chen)
-* cmake: Add common/PluginRegistry.cc to CMakeLists.txt (`pr#6805 <http://github.com/ceph/ceph/pull/6805>`_, Pete Zaitcev)
-* cmake: add rgw_basic_types.cc to librgw.a (`pr#6786 <http://github.com/ceph/ceph/pull/6786>`_, Orit Wasserman)
-* cmake: add TracepointProvider.cc to libcommon (`pr#6823 <http://github.com/ceph/ceph/pull/6823>`_, Orit Wasserman)
-* cmake: define STRERROR_R_CHAR_P for GNU-specific strerror_r (`pr#6751 <http://github.com/ceph/ceph/pull/6751>`_, Ilya Dryomov)
-* cmake: update for recent librbd changes (`pr#6715 <http://github.com/ceph/ceph/pull/6715>`_, John Spray)
-* cmake: update for recent rbd changes (`pr#6818 <http://github.com/ceph/ceph/pull/6818>`_, Mykola Golub)
-* common: add generic plugin infrastructure (`pr#6696 <http://github.com/ceph/ceph/pull/6696>`_, Sage Weil)
-* common: add latency perf counter for finisher (`pr#6175 <http://github.com/ceph/ceph/pull/6175>`_, Xinze Chi)
-* common: buffer: add cached_crc and cached_crc_adjust counts to perf dump (`pr#6535 <http://github.com/ceph/ceph/pull/6535>`_, Ning Yao)
-* common: buffer: remove unneeded list destructor (`pr#6456 <http://github.com/ceph/ceph/pull/6456>`_, Michal Jarzabek)
-* common/ceph_context.cc:fix order of initialisers (`pr#6838 <http://github.com/ceph/ceph/pull/6838>`_, Michal Jarzabek)
-* common: don't reverse hobject_t hash bits when zero (`pr#6653 <http://github.com/ceph/ceph/pull/6653>`_, Piotr Dałek)
-* common: log: Assign LOG_DEBUG priority to syslog calls (`issue#13993 <http://tracker.ceph.com/issues/13993>`_, `pr#6815 <http://github.com/ceph/ceph/pull/6815>`_, Brad Hubbard)
-* common: log: predict log message buffer allocation size (`pr#6641 <http://github.com/ceph/ceph/pull/6641>`_, Adam Kupczyk)
-* common: optimize debug logging code (`pr#6441 <http://github.com/ceph/ceph/pull/6441>`_, Adam Kupczyk)
-* common: perf counter for bufferlist history total alloc (`pr#6198 <http://github.com/ceph/ceph/pull/6198>`_, Xinze Chi)
-* common: reduce CPU usage by making stringstream in stringify function thread local (`pr#6543 <http://github.com/ceph/ceph/pull/6543>`_, Evgeniy Firsov)
-* common: re-enable backtrace support (`pr#6771 <http://github.com/ceph/ceph/pull/6771>`_, Jason Dillaman)
-* common: SubProcess: fix multiple definition bug (`pr#6790 <http://github.com/ceph/ceph/pull/6790>`_, Yunchuan Wen)
-* common: use namespace instead of subclasses for buffer (`pr#6686 <http://github.com/ceph/ceph/pull/6686>`_, Michal Jarzabek)
-* configure.ac: macro fix (`pr#6769 <http://github.com/ceph/ceph/pull/6769>`_, Igor Podoski)
-* doc: admin/build-doc: add lxml dependencies on debian (`pr#6610 <http://github.com/ceph/ceph/pull/6610>`_, Ken Dreyer)
-* doc/cephfs/posix: update (`pr#6922 <http://github.com/ceph/ceph/pull/6922>`_, Sage Weil)
-* doc: CodingStyle: fix broken URLs (`pr#6733 <http://github.com/ceph/ceph/pull/6733>`_, Kefu Chai)
-* doc: correct typo 'restared' to 'restarted' (`pr#6734 <http://github.com/ceph/ceph/pull/6734>`_, Yilong Zhao)
-* doc/dev/index: refactor/reorg (`pr#6792 <http://github.com/ceph/ceph/pull/6792>`_, Nathan Cutler)
-* doc/dev/index.rst: begin writing Contributing to Ceph (`pr#6727 <http://github.com/ceph/ceph/pull/6727>`_, Nathan Cutler)
-* doc/dev/index.rst: fix headings (`pr#6780 <http://github.com/ceph/ceph/pull/6780>`_, Nathan Cutler)
-* doc: dev: introduction to tests (`pr#6910 <http://github.com/ceph/ceph/pull/6910>`_, Loic Dachary)
-* doc: file must be empty when writing layout fields of file use "setfattr" (`pr#6848 <http://github.com/ceph/ceph/pull/6848>`_, Cilang Zhao)
-* doc: Fixed incorrect name of a "List Multipart Upload Parts" Response Entity (`issue#14003 <http://tracker.ceph.com/issues/14003>`_, `pr#6829 <http://github.com/ceph/ceph/pull/6829>`_, Lenz Grimmer)
-* doc: Fixes a spelling error (`pr#6705 <http://github.com/ceph/ceph/pull/6705>`_, Jeremy Qian)
-* doc: fix typo in cephfs/quota (`pr#6745 <http://github.com/ceph/ceph/pull/6745>`_, Drunkard Zhang)
-* doc: fix typo in developer guide (`pr#6943 <http://github.com/ceph/ceph/pull/6943>`_, Nathan Cutler)
-* doc: INSTALL redirect to online documentation (`pr#6749 <http://github.com/ceph/ceph/pull/6749>`_, Loic Dachary)
-* doc: little improvements for troubleshooting scrub issues (`pr#6827 <http://github.com/ceph/ceph/pull/6827>`_, Mykola Golub)
-* doc: Modified a note section in rbd-snapshot doc. (`pr#6908 <http://github.com/ceph/ceph/pull/6908>`_, Nilamdyuti Goswami)
-* doc: note that cephfs auth stuff is new in jewel (`pr#6858 <http://github.com/ceph/ceph/pull/6858>`_, John Spray)
-* doc: osd: s/schedued/scheduled/ (`pr#6872 <http://github.com/ceph/ceph/pull/6872>`_, Loic Dachary)
-* doc: remove unnecessary period in headline (`pr#6775 <http://github.com/ceph/ceph/pull/6775>`_, Marc Koderer)
-* doc: rst style fix for pools document (`pr#6816 <http://github.com/ceph/ceph/pull/6816>`_, Drunkard Zhang)
-* doc: Update list of admin/build-doc dependencies (`issue#14070 <http://tracker.ceph.com/issues/14070>`_, `pr#6934 <http://github.com/ceph/ceph/pull/6934>`_, Nathan Cutler)
-* init-ceph: do umount when the path exists. (`pr#6866 <http://github.com/ceph/ceph/pull/6866>`_, Xiaoxi Chen)
-* journal: disconnect watch after watch error (`issue#14168 <http://tracker.ceph.com/issues/14168>`_, `pr#7113 <http://github.com/ceph/ceph/pull/7113>`_, Jason Dillaman)
-* journal: fire replay complete event after reading last object (`issue#13924 <http://tracker.ceph.com/issues/13924>`_, `pr#6762 <http://github.com/ceph/ceph/pull/6762>`_, Jason Dillaman)
-* journal: support replaying beyond skipped splay objects (`pr#6687 <http://github.com/ceph/ceph/pull/6687>`_, Jason Dillaman)
-* librados: aix gcc librados port (`pr#6675 <http://github.com/ceph/ceph/pull/6675>`_, Rohan Mars)
-* librados: avoid malloc(0) (which can return NULL on some platforms) (`issue#13944 <http://tracker.ceph.com/issues/13944>`_, `pr#6779 <http://github.com/ceph/ceph/pull/6779>`_, Dan Mick)
-* librados: clean up Objecter.h (`pr#6731 <http://github.com/ceph/ceph/pull/6731>`_, Jie Wang)
-* librados: include/rados/librados.h: fix typo (`pr#6741 <http://github.com/ceph/ceph/pull/6741>`_, Nathan Cutler)
-* librbd: automatically flush IO after blocking write operations (`issue#13913 <http://tracker.ceph.com/issues/13913>`_, `pr#6742 <http://github.com/ceph/ceph/pull/6742>`_, Jason Dillaman)
-* librbd: better handling of exclusive lock transition period (`pr#7204 <http://github.com/ceph/ceph/pull/7204>`_, Jason Dillaman)
-* librbd: check for presence of journal before attempting to remove (`issue#13912 <http://tracker.ceph.com/issues/13912>`_, `pr#6737 <http://github.com/ceph/ceph/pull/6737>`_, Jason Dillaman)
-* librbd: clear error when older OSD doesn't support image flags (`issue#14122 <http://tracker.ceph.com/issues/14122>`_, `pr#7035 <http://github.com/ceph/ceph/pull/7035>`_, Jason Dillaman)
-* librbd: correct include guard in RenameRequest.h (`pr#7143 <http://github.com/ceph/ceph/pull/7143>`_, Jason Dillaman)
-* librbd: correct issues discovered during teuthology testing (`issue#14108 <http://tracker.ceph.com/issues/14108>`_, `issue#14107 <http://tracker.ceph.com/issues/14107>`_, `pr#6974 <http://github.com/ceph/ceph/pull/6974>`_, Jason Dillaman)
-* librbd: correct issues discovered when cache is disabled (`issue#14123 <http://tracker.ceph.com/issues/14123>`_, `pr#6979 <http://github.com/ceph/ceph/pull/6979>`_, Jason Dillaman)
-* librbd: correct race conditions discovered during unit testing (`issue#14060 <http://tracker.ceph.com/issues/14060>`_, `pr#6923 <http://github.com/ceph/ceph/pull/6923>`_, Jason Dillaman)
-* librbd: disable copy-on-read when not exclusive lock owner (`issue#14167 <http://tracker.ceph.com/issues/14167>`_, `pr#7129 <http://github.com/ceph/ceph/pull/7129>`_, Jason Dillaman)
-* librbd: do not ignore self-managed snapshot release result (`issue#14170 <http://tracker.ceph.com/issues/14170>`_, `pr#7043 <http://github.com/ceph/ceph/pull/7043>`_, Jason Dillaman)
-* librbd: ensure copy-on-read requests are complete prior to closing parent image (`pr#6740 <http://github.com/ceph/ceph/pull/6740>`_, Jason Dillaman)
-* librbd: ensure librados callbacks are flushed prior to destroying (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `pr#7040 <http://github.com/ceph/ceph/pull/7040>`_, Jason Dillaman)
-* librbd: fix journal iohint (`pr#6917 <http://github.com/ceph/ceph/pull/6917>`_, Jianpeng Ma)
-* librbd: fix known test case race condition failures (`issue#13969 <http://tracker.ceph.com/issues/13969>`_, `pr#6800 <http://github.com/ceph/ceph/pull/6800>`_, Jason Dillaman)
-* librbd: fix merge-diff for >2GB diff-files (`issue#14030 <http://tracker.ceph.com/issues/14030>`_, `pr#6889 <http://github.com/ceph/ceph/pull/6889>`_, Yunchuan Wen)
-* librbd: fix test case race condition for journaling ops (`pr#6877 <http://github.com/ceph/ceph/pull/6877>`_, Jason Dillaman)
-* librbd: fix tracepoint parameter in diff_iterate (`pr#6892 <http://github.com/ceph/ceph/pull/6892>`_, Yunchuan Wen)
-* librbd: image refresh code paths converted to async state machines (`pr#6859 <http://github.com/ceph/ceph/pull/6859>`_, Jason Dillaman)
-* librbd: include missing header for bool type (`pr#6798 <http://github.com/ceph/ceph/pull/6798>`_, Mykola Golub)
-* librbd: initial collection of state machine unit tests (`pr#6703 <http://github.com/ceph/ceph/pull/6703>`_, Jason Dillaman)
-* librbd: integrate journaling for maintenance operations (`pr#6625 <http://github.com/ceph/ceph/pull/6625>`_, Jason Dillaman)
-* librbd: journaling-related lock dependency cleanup (`pr#6777 <http://github.com/ceph/ceph/pull/6777>`_, Jason Dillaman)
-* librbd: not necessary to hold owner_lock while releasing snap id (`issue#13914 <http://tracker.ceph.com/issues/13914>`_, `pr#6736 <http://github.com/ceph/ceph/pull/6736>`_, Jason Dillaman)
-* librbd: only send signal when AIO completions queue empty (`pr#6729 <http://github.com/ceph/ceph/pull/6729>`_, Jianpeng Ma)
-* librbd: optionally validate new RBD pools for snapshot support (`issue#13633 <http://tracker.ceph.com/issues/13633>`_, `pr#6925 <http://github.com/ceph/ceph/pull/6925>`_, Jason Dillaman)
-* librbd: partial revert of commit 9b0e359 (`issue#13969 <http://tracker.ceph.com/issues/13969>`_, `pr#6789 <http://github.com/ceph/ceph/pull/6789>`_, Jason Dillaman)
-* librbd: properly handle replay of snap remove RPC message (`issue#14164 <http://tracker.ceph.com/issues/14164>`_, `pr#7042 <http://github.com/ceph/ceph/pull/7042>`_, Jason Dillaman)
-* librbd: reduce verbosity of common error condition logging (`issue#14234 <http://tracker.ceph.com/issues/14234>`_, `pr#7114 <http://github.com/ceph/ceph/pull/7114>`_, Jason Dillaman)
-* librbd: simplify IO method signatures for 32bit environments (`pr#6700 <http://github.com/ceph/ceph/pull/6700>`_, Jason Dillaman)
-* librbd: support eventfd for AIO completion notifications (`pr#5465 <http://github.com/ceph/ceph/pull/5465>`_, Haomai Wang)
-* mailmap: add UMCloud affiliation (`pr#6820 <http://github.com/ceph/ceph/pull/6820>`_, Jiaying Ren)
-* mailmap: Jewel updates (`pr#6750 <http://github.com/ceph/ceph/pull/6750>`_, Abhishek Lekshmanan)
-* makefiles: remove bz2-dev from dependencies (`issue#13981 <http://tracker.ceph.com/issues/13981>`_, `pr#6939 <http://github.com/ceph/ceph/pull/6939>`_, Piotr Dałek)
-* mds: add 'p' flag in auth caps to control setting pool in layout (`pr#6567 <http://github.com/ceph/ceph/pull/6567>`_, John Spray)
-* mds: fix client capabilities during reconnect (client.XXXX isn't responding to mclientcaps(revoke)) (`issue#11482 <http://tracker.ceph.com/issues/11482>`_, `pr#6432 <http://github.com/ceph/ceph/pull/6432>`_, Yan, Zheng)
-* mds: fix setvxattr (broken in a536d114) (`issue#14029 <http://tracker.ceph.com/issues/14029>`_, `pr#6941 <http://github.com/ceph/ceph/pull/6941>`_, John Spray)
-* mds: repair the command option "--hot-standby" (`pr#6454 <http://github.com/ceph/ceph/pull/6454>`_, Wei Feng)
-* mds: tear down connections from `tell` commands (`issue#14048 <http://tracker.ceph.com/issues/14048>`_, `pr#6933 <http://github.com/ceph/ceph/pull/6933>`_, John Spray)
-* mon: fix ceph df pool available calculation for 0-weighted OSDs (`pr#6660 <http://github.com/ceph/ceph/pull/6660>`_, Chengyuan Li)
-* mon: fix routed_request_tids leak (`pr#6102 <http://github.com/ceph/ceph/pull/6102>`_, Ning Yao)
-* mon: support min_down_reporter by subtree level (default by host) (`pr#6709 <http://github.com/ceph/ceph/pull/6709>`_, Xiaoxi Chen)
-* mount.ceph: memory leaks (`pr#6905 <http://github.com/ceph/ceph/pull/6905>`_, Qiankun Zheng)
-* osd: add osd op queue latency perfcounter (`pr#5793 <http://github.com/ceph/ceph/pull/5793>`_, Haomai Wang)
-* osd: Allow repair of history.last_epoch_started using config (`pr#6793 <http://github.com/ceph/ceph/pull/6793>`_, David Zafman)
-* osd: avoid duplicate op->mark_started in ReplicatedBackend (`pr#6689 <http://github.com/ceph/ceph/pull/6689>`_, Jacek J. Åakis)
-* osd: cancel failure reports if we fail to rebind network (`pr#6278 <http://github.com/ceph/ceph/pull/6278>`_, Xinze Chi)
-* osd: correctly handle small osd_scrub_interval_randomize_ratio (`pr#7147 <http://github.com/ceph/ceph/pull/7147>`_, Samuel Just)
-* osd: defer decoding of MOSDRepOp/MOSDRepOpReply (`pr#6503 <http://github.com/ceph/ceph/pull/6503>`_, Xinze Chi)
-* osd: don't update epoch and rollback_info objects attrs if there is no need (`pr#6555 <http://github.com/ceph/ceph/pull/6555>`_, Ning Yao)
-* osd: dump number of missing objects for each peer with pg query (`pr#6058 <http://github.com/ceph/ceph/pull/6058>`_, Guang Yang)
-* osd: enable perfcounters on sharded work queue mutexes (`pr#6455 <http://github.com/ceph/ceph/pull/6455>`_, Jacek J. Åakis)
-* osd: FileJournal: reduce locking scope in write_aio_bl (`issue#12789 <http://tracker.ceph.com/issues/12789>`_, `pr#5670 <http://github.com/ceph/ceph/pull/5670>`_, Zhi Zhang)
-* osd: FileStore: remove __SWORD_TYPE dependency (`pr#6263 <http://github.com/ceph/ceph/pull/6263>`_, John Coyle)
-* osd: fix FileStore::_destroy_collection error return code (`pr#6612 <http://github.com/ceph/ceph/pull/6612>`_, Ruifeng Yang)
-* osd: fix incorrect throttle in WBThrottle (`pr#6713 <http://github.com/ceph/ceph/pull/6713>`_, Zhang Huan)
-* osd: fix MOSDRepScrub reference counter in replica_scrub (`pr#6730 <http://github.com/ceph/ceph/pull/6730>`_, Jie Wang)
-* osd: fix rollback_info_trimmed_to before index() (`issue#13965 <http://tracker.ceph.com/issues/13965>`_, `pr#6801 <http://github.com/ceph/ceph/pull/6801>`_, Samuel Just)
-* osd: fix trivial scrub bug (`pr#6533 <http://github.com/ceph/ceph/pull/6533>`_, Li Wang)
-* osd: KeyValueStore: don't queue NULL context (`pr#6783 <http://github.com/ceph/ceph/pull/6783>`_, Haomai Wang)
-* osd: make backend and block device code a bit more generic (`pr#6759 <http://github.com/ceph/ceph/pull/6759>`_, Sage Weil)
-* osd: move newest decode version of MOSDOp and MOSDOpReply to the front (`pr#6642 <http://github.com/ceph/ceph/pull/6642>`_, Jacek J. Åakis)
-* osd: pg_pool_t: add dictionary for pool options (`issue#13077 <http://tracker.ceph.com/issues/13077>`_, `pr#6081 <http://github.com/ceph/ceph/pull/6081>`_, Mykola Golub)
-* osd: reduce memory consumption of some structs (`pr#6475 <http://github.com/ceph/ceph/pull/6475>`_, Piotr Dałek)
-* osd: release the message throttle when OpRequest unregistered (`issue#14248 <http://tracker.ceph.com/issues/14248>`_, `pr#7148 <http://github.com/ceph/ceph/pull/7148>`_, Samuel Just)
-* osd: remove __SWORD_TYPE dependency (`pr#6262 <http://github.com/ceph/ceph/pull/6262>`_, John Coyle)
-* osd: slightly reduce actual size of pg_log_entry_t (`pr#6690 <http://github.com/ceph/ceph/pull/6690>`_, Piotr Dałek)
-* osd: support pool level recovery_priority and recovery_op_priority (`pr#5953 <http://github.com/ceph/ceph/pull/5953>`_, Guang Yang)
-* osd: use pg id (without shard) when referring the PG (`pr#6236 <http://github.com/ceph/ceph/pull/6236>`_, Guang Yang)
-* packaging: add build dependency on python devel package (`pr#7205 <http://github.com/ceph/ceph/pull/7205>`_, Josh Durgin)
-* pybind/cephfs: add symlink and its unit test (`pr#6323 <http://github.com/ceph/ceph/pull/6323>`_, Shang Ding)
-* pybind: decode empty string in conf_parse_argv() correctly (`pr#6711 <http://github.com/ceph/ceph/pull/6711>`_, Josh Durgin)
-* pybind: Implementation of rados_ioctx_snapshot_rollback (`pr#6878 <http://github.com/ceph/ceph/pull/6878>`_, Florent Manens)
-* pybind: port the rbd bindings to Cython (`issue#13115 <http://tracker.ceph.com/issues/13115>`_, `pr#6768 <http://github.com/ceph/ceph/pull/6768>`_, Hector Martin)
-* pybind: support ioctx:exec (`pr#6795 <http://github.com/ceph/ceph/pull/6795>`_, Noah Watkins)
-* qa: erasure-code benchmark plugin selection (`pr#6685 <http://github.com/ceph/ceph/pull/6685>`_, Loic Dachary)
-* qa/krbd: Expunge generic/247 (`pr#6831 <http://github.com/ceph/ceph/pull/6831>`_, Douglas Fuller)
-* qa/workunits/cephtool/test.sh: false positive fail on /tmp/obj1. (`pr#6837 <http://github.com/ceph/ceph/pull/6837>`_, Robin H. Johnson)
-* qa/workunits/cephtool/test.sh: no ./ (`pr#6748 <http://github.com/ceph/ceph/pull/6748>`_, Sage Weil)
-* qa/workunits/rbd: rbd-nbd test should use sudo for map/unmap ops (`issue#14221 <http://tracker.ceph.com/issues/14221>`_, `pr#7101 <http://github.com/ceph/ceph/pull/7101>`_, Jason Dillaman)
-* rados: bench: fix off-by-one to avoid writing past object_size (`pr#6677 <http://github.com/ceph/ceph/pull/6677>`_, Tao Chang)
-* rbd: add --object-size option, deprecate --order (`issue#12112 <http://tracker.ceph.com/issues/12112>`_, `pr#6830 <http://github.com/ceph/ceph/pull/6830>`_, Vikhyat Umrao)
-* rbd: add RBD pool mirroring configuration API + CLI (`pr#6129 <http://github.com/ceph/ceph/pull/6129>`_, Jason Dillaman)
-* rbd: fix build with "--without-rbd" (`issue#14058 <http://tracker.ceph.com/issues/14058>`_, `pr#6899 <http://github.com/ceph/ceph/pull/6899>`_, Piotr Dałek)
-* rbd: journal: configuration via conf, cli, api and some fixes (`pr#6665 <http://github.com/ceph/ceph/pull/6665>`_, Mykola Golub)
-* rbd: merge_diff test should use new --object-size parameter instead of --order (`issue#14106 <http://tracker.ceph.com/issues/14106>`_, `pr#6972 <http://github.com/ceph/ceph/pull/6972>`_, Na Xie, Jason Dillaman)
-* rbd-nbd: network block device (NBD) support for RBD (`pr#6657 <http://github.com/ceph/ceph/pull/6657>`_, Yunchuan Wen, Li Wang)
-* rbd: output formatter may not be closed upon error (`issue#13711 <http://tracker.ceph.com/issues/13711>`_, `pr#6706 <http://github.com/ceph/ceph/pull/6706>`_, xie xingguo)
-* rgw: add a missing cap type (`pr#6774 <http://github.com/ceph/ceph/pull/6774>`_, Yehuda Sadeh)
-* rgw: add an inspection to the field of type when assigning user caps (`pr#6051 <http://github.com/ceph/ceph/pull/6051>`_, Kongming Wu)
-* rgw: add LifeCycle feature (`pr#6331 <http://github.com/ceph/ceph/pull/6331>`_, Ji Chen)
-* rgw: add support for Static Large Objects of Swift API (`issue#12886 <http://tracker.ceph.com/issues/12886>`_, `issue#13452 <http://tracker.ceph.com/issues/13452>`_, `pr#6643 <http://github.com/ceph/ceph/pull/6643>`_, Yehuda Sadeh, Radoslaw Zarzynski)
-* rgw: fix a glaring syntax error (`pr#6888 <http://github.com/ceph/ceph/pull/6888>`_, Pavan Rallabhandi)
-* rgw: fix the build failure (`pr#6927 <http://github.com/ceph/ceph/pull/6927>`_, Kefu Chai)
-* rgw: multitenancy support (`pr#6784 <http://github.com/ceph/ceph/pull/6784>`_, Yehuda Sadeh, Pete Zaitcev)
-* rgw: Remove unused code in PutMetadataAccount:execute (`pr#6668 <http://github.com/ceph/ceph/pull/6668>`_, Pete Zaitcev)
-* rgw: remove unused variable in RGWPutMetadataBucket::execute (`pr#6735 <http://github.com/ceph/ceph/pull/6735>`_, Radoslaw Zarzynski)
-* rgw/rgw_resolve: fallback to res_query when res_nquery not implemented (`pr#6292 <http://github.com/ceph/ceph/pull/6292>`_, John Coyle)
-* rgw: static large objects (Radoslaw Zarzynski, Yehuda Sadeh)
-* rgw: swift bulk delete (Radoslaw Zarzynski)
-* systemd: start/stop/restart ceph services by daemon type (`issue#13497 <http://tracker.ceph.com/issues/13497>`_, `pr#6276 <http://github.com/ceph/ceph/pull/6276>`_, Zhi Zhang)
-* sysvinit: allow custom cluster names (`pr#6732 <http://github.com/ceph/ceph/pull/6732>`_, Richard Chan)
-* test/encoding/readable.sh fix (`pr#6714 <http://github.com/ceph/ceph/pull/6714>`_, Igor Podoski)
-* test: fix osd-scrub-snaps.sh (`pr#6697 <http://github.com/ceph/ceph/pull/6697>`_, Xinze Chi)
-* test/librados/test.cc: clean up EC pools' crush rules too (`issue#13878 <http://tracker.ceph.com/issues/13878>`_, `pr#6788 <http://github.com/ceph/ceph/pull/6788>`_, Loic Dachary, Dan Mick)
-* tests: allow object corpus readable test to skip specific incompat instances (`pr#6932 <http://github.com/ceph/ceph/pull/6932>`_, Igor Podoski)
-* tests: ceph-helpers assert success getting backfills (`pr#6699 <http://github.com/ceph/ceph/pull/6699>`_, Loic Dachary)
-* tests: ceph_test_keyvaluedb_iterators: fix broken test (`pr#6597 <http://github.com/ceph/ceph/pull/6597>`_, Haomai Wang)
-* tests: fix failure for osd-scrub-snap.sh (`issue#13986 <http://tracker.ceph.com/issues/13986>`_, `pr#6890 <http://github.com/ceph/ceph/pull/6890>`_, Loic Dachary, Ning Yao)
-* tests: fix race condition testing auto scrub (`issue#13592 <http://tracker.ceph.com/issues/13592>`_, `pr#6724 <http://github.com/ceph/ceph/pull/6724>`_, Xinze Chi, Loic Dachary)
-* tests: flush op work queue prior to destroying MockImageCtx (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `pr#7002 <http://github.com/ceph/ceph/pull/7002>`_, Jason Dillaman)
-* tests: --osd-scrub-load-threshold=2000 for more consistency (`issue#14027 <http://tracker.ceph.com/issues/14027>`_, `pr#6871 <http://github.com/ceph/ceph/pull/6871>`_, Loic Dachary)
-* tests: osd-scrub-snaps.sh to display full osd logs on error (`issue#13986 <http://tracker.ceph.com/issues/13986>`_, `pr#6857 <http://github.com/ceph/ceph/pull/6857>`_, Loic Dachary)
-* test: use sequential journal_tid for object cacher test (`issue#13877 <http://tracker.ceph.com/issues/13877>`_, `pr#6710 <http://github.com/ceph/ceph/pull/6710>`_, Josh Durgin)
-* tools: add cephfs-table-tool 'take_inos' (`pr#6655 <http://github.com/ceph/ceph/pull/6655>`_, John Spray)
-* tools: Fix layout handing in cephfs-data-scan (#13898) (`pr#6719 <http://github.com/ceph/ceph/pull/6719>`_, John Spray)
-* tools: support printing part cluster map in readable fashion (`issue#13079 <http://tracker.ceph.com/issues/13079>`_, `pr#5921 <http://github.com/ceph/ceph/pull/5921>`_, Bo Cai)
-* vstart.sh: add mstart, mstop, mrun wrappers for running multiple vstart-style test clusters out of src tree (`pr#6901 <http://github.com/ceph/ceph/pull/6901>`_, Yehuda Sadeh)
-
-v10.0.1
-=======
-
-This is the second development release for the Jewel cycle.
-Highlights include some KeyValueDB interface optimizations, initial
-journaling support in librbd, MDS scrubbing progress, and a bunch of
-OSD optimizations and improvements (removal of an unnecessary CRUSH
-calculation in the IO path, sharding for FileStore completions,
-improved temperature calculation for cache tiering, fixed
-randomization of scrub times, and various optimizations).
-
-Notable Changes
----------------
-
-* build: build internal plugins and classes as modules (`pr#6462 <http://github.com/ceph/ceph/pull/6462>`_, James Page)
-* build: fix Jenkins make check errors due to deep-scrub randomization (`pr#6671 <http://github.com/ceph/ceph/pull/6671>`_, David Zafman)
-* build/ops: enable CR in CentOS 7 (`issue#13997 <http://tracker.ceph.com/issues/13997>`_, `pr#6844 <http://github.com/ceph/ceph/pull/6844>`_, Loic Dachary)
-* build/ops: rbd-replay moved from ceph-test-dbg to ceph-common-dbg (`issue#13785 <http://tracker.ceph.com/issues/13785>`_, `pr#6578 <http://github.com/ceph/ceph/pull/6578>`_, Loic Dachary)
-* ceph-disk: Add destroy and deactivate option (`issue#7454 <http://tracker.ceph.com/issues/7454>`_, `pr#5867 <http://github.com/ceph/ceph/pull/5867>`_, Vicente Cheng)
-* ceph-disk: compare parted output with the dereferenced path (`issue#13438 <http://tracker.ceph.com/issues/13438>`_, `pr#6219 <http://github.com/ceph/ceph/pull/6219>`_, Joe Julian)
-* ceph-objectstore-tool: fix --dry-run for many ceph-objectstore-tool operations (`pr#6545 <http://github.com/ceph/ceph/pull/6545>`_, David Zafman)
-* ceph.spec.in: limit _smp_mflags when lowmem_builder is set in SUSE's OBS (`issue#13858 <http://tracker.ceph.com/issues/13858>`_, `pr#6691 <http://github.com/ceph/ceph/pull/6691>`_, Nathan Cutler)
-* ceph_test_msgr: Use send_message instead of keepalive to wakeup connection (`pr#6605 <http://github.com/ceph/ceph/pull/6605>`_, Haomai Wang)
-* client: avoid creating orphan object in Client::check_pool_perm() (`issue#13782 <http://tracker.ceph.com/issues/13782>`_, `pr#6603 <http://github.com/ceph/ceph/pull/6603>`_, Yan, Zheng)
-* client: use null snapc to check pool permission (`issue#13714 <http://tracker.ceph.com/issues/13714>`_, `pr#6497 <http://github.com/ceph/ceph/pull/6497>`_, Yan, Zheng)
-* cmake: add nss as a suffix for pk11pub.h (`pr#6556 <http://github.com/ceph/ceph/pull/6556>`_, Samuel Just)
-* cmake: fix files list (`pr#6539 <http://github.com/ceph/ceph/pull/6539>`_, Yehuda Sadeh)
-* cmake: librbd and libjournal build fixes (`pr#6557 <http://github.com/ceph/ceph/pull/6557>`_, Ilya Dryomov)
-* coc: fix typo in the apt-get command (`pr#6659 <http://github.com/ceph/ceph/pull/6659>`_, Chris Holcombe)
-* common: allow enable/disable of optracker at runtime (`pr#5168 <http://github.com/ceph/ceph/pull/5168>`_, Jianpeng Ma)
-* common: fix reset max in Throttle using perf reset command (`issue#13517 <http://tracker.ceph.com/issues/13517>`_, `pr#6300 <http://github.com/ceph/ceph/pull/6300>`_, Xinze Chi)
-* doc: add v0.80.11 to the release timeline (`pr#6658 <http://github.com/ceph/ceph/pull/6658>`_, Loic Dachary)
-* doc: release-notes: draft v0.80.11 release notes (`pr#6374 <http://github.com/ceph/ceph/pull/6374>`_, Loic Dachary)
-* doc: release-notes: draft v10.0.0 release notes (`pr#6666 <http://github.com/ceph/ceph/pull/6666>`_, Loic Dachary)
-* doc: SubmittingPatches: there is no next; only jewel (`pr#6811 <http://github.com/ceph/ceph/pull/6811>`_, Nathan Cutler)
-* doc: Update ceph-disk manual page with new feature deactivate/destroy. (`pr#6637 <http://github.com/ceph/ceph/pull/6637>`_, Vicente Cheng)
-* doc: update infernalis release notes (`pr#6575 <http://github.com/ceph/ceph/pull/6575>`_, vasukulkarni)
-* fix: use right init_flags to finish CephContext (`pr#6549 <http://github.com/ceph/ceph/pull/6549>`_, Yunchuan Wen)
-* init-ceph: use getopt to make option processing more flexible (`issue#3015 <http://tracker.ceph.com/issues/3015>`_, `pr#6089 <http://github.com/ceph/ceph/pull/6089>`_, Nathan Cutler)
-* journal: incremental improvements and fixes (`pr#6552 <http://github.com/ceph/ceph/pull/6552>`_, Mykola Golub)
-* krbd: remove deprecated --quiet param from udevadm (`issue#13560 <http://tracker.ceph.com/issues/13560>`_, `pr#6394 <http://github.com/ceph/ceph/pull/6394>`_, Jason Dillaman)
-* kv: fix bug in kv key optimization (`pr#6511 <http://github.com/ceph/ceph/pull/6511>`_, Sage Weil)
-* kv/KineticStore: fix broken split_key (`pr#6574 <http://github.com/ceph/ceph/pull/6574>`_, Haomai Wang)
-* kv: optimize and clean up internal key/value interface (`pr#6312 <http://github.com/ceph/ceph/pull/6312>`_, Piotr Dałek, Sage Weil)
-* librados: do cleanup (`pr#6488 <http://github.com/ceph/ceph/pull/6488>`_, xie xingguo)
-* librados: fix pool alignment API overflow issue (`issue#13715 <http://tracker.ceph.com/issues/13715>`_, `pr#6489 <http://github.com/ceph/ceph/pull/6489>`_, xie xingguo)
-* librados: fix potential null pointer access when do pool_snap_list (`issue#13639 <http://tracker.ceph.com/issues/13639>`_, `pr#6422 <http://github.com/ceph/ceph/pull/6422>`_, xie xingguo)
-* librados: fix PromoteOn2ndRead test for EC (`pr#6373 <http://github.com/ceph/ceph/pull/6373>`_, Sage Weil)
-* librados: fix rare race where pool op callback may hang forever (`issue#13642 <http://tracker.ceph.com/issues/13642>`_, `pr#6426 <http://github.com/ceph/ceph/pull/6426>`_, xie xingguo)
-* librados: Solaris port (`pr#6416 <http://github.com/ceph/ceph/pull/6416>`_, Rohan Mars)
-* librbd: flush and invalidate cache via admin socket (`issue#2468 <http://tracker.ceph.com/issues/2468>`_, `pr#6453 <http://github.com/ceph/ceph/pull/6453>`_, Mykola Golub)
-* librbd: integrate journaling support for IO operations (`pr#6541 <http://github.com/ceph/ceph/pull/6541>`_, Jason Dillaman)
-* librbd: perf counters might not be initialized on error (`issue#13740 <http://tracker.ceph.com/issues/13740>`_, `pr#6523 <http://github.com/ceph/ceph/pull/6523>`_, Jason Dillaman)
-* librbd: perf section name: use hyphen to separate components (`issue#13719 <http://tracker.ceph.com/issues/13719>`_, `pr#6516 <http://github.com/ceph/ceph/pull/6516>`_, Mykola Golub)
-* librbd: resize should only update image size within header (`issue#13674 <http://tracker.ceph.com/issues/13674>`_, `pr#6447 <http://github.com/ceph/ceph/pull/6447>`_, Jason Dillaman)
-* librbd: start perf counters after id is initialized (`issue#13720 <http://tracker.ceph.com/issues/13720>`_, `pr#6494 <http://github.com/ceph/ceph/pull/6494>`_, Mykola Golub)
-* mailmap: revise organization (`pr#6519 <http://github.com/ceph/ceph/pull/6519>`_, Li Wang)
-* mailmap: Ubuntu Kylin name changed to Kylin Cloud (`pr#6532 <http://github.com/ceph/ceph/pull/6532>`_, Loic Dachary)
-* mailmap: update .organizationmap (`pr#6565 <http://github.com/ceph/ceph/pull/6565>`_, chenji-kael)
-* mailmap: updates for infernalis. (`pr#6495 <http://github.com/ceph/ceph/pull/6495>`_, Yann Dupont)
-* mailmap: updates (`pr#6594 <http://github.com/ceph/ceph/pull/6594>`_, chenji-kael)
-* mds: fix scrub_path (`pr#6684 <http://github.com/ceph/ceph/pull/6684>`_, John Spray)
-* mds: properly set STATE_STRAY/STATE_ORPHAN for stray dentry/inode (`issue#13777 <http://tracker.ceph.com/issues/13777>`_, `pr#6553 <http://github.com/ceph/ceph/pull/6553>`_, Yan, Zheng)
-* mds: ScrubStack and "tag path" command (`pr#5662 <http://github.com/ceph/ceph/pull/5662>`_, Yan, Zheng, John Spray, Greg Farnum)
-* mon: block 'ceph osd pg-temp ...' if pg_temp update is already pending (`pr#6704 <http://github.com/ceph/ceph/pull/6704>`_, Sage Weil)
-* mon: don't require OSD W for MRemoveSnaps (`issue#13777 <http://tracker.ceph.com/issues/13777>`_, `pr#6601 <http://github.com/ceph/ceph/pull/6601>`_, John Spray)
-* mon: initialize recorded election epoch properly even when standalone (`issue#13627 <http://tracker.ceph.com/issues/13627>`_, `pr#6407 <http://github.com/ceph/ceph/pull/6407>`_, huanwen ren)
-* mon: revert MonitorDBStore's WholeStoreIteratorImpl::get (`issue#13742 <http://tracker.ceph.com/issues/13742>`_, `pr#6522 <http://github.com/ceph/ceph/pull/6522>`_, Piotr Dałek)
-* msg/async: let receiver ack message ASAP (`pr#6478 <http://github.com/ceph/ceph/pull/6478>`_, Haomai Wang)
-* msg/async: support of non-block connect in async messenger (`issue#12802 <http://tracker.ceph.com/issues/12802>`_, `pr#5848 <http://github.com/ceph/ceph/pull/5848>`_, Jianhui Yuan)
-* msg/async: will crash if enabling async msg because of an assertion (`pr#6640 <http://github.com/ceph/ceph/pull/6640>`_, Zhi Zhang)
-* osd: avoid calculating crush mapping for most ops (`pr#6371 <http://github.com/ceph/ceph/pull/6371>`_, Sage Weil)
-* osd: avoid double-check for replaying and can_checkpoint() in FileStore::_check_replay_guard (`pr#6471 <http://github.com/ceph/ceph/pull/6471>`_, Ning Yao)
-* osd: call on_new_interval on newly split child PG (`issue#13962 <http://tracker.ceph.com/issues/13962>`_, `pr#6778 <http://github.com/ceph/ceph/pull/6778>`_, Sage Weil)
-* osd: change mutex to spinlock to optimize thread context switch. (`pr#6492 <http://github.com/ceph/ceph/pull/6492>`_, Xiaowei Chen)
-* osd: check do_shutdown before do_restart (`pr#6547 <http://github.com/ceph/ceph/pull/6547>`_, Xiaoxi Chen)
-* osd: clarify the scrub result report (`pr#6534 <http://github.com/ceph/ceph/pull/6534>`_, Li Wang)
-* osd: don't do random deep scrubs for user initiated scrubs (`pr#6673 <http://github.com/ceph/ceph/pull/6673>`_, David Zafman)
-* osd: FileStore: support multiple ondisk finish and apply finishers (`pr#6486 <http://github.com/ceph/ceph/pull/6486>`_, Xinze Chi, Haomai Wang)
-* osd: fix broken balance / localized read handling (`issue#13491 <http://tracker.ceph.com/issues/13491>`_, `pr#6364 <http://github.com/ceph/ceph/pull/6364>`_, Jason Dillaman)
-* osd: fix bug in last_* PG state timestamps (`pr#6517 <http://github.com/ceph/ceph/pull/6517>`_, Li Wang)
-* osd: fix ClassHandler::ClassData::get_filter() (`pr#6747 <http://github.com/ceph/ceph/pull/6747>`_, Yan, Zheng)
-* osd: fixes for several cases where op result code was not checked or set (`issue#13566 <http://tracker.ceph.com/issues/13566>`_, `pr#6347 <http://github.com/ceph/ceph/pull/6347>`_, xie xingguo)
-* osd: fix reactivate (check OSDSuperblock in mkfs() when we already have the superblock) (`issue#13586 <http://tracker.ceph.com/issues/13586>`_, `pr#6385 <http://github.com/ceph/ceph/pull/6385>`_, Vicente Cheng)
-* osd: fix wrong use of right parenthesis in localized read logic (`pr#6566 <http://github.com/ceph/ceph/pull/6566>`_, Jie Wang)
-* osd: improve temperature calculation for cache tier agent (`pr#4737 <http://github.com/ceph/ceph/pull/4737>`_, MingXin Liu)
-* osd: merge local_t and op_t txn to single one (`pr#6439 <http://github.com/ceph/ceph/pull/6439>`_, Xinze Chi)
-* osd: newstore: misc updates (including kv and os/fs stuff) (`pr#6609 <http://github.com/ceph/ceph/pull/6609>`_, Sage Weil)
-* osd: note down the number of missing clones (`pr#6654 <http://github.com/ceph/ceph/pull/6654>`_, Kefu Chai)
-* osd: optimize clone write path if object-map is enabled (`pr#6403 <http://github.com/ceph/ceph/pull/6403>`_, xinxin shu)
-* osd: optimize scrub subset_last_update calculation (`pr#6518 <http://github.com/ceph/ceph/pull/6518>`_, Li Wang)
-* osd: partial revert of "ReplicatedPG: result code not correctly set in some cases." (`issue#13796 <http://tracker.ceph.com/issues/13796>`_, `pr#6622 <http://github.com/ceph/ceph/pull/6622>`_, Sage Weil)
-* osd: randomize deep scrubbing (`pr#6550 <http://github.com/ceph/ceph/pull/6550>`_, Dan van der Ster, Herve Rousseau)
-* osd: scrub: do not assign value if read error (`pr#6568 <http://github.com/ceph/ceph/pull/6568>`_, Li Wang)
-* osd: write file journal optimization (`pr#6484 <http://github.com/ceph/ceph/pull/6484>`_, Xinze Chi)
-* rbd: accept --user, refuse -i command-line optionals (`pr#6590 <http://github.com/ceph/ceph/pull/6590>`_, Ilya Dryomov)
-* rbd: add missing command aliases to refactored CLI (`issue#13806 <http://tracker.ceph.com/issues/13806>`_, `pr#6606 <http://github.com/ceph/ceph/pull/6606>`_, Jason Dillaman)
-* rbd: dynamically generated bash completion (`issue#13494 <http://tracker.ceph.com/issues/13494>`_, `pr#6316 <http://github.com/ceph/ceph/pull/6316>`_, Jason Dillaman)
-* rbd: fixes for refactored CLI and related tests (`pr#6738 <http://github.com/ceph/ceph/pull/6738>`_, Ilya Dryomov)
-* rbd: make config changes actually apply (`pr#6520 <http://github.com/ceph/ceph/pull/6520>`_, Mykola Golub)
-* rbd: refactor cli command handling (`pr#5987 <http://github.com/ceph/ceph/pull/5987>`_, Jason Dillaman)
-* rbd: stripe unit/count set incorrectly from config (`pr#6593 <http://github.com/ceph/ceph/pull/6593>`_, Mykola Golub)
-* rbd: support negative boolean command-line optionals (`issue#13784 <http://tracker.ceph.com/issues/13784>`_, `pr#6607 <http://github.com/ceph/ceph/pull/6607>`_, Jason Dillaman)
-* rbd: unbreak rbd map + cephx_sign_messages option (`pr#6583 <http://github.com/ceph/ceph/pull/6583>`_, Ilya Dryomov)
-* rgw: bucket request payment support (`issue#13427 <http://tracker.ceph.com/issues/13427>`_, `pr#6214 <http://github.com/ceph/ceph/pull/6214>`_, Javier M. Mellid)
-* rgw: extend rgw_extended_http_attrs to affect Swift accounts and containers as well (`pr#5969 <http://github.com/ceph/ceph/pull/5969>`_, Radoslaw Zarzynski)
-* rgw: fix openssl linkage (`pr#6513 <http://github.com/ceph/ceph/pull/6513>`_, Yehuda Sadeh)
-* rgw: fix partial read issue in rgw_admin and rgw_tools (`pr#6761 <http://github.com/ceph/ceph/pull/6761>`_, Jiaying Ren)
-* rgw: fix reload on non Debian systems. (`pr#6482 <http://github.com/ceph/ceph/pull/6482>`_, Hervé Rousseau)
-* rgw: fix response of delete expired objects (`issue#13469 <http://tracker.ceph.com/issues/13469>`_, `pr#6228 <http://github.com/ceph/ceph/pull/6228>`_, Yuan Zhou)
-* rgw: fix swift API returning incorrect account metadata (`issue#13140 <http://tracker.ceph.com/issues/13140>`_, `pr#6047 <http://github.com/ceph/ceph/pull/6047>`_, Sangdi Xu)
-* rgw: link against system openssl (instead of dlopen at runtime) (`pr#6419 <http://github.com/ceph/ceph/pull/6419>`_, Sage Weil)
-* rgw: prevent anonymous user from reading bucket with authenticated read ACL (`issue#13207 <http://tracker.ceph.com/issues/13207>`_, `pr#6057 <http://github.com/ceph/ceph/pull/6057>`_, root)
-* rgw: use smart pointer for C_Reinitwatch (`pr#6767 <http://github.com/ceph/ceph/pull/6767>`_, Orit Wasserman)
-* systemd: fix typos (`pr#6679 <http://github.com/ceph/ceph/pull/6679>`_, Tobias Suckow)
-* tests: centos7 needs the Continuous Release (CR) Repository enabled for (`issue#13997 <http://tracker.ceph.com/issues/13997>`_, `pr#6842 <http://github.com/ceph/ceph/pull/6842>`_, Brad Hubbard)
-* tests: concatenate test_rados_test_tool from src and qa (`issue#13691 <http://tracker.ceph.com/issues/13691>`_, `pr#6464 <http://github.com/ceph/ceph/pull/6464>`_, Loic Dachary)
-* tests: fix test_rados_tools.sh rados lookup (`issue#13691 <http://tracker.ceph.com/issues/13691>`_, `pr#6502 <http://github.com/ceph/ceph/pull/6502>`_, Loic Dachary)
-* tests: fix typo in TestClsRbd.snapshots test case (`issue#13727 <http://tracker.ceph.com/issues/13727>`_, `pr#6504 <http://github.com/ceph/ceph/pull/6504>`_, Jason Dillaman)
-* tests: ignore test-suite.log (`pr#6584 <http://github.com/ceph/ceph/pull/6584>`_, Loic Dachary)
-* tests: restore run-cli-tests (`pr#6571 <http://github.com/ceph/ceph/pull/6571>`_, Loic Dachary, Sage Weil, Jason Dillaman)
-* tools/cephfs: fix overflow writing header to fixed size buffer (#13816) (`pr#6617 <http://github.com/ceph/ceph/pull/6617>`_, John Spray)
-
-v10.0.0
-=======
-
-This is the first development release for the Jewel cycle.
-
-Notable Changes
----------------
-
-* build: cmake tweaks (`pr#6254 <http://github.com/ceph/ceph/pull/6254>`_, John Spray)
-* build: more CMake package check fixes (`pr#6108 <http://github.com/ceph/ceph/pull/6108>`_, Daniel Gryniewicz)
-* ceph-disk: get Nonetype when ceph-disk list with --format plain on single device. (`pr#6410 <http://github.com/ceph/ceph/pull/6410>`_, Vicente Cheng)
-* ceph: fix tell behavior (`pr#6329 <http://github.com/ceph/ceph/pull/6329>`_, David Zafman)
-* ceph-fuse: While starting ceph-fuse, start the log thread first (`issue#13443 <http://tracker.ceph.com/issues/13443>`_, `pr#6224 <http://github.com/ceph/ceph/pull/6224>`_, Wenjun Huang)
-* client: don't mark_down on command reply (`pr#6204 <http://github.com/ceph/ceph/pull/6204>`_, John Spray)
-* client: drop prefix from ints (`pr#6275 <http://github.com/ceph/ceph/pull/6275>`_, John Coyle)
-* client: sys/file.h includes for flock operations (`pr#6282 <http://github.com/ceph/ceph/pull/6282>`_, John Coyle)
-* cls_rbd: change object_map_update to return 0 on success, add logging (`pr#6467 <http://github.com/ceph/ceph/pull/6467>`_, Douglas Fuller)
-* cmake: Use uname instead of arch. (`pr#6358 <http://github.com/ceph/ceph/pull/6358>`_, John Coyle)
-* common: assert: __STRING macro is not defined by musl libc. (`pr#6210 <http://github.com/ceph/ceph/pull/6210>`_, John Coyle)
-* common: fix OpTracker age histogram calculation (`pr#5065 <http://github.com/ceph/ceph/pull/5065>`_, Zhiqiang Wang)
-* common/MemoryModel: Added explicit feature check for mallinfo(). (`pr#6252 <http://github.com/ceph/ceph/pull/6252>`_, John Coyle)
-* common/obj_bencher.cc: fix verification crashing when there's no objects (`pr#5853 <http://github.com/ceph/ceph/pull/5853>`_, Piotr Dałek)
-* common: optimize debug logging (`pr#6307 <http://github.com/ceph/ceph/pull/6307>`_, Adam Kupczyk)
-* common: Thread: move copy constructor and assignment op (`pr#5133 <http://github.com/ceph/ceph/pull/5133>`_, Michal Jarzabek)
-* common: WorkQueue: new PointerWQ base class for ContextWQ (`issue#13636 <http://tracker.ceph.com/issues/13636>`_, `pr#6525 <http://github.com/ceph/ceph/pull/6525>`_, Jason Dillaman)
-* compat: use prefixed typeof extension (`pr#6216 <http://github.com/ceph/ceph/pull/6216>`_, John Coyle)
-* crush: validate bucket id before indexing buckets array (`issue#13477 <http://tracker.ceph.com/issues/13477>`_, `pr#6246 <http://github.com/ceph/ceph/pull/6246>`_, Sage Weil)
-* doc: download GPG key from download.ceph.com (`issue#13603 <http://tracker.ceph.com/issues/13603>`_, `pr#6384 <http://github.com/ceph/ceph/pull/6384>`_, Ken Dreyer)
-* doc: fix outdated content in cache tier (`pr#6272 <http://github.com/ceph/ceph/pull/6272>`_, Yuan Zhou)
-* doc/release-notes: v9.1.0 (`pr#6281 <http://github.com/ceph/ceph/pull/6281>`_, Loic Dachary)
-* doc/releases-notes: fix build error (`pr#6483 <http://github.com/ceph/ceph/pull/6483>`_, Kefu Chai)
-* doc: remove toctree items under Create CephFS (`pr#6241 <http://github.com/ceph/ceph/pull/6241>`_, Jevon Qiao)
-* doc: rename the "Create a Ceph User" section and add verbage about… (`issue#13502 <http://tracker.ceph.com/issues/13502>`_, `pr#6297 <http://github.com/ceph/ceph/pull/6297>`_, ritz303)
-* docs: Fix styling of newly added mirror docs (`pr#6127 <http://github.com/ceph/ceph/pull/6127>`_, Wido den Hollander)
-* doc, tests: update all http://ceph.com/ to download.ceph.com (`pr#6435 <http://github.com/ceph/ceph/pull/6435>`_, Alfredo Deza)
-* doc: update doc for with new pool settings (`pr#5951 <http://github.com/ceph/ceph/pull/5951>`_, Guang Yang)
-* doc: update radosgw-admin example (`pr#6256 <http://github.com/ceph/ceph/pull/6256>`_, YankunLi)
-* doc: update the OS recommendations for newer Ceph releases (`pr#6355 <http://github.com/ceph/ceph/pull/6355>`_, ritz303)
-* drop envz.h includes (`pr#6285 <http://github.com/ceph/ceph/pull/6285>`_, John Coyle)
-* libcephfs: Improve portability by replacing loff_t type usage with off_t (`pr#6301 <http://github.com/ceph/ceph/pull/6301>`_, John Coyle)
-* libcephfs: only check file offset on glibc platforms (`pr#6288 <http://github.com/ceph/ceph/pull/6288>`_, John Coyle)
-* librados: fix examples/librados/Makefile error. (`pr#6320 <http://github.com/ceph/ceph/pull/6320>`_, You Ji)
-* librados: init crush_location from config file. (`issue#13473 <http://tracker.ceph.com/issues/13473>`_, `pr#6243 <http://github.com/ceph/ceph/pull/6243>`_, Wei Luo)
-* librados: wrongly passed in argument for stat command (`issue#13703 <http://tracker.ceph.com/issues/13703>`_, `pr#6476 <http://github.com/ceph/ceph/pull/6476>`_, xie xingguo)
-* librbd: deadlock while attempting to flush AIO requests (`issue#13726 <http://tracker.ceph.com/issues/13726>`_, `pr#6508 <http://github.com/ceph/ceph/pull/6508>`_, Jason Dillaman)
-* librbd: fix enable objectmap feature issue (`issue#13558 <http://tracker.ceph.com/issues/13558>`_, `pr#6339 <http://github.com/ceph/ceph/pull/6339>`_, xinxin shu)
-* librbd: remove duplicate read_only test in librbd::async_flatten (`pr#5856 <http://github.com/ceph/ceph/pull/5856>`_, runsisi)
-* mailmap: modify member info (`pr#6468 <http://github.com/ceph/ceph/pull/6468>`_, Xiaowei Chen)
-* mailmap: updates (`pr#6258 <http://github.com/ceph/ceph/pull/6258>`_, M Ranga Swami Reddy)
-* mailmap: Xie Xingguo affiliation (`pr#6409 <http://github.com/ceph/ceph/pull/6409>`_, Loic Dachary)
-* mds: implement snapshot rename (`pr#5645 <http://github.com/ceph/ceph/pull/5645>`_, xinxin shu)
-* mds: messages/MOSDOp: cast in assert to eliminate warnings (`issue#13625 <http://tracker.ceph.com/issues/13625>`_, `pr#6414 <http://github.com/ceph/ceph/pull/6414>`_, David Zafman)
-* mds: new filtered MDS tell commands for sessions (`pr#6180 <http://github.com/ceph/ceph/pull/6180>`_, John Spray)
-* mds/Session: use projected parent for auth path check (`issue#13364 <http://tracker.ceph.com/issues/13364>`_, `pr#6200 <http://github.com/ceph/ceph/pull/6200>`_, Sage Weil)
-* mon: should not set isvalid = true when cephx_verify_authorizer return false (`issue#13525 <http://tracker.ceph.com/issues/13525>`_, `pr#6306 <http://github.com/ceph/ceph/pull/6306>`_, Ruifeng Yang)
-* osd: Add config option osd_read_ec_check_for_errors for testing (`pr#5865 <http://github.com/ceph/ceph/pull/5865>`_, David Zafman)
-* osd: add pin/unpin support to cache tier (11066) (`pr#6326 <http://github.com/ceph/ceph/pull/6326>`_, Zhiqiang Wang)
-* osd: auto repair EC pool (`issue#12754 <http://tracker.ceph.com/issues/12754>`_, `pr#6196 <http://github.com/ceph/ceph/pull/6196>`_, Guang Yang)
-* osd: drop the interim set from load_pgs() (`pr#6277 <http://github.com/ceph/ceph/pull/6277>`_, Piotr Dałek)
-* osd: FileJournal: _fdump wrongly returns if journal is currently unreadable. (`issue#13626 <http://tracker.ceph.com/issues/13626>`_, `pr#6406 <http://github.com/ceph/ceph/pull/6406>`_, xie xingguo)
-* osd: FileStore: add a field indicate xattr only one chunk for set xattr. (`pr#6244 <http://github.com/ceph/ceph/pull/6244>`_, Jianpeng Ma)
-* osd: FileStore: LFNIndex: remove redundant local variable 'obj'. (`issue#13552 <http://tracker.ceph.com/issues/13552>`_, `pr#6333 <http://github.com/ceph/ceph/pull/6333>`_, xiexingguo)
-* osd: FileStore: potential memory leak if _fgetattrs fails (`issue#13597 <http://tracker.ceph.com/issues/13597>`_, `pr#6377 <http://github.com/ceph/ceph/pull/6377>`_, xie xingguo)
-* osd: FileStore: remove unused local variable 'handle' (`pr#6381 <http://github.com/ceph/ceph/pull/6381>`_, xie xingguo)
-* osd: fix bogus scrub results when missing a clone (`issue#12738 <http://tracker.ceph.com/issues/12738>`_, `issue#12740 <http://tracker.ceph.com/issues/12740>`_, `pr#5783 <http://github.com/ceph/ceph/pull/5783>`_, David Zafman)
-* osd: fix debug message in OSD::is_healthy (`pr#6226 <http://github.com/ceph/ceph/pull/6226>`_, Xiaoxi Chen)
-* osd: fix MOSDOp encoding (`pr#6174 <http://github.com/ceph/ceph/pull/6174>`_, Sage Weil)
-* osd: init started to 0 (`issue#13206 <http://tracker.ceph.com/issues/13206>`_, `pr#6107 <http://github.com/ceph/ceph/pull/6107>`_, Sage Weil)
-* osd: KeyValueStore: fix the name's typo of keyvaluestore_default_strip_size (`pr#6375 <http://github.com/ceph/ceph/pull/6375>`_, Zhi Zhang)
-* osd: new and delete ObjectStore::Transaction in a function is not necessary (`pr#6299 <http://github.com/ceph/ceph/pull/6299>`_, Ruifeng Yang)
-* osd: optimize get_object_context (`pr#6305 <http://github.com/ceph/ceph/pull/6305>`_, Jianpeng Ma)
-* osd: optimize MOSDOp/do_op/handle_op (`pr#5211 <http://github.com/ceph/ceph/pull/5211>`_, Jacek J. Lakis)
-* osd: os/chain_xattr: On linux use linux/limits.h for XATTR_NAME_MAX. (`pr#6343 <http://github.com/ceph/ceph/pull/6343>`_, John Coyle)
-* osd: reorder bool fields in PGLog struct (`pr#6279 <http://github.com/ceph/ceph/pull/6279>`_, Piotr Dałek)
-* osd: ReplicatedPG: remove unused local variables (`issue#13575 <http://tracker.ceph.com/issues/13575>`_, `pr#6360 <http://github.com/ceph/ceph/pull/6360>`_, xiexingguo)
-* osd: reset primary and up_primary when building a new past_interval. (`issue#13471 <http://tracker.ceph.com/issues/13471>`_, `pr#6240 <http://github.com/ceph/ceph/pull/6240>`_, xiexingguo)
-* radosgw-admin: Checking the legality of the parameters (`issue#13018 <http://tracker.ceph.com/issues/13018>`_, `pr#5879 <http://github.com/ceph/ceph/pull/5879>`_, Qiankun Zheng)
-* radosgw-admin: Create --secret-key alias for --secret (`issue#5821 <http://tracker.ceph.com/issues/5821>`_, `pr#5335 <http://github.com/ceph/ceph/pull/5335>`_, Yuan Zhou)
-* radosgw-admin: metadata list user should return an empty list when user pool is empty (`issue#13596 <http://tracker.ceph.com/issues/13596>`_, `pr#6465 <http://github.com/ceph/ceph/pull/6465>`_, Orit Wasserman)
-* rados: new options for write benchmark (`pr#6340 <http://github.com/ceph/ceph/pull/6340>`_, Joaquim Rocha)
-* rbd: fix clone isssue (`issue#13553 <http://tracker.ceph.com/issues/13553>`_, `pr#6334 <http://github.com/ceph/ceph/pull/6334>`_, xinxin shu)
-* rbd: fix init-rbdmap CMDPARAMS (`issue#13214 <http://tracker.ceph.com/issues/13214>`_, `pr#6109 <http://github.com/ceph/ceph/pull/6109>`_, Sage Weil)
-* rbdmap: systemd support (`issue#13374 <http://tracker.ceph.com/issues/13374>`_, `pr#6479 <http://github.com/ceph/ceph/pull/6479>`_, Boris Ranto)
-* rbd: rbdmap improvements (`pr#6445 <http://github.com/ceph/ceph/pull/6445>`_, Boris Ranto)
-* release-notes: draft v0.94.4 release notes (`pr#5907 <http://github.com/ceph/ceph/pull/5907>`_, Loic Dachary)
-* release-notes: draft v0.94.4 release notes (`pr#6195 <http://github.com/ceph/ceph/pull/6195>`_, Loic Dachary)
-* release-notes: draft v0.94.4 release notes (`pr#6238 <http://github.com/ceph/ceph/pull/6238>`_, Loic Dachary)
-* rgw: add compat header for TEMP_FAILURE_RETRY (`pr#6294 <http://github.com/ceph/ceph/pull/6294>`_, John Coyle)
-* rgw: add default quota config (`pr#6400 <http://github.com/ceph/ceph/pull/6400>`_, Daniel Gryniewicz)
-* rgw: add support for getting Swift's DLO without manifest handling (`pr#6206 <http://github.com/ceph/ceph/pull/6206>`_, Radoslaw Zarzynski)
-* rgw: clarify the error message when trying to create an existed user (`pr#5938 <http://github.com/ceph/ceph/pull/5938>`_, Zeqiang Zhuang)
-* rgw: fix objects can not be displayed which object name does not cont… (`issue#12963 <http://tracker.ceph.com/issues/12963>`_, `pr#5738 <http://github.com/ceph/ceph/pull/5738>`_, Weijun Duan)
-* rgw: fix typo in RGWHTTPClient::process error message (`pr#6424 <http://github.com/ceph/ceph/pull/6424>`_, Brad Hubbard)
-* rgw: fix wrong etag calculation during POST on S3 bucket. (`issue#11241 <http://tracker.ceph.com/issues/11241>`_, `pr#6030 <http://github.com/ceph/ceph/pull/6030>`_, Radoslaw Zarzynski)
-* rgw: mdlog trim add usage prompt (`pr#6059 <http://github.com/ceph/ceph/pull/6059>`_, Weijun Duan)
-* rgw: modify the conditional statement in parse_metadata_key method. (`pr#5875 <http://github.com/ceph/ceph/pull/5875>`_, Zengran Zhang)
-* rgw: refuse to calculate digest when the s3 secret key is empty (`issue#13133 <http://tracker.ceph.com/issues/13133>`_, `pr#6045 <http://github.com/ceph/ceph/pull/6045>`_, Sangdi Xu)
-* rgw: remove extra check in RGWGetObj::execute (`issue#12352 <http://tracker.ceph.com/issues/12352>`_, `pr#5262 <http://github.com/ceph/ceph/pull/5262>`_, Javier M. Mellid)
-* rgw: support core file limit for radosgw daemon (`pr#6346 <http://github.com/ceph/ceph/pull/6346>`_, Guang Yang)
-* rgw: swift use Civetweb ssl can not get right url (`issue#13628 <http://tracker.ceph.com/issues/13628>`_, `pr#6408 <http://github.com/ceph/ceph/pull/6408>`_, Weijun Duan)
-* rocksdb: build with PORTABLE=1 (`pr#6311 <http://github.com/ceph/ceph/pull/6311>`_, Sage Weil)
-* rocksdb: remove rdb source files from dist tarball (`issue#13554 <http://tracker.ceph.com/issues/13554>`_, `pr#6379 <http://github.com/ceph/ceph/pull/6379>`_, Kefu Chai)
-* rocksdb: use native rocksdb makefile (and our autotools) (`pr#6290 <http://github.com/ceph/ceph/pull/6290>`_, Sage Weil)
-* rpm: ceph.spec.in: correctly declare systemd dependency for SLE/openSUSE (`pr#6114 <http://github.com/ceph/ceph/pull/6114>`_, Nathan Cutler)
-* rpm: ceph.spec.in: fix libs-compat / devel-compat conditional (`issue#12315 <http://tracker.ceph.com/issues/12315>`_, `pr#5219 <http://github.com/ceph/ceph/pull/5219>`_, Ken Dreyer)
-* rpm: rhel 5.9 librados compile fix, moved blkid to RBD check/compilation (`issue#13177 <http://tracker.ceph.com/issues/13177>`_, `pr#5954 <http://github.com/ceph/ceph/pull/5954>`_, Rohan Mars)
-* scripts: release_notes can track original issue (`pr#6009 <http://github.com/ceph/ceph/pull/6009>`_, Abhishek Lekshmanan)
-* test/libcephfs/flock: add sys/file.h include for flock operations (`pr#6310 <http://github.com/ceph/ceph/pull/6310>`_, John Coyle)
-* test_rgw_admin: use freopen for output redirection. (`pr#6303 <http://github.com/ceph/ceph/pull/6303>`_, John Coyle)
-* tests: allow docker-test.sh to run under root (`issue#13355 <http://tracker.ceph.com/issues/13355>`_, `pr#6173 <http://github.com/ceph/ceph/pull/6173>`_, Loic Dachary)
-* tests: ceph-disk workunit uses configobj (`pr#6342 <http://github.com/ceph/ceph/pull/6342>`_, Loic Dachary)
-* tests: destroy testprofile before creating one (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6446 <http://github.com/ceph/ceph/pull/6446>`_, Loic Dachary)
-* tests: port uniqueness reminder (`pr#6387 <http://github.com/ceph/ceph/pull/6387>`_, Loic Dachary)
-* tests: test/librados/test.cc must create profile (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6452 <http://github.com/ceph/ceph/pull/6452>`_, Loic Dachary)
-* tools/cephfs: fix overflow writing header to fixed size buffer (#13816) (`pr#6617 <http://github.com/ceph/ceph/pull/6617>`_, John Spray)
-* tools: ceph-monstore-update-crush: add "--test" when testing crushmap (`pr#6418 <http://github.com/ceph/ceph/pull/6418>`_, Kefu Chai)
-* tools:remove duplicate references (`pr#5917 <http://github.com/ceph/ceph/pull/5917>`_, Bo Cai)
-* vstart: grant full access to Swift testing account (`pr#6239 <http://github.com/ceph/ceph/pull/6239>`_, Yuan Zhou)
-* vstart: set cephfs root uid/gid to caller (`pr#6255 <http://github.com/ceph/ceph/pull/6255>`_, John Spray)
-
-
-v9.2.1 Infernalis
-=================
-
-This Infernalis point release fixes several packagins and init script
-issues, enables the librbd objectmap feature by default, a few librbd
-bugs, and a range of miscellaneous bug fixes across the system.
-
-We recommend that all infernalis v9.2.0 users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v9.2.1.txt>`.
-
-Upgrading
----------
-
-* Some symbols wrongly exposed by the C++ interface for librados in
- v9.1.0 and v9.2.0 were removed. If you compiled your own
- application against librados shipped with these releases, it is very
- likely referencing these removed symbols. So you will need to
- recompile it.
-
-
-Notable Changes
----------------
-* build/ops: Ceph daemon failed to start, because the service name was already used. (`issue#13474 <http://tracker.ceph.com/issues/13474>`_, `pr#6833 <http://github.com/ceph/ceph/pull/6833>`_, Chuanhong Wang)
-* build/ops: ceph upstart script rbdmap.conf incorrectly processes parameters (`issue#13214 <http://tracker.ceph.com/issues/13214>`_, `pr#6396 <http://github.com/ceph/ceph/pull/6396>`_, Sage Weil)
-* build/ops: libunwind package missing on CentOS 7 (`issue#13997 <http://tracker.ceph.com/issues/13997>`_, `pr#6845 <http://github.com/ceph/ceph/pull/6845>`_, Loic Dachary)
-* build/ops: rbd-replay-* moved from ceph-test-dbg to ceph-common-dbg as well (`issue#13785 <http://tracker.ceph.com/issues/13785>`_, `pr#6628 <http://github.com/ceph/ceph/pull/6628>`_, Loic Dachary)
-* build/ops: systemd/ceph-disk@.service assumes /bin/flock (`issue#13975 <http://tracker.ceph.com/issues/13975>`_, `pr#6852 <http://github.com/ceph/ceph/pull/6852>`_, Loic Dachary)
-* build/ops: systemd: no rbdmap systemd unit file (`issue#13374 <http://tracker.ceph.com/issues/13374>`_, `pr#6500 <http://github.com/ceph/ceph/pull/6500>`_, Boris Ranto)
-* common: auth/cephx: large amounts of log are produced by osd (`issue#13610 <http://tracker.ceph.com/issues/13610>`_, `pr#6836 <http://github.com/ceph/ceph/pull/6836>`_, Qiankun Zheng)
-* common: log: Log.cc: Assign LOG_DEBUG priority to syslog calls (`issue#13993 <http://tracker.ceph.com/issues/13993>`_, `pr#6993 <http://github.com/ceph/ceph/pull/6993>`_, Brad Hubbard)
-* crush: crash if we see CRUSH_ITEM_NONE in early rule step (`issue#13477 <http://tracker.ceph.com/issues/13477>`_, `pr#6626 <http://github.com/ceph/ceph/pull/6626>`_, Sage Weil)
-* fs: Ceph file system is not freeing space (`issue#13777 <http://tracker.ceph.com/issues/13777>`_, `pr#7431 <http://github.com/ceph/ceph/pull/7431>`_, Yan, Zheng, John Spray)
-* fs: Ceph-fuse won't start correctly when the option log_max_new in ceph.conf set to zero (`issue#13443 <http://tracker.ceph.com/issues/13443>`_, `pr#6395 <http://github.com/ceph/ceph/pull/6395>`_, Wenjun Huang)
-* fs: Segmentation fault accessing file using fuse mount (`issue#13714 <http://tracker.ceph.com/issues/13714>`_, `pr#6853 <http://github.com/ceph/ceph/pull/6853>`_, Yan, Zheng)
-* librbd: Avoid re-writing old-format image header on resize (`issue#13674 <http://tracker.ceph.com/issues/13674>`_, `pr#6630 <http://github.com/ceph/ceph/pull/6630>`_, Jason Dillaman)
-* librbd: ImageWatcher shouldn't block the notification thread (`issue#14373 <http://tracker.ceph.com/issues/14373>`_, `pr#7406 <http://github.com/ceph/ceph/pull/7406>`_, Jason Dillaman)
-* librbd: QEMU hangs after creating snapshot and stopping VM (`issue#13726 <http://tracker.ceph.com/issues/13726>`_, `pr#6632 <http://github.com/ceph/ceph/pull/6632>`_, Jason Dillaman)
-* librbd: Verify self-managed snapshot functionality on image create (`issue#13633 <http://tracker.ceph.com/issues/13633>`_, `pr#7080 <http://github.com/ceph/ceph/pull/7080>`_, Jason Dillaman)
-* librbd: [ FAILED ] TestLibRBD.SnapRemoveViaLockOwner (`issue#14164 <http://tracker.ceph.com/issues/14164>`_, `pr#7079 <http://github.com/ceph/ceph/pull/7079>`_, Jason Dillaman)
-* librbd: enable feature objectmap (`issue#13558 <http://tracker.ceph.com/issues/13558>`_, `pr#6477 <http://github.com/ceph/ceph/pull/6477>`_, xinxin shu)
-* librbd: fix merge-diff for >2GB diff-files (`issue#14030 <http://tracker.ceph.com/issues/14030>`_, `pr#6981 <http://github.com/ceph/ceph/pull/6981>`_, Jason Dillaman)
-* librbd: flattening an rbd image with active IO can lead to hang (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `issue#14483 <http://tracker.ceph.com/issues/14483>`_, `pr#7484 <http://github.com/ceph/ceph/pull/7484>`_, Jason Dillaman)
-* mds: fix client capabilities during reconnect (client.XXXX isn't responding to mclientcaps warning) (`issue#11482 <http://tracker.ceph.com/issues/11482>`_, `pr#6752 <http://github.com/ceph/ceph/pull/6752>`_, Yan, Zheng)
-* mon: Ceph Pools' MAX AVAIL is 0 if some OSDs' weight is 0 (`issue#13840 <http://tracker.ceph.com/issues/13840>`_, `pr#6907 <http://github.com/ceph/ceph/pull/6907>`_, Chengyuan Li)
-* mon: should not set isvalid = true when cephx_verify_authorizer retur... (`issue#13525 <http://tracker.ceph.com/issues/13525>`_, `pr#6392 <http://github.com/ceph/ceph/pull/6392>`_, Ruifeng Yang)
-* objecter: pool op callback may hang forever. (`issue#13642 <http://tracker.ceph.com/issues/13642>`_, `pr#6627 <http://github.com/ceph/ceph/pull/6627>`_, xie xingguo)
-* objecter: potential null pointer access when do pool_snap_list. (`issue#13639 <http://tracker.ceph.com/issues/13639>`_, `pr#6840 <http://github.com/ceph/ceph/pull/6840>`_, xie xingguo)
-* osd: FileStore: potential memory leak if getattrs fails. (`issue#13597 <http://tracker.ceph.com/issues/13597>`_, `pr#6846 <http://github.com/ceph/ceph/pull/6846>`_, xie xingguo)
-* osd: OSD::build_past_intervals_parallel() shall reset primary and up_primary when begin a new past_interval. (`issue#13471 <http://tracker.ceph.com/issues/13471>`_, `pr#6397 <http://github.com/ceph/ceph/pull/6397>`_, xiexingguo)
-* osd: call on_new_interval on newly split child PG (`issue#13962 <http://tracker.ceph.com/issues/13962>`_, `pr#6849 <http://github.com/ceph/ceph/pull/6849>`_, Sage Weil)
-* osd: ceph-disk list fails on /dev/cciss!c0d0 (`issue#13970 <http://tracker.ceph.com/issues/13970>`_, `issue#14230 <http://tracker.ceph.com/issues/14230>`_, `pr#6880 <http://github.com/ceph/ceph/pull/6880>`_, Loic Dachary)
-* osd: ceph-disk: use blkid instead of sgdisk -i (`issue#14080 <http://tracker.ceph.com/issues/14080>`_, `pr#7001 <http://github.com/ceph/ceph/pull/7001>`_, Loic Dachary, Ilya Dryomov)
-* osd: fix race condition during send_failures (`issue#13821 <http://tracker.ceph.com/issues/13821>`_, `pr#6694 <http://github.com/ceph/ceph/pull/6694>`_, Sage Weil)
-* osd: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started) (`issue#14015 <http://tracker.ceph.com/issues/14015>`_, `pr#6851 <http://github.com/ceph/ceph/pull/6851>`_, David Zafman)
-* osd: pgs stuck inconsistent after infernalis upgrade (`issue#13862 <http://tracker.ceph.com/issues/13862>`_, `pr#7421 <http://github.com/ceph/ceph/pull/7421>`_, David Zafman)
-* rbd: TaskFinisher::cancel should remove event from SafeTimer (`issue#14476 <http://tracker.ceph.com/issues/14476>`_, `pr#7426 <http://github.com/ceph/ceph/pull/7426>`_, Douglas Fuller)
-* rbd: cls_rbd: object_map_save should enable checksums (`issue#14280 <http://tracker.ceph.com/issues/14280>`_, `pr#7428 <http://github.com/ceph/ceph/pull/7428>`_, Douglas Fuller)
-* rbd: misdirected op in rbd balance-reads test (`issue#13491 <http://tracker.ceph.com/issues/13491>`_, `pr#6629 <http://github.com/ceph/ceph/pull/6629>`_, Jason Dillaman)
-* rbd: pure virtual method called (`issue#13636 <http://tracker.ceph.com/issues/13636>`_, `pr#6633 <http://github.com/ceph/ceph/pull/6633>`_, Jason Dillaman)
-* rbd: rbd clone issue (`issue#13553 <http://tracker.ceph.com/issues/13553>`_, `pr#6474 <http://github.com/ceph/ceph/pull/6474>`_, xinxin shu)
-* rbd: rbd-replay does not check for EOF and goes to endless loop (`issue#14452 <http://tracker.ceph.com/issues/14452>`_, `pr#7427 <http://github.com/ceph/ceph/pull/7427>`_, Mykola Golub)
-* rbd: unknown argument --quiet in udevadm settle (`issue#13560 <http://tracker.ceph.com/issues/13560>`_, `pr#6634 <http://github.com/ceph/ceph/pull/6634>`_, Jason Dillaman)
-* rgw: init script reload doesn't work on EL7 (`issue#13709 <http://tracker.ceph.com/issues/13709>`_, `pr#6650 <http://github.com/ceph/ceph/pull/6650>`_, Hervé Rousseau)
-* rgw: radosgw-admin --help doesn't show the orphans find command (`issue#14516 <http://tracker.ceph.com/issues/14516>`_, `pr#7543 <http://github.com/ceph/ceph/pull/7543>`_, Yehuda Sadeh)
-* tests: ceph-disk workunit uses configobj (`issue#14004 <http://tracker.ceph.com/issues/14004>`_, `pr#6828 <http://github.com/ceph/ceph/pull/6828>`_, Loic Dachary)
-* tests: fsx failed to compile (`issue#14384 <http://tracker.ceph.com/issues/14384>`_, `pr#7429 <http://github.com/ceph/ceph/pull/7429>`_, Greg Farnum)
-* tests: notification slave needs to wait for master (`issue#13810 <http://tracker.ceph.com/issues/13810>`_, `pr#7225 <http://github.com/ceph/ceph/pull/7225>`_, Jason Dillaman)
-* tests: rebuild exclusive lock test should acquire exclusive lock (`issue#14121 <http://tracker.ceph.com/issues/14121>`_, `pr#7038 <http://github.com/ceph/ceph/pull/7038>`_, Jason Dillaman)
-* tests: testprofile must be removed before it is re-created (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6449 <http://github.com/ceph/ceph/pull/6449>`_, Loic Dachary)
-* tests: verify it is possible to reuse an OSD id (`issue#13988 <http://tracker.ceph.com/issues/13988>`_, `pr#6882 <http://github.com/ceph/ceph/pull/6882>`_, Loic Dachary)
-
-v9.2.0 Infernalis
-=================
-
-This major release will be the foundation for the next stable series.
-There have been some major changes since v0.94.x Hammer, and the
-upgrade process is non-trivial. Please read these release notes carefully.
-
-Major Changes from Hammer
--------------------------
-
-- *General*:
-
- * Ceph daemons are now managed via systemd (with the exception of
- Ubuntu Trusty, which still uses upstart).
- * Ceph daemons run as 'ceph' user instead root.
- * On Red Hat distros, there is also an SELinux policy.
-
-- *RADOS*:
-
- * The RADOS cache tier can now proxy write operations to the base
- tier, allowing writes to be handled without forcing migration of
- an object into the cache.
- * The SHEC erasure coding support is no longer flagged as
- experimental. SHEC trades some additional storage space for faster
- repair.
- * There is now a unified queue (and thus prioritization) of client
- IO, recovery, scrubbing, and snapshot trimming.
- * There have been many improvements to low-level repair tooling
- (ceph-objectstore-tool).
- * The internal ObjectStore API has been significantly cleaned up in order
- to faciliate new storage backends like NewStore.
-
-- *RGW*:
-
- * The Swift API now supports object expiration.
- * There are many Swift API compatibility improvements.
-
-- *RBD*:
-
- * The ``rbd du`` command shows actual usage (quickly, when
- object-map is enabled).
- * The object-map feature has seen many stability improvements.
- * Object-map and exclusive-lock features can be enabled or disabled
- dynamically.
- * You can now store user metadata and set persistent librbd options
- associated with individual images.
- * The new deep-flatten features allows flattening of a clone and all
- of its snapshots. (Previously snapshots could not be flattened.)
- * The export-diff command command is now faster (it uses aio). There is also
- a new fast-diff feature.
- * The --size argument can be specified with a suffix for units
- (e.g., ``--size 64G``).
- * There is a new ``rbd status`` command that, for now, shows who has
- the image open/mapped.
-
-- *CephFS*:
-
- * You can now rename snapshots.
- * There have been ongoing improvements around administration, diagnostics,
- and the check and repair tools.
- * The caching and revocation of client cache state due to unused
- inodes has been dramatically improved.
- * The ceph-fuse client behaves better on 32-bit hosts.
-
-Distro compatibility
---------------------
-
-We have decided to drop support for many older distributions so that we can
-move to a newer compiler toolchain (e.g., C++11). Although it is still possible
-to build Ceph on older distributions by installing backported development tools,
-we are not building and publishing release packages for ceph.com.
-
-We now build packages for:
-
-* CentOS 7 or later. We have dropped support for CentOS 6 (and other
- RHEL 6 derivatives, like Scientific Linux 6).
-* Debian Jessie 8.x or later. Debian Wheezy 7.x's g++ has incomplete
- support for C++11 (and no systemd).
-* Ubuntu Trusty 14.04 or later. Ubuntu Precise 12.04 is no longer
- supported.
-* Fedora 22 or later.
-
-Upgrading from Firefly
-----------------------
-
-Upgrading directly from Firefly v0.80.z is not recommended. It is
-possible to do a direct upgrade, but not without downtime. We
-recommend that clusters are first upgraded to Hammer v0.94.4 or a
-later v0.94.z release; only then is it possible to upgrade to
-Infernalis 9.2.z for an online upgrade (see below).
-
-To do an offline upgrade directly from Firefly, all Firefly OSDs must
-be stopped and marked down before any Infernalis OSDs will be allowed
-to start up. This fencing is enforced by the Infernalis monitor, so
-use an upgrade procedure like:
-
-#. Upgrade Ceph on monitor hosts
-#. Restart all ceph-mon daemons
-#. Upgrade Ceph on all OSD hosts
-#. Stop all ceph-osd daemons
-#. Mark all OSDs down with something like::
-
- ceph osd down `seq 0 1000`
-
-#. Start all ceph-osd daemons
-#. Upgrade and restart remaining daemons (ceph-mds, radosgw)
-
-Upgrading from Hammer
----------------------
-
-* All cluster nodes must first upgrade to Hammer v0.94.4 or a later v0.94.z release; only
- then is it possible to upgrade to Infernalis 9.2.z.
-
-* For all distributions that support systemd (CentOS 7, Fedora, Debian
- Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd
- files instead of the legacy sysvinit scripts. For example::
-
- systemctl start ceph.target # start all daemons
- systemctl status ceph-osd@12 # check status of osd.12
-
- The main notable distro that is *not* yet using systemd is Ubuntu trusty
- 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
-
-* Ceph daemons now run as user and group ``ceph`` by default. The
- ceph user has a static UID assigned by Fedora and Debian (also used
- by derivative distributions like RHEL/CentOS and Ubuntu). On SUSE
- the ceph user will currently get a dynamically assigned UID when the
- user is created.
-
- If your systems already have a ceph user, upgrading the package will cause
- problems. We suggest you first remove or rename the existing 'ceph' user
- and 'ceph' group before upgrading.
-
- When upgrading, administrators have two options:
-
- #. Add the following line to ``ceph.conf`` on all hosts::
-
- setuser match path = /var/lib/ceph/$type/$cluster-$id
-
- This will make the Ceph daemons run as root (i.e., not drop
- privileges and switch to user ceph) if the daemon's data
- directory is still owned by root. Newly deployed daemons will
- be created with data owned by user ceph and will run with
- reduced privileges, but upgraded daemons will continue to run as
- root.
-
- #. Fix the data ownership during the upgrade. This is the
- preferred option, but it is more work and can be very time
- consuming. The process for each host is to:
-
- #. Upgrade the ceph package. This creates the ceph user and group. For
- example::
-
- ceph-deploy install --stable infernalis HOST
-
- #. Stop the daemon(s)::
-
- service ceph stop # fedora, centos, rhel, debian
- stop ceph-all # ubuntu
-
- #. Fix the ownership::
-
- chown -R ceph:ceph /var/lib/ceph
- chown -R ceph:ceph /var/log/ceph
-
- #. Restart the daemon(s)::
-
- start ceph-all # ubuntu
- systemctl start ceph.target # debian, centos, fedora, rhel
-
- Alternatively, the same process can be done with a single daemon
- type, for example by stopping only monitors and chowning only
- ``/var/lib/ceph/mon``.
-
-* The on-disk format for the experimental KeyValueStore OSD backend has
- changed. You will need to remove any OSDs using that backend before you
- upgrade any test clusters that use it.
-
-* When a pool quota is reached, librados operations now block indefinitely,
- the same way they do when the cluster fills up. (Previously they would return
- -ENOSPC). By default, a full cluster or pool will now block. If your
- librados application can handle ENOSPC or EDQUOT errors gracefully, you can
- get error returns instead by using the new librados OPERATION_FULL_TRY flag.
-
-* The return code for librbd's rbd_aio_read and Image::aio_read API methods no
- longer returns the number of bytes read upon success. Instead, it returns 0
- upon success and a negative value upon failure.
-
-* 'ceph scrub', 'ceph compact' and 'ceph sync force are now DEPRECATED. Users
- should instead use 'ceph mon scrub', 'ceph mon compact' and
- 'ceph mon sync force'.
-
-* 'ceph mon_metadata' should now be used as 'ceph mon metadata'. There is no
- need to deprecate this command (same major release since it was first
- introduced).
-
-* The `--dump-json` option of "osdmaptool" is replaced by `--dump json`.
-
-* The commands of "pg ls-by-{pool,primary,osd}" and "pg ls" now take "recovering"
- instead of "recovery", to include the recovering pgs in the listed pgs.
-
-Notable Changes since Hammer
-----------------------------
-
-* aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
-* auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
-* auth: reinit NSS after fork() (#11128 Yan, Zheng)
-* autotools: fix out of tree build (Krxysztof Kosinski)
-* autotools: improve make check output (Loic Dachary)
-* buffer: add invalidate_crc() (Piotr Dalek)
-* buffer: fix zero bug (#12252 Haomai Wang)
-* buffer: some cleanup (Michal Jarzabek)
-* build: allow tcmalloc-minimal (Thorsten Behrens)
-* build: C++11 now supported
-* build: cmake: fix nss linking (Danny Al-Gaaf)
-* build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
-* build: disable LTTNG by default (#11333 Josh Durgin)
-* build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
-* build: fix junit detection on Fedora 22 (Ira Cooper)
-* build: fix pg ref disabling (William A. Kennington III)
-* build: fix ppc build (James Page)
-* build: install-deps: misc fixes (Loic Dachary)
-* build: install-deps.sh improvements (Loic Dachary)
-* build: install-deps: support OpenSUSE (Loic Dachary)
-* build: make_dist_tarball.sh (Sage Weil)
-* build: many cmake improvements
-* build: misc cmake fixes (Matt Benjamin)
-* build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
-* build: OSX build fixes (Yan, Zheng)
-* build: remove rest-bench
-* ceph-authtool: fix return code on error (Gerhard Muntingh)
-* ceph-detect-init: added Linux Mint (Michal Jarzabek)
-* ceph-detect-init: robust init system detection (Owen Synge)
-* ceph-disk: ensure 'zap' only operates on a full disk (#11272 Loic Dachary)
-* ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
-* ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
-* ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
-* ceph-disk: improve parted output parsing (#10983 Loic Dachary)
-* ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
-* ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
-* ceph-disk: many fixes (Loic Dachary, Alfredo Deza)
-* ceph-disk: fixes to respect init system (Loic Dachary, Owen Synge)
-* ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
-* ceph-disk: support for multipath devices (Loic Dachary)
-* ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
-* ceph: fix 'df' units (Zhe Zhang)
-* ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
-* cephfs-data-scan: many additions, improvements (John Spray)
-* ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
-* ceph-fuse, libcephfs: don't clear COMPLETE when trimming null (Yan, Zheng)
-* ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
-* ceph-fuse,libcephfs: fix uninline (#11356 Yan, Zheng)
-* ceph-fuse, libcephfs: hold exclusive caps on dirs we "own" (#11226 Greg Farnum)
-* ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
-* ceph: improve error output for 'tell' (#11101 Kefu Chai)
-* ceph-monstore-tool: fix store-copy (Huangjun)
-* ceph: new 'ceph daemonperf' command (John Spray, Mykola Golub)
-* ceph-objectstore-tool: many many improvements (David Zafman)
-* ceph-objectstore-tool: refactoring and cleanup (John Spray)
-* ceph-post-file: misc fixes (Joey McDonald, Sage Weil)
-* ceph_test_rados: test pipelined reads (Zhiqiang Wang)
-* client: avoid sending unnecessary FLUSHSNAP messages (Yan, Zheng)
-* client: exclude setfilelock when calculating oldest tid (Yan, Zheng)
-* client: fix error handling in check_pool_perm (John Spray)
-* client: fsync waits only for inode's caps to flush (Yan, Zheng)
-* client: invalidate kernel dcache when cache size exceeds limits (Yan, Zheng)
-* client: make fsync wait for unsafe dir operations (Yan, Zheng)
-* client: pin lookup dentry to avoid inode being freed (Yan, Zheng)
-* common: add descriptions to perfcounters (Kiseleva Alyona)
-* common: add perf counter descriptions (Alyona Kiseleva)
-* common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
-* common: detect overflow of int config values (#11484 Kefu Chai)
-* common: fix bit_vector extent calc (#12611 Jason Dillaman)
-* common: fix json parsing of utf8 (#7387 Tim Serong)
-* common: fix leak of pthread_mutexattr (#11762 Ketor Meng)
-* common: fix LTTNG vs fork issue (Josh Durgin)
-* common: fix throttle max change (Henry Chang)
-* common: make mutex more efficient
-* common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
-* common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
-* common: PriorityQueue tests (Kefu Chai)
-* common: some async compression infrastructure (Haomai Wang)
-* crush: add --check to validate dangling names, max osd id (Kefu Chai)
-* crush: cleanup, sync with kernel (Ilya Dryomov)
-* crush: fix crash from invalid 'take' argument (#11602 Shiva Rkreddy, Sage Weil)
-* crush: fix divide-by-2 in straw2 (#11357 Yann Dupont, Sage Weil)
-* crush: fix has_v4_buckets (#11364 Sage Weil)
-* crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
-* crush: respect default replicated ruleset config on map creation (Ilya Dryomov)
-* crushtool: fix order of operations, usage (Sage Weil)
-* crypto: fix NSS leak (Jason Dillaman)
-* crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
-* deb: fix rest-bench-dbg and ceph-test-dbg dependendies (Ken Dreyer)
-* debian: minor package reorg (Ken Dreyer)
-* deb, rpm: move ceph-objectstore-tool to ceph (Ken Dreyer)
-* doc: docuemnt object corpus generation (#11099 Alexis Normand)
-* doc: document region hostnames (Robin H. Johnson)
-* doc: fix gender neutrality (Alexandre Maragone)
-* doc: fix install doc (#10957 Kefu Chai)
-* doc: fix sphinx issues (Kefu Chai)
-* doc: man page updates (Kefu Chai)
-* doc: mds data structure docs (Yan, Zheng)
-* doc: misc updates (Fracois Lafont, Ken Dreyer, Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao, Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
-* doc: swift tempurls (#10184 Abhishek Lekshmanan)
-* doc: switch doxygen integration back to breathe (#6115 Kefu Chai)
-* doc: update release schedule docs (Loic Dachary)
-* erasure-code: cleanup (Kefu Chai)
-* erasure-code: improve tests (Loic Dachary)
-* erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
-* erasure-code: update ISA-L to 2.13 (Yuan Zhou)
-* gmock: switch to submodule (Danny Al-Gaaf, Loic Dachary)
-* hadoop: add terasort test (Noah Watkins)
-* init-radosgw: merge with sysv version; fix enumeration (Sage Weil)
-* java: fix libcephfs bindings (Noah Watkins)
-* libcephfs: add pread, pwrite (Jevon Qiao)
-* libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
-* libcephfs,ceph-fuse: fix request resend on cap reconnect (#10912 Yan, Zheng)
-* librados: add config observer (Alistair Strachan)
-* librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
-* librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
-* librados: define C++ flags from C constants (Josh Durgin)
-* librados: fadvise flags per op (Jianpeng Ma)
-* librados: fix last_force_resent handling (#11026 Jianpeng Ma)
-* librados: fix memory leak from C_TwoContexts (Xiong Yiliang)
-* librados: fix notify completion race (#13114 Sage Weil)
-* librados: fix striper when stripe_count = 1 and stripe_unit != object_size (#11120 Yan, Zheng)
-* librados, libcephfs: randomize client nonces (Josh Durgin)
-* librados: op perf counters (John Spray)
-* librados: pybind: fix binary omap values (Robin H. Johnson)
-* librados: pybind: fix write() method return code (Javier Guerra)
-* librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
-* libradosstriper: fix leak (Danny Al-Gaaf)
-* librbd: add const for single-client-only features (Josh Durgin)
-* librbd: add deep-flatten operation (Jason Dillaman)
-* librbd: add purge_on_error cache behavior (Jianpeng Ma)
-* librbd: allow additional metadata to be stored with the image (Haomai Wang)
-* librbd: avoid blocking aio API methods (#11056 Jason Dillaman)
-* librbd: better handling for dup flatten requests (#11370 Jason Dillaman)
-* librbd: cancel in-flight ops on watch error (#11363 Jason Dillaman)
-* librbd: default new images to format 2 (#11348 Jason Dillaman)
-* librbd: fadvise for copy, export, import (Jianpeng Ma)
-* librbd: fast diff implementation that leverages object map (Jason Dillaman)
-* librbd: fix fast diff bugs (#11553 Jason Dillaman)
-* librbd: fix image format detection (Zhiqiang Wang)
-* librbd: fix lock ordering issue (#11577 Jason Dillaman)
-* librbd: fix reads larger than the cache size (Lu Shi)
-* librbd: fix snapshot creation when other snap is active (#11475 Jason Dillaman)
-* librbd: flatten/copyup fixes (Jason Dillaman)
-* librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
-* librbd: lockdep, helgrind validation (Jason Dillaman, Josh Durgin)
-* librbd: metadata filter fixes (Haomai Wang)
-* librbd: misc aio fixes (#5488 Jason Dillaman)
-* librbd: misc rbd fixes (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
-* librbd: new diff_iterate2 API (Jason Dillaman)
-* librbd: object map rebuild support (Jason Dillaman)
-* librbd: only update image flags while hold exclusive lock (#11791 Jason Dillaman)
-* librbd: optionally disable allocation hint (Haomai Wang)
-* librbd: prevent race between resize requests (#12664 Jason Dillaman)
-* librbd: readahead fixes (Zhiqiang Wang)
-* librbd: return result code from close (#12069 Jason Dillaman)
-* librbd: store metadata, including config options, in image (Haomai Wang)
-* librbd: tolerate old osds when getting image metadata (#11549 Jason Dillaman)
-* librbd: use write_full when possible (Zhiqiang Wang)
-* log: fix data corruption race resulting from log rotation (#12465 Samuel Just)
-* logrotate.d: prefer service over invoke-rc.d (#11330 Win Hierman, Sage Weil)
-* mds: add 'damaged' state to MDSMap (John Spray)
-* mds: add nicknames for perfcounters (John Spray)
-* mds: avoid emitting cap warnigns before evicting session (John Spray)
-* mds: avoid getting stuck in XLOCKDONE (#11254 Yan, Zheng)
-* mds: disable problematic rstat propagation into snap parents (Yan, Zheng)
-* mds: do not add snapped items to bloom filter (Yan, Zheng)
-* mds: expose frags via asok (John Spray)
-* mds: fix expected holes in journal objects (#13167 Yan, Zheng)
-* mds: fix handling for missing mydir dirfrag (#11641 John Spray)
-* mds: fix integer truncateion on large client ids (Henry Chang)
-* mds: fix mydir replica issue with shutdown (#10743 John Spray)
-* mds: fix out-of-order messages (#11258 Yan, Zheng)
-* mds: fix rejoin (Yan, Zheng)
-* mds: fix setting entire file layout in one setxattr (John Spray)
-* mds: fix shutdown (John Spray)
-* mds: fix shutdown with strays (#10744 John Spray)
-* mds: fix SnapServer crash on deleted pool (John Spray)
-* mds: fix snapshot bugs (Yan, Zheng)
-* mds: fix stray reintegration (Yan, Zheng)
-* mds: fix stray handling (John Spray)
-* mds: fix suicide beacon (John Spray)
-* mds: flush immediately in do_open_truncate (#11011 John Spray)
-* mds: handle misc corruption issues (John Spray)
-* mds: improve dump methods (John Spray)
-* mds: many fixes (Yan, Zheng, John Spray, Greg Farnum)
-* mds: many snapshot and stray fixes (Yan, Zheng)
-* mds: misc fixes (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
-* mds: misc journal cleanups and fixes (#10368 John Spray)
-* mds: misc repair improvements (John Spray)
-* mds: misc snap fixes (Zheng Yan)
-* mds: misc snapshot fixes (Yan, Zheng)
-* mds: new SessionMap storage using omap (#10649 John Spray)
-* mds: persist completed_requests reliably (#11048 John Spray)
-* mds: reduce memory consumption (Yan, Zheng)
-* mds: respawn instead of suicide on blacklist (John Spray)
-* mds: separate safe_pos in Journaler (#10368 John Spray)
-* mds: snapshot rename support (#3645 Yan, Zheng)
-* mds: store layout on header object (#4161 John Spray)
-* mds: throttle purge stray operations (#10390 John Spray)
-* mds: tolerate clock jumping backwards (#11053 Yan, Zheng)
-* mds: warn when clients fail to advance oldest_client_tid (#10657 Yan, Zheng)
-* misc cleanups and fixes (Danny Al-Gaaf)
-* misc coverity fixes (Danny Al-Gaaf)
-* misc performance and cleanup (Nathan Cutler, Xinxin Shu)
-* mon: add cache over MonitorDBStore (Kefu Chai)
-* mon: add 'mon_metadata <id>' command (Kefu Chai)
-* mon: add 'node ls ...' command (Kefu Chai)
-* mon: add NOFORWARD, OBSOLETE, DEPRECATE flags for mon commands (Joao Eduardo Luis)
-* mon: add PG count to 'ceph osd df' output (Michal Jarzabek)
-* mon: 'ceph osd metadata' can dump all osds (Haomai Wang)
-* mon: clean up, reorg some mon commands (Joao Eduardo Luis)
-* monclient: flush_log (John Spray)
-* mon: detect kv backend failures (Sage Weil)
-* mon: disallow >2 tiers (#11840 Kefu Chai)
-* mon: disallow ec pools as tiers (#11650 Samuel Just)
-* mon: do not deactivate last mds (#10862 John Spray)
-* mon: fix average utilization calc for 'osd df' (Mykola Golub)
-* mon: fix CRUSH map test for new pools (Sage Weil)
-* mon: fix log dump crash when debugging (Mykola Golub)
-* mon: fix mds beacon replies (#11590 Kefu Chai)
-* mon: fix metadata update race (Mykola Golub)
-* mon: fix min_last_epoch_clean tracking (Kefu Chai)
-* mon: fix 'pg ls' sort order, state names (#11569 Kefu Chai)
-* mon: fix refresh (#11470 Joao Eduardo Luis)
-* mon: fix variance calc in 'osd df' (Sage Weil)
-* mon: improve callout to crushtool (Mykola Golub)
-* mon: make blocked op messages more readable (Jianpeng Ma)
-* mon: make osd get pool 'all' only return applicable fields (#10891 Michal Jarzabek)
-* mon: misc scaling fixes (Sage Weil)
-* mon: normalize erasure-code profile for storage and comparison (Loic Dachary)
-* mon: only send mon metadata to supporting peers (Sage Weil)
-* mon: optionally specify osd id on 'osd create' (Mykola Golub)
-* mon: 'osd tree' fixes (Kefu Chai)
-* mon: periodic background scrub (Joao Eduardo Luis)
-* mon: prevent bucket deletion when referenced by a crush rule (#11602 Sage Weil)
-* mon: prevent pgp_num > pg_num (#12025 Xinxin Shu)
-* mon: prevent pool with snapshot state from being used as a tier (#11493 Sage Weil)
-* mon: prime pg_temp when CRUSH map changes (Sage Weil)
-* mon: refine check_remove_tier checks (#11504 John Spray)
-* mon: reject large max_mds values (#12222 John Spray)
-* mon: remove spurious who arg from 'mds rm ...' (John Spray)
-* mon: streamline session handling, fix memory leaks (Sage Weil)
-* mon: upgrades must pass through hammer (Sage Weil)
-* mon: warn on bogus cache tier config (Jianpeng Ma)
-* msgr: add ceph_perf_msgr tool (Hoamai Wang)
-* msgr: async: fix seq handling (Haomai Wang)
-* msgr: async: many many fixes (Haomai Wang)
-* msgr: simple: fix clear_pipe (#11381 Haomai Wang)
-* msgr: simple: fix connect_seq assert (Haomai Wang)
-* msgr: xio: fastpath improvements (Raju Kurunkad)
-* msgr: xio: fix ip and nonce (Raju Kurunkad)
-* msgr: xio: improve lane assignment (Vu Pham)
-* msgr: xio: sync with accellio v1.4 (Vu Pham)
-* msgr: xio: misc fixes (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham, Casey Bodley)
-* msg: unit tests (Haomai Wang)
-* objectcacher: misc bug fixes (Jianpeng Ma)
-* osd: add latency perf counters for tier operations (Xinze Chi)
-* osd: add misc perfcounters (Xinze Chi)
-* osd: add simple sleep injection in recovery (Sage Weil)
-* osd: allow SEEK_HOLE/SEEK_DATA for sparse read (Zhiqiang Wang)
-* osd: avoid dup omap sets for in pg metadata (Sage Weil)
-* osd: avoid multiple hit set insertions (Zhiqiang Wang)
-* osd: avoid transaction append in some cases (Sage Weil)
-* osd: break PG removal into multiple iterations (#10198 Guang Yang)
-* osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
-* osd: check scrub state when handling map (Jianpeng Ma)
-* osd: clean up some constness, privateness (Kefu Chai)
-* osd: clean up temp object if promotion fails (Jianpeng Ma)
-* osd: configure promotion based on write recency (Zhiqiang Wang)
-* osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
-* osd: don't send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
-* osd: EIO injection (David Zhang)
-* osd: elminiate txn apend, ECSubWrite copy (Samuel Just)
-* osd: erasure-code: drop entries according to LRU (Andreas-Joachim Peters)
-* osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
-* osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
-* osd: filejournal: cleanup (David Zafman)
-* osd: filestore: clone using splice (Jianpeng Ma)
-* osd: filestore: fix recursive lock (Xinxin Shu)
-* osd: fix check_for_full (Henry Chang)
-* osd: fix dirty accounting in make_writeable (Zhiqiang Wang)
-* osd: fix dup promotion lost op bug (Zhiqiang Wang)
-* osd: fix endless repair when object is unrecoverable (Jianpeng Ma, Kefu Chai)
-* osd: fix hitset object naming to use GMT (Kefu Chai)
-* osd: fix misc memory leaks (Sage Weil)
-* osd: fix negative degraded stats during backfill (Guang Yang)
-* osd: fix osdmap dump of blacklist items (John Spray)
-* osd: fix peek_queue locking in FileStore (Xinze Chi)
-* osd: fix pg resurrection (#11429 Samuel Just)
-* osd: fix promotion vs full cache tier (Samuel Just)
-* osd: fix replay requeue when pg is still activating (#13116 Samuel Just)
-* osd: fix scrub stat bugs (Sage Weil, Samuel Just)
-* osd: fix snap flushing from cache tier (again) (#11787 Samuel Just)
-* osd: fix snap handling on promotion (#11296 Sam Just)
-* osd: fix temp-clearing (David Zafman)
-* osd: force promotion for ops EC can't handle (Zhiqiang Wang)
-* osd: handle log split with overlapping entries (#11358 Samuel Just)
-* osd: ignore non-existent osds in unfound calc (#10976 Mykola Golub)
-* osd: improve behavior on machines with large memory pages (Steve Capper)
-* osd: include a temp namespace within each collection/pgid (Sage Weil)
-* osd: increase default max open files (Owen Synge)
-* osd: keyvaluestore: misc fixes (Varada Kari)
-* osd: low and high speed flush modes (Mingxin Liu)
-* osd: make suicide timeouts individually configurable (Samuel Just)
-* osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
-* osd: misc fixes (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
-* osd: move scrub in OpWQ (Samuel Just)
-* osd: newstore prototype (Sage Weil)
-* osd: ObjectStore internal API refactor (Sage Weil)
-* osd: peer_features includes self (David Zafman)
-* osd: pool size change triggers new interval (#11771 Samuel Just)
-* osd: prepopulate needs_recovery_map when only one peer has missing (#9558 Guang Yang)
-* osd: randomize scrub times (#10973 Kefu Chai)
-* osd: recovery, peering fixes (#11687 Samuel Just)
-* osd: refactor scrub and digest recording (Sage Weil)
-* osd: refuse first write to EC object at non-zero offset (Jianpeng Ma)
-* osd: relax reply order on proxy read (#11211 Zhiqiang Wang)
-* osd: require firefly features (David Zafman)
-* osd: set initial crush weight with more precision (Sage Weil)
-* osd: SHEC no longer experimental
-* osd: skip promotion for flush/evict op (Zhiqiang Wang)
-* osd: stripe over small xattrs to fit in XFS's 255 byte inline limit (Sage Weil, Ning Yao)
-* osd: sync object_map on syncfs (Samuel Just)
-* osd: take excl lock of op is rw (Samuel Just)
-* osd: throttle evict ops (Yunchuan Wen)
-* osd: upgrades must pass through hammer (Sage Weil)
-* osd: use a temp object for recovery (Sage Weil)
-* osd: use blkid to collection partition information (Joseph Handzik)
-* osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
-* osd: WBThrottle cleanups (Jianpeng Ma)
-* osd: write journal header on clean shutdown (Xinze Chi)
-* osdc/Objecter: allow per-pool calls to op_cancel_writes (John Spray)
-* os/filestore: enlarge getxattr buffer size (Jianpeng Ma)
-* pybind: pep8 cleanups (Danny Al-Gaaf)
-* pycephfs: many fixes for bindings (Haomai Wang)
-* qa: fix filelock_interrupt.py test (Yan, Zheng)
-* qa: improve ceph-disk tests (Loic Dachary)
-* qa: improve docker build layers (Loic Dachary)
-* qa: run-make-check.sh script (Loic Dachary)
-* rados: add --striper option to use libradosstriper (#10759 Sebastien Ponce)
-* rados: bench: add --no-verify option to improve performance (Piotr Dalek)
-* rados bench: misc fixes (Dmitry Yatsushkevich)
-* rados: fix error message on failed pool removal (Wido den Hollander)
-* radosgw-admin: add 'bucket check' function to repair bucket index (Yehuda Sadeh)
-* radosgw-admin: fix subuser modify output (#12286 Guce)
-* rados: handle --snapid arg properly (Abhishek Lekshmanan)
-* rados: improve bench buffer handling, performance (Piotr Dalek)
-* rados: misc bench fixes (Dmitry Yatsushkevich)
-* rados: new pool import implementation (John Spray)
-* rados: translate errno to string in CLI (#10877 Kefu Chai)
-* rbd: accept map options config option (Ilya Dryomov)
-* rbd: add disk usage tool (#7746 Jason Dillaman)
-* rbd: allow unmapping by spec (Ilya Dryomov)
-* rbd: cli: fix arg parsing with --io-pattern (Dmitry Yatsushkevich)
-* rbd: deprecate --new-format option (Jason Dillman)
-* rbd: fix error messages (#2862 Rajesh Nambiar)
-* rbd: fix link issues (Jason Dillaman)
-* rbd: improve CLI arg parsing, usage (Ilya Dryomov)
-* rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
-* rbd: recognize queue_depth kernel option (Ilya Dryomov)
-* rbd: support G and T units for CLI (Abhishek Lekshmanan)
-* rbd: update rbd man page (Ilya Dryomov)
-* rbd: update xfstests tests (Douglas Fuller)
-* rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
-* rest-bench: misc fixes (Shawn Chen)
-* rest-bench: support https (#3968 Yuan Zhou)
-* rgw: add max multipart upload parts (#12146 Abshishek Dixit)
-* rgw: add missing headers to Swift container details (#10666 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: add stats to headers for account GET (#10684 Yuan Zhou)
-* rgw: add Trasnaction-Id to response (Abhishek Dixit)
-* rgw: add X-Timestamp for Swift containers (#10938 Radoslaw Zarzynski)
-* rgw: always check if token is expired (#11367 Anton Aksola, Riku Lehto)
-* rgw: conversion tool to repair broken multipart objects (#12079 Yehuda Sadeh)
-* rgw: document layout of pools and objects (Pete Zaitcev)
-* rgw: do not enclose bucket header in quotes (#11860 Wido den Hollander)
-* rgw: do not prefetch data for HEAD requests (Guang Yang)
-* rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
-* rgw: do not set content-type if length is 0 (#11091 Orit Wasserman)
-* rgw: don't clobber bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: don't use end_marker for namespaced object listing (#11437 Yehuda Sadeh)
-* rgw: don't use rgw_socket_path if frontend is configured (#11160 Yehuda Sadeh)
-* rgw: enforce Content-Length for POST on Swift cont/obj (#10661 Radoslaw Zarzynski)
-* rgw: error out if frontend did not send all data (#11851 Yehuda Sadeh)
-* rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
-* rgw: fail if parts not specified on multipart upload (#11435 Yehuda Sadeh)
-* rgw: fix assignment of copy obj attributes (#11563 Yehuda Sadeh)
-* rgw: fix broken stats in container listing (#11285 Radoslaw Zarzynski)
-* rgw: fix bug in domain/subdomain splitting (Robin H. Johnson)
-* rgw: fix casing of Content-Type header (Robin H. Johnson)
-* rgw: fix civetweb max threads (#10243 Yehuda Sadeh)
-* rgw: fix Connection: header handling (#12298 Wido den Hollander)
-* rgw: fix copy metadata, support X-Copied-From for swift (#10663 Radoslaw Zarzynski)
-* rgw: fix data corruptions race condition (#11749 Wuxingyi)
-* rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
-* rgw: fix GET on swift account when limit == 0 (#10683 Radoslaw Zarzynski)
-* rgw: fix handling empty metadata items on Swift container (#11088 Radoslaw Zarzynski)
-* rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
-* rgw: fix locator for objects starting with _ (#11442 Yehuda Sadeh)
-* rgw: fix log rotation (Wuxingyi)
-* rgw: fix mulitipart upload in retry path (#11604 Yehuda Sadeh)
-* rgw: fix quota enforcement on POST (#11323 Sergey Arkhipov)
-* rgw: fix reset_loc (#11974 Yehuda Sadeh)
-* rgw: fix return code on missing upload (#11436 Yehuda Sadeh)
-* rgw: fix sysvinit script
-* rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
-* rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
-* rgw: force content type header on responses with no body (#11438 Orit Wasserman)
-* rgw: generate Date header for civetweb (#10873 Radoslaw Zarzynski)
-* rgw: generate new object tag when setting attrs (#11256 Yehuda Sadeh)
-* rgw: improve content-length env var handling (#11419 Robin H. Johnson)
-* rgw: improved support for swift account metadata (Radoslaw Zarzynski)
-* rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
-* rgw: issue aio for first chunk before flush cached data (#11322 Guang Yang)
-* rgw: log to /var/log/ceph instead of /var/log/radosgw
-* rgw: make init script wait for radosgw to stop (#11140 Dmitry Yatsushkevich)
-* rgw: make max put size configurable (#6999 Yuan Zhou)
-* rgw: make quota/gc threads configurable (#11047 Guang Yang)
-* rgw: make read user buckets backward compat (#10683 Radoslaw Zarzynski)
-* rgw: merge manifests properly with prefix override (#11622 Yehuda Sadeh)
-* rgw: only scan for objects not in a namespace (#11984 Yehuda Sadeh)
-* rgw: orphan detection tool (Yehuda Sadeh)
-* rgw: pass in civetweb configurables (#10907 Yehuda Sadeh)
-* rgw: rectify 202 Accepted in PUT response (#11148 Radoslaw Zarzynski)
-* rgw: remove meta file after deleting bucket (#11149 Orit Wasserman)
-* rgw: remove trailing :port from HTTP_HOST header (Sage Weil)
-* rgw: return 412 on bad limit when listing buckets (#11613 Yehuda Sadeh)
-* rgw: rework X-Trans-Id header to conform with Swift API (Radoslaw Rzarzynski)
-* rgw: s3 encoding-type for get bucket (Jeff Weber)
-* rgw: send ETag, Last-Modified for swift (#11087 Radoslaw Zarzynski)
-* rgw: set content length on container GET, PUT, DELETE, HEAD (#10971, #11036 Radoslaw Zarzynski)
-* rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
-* rgw: shard work over multiple librados instances (Pavan Rallabhandi)
-* rgw: support end marker on swift container GET (#10682 Radoslaw Zarzynski)
-* rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
-* rgw: swift: allow setting attributes with COPY (#10662 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: swift: do not override sent content type (#12363 Orit Wasserman)
-* rgw: swift: enforce Content-Type in response (#12157 Radoslaw Zarzynski)
-* rgw: swift: fix account listing (#11501 Radoslaw Zarzynski)
-* rgw: swift: fix metadata handling on copy (#10645 Radoslaw Zarzynski)
-* rgw: swift: send Last-Modified header (#10650 Radoslaw Zarzynski)
-* rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
-* rgw: swift: set content-length on keystone tokens (#11473 Herv Rousseau)
-* rgw: update keystone cache with token info (#11125 Yehuda Sadeh)
-* rgw: update to latest civetweb, enable config for IPv6 (#10965 Yehuda Sadeh)
-* rgw: use attrs from source bucket on copy (#11639 Javier M. Mellid)
-* rgw: use correct oid for gc chains (#11447 Yehuda Sadeh)
-* rgw: user rm is idempotent (Orit Wasserman)
-* rgw: use unique request id for civetweb (#10295 Orit Wasserman)
-* rocksdb: add perf counters for get/put latency (Xinxin Shu)
-* rocksdb, leveldb: fix compact_on_mount (Xiaoxi Chen)
-* rocksdb: pass options as single string (Xiaoxi Chen)
-* rocksdb: update to latest (Xiaoxi Chen)
-* rpm: add suse firewall files (Tim Serong)
-* rpm: always rebuild and install man pages for rpm (Owen Synge)
-* rpm: loosen ceph-test dependencies (Ken Dreyer)
-* rpm: many spec file fixes (Owen Synge, Ken Dreyer)
-* rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
-* rpm: misc systemd and SUSE fixes (Owen Synge, Nathan Cutler)
-* selinux policy (Boris Ranto, Milan Broz)
-* systemd: logrotate fixes (Tim Serong, Lars Marowsky-Bree, Nathan Cutler)
-* systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
-* systemd: run daemons as user ceph
-* sysvinit compat: misc fixes (Owen Synge)
-* test: misc fs test improvements (John Spray, Loic Dachary)
-* test: python tests, linter cleanup (Alfredo Deza)
-* tests: fixes for rbd xstests (Douglas Fuller)
-* tests: fix tiering health checks (Loic Dachary)
-* tests for low-level performance (Haomai Wang)
-* tests: many ec non-regression improvements (Loic Dachary)
-* tests: many many ec test improvements (Loic Dachary)
-* upstart: throttle restarts (#11798 Sage Weil, Greg Farnum)
-
-
-v9.1.0 Infernalis release candidate
-===================================
-
-This is the first Infernalis release candidate. There have been some
-major changes since Hammer, and the upgrade process is non-trivial.
-Please read carefully.
-
-Getting the release candidate
------------------------------
-
-The v9.1.0 packages are pushed to the development release repositories::
-
- http://download.ceph.com/rpm-testing
- http://download.ceph.com/debian-testing
-
-For for info, see::
-
- http://docs.ceph.com/docs/master/install/get-packages/
-
-Or install with ceph-deploy via::
-
- ceph-deploy install --testing HOST
-
-
-Known issues
-------------
-
-* librbd and librados ABI compatibility is broken. Be careful
- installing this RC on client machines (e.g., those running qemu).
- It will be fixed in the final v9.2.0 release.
-
-
-Major Changes from Hammer
--------------------------
-
-- *General*:
-
- * Ceph daemons are now managed via systemd (with the exception of
- Ubuntu Trusty, which still uses upstart).
- * Ceph daemons run as 'ceph' user instead of root.
- * On Red Hat distros, there is also an SELinux policy.
-
-- *RADOS*:
-
- * The RADOS cache tier can now proxy write operations to the base
- tier, allowing writes to be handled without forcing migration of
- an object into the cache.
- * The SHEC erasure coding support is no longer flagged as
- experimental. SHEC trades some additional storage space for faster
- repair.
- * There is now a unified queue (and thus prioritization) of client
- IO, scrubbing, and snapshot trimming.
- * There have been many improvements to low-level repair tooling
- (ceph-objectstore-tool).
- * The internal ObjectStore API has been significantly cleaned up in order
- to faciliate new storage backends like NewStore.
-
-- *RGW*:
-
- * The Swift API now supports object expiration.
- * There are many Swift API compatibility improvements.
-
-- *RBD*:
-
- * The ``rbd du`` command shows actual usage (quickly, when
- object-map is enabled).
- * The object-map feature has seen many stability improvements.
- * Object-map and exclusive-lock features can be enabled or disabled
- dynamically.
- * You can now store user metadata and set persistent librbd options
- associated with individual images.
- * The new deep-flatten features allows flattening of a clone and all
- of its snapshots. (Previously snapshots could not be flattened.)
- * The export-diff command command is now faster (it uses aio). There is also
- a new fast-diff feature.
- * The --size argument can be specified with a suffix for units
- (e.g., ``--size 64G``).
- * There is a new ``rbd status`` command that, for now, shows who has
- the image open/mapped.
-
-- *CephFS*:
-
- * You can now rename snapshots.
- * There have been ongoing improvements around administration, diagnostics,
- and the check and repair tools.
- * The caching and revocation of client cache state due to unused
- inodes has been dramatically improved.
- * The ceph-fuse client behaves better on 32-bit hosts.
-
-Distro compatibility
---------------------
-
-We have decided to drop support for many older distributions so that we can
-move to a newer compiler toolchain (e.g., C++11). Although it is still possible
-to build Ceph on older distributions by installing backported development tools,
-we are not building and publishing release packages for them on ceph.com.
-
-In particular,
-
-* CentOS 7 or later; we have dropped support for CentOS 6 (and other
- RHEL 6 derivatives, like Scientific Linux 6).
-* Debian Jessie 8.x or later; Debian Wheezy 7.x's g++ has incomplete
- support for C++11 (and no systemd).
-* Ubuntu Trusty 14.04 or later; Ubuntu Precise 12.04 is no longer
- supported.
-* Fedora 22 or later.
-
-Upgrading from Firefly
-----------------------
-
-Upgrading directly from Firefly v0.80.z is not possible. All clusters
-must first upgrade to Hammer v0.94.4 or a later v0.94.z release; only
-then is it possible to do online upgrade to Infernalis 9.2.z.
-
-User can upgrade to latest hammer v0.94.z
-from gitbuilder with(also refer the hammer release notes for more details)::
-
- ceph-deploy install --release hammer HOST
-
-
-Upgrading from Hammer
----------------------
-
-* All cluster nodes must first upgrade to Hammer v0.94.4 or a later v0.94.z release; only
- then is it possible to do online upgrade to Infernalis 9.2.z.
-
-* For all distributions that support systemd (CentOS 7, Fedora, Debian
- Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd
- files instead of the legacy sysvinit scripts. For example::
-
- systemctl start ceph.target # start all daemons
- systemctl status ceph-osd@12 # check status of osd.12
-
- The main notable distro that is *not* yet using systemd is Ubuntu trusty
- 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
-
-* Ceph daemons now run as user and group ``ceph`` by default. The
- ceph user has a static UID assigned by Fedora and Debian (also used
- by derivative distributions like RHEL/CentOS and Ubuntu). On SUSE
- the ceph user will currently get a dynamically assigned UID when the
- user is created.
-
- If your systems already have a ceph user, the package upgrade
- process will usually fail with an error. We suggest you first
- remove or rename the existing 'ceph' user and then upgrade.
-
- When upgrading, administrators have two options:
-
- #. Add the following line to ``ceph.conf`` on all hosts::
-
- setuser match path = /var/lib/ceph/$type/$cluster-$id
-
- This will make the Ceph daemons run as root (i.e., not drop
- privileges and switch to user ceph) if the daemon's data
- directory is still owned by root. Newly deployed daemons will
- be created with data owned by user ceph and will run with
- reduced privileges, but upgraded daemons will continue to run as
- root.
-
- #. Fix the data ownership during the upgrade. This is the preferred option,
- but is more work. The process for each host would be to:
-
- #. Upgrade the ceph package. This creates the ceph user and group. For
- example::
-
- ceph-deploy install --stable infernalis HOST
-
- #. Stop the daemon(s)::
-
- service ceph stop # fedora, centos, rhel, debian
- stop ceph-all # ubuntu
-
- #. Fix the ownership::
-
- chown -R ceph:ceph /var/lib/ceph
- chown -R ceph:ceph /var/log/ceph
-
- #. Restart the daemon(s)::
-
- start ceph-all # ubuntu
- systemctl start ceph.target # debian, centos, fedora, rhel
-
-* The on-disk format for the experimental KeyValueStore OSD backend has
- changed. You will need to remove any OSDs using that backend before you
- upgrade any test clusters that use it.
-
-Upgrade notes
--------------
-
-* When a pool quota is reached, librados operations now block indefinitely,
- the same way they do when the cluster fills up. (Previously they would return
- -ENOSPC). By default, a full cluster or pool will now block. If your
- librados application can handle ENOSPC or EDQUOT errors gracefully, you can
- get error returns instead by using the new librados OPERATION_FULL_TRY flag.
-
-Notable changes
----------------
-
-NOTE: These notes are somewhat abbreviated while we find a less
-time-consuming process for generating them.
-
-* build: C++11 now supported
-* build: many cmake improvements
-* build: OSX build fixes (Yan, Zheng)
-* build: remove rest-bench
-* ceph-disk: many fixes (Loic Dachary)
-* ceph-disk: support for multipath devices (Loic Dachary)
-* ceph-fuse: mostly behave on 32-bit hosts (Yan, Zheng)
-* ceph-objectstore-tool: many improvements (David Zafman)
-* common: bufferlist performance tuning (Piotr Dalek, Sage Weil)
-* common: make mutex more efficient
-* common: some async compression infrastructure (Haomai Wang)
-* librados: add FULL_TRY and FULL_FORCE flags for dealing with full clusters or pools (Sage Weil)
-* librados: fix notify completion race (#13114 Sage Weil)
-* librados, libcephfs: randomize client nonces (Josh Durgin)
-* librados: pybind: fix binary omap values (Robin H. Johnson)
-* librbd: fix reads larger than the cache size (Lu Shi)
-* librbd: metadata filter fixes (Haomai Wang)
-* librbd: use write_full when possible (Zhiqiang Wang)
-* mds: avoid emitting cap warnigns before evicting session (John Spray)
-* mds: fix expected holes in journal objects (#13167 Yan, Zheng)
-* mds: fix SnapServer crash on deleted pool (John Spray)
-* mds: many fixes (Yan, Zheng, John Spray, Greg Farnum)
-* mon: add cache over MonitorDBStore (Kefu Chai)
-* mon: 'ceph osd metadata' can dump all osds (Haomai Wang)
-* mon: detect kv backend failures (Sage Weil)
-* mon: fix CRUSH map test for new pools (Sage Weil)
-* mon: fix min_last_epoch_clean tracking (Kefu Chai)
-* mon: misc scaling fixes (Sage Weil)
-* mon: streamline session handling, fix memory leaks (Sage Weil)
-* mon: upgrades must pass through hammer (Sage Weil)
-* msg/async: many fixes (Haomai Wang)
-* osd: cache proxy-write support (Zhiqiang Wang, Samuel Just)
-* osd: configure promotion based on write recency (Zhiqiang Wang)
-* osd: don't send dup MMonGetOSDMap requests (Sage Weil, Kefu Chai)
-* osd: erasure-code: fix SHEC floating point bug (#12936 Loic Dachary)
-* osd: erasure-code: update to ISA-L 2.14 (Yuan Zhou)
-* osd: fix hitset object naming to use GMT (Kefu Chai)
-* osd: fix misc memory leaks (Sage Weil)
-* osd: fix peek_queue locking in FileStore (Xinze Chi)
-* osd: fix promotion vs full cache tier (Samuel Just)
-* osd: fix replay requeue when pg is still activating (#13116 Samuel Just)
-* osd: fix scrub stat bugs (Sage Weil, Samuel Just)
-* osd: force promotion for ops EC can't handle (Zhiqiang Wang)
-* osd: improve behavior on machines with large memory pages (Steve Capper)
-* osd: merge multiple setattr calls into a setattrs call (Xinxin Shu)
-* osd: newstore prototype (Sage Weil)
-* osd: ObjectStore internal API refactor (Sage Weil)
-* osd: SHEC no longer experimental
-* osd: throttle evict ops (Yunchuan Wen)
-* osd: upgrades must pass through hammer (Sage Weil)
-* osd: use SEEK_HOLE / SEEK_DATA for sparse copy (Xinxin Shu)
-* rbd: rbd-replay-prep and rbd-replay improvements (Jason Dillaman)
-* rgw: expose the number of unhealthy workers through admin socket (Guang Yang)
-* rgw: fix casing of Content-Type header (Robin H. Johnson)
-* rgw: fix decoding of X-Object-Manifest from GET on Swift DLO (Radslow Rzarzynski)
-* rgw: fix sysvinit script
-* rgw: fix sysvinit script w/ multiple instances (Sage Weil, Pavan Rallabhandi)
-* rgw: improve handling of already removed buckets in expirer (Radoslaw Rzarzynski)
-* rgw: log to /var/log/ceph instead of /var/log/radosgw
-* rgw: rework X-Trans-Id header to be conform with Swift API (Radoslaw Rzarzynski)
-* rgw: s3 encoding-type for get bucket (Jeff Weber)
-* rgw: set max buckets per user in ceph.conf (Vikhyat Umrao)
-* rgw: support for Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
-* rgw: user rm is idempotent (Orit Wasserman)
-* selinux policy (Boris Ranto, Milan Broz)
-* systemd: many fixes (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
-* systemd: run daemons as user ceph
-
-
-v9.0.3
-======
-
-This is the second to last batch of development work for the
-Infernalis cycle. The most intrusive change is an internal (non
-user-visible) change to the OSD's ObjectStore interface. Many fixes and
-improvements elsewhere across RGW, RBD, and another big pile of CephFS
-scrub/repair improvements.
-
-Upgrading
----------
-
-* The return code for librbd's rbd_aio_read and Image::aio_read API methods no
- longer returns the number of bytes read upon success. Instead, it returns 0
- upon success and a negative value upon failure.
-
-* 'ceph scrub', 'ceph compact' and 'ceph sync force' are now deprecated. Users
- should instead use 'ceph mon scrub', 'ceph mon compact' and
- 'ceph mon sync force'.
-
-* 'ceph mon_metadata' should now be used as 'ceph mon metadata'.
-
-* The `--dump-json` option of "osdmaptool" is replaced by `--dump json`.
-
-* The commands of 'pg ls-by-{pool,primary,osd}' and 'pg ls' now take 'recovering'
- instead of 'recovery' to include the recovering pgs in the listed pgs.
-
-
-Notable Changes
----------------
-
- * autotools: fix out of tree build (Krxysztof Kosinski)
- * autotools: improve make check output (Loic Dachary)
- * buffer: add invalidate_crc() (Piotr Dalek)
- * buffer: fix zero bug (#12252 Haomai Wang)
- * build: fix junit detection on Fedora 22 (Ira Cooper)
- * ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
- * cephfs-data-scan: many additions, improvements (John Spray)
- * ceph: improve error output for 'tell' (#11101 Kefu Chai)
- * ceph-objectstore-tool: misc improvements (David Zafman)
- * ceph-objectstore-tool: refactoring and cleanup (John Spray)
- * ceph_test_rados: test pipelined reads (Zhiqiang Wang)
- * common: fix bit_vector extent calc (#12611 Jason Dillaman)
- * common: make work queue addition/removal thread safe (#12662 Jason Dillaman)
- * common: optracker improvements (Zhiqiang Wang, Jianpeng Ma)
- * crush: add --check to validate dangling names, max osd id (Kefu Chai)
- * crush: cleanup, sync with kernel (Ilya Dryomov)
- * crush: fix subtree base weight on adjust_subtree_weight (#11855 Sage Weil)
- * crypo: fix NSS leak (Jason Dillaman)
- * crypto: fix unbalanced init/shutdown (#12598 Zheng Yan)
- * doc: misc updates (Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao)
- * erasure-code: cleanup (Kefu Chai)
- * erasure-code: improve tests (Loic Dachary)
- * erasure-code: shec: fix recovery bugs (Takanori Nakao, Shotaro Kawaguchi)
- * libcephfs: add pread, pwrite (Jevon Qiao)
- * libcephfs,ceph-fuse: cache cleanup (Zheng Yan)
- * librados: add src_fadvise_flags for copy-from (Jianpeng Ma)
- * librados: respect default_crush_ruleset on pool_create (#11640 Yuan Zhou)
- * librbd: fadvise for copy, export, import (Jianpeng Ma)
- * librbd: handle NOCACHE fadvise flag (Jinapeng Ma)
- * librbd: optionally disable allocation hint (Haomai Wang)
- * librbd: prevent race between resize requests (#12664 Jason Dillaman)
- * log: fix data corruption race resulting from log rotation (#12465 Samuel Just)
- * mds: expose frags via asok (John Spray)
- * mds: fix setting entire file layout in one setxattr (John Spray)
- * mds: fix shutdown (John Spray)
- * mds: handle misc corruption issues (John Spray)
- * mds: misc fixes (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
- * mds: misc snap fixes (Zheng Yan)
- * mds: store layout on header object (#4161 John Spray)
- * misc performance and cleanup (Nathan Cutler, Xinxin Shu)
- * mon: add NOFORWARD, OBSOLETE, DEPRECATE flags for mon commands (Joao Eduardo Luis)
- * mon: add PG count to 'ceph osd df' output (Michal Jarzabek)
- * mon: clean up, reorg some mon commands (Joao Eduardo Luis)
- * mon: disallow >2 tiers (#11840 Kefu Chai)
- * mon: fix log dump crash when debugging (Mykola Golub)
- * mon: fix metadata update race (Mykola Golub)
- * mon: fix refresh (#11470 Joao Eduardo Luis)
- * mon: make blocked op messages more readable (Jianpeng Ma)
- * mon: only send mon metadata to supporting peers (Sage Weil)
- * mon: periodic background scrub (Joao Eduardo Luis)
- * mon: prevent pgp_num > pg_num (#12025 Xinxin Shu)
- * mon: reject large max_mds values (#12222 John Spray)
- * msgr: add ceph_perf_msgr tool (Hoamai Wang)
- * msgr: async: fix seq handling (Haomai Wang)
- * msgr: xio: fastpath improvements (Raju Kurunkad)
- * msgr: xio: sync with accellio v1.4 (Vu Pham)
- * osd: clean up temp object if promotion fails (Jianpeng Ma)
- * osd: constrain collections to meta and PGs (normal and temp) (Sage Weil)
- * osd: filestore: clone using splice (Jianpeng Ma)
- * osd: filestore: fix recursive lock (Xinxin Shu)
- * osd: fix dup promotion lost op bug (Zhiqiang Wang)
- * osd: fix temp-clearing (David Zafman)
- * osd: include a temp namespace within each collection/pgid (Sage Weil)
- * osd: low and high speed flush modes (Mingxin Liu)
- * osd: peer_features includes self (David Zafman)
- * osd: recovery, peering fixes (#11687 Samuel Just)
- * osd: require firefly features (David Zafman)
- * osd: set initial crush weight with more precision (Sage Weil)
- * osd: use a temp object for recovery (Sage Weil)
- * osd: use blkid to collection partition information (Joseph Handzik)
- * rados: add --striper option to use libradosstriper (#10759 Sebastien Ponce)
- * radosgw-admin: fix subuser modify output (#12286 Guce)
- * rados: handle --snapid arg properly (Abhishek Lekshmanan)
- * rados: improve bench buffer handling, performance (Piotr Dalek)
- * rados: new pool import implementation (John Spray)
- * rbd: fix link issues (Jason Dillaman)
- * rbd: improve CLI arg parsing, usage (Ilya Dryomov)
- * rbd: recognize queue_depth kernel option (Ilya Dryomov)
- * rbd: support G and T units for CLI (Abhishek Lekshmanan)
- * rbd: use image-spec and snap-spec in help (Vikhyat Umrao, Ilya Dryomov)
- * rest-bench: misc fixes (Shawn Chen)
- * rest-bench: support https (#3968 Yuan Zhou)
- * rgw: add max multipart upload parts (#12146 Abshishek Dixit)
- * rgw: add Trasnaction-Id to response (Abhishek Dixit)
- * rgw: document layout of pools and objects (Pete Zaitcev)
- * rgw: do not preserve ACLs when copying object (#12370 Yehuda Sadeh)
- * rgw: fix Connection: header handling (#12298 Wido den Hollander)
- * rgw: fix data corruptions race condition (#11749 Wuxingyi)
- * rgw: fix JSON response when getting user quota (#12117 Wuxingyi)
- * rgw: force content_type for swift bucket stats requests (#12095 Orit Wasserman)
- * rgw: improved support for swift account metadata (Radoslaw Zarzynski)
- * rgw: make max put size configurable (#6999 Yuan Zhou)
- * rgw: orphan detection tool (Yehuda Sadeh)
- * rgw: swift: do not override sent content type (#12363 Orit Wasserman)
- * rgw: swift: set Content-Length for account GET (#12158 Radoslav Zarzynski)
- * rpm: always rebuild and install man pages for rpm (Owen Synge)
- * rpm: misc fixes (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
- * systemd: logrotate fixes (Tim Seron, Lars Marowsky-Bree, Nathan Cutler)
- * sysvinit compat: misc fixes (Owen Synge)
- * test: misc fs test improvements (John Spray, Loic Dachary)
- * test: python tests, linter cleanup (Alfredo Deza)
-
-
-v9.0.2
-======
-
-This development release features more of the OSD work queue
-unification, randomized osd scrub times, a huge pile of librbd fixes,
-more MDS repair and snapshot fixes, and a significant amount of work
-on the tests and build infrastructure.
-
-Notable Changes
----------------
-
-* buffer: some cleanup (Michal Jarzabek)
-* build: cmake: fix nss linking (Danny Al-Gaaf)
-* build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
-* build: install-deps: misc fixes (Loic Dachary)
-* build: make_dist_tarball.sh (Sage Weil)
-* ceph-detect-init: added Linux Mint (Michal Jarzabek)
-* ceph-detect-init: robust init system detection (Owen Synge, Loic Dachary)
-* ceph-disk: ensure 'zap' only operates on a full disk (#11272 Loic Dachary)
-* ceph-disk: misc fixes to respect init system (Loic Dachary, Owen Synge)
-* ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
-* ceph: fix 'df' units (Zhe Zhang)
-* ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
-* ceph-objectstore-tool: many many changes (David Zafman)
-* ceph-post-file: misc fixes (Joey McDonald, Sage Weil)
-* client: avoid sending unnecessary FLUSHSNAP messages (Yan, Zheng)
-* client: exclude setfilelock when calculating oldest tid (Yan, Zheng)
-* client: fix error handling in check_pool_perm (John Spray)
-* client: fsync waits only for inode's caps to flush (Yan, Zheng)
-* client: invalidate kernel dcache when cache size exceeds limits (Yan, Zheng)
-* client: make fsync wait for unsafe dir operations (Yan, Zheng)
-* client: pin lookup dentry to avoid inode being freed (Yan, Zheng)
-* common: detect overflow of int config values (#11484 Kefu Chai)
-* common: fix json parsing of utf8 (#7387 Tim Serong)
-* common: fix leak of pthread_mutexattr (#11762 Ketor Meng)
-* crush: respect default replicated ruleset config on map creation (Ilya Dryomov)
-* deb, rpm: move ceph-objectstore-tool to ceph (Ken Dreyer)
-* doc: man page updates (Kefu Chai)
-* doc: misc updates (#11396 Nilamdyuti, Fracois Lafont, Ken Dreyer, Kefu Chai)
-* init-radosgw: merge with sysv version; fix enumeration (Sage Weil)
-* librados: add config observer (Alistair Strachan)
-* librbd: add const for single-client-only features (Josh Durgin)
-* librbd: add deep-flatten operation (Jason Dillaman)
-* librbd: avoid blocking aio API methods (#11056 Jason Dillaman)
-* librbd: fix fast diff bugs (#11553 Jason Dillaman)
-* librbd: fix image format detection (Zhiqiang Wang)
-* librbd: fix lock ordering issue (#11577 Jason Dillaman)
-* librbd: flatten/copyup fixes (Jason Dillaman)
-* librbd: lockdep, helgrind validation (Jason Dillaman, Josh Durgin)
-* librbd: only update image flags while hold exclusive lock (#11791 Jason Dillaman)
-* librbd: return result code from close (#12069 Jason Dillaman)
-* librbd: tolerate old osds when getting image metadata (#11549 Jason Dillaman)
-* mds: do not add snapped items to bloom filter (Yan, Zheng)
-* mds: fix handling for missing mydir dirfrag (#11641 John Spray)
-* mds: fix rejoin (Yan, Zheng)
-* mds: fix stra reintegration (Yan, Zheng)
-* mds: fix suicide beason (John Spray)
-* mds: misc repair improvements (John Spray)
-* mds: misc snapshot fixes (Yan, Zheng)
-* mds: respawn instead of suicide on blacklist (John Spray)
-* misc coverity fixes (Danny Al-Gaaf)
-* mon: add 'mon_metadata <id>' command (Kefu Chai)
-* mon: add 'node ls ...' command (Kefu Chai)
-* mon: disallow ec pools as tiers (#11650 Samuel Just)
-* mon: fix mds beacon replies (#11590 Kefu Chai)
-* mon: fix 'pg ls' sort order, state names (#11569 Kefu Chai)
-* mon: normalize erasure-code profile for storage and comparison (Loic Dachary)
-* mon: optionally specify osd id on 'osd create' (Mykola Golub)
-* mon: 'osd tree' fixes (Kefu Chai)
-* mon: prevent pool with snapshot state from being used as a tier (#11493 Sage Weil)
-* mon: refine check_remove_tier checks (#11504 John Spray)
-* mon: remove spurious who arg from 'mds rm ...' (John Spray)
-* msgr: async: misc fixes (Haomai Wang)
-* msgr: xio: fix ip and nonce (Raju Kurunkad)
-* msgr: xio: improve lane assignment (Vu Pham)
-* msgr: xio: misc fixes (Vu Pham, Cosey Bodley)
-* osd: avoid transaction append in some cases (Sage Weil)
-* osdc/Objecter: allow per-pool calls to op_cancel_writes (John Spray)
-* osd: elminiate txn apend, ECSubWrite copy (Samuel Just)
-* osd: filejournal: cleanup (David Zafman)
-* osd: fix check_for_full (Henry Chang)
-* osd: fix dirty accounting in make_writeable (Zhiqiang Wang)
-* osd: fix osdmap dump of blacklist items (John Spray)
-* osd: fix snap flushing from cache tier (again) (#11787 Samuel Just)
-* osd: fix snap handling on promotion (#11296 Sam Just)
-* osd: handle log split with overlapping entries (#11358 Samuel Just)
-* osd: keyvaluestore: misc fixes (Varada Kari)
-* osd: make suicide timeouts individually configurable (Samuel Just)
-* osd: move scrub in OpWQ (Samuel Just)
-* osd: pool size change triggers new interval (#11771 Samuel Just)
-* osd: randomize scrub times (#10973 Kefu Chai)
-* osd: refactor scrub and digest recording (Sage Weil)
-* osd: refuse first write to EC object at non-zero offset (Jianpeng Ma)
-* osd: stripe over small xattrs to fit in XFS's 255 byte inline limit (Sage Weil, Ning Yao)
-* osd: sync object_map on syncfs (Samuel Just)
-* osd: take excl lock of op is rw (Samuel Just)
-* osd: WBThrottle cleanups (Jianpeng Ma)
-* pycephfs: many fixes for bindings (Haomai Wang)
-* rados: bench: add --no-verify option to improve performance (Piotr Dalek)
-* rados: misc bench fixes (Dmitry Yatsushkevich)
-* rbd: add disk usage tool (#7746 Jason Dillaman)
-* rgw: alwasy check if token is expired (#11367 Anton Aksola, Riku Lehto)
-* rgw: conversion tool to repair broken multipart objects (#12079 Yehuda Sadeh)
-* rgw: do not enclose bucket header in quotes (#11860 Wido den Hollander)
-* rgw: error out if frontend did not send all data (#11851 Yehuda Sadeh)
-* rgw: fix assignment of copy obj attributes (#11563 Yehuda Sadeh)
-* rgw: fix reset_loc (#11974 Yehuda Sadeh)
-* rgw: improve content-length env var handling (#11419 Robin H. Johnson)
-* rgw: only scan for objects not in a namespace (#11984 Yehuda Sadeh)
-* rgw: remove trailing :port from HTTP_HOST header (Sage Weil)
-* rgw: shard work over multiple librados instances (Pavan Rallabhandi)
-* rgw: swift: enforce Content-Type in response (#12157 Radoslaw Zarzynski)
-* rgw: use attrs from source bucket on copy (#11639 Javier M. Mellid)
-* rocksdb: pass options as single string (Xiaoxi Chen)
-* rpm: many spec file fixes (Owen Synge, Ken Dreyer)
-* tests: fixes for rbd xstests (Douglas Fuller)
-* tests: fix tiering health checks (Loic Dachary)
-* tests for low-level performance (Haomai Wang)
-* tests: many ec non-regression improvements (Loic Dachary)
-* tests: many many ec test improvements (Loic Dachary)
-* upstart: throttle restarts (#11798 Sage Weil, Greg Farnum)
-
-
-v9.0.1
-======
-
-This development release is delayed a bit due to tooling changes in the build
-environment. As a result the next one (v9.0.2) will have a bit more work than
-is usual.
-
-Highlights here include lots of RGW Swift fixes, RBD feature work
-surrounding the new object map feature, more CephFS snapshot fixes,
-and a few important CRUSH fixes.
-
-Notable Changes
----------------
-
-* auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
-* build: allow tcmalloc-minimal (Thorsten Behrens)
-* build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
-* build: fix pg ref disabling (William A. Kennington III)
-* build: install-deps.sh improvements (Loic Dachary)
-* build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
-* ceph-authtool: fix return code on error (Gerhard Muntingh)
-* ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
-* ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
-* ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
-* ceph-fuse,libcephfs: fix uninline (#11356 Yan, Zheng)
-* ceph-monstore-tool: fix store-copy (Huangjun)
-* common: add perf counter descriptions (Alyona Kiseleva)
-* common: fix throttle max change (Henry Chang)
-* crush: fix crash from invalid 'take' argument (#11602 Shiva Rkreddy, Sage Weil)
-* crush: fix divide-by-2 in straw2 (#11357 Yann Dupont, Sage Weil)
-* deb: fix rest-bench-dbg and ceph-test-dbg dependendies (Ken Dreyer)
-* doc: document region hostnames (Robin H. Johnson)
-* doc: update release schedule docs (Loic Dachary)
-* init-radosgw: run radosgw as root (#11453 Ken Dreyer)
-* librados: fadvise flags per op (Jianpeng Ma)
-* librbd: allow additional metadata to be stored with the image (Haomai Wang)
-* librbd: better handling for dup flatten requests (#11370 Jason Dillaman)
-* librbd: cancel in-flight ops on watch error (#11363 Jason Dillaman)
-* librbd: default new images to format 2 (#11348 Jason Dillaman)
-* librbd: fast diff implementation that leverages object map (Jason Dillaman)
-* librbd: fix snapshot creation when other snap is active (#11475 Jason Dillaman)
-* librbd: new diff_iterate2 API (Jason Dillaman)
-* librbd: object map rebuild support (Jason Dillaman)
-* logrotate.d: prefer service over invoke-rc.d (#11330 Win Hierman, Sage Weil)
-* mds: avoid getting stuck in XLOCKDONE (#11254 Yan, Zheng)
-* mds: fix integer truncateion on large client ids (Henry Chang)
-* mds: many snapshot and stray fixes (Yan, Zheng)
-* mds: persist completed_requests reliably (#11048 John Spray)
-* mds: separate safe_pos in Journaler (#10368 John Spray)
-* mds: snapshot rename support (#3645 Yan, Zheng)
-* mds: warn when clients fail to advance oldest_client_tid (#10657 Yan, Zheng)
-* misc cleanups and fixes (Danny Al-Gaaf)
-* mon: fix average utilization calc for 'osd df' (Mykola Golub)
-* mon: fix variance calc in 'osd df' (Sage Weil)
-* mon: improve callout to crushtool (Mykola Golub)
-* mon: prevent bucket deletion when referenced by a crush rule (#11602 Sage Weil)
-* mon: prime pg_temp when CRUSH map changes (Sage Weil)
-* monclient: flush_log (John Spray)
-* msgr: async: many many fixes (Haomai Wang)
-* msgr: simple: fix clear_pipe (#11381 Haomai Wang)
-* osd: add latency perf counters for tier operations (Xinze Chi)
-* osd: avoid multiple hit set insertions (Zhiqiang Wang)
-* osd: break PG removal into multiple iterations (#10198 Guang Yang)
-* osd: check scrub state when handling map (Jianpeng Ma)
-* osd: fix endless repair when object is unrecoverable (Jianpeng Ma, Kefu Chai)
-* osd: fix pg resurrection (#11429 Samuel Just)
-* osd: ignore non-existent osds in unfound calc (#10976 Mykola Golub)
-* osd: increase default max open files (Owen Synge)
-* osd: prepopulate needs_recovery_map when only one peer has missing (#9558 Guang Yang)
-* osd: relax reply order on proxy read (#11211 Zhiqiang Wang)
-* osd: skip promotion for flush/evict op (Zhiqiang Wang)
-* osd: write journal header on clean shutdown (Xinze Chi)
-* qa: run-make-check.sh script (Loic Dachary)
-* rados bench: misc fixes (Dmitry Yatsushkevich)
-* rados: fix error message on failed pool removal (Wido den Hollander)
-* radosgw-admin: add 'bucket check' function to repair bucket index (Yehuda Sadeh)
-* rbd: allow unmapping by spec (Ilya Dryomov)
-* rbd: deprecate --new-format option (Jason Dillman)
-* rgw: do not set content-type if length is 0 (#11091 Orit Wasserman)
-* rgw: don't use end_marker for namespaced object listing (#11437 Yehuda Sadeh)
-* rgw: fail if parts not specified on multipart upload (#11435 Yehuda Sadeh)
-* rgw: fix GET on swift account when limit == 0 (#10683 Radoslaw Zarzynski)
-* rgw: fix broken stats in container listing (#11285 Radoslaw Zarzynski)
-* rgw: fix bug in domain/subdomain splitting (Robin H. Johnson)
-* rgw: fix civetweb max threads (#10243 Yehuda Sadeh)
-* rgw: fix copy metadata, support X-Copied-From for swift (#10663 Radoslaw Zarzynski)
-* rgw: fix locator for objects starting with _ (#11442 Yehuda Sadeh)
-* rgw: fix mulitipart upload in retry path (#11604 Yehuda Sadeh)
-* rgw: fix quota enforcement on POST (#11323 Sergey Arkhipov)
-* rgw: fix return code on missing upload (#11436 Yehuda Sadeh)
-* rgw: force content type header on responses with no body (#11438 Orit Wasserman)
-* rgw: generate new object tag when setting attrs (#11256 Yehuda Sadeh)
-* rgw: issue aio for first chunk before flush cached data (#11322 Guang Yang)
-* rgw: make read user buckets backward compat (#10683 Radoslaw Zarzynski)
-* rgw: merge manifests properly with prefix override (#11622 Yehuda Sadeh)
-* rgw: return 412 on bad limit when listing buckets (#11613 Yehuda Sadeh)
-* rgw: send ETag, Last-Modified for swift (#11087 Radoslaw Zarzynski)
-* rgw: set content length on container GET, PUT, DELETE, HEAD (#10971, #11036 Radoslaw Zarzynski)
-* rgw: support end marker on swift container GET (#10682 Radoslaw Zarzynski)
-* rgw: swift: fix account listing (#11501 Radoslaw Zarzynski)
-* rgw: swift: set content-length on keystone tokens (#11473 Herv Rousseau)
-* rgw: use correct oid for gc chains (#11447 Yehuda Sadeh)
-* rgw: use unique request id for civetweb (#10295 Orit Wasserman)
-* rocksdb, leveldb: fix compact_on_mount (Xiaoxi Chen)
-* rocksdb: add perf counters for get/put latency (Xinxin Shu)
-* rpm: add suse firewall files (Tim Serong)
-* rpm: misc systemd and suse fixes (Owen Synge, Nathan Cutler)
-
-
-
-v9.0.0
-======
-
-This is the first development release for the Infernalis cycle, and
-the first Ceph release to sport a version number from the new
-numbering scheme. The "9" indicates this is the 9th release cycle--I
-(for Infernalis) is the 9th letter. The first "0" indicates this is a
-development release ("1" will mean release candidate and "2" will mean
-stable release), and the final "0" indicates this is the first such
-development release.
-
-A few highlights include:
-
-* a new 'ceph daemonperf' command to watch perfcounter stats in realtime
-* reduced MDS memory usage
-* many MDS snapshot fixes
-* librbd can now store options in the image itself
-* many fixes for RGW Swift API support
-* OSD performance improvements
-* many doc updates and misc bug fixes
-
-Notable Changes
----------------
-
-* aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
-* auth: reinit NSS after fork() (#11128 Yan, Zheng)
-* build: disable LTTNG by default (#11333 Josh Durgin)
-* build: fix ppc build (James Page)
-* build: install-deps: support OpenSUSE (Loic Dachary)
-* build: misc cmake fixes (Matt Benjamin)
-* ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
-* ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
-* ceph-disk: improve parted output parsing (#10983 Loic Dachary)
-* ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
-* ceph-disk: misc fixes (Alfredo Deza)
-* ceph-fuse, libcephfs: don't clear COMPLETE when trimming null (Yan, Zheng)
-* ceph-fuse, libcephfs: hold exclusive caps on dirs we "own" (#11226 Greg Farnum)
-* ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
-* ceph: new 'ceph daemonperf' command (John Spray, Mykola Golub)
-* common: PriorityQueue tests (Kefu Chai)
-* common: add descriptions to perfcounters (Kiseleva Alyona)
-* common: fix LTTNG vs fork issue (Josh Durgin)
-* crush: fix has_v4_buckets (#11364 Sage Weil)
-* crushtool: fix order of operations, usage (Sage Weil)
-* debian: minor package reorg (Ken Dreyer)
-* doc: docuemnt object corpus generation (#11099 Alexis Normand)
-* doc: fix gender neutrality (Alexandre Maragone)
-* doc: fix install doc (#10957 Kefu Chai)
-* doc: fix sphinx issues (Kefu Chai)
-* doc: mds data structure docs (Yan, Zheng)
-* doc: misc updates (Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
-* doc: swift tempurls (#10184 Abhishek Lekshmanan)
-* doc: switch doxygen integration back to breathe (#6115 Kefu Chai)
-* erasure-code: update ISA-L to 2.13 (Yuan Zhou)
-* gmock: switch to submodule (Danny Al-Gaaf, Loic Dachary)
-* hadoop: add terasort test (Noah Watkins)
-* java: fix libcephfs bindings (Noah Watkins)
-* libcephfs,ceph-fuse: fix request resend on cap reconnect (#10912 Yan, Zheng)
-* librados: define C++ flags from C constants (Josh Durgin)
-* librados: fix last_force_resent handling (#11026 Jianpeng Ma)
-* librados: fix memory leak from C_TwoContexts (Xiong Yiliang)
-* librados: fix striper when stripe_count = 1 and stripe_unit != object_size (#11120 Yan, Zheng)
-* librados: op perf counters (John Spray)
-* librados: pybind: fix write() method return code (Javier Guerra)
-* libradosstriper: fix leak (Danny Al-Gaaf)
-* librbd: add purge_on_error cache behavior (Jianpeng Ma)
-* librbd: misc aio fixes (#5488 Jason Dillaman)
-* librbd: misc rbd fixes (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
-* librbd: readahead fixes (Zhiqiang Wang)
-* librbd: store metadata, including config options, in image (Haomai Wang)
-* mds: add 'damaged' state to MDSMap (John Spray)
-* mds: add nicknames for perfcounters (John Spray)
-* mds: disable problematic rstat propagation into snap parents (Yan, Zheng)
-* mds: fix mydir replica issue with shutdown (#10743 John Spray)
-* mds: fix out-of-order messages (#11258 Yan, Zheng)
-* mds: fix shutdown with strays (#10744 John Spray)
-* mds: fix snapshot fixes (Yan, Zheng)
-* mds: fix stray handling (John Spray)
-* mds: flush immediately in do_open_truncate (#11011 John Spray)
-* mds: improve dump methods (John Spray)
-* mds: misc journal cleanups and fixes (#10368 John Spray)
-* mds: new SessionMap storage using omap (#10649 John Spray)
-* mds: reduce memory consumption (Yan, Zheng)
-* mds: throttle purge stray operations (#10390 John Spray)
-* mds: tolerate clock jumping backwards (#11053 Yan, Zheng)
-* misc coverity fixes (Danny Al-Gaaf)
-* mon: do not deactivate last mds (#10862 John Spray)
-* mon: make osd get pool 'all' only return applicable fields (#10891 Michal Jarzabek)
-* mon: warn on bogus cache tier config (Jianpeng Ma)
-* msg/async: misc bug fixes and updates (Haomai Wang)
-* msg/simple: fix connect_seq assert (Haomai Wang)
-* msg/xio: misc fixes (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham)
-* msg: unit tests (Haomai Wang)
-* objectcacher: misc bug fixes (Jianpeng Ma)
-* os/filestore: enlarge getxattr buffer size (Jianpeng Ma)
-* osd: EIO injection (David Zhang)
-* osd: add misc perfcounters (Xinze Chi)
-* osd: add simple sleep injection in recovery (Sage Weil)
-* osd: allow SEEK_HOLE/SEEK_DATA for sparse read (Zhiqiang Wang)
-* osd: avoid dup omap sets for in pg metadata (Sage Weil)
-* osd: clean up some constness, privateness (Kefu Chai)
-* osd: erasure-code: drop entries according to LRU (Andreas-Joachim Peters)
-* osd: fix negative degraded stats during backfill (Guang Yang)
-* osd: misc fixes (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
-* pybind: pep8 cleanups (Danny Al-Gaaf)
-* qa: fix filelock_interrupt.py test (Yan, Zheng)
-* qa: improve ceph-disk tests (Loic Dachary)
-* qa: improve docker build layers (Loic Dachary)
-* rados: translate erno to string in CLI (#10877 Kefu Chai)
-* rbd: accept map options config option (Ilya Dryomov)
-* rbd: cli: fix arg parsing with --io-pattern (Dmitry Yatsushkevich)
-* rbd: fix error messages (#2862 Rajesh Nambiar)
-* rbd: update rbd man page (Ilya Dryomov)
-* rbd: update xfstests tests (Douglas Fuller)
-* rgw: add X-Timestamp for Swift containers (#10938 Radoslaw Zarzynski)
-* rgw: add missing headers to Swift container details (#10666 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: add stats to headers for account GET (#10684 Yuan Zhou)
-* rgw: do not prefecth data for HEAD requests (Guang Yang)
-* rgw: don't clobber bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: don't use rgw_socket_path if frontend is configured (#11160 Yehuda Sadeh)
-* rgw: enforce Content-Lenth for POST on Swift cont/obj (#10661 Radoslaw Zarzynski)
-* rgw: fix handling empty metadata items on Swift container (#11088 Radoslaw Zarzynski)
-* rgw: fix log rotation (Wuxingyi)
-* rgw: generate Date header for civetweb (#10873 Radoslaw Zarzynski)
-* rgw: make init script wait for radosgw to stop (#11140 Dmitry Yatsushkevich)
-* rgw: make quota/gc threads configurable (#11047 Guang Yang)
-* rgw: pass in civetweb configurables (#10907 Yehuda Sadeh)
-* rgw: rectify 202 Accepted in PUT response (#11148 Radoslaw Zarzynski)
-* rgw: remove meta file after deleting bucket (#11149 Orit Wasserman)
-* rgw: swift: allow setting attributes with COPY (#10662 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: swift: fix metadata handling on copy (#10645 Radoslaw Zarzynski)
-* rgw: swift: send Last-Modified header (#10650 Radoslaw Zarzynski)
-* rgw: update keystone cache with token info (#11125 Yehuda Sadeh)
-* rgw: update to latest civetweb, enable config for IPv6 (#10965 Yehuda Sadeh)
-* rocksdb: update to latest (Xiaoxi Chen)
-* rpm: loosen ceph-test dependencies (Ken Dreyer)
-
-v0.94.10 Hammer
-===============
-
-This Hammer point release fixes several bugs and adds two new features.
-
-We recommend that all hammer v0.94.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.10.txt>`.
-
-New Features
-------------
-
-ceph-objectstore-tool and ceph-monstore-tool now enable user to
-rebuild the monitor database from OSDs. (This feature is especially useful when
-all monitors fail to boot due to leveldb corruption.)
-
-In RADOS Gateway, it is now possible to reshard an existing bucket's index
-using an off-line tool.
-
-Usage:
-
-$ radosgw-admin bucket reshard --bucket=<bucket_name> --num_shards=<num_shards>
-
-This will create a new linked bucket instance that points to the newly created
-index objects. The old bucket instance still exists and currently it's up to
-the user to manually remove the old bucket index objects. (Note that bucket
-resharding currently requires that all IO (especially writes) to the specific
-bucket is quiesced.)
-
-Other Notable Changes
----------------------
-
-* build/ops: ceph-create-keys loops forever (`issue#17753 <http://tracker.ceph.com/issues/17753>`_, `pr#12805 <http://github.com/ceph/ceph/pull/12805>`_, Alfredo Deza)
-* build/ops: improve ceph.in error message (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#10905 <http://github.com/ceph/ceph/pull/10905>`_, Kefu Chai)
-* build/ops: make stop.sh more portable (`issue#16918 <http://tracker.ceph.com/issues/16918>`_, `pr#10569 <http://github.com/ceph/ceph/pull/10569>`_, Mykola Golub)
-* build/ops: remove SYSTEMD_RUN from initscript (`issue#16440 <http://tracker.ceph.com/issues/16440>`_, `issue#7627 <http://tracker.ceph.com/issues/7627>`_, `pr#9873 <http://github.com/ceph/ceph/pull/9873>`_, Vladislav Odintsov)
-* cephx: Fix multiple segfaults due to attempts to encrypt or decrypt (`issue#16266 <http://tracker.ceph.com/issues/16266>`_, `pr#11930 <http://github.com/ceph/ceph/pull/11930>`_, Brad Hubbard)
-* common: SIGABRT in TrackedOp::dump() via dump_ops_in_flight() (`issue#8885 <http://tracker.ceph.com/issues/8885>`_, `pr#12121 <http://github.com/ceph/ceph/pull/12121>`_, Jianpeng Ma, Zhiqiang Wang, David Zafman)
-* common: os/ObjectStore: fix _update_op for split dest_cid (`issue#15345 <http://tracker.ceph.com/issues/15345>`_, `pr#12071 <http://github.com/ceph/ceph/pull/12071>`_, Sage Weil)
-* crush: reset bucket->h.items[i] when removing tree item (`issue#16525 <http://tracker.ceph.com/issues/16525>`_, `pr#10724 <http://github.com/ceph/ceph/pull/10724>`_, Kefu Chai)
-* doc: add "Upgrading to Hammer" section (`issue#17386 <http://tracker.ceph.com/issues/17386>`_, `pr#11372 <http://github.com/ceph/ceph/pull/11372>`_, Kefu Chai)
-* doc: add orphan options to radosgw-admin --help and man page (`issue#17281 <http://tracker.ceph.com/issues/17281>`_, `issue#17280 <http://tracker.ceph.com/issues/17280>`_, `pr#11140 <http://github.com/ceph/ceph/pull/11140>`_, Abhishek Lekshmanan, Casey Bodley, Ken Dreyer, Thomas Serlin)
-* doc: clarify that RGW bucket object versioning is supported (`issue#16574 <http://tracker.ceph.com/issues/16574>`_, `pr#10437 <http://github.com/ceph/ceph/pull/10437>`_, Yuan Zhou, shawn chen)
-* librados: bad flags can crash the osd (`issue#16012 <http://tracker.ceph.com/issues/16012>`_, `pr#11936 <http://github.com/ceph/ceph/pull/11936>`_, Jianpeng Ma, Sage Weil)
-* librbd: ceph 10.2.2 rbd status on image format 2 returns "(2) No such file or directory" (`issue#16887 <http://tracker.ceph.com/issues/16887>`_, `pr#10987 <http://github.com/ceph/ceph/pull/10987>`_, Jason Dillaman)
-* librbd: diffs to clone's first snapshot should include parent diffs (`issue#18068 <http://tracker.ceph.com/issues/18068>`_, `pr#12446 <http://github.com/ceph/ceph/pull/12446>`_, Jason Dillaman)
-* librbd: image.stat() call in librbdpy fails sometimes (`issue#17310 <http://tracker.ceph.com/issues/17310>`_, `pr#11949 <http://github.com/ceph/ceph/pull/11949>`_, Jason Dillaman)
-* librbd: request exclusive lock if current owner cannot execute op (`issue#16171 <http://tracker.ceph.com/issues/16171>`_, `pr#12018 <http://github.com/ceph/ceph/pull/12018>`_, Mykola Golub)
-* mds: fix cephfs-java ftruncate unit test failure (`issue#11258 <http://tracker.ceph.com/issues/11258>`_, `pr#11939 <http://github.com/ceph/ceph/pull/11939>`_, Yan, Zheng)
-* mon: %USED of ceph df is wrong (`issue#16933 <http://tracker.ceph.com/issues/16933>`_, `pr#11934 <http://github.com/ceph/ceph/pull/11934>`_, Kefu Chai)
-* mon: MonmapMonitor should return success when MON will be removed (`issue#17725 <http://tracker.ceph.com/issues/17725>`_, `pr#12006 <http://github.com/ceph/ceph/pull/12006>`_, Joao Eduardo Luis)
-* mon: OSDMonitor: Missing nearfull flag set (`issue#17390 <http://tracker.ceph.com/issues/17390>`_, `pr#11273 <http://github.com/ceph/ceph/pull/11273>`_, Igor Podoski)
-* mon: OSDs marked OUT wrongly after monitor failover (`issue#17719 <http://tracker.ceph.com/issues/17719>`_, `pr#11946 <http://github.com/ceph/ceph/pull/11946>`_, Dong Wu)
-* mon: fix memory leak in prepare_beacon (`issue#17285 <http://tracker.ceph.com/issues/17285>`_, `pr#10238 <http://github.com/ceph/ceph/pull/10238>`_, Igor Podoski)
-* mon: osd flag health message is misleading (`issue#18175 <http://tracker.ceph.com/issues/18175>`_, `pr#12687 <http://github.com/ceph/ceph/pull/12687>`_, Sage Weil)
-* mon: prepare_pgtemp needs to only update up_thru if newer than the existing one (`issue#16185 <http://tracker.ceph.com/issues/16185>`_, `pr#11937 <http://github.com/ceph/ceph/pull/11937>`_, Samuel Just)
-* mon: return size_t from MonitorDBStore::Transaction::size() (`issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#10904 <http://github.com/ceph/ceph/pull/10904>`_, Kefu Chai)
-* mon: send updated monmap to its subscribers (`issue#17558 <http://tracker.ceph.com/issues/17558>`_, `pr#11457 <http://github.com/ceph/ceph/pull/11457>`_, Kefu Chai)
-* msgr: OpTracker needs to release the message throttle in _unregistered (`issue#14248 <http://tracker.ceph.com/issues/14248>`_, `pr#11938 <http://github.com/ceph/ceph/pull/11938>`_, Samuel Just)
-* msgr: simple/Pipe: error decoding addr (`issue#18072 <http://tracker.ceph.com/issues/18072>`_, `pr#12266 <http://github.com/ceph/ceph/pull/12266>`_, Sage Weil)
-* osd: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items (`issue#16998 <http://tracker.ceph.com/issues/16998>`_, `pr#11933 <http://github.com/ceph/ceph/pull/11933>`_, Samuel Just)
-* osd: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (\*this == hobject_t(hobject_t::get_max()))) (`issue#13967 <http://tracker.ceph.com/issues/13967>`_, `pr#11932 <http://github.com/ceph/ceph/pull/11932>`_, Tao Chang)
-* osd: ReplicatedBackend::build_push_op: add a second config to limit omap entries/chunk independently of object data (`issue#16128 <http://tracker.ceph.com/issues/16128>`_, `pr#12417 <http://github.com/ceph/ceph/pull/12417>`_, Wanlong Gao)
-* osd: crash on EIO during deep-scrubbing (`issue#16034 <http://tracker.ceph.com/issues/16034>`_, `pr#11935 <http://github.com/ceph/ceph/pull/11935>`_, Nathan Cutler)
-* osd: filestore: FALLOC_FL_PUNCH_HOLE must be used with FALLOC_FL_KEEP_SIZE (`issue#18446 <http://tracker.ceph.com/issues/18446>`_, `pr#13041 <http://github.com/ceph/ceph/pull/13041>`_, xinxin shu)
-* osd: fix cached_removed_snaps bug in PGPool::update after map gap (`issue#18628 <http://tracker.ceph.com/issues/18628>`_, `issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#12906 <http://github.com/ceph/ceph/pull/12906>`_, Samuel Just)
-* osd: fix collection_list shadow return value (`issue#17713 <http://tracker.ceph.com/issues/17713>`_, `pr#11927 <http://github.com/ceph/ceph/pull/11927>`_, Haomai Wang)
-* osd: fix fiemap issue in xfs when #extents > 1364 (`issue#17610 <http://tracker.ceph.com/issues/17610>`_, `pr#11615 <http://github.com/ceph/ceph/pull/11615>`_, Kefu Chai, Ning Yao)
-* osd: update PGPool to detect map gaps and reset cached_removed_snaps (`issue#15943 <http://tracker.ceph.com/issues/15943>`_, `pr#11676 <http://github.com/ceph/ceph/pull/11676>`_, Samuel Just)
-* rbd: export diff should open image as read-only (`issue#17671 <http://tracker.ceph.com/issues/17671>`_, `pr#11948 <http://github.com/ceph/ceph/pull/11948>`_, liyankun)
-* rbd: fix parameter check (`issue#18237 <http://tracker.ceph.com/issues/18237>`_, `pr#12312 <http://github.com/ceph/ceph/pull/12312>`_, Yankun Li)
-* rbd: fix possible rbd data corruption (`issue#16002 <http://tracker.ceph.com/issues/16002>`_, `pr#11618 <http://github.com/ceph/ceph/pull/11618>`_, Yan, Zheng, Greg Farnum)
-* rgw: Anonymous user is able to read bucket with authenticated read ACL (`issue#13207 <http://tracker.ceph.com/issues/13207>`_, `pr#11045 <http://github.com/ceph/ceph/pull/11045>`_, rahul.1aggarwal@gmail.com)
-* rgw: COPY broke multipart files uploaded under dumpling (`issue#16435 <http://tracker.ceph.com/issues/16435>`_, `pr#11950 <http://github.com/ceph/ceph/pull/11950>`_, Yehuda Sadeh)
-* rgw: TempURL in radosgw behaves now like its Swift's counterpart. (`issue#18316 <http://tracker.ceph.com/issues/18316>`_, `pr#12619 <http://github.com/ceph/ceph/pull/12619>`_, Radoslaw Zarzynski)
-* rgw: default quota fixes (`issue#16410 <http://tracker.ceph.com/issues/16410>`_, `pr#10839 <http://github.com/ceph/ceph/pull/10839>`_, Pavan Rallabhandi, Daniel Gryniewicz)
-* rgw: do not abort when accept a CORS request with short origin (`issue#18187 <http://tracker.ceph.com/issues/18187>`_, `pr#12398 <http://github.com/ceph/ceph/pull/12398>`_, LiuYang)
-* rgw: do not omap_getvals with (u64)-1 max (`issue#17985 <http://tracker.ceph.com/issues/17985>`_, `pr#12418 <http://github.com/ceph/ceph/pull/12418>`_, Yehuda Sadeh, Sage Weil)
-* rgw: fix crash when client posts object with null condition (`issue#17635 <http://tracker.ceph.com/issues/17635>`_, `pr#11809 <http://github.com/ceph/ceph/pull/11809>`_, Yehuda Sadeh)
-* rgw: fix inconsistent uid/email handling in radosgw-admin (`issue#13598 <http://tracker.ceph.com/issues/13598>`_, `pr#11952 <http://github.com/ceph/ceph/pull/11952>`_, Matt Benjamin)
-* rgw: implement offline resharding command (`issue#17745 <http://tracker.ceph.com/issues/17745>`_, `pr#12227 <http://github.com/ceph/ceph/pull/12227>`_, Yehuda Sadeh, Orit Wasserman, weiqiaomiao)
-* rgw: swift: ranged request on a DLO provides wrong values in Content-Range HTTP header (`issue#13452 <http://tracker.ceph.com/issues/13452>`_, `pr#11951 <http://github.com/ceph/ceph/pull/11951>`_, Radoslaw Zarzynski)
-* rgw: the value of total_time is wrong in the result of 'radosgw-admin log show' opt (`issue#17598 <http://tracker.ceph.com/issues/17598>`_, `pr#11899 <http://github.com/ceph/ceph/pull/11899>`_, weiqiaomiao)
-* tests: Cannot clone ceph/s3-tests.git (missing branch) (`issue#18384 <http://tracker.ceph.com/issues/18384>`_, `pr#12744 <http://github.com/ceph/ceph/pull/12744>`_, Orit Wasserman)
-* tests: Cannot reserve CentOS 7.2 smithi machines (`issue#18401 <http://tracker.ceph.com/issues/18401>`_, `pr#12762 <http://github.com/ceph/ceph/pull/12762>`_, Nathan Cutler)
-* tests: OSDs commit suicide in rbd suite when testing on btrfs (`issue#18397 <http://tracker.ceph.com/issues/18397>`_, `pr#12758 <http://github.com/ceph/ceph/pull/12758>`_, Nathan Cutler)
-* tests: Workunits needlessly wget from git.ceph.com (`issue#18336 <http://tracker.ceph.com/issues/18336>`_, `issue#18271 <http://tracker.ceph.com/issues/18271>`_, `issue#18388 <http://tracker.ceph.com/issues/18388>`_, `pr#12685 <http://github.com/ceph/ceph/pull/12685>`_, Sage Weil, Nathan Cutler)
-* tests: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa) (`issue#18574 <http://tracker.ceph.com/issues/18574>`_, `pr#13022 <http://github.com/ceph/ceph/pull/13022>`_, John Spray)
-* tests: merge ceph-qa-suite (`pr#12455 <http://github.com/ceph/ceph/pull/12455>`_, Sage Weil)
-* tests: objecter_requests workunit fails on wip branches (`issue#18393 <http://tracker.ceph.com/issues/18393>`_, `pr#12759 <http://github.com/ceph/ceph/pull/12759>`_, Sage Weil)
-* tests: populate mnt_point in qa/tasks/ceph.py (`issue#18383 <http://tracker.ceph.com/issues/18383>`_, `pr#12743 <http://github.com/ceph/ceph/pull/12743>`_, Nathan Cutler)
-* tests: qemu/tests/qemu-iotests/077 fails in dumpling, hammer, and jewel (`issue#10773 <http://tracker.ceph.com/issues/10773>`_, `pr#12423 <http://github.com/ceph/ceph/pull/12423>`_, Jason Dillaman)
-* tests: run fs/thrash on xfs instead of btrfs (`issue#17151 <http://tracker.ceph.com/issues/17151>`_, `pr#13039 <http://github.com/ceph/ceph/pull/13039>`_, Nathan Cutler)
-* tests: update Ubuntu image url after ceph.com refactor (`issue#18542 <http://tracker.ceph.com/issues/18542>`_, `pr#12957 <http://github.com/ceph/ceph/pull/12957>`_, Jason Dillaman)
-* tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci * (`issue#18440 <http://tracker.ceph.com/issues/18440>`_, `pr#12824 * <http://github.com/ceph/ceph/pull/12824>`_, Venky Shankar, Nathan Cutler)
-* tools: add a tool to rebuild mon store from OSD (`issue#17179 <http://tracker.ceph.com/issues/17179>`_, `issue#17400 <http://tracker.ceph.com/issues/17400>`_, `pr#11125 <http://github.com/ceph/ceph/pull/11125>`_, Kefu Chai, xie xingguo)
-* tools: ceph-objectstore-tool crashes if --journal-path <a-directory> (`issue#17307 <http://tracker.ceph.com/issues/17307>`_, `pr#11929 <http://github.com/ceph/ceph/pull/11929>`_, Kefu Chai)
-* tools: ceph-objectstore-tool: add a way to split filestore directories offline (`issue#17220 <http://tracker.ceph.com/issues/17220>`_, `pr#11253 <http://github.com/ceph/ceph/pull/11253>`_, Josh Durgin)
-* tools: crushtool --compile generates output despite missing item (`issue#17306 <http://tracker.ceph.com/issues/17306>`_, `pr#11931 <http://github.com/ceph/ceph/pull/11931>`_, Kefu Chai)
-
-
-v0.94.9 Hammer
-==============
-
-This Hammer point release fixes a build issue present in 0.94.8 that prevented us
-from generating packages for Ubuntu Precise and CentOS 6.x.
-
-We recommend all users of v0.94.7 or older upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.9.txt>`.
-
-Notable Changes
----------------
-
-* build/ops: revert: boost uuid makes valgrind complain (`pr#10913 <http://github.com/ceph/ceph/pull/10913>`_, Sage Weil)
-
-
-v0.94.8 Hammer
-==============
-
-This Hammer point release fixes several bugs.
-
-We recommend that all hammer v0.94.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.8.txt>`.
-
-Notable Changes
----------------
-
-* build/ops: rocksdb do not link against tcmalloc if it's disabled (`issue#14799 <http://tracker.ceph.com/issues/14799>`_, `pr#10750 <http://github.com/ceph/ceph/pull/10750>`_, Sage Weil, Kefu Chai)
-* build/ops: Add -D_LARGEFILE64_SOURCE to Linux build. (`issue#16611 <http://tracker.ceph.com/issues/16611>`_, `pr#10182 <http://github.com/ceph/ceph/pull/10182>`_, Ira Cooper)
-* build/ops: boost uuid makes valgrind complain (`issue#12736 <http://tracker.ceph.com/issues/12736>`_, `pr#9741 <http://github.com/ceph/ceph/pull/9741>`_, Sage Weil, Rohan Mars)
-* build/ops: ceph-disk s/by-parttype-uuid/by-parttypeuuid/ (`issue#15867 <http://tracker.ceph.com/issues/15867>`_, `pr#9107 <http://github.com/ceph/ceph/pull/9107>`_, Nathan Cutler)
-* common: add units to rados bench output and clean up formatting (`issue#12248 <http://tracker.ceph.com/issues/12248>`_, `pr#8960 <http://github.com/ceph/ceph/pull/8960>`_, Dmitry Yatsushkevich, Brad Hubbard, Gu Zhongyan)
-* common: config set with negative value results in "error setting 'filestore_merge_threshold' to '-40': (22) Invalid argument" (`issue#13829 <http://tracker.ceph.com/issues/13829>`_, `pr#10291 <http://github.com/ceph/ceph/pull/10291>`_, Brad Hubbard, Kefu Chai)
-* common: linking to -lrbd causes process startup times to balloon (`issue#15225 <http://tracker.ceph.com/issues/15225>`_, `pr#8538 <http://github.com/ceph/ceph/pull/8538>`_, Richard W.M. Jones)
-* doc: fix by-parttypeuuid in ceph-disk(8) nroff (`issue#15867 <http://tracker.ceph.com/issues/15867>`_, `pr#10699 <http://github.com/ceph/ceph/pull/10699>`_, Ken Dreyer)
-* fs: double decreased the count to trim caps which will cause failing to respond to cache pressure (`issue#14319 <http://tracker.ceph.com/issues/14319>`_, `pr#8804 <http://github.com/ceph/ceph/pull/8804>`_, Zhi Zhang)
-* log: do not repeat errors to stderr (`issue#14616 <http://tracker.ceph.com/issues/14616>`_, `pr#10227 <http://github.com/ceph/ceph/pull/10227>`_, Sage Weil)
-* mds: failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7 (`issue#16013 <http://tracker.ceph.com/issues/16013>`_, `pr#10198 <http://github.com/ceph/ceph/pull/10198>`_, Yan, Zheng)
-* mds: fix stray purging in 'stripe_count > 1' case (`issue#15050 <http://tracker.ceph.com/issues/15050>`_, `pr#8042 <http://github.com/ceph/ceph/pull/8042>`_, Yan, Zheng)
-* mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs (`issue#15702 <http://tracker.ceph.com/issues/15702>`_, `pr#9404 <http://github.com/ceph/ceph/pull/9404>`_, Zhi Zhang)
-* mon: LibRadosMiscConnectFailure.ConnectFailure (not so intermittent) failure in upgrade/hammer-x (`issue#13992 <http://tracker.ceph.com/issues/13992>`_, `pr#8806 <http://github.com/ceph/ceph/pull/8806>`_, Sage Weil)
-* mon: Monitor: validate prefix on handle_command() (`issue#16297 <http://tracker.ceph.com/issues/16297>`_, `pr#10038 <http://github.com/ceph/ceph/pull/10038>`_, You Ji)
-* mon: drop pg temps from not the current primary in OSDMonitor (`issue#16127 <http://tracker.ceph.com/issues/16127>`_, `pr#9893 <http://github.com/ceph/ceph/pull/9893>`_, Samuel Just)
-* mon: fix calculation of %USED (`issue#15641 <http://tracker.ceph.com/issues/15641>`_, `pr#9125 <http://github.com/ceph/ceph/pull/9125>`_, Ruifeng Yang, David Zafman)
-* mon: improve reweight_by_utilization() logic (`issue#15686 <http://tracker.ceph.com/issues/15686>`_, `pr#9416 <http://github.com/ceph/ceph/pull/9416>`_, xie xingguo)
-* mon: pool quota alarm is not in effect (`issue#15478 <http://tracker.ceph.com/issues/15478>`_, `pr#8593 <http://github.com/ceph/ceph/pull/8593>`_, Danny Al-Gaaf)
-* mon: wrong ceph get mdsmap assertion (`issue#14681 <http://tracker.ceph.com/issues/14681>`_, `pr#7542 <http://github.com/ceph/ceph/pull/7542>`_, Vicente Cheng)
-* msgr: ceph-osd valgrind invalid reads/writes (`issue#15870 <http://tracker.ceph.com/issues/15870>`_, `pr#9238 <http://github.com/ceph/ceph/pull/9238>`_, Samuel Just)
-* objecter: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv (`issue#15760 <http://tracker.ceph.com/issues/15760>`_, `pr#9400 <http://github.com/ceph/ceph/pull/9400>`_, Sage Weil)
-* osd: OSD reporting ENOTEMPTY and crashing (`issue#14766 <http://tracker.ceph.com/issues/14766>`_, `pr#9277 <http://github.com/ceph/ceph/pull/9277>`_, Samuel Just)
-* osd: When generating past intervals due to an import end at pg epoch and fix build_past_intervals_parallel (`issue#12387 <http://tracker.ceph.com/issues/12387>`_, `issue#14438 <http://tracker.ceph.com/issues/14438>`_, `pr#8464 <http://github.com/ceph/ceph/pull/8464>`_, David Zafman)
-* osd: acting_primary not updated on split (`issue#15523 <http://tracker.ceph.com/issues/15523>`_, `pr#9001 <http://github.com/ceph/ceph/pull/9001>`_, Sage Weil)
-* osd: assert(!actingbackfill.empty()): old watch timeout tries to queue repop on replica (`issue#15391 <http://tracker.ceph.com/issues/15391>`_, `pr#8665 <http://github.com/ceph/ceph/pull/8665>`_, Sage Weil)
-* osd: assert(rollback_info_trimmed_to == head) in PGLog (`issue#13965 <http://tracker.ceph.com/issues/13965>`_, `pr#8849 <http://github.com/ceph/ceph/pull/8849>`_, Samuel Just)
-* osd: delete one of the repeated op->mark_started in ReplicatedBackend::sub_op_modify_impl (`issue#16572 <http://tracker.ceph.com/issues/16572>`_, `pr#9977 <http://github.com/ceph/ceph/pull/9977>`_, shun-s)
-* osd: fix omap digest compare when scrub (`issue#16000 <http://tracker.ceph.com/issues/16000>`_, `pr#9271 <http://github.com/ceph/ceph/pull/9271>`_, Xinze Chi)
-* osd: is_split crash in handle_pg_create (`issue#15426 <http://tracker.ceph.com/issues/15426>`_, `pr#8805 <http://github.com/ceph/ceph/pull/8805>`_, Kefu Chai)
-* osd: objects unfound after repair (fixed by repeering the pg) (`issue#15006 <http://tracker.ceph.com/issues/15006>`_, `pr#7961 <http://github.com/ceph/ceph/pull/7961>`_, Jianpeng Ma, Loic Dachary, Kefu Chai)
-* osd: rados cppool omap to ec pool crashes osd (`issue#14695 <http://tracker.ceph.com/issues/14695>`_, `pr#8845 <http://github.com/ceph/ceph/pull/8845>`_, Jianpeng Ma)
-* osd: remove all stale osdmaps in handle_osd_map() (`issue#13990 <http://tracker.ceph.com/issues/13990>`_, `pr#9090 <http://github.com/ceph/ceph/pull/9090>`_, Kefu Chai)
-* osd: send write and read sub ops on behalf of client ops at normal priority in ECBackend (`issue#14313 <http://tracker.ceph.com/issues/14313>`_, `pr#8573 <http://github.com/ceph/ceph/pull/8573>`_, Samuel Just)
-* rbd: snap rollback: restore the link to parent (`issue#14512 <http://tracker.ceph.com/issues/14512>`_, `pr#8535 <http://github.com/ceph/ceph/pull/8535>`_, Alexey Sheplyakov)
-* rgw: S3: set EncodingType in ListBucketResult (`issue#15896 <http://tracker.ceph.com/issues/15896>`_, `pr#8987 <http://github.com/ceph/ceph/pull/8987>`_, Victor Makarov, Robin H. Johnson)
-* rgw: backport rgwx-copy-if-newer for radosgw-agent (`issue#16262 <http://tracker.ceph.com/issues/16262>`_, `pr#9671 <http://github.com/ceph/ceph/pull/9671>`_, Yehuda Sadeh)
-* rgw: bucket listing following object delete is partial (`issue#14826 <http://tracker.ceph.com/issues/14826>`_, `pr#10555 <http://github.com/ceph/ceph/pull/10555>`_, Orit Wasserman)
-* rgw: convert plain object to versioned (with null version) when removing (`issue#15243 <http://tracker.ceph.com/issues/15243>`_, `pr#8755 <http://github.com/ceph/ceph/pull/8755>`_, Yehuda Sadeh)
-* rgw: fix multi-delete query param parsing. (`issue#16618 <http://tracker.ceph.com/issues/16618>`_, `pr#10189 <http://github.com/ceph/ceph/pull/10189>`_, Robin H. Johnson)
-* rgw: have a flavor of bucket deletion to bypass GC and to trigger (`issue#15557 <http://tracker.ceph.com/issues/15557>`_, `pr#10509 <http://github.com/ceph/ceph/pull/10509>`_, Pavan Rallabhandi)
-* rgw: keep track of written_objs correctly (`issue#15886 <http://tracker.ceph.com/issues/15886>`_, `pr#9240 <http://github.com/ceph/ceph/pull/9240>`_, Yehuda Sadeh)
-* rgw: multipart ListPartsResult has missing quotes on ETag (`issue#15334 <http://tracker.ceph.com/issues/15334>`_, `pr#8475 <http://github.com/ceph/ceph/pull/8475>`_, xie xingguo, Robin H. Johnson)
-* rgw: no Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest (`issue#15812 <http://tracker.ceph.com/issues/15812>`_, `pr#9402 <http://github.com/ceph/ceph/pull/9402>`_, Radoslaw Zarzynski)
-* rgw: radosgw server abort when user passed bad parameters to set quota (`issue#14190 <http://tracker.ceph.com/issues/14190>`_, `issue#14191 <http://tracker.ceph.com/issues/14191>`_, `pr#8313 <http://github.com/ceph/ceph/pull/8313>`_, Dunrong Huang)
-* rgw: radosgw-admin region-map set is not reporting the bucket quota correctly (`issue#16815 <http://tracker.ceph.com/issues/16815>`_, `pr#10554 <http://github.com/ceph/ceph/pull/10554>`_, Yehuda Sadeh, Orit Wasserman)
-* rgw: refrain from sending Content-Type/Content-Length for 304 responses (`issue#16327 <http://tracker.ceph.com/issues/16327>`_, `issue#13582 <http://tracker.ceph.com/issues/13582>`_, `issue#15119 <http://tracker.ceph.com/issues/15119>`_, `issue#14005 <http://tracker.ceph.com/issues/14005>`_, `pr#8379 <http://github.com/ceph/ceph/pull/8379>`_, Yehuda Sadeh, Nathan Cutler, Wido den Hollander)
-* rgw: remove bucket index objects when deleting the bucket (`issue#16412 <http://tracker.ceph.com/issues/16412>`_, `pr#10530 <http://github.com/ceph/ceph/pull/10530>`_, Orit Wasserman)
-* rgw: set Access-Control-Allow-Origin to an asterisk if allowed in a rule (`issue#15348 <http://tracker.ceph.com/issues/15348>`_, `pr#8528 <http://github.com/ceph/ceph/pull/8528>`_, Wido den Hollander)
-* rgw: subset of uploaded objects via radosgw are unretrievable when using EC pool (`issue#15745 <http://tracker.ceph.com/issues/15745>`_, `pr#9407 <http://github.com/ceph/ceph/pull/9407>`_, Yehuda Sadeh)
-* rgw: subuser rm fails with status 125 (`issue#14375 <http://tracker.ceph.com/issues/14375>`_, `pr#9961 <http://github.com/ceph/ceph/pull/9961>`_, Orit Wasserman)
-* rgw: the swift key remains after removing a subuser (`issue#12890 <http://tracker.ceph.com/issues/12890>`_, `issue#14375 <http://tracker.ceph.com/issues/14375>`_, `pr#10718 <http://github.com/ceph/ceph/pull/10718>`_, Orit Wasserman, Sangdi Xu)
-* rgw: user quota may not adjust on bucket removal (`issue#14507 <http://tracker.ceph.com/issues/14507>`_, `pr#8113 <http://github.com/ceph/ceph/pull/8113>`_, Edward Yang)
-* tests: be more generous with test timeout (`issue#15403 <http://tracker.ceph.com/issues/15403>`_, `pr#8470 <http://github.com/ceph/ceph/pull/8470>`_, Loic Dachary)
-* tests: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable (`issue#16289 <http://tracker.ceph.com/issues/16289>`_, `pr#9722 <http://github.com/ceph/ceph/pull/9722>`_, Mykola Golub)
-
-v0.94.7 Hammer
-==============
-
-This Hammer point release fixes several minor bugs. It also includes
-a backport of an improved 'ceph osd reweight-by-utilization' command
-for handling OSDs with higher-than-average utilizations.
-
-We recommend that all hammer v0.94.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.7.txt>`.
-
-Notable Changes
----------------
-
-* auth: keyring permisions for mon deamon (`issue#14950 <http://tracker.ceph.com/issues/14950>`_, `pr#8049 <http://github.com/ceph/ceph/pull/8049>`_, Owen Synge)
-* auth: PK11_DestroyContext() is called twice if PK11_DigestFinal() fails (`issue#14958 <http://tracker.ceph.com/issues/14958>`_, `pr#7922 <http://github.com/ceph/ceph/pull/7922>`_, Brad Hubbard, Dunrong Huang)
-* auth: use libnss more safely (`issue#14620 <http://tracker.ceph.com/issues/14620>`_, `pr#7488 <http://github.com/ceph/ceph/pull/7488>`_, Sage Weil)
-* ceph-disk: use blkid instead of sgdisk -i (`issue#14080 <http://tracker.ceph.com/issues/14080>`_, `issue#14094 <http://tracker.ceph.com/issues/14094>`_, `pr#7475 <http://github.com/ceph/ceph/pull/7475>`_, Ilya Dryomov, Loic Dachary)
-* ceph-fuse: fix ceph-fuse writing to stale log file after log rotation (`issue#12350 <http://tracker.ceph.com/issues/12350>`_, `pr#7110 <http://github.com/ceph/ceph/pull/7110>`_, Zhi Zhang)
-* ceph init script unconditionally sources /lib/lsb/init-functions (`issue#14402 <http://tracker.ceph.com/issues/14402>`_, `pr#7797 <http://github.com/ceph/ceph/pull/7797>`_, Yan, Zheng)
-* ceph.in: Notify user that 'tell' can't be used in interactive mode (`issue#14773 <http://tracker.ceph.com/issues/14773>`_, `pr#7656 <http://github.com/ceph/ceph/pull/7656>`_, David Zafman)
-* ceph-objectstore-tool, osd: Fix import handling (`issue#10794 <http://tracker.ceph.com/issues/10794>`_, `issue#13382 <http://tracker.ceph.com/issues/13382>`_, `pr#7917 <http://github.com/ceph/ceph/pull/7917>`_, Sage Weil, David Zafman)
-* client: added permission check based on getgrouplist (`issue#13268 <http://tracker.ceph.com/issues/13268>`_, `pr#6604 <http://github.com/ceph/ceph/pull/6604>`_, Yan, Zheng, Danny Al-Gaaf)
-* client: inoderef (`issue#13729 <http://tracker.ceph.com/issues/13729>`_, `pr#6551 <http://github.com/ceph/ceph/pull/6551>`_, Yan, Zheng)
-* common: clock skew report is incorrect by ceph health detail command (`issue#14175 <http://tracker.ceph.com/issues/14175>`_, `pr#8051 <http://github.com/ceph/ceph/pull/8051>`_, Joao Eduardo Luis)
-* global/pidfile: do not start two daemons with a single pid-file (`issue#13422 <http://tracker.ceph.com/issues/13422>`_, `pr#7671 <http://github.com/ceph/ceph/pull/7671>`_, Loic Dachary, shun song)
-* librados: segfault in Objecter::handle_watch_notify (`issue#13805 <http://tracker.ceph.com/issues/13805>`_, `pr#7992 <http://github.com/ceph/ceph/pull/7992>`_, Sage Weil)
-* librbd: flattening an rbd image with active IO can lead to hang (`issue#14092 <http://tracker.ceph.com/issues/14092>`_, `issue#14483 <http://tracker.ceph.com/issues/14483>`_, `pr#7485 <http://github.com/ceph/ceph/pull/7485>`_, Jason Dillaman)
-* librbd: possible QEMU deadlock after creating image snapshots (`issue#14988 <http://tracker.ceph.com/issues/14988>`_, `pr#8011 <http://github.com/ceph/ceph/pull/8011>`_, Jason Dillaman)
-* mon: Bucket owner isn't changed after unlink/link (`issue#11076 <http://tracker.ceph.com/issues/11076>`_, `pr#8583 <http://github.com/ceph/ceph/pull/8583>`_, Zengran Zhang)
-* monclient: avoid key renew storm on clock skew (`issue#12065 <http://tracker.ceph.com/issues/12065>`_, `pr#8398 <http://github.com/ceph/ceph/pull/8398>`_, Alexey Sheplyakov)
-* mon: implement reweight-by-utilization feature (`issue#15054 <http://tracker.ceph.com/issues/15054>`_, `pr#8026 <http://github.com/ceph/ceph/pull/8026>`_, Kefu Chai, Dan van der Ster, Sage Weil)
-* mon/LogMonitor: use the configured facility if log to syslog (`issue#13748 <http://tracker.ceph.com/issues/13748>`_, `pr#7648 <http://github.com/ceph/ceph/pull/7648>`_, Kefu Chai)
-* mon: mon sync does not copy config-key (`issue#14577 <http://tracker.ceph.com/issues/14577>`_, `pr#7576 <http://github.com/ceph/ceph/pull/7576>`_, Xiaowei Chen)
-* mon/OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1 (`issue#15655 <http://tracker.ceph.com/issues/15655>`_, `pr#8979 <http://github.com/ceph/ceph/pull/8979>`_, Samuel Just)
-* osd: consume_maps clearing of waiting_for_pg needs to check the spg_t shard for acting set membership (`issue#14278 <http://tracker.ceph.com/issues/14278>`_, `pr#7577 <http://github.com/ceph/ceph/pull/7577>`_, Samuel Just)
-* osd: log inconsistent shard sizes (`issue#14009 <http://tracker.ceph.com/issues/14009>`_, `pr#6946 <http://github.com/ceph/ceph/pull/6946>`_, Loic Dachary)
-* osd: OSD coredumps with leveldb compact on mount = true (`issue#14748 <http://tracker.ceph.com/issues/14748>`_, `pr#7645 <http://github.com/ceph/ceph/pull/7645>`_, Xiaoxi Chen)
-* osd/OSDMap: reset osd_primary_affinity shared_ptr when deepish_copy_from (`issue#14686 <http://tracker.ceph.com/issues/14686>`_, `pr#7590 <http://github.com/ceph/ceph/pull/7590>`_, Xinze Chi)
-* osd: Protect against excessively large object map sizes (`issue#15121 <http://tracker.ceph.com/issues/15121>`_, `pr#8401 <http://github.com/ceph/ceph/pull/8401>`_, Jason Dillaman)
-* osd/ReplicatedPG: do not proxy read *and* process op locally (`issue#15171 <http://tracker.ceph.com/issues/15171>`_, `pr#8187 <http://github.com/ceph/ceph/pull/8187>`_, Sage Weil)
-* osd: scrub bogus results when missing a clone (`issue#14875 <http://tracker.ceph.com/issues/14875>`_, `issue#14874 <http://tracker.ceph.com/issues/14874>`_, `issue#14877 <http://tracker.ceph.com/issues/14877>`_, `issue#10098 <http://tracker.ceph.com/issues/10098>`_, `issue#14878 <http://tracker.ceph.com/issues/14878>`_, `issue#14881 <http://tracker.ceph.com/issues/14881>`_, `issue#14882 <http://tracker.ceph.com/issues/14882>`_, `issue#14883 <http://tracker.ceph.com/issues/14883>`_, `issue#14879 <http://tracker.ceph.com/issues/14879>`_, `issue#10290 <http://tracker.ceph.com/issues/10290>`_, `issue#12740 <http://tracker.ceph.com/issues/12740>`_, `issue#12738 <http://tracker.ceph.com/issues/12738>`_, `issue#14880 <http://tracker.ceph.com/issues/14880>`_, `issue#11135 <http://tracker.ceph.com/issues/11135>`_, `issue#14876 <http://tracker.ceph.com/issues/14876>`_, `issue#10809 <http://tracker.ceph.com/issues/10809>`_, `issue#12193 <http://tracker.ceph.com/issues/12193>`_, `issue#11237 <http://tracker.ceph.com/issues/11237>`_, `pr#7702 <http://github.com/ceph/ceph/pull/7702>`_, Xinze Chi, Sage Weil, John Spray, Kefu Chai, Mykola Golub, David Zafman)
-* osd: Unable to bring up OSD's after dealing with FULL cluster (OSD assert with /include/interval_set.h: 386: FAILED assert(_size >= 0)) (`issue#14428 <http://tracker.ceph.com/issues/14428>`_, `pr#7415 <http://github.com/ceph/ceph/pull/7415>`_, Alexey Sheplyakov)
-* osd: use GMT time for the object name of hitsets (`issue#13192 <http://tracker.ceph.com/issues/13192>`_, `issue#9732 <http://tracker.ceph.com/issues/9732>`_, `issue#12968 <http://tracker.ceph.com/issues/12968>`_, `pr#7883 <http://github.com/ceph/ceph/pull/7883>`_, Kefu Chai, David Zafman)
-* qa/workunits/post-file.sh: sudo (`issue#14586 <http://tracker.ceph.com/issues/14586>`_, `pr#7456 <http://github.com/ceph/ceph/pull/7456>`_, Sage Weil)
-* qa/workunits: remove 'mds setmap' from workunits (`pr#8123 <http://github.com/ceph/ceph/pull/8123>`_, Sage Weil)
-* rgw: default quota params (`issue#12997 <http://tracker.ceph.com/issues/12997>`_, `pr#7188 <http://github.com/ceph/ceph/pull/7188>`_, Daniel Gryniewicz)
-* rgw: make rgw_fronends more forgiving of whitespace (`issue#12038 <http://tracker.ceph.com/issues/12038>`_, `pr#7414 <http://github.com/ceph/ceph/pull/7414>`_, Matt Benjamin)
-* rgw: radosgw-admin bucket check --fix not work (`issue#14215 <http://tracker.ceph.com/issues/14215>`_, `pr#7185 <http://github.com/ceph/ceph/pull/7185>`_, Weijun Duan)
-* rpm package building fails if the build machine has lttng and babeltrace development packages installed locally (`issue#14844 <http://tracker.ceph.com/issues/14844>`_, `pr#8440 <http://github.com/ceph/ceph/pull/8440>`_, Kefu Chai)
-* rpm: redhat-lsb-core dependency was dropped, but is still needed (`issue#14906 <http://tracker.ceph.com/issues/14906>`_, `pr#7876 <http://github.com/ceph/ceph/pull/7876>`_, Nathan Cutler)
-* test_bit_vector.cc uses magic numbers against #defines that vary (`issue#14747 <http://tracker.ceph.com/issues/14747>`_, `pr#7672 <http://github.com/ceph/ceph/pull/7672>`_, Jason Dillaman)
-* test/librados/tier.cc doesn't completely clean up EC pools (`issue#13878 <http://tracker.ceph.com/issues/13878>`_, `pr#8052 <http://github.com/ceph/ceph/pull/8052>`_, Loic Dachary, Dan Mick)
-* tests: bufferlist: do not expect !is_page_aligned() after unaligned rebuild (`issue#15305 <http://tracker.ceph.com/issues/15305>`_, `pr#8272 <http://github.com/ceph/ceph/pull/8272>`_, Kefu Chai)
-* tools: fix race condition in seq/rand bench (part 1) (`issue#14968 <http://tracker.ceph.com/issues/14968>`_, `issue#14873 <http://tracker.ceph.com/issues/14873>`_, `pr#7896 <http://github.com/ceph/ceph/pull/7896>`_, Alexey Sheplyakov, Piotr Dałek)
-* tools: fix race condition in seq/rand bench (part 2) (`issue#14873 <http://tracker.ceph.com/issues/14873>`_, `pr#7817 <http://github.com/ceph/ceph/pull/7817>`_, Alexey Sheplyakov)
-* tools/rados: add bench smoke tests (`issue#14971 <http://tracker.ceph.com/issues/14971>`_, `pr#7903 <http://github.com/ceph/ceph/pull/7903>`_, Piotr Dałek)
-* tools, test: Add ceph-objectstore-tool to operate on the meta collection (`issue#14977 <http://tracker.ceph.com/issues/14977>`_, `pr#7911 <http://github.com/ceph/ceph/pull/7911>`_, David Zafman)
-* unittest_crypto: benchmark 100,000 CryptoKey::encrypt() calls (`issue#14863 <http://tracker.ceph.com/issues/14863>`_, `pr#7801 <http://github.com/ceph/ceph/pull/7801>`_, Sage Weil)
-
-
-v0.94.6 Hammer
-======================
-
-This Hammer point release fixes a range of bugs, most notably a fix
-for unbounded growth of the monitor's leveldb store, and a workaround
-in the OSD to keep most xattrs small enough to be stored inline in XFS
-inodes.
-
-We recommend that all hammer v0.94.x users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.6.txt>`.
-
-Notable Changes
----------------
-* build/ops: Ceph daemon failed to start, because the service name was already used. (`issue#13474 <http://tracker.ceph.com/issues/13474>`_, `pr#6832 <http://github.com/ceph/ceph/pull/6832>`_, Chuanhong Wang)
-* build/ops: LTTng-UST tracing should be dynamically enabled (`issue#13274 <http://tracker.ceph.com/issues/13274>`_, `pr#6415 <http://github.com/ceph/ceph/pull/6415>`_, Jason Dillaman)
-* build/ops: ceph upstart script rbdmap.conf incorrectly processes parameters (`issue#13214 <http://tracker.ceph.com/issues/13214>`_, `pr#6159 <http://github.com/ceph/ceph/pull/6159>`_, Sage Weil)
-* build/ops: ceph.spec.in License line does not reflect COPYING (`issue#12935 <http://tracker.ceph.com/issues/12935>`_, `pr#6680 <http://github.com/ceph/ceph/pull/6680>`_, Nathan Cutler)
-* build/ops: ceph.spec.in libcephfs_jni1 has no %post and %postun (`issue#12927 <http://tracker.ceph.com/issues/12927>`_, `pr#5789 <http://github.com/ceph/ceph/pull/5789>`_, Owen Synge)
-* build/ops: configure.ac: no use to add "+" before ac_ext=c (`issue#14330 <http://tracker.ceph.com/issues/14330>`_, `pr#6973 <http://github.com/ceph/ceph/pull/6973>`_, Kefu Chai, Robin H. Johnson)
-* build/ops: deb: strip tracepoint libraries from Wheezy/Precise builds (`issue#14801 <http://tracker.ceph.com/issues/14801>`_, `pr#7316 <http://github.com/ceph/ceph/pull/7316>`_, Jason Dillaman)
-* build/ops: init script reload doesn't work on EL7 (`issue#13709 <http://tracker.ceph.com/issues/13709>`_, `pr#7187 <http://github.com/ceph/ceph/pull/7187>`_, Hervé Rousseau)
-* build/ops: init-rbdmap uses distro-specific functions (`issue#12415 <http://tracker.ceph.com/issues/12415>`_, `pr#6528 <http://github.com/ceph/ceph/pull/6528>`_, Boris Ranto)
-* build/ops: logrotate reload error on Ubuntu 14.04 (`issue#11330 <http://tracker.ceph.com/issues/11330>`_, `pr#5787 <http://github.com/ceph/ceph/pull/5787>`_, Sage Weil)
-* build/ops: miscellaneous spec file fixes (`issue#12931 <http://tracker.ceph.com/issues/12931>`_, `issue#12994 <http://tracker.ceph.com/issues/12994>`_, `issue#12924 <http://tracker.ceph.com/issues/12924>`_, `issue#12360 <http://tracker.ceph.com/issues/12360>`_, `pr#5790 <http://github.com/ceph/ceph/pull/5790>`_, Boris Ranto, Nathan Cutler, Owen Synge, Travis Rhoden, Ken Dreyer)
-* build/ops: pass tcmalloc env through to ceph-os (`issue#14802 <http://tracker.ceph.com/issues/14802>`_, `pr#7365 <http://github.com/ceph/ceph/pull/7365>`_, Sage Weil)
-* build/ops: rbd-replay-* moved from ceph-test-dbg to ceph-common-dbg as well (`issue#13785 <http://tracker.ceph.com/issues/13785>`_, `pr#6580 <http://github.com/ceph/ceph/pull/6580>`_, Loic Dachary)
-* build/ops: unknown argument --quiet in udevadm settle (`issue#13560 <http://tracker.ceph.com/issues/13560>`_, `pr#6530 <http://github.com/ceph/ceph/pull/6530>`_, Jason Dillaman)
-* common: Objecter: pool op callback may hang forever. (`issue#13642 <http://tracker.ceph.com/issues/13642>`_, `pr#6588 <http://github.com/ceph/ceph/pull/6588>`_, xie xingguo)
-* common: Objecter: potential null pointer access when do pool_snap_list. (`issue#13639 <http://tracker.ceph.com/issues/13639>`_, `pr#6839 <http://github.com/ceph/ceph/pull/6839>`_, xie xingguo)
-* common: ThreadPool add/remove work queue methods not thread safe (`issue#12662 <http://tracker.ceph.com/issues/12662>`_, `pr#5889 <http://github.com/ceph/ceph/pull/5889>`_, Jason Dillaman)
-* common: auth/cephx: large amounts of log are produced by osd (`issue#13610 <http://tracker.ceph.com/issues/13610>`_, `pr#6835 <http://github.com/ceph/ceph/pull/6835>`_, Qiankun Zheng)
-* common: client nonce collision due to unshared pid namespaces (`issue#13032 <http://tracker.ceph.com/issues/13032>`_, `pr#6151 <http://github.com/ceph/ceph/pull/6151>`_, Josh Durgin)
-* common: common/Thread:pthread_attr_destroy(thread_attr) when done with it (`issue#12570 <http://tracker.ceph.com/issues/12570>`_, `pr#6157 <http://github.com/ceph/ceph/pull/6157>`_, Piotr Dałek)
-* common: log: Log.cc: Assign LOG_DEBUG priority to syslog calls (`issue#13993 <http://tracker.ceph.com/issues/13993>`_, `pr#6994 <http://github.com/ceph/ceph/pull/6994>`_, Brad Hubbard)
-* common: objecter: cancellation bugs (`issue#13071 <http://tracker.ceph.com/issues/13071>`_, `pr#6155 <http://github.com/ceph/ceph/pull/6155>`_, Jianpeng Ma)
-* common: pure virtual method called (`issue#13636 <http://tracker.ceph.com/issues/13636>`_, `pr#6587 <http://github.com/ceph/ceph/pull/6587>`_, Jason Dillaman)
-* common: small probability sigabrt when setting rados_osd_op_timeout (`issue#13208 <http://tracker.ceph.com/issues/13208>`_, `pr#6143 <http://github.com/ceph/ceph/pull/6143>`_, Ruifeng Yang)
-* common: wrong conditional for boolean function KeyServer::get_auth() (`issue#9756 <http://tracker.ceph.com/issues/9756>`_, `issue#13424 <http://tracker.ceph.com/issues/13424>`_, `pr#6213 <http://github.com/ceph/ceph/pull/6213>`_, Nathan Cutler)
-* crush: crash if we see CRUSH_ITEM_NONE in early rule step (`issue#13477 <http://tracker.ceph.com/issues/13477>`_, `pr#6430 <http://github.com/ceph/ceph/pull/6430>`_, Sage Weil)
-* doc: man: document listwatchers cmd in "rados" manpage (`issue#14556 <http://tracker.ceph.com/issues/14556>`_, `pr#7434 <http://github.com/ceph/ceph/pull/7434>`_, Kefu Chai)
-* doc: regenerate man pages, add orphans commands to radosgw-admin(8) (`issue#14637 <http://tracker.ceph.com/issues/14637>`_, `pr#7524 <http://github.com/ceph/ceph/pull/7524>`_, Ken Dreyer)
-* fs: CephFS restriction on removing cache tiers is overly strict (`issue#11504 <http://tracker.ceph.com/issues/11504>`_, `pr#6402 <http://github.com/ceph/ceph/pull/6402>`_, John Spray)
-* fs: fsstress.sh fails (`issue#12710 <http://tracker.ceph.com/issues/12710>`_, `pr#7454 <http://github.com/ceph/ceph/pull/7454>`_, Yan, Zheng)
-* librados: LibRadosWatchNotify.WatchNotify2Timeout (`issue#13114 <http://tracker.ceph.com/issues/13114>`_, `pr#6336 <http://github.com/ceph/ceph/pull/6336>`_, Sage Weil)
-* librbd: ImageWatcher shouldn't block the notification thread (`issue#14373 <http://tracker.ceph.com/issues/14373>`_, `pr#7407 <http://github.com/ceph/ceph/pull/7407>`_, Jason Dillaman)
-* librbd: diff_iterate needs to handle holes in parent images (`issue#12885 <http://tracker.ceph.com/issues/12885>`_, `pr#6097 <http://github.com/ceph/ceph/pull/6097>`_, Jason Dillaman)
-* librbd: fix merge-diff for >2GB diff-files (`issue#14030 <http://tracker.ceph.com/issues/14030>`_, `pr#6980 <http://github.com/ceph/ceph/pull/6980>`_, Jason Dillaman)
-* librbd: invalidate object map on error even w/o holding lock (`issue#13372 <http://tracker.ceph.com/issues/13372>`_, `pr#6289 <http://github.com/ceph/ceph/pull/6289>`_, Jason Dillaman)
-* librbd: reads larger than cache size hang (`issue#13164 <http://tracker.ceph.com/issues/13164>`_, `pr#6354 <http://github.com/ceph/ceph/pull/6354>`_, Lu Shi)
-* mds: ceph mds add_data_pool check for EC pool is wrong (`issue#12426 <http://tracker.ceph.com/issues/12426>`_, `pr#5766 <http://github.com/ceph/ceph/pull/5766>`_, John Spray)
-* mon: MonitorDBStore: get_next_key() only if prefix matches (`issue#11786 <http://tracker.ceph.com/issues/11786>`_, `pr#5361 <http://github.com/ceph/ceph/pull/5361>`_, Joao Eduardo Luis)
-* mon: OSDMonitor: do not assume a session exists in send_incremental() (`issue#14236 <http://tracker.ceph.com/issues/14236>`_, `pr#7150 <http://github.com/ceph/ceph/pull/7150>`_, Joao Eduardo Luis)
-* mon: check for store writeablility before participating in election (`issue#13089 <http://tracker.ceph.com/issues/13089>`_, `pr#6144 <http://github.com/ceph/ceph/pull/6144>`_, Sage Weil)
-* mon: compact full epochs also (`issue#14537 <http://tracker.ceph.com/issues/14537>`_, `pr#7446 <http://github.com/ceph/ceph/pull/7446>`_, Kefu Chai)
-* mon: include min_last_epoch_clean as part of PGMap::print_summary and PGMap::dump (`issue#13198 <http://tracker.ceph.com/issues/13198>`_, `pr#6152 <http://github.com/ceph/ceph/pull/6152>`_, Guang Yang)
-* mon: map_cache can become inaccurate if osd does not receive the osdmaps (`issue#10930 <http://tracker.ceph.com/issues/10930>`_, `pr#5773 <http://github.com/ceph/ceph/pull/5773>`_, Kefu Chai)
-* mon: should not set isvalid = true when cephx_verify_authorizer return false (`issue#13525 <http://tracker.ceph.com/issues/13525>`_, `pr#6391 <http://github.com/ceph/ceph/pull/6391>`_, Ruifeng Yang)
-* osd: Ceph Pools' MAX AVAIL is 0 if some OSDs' weight is 0 (`issue#13840 <http://tracker.ceph.com/issues/13840>`_, `pr#6834 <http://github.com/ceph/ceph/pull/6834>`_, Chengyuan Li)
-* osd: FileStore calls syncfs(2) even it is not supported (`issue#12512 <http://tracker.ceph.com/issues/12512>`_, `pr#5530 <http://github.com/ceph/ceph/pull/5530>`_, Kefu Chai)
-* osd: FileStore: potential memory leak if getattrs fails. (`issue#13597 <http://tracker.ceph.com/issues/13597>`_, `pr#6420 <http://github.com/ceph/ceph/pull/6420>`_, xie xingguo)
-* osd: IO error on kvm/rbd with an erasure coded pool tier (`issue#12012 <http://tracker.ceph.com/issues/12012>`_, `pr#5897 <http://github.com/ceph/ceph/pull/5897>`_, Kefu Chai)
-* osd: OSD::build_past_intervals_parallel() shall reset primary and up_primary when begin a new past_interval. (`issue#13471 <http://tracker.ceph.com/issues/13471>`_, `pr#6398 <http://github.com/ceph/ceph/pull/6398>`_, xiexingguo)
-* osd: ReplicatedBackend: populate recovery_info.size for clone (bug symptom is size mismatch on replicated backend on a clone in scrub) (`issue#12828 <http://tracker.ceph.com/issues/12828>`_, `pr#6153 <http://github.com/ceph/ceph/pull/6153>`_, Samuel Just)
-* osd: ReplicatedPG: wrong result code checking logic during sparse_read (`issue#14151 <http://tracker.ceph.com/issues/14151>`_, `pr#7179 <http://github.com/ceph/ceph/pull/7179>`_, xie xingguo)
-* osd: ReplicatedPG::hit_set_trim osd/ReplicatedPG.cc: 11006: FAILED assert(obc) (`issue#13192 <http://tracker.ceph.com/issues/13192>`_, `issue#9732 <http://tracker.ceph.com/issues/9732>`_, `issue#12968 <http://tracker.ceph.com/issues/12968>`_, `pr#5825 <http://github.com/ceph/ceph/pull/5825>`_, Kefu Chai, Zhiqiang Wang, Samuel Just, David Zafman)
-* osd: avoid multi set osd_op.outdata in tier pool (`issue#12540 <http://tracker.ceph.com/issues/12540>`_, `pr#6060 <http://github.com/ceph/ceph/pull/6060>`_, Xinze Chi)
-* osd: bug with cache/tiering and snapshot reads (`issue#12748 <http://tracker.ceph.com/issues/12748>`_, `pr#6589 <http://github.com/ceph/ceph/pull/6589>`_, Kefu Chai)
-* osd: ceph osd pool stats broken in hammer (`issue#13843 <http://tracker.ceph.com/issues/13843>`_, `pr#7180 <http://github.com/ceph/ceph/pull/7180>`_, BJ Lougee)
-* osd: ceph-disk prepare fails if device is a symlink (`issue#13438 <http://tracker.ceph.com/issues/13438>`_, `pr#7176 <http://github.com/ceph/ceph/pull/7176>`_, Joe Julian)
-* osd: check for full before changing the cached obc (hammer) (`issue#13098 <http://tracker.ceph.com/issues/13098>`_, `pr#6918 <http://github.com/ceph/ceph/pull/6918>`_, Alexey Sheplyakov)
-* osd: config_opts: increase suicide timeout to 300 to match recovery (`issue#14376 <http://tracker.ceph.com/issues/14376>`_, `pr#7236 <http://github.com/ceph/ceph/pull/7236>`_, Samuel Just)
-* osd: disable filestore_xfs_extsize by default (`issue#14397 <http://tracker.ceph.com/issues/14397>`_, `pr#7411 <http://github.com/ceph/ceph/pull/7411>`_, Ken Dreyer)
-* osd: do not cache unused memory in attrs (`issue#12565 <http://tracker.ceph.com/issues/12565>`_, `pr#6499 <http://github.com/ceph/ceph/pull/6499>`_, Xinze Chi, Ning Yao)
-* osd: dumpling incrementals do not work properly on hammer and newer (`issue#13234 <http://tracker.ceph.com/issues/13234>`_, `pr#6132 <http://github.com/ceph/ceph/pull/6132>`_, Samuel Just)
-* osd: filestore: fix peek_queue for OpSequencer (`issue#13209 <http://tracker.ceph.com/issues/13209>`_, `pr#6145 <http://github.com/ceph/ceph/pull/6145>`_, Xinze Chi)
-* osd: hit set clear repops fired in same epoch as map change -- segfault since they fall into the new interval even though the repops are cleared (`issue#12809 <http://tracker.ceph.com/issues/12809>`_, `pr#5890 <http://github.com/ceph/ceph/pull/5890>`_, Samuel Just)
-* osd: object_info_t::decode() has wrong version (`issue#13462 <http://tracker.ceph.com/issues/13462>`_, `pr#6335 <http://github.com/ceph/ceph/pull/6335>`_, David Zafman)
-* osd: osd/OSD.cc: 2469: FAILED assert(pg_stat_queue.empty()) on shutdown (`issue#14212 <http://tracker.ceph.com/issues/14212>`_, `pr#7178 <http://github.com/ceph/ceph/pull/7178>`_, Sage Weil)
-* osd: osd/PG.cc: 288: FAILED assert(info.last_epoch_started >= info.history.last_epoch_started) (`issue#14015 <http://tracker.ceph.com/issues/14015>`_, `pr#7177 <http://github.com/ceph/ceph/pull/7177>`_, David Zafman)
-* osd: osd/PG.cc: 3837: FAILED assert(0 == "Running incompatible OSD") (`issue#11661 <http://tracker.ceph.com/issues/11661>`_, `pr#7206 <http://github.com/ceph/ceph/pull/7206>`_, David Zafman)
-* osd: osd/ReplicatedPG: Recency fix (`issue#14320 <http://tracker.ceph.com/issues/14320>`_, `pr#7207 <http://github.com/ceph/ceph/pull/7207>`_, Sage Weil, Robert LeBlanc)
-* osd: pg stuck in replay (`issue#13116 <http://tracker.ceph.com/issues/13116>`_, `pr#6401 <http://github.com/ceph/ceph/pull/6401>`_, Sage Weil)
-* osd: race condition detected during send_failures (`issue#13821 <http://tracker.ceph.com/issues/13821>`_, `pr#6755 <http://github.com/ceph/ceph/pull/6755>`_, Sage Weil)
-* osd: randomize scrub times (`issue#10973 <http://tracker.ceph.com/issues/10973>`_, `pr#6199 <http://github.com/ceph/ceph/pull/6199>`_, Kefu Chai)
-* osd: requeue_scrub when kick_object_context_blocked (`issue#12515 <http://tracker.ceph.com/issues/12515>`_, `pr#5891 <http://github.com/ceph/ceph/pull/5891>`_, Xinze Chi)
-* osd: revert: use GMT time for hitsets (`issue#13812 <http://tracker.ceph.com/issues/13812>`_, `pr#6644 <http://github.com/ceph/ceph/pull/6644>`_, Loic Dachary)
-* osd: segfault in agent_work (`issue#13199 <http://tracker.ceph.com/issues/13199>`_, `pr#6146 <http://github.com/ceph/ceph/pull/6146>`_, Samuel Just)
-* osd: should recalc the min_last_epoch_clean when decode PGMap (`issue#13112 <http://tracker.ceph.com/issues/13112>`_, `pr#6154 <http://github.com/ceph/ceph/pull/6154>`_, Kefu Chai)
-* osd: smaller object_info_t xattrs (`issue#14803 <http://tracker.ceph.com/issues/14803>`_, `pr#6544 <http://github.com/ceph/ceph/pull/6544>`_, Sage Weil)
-* osd: we do not ignore notify from down osds (`issue#12990 <http://tracker.ceph.com/issues/12990>`_, `pr#6158 <http://github.com/ceph/ceph/pull/6158>`_, Samuel Just)
-* rbd: QEMU hangs after creating snapshot and stopping VM (`issue#13726 <http://tracker.ceph.com/issues/13726>`_, `pr#6586 <http://github.com/ceph/ceph/pull/6586>`_, Jason Dillaman)
-* rbd: TaskFinisher::cancel should remove event from SafeTimer (`issue#14476 <http://tracker.ceph.com/issues/14476>`_, `pr#7417 <http://github.com/ceph/ceph/pull/7417>`_, Douglas Fuller)
-* rbd: avoid re-writing old-format image header on resize (`issue#13674 <http://tracker.ceph.com/issues/13674>`_, `pr#6585 <http://github.com/ceph/ceph/pull/6585>`_, Jason Dillaman)
-* rbd: fix bench-write (`issue#14225 <http://tracker.ceph.com/issues/14225>`_, `pr#7183 <http://github.com/ceph/ceph/pull/7183>`_, Sage Weil)
-* rbd: rbd-replay does not check for EOF and goes to endless loop (`issue#14452 <http://tracker.ceph.com/issues/14452>`_, `pr#7416 <http://github.com/ceph/ceph/pull/7416>`_, Mykola Golub)
-* rbd: rbd-replay-prep and rbd-replay improvements (`issue#13221 <http://tracker.ceph.com/issues/13221>`_, `issue#13220 <http://tracker.ceph.com/issues/13220>`_, `issue#13378 <http://tracker.ceph.com/issues/13378>`_, `pr#6286 <http://github.com/ceph/ceph/pull/6286>`_, Jason Dillaman)
-* rbd: verify self-managed snapshot functionality on image create (`issue#13633 <http://tracker.ceph.com/issues/13633>`_, `pr#7182 <http://github.com/ceph/ceph/pull/7182>`_, Jason Dillaman)
-* rgw: Make RGW_MAX_PUT_SIZE configurable (`issue#6999 <http://tracker.ceph.com/issues/6999>`_, `pr#7441 <http://github.com/ceph/ceph/pull/7441>`_, Vladislav Odintsov, Yuan Zhou)
-* rgw: Setting ACL on Object removes ETag (`issue#12955 <http://tracker.ceph.com/issues/12955>`_, `pr#6620 <http://github.com/ceph/ceph/pull/6620>`_, Brian Felton)
-* rgw: backport content-type casing (`issue#12939 <http://tracker.ceph.com/issues/12939>`_, `pr#5910 <http://github.com/ceph/ceph/pull/5910>`_, Robin H. Johnson)
-* rgw: bucket listing hangs on versioned buckets (`issue#12913 <http://tracker.ceph.com/issues/12913>`_, `pr#6352 <http://github.com/ceph/ceph/pull/6352>`_, Yehuda Sadeh)
-* rgw: fix wrong etag calculation during POST on S3 bucket. (`issue#11241 <http://tracker.ceph.com/issues/11241>`_, `pr#7442 <http://github.com/ceph/ceph/pull/7442>`_, Vladislav Odintsov, Radoslaw Zarzynski)
-* rgw: get bucket location returns region name, not region api name (`issue#13458 <http://tracker.ceph.com/issues/13458>`_, `pr#6349 <http://github.com/ceph/ceph/pull/6349>`_, Yehuda Sadeh)
-* rgw: missing handling of encoding-type=url when listing keys in bucket (`issue#12735 <http://tracker.ceph.com/issues/12735>`_, `pr#6527 <http://github.com/ceph/ceph/pull/6527>`_, Jeff Weber)
-* rgw: orphan tool should be careful about removing head objects (`issue#12958 <http://tracker.ceph.com/issues/12958>`_, `pr#6351 <http://github.com/ceph/ceph/pull/6351>`_, Yehuda Sadeh)
-* rgw: orphans finish segfaults (`issue#13824 <http://tracker.ceph.com/issues/13824>`_, `pr#7186 <http://github.com/ceph/ceph/pull/7186>`_, Igor Fedotov)
-* rgw: rgw-admin: document orphans commands in usage (`issue#14516 <http://tracker.ceph.com/issues/14516>`_, `pr#7526 <http://github.com/ceph/ceph/pull/7526>`_, Yehuda Sadeh)
-* rgw: swift API returns more than real object count and bytes used when retrieving account metadata (`issue#13140 <http://tracker.ceph.com/issues/13140>`_, `pr#6512 <http://github.com/ceph/ceph/pull/6512>`_, Sangdi Xu)
-* rgw: swift use Civetweb ssl can not get right url (`issue#13628 <http://tracker.ceph.com/issues/13628>`_, `pr#6491 <http://github.com/ceph/ceph/pull/6491>`_, Weijun Duan)
-* rgw: value of Swift API's X-Object-Manifest header is not url_decoded during segment look up (`issue#12728 <http://tracker.ceph.com/issues/12728>`_, `pr#6353 <http://github.com/ceph/ceph/pull/6353>`_, Radoslaw Zarzynski)
-* tests: fixed broken Makefiles after integration of ttng into rados (`issue#13210 <http://tracker.ceph.com/issues/13210>`_, `pr#6322 <http://github.com/ceph/ceph/pull/6322>`_, Sebastien Ponce)
-* tests: fsx failed to compile (`issue#14384 <http://tracker.ceph.com/issues/14384>`_, `pr#7501 <http://github.com/ceph/ceph/pull/7501>`_, Greg Farnum)
-* tests: notification slave needs to wait for master (`issue#13810 <http://tracker.ceph.com/issues/13810>`_, `pr#7226 <http://github.com/ceph/ceph/pull/7226>`_, Jason Dillaman)
-* tests: qa: remove legacy OS support from rbd/qemu-iotests (`issue#13483 <http://tracker.ceph.com/issues/13483>`_, `issue#14385 <http://tracker.ceph.com/issues/14385>`_, `pr#7252 <http://github.com/ceph/ceph/pull/7252>`_, Vasu Kulkarni, Jason Dillaman)
-* tests: testprofile must be removed before it is re-created (`issue#13664 <http://tracker.ceph.com/issues/13664>`_, `pr#6450 <http://github.com/ceph/ceph/pull/6450>`_, Loic Dachary)
-* tools: ceph-monstore-tool must do out_store.close() (`issue#10093 <http://tracker.ceph.com/issues/10093>`_, `pr#7347 <http://github.com/ceph/ceph/pull/7347>`_, huangjun)
-* tools: heavy memory shuffling in rados bench (`issue#12946 <http://tracker.ceph.com/issues/12946>`_, `pr#5810 <http://github.com/ceph/ceph/pull/5810>`_, Piotr Dałek)
-* tools: race condition in rados bench (`issue#12947 <http://tracker.ceph.com/issues/12947>`_, `pr#6791 <http://github.com/ceph/ceph/pull/6791>`_, Piotr Dałek)
-* tools: tool for artificially inflate the leveldb of the mon store for testing purposes (`issue#10093 <http://tracker.ceph.com/issues/10093>`_, `issue#11815 <http://tracker.ceph.com/issues/11815>`_, `issue#14217 <http://tracker.ceph.com/issues/14217>`_, `pr#7412 <http://github.com/ceph/ceph/pull/7412>`_, Cilang Zhao, Bo Cai, Kefu Chai, huangjun, Joao Eduardo Luis)
-
-v0.94.5 Hammer
-==============
-
-This Hammer point release fixes a critical regression in librbd that can cause
-QEMU/KVM to crash when caching is enabled on images that have been cloned.
-
-All v0.94.4 Hammer users are strongly encouraged to upgrade.
-
-Notable Changes
----------------
-* librbd: potential assertion failure during cache read (`issue#13559 <http://tracker.ceph.com/issues/13559>`_, `pr#6348 <http://github.com/ceph/ceph/pull/6348>`_, Jason Dillaman)
-* osd: osd/ReplicatedPG: remove stray debug line (`issue#13455 <http://tracker.ceph.com/issues/13455>`_, `pr#6362 <http://github.com/ceph/ceph/pull/6362>`_, Sage Weil)
-* tests: qemu workunit refers to apt-mirror.front.sepia.ceph.com (`issue#13420 <http://tracker.ceph.com/issues/13420>`_, `pr#6330 <http://github.com/ceph/ceph/pull/6330>`_, Yuan Zhou)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.5.txt>`.
-
-v0.94.4 Hammer
-==============
-
-This Hammer point release fixes several important bugs in Hammer, as well as
-fixing interoperability issues that are required before an upgrade to
-Infernalis. That is, all users of earlier version of Hammer or any
-version of Firefly will first need to upgrade to hammer v0.94.4 or
-later before upgrading to Infernalis (or future releases).
-
-All v0.94.x Hammer users are strongly encouraged to upgrade.
-
-Notable Changes
----------------
-* build/ops: ceph.spec.in: 50-rbd.rules conditional is wrong (`issue#12166 <http://tracker.ceph.com/issues/12166>`_, `pr#5207 <http://github.com/ceph/ceph/pull/5207>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: ceph-common needs python-argparse on older distros, but doesn't require it (`issue#12034 <http://tracker.ceph.com/issues/12034>`_, `pr#5216 <http://github.com/ceph/ceph/pull/5216>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: radosgw requires apache for SUSE only -- makes no sense (`issue#12358 <http://tracker.ceph.com/issues/12358>`_, `pr#5411 <http://github.com/ceph/ceph/pull/5411>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: rpm: cephfs_java not fully conditionalized (`issue#11991 <http://tracker.ceph.com/issues/11991>`_, `pr#5202 <http://github.com/ceph/ceph/pull/5202>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: rpm: not possible to turn off Java (`issue#11992 <http://tracker.ceph.com/issues/11992>`_, `pr#5203 <http://github.com/ceph/ceph/pull/5203>`_, Owen Synge)
-* build/ops: ceph.spec.in: running fdupes unnecessarily (`issue#12301 <http://tracker.ceph.com/issues/12301>`_, `pr#5223 <http://github.com/ceph/ceph/pull/5223>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: snappy-devel for all supported distros (`issue#12361 <http://tracker.ceph.com/issues/12361>`_, `pr#5264 <http://github.com/ceph/ceph/pull/5264>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: SUSE/openSUSE builds need libbz2-devel (`issue#11629 <http://tracker.ceph.com/issues/11629>`_, `pr#5204 <http://github.com/ceph/ceph/pull/5204>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: useless %py_requires breaks SLE11-SP3 build (`issue#12351 <http://tracker.ceph.com/issues/12351>`_, `pr#5412 <http://github.com/ceph/ceph/pull/5412>`_, Nathan Cutler)
-* build/ops: error in ext_mime_map_init() when /etc/mime.types is missing (`issue#11864 <http://tracker.ceph.com/issues/11864>`_, `pr#5385 <http://github.com/ceph/ceph/pull/5385>`_, Ken Dreyer)
-* build/ops: upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s) (`issue#11798 <http://tracker.ceph.com/issues/11798>`_, `pr#5930 <http://github.com/ceph/ceph/pull/5930>`_, Sage Weil)
-* build/ops: With root as default user, unable to have multiple RGW instances running (`issue#10927 <http://tracker.ceph.com/issues/10927>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
-* build/ops: With root as default user, unable to have multiple RGW instances running (`issue#11140 <http://tracker.ceph.com/issues/11140>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
-* build/ops: With root as default user, unable to have multiple RGW instances running (`issue#11686 <http://tracker.ceph.com/issues/11686>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
-* build/ops: With root as default user, unable to have multiple RGW instances running (`issue#12407 <http://tracker.ceph.com/issues/12407>`_, `pr#6161 <http://github.com/ceph/ceph/pull/6161>`_, Sage Weil)
-* cli: ceph: cli throws exception on unrecognized errno (`issue#11354 <http://tracker.ceph.com/issues/11354>`_, `pr#5368 <http://github.com/ceph/ceph/pull/5368>`_, Kefu Chai)
-* cli: ceph tell: broken error message / misleading hinting (`issue#11101 <http://tracker.ceph.com/issues/11101>`_, `pr#5371 <http://github.com/ceph/ceph/pull/5371>`_, Kefu Chai)
-* common: arm: all programs that link to librados2 hang forever on startup (`issue#12505 <http://tracker.ceph.com/issues/12505>`_, `pr#5366 <http://github.com/ceph/ceph/pull/5366>`_, Boris Ranto)
-* common: buffer: critical bufferlist::zero bug (`issue#12252 <http://tracker.ceph.com/issues/12252>`_, `pr#5365 <http://github.com/ceph/ceph/pull/5365>`_, Haomai Wang)
-* common: ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects (`issue#13070 <http://tracker.ceph.com/issues/13070>`_, `pr#5551 <http://github.com/ceph/ceph/pull/5551>`_, Sage Weil)
-* common: do not insert emtpy ptr when rebuild emtpy bufferlist (`issue#12775 <http://tracker.ceph.com/issues/12775>`_, `pr#5764 <http://github.com/ceph/ceph/pull/5764>`_, Xinze Chi)
-* common: [ FAILED ] TestLibRBD.BlockingAIO (`issue#12479 <http://tracker.ceph.com/issues/12479>`_, `pr#5768 <http://github.com/ceph/ceph/pull/5768>`_, Jason Dillaman)
-* common: LibCephFS.GetPoolId failure (`issue#12598 <http://tracker.ceph.com/issues/12598>`_, `pr#5887 <http://github.com/ceph/ceph/pull/5887>`_, Yan, Zheng)
-* common: Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy (`issue#11762 <http://tracker.ceph.com/issues/11762>`_, `pr#5378 <http://github.com/ceph/ceph/pull/5378>`_, Ketor Meng)
-* common: object_map_update fails with -EINVAL return code (`issue#12611 <http://tracker.ceph.com/issues/12611>`_, `pr#5559 <http://github.com/ceph/ceph/pull/5559>`_, Jason Dillaman)
-* common: Pipe: Drop connect_seq increase line (`issue#13093 <http://tracker.ceph.com/issues/13093>`_, `pr#5908 <http://github.com/ceph/ceph/pull/5908>`_, Haomai Wang)
-* common: recursive lock of md_config_t (0) (`issue#12614 <http://tracker.ceph.com/issues/12614>`_, `pr#5759 <http://github.com/ceph/ceph/pull/5759>`_, Josh Durgin)
-* crush: ceph osd crush reweight-subtree does not reweight parent node (`issue#11855 <http://tracker.ceph.com/issues/11855>`_, `pr#5374 <http://github.com/ceph/ceph/pull/5374>`_, Sage Weil)
-* doc: update docs to point to download.ceph.com (`issue#13162 <http://tracker.ceph.com/issues/13162>`_, `pr#6156 <http://github.com/ceph/ceph/pull/6156>`_, Alfredo Deza)
-* fs: ceph-fuse 0.94.2-1trusty segfaults / aborts (`issue#12297 <http://tracker.ceph.com/issues/12297>`_, `pr#5381 <http://github.com/ceph/ceph/pull/5381>`_, Greg Farnum)
-* fs: segfault launching ceph-fuse with bad --name (`issue#12417 <http://tracker.ceph.com/issues/12417>`_, `pr#5382 <http://github.com/ceph/ceph/pull/5382>`_, John Spray)
-* librados: Change radosgw pools default crush ruleset (`issue#11640 <http://tracker.ceph.com/issues/11640>`_, `pr#5754 <http://github.com/ceph/ceph/pull/5754>`_, Yuan Zhou)
-* librbd: correct issues discovered via lockdep / helgrind (`issue#12345 <http://tracker.ceph.com/issues/12345>`_, `pr#5296 <http://github.com/ceph/ceph/pull/5296>`_, Jason Dillaman)
-* librbd: Crash during TestInternal.MultipleResize (`issue#12664 <http://tracker.ceph.com/issues/12664>`_, `pr#5769 <http://github.com/ceph/ceph/pull/5769>`_, Jason Dillaman)
-* librbd: deadlock during cooperative exclusive lock transition (`issue#11537 <http://tracker.ceph.com/issues/11537>`_, `pr#5319 <http://github.com/ceph/ceph/pull/5319>`_, Jason Dillaman)
-* librbd: Possible crash while concurrently writing and shrinking an image (`issue#11743 <http://tracker.ceph.com/issues/11743>`_, `pr#5318 <http://github.com/ceph/ceph/pull/5318>`_, Jason Dillaman)
-* mon: add a cache layer over MonitorDBStore (`issue#12638 <http://tracker.ceph.com/issues/12638>`_, `pr#5697 <http://github.com/ceph/ceph/pull/5697>`_, Kefu Chai)
-* mon: fix crush testing for new pools (`issue#13400 <http://tracker.ceph.com/issues/13400>`_, `pr#6192 <http://github.com/ceph/ceph/pull/6192>`_, Sage Weil)
-* mon: get pools health'info have error (`issue#12402 <http://tracker.ceph.com/issues/12402>`_, `pr#5369 <http://github.com/ceph/ceph/pull/5369>`_, renhwztetecs)
-* mon: implicit erasure code crush ruleset is not validated (`issue#11814 <http://tracker.ceph.com/issues/11814>`_, `pr#5276 <http://github.com/ceph/ceph/pull/5276>`_, Loic Dachary)
-* mon: PaxosService: call post_refresh() instead of post_paxos_update() (`issue#11470 <http://tracker.ceph.com/issues/11470>`_, `pr#5359 <http://github.com/ceph/ceph/pull/5359>`_, Joao Eduardo Luis)
-* mon: pgmonitor: wrong at/near target max“ reporting (`issue#12401 <http://tracker.ceph.com/issues/12401>`_, `pr#5370 <http://github.com/ceph/ceph/pull/5370>`_, huangjun)
-* mon: register_new_pgs() should check ruleno instead of its index (`issue#12210 <http://tracker.ceph.com/issues/12210>`_, `pr#5377 <http://github.com/ceph/ceph/pull/5377>`_, Xinze Chi)
-* mon: Show osd as NONE in ceph osd map <pool> <object> output (`issue#11820 <http://tracker.ceph.com/issues/11820>`_, `pr#5376 <http://github.com/ceph/ceph/pull/5376>`_, Shylesh Kumar)
-* mon: the output is wrong when runing ceph osd reweight (`issue#12251 <http://tracker.ceph.com/issues/12251>`_, `pr#5372 <http://github.com/ceph/ceph/pull/5372>`_, Joao Eduardo Luis)
-* osd: allow peek_map_epoch to return an error (`issue#13060 <http://tracker.ceph.com/issues/13060>`_, `pr#5892 <http://github.com/ceph/ceph/pull/5892>`_, Sage Weil)
-* osd: cache agent is idle although one object is left in the cache (`issue#12673 <http://tracker.ceph.com/issues/12673>`_, `pr#5765 <http://github.com/ceph/ceph/pull/5765>`_, Loic Dachary)
-* osd: copy-from doesn't preserve truncate_{seq,size} (`issue#12551 <http://tracker.ceph.com/issues/12551>`_, `pr#5885 <http://github.com/ceph/ceph/pull/5885>`_, Samuel Just)
-* osd: crash creating/deleting pools (`issue#12429 <http://tracker.ceph.com/issues/12429>`_, `pr#5527 <http://github.com/ceph/ceph/pull/5527>`_, John Spray)
-* osd: fix repair when recorded digest is wrong (`issue#12577 <http://tracker.ceph.com/issues/12577>`_, `pr#5468 <http://github.com/ceph/ceph/pull/5468>`_, Sage Weil)
-* osd: include/ceph_features: define HAMMER_0_94_4 feature (`issue#13026 <http://tracker.ceph.com/issues/13026>`_, `pr#5687 <http://github.com/ceph/ceph/pull/5687>`_, Sage Weil)
-* osd: is_new_interval() fixes (`issue#10399 <http://tracker.ceph.com/issues/10399>`_, `pr#5691 <http://github.com/ceph/ceph/pull/5691>`_, Jason Dillaman)
-* osd: is_new_interval() fixes (`issue#11771 <http://tracker.ceph.com/issues/11771>`_, `pr#5691 <http://github.com/ceph/ceph/pull/5691>`_, Jason Dillaman)
-* osd: long standing slow requests: connection->session->waiting_for_map->connection ref cycle (`issue#12338 <http://tracker.ceph.com/issues/12338>`_, `pr#5761 <http://github.com/ceph/ceph/pull/5761>`_, Samuel Just)
-* osd: Mutex Assert from PipeConnection::try_get_pipe (`issue#12437 <http://tracker.ceph.com/issues/12437>`_, `pr#5758 <http://github.com/ceph/ceph/pull/5758>`_, David Zafman)
-* osd: pg_interval_t::check_new_interval - for ec pool, should not rely on min_size to determine if the PG was active at the interval (`issue#12162 <http://tracker.ceph.com/issues/12162>`_, `pr#5373 <http://github.com/ceph/ceph/pull/5373>`_, Guang G Yang)
-* osd: PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#12652 <http://tracker.ceph.com/issues/12652>`_, `pr#5763 <http://github.com/ceph/ceph/pull/5763>`_, Sage Weil)
-* osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (`issue#11358 <http://tracker.ceph.com/issues/11358>`_, `pr#5380 <http://github.com/ceph/ceph/pull/5380>`_, Samuel Just)
-* osd: read on chunk-aligned xattr not handled (`issue#12309 <http://tracker.ceph.com/issues/12309>`_, `pr#5367 <http://github.com/ceph/ceph/pull/5367>`_, Sage Weil)
-* osd: suicide timeout during peering - search for missing objects (`issue#12523 <http://tracker.ceph.com/issues/12523>`_, `pr#5762 <http://github.com/ceph/ceph/pull/5762>`_, Guang G Yang)
-* osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (`issue#12223 <http://tracker.ceph.com/issues/12223>`_, `pr#5757 <http://github.com/ceph/ceph/pull/5757>`_, Samuel Just)
-* rbd: crash during shutdown after writeback blocked by IO errors (`issue#12597 <http://tracker.ceph.com/issues/12597>`_, `pr#5767 <http://github.com/ceph/ceph/pull/5767>`_, Jianpeng Ma)
-* rgw: add delimiter to prefix only when path is specified (`issue#12960 <http://tracker.ceph.com/issues/12960>`_, `pr#5860 <http://github.com/ceph/ceph/pull/5860>`_, Sylvain Baubeau)
-* rgw: create a tool for orphaned objects cleanup (`issue#9604 <http://tracker.ceph.com/issues/9604>`_, `pr#5717 <http://github.com/ceph/ceph/pull/5717>`_, Yehuda Sadeh)
-* rgw: don't preserve acls when copying object (`issue#11563 <http://tracker.ceph.com/issues/11563>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
-* rgw: don't preserve acls when copying object (`issue#12370 <http://tracker.ceph.com/issues/12370>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
-* rgw: don't preserve acls when copying object (`issue#13015 <http://tracker.ceph.com/issues/13015>`_, `pr#6039 <http://github.com/ceph/ceph/pull/6039>`_, Yehuda Sadeh)
-* rgw: Ensure that swift keys don't include backslashes (`issue#7647 <http://tracker.ceph.com/issues/7647>`_, `pr#5716 <http://github.com/ceph/ceph/pull/5716>`_, Yehuda Sadeh)
-* rgw: GWWatcher::handle_error -> common/Mutex.cc: 95: FAILED assert(r == 0) (`issue#12208 <http://tracker.ceph.com/issues/12208>`_, `pr#6164 <http://github.com/ceph/ceph/pull/6164>`_, Yehuda Sadeh)
-* rgw: HTTP return code is not being logged by CivetWeb (`issue#12432 <http://tracker.ceph.com/issues/12432>`_, `pr#5498 <http://github.com/ceph/ceph/pull/5498>`_, Yehuda Sadeh)
-* rgw: init_rados failed leads to repeated delete (`issue#12978 <http://tracker.ceph.com/issues/12978>`_, `pr#6165 <http://github.com/ceph/ceph/pull/6165>`_, Xiaowei Chen)
-* rgw: init some manifest fields when handling explicit objs (`issue#11455 <http://tracker.ceph.com/issues/11455>`_, `pr#5732 <http://github.com/ceph/ceph/pull/5732>`_, Yehuda Sadeh)
-* rgw: Keystone Fernet tokens break auth (`issue#12761 <http://tracker.ceph.com/issues/12761>`_, `pr#6162 <http://github.com/ceph/ceph/pull/6162>`_, Abhishek Lekshmanan)
-* rgw: region data still exist in region-map after region-map update (`issue#12964 <http://tracker.ceph.com/issues/12964>`_, `pr#6163 <http://github.com/ceph/ceph/pull/6163>`_, dwj192)
-* rgw: remove trailing :port from host for purposes of subdomain matching (`issue#12353 <http://tracker.ceph.com/issues/12353>`_, `pr#6042 <http://github.com/ceph/ceph/pull/6042>`_, Yehuda Sadeh)
-* rgw: rest-bench common/WorkQueue.cc: 54: FAILED assert(_threads.empty()) (`issue#3896 <http://tracker.ceph.com/issues/3896>`_, `pr#5383 <http://github.com/ceph/ceph/pull/5383>`_, huangjun)
-* rgw: returns requested bucket name raw in Bucket response header (`issue#12537 <http://tracker.ceph.com/issues/12537>`_, `pr#5715 <http://github.com/ceph/ceph/pull/5715>`_, Yehuda Sadeh)
-* rgw: segmentation fault when rgw_gc_max_objs > HASH_PRIME (`issue#12630 <http://tracker.ceph.com/issues/12630>`_, `pr#5719 <http://github.com/ceph/ceph/pull/5719>`_, Ruifeng Yang)
-* rgw: segments are read during HEAD on Swift DLO (`issue#12780 <http://tracker.ceph.com/issues/12780>`_, `pr#6160 <http://github.com/ceph/ceph/pull/6160>`_, Yehuda Sadeh)
-* rgw: setting max number of buckets for user via ceph.conf option (`issue#12714 <http://tracker.ceph.com/issues/12714>`_, `pr#6166 <http://github.com/ceph/ceph/pull/6166>`_, Vikhyat Umrao)
-* rgw: Swift API: X-Trans-Id header is wrongly formatted (`issue#12108 <http://tracker.ceph.com/issues/12108>`_, `pr#5721 <http://github.com/ceph/ceph/pull/5721>`_, Radoslaw Zarzynski)
-* rgw: testGetContentType and testHead failed (`issue#11091 <http://tracker.ceph.com/issues/11091>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
-* rgw: testGetContentType and testHead failed (`issue#11438 <http://tracker.ceph.com/issues/11438>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
-* rgw: testGetContentType and testHead failed (`issue#12157 <http://tracker.ceph.com/issues/12157>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
-* rgw: testGetContentType and testHead failed (`issue#12158 <http://tracker.ceph.com/issues/12158>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
-* rgw: testGetContentType and testHead failed (`issue#12363 <http://tracker.ceph.com/issues/12363>`_, `pr#5718 <http://github.com/ceph/ceph/pull/5718>`_, Radoslaw Zarzynski)
-* rgw: the arguments 'domain' should not be assigned when return false (`issue#12629 <http://tracker.ceph.com/issues/12629>`_, `pr#5720 <http://github.com/ceph/ceph/pull/5720>`_, Ruifeng Yang)
-* tests: qa/workunits/cephtool/test.sh: don't assume crash_replay_interval=45 (`issue#13406 <http://tracker.ceph.com/issues/13406>`_, `pr#6172 <http://github.com/ceph/ceph/pull/6172>`_, Sage Weil)
-* tests: TEST_crush_rule_create_erasure consistently fails on i386 builder (`issue#12419 <http://tracker.ceph.com/issues/12419>`_, `pr#6201 <http://github.com/ceph/ceph/pull/6201>`_, Loic Dachary)
-* tools: ceph-disk zap should ensure block device (`issue#11272 <http://tracker.ceph.com/issues/11272>`_, `pr#5755 <http://github.com/ceph/ceph/pull/5755>`_, Loic Dachary)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.4.txt>`.
-
-
-v0.94.3 Hammer
-==============
-
-This Hammer point release fixes a critical (though rare) data
-corruption bug that could be triggered when logs are rotated via
-SIGHUP. It also fixes a range of other important bugs in the OSD,
-monitor, RGW, RGW, and CephFS.
-
-All v0.94.x Hammer users are strongly encouraged to upgrade.
-
-Upgrading
----------
-
-* The ``pg ls-by-{pool,primary,osd}`` commands and ``pg ls`` now take
- the argument ``recovering`` instead of ``recovery`` in order to
- include the recovering pgs in the listed pgs.
-
-Notable Changes
----------------
-* librbd: aio calls may block (`issue#11770 <http://tracker.ceph.com/issues/11770>`_, `pr#4875 <http://github.com/ceph/ceph/pull/4875>`_, Jason Dillaman)
-* osd: make the all osd/filestore thread pool suicide timeouts separately configurable (`issue#11701 <http://tracker.ceph.com/issues/11701>`_, `pr#5159 <http://github.com/ceph/ceph/pull/5159>`_, Samuel Just)
-* mon: ceph fails to compile with boost 1.58 (`issue#11982 <http://tracker.ceph.com/issues/11982>`_, `pr#5122 <http://github.com/ceph/ceph/pull/5122>`_, Kefu Chai)
-* tests: TEST_crush_reject_empty must not run a mon (`issue#12285,11975 <http://tracker.ceph.com/issues/12285,11975>`_, `pr#5208 <http://github.com/ceph/ceph/pull/5208>`_, Kefu Chai)
-* osd: FAILED assert(!old_value.deleted()) in upgrade:giant-x-hammer-distro-basic-multi run (`issue#11983 <http://tracker.ceph.com/issues/11983>`_, `pr#5121 <http://github.com/ceph/ceph/pull/5121>`_, Samuel Just)
-* build/ops: linking ceph to tcmalloc causes segfault on SUSE SLE11-SP3 (`issue#12368 <http://tracker.ceph.com/issues/12368>`_, `pr#5265 <http://github.com/ceph/ceph/pull/5265>`_, Thorsten Behrens)
-* common: utf8 and old gcc breakage on RHEL6.5 (`issue#7387 <http://tracker.ceph.com/issues/7387>`_, `pr#4687 <http://github.com/ceph/ceph/pull/4687>`_, Kefu Chai)
-* crush: take crashes due to invalid arg (`issue#11740 <http://tracker.ceph.com/issues/11740>`_, `pr#4891 <http://github.com/ceph/ceph/pull/4891>`_, Sage Weil)
-* rgw: need conversion tool to handle fixes following #11974 (`issue#12502 <http://tracker.ceph.com/issues/12502>`_, `pr#5384 <http://github.com/ceph/ceph/pull/5384>`_, Yehuda Sadeh)
-* rgw: Swift API: support for 202 Accepted response code on container creation (`issue#12299 <http://tracker.ceph.com/issues/12299>`_, `pr#5214 <http://github.com/ceph/ceph/pull/5214>`_, Radoslaw Zarzynski)
-* common: Log::reopen_log_file: take m_flush_mutex (`issue#12520 <http://tracker.ceph.com/issues/12520>`_, `pr#5405 <http://github.com/ceph/ceph/pull/5405>`_, Samuel Just)
-* rgw: Properly respond to the Connection header with Civetweb (`issue#12398 <http://tracker.ceph.com/issues/12398>`_, `pr#5284 <http://github.com/ceph/ceph/pull/5284>`_, Wido den Hollander)
-* rgw: multipart list part response returns incorrect field (`issue#12399 <http://tracker.ceph.com/issues/12399>`_, `pr#5285 <http://github.com/ceph/ceph/pull/5285>`_, Henry Chang)
-* build/ops: ceph.spec.in: 95-ceph-osd.rules, mount.ceph, and mount.fuse.ceph not installed properly on SUSE (`issue#12397 <http://tracker.ceph.com/issues/12397>`_, `pr#5283 <http://github.com/ceph/ceph/pull/5283>`_, Nathan Cutler)
-* rgw: radosgw-admin dumps user info twice (`issue#12400 <http://tracker.ceph.com/issues/12400>`_, `pr#5286 <http://github.com/ceph/ceph/pull/5286>`_, guce)
-* doc: fix doc build (`issue#12180 <http://tracker.ceph.com/issues/12180>`_, `pr#5095 <http://github.com/ceph/ceph/pull/5095>`_, Kefu Chai)
-* tests: backport 11493 fixes, and test, preventing ec cache pools (`issue#12314 <http://tracker.ceph.com/issues/12314>`_, `pr#4961 <http://github.com/ceph/ceph/pull/4961>`_, Samuel Just)
-* rgw: does not send Date HTTP header when civetweb frontend is used (`issue#11872 <http://tracker.ceph.com/issues/11872>`_, `pr#5228 <http://github.com/ceph/ceph/pull/5228>`_, Radoslaw Zarzynski)
-* mon: pg ls is broken (`issue#11910 <http://tracker.ceph.com/issues/11910>`_, `pr#5160 <http://github.com/ceph/ceph/pull/5160>`_, Kefu Chai)
-* librbd: A client opening an image mid-resize can result in the object map being invalidated (`issue#12237 <http://tracker.ceph.com/issues/12237>`_, `pr#5279 <http://github.com/ceph/ceph/pull/5279>`_, Jason Dillaman)
-* doc: missing man pages for ceph-create-keys, ceph-disk-* (`issue#11862 <http://tracker.ceph.com/issues/11862>`_, `pr#4846 <http://github.com/ceph/ceph/pull/4846>`_, Nathan Cutler)
-* tools: ceph-post-file fails on rhel7 (`issue#11876 <http://tracker.ceph.com/issues/11876>`_, `pr#5038 <http://github.com/ceph/ceph/pull/5038>`_, Sage Weil)
-* build/ops: rcceph script is buggy (`issue#12090 <http://tracker.ceph.com/issues/12090>`_, `pr#5028 <http://github.com/ceph/ceph/pull/5028>`_, Owen Synge)
-* rgw: Bucket header is enclosed by quotes (`issue#11874 <http://tracker.ceph.com/issues/11874>`_, `pr#4862 <http://github.com/ceph/ceph/pull/4862>`_, Wido den Hollander)
-* build/ops: packaging: add SuSEfirewall2 service files (`issue#12092 <http://tracker.ceph.com/issues/12092>`_, `pr#5030 <http://github.com/ceph/ceph/pull/5030>`_, Tim Serong)
-* rgw: Keystone PKI token expiration is not enforced (`issue#11722 <http://tracker.ceph.com/issues/11722>`_, `pr#4884 <http://github.com/ceph/ceph/pull/4884>`_, Anton Aksola)
-* build/ops: debian/control: ceph-common (>> 0.94.2) must be >= 0.94.2-2 (`issue#12529,11998 <http://tracker.ceph.com/issues/12529,11998>`_, `pr#5417 <http://github.com/ceph/ceph/pull/5417>`_, Loic Dachary)
-* mon: Clock skew causes missing summary and confuses Calamari (`issue#11879 <http://tracker.ceph.com/issues/11879>`_, `pr#4868 <http://github.com/ceph/ceph/pull/4868>`_, Thorsten Behrens)
-* rgw: rados objects wronly deleted (`issue#12099 <http://tracker.ceph.com/issues/12099>`_, `pr#5117 <http://github.com/ceph/ceph/pull/5117>`_, wuxingyi)
-* tests: kernel_untar_build fails on EL7 (`issue#12098 <http://tracker.ceph.com/issues/12098>`_, `pr#5119 <http://github.com/ceph/ceph/pull/5119>`_, Greg Farnum)
-* fs: Fh ref count will leak if readahead does not need to do read from osd (`issue#12319 <http://tracker.ceph.com/issues/12319>`_, `pr#5427 <http://github.com/ceph/ceph/pull/5427>`_, Zhi Zhang)
-* mon: OSDMonitor: allow addition of cache pool with non-empty snaps with co… (`issue#12595 <http://tracker.ceph.com/issues/12595>`_, `pr#5252 <http://github.com/ceph/ceph/pull/5252>`_, Samuel Just)
-* mon: MDSMonitor: handle MDSBeacon messages properly (`issue#11979 <http://tracker.ceph.com/issues/11979>`_, `pr#5123 <http://github.com/ceph/ceph/pull/5123>`_, Kefu Chai)
-* tools: ceph-disk: get_partition_type fails on /dev/cciss... (`issue#11760 <http://tracker.ceph.com/issues/11760>`_, `pr#4892 <http://github.com/ceph/ceph/pull/4892>`_, islepnev)
-* build/ops: max files open limit for OSD daemon is too low (`issue#12087 <http://tracker.ceph.com/issues/12087>`_, `pr#5026 <http://github.com/ceph/ceph/pull/5026>`_, Owen Synge)
-* mon: add an "osd crush tree" command (`issue#11833 <http://tracker.ceph.com/issues/11833>`_, `pr#5248 <http://github.com/ceph/ceph/pull/5248>`_, Kefu Chai)
-* mon: mon crashes when "ceph osd tree 85 --format json" (`issue#11975 <http://tracker.ceph.com/issues/11975>`_, `pr#4936 <http://github.com/ceph/ceph/pull/4936>`_, Kefu Chai)
-* build/ops: ceph / ceph-dbg steal ceph-objecstore-tool from ceph-test / ceph-test-dbg (`issue#11806 <http://tracker.ceph.com/issues/11806>`_, `pr#5069 <http://github.com/ceph/ceph/pull/5069>`_, Loic Dachary)
-* rgw: DragonDisk fails to create directories via S3: MissingContentLength (`issue#12042 <http://tracker.ceph.com/issues/12042>`_, `pr#5118 <http://github.com/ceph/ceph/pull/5118>`_, Yehuda Sadeh)
-* build/ops: /usr/bin/ceph from ceph-common is broken without installing ceph (`issue#11998 <http://tracker.ceph.com/issues/11998>`_, `pr#5206 <http://github.com/ceph/ceph/pull/5206>`_, Ken Dreyer)
-* build/ops: systemd: Increase max files open limit for OSD daemon (`issue#11964 <http://tracker.ceph.com/issues/11964>`_, `pr#5040 <http://github.com/ceph/ceph/pull/5040>`_, Owen Synge)
-* build/ops: rgw/logrotate.conf calls service with wrong init script name (`issue#12044 <http://tracker.ceph.com/issues/12044>`_, `pr#5055 <http://github.com/ceph/ceph/pull/5055>`_, wuxingyi)
-* common: OPT_INT option interprets 3221225472 as -1073741824, and crashes in Throttle::Throttle() (`issue#11738 <http://tracker.ceph.com/issues/11738>`_, `pr#4889 <http://github.com/ceph/ceph/pull/4889>`_, Kefu Chai)
-* doc: doc/release-notes: v0.94.2 (`issue#11492 <http://tracker.ceph.com/issues/11492>`_, `pr#4934 <http://github.com/ceph/ceph/pull/4934>`_, Sage Weil)
-* common: admin_socket: close socket descriptor in destructor (`issue#11706 <http://tracker.ceph.com/issues/11706>`_, `pr#4657 <http://github.com/ceph/ceph/pull/4657>`_, Jon Bernard)
-* rgw: Object copy bug (`issue#11755 <http://tracker.ceph.com/issues/11755>`_, `pr#4885 <http://github.com/ceph/ceph/pull/4885>`_, Javier M. Mellid)
-* rgw: empty json response when getting user quota (`issue#12245 <http://tracker.ceph.com/issues/12245>`_, `pr#5237 <http://github.com/ceph/ceph/pull/5237>`_, wuxingyi)
-* fs: cephfs Dumper tries to load whole journal into memory at once (`issue#11999 <http://tracker.ceph.com/issues/11999>`_, `pr#5120 <http://github.com/ceph/ceph/pull/5120>`_, John Spray)
-* rgw: Fix tool for #11442 does not correctly fix objects created via multipart uploads (`issue#12242 <http://tracker.ceph.com/issues/12242>`_, `pr#5229 <http://github.com/ceph/ceph/pull/5229>`_, Yehuda Sadeh)
-* rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (`issue#12243 <http://tracker.ceph.com/issues/12243>`_, `pr#5231 <http://github.com/ceph/ceph/pull/5231>`_, Yehuda Sadeh)
-* osd: stuck incomplete (`issue#12362 <http://tracker.ceph.com/issues/12362>`_, `pr#5269 <http://github.com/ceph/ceph/pull/5269>`_, Samuel Just)
-* osd: start_flush: filter out removed snaps before determining snapc's (`issue#11911 <http://tracker.ceph.com/issues/11911>`_, `pr#4899 <http://github.com/ceph/ceph/pull/4899>`_, Samuel Just)
-* librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1) (`issue#12239 <http://tracker.ceph.com/issues/12239>`_, `pr#5243 <http://github.com/ceph/ceph/pull/5243>`_, Jason Dillaman)
-* librbd: new QA client upgrade tests (`issue#12109 <http://tracker.ceph.com/issues/12109>`_, `pr#5046 <http://github.com/ceph/ceph/pull/5046>`_, Jason Dillaman)
-* librbd: [ FAILED ] TestLibRBD.ExclusiveLockTransition (`issue#12238 <http://tracker.ceph.com/issues/12238>`_, `pr#5241 <http://github.com/ceph/ceph/pull/5241>`_, Jason Dillaman)
-* rgw: Swift API: XML document generated in response for GET on account does not contain account name (`issue#12323 <http://tracker.ceph.com/issues/12323>`_, `pr#5227 <http://github.com/ceph/ceph/pull/5227>`_, Radoslaw Zarzynski)
-* rgw: keystone does not support chunked input (`issue#12322 <http://tracker.ceph.com/issues/12322>`_, `pr#5226 <http://github.com/ceph/ceph/pull/5226>`_, Hervé Rousseau)
-* mds: MDS is crashed (mds/CDir.cc: 1391: FAILED assert(!is_complete())) (`issue#11737 <http://tracker.ceph.com/issues/11737>`_, `pr#4886 <http://github.com/ceph/ceph/pull/4886>`_, Yan, Zheng)
-* cli: ceph: cli interactive mode does not understand quotes (`issue#11736 <http://tracker.ceph.com/issues/11736>`_, `pr#4776 <http://github.com/ceph/ceph/pull/4776>`_, Kefu Chai)
-* librbd: add valgrind memory checks for unit tests (`issue#12384 <http://tracker.ceph.com/issues/12384>`_, `pr#5280 <http://github.com/ceph/ceph/pull/5280>`_, Zhiqiang Wang)
-* build/ops: admin/build-doc: script fails silently under certain circumstances (`issue#11902 <http://tracker.ceph.com/issues/11902>`_, `pr#4877 <http://github.com/ceph/ceph/pull/4877>`_, John Spray)
-* osd: Fixes for rados ops with snaps (`issue#11908 <http://tracker.ceph.com/issues/11908>`_, `pr#4902 <http://github.com/ceph/ceph/pull/4902>`_, Samuel Just)
-* build/ops: ceph.spec.in: ceph-common subpackage def needs tweaking for SUSE/openSUSE (`issue#12308 <http://tracker.ceph.com/issues/12308>`_, `pr#4883 <http://github.com/ceph/ceph/pull/4883>`_, Nathan Cutler)
-* fs: client: reference counting 'struct Fh' (`issue#12088 <http://tracker.ceph.com/issues/12088>`_, `pr#5222 <http://github.com/ceph/ceph/pull/5222>`_, Yan, Zheng)
-* build/ops: ceph.spec: update OpenSUSE BuildRequires (`issue#11611 <http://tracker.ceph.com/issues/11611>`_, `pr#4667 <http://github.com/ceph/ceph/pull/4667>`_, Loic Dachary)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.3.txt>`.
-
-
-
-v0.94.2 Hammer
-==============
-
-This Hammer point release fixes a few critical bugs in RGW that can
-prevent objects starting with underscore from behaving properly and
-that prevent garbage collection of deleted objects when using the
-Civetweb standalone mode.
-
-All v0.94.x Hammer users are strongly encouraged to upgrade, and to
-make note of the repair procedure below if RGW is in use.
-
-Upgrading from previous Hammer release
---------------------------------------
-
-Bug #11442 introduced a change that made rgw objects that start with underscore
-incompatible with previous versions. The fix to that bug reverts to the
-previous behavior. In order to be able to access objects that start with an
-underscore and were created in prior Hammer releases, following the upgrade it
-is required to run (for each affected bucket)::
-
- $ radosgw-admin bucket check --check-head-obj-locator \
- --bucket=<bucket> [--fix]
-
-Notable changes
----------------
-
-* build: compilation error: No high-precision counter available (armhf, powerpc..) (#11432, James Page)
-* ceph-dencoder links to libtcmalloc, and shouldn't (#10691, Boris Ranto)
-* ceph-disk: disk zap sgdisk invocation (#11143, Owen Synge)
-* ceph-disk: use a new disk as journal disk,ceph-disk prepare fail (#10983, Loic Dachary)
-* ceph-objectstore-tool should be in the ceph server package (#11376, Ken Dreyer)
-* librados: can get stuck in redirect loop if osdmap epoch == last_force_op_resend (#11026, Jianpeng Ma)
-* librbd: A retransmit of proxied flatten request can result in -EINVAL (Jason Dillaman)
-* librbd: ImageWatcher should cancel in-flight ops on watch error (#11363, Jason Dillaman)
-* librbd: Objectcacher setting max object counts too low (#7385, Jason Dillaman)
-* librbd: Periodic failure of TestLibRBD.DiffIterateStress (#11369, Jason Dillaman)
-* librbd: Queued AIO reference counters not properly updated (#11478, Jason Dillaman)
-* librbd: deadlock in image refresh (#5488, Jason Dillaman)
-* librbd: notification race condition on snap_create (#11342, Jason Dillaman)
-* mds: Hammer uclient checking (#11510, John Spray)
-* mds: remove caps from revoking list when caps are voluntarily released (#11482, Yan, Zheng)
-* messenger: double clear of pipe in reaper (#11381, Haomai Wang)
-* mon: Total size of OSDs is a maginitude less than it is supposed to be. (#11534, Zhe Zhang)
-* osd: don't check order in finish_proxy_read (#11211, Zhiqiang Wang)
-* osd: handle old semi-deleted pgs after upgrade (#11429, Samuel Just)
-* osd: object creation by write cannot use an offset on an erasure coded pool (#11507, Jianpeng Ma)
-* rgw: Improve rgw HEAD request by avoiding read the body of the first chunk (#11001, Guang Yang)
-* rgw: civetweb is hitting a limit (number of threads 1024) (#10243, Yehuda Sadeh)
-* rgw: civetweb should use unique request id (#10295, Orit Wasserman)
-* rgw: critical fixes for hammer (#11447, #11442, Yehuda Sadeh)
-* rgw: fix swift COPY headers (#10662, #10663, #11087, #10645, Radoslaw Zarzynski)
-* rgw: improve performance for large object (multiple chunks) GET (#11322, Guang Yang)
-* rgw: init-radosgw: run RGW as root (#11453, Ken Dreyer)
-* rgw: keystone token cache does not work correctly (#11125, Yehuda Sadeh)
-* rgw: make quota/gc thread configurable for starting (#11047, Guang Yang)
-* rgw: make swift responses of RGW return last-modified, content-length, x-trans-id headers.(#10650, Radoslaw Zarzynski)
-* rgw: merge manifests correctly when there's prefix override (#11622, Yehuda Sadeh)
-* rgw: quota not respected in POST object (#11323, Sergey Arkhipov)
-* rgw: restore buffer of multipart upload after EEXIST (#11604, Yehuda Sadeh)
-* rgw: shouldn't need to disable rgw_socket_path if frontend is configured (#11160, Yehuda Sadeh)
-* rgw: swift: Response header of GET request for container does not contain X-Container-Object-Count, X-Container-Bytes-Used and x-trans-id headers (#10666, Dmytro Iurchenko)
-* rgw: swift: Response header of POST request for object does not contain content-length and x-trans-id headers (#10661, Radoslaw Zarzynski)
-* rgw: swift: response for GET/HEAD on container does not contain the X-Timestamp header (#10938, Radoslaw Zarzynski)
-* rgw: swift: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used (#11036, #10971, Radoslaw Zarzynski)
-* rgw: swift: wrong handling of empty metadata on Swift container (#11088, Radoslaw Zarzynski)
-* tests: TestFlatIndex.cc races with TestLFNIndex.cc (#11217, Xinze Chi)
-* tests: ceph-helpers kill_daemons fails when kill fails (#11398, Loic Dachary)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.2.txt>`.
-
-
-v0.94.1 Hammer
-==============
-
-This bug fix release fixes a few critical issues with CRUSH. The most
-important addresses a bug in feature bit enforcement that may prevent
-pre-hammer clients from communicating with the cluster during an
-upgrade. This only manifests in some cases (for example, when the
-'rack' type is in use in the CRUSH map, and possibly other cases), but for
-safety we strongly recommend that all users use 0.94.1 instead of 0.94 when
-upgrading.
-
-There is also a fix in the new straw2 buckets when OSD weights are 0.
-
-We recommend that all v0.94 users upgrade.
-
-Notable changes
----------------
-
-* crush: fix divide-by-0 in straw2 (#11357 Sage Weil)
-* crush: fix has_v4_buckets (#11364 Sage Weil)
-* osd: fix negative degraded objects during backfilling (#7737 Guang Yang)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.94.1.txt>`.
-
-
-v0.94 Hammer
-============
-
-This major release is expected to form the basis of the next long-term
-stable series. It is intended to supersede v0.80.x Firefly.
-
-Highlights since Giant include:
-
-* *RADOS Performance*: a range of improvements have been made in the
- OSD and client-side librados code that improve the throughput on
- flash backends and improve parallelism and scaling on fast machines.
-* *Simplified RGW deployment*: the ceph-deploy tool now has a new
- 'ceph-deploy rgw create HOST' command that quickly deploys a
- instance of the S3/Swift gateway using the embedded Civetweb server.
- This is vastly simpler than the previous Apache-based deployment.
- There are a few rough edges (e.g., around SSL support) but we
- encourage users to try `the new method`_.
-* *RGW object versioning*: RGW now supports the S3 object versioning
- API, which preserves old version of objects instead of overwriting
- them.
-* *RGW bucket sharding*: RGW can now shard the bucket index for large
- buckets across, improving performance for very large buckets.
-* *RBD object maps*: RBD now has an object map function that tracks
- which parts of the image are allocating, improving performance for
- clones and for commands like export and delete.
-* *RBD mandatory locking*: RBD has a new mandatory locking framework
- (still disabled by default) that adds additional safeguards to
- prevent multiple clients from using the same image at the same time.
-* *RBD copy-on-read*: RBD now supports copy-on-read for image clones,
- improving performance for some workloads.
-* *CephFS snapshot improvements*: Many many bugs have been fixed with
- CephFS snapshots. Although they are still disabled by default,
- stability has improved significantly.
-* *CephFS Recovery tools*: We have built some journal recovery and
- diagnostic tools. Stability and performance of single-MDS systems is
- vastly improved in Giant, and more improvements have been made now
- in Hammer. Although we still recommend caution when storing
- important data in CephFS, we do encourage testing for non-critical
- workloads so that we can better guage the feature, usability,
- performance, and stability gaps.
-* *CRUSH improvements*: We have added a new straw2 bucket algorithm
- that reduces the amount of data migration required when changes are
- made to the cluster.
-* *Shingled erasure codes (SHEC)*: The OSDs now have experimental
- support for shingled erasure codes, which allow a small amount of
- additional storage to be traded for improved recovery performance.
-* *RADOS cache tiering*: A series of changes have been made in the
- cache tiering code that improve performance and reduce latency.
-* *RDMA support*: There is now experimental support the RDMA via the
- Accelio (libxio) library.
-* *New administrator commands*: The 'ceph osd df' command shows
- pertinent details on OSD disk utilizations. The 'ceph pg ls ...'
- command makes it much simpler to query PG states while diagnosing
- cluster issues.
-
-.. _the new method: ../start/quick-ceph-deploy/#add-an-rgw-instance
-
-Other highlights since Firefly include:
-
-* *CephFS*: we have fixed a raft of bugs in CephFS and built some
- basic journal recovery and diagnostic tools. Stability and
- performance of single-MDS systems is vastly improved in Giant.
- Although we do not yet recommend CephFS for production deployments,
- we do encourage testing for non-critical workloads so that we can
- better guage the feature, usability, performance, and stability
- gaps.
-* *Local Recovery Codes*: the OSDs now support an erasure-coding scheme
- that stores some additional data blocks to reduce the IO required to
- recover from single OSD failures.
-* *Degraded vs misplaced*: the Ceph health reports from 'ceph -s' and
- related commands now make a distinction between data that is
- degraded (there are fewer than the desired number of copies) and
- data that is misplaced (stored in the wrong location in the
- cluster). The distinction is important because the latter does not
- compromise data safety.
-* *Tiering improvements*: we have made several improvements to the
- cache tiering implementation that improve performance. Most
- notably, objects are not promoted into the cache tier by a single
- read; they must be found to be sufficiently hot before that happens.
-* *Monitor performance*: the monitors now perform writes to the local
- data store asynchronously, improving overall responsiveness.
-* *Recovery tools*: the ceph-objectstore-tool is greatly expanded to
- allow manipulation of an individual OSDs data store for debugging
- and repair purposes. This is most heavily used by our QA
- infrastructure to exercise recovery code.
-
-I would like to take this opportunity to call out the amazing growth
-in contributors to Ceph beyond the core development team from Inktank.
-Hammer features major new features and improvements from Intel, Fujitsu,
-UnitedStack, Yahoo, UbuntuKylin, CohortFS, Mellanox, CERN, Deutsche
-Telekom, Mirantis, and SanDisk.
-
-Dedication
-----------
-
-This release is dedicated in memoriam to Sandon Van Ness, aka
-Houkouonchi, who unexpectedly passed away a few weeks ago. Sandon was
-responsible for maintaining the large and complex Sepia lab that
-houses the Ceph project's build and test infrastructure. His efforts
-have made an important impact on our ability to reliably test Ceph
-with a relatively small group of people. He was a valued member of
-the team and we will miss him. H is also for Houkouonchi.
-
-Upgrading
----------
-
-* If your existing cluster is running a version older than v0.80.x
- Firefly, please first upgrade to the latest Firefly release before
- moving on to Giant. We have not tested upgrades directly from
- Emperor, Dumpling, or older releases.
-
- We *have* tested:
-
- * Firefly to Hammer
- * Giant to Hammer
- * Dumpling to Firefly to Hammer
-
-* Please upgrade daemons in the following order:
-
- #. Monitors
- #. OSDs
- #. MDSs and/or radosgw
-
- Note that the relative ordering of OSDs and monitors should not matter, but
- we primarily tested upgrading monitors first.
-
-* The ceph-osd daemons will perform a disk-format upgrade improve the
- PG metadata layout and to repair a minor bug in the on-disk format.
- It may take a minute or two for this to complete, depending on how
- many objects are stored on the node; do not be alarmed if they do
- not marked "up" by the cluster immediately after starting.
-
-* If upgrading from v0.93, set
- osd enable degraded writes = false
-
- on all osds prior to upgrading. The degraded writes feature has
- been reverted due to 11155.
-
-* The LTTNG tracing in librbd and librados is disabled in the release packages
- until we find a way to avoid violating distro security policies when linking
- libust.
-
-Upgrading from v0.87.x Giant
-----------------------------
-
-* librbd and librados include lttng tracepoints on distros with
- liblttng 2.4 or later (only Ubuntu Trusty for the ceph.com
- packages). When running a daemon that uses these libraries, i.e. an
- application that calls fork(2) or clone(2) without exec(3), you must
- set LD_PRELOAD=liblttng-ust-fork.so.0 to prevent a crash in the
- lttng atexit handler when the process exits. The only ceph tool that
- requires this is rbd-fuse.
-
-* If rgw_socket_path is defined and rgw_frontends defines a
- socket_port and socket_host, we now allow the rgw_frontends settings
- to take precedence. This change should only affect users who have
- made non-standard changes to their radosgw configuration.
-
-* If you are upgrading specifically from v0.92, you must stop all OSD
- daemons and flush their journals (``ceph-osd -i NNN
- --flush-journal``) before upgrading. There was a transaction
- encoding bug in v0.92 that broke compatibility. Upgrading from v0.93,
- v0.91, or anything earlier is safe.
-
-* The experimental 'keyvaluestore-dev' OSD backend has been renamed
- 'keyvaluestore' (for simplicity) and marked as experimental. To
- enable this untested feature and acknowledge that you understand
- that it is untested and may destroy data, you need to add the
- following to your ceph.conf::
-
- enable experimental unrecoverable data corrupting featuers = keyvaluestore
-
-* The following librados C API function calls take a 'flags' argument whose value
- is now correctly interpreted:
-
- rados_write_op_operate()
- rados_aio_write_op_operate()
- rados_read_op_operate()
- rados_aio_read_op_operate()
-
- The flags were not correctly being translated from the librados constants to the
- internal values. Now they are. Any code that is passing flags to these methods
- should be audited to ensure that they are using the correct LIBRADOS_OP_FLAG_*
- constants.
-
-* The 'rados' CLI 'copy' and 'cppool' commands now use the copy-from operation,
- which means the latest CLI cannot run these commands against pre-firefly OSDs.
-
-* The librados watch/notify API now includes a watch_flush() operation to flush
- the async queue of notify operations. This should be called by any watch/notify
- user prior to rados_shutdown().
-
-* The 'category' field for objects has been removed. This was originally added
- to track PG stat summations over different categories of objects for use by
- radosgw. It is no longer has any known users and is prone to abuse because it
- can lead to a pg_stat_t structure that is unbounded. The librados API calls
- that accept this field now ignore it, and the OSD no longers tracks the
- per-category summations.
-
-* The output for 'rados df' has changed. The 'category' level has been
- eliminated, so there is now a single stat object per pool. The structure of
- the JSON output is different, and the plaintext output has one less column.
-
-* The 'rados create <objectname> [category]' optional category argument is no
- longer supported or recognized.
-
-* rados.py's Rados class no longer has a __del__ method; it was causing
- problems on interpreter shutdown and use of threads. If your code has
- Rados objects with limited lifetimes and you're concerned about locked
- resources, call Rados.shutdown() explicitly.
-
-* There is a new version of the librados watch/notify API with vastly
- improved semantics. Any applications using this interface are
- encouraged to migrate to the new API. The old API calls are marked
- as deprecated and will eventually be removed.
-
-* The librados rados_unwatch() call used to be safe to call on an
- invalid handle. The new version has undefined behavior when passed
- a bogus value (for example, when rados_watch() returns an error and
- handle is not defined).
-
-* The structure of the formatted 'pg stat' command is changed for the
- portion that counts states by name to avoid using the '+' character
- (which appears in state names) as part of the XML token (it is not
- legal).
-
-* Previously, the formatted output of 'ceph pg stat -f ...' was a full
- pg dump that included all metadata about all PGs in the system. It
- is now a concise summary of high-level PG stats, just like the
- unformatted 'ceph pg stat' command.
-
-* All JSON dumps of floating point values were incorrecting surrounding the
- value with quotes. These quotes have been removed. Any consumer of structured
- JSON output that was consuming the floating point values was previously having
- to interpret the quoted string and will most likely need to be fixed to take
- the unquoted number.
-
-* New ability to list all objects from all namespaces that can fail or
- return incomplete results when not all OSDs have been upgraded.
- Features rados --all ls, rados cppool, rados export, rados
- cache-flush-evict-all and rados cache-try-flush-evict-all can also
- fail or return incomplete results.
-
-* Due to a change in the Linux kernel version 3.18 and the limits of the FUSE
- interface, ceph-fuse needs be mounted as root on at least some systems. See
- issues #9997, #10277, and #10542 for details.
-
-Upgrading from v0.80x Firefly (additional notes)
-------------------------------------------------
-
-* The client-side caching for librbd is now enabled by default (rbd
- cache = true). A safety option (rbd cache writethrough until flush
- = true) is also enabled so that writeback caching is not used until
- the library observes a 'flush' command, indicating that the librbd
- users is passing that operation through from the guest VM. This
- avoids potential data loss when used with older versions of qemu
- that do not support flush.
-
- leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-* The 'rados getxattr ...' command used to add a gratuitous newline to the attr
- value; it now does not.
-
-* The ``*_kb perf`` counters on the monitor have been removed. These are
- replaced with a new set of ``*_bytes`` counters (e.g., ``cluster_osd_kb`` is
- replaced by ``cluster_osd_bytes``).
-
-* The ``rd_kb`` and ``wr_kb`` fields in the JSON dumps for pool stats (accessed
- via the ``ceph df detail -f json-pretty`` and related commands) have been
- replaced with corresponding ``*_bytes`` fields. Similarly, the
- ``total_space``, ``total_used``, and ``total_avail`` fields are replaced with
- ``total_bytes``, ``total_used_bytes``, and ``total_avail_bytes`` fields.
-
-* The ``rados df --format=json`` output ``read_bytes`` and ``write_bytes``
- fields were incorrectly reporting ops; this is now fixed.
-
-* The ``rados df --format=json`` output previously included ``read_kb`` and
- ``write_kb`` fields; these have been removed. Please use ``read_bytes`` and
- ``write_bytes`` instead (and divide by 1024 if appropriate).
-
-* The experimental keyvaluestore-dev OSD backend had an on-disk format
- change that prevents existing OSD data from being upgraded. This
- affects developers and testers only.
-
-* mon-specific and osd-specific leveldb options have been removed.
- From this point onward users should use the `leveldb_*` generic
- options and add the options in the appropriate sections of their
- configuration files. Monitors will still maintain the following
- monitor-specific defaults:
-
- leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-* CephFS support for the legacy anchor table has finally been removed.
- Users with file systems created before firefly should ensure that inodes
- with multiple hard links are modified *prior* to the upgrade to ensure that
- the backtraces are written properly. For example::
-
- sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
-
-* We disallow nonsensical 'tier cache-mode' transitions. From this point
- onward, 'writeback' can only transition to 'forward' and 'forward'
- can transition to 1) 'writeback' if there are dirty objects, or 2) any if
- there are no dirty objects.
-
-
-Notable changes since v0.93
----------------------------
-
-* build: a few cmake fixes (Matt Benjamin)
-* build: fix build on RHEL/CentOS 5.9 (Rohan Mars)
-* build: reorganize Makefile to allow modular builds (Boris Ranto)
-* ceph-fuse: be more forgiving on remount (#10982 Greg Farnum)
-* ceph: improve CLI parsing (#11093 David Zafman)
-* common: fix cluster logging to default channel (#11177 Sage Weil)
-* crush: fix parsing of straw2 buckets (#11015 Sage Weil)
-* doc: update man pages (David Zafman)
-* librados: fix leak in C_TwoContexts (Xiong Yiliang)
-* librados: fix leak in watch/notify path (Sage Weil)
-* librbd: fix and improve AIO cache invalidation (#10958 Jason Dillaman)
-* librbd: fix memory leak (Jason Dillaman)
-* librbd: fix ordering/queueing of resize operations (Jason Dillaman)
-* librbd: validate image is r/w on resize/flatten (Jason Dillaman)
-* librbd: various internal locking fixes (Jason Dillaman)
-* lttng: tracing is disabled until we streamline dependencies (Josh Durgin)
-* mon: add bootstrap-rgw profile (Sage Weil)
-* mon: do not pollute mon dir with CSV files from CRUSH check (Loic Dachary)
-* mon: fix clock drift time check interval (#10546 Joao Eduardo Luis)
-* mon: fix units in store stats (Joao Eduardo Luis)
-* mon: improve error handling on erasure code profile set (#10488, #11144 Loic Dachary)
-* mon: set {read,write}_tier on 'osd tier add-cache ...' (Jianpeng Ma)
-* ms: xio: fix misc bugs (Matt Benjamin, Vu Pham)
-* osd: DBObjectMap: fix locking to prevent rare crash (#9891 Samuel Just)
-* osd: fix and document last_epoch_started semantics (Samuel Just)
-* osd: fix divergent entry handling on PG split (Samuel Just)
-* osd: fix leak on shutdown (Kefu Chai)
-* osd: fix recording of digest on scrub (Samuel Just)
-* osd: fix whiteout handling (Sage Weil)
-* rbd: allow v2 striping parameters for clones and imports (Jason Dillaman)
-* rbd: fix formatted output of image features (Jason Dillaman)
-* rbd: updat eman page (Ilya Dryomov)
-* rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: enable IPv6 for civetweb (#10965 Yehuda Sadeh)
-* rgw: fix sysvinit script when rgw_socket_path is not defined (#11159 Yehuda Sadeh, Dan Mick)
-* rgw: pass civetweb configurables through (#10907 Yehuda Sadeh)
-* rgw: use new watch/notify API (Yehuda Sadeh, Sage Weil)
-* osd: reverted degraded writes feature due to 11155
-
-Notable changes since v0.87.x Giant
------------------------------------
-
-* add experimental features option (Sage Weil)
-* arch: fix NEON feaeture detection (#10185 Loic Dachary)
-* asyncmsgr: misc fixes (Haomai Wang)
-* buffer: add 'shareable' construct (Matt Benjamin)
-* buffer: add list::get_contiguous (Sage Weil)
-* buffer: avoid rebuild if buffer already contiguous (Jianpeng Ma)
-* build: CMake support (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
-* build: a few cmake fixes (Matt Benjamin)
-* build: aarch64 build fixes (Noah Watkins, Haomai Wang)
-* build: adjust build deps for yasm, virtualenv (Jianpeng Ma)
-* build: fix 'make check' races (#10384 Loic Dachary)
-* build: fix build on RHEL/CentOS 5.9 (Rohan Mars)
-* build: fix pkg names when libkeyutils is missing (Pankag Garg, Ken Dreyer)
-* build: improve build dependency tooling (Loic Dachary)
-* build: reorganize Makefile to allow modular builds (Boris Ranto)
-* build: support for jemalloc (Shishir Gowda)
-* ceph-disk: Scientific Linux support (Dan van der Ster)
-* ceph-disk: allow journal partition re-use (#10146 Loic Dachary, Dav van der Ster)
-* ceph-disk: call partx/partprobe consistency (#9721 Loic Dachary)
-* ceph-disk: do not re-use partition if encryption is required (Loic Dachary)
-* ceph-disk: fix dmcrypt key permissions (Loic Dachary)
-* ceph-disk: fix umount race condition (#10096 Blaine Gardner)
-* ceph-disk: improved systemd support (Owen Synge)
-* ceph-disk: init=none option (Loic Dachary)
-* ceph-disk: misc fixes (Christos Stavrakakis)
-* ceph-disk: respect --statedir for keyring (Loic Dachary)
-* ceph-disk: set guid if reusing journal partition (Dan van der Ster)
-* ceph-disk: support LUKS for encrypted partitions (Andrew Bartlett, Loic Dachary)
-* ceph-fuse, libcephfs: POSIX file lock support (Yan, Zheng)
-* ceph-fuse, libcephfs: allow xattr caps in inject_release_failure (#9800 John Spray)
-* ceph-fuse, libcephfs: fix I_COMPLETE_ORDERED checks (#9894 Yan, Zheng)
-* ceph-fuse, libcephfs: fix cap flush overflow (Greg Farnum, Yan, Zheng)
-* ceph-fuse, libcephfs: fix root inode xattrs (Yan, Zheng)
-* ceph-fuse, libcephfs: preserve dir ordering (#9178 Yan, Zheng)
-* ceph-fuse, libcephfs: trim inodes before reconnecting to MDS (Yan, Zheng)
-* ceph-fuse,libcephfs: add support for O_NOFOLLOW and O_PATH (Greg Farnum)
-* ceph-fuse,libcephfs: resend requests before completing cap reconnect (#10912 Yan, Zheng)
-* ceph-fuse: be more forgiving on remount (#10982 Greg Farnum)
-* ceph-fuse: fix dentry invalidation on 3.18+ kernels (#9997 Yan, Zheng)
-* ceph-fuse: fix kernel cache trimming (#10277 Yan, Zheng)
-* ceph-fuse: select kernel cache invalidation mechanism based on kernel version (Greg Farnum)
-* ceph-monstore-tool: fix shutdown (#10093 Loic Dachary)
-* ceph-monstore-tool: fix/improve CLI (Joao Eduardo Luis)
-* ceph-objectstore-tool: fix import (#10090 David Zafman)
-* ceph-objectstore-tool: improved import (David Zafman)
-* ceph-objectstore-tool: many improvements and tests (David Zafman)
-* ceph-objectstore-tool: many many improvements (David Zafman)
-* ceph-objectstore-tool: misc improvements, fixes (#9870 #9871 David Zafman)
-* ceph.spec: package rbd-replay-prep (Ken Dreyer)
-* ceph: add 'ceph osd df [tree]' command (#10452 Mykola Golub)
-* ceph: do not parse injectargs twice (Loic Dachary)
-* ceph: fix 'ceph tell ...' command validation (#10439 Joao Eduardo Luis)
-* ceph: improve 'ceph osd tree' output (Mykola Golub)
-* ceph: improve CLI parsing (#11093 David Zafman)
-* ceph: make 'ceph -s' output more readable (Sage Weil)
-* ceph: make 'ceph -s' show PG state counts in sorted order (Sage Weil)
-* ceph: make 'ceph tell mon.* version' work (Mykola Golub)
-* ceph: new 'ceph tell mds.$name_or_rank_or_gid' (John Spray)
-* ceph: show primary-affinity in 'ceph osd tree' (Mykola Golub)
-* ceph: test robustness (Joao Eduardo Luis)
-* ceph_objectstore_tool: behave with sharded flag (#9661 David Zafman)
-* cephfs-journal-tool: add recover_dentries function (#9883 John Spray)
-* cephfs-journal-tool: fix journal import (#10025 John Spray)
-* cephfs-journal-tool: skip up to expire_pos (#9977 John Spray)
-* cleanup rados.h definitions with macros (Ilya Dryomov)
-* common: add 'perf reset ...' admin command (Jianpeng Ma)
-* common: add TableFormatter (Andreas Peters)
-* common: add newline to flushed json output (Sage Weil)
-* common: check syncfs() return code (Jianpeng Ma)
-* common: do not unlock rwlock on destruction (Federico Simoncelli)
-* common: filtering for 'perf dump' (John Spray)
-* common: fix Formatter factory breakage (#10547 Loic Dachary)
-* common: fix block device discard check (#10296 Sage Weil)
-* common: make json-pretty output prettier (Sage Weil)
-* common: remove broken CEPH_LOCKDEP optoin (Kefu Chai)
-* common: shared_cache unit tests (Cheng Cheng)
-* common: support new gperftools header locations (Key Dreyer)
-* config: add $cctid meta variable (Adam Crume)
-* crush: fix buffer overrun for poorly formed rules (#9492 Johnu George)
-* crush: fix detach_bucket (#10095 Sage Weil)
-* crush: fix parsing of straw2 buckets (#11015 Sage Weil)
-* crush: fix several bugs in adjust_item_weight (Rongze Zhu)
-* crush: fix tree bucket behavior (Rongze Zhu)
-* crush: improve constness (Loic Dachary)
-* crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
-* crush: straw bucket weight calculation fixes (#9998 Sage Weil)
-* crush: update tries stats for indep rules (#10349 Loic Dachary)
-* crush: use larger choose_tries value for erasure code rulesets (#10353 Loic Dachary)
-* crushtool: add --location <id> command (Sage Weil, Loic Dachary)
-* debian,rpm: move RBD udev rules to ceph-common (#10864 Ken Dreyer)
-* debian: split python-ceph into python-{rbd,rados,cephfs} (Boris Ranto)
-* default to libnss instead of crypto++ (Federico Gimenez)
-* doc: CephFS disaster recovery guidance (John Spray)
-* doc: CephFS for early adopters (John Spray)
-* doc: add build-doc guidlines for Fedora and CentOS/RHEL (Nilamdyuti Goswami)
-* doc: add dumpling to firefly upgrade section (#7679 John Wilkins)
-* doc: ceph osd reweight vs crush weight (Laurent Guerby)
-* doc: do not suggest dangerous XFS nobarrier option (Dan van der Ster)
-* doc: document erasure coded pool operations (#9970 Loic Dachary)
-* doc: document the LRC per-layer plugin configuration (Yuan Zhou)
-* doc: enable rbd cache on openstack deployments (Sebastien Han)
-* doc: erasure code doc updates (Loic Dachary)
-* doc: file system osd config settings (Kevin Dalley)
-* doc: fix OpenStack Glance docs (#10478 Sebastien Han)
-* doc: improved installation nots on CentOS/RHEL installs (John Wilkins)
-* doc: key/value store config reference (John Wilkins)
-* doc: misc cleanups (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
-* doc: misc improvements (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
-* doc: misc updates (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
-* doc: misc updates (Alfredo Deza, VRan Liu)
-* doc: misc updates (Nilamdyuti Goswami, John Wilkins)
-* doc: new man pages (Nilamdyuti Goswami)
-* doc: preflight doc fixes (John Wilkins)
-* doc: replace cloudfiles with swiftclient Python Swift example (Tim Freund)
-* doc: update PG count guide (Gerben Meijer, Laurent Guerby, Loic Dachary)
-* doc: update man pages (David Zafman)
-* doc: update openstack docs for Juno (Sebastien Han)
-* doc: update release descriptions (Ken Dreyer)
-* doc: update sepia hardware inventory (Sandon Van Ness)
-* erasure-code: add mSHEC erasure code support (Takeshi Miyamae)
-* erasure-code: improved docs (#10340 Loic Dachary)
-* erasure-code: set max_size to 20 (#10363 Loic Dachary)
-* fix cluster logging from non-mon daemons (Sage Weil)
-* init-ceph: check for systemd-run before using it (Boris Ranto)
-* install-deps.sh: do not require sudo when root (Loic Dachary)
-* keyvaluestore: misc fixes (Haomai Wang)
-* keyvaluestore: performance improvements (Haomai Wang)
-* libcephfs,ceph-fuse: add 'status' asok (John Spray)
-* libcephfs,ceph-fuse: fix getting zero-length xattr (#10552 Yan, Zheng)
-* libcephfs: fix dirfrag trimming (#10387 Yan, Zheng)
-* libcephfs: fix mount timeout (#10041 Yan, Zheng)
-* libcephfs: fix test (#10415 Yan, Zheng)
-* libcephfs: fix use-afer-free on umount (#10412 Yan, Zheng)
-* libcephfs: include ceph and git version in client metadata (Sage Weil)
-* librados, osd: new watch/notify implementation (Sage Weil)
-* librados: add blacklist_add convenience method (Jason Dillaman)
-* librados: add rados_pool_get_base_tier() call (Adam Crume)
-* librados: add watch_flush() operation (Sage Weil, Haomai Wang)
-* librados: avoid memcpy on getxattr, read (Jianpeng Ma)
-* librados: cap buffer length (Loic Dachary)
-* librados: create ioctx by pool id (Jason Dillaman)
-* librados: do notify completion in fast-dispatch (Sage Weil)
-* librados: drop 'category' feature (Sage Weil)
-* librados: expose rados_{read|write}_op_assert_version in C API (Kim Vandry)
-* librados: fix infinite loop with skipped map epochs (#9986 Ding Dinghua)
-* librados: fix iterator operator= bugs (#10082 David Zafman, Yehuda Sadeh)
-* librados: fix leak in C_TwoContexts (Xiong Yiliang)
-* librados: fix leak in watch/notify path (Sage Weil)
-* librados: fix null deref when pool DNE (#9944 Sage Weil)
-* librados: fix objecter races (#9617 Josh Durgin)
-* librados: fix pool deletion handling (#10372 Sage Weil)
-* librados: fix pool name caching (#10458 Radoslaw Zarzynski)
-* librados: fix resource leak, misc bugs (#10425 Radoslaw Zarzynski)
-* librados: fix some watch/notify locking (Jason Dillaman, Josh Durgin)
-* librados: fix timer race from recent refactor (Sage Weil)
-* librados: new fadvise API (Ma Jianpeng)
-* librados: only export public API symbols (Jason Dillaman)
-* librados: remove shadowed variable (Kefu Chain)
-* librados: translate op flags from C APIs (Matthew Richards)
-* libradosstriper: fix remove() (Dongmao Zhang)
-* libradosstriper: fix shutdown hang (Dongmao Zhang)
-* libradosstriper: fix stat strtoll (Dongmao Zhang)
-* libradosstriper: fix trunc method (#10129 Sebastien Ponce)
-* libradosstriper: fix write_full when ENOENT (#10758 Sebastien Ponce)
-* libradosstriper: misc fixes (Sebastien Ponce)
-* librbd: CRC protection for RBD image map (Jason Dillaman)
-* librbd: add missing python docstrings (Jason Dillaman)
-* librbd: add per-image object map for improved performance (Jason Dillaman)
-* librbd: add readahead (Adam Crume)
-* librbd: add support for an "object map" indicating which objects exist (Jason Dillaman)
-* librbd: adjust internal locking (Josh Durgin, Jason Dillaman)
-* librbd: better handling of watch errors (Jason Dillaman)
-* librbd: complete pending ops before closing image (#10299 Josh Durgin)
-* librbd: coordinate maint operations through lock owner (Jason Dillaman)
-* librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
-* librbd: differentiate between R/O vs R/W features (Jason Dillaman)
-* librbd: don't close a closed parent in failure path (#10030 Jason Dillaman)
-* librbd: enforce write ordering with a snapshot (Jason Dillaman)
-* librbd: exclusive image locking (Jason Dillaman)
-* librbd: fadvise API (Ma Jianpeng)
-* librbd: fadvise-style hints; add misc hints for certain operations (Jianpeng Ma)
-* librbd: fix and improve AIO cache invalidation (#10958 Jason Dillaman)
-* librbd: fix cache tiers in list_children and snap_unprotect (Adam Crume)
-* librbd: fix coverity false-positives (Jason Dillaman)
-* librbd: fix diff test (#10002 Josh Durgin)
-* librbd: fix list_children from invalid pool ioctxs (#10123 Jason Dillaman)
-* librbd: fix locking for readahead (#10045 Jason Dillaman)
-* librbd: fix memory leak (Jason Dillaman)
-* librbd: fix ordering/queueing of resize operations (Jason Dillaman)
-* librbd: fix performance regression in ObjectCacher (#9513 Adam Crume)
-* librbd: fix snap create races (Jason Dillaman)
-* librbd: fix write vs import race (#10590 Jason Dillaman)
-* librbd: flush AIO operations asynchronously (#10714 Jason Dillaman)
-* librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
-* librbd: lttng tracepoints (Adam Crume)
-* librbd: make async versions of long-running maint operations (Jason Dillaman)
-* librbd: misc fixes (Xinxin Shu, Jason Dillaman)
-* librbd: mock tests (Jason Dillaman)
-* librbd: only export public API symbols (Jason Dillaman)
-* librbd: optionally blacklist clients before breaking locks (#10761 Jason Dillaman)
-* librbd: prevent copyup during shrink (Jason Dillaman)
-* librbd: refactor unit tests to use fixtures (Jason Dillaman)
-* librbd: validate image is r/w on resize/flatten (Jason Dillaman)
-* librbd: various internal locking fixes (Jason Dillaman)
-* many coverity fixes (Danny Al-Gaaf)
-* many many coverity cleanups (Danny Al-Gaaf)
-* mds: 'flush journal' admin command (John Spray)
-* mds: ENOSPC and OSDMap epoch barriers (#7317 John Spray)
-* mds: a whole bunch of initial scrub infrastructure (Greg Farnum)
-* mds: add cephfs-table-tool (John Spray)
-* mds: asok command for fetching subtree map (John Spray)
-* mds: avoid sending traceless replies in most cases (Yan, Zheng)
-* mds: constify MDSCacheObjects (John Spray)
-* mds: dirfrag buf fix (Yan, Zheng)
-* mds: disallow most commands on inactive MDS's (Greg Farnum)
-* mds: drop dentries, leases on deleted directories (#10164 Yan, Zheng)
-* mds: export dir asok command (John Spray)
-* mds: fix MDLog IO callback deadlock (John Spray)
-* mds: fix compat_version for MClientSession (#9945 John Spray)
-* mds: fix deadlock during journal probe vs purge (#10229 Yan, Zheng)
-* mds: fix race trimming log segments (Yan, Zheng)
-* mds: fix reply snapbl (Yan, Zheng)
-* mds: fix sessionmap lifecycle bugs (Yan, Zheng)
-* mds: fix stray/purge perfcounters (#10388 John Spray)
-* mds: handle heartbeat_reset during shutdown (#10382 John Spray)
-* mds: handle zero-size xattr (#10335 Yan, Zheng)
-* mds: initialize root inode xattr version (Yan, Zheng)
-* mds: introduce auth caps (John Spray)
-* mds: many many snapshot-related fixes (Yan, Zheng)
-* mds: misc bugs (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
-* mds: refactor, improve Session storage (John Spray)
-* mds: store backtrace for stray dir (Yan, Zheng)
-* mds: subtree quota support (Yunchuan Wen)
-* mds: verify backtrace when fetching dirfrag (#9557 Yan, Zheng)
-* memstore: free space tracking (John Spray)
-* misc cleanup (Danny Al-Gaaf, David Anderson)
-* misc coverity fixes (Danny Al-Gaaf)
-* misc coverity fixes (Danny Al-Gaaf)
-* misc: various valgrind fixes and cleanups (Danny Al-Gaaf)
-* mon: 'osd crush reweight-all' command (Sage Weil)
-* mon: add 'ceph osd rename-bucket ...' command (Loic Dachary)
-* mon: add bootstrap-rgw profile (Sage Weil)
-* mon: add max pgs per osd warning (Sage Weil)
-* mon: add noforward flag for some mon commands (Mykola Golub)
-* mon: allow adding tiers to fs pools (#10135 John Spray)
-* mon: allow full flag to be manually cleared (#9323 Sage Weil)
-* mon: clean up auth list output (Loic Dachary)
-* mon: delay failure injection (Joao Eduardo Luis)
-* mon: disallow empty pool names (#10555 Wido den Hollander)
-* mon: do not deactivate last mds (#10862 John Spray)
-* mon: do not pollute mon dir with CSV files from CRUSH check (Loic Dachary)
-* mon: drop old ceph_mon_store_converter (Sage Weil)
-* mon: fix 'ceph pg dump_stuck degraded' (Xinxin Shu)
-* mon: fix 'mds fail' for standby MDSs (John Spray)
-* mon: fix 'osd crush link' id resolution (John Spray)
-* mon: fix 'profile osd' use of config-key function on mon (#10844 Joao Eduardo Luis)
-* mon: fix *_ratio* units and types (Sage Weil)
-* mon: fix JSON dumps to dump floats as flots and not strings (Sage Weil)
-* mon: fix MDS health status from peons (#10151 John Spray)
-* mon: fix caching for min_last_epoch_clean (#9987 Sage Weil)
-* mon: fix clock drift time check interval (#10546 Joao Eduardo Luis)
-* mon: fix compatset initalization during mkfs (Joao Eduardo Luis)
-* mon: fix error output for add_data_pool (#9852 Joao Eduardo Luis)
-* mon: fix feature tracking during elections (Joao Eduardo Luis)
-* mon: fix formatter 'pg stat' command output (Sage Weil)
-* mon: fix mds gid/rank/state parsing (John Spray)
-* mon: fix misc error paths (Joao Eduardo Luis)
-* mon: fix paxos off-by-one corner case (#9301 Sage Weil)
-* mon: fix paxos timeouts (#10220 Joao Eduardo Luis)
-* mon: fix stashed monmap encoding (#5203 Xie Rui)
-* mon: fix units in store stats (Joao Eduardo Luis)
-* mon: get canonical OSDMap from leader (#10422 Sage Weil)
-* mon: ignore failure reports from before up_from (#10762 Dan van der Ster, Sage Weil)
-* mon: implement 'fs reset' command (John Spray)
-* mon: improve error handling on erasure code profile set (#10488, #11144 Loic Dachary)
-* mon: improved corrupt CRUSH map detection (Joao Eduardo Luis)
-* mon: include entity name in audit log for forwarded requests (#9913 Joao Eduardo Luis)
-* mon: include pg_temp count in osdmap summary (Sage Weil)
-* mon: log health summary to cluster log (#9440 Joao Eduardo Luis)
-* mon: make 'mds fail' idempotent (John Spray)
-* mon: make pg dump {sum,pgs,pgs_brief} work for format=plain (#5963 #6759 Mykola Golub)
-* mon: new 'ceph pool ls [detail]' command (Sage Weil)
-* mon: new pool safety flags nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
-* mon: new, friendly 'ceph pg ls ...' command (Xinxin Shu)
-* mon: paxos: allow reads while proposing (#9321 #9322 Joao Eduardo Luis)
-* mon: prevent MDS transition from STOPPING (#10791 Greg Farnum)
-* mon: propose all pending work in one transaction (Sage Weil)
-* mon: remove pg_temps for nonexistent pools (Joao Eduardo Luis)
-* mon: require mon_allow_pool_delete option to remove pools (Sage Weil)
-* mon: respect down flag when promoting standbys (John Spray)
-* mon: set globalid prealloc to larger value (Sage Weil)
-* mon: set {read,write}_tier on 'osd tier add-cache ...' (Jianpeng Ma)
-* mon: skip zeroed osd stats in get_rule_avail (#10257 Joao Eduardo Luis)
-* mon: validate min_size range (Jianpeng Ma)
-* mon: wait for writeable before cross-proposing (#9794 Joao Eduardo Luis)
-* mount.ceph: fix suprious error message (#10351 Yan, Zheng)
-* ms: xio: fix misc bugs (Matt Benjamin, Vu Pham)
-* msgr: async: bind threads to CPU cores, improved poll (Haomai Wang)
-* msgr: async: many fixes, unit tests (Haomai Wang)
-* msgr: async: several fixes (Haomai Wang)
-* msgr: asyncmessenger: add kqueue support (#9926 Haomai Wang)
-* msgr: avoid useless new/delete (Haomai Wang)
-* msgr: fix RESETSESSION bug (#10080 Greg Farnum)
-* msgr: fix crc configuration (Mykola Golub)
-* msgr: fix delay injection bug (#9910 Sage Weil, Greg Farnum)
-* msgr: misc unit tests (Haomai Wang)
-* msgr: new AsymcMessenger alternative implementation (Haomai Wang)
-* msgr: prefetch data when doing recv (Yehuda Sadeh)
-* msgr: simple: fix rare deadlock (Greg Farnum)
-* msgr: simple: retry binding to port on failure (#10029 Wido den Hollander)
-* msgr: xio: XioMessenger RDMA support (Casey Bodley, Vu Pham, Matt Benjamin)
-* objectstore: deprecate collection attrs (Sage Weil)
-* osd, librados: fadvise-style librados hints (Jianpeng Ma)
-* osd, librados: fix xattr_cmp_u64 (Dongmao Zhang)
-* osd, librados: revamp PG listing API to handle namespaces (#9031 #9262 #9438 David Zafman)
-* osd, mds: 'ops' as shorthand for 'dump_ops_in_flight' on asok (Sage Weil)
-* osd, mon: add checksums to all OSDMaps (Sage Weil)
-* osd, mon: send intiial pg create time from mon to osd (#9887 David Zafman)
-* osd,mon: add 'norebalance' flag (Kefu Chai)
-* osd,mon: specify OSD features explicitly in MOSDBoot (#10911 Sage Weil)
-* osd: DBObjectMap: fix locking to prevent rare crash (#9891 Samuel Just)
-* osd: EIO on whole-object reads when checksum is wrong (Sage Weil)
-* osd: add erasure code corpus (Loic Dachary)
-* osd: add fadvise flags to ObjectStore API (Jianpeng Ma)
-* osd: add get_latest_osdmap asok command (#9483 #9484 Mykola Golub)
-* osd: add misc tests (Loic Dachary, Danny Al-Gaaf)
-* osd: add option to prioritize heartbeat network traffic (Jian Wen)
-* osd: add support for the SHEC erasure-code algorithm (Takeshi Miyamae, Loic Dachary)
-* osd: allow deletion of objects with watcher (#2339 Sage Weil)
-* osd: allow recovery while below min_size (Samuel Just)
-* osd: allow recovery with fewer than min_size OSDs (Samuel Just)
-* osd: allow sparse read for Push/Pull (Haomai Wang)
-* osd: allow whiteout deletion in cache pool (Sage Weil)
-* osd: allow writes to degraded objects (Samuel Just)
-* osd: allow writes to degraded objects (Samuel Just)
-* osd: avoid publishing unchanged PG stats (Sage Weil)
-* osd: batch pg log trim (Xinze Chi)
-* osd: cache pool: ignore min flush age when cache is full (Xinze Chi)
-* osd: cache recent ObjectContexts (Dong Yuan)
-* osd: cache reverse_nibbles hash value (Dong Yuan)
-* osd: clean up internal ObjectStore interface (Sage Weil)
-* osd: cleanup boost optionals (William Kennington)
-* osd: clear cache on interval change (Samuel Just)
-* osd: do no proxy reads unless target OSDs are new (#10788 Sage Weil)
-* osd: do not abort deep scrub on missing hinfo (#10018 Loic Dachary)
-* osd: do not update digest on inconsistent object (#10524 Samuel Just)
-* osd: don't record digests for snapdirs (#10536 Samuel Just)
-* osd: drop upgrade support for pre-dumpling (Sage Weil)
-* osd: enable and use posix_fadvise (Sage Weil)
-* osd: erasure coding: allow bench.sh to test ISA backend (Yuan Zhou)
-* osd: erasure-code: encoding regression tests, corpus (#9420 Loic Dachary)
-* osd: erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
-* osd: erasure-code: jerasure support for NEON (Loic Dachary)
-* osd: erasure-code: relax cauchy w restrictions (#10325 David Zhang, Loic Dachary)
-* osd: erasure-code: update gf-complete to latest upstream (Loic Dachary)
-* osd: expose non-journal backends via ceph-osd CLI (Hoamai Wang)
-* osd: filejournal: don't cache journal when not using direct IO (Jianpeng Ma)
-* osd: fix JSON output for stray OSDs (Loic Dachary)
-* osd: fix OSDCap parser on old (el6) boost::spirit (#10757 Kefu Chai)
-* osd: fix OSDCap parsing on el6 (#10757 Kefu Chai)
-* osd: fix ObjectStore::Transaction encoding version (#10734 Samuel Just)
-* osd: fix WBTHrottle perf counters (Haomai Wang)
-* osd: fix and document last_epoch_started semantics (Samuel Just)
-* osd: fix auth object selection during repair (#10524 Samuel Just)
-* osd: fix backfill bug (#10150 Samuel Just)
-* osd: fix bug in pending digest updates (#10840 Samuel Just)
-* osd: fix cancel_proxy_read_ops (Sage Weil)
-* osd: fix cleanup of interrupted pg deletion (#10617 Sage Weil)
-* osd: fix divergent entry handling on PG split (Samuel Just)
-* osd: fix ghobject_t formatted output to include shard (#10063 Loic Dachary)
-* osd: fix ioprio option (Mykola Golub)
-* osd: fix ioprio options (Loic Dachary)
-* osd: fix journal shutdown race (Sage Weil)
-* osd: fix journal wrapping bug (#10883 David Zafman)
-* osd: fix leak in SnapTrimWQ (#10421 Kefu Chai)
-* osd: fix leak on shutdown (Kefu Chai)
-* osd: fix memstore free space calculation (Xiaoxi Chen)
-* osd: fix mixed-version peering issues (Samuel Just)
-* osd: fix object age eviction (Zhiqiang Wang)
-* osd: fix object atime calculation (Xinze Chi)
-* osd: fix object digest update bug (#10840 Samuel Just)
-* osd: fix occasional peering stalls (#10431 Sage Weil)
-* osd: fix ordering issue with new transaction encoding (#10534 Dong Yuan)
-* osd: fix osd peer check on scrub messages (#9555 Sage Weil)
-* osd: fix past_interval display bug (#9752 Loic Dachary)
-* osd: fix past_interval generation (#10427 #10430 David Zafman)
-* osd: fix pgls filter ops (#9439 David Zafman)
-* osd: fix recording of digest on scrub (Samuel Just)
-* osd: fix scrub delay bug (#10693 Samuel Just)
-* osd: fix scrub vs try-flush bug (#8011 Samuel Just)
-* osd: fix short read handling on push (#8121 David Zafman)
-* osd: fix stderr with -f or -d (Dan Mick)
-* osd: fix transaction accounting (Jianpeng Ma)
-* osd: fix watch reconnect race (#10441 Sage Weil)
-* osd: fix watch timeout cache state update (#10784 David Zafman)
-* osd: fix whiteout handling (Sage Weil)
-* osd: flush snapshots from cache tier immediately (Sage Weil)
-* osd: force promotion of watch/notify ops (Zhiqiang Wang)
-* osd: handle no-op write with snapshot (#10262 Sage Weil)
-* osd: improve idempotency detection across cache promotion/demotion (#8935 Sage Weil, Samuel Just)
-* osd: include activating peers in blocked_by (#10477 Sage Weil)
-* osd: jerasure and gf-complete updates from upstream (#10216 Loic Dachary)
-* osd: journal: check fsync/fdatasync result (Jianpeng Ma)
-* osd: journal: fix alignment checks, avoid useless memmove (Jianpeng Ma)
-* osd: journal: fix hang on shutdown (#10474 David Zafman)
-* osd: journal: fix header.committed_up_to (Xinze Chi)
-* osd: journal: fix journal zeroing when direct IO is enabled (Xie Rui)
-* osd: journal: initialize throttle (Ning Yao)
-* osd: journal: misc bug fixes (#6003 David Zafman, Samuel Just)
-* osd: journal: update committed_thru after replay (#6756 Samuel Just)
-* osd: keyvaluestore: cleanup dead code (Ning Yao)
-* osd: keyvaluestore: fix getattr semantics (Haomai Wang)
-* osd: keyvaluestore: fix key ordering (#10119 Haomai Wang)
-* osd: keyvaluestore_dev: optimization (Chendi Xue)
-* osd: limit in-flight read requests (Jason Dillaman)
-* osd: log when scrub or repair starts (Loic Dachary)
-* osd: make misdirected op checks robust for EC pools (#9835 Sage Weil)
-* osd: memstore: fix size limit (Xiaoxi Chen)
-* osd: misc FIEMAP fixes (Ma Jianpeng)
-* osd: misc cleanup (Xinze Chi, Yongyue Sun)
-* osd: misc optimizations (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
-* osd: misc scrub fixes (#10017 Loic Dachary)
-* osd: new 'activating' state between peering and active (Sage Weil)
-* osd: new optimized encoding for ObjectStore::Transaction (Dong Yuan)
-* osd: optimize Finisher (Xinze Chi)
-* osd: optimize WBThrottle map with unordered_map (Ning Yao)
-* osd: optimize filter_snapc (Ning Yao)
-* osd: preserve reqids for idempotency checks for promote/demote (Sage Weil, Zhiqiang Wang, Samuel Just)
-* osd: proxy read support (Zhiqiang Wang)
-* osd: proxy reads during cache promote (Zhiqiang Wang)
-* osd: remove dead locking code (Xinxin Shu)
-* osd: remove legacy classic scrub code (Sage Weil)
-* osd: remove unused fields in MOSDSubOp (Xiaoxi Chen)
-* osd: removed some dead code (Xinze Chi)
-* osd: replace MOSDSubOp messages with simpler, optimized MOSDRepOp (Xiaoxi Chen)
-* osd: restrict scrub to certain times of day (Xinze Chi)
-* osd: rocksdb: fix shutdown (Hoamai Wang)
-* osd: store PG metadata in per-collection objects for better concurrency (Sage Weil)
-* osd: store whole-object checksums on scrub, write_full (Sage Weil)
-* osd: support for discard for journal trim (Jianpeng Ma)
-* osd: use FIEMAP_FLAGS_SYNC instead of fsync (Jianpeng Ma)
-* osd: verify kernel is new enough before using XFS extsize ioctl, enable by default (#9956 Sage Weil)
-* pybind: fix memory leak in librados bindings (Billy Olsen)
-* pyrados: add object lock support (#6114 Mehdi Abaakouk)
-* pyrados: fix misnamed wait_* routings (#10104 Dan Mick)
-* pyrados: misc cleanups (Kefu Chai)
-* qa: add large auth ticket tests (Ilya Dryomov)
-* qa: fix mds tests (#10539 John Spray)
-* qa: fix osd create dup tests (#10083 Loic Dachary)
-* qa: ignore duplicates in rados ls (Josh Durgin)
-* qa: improve hadoop tests (Noah Watkins)
-* qa: many 'make check' improvements (Loic Dachary)
-* qa: misc tests (Loic Dachary, Yan, Zheng)
-* qa: parallelize make check (Loic Dachary)
-* qa: reorg fs quota tests (Greg Farnum)
-* qa: tolerate nearly-full disk for make check (Loic Dachary)
-* rados: fix put of /dev/null (Loic Dachary)
-* rados: fix usage (Jianpeng Ma)
-* rados: parse command-line arguments more strictly (#8983 Adam Crume)
-* rados: use copy-from operation for copy, cppool (Sage Weil)
-* radosgw-admin: add replicalog update command (Yehuda Sadeh)
-* rbd-fuse: clean up on shutdown (Josh Durgin)
-* rbd-fuse: fix memory leak (Adam Crume)
-* rbd-replay-many (Adam Crume)
-* rbd-replay: --anonymize flag to rbd-replay-prep (Adam Crume)
-* rbd: add 'merge-diff' function (MingXin Liu, Yunchuan Wen, Li Wang)
-* rbd: allow v2 striping parameters for clones and imports (Jason Dillaman)
-* rbd: fix 'rbd diff' for non-existent objects (Adam Crume)
-* rbd: fix buffer handling on image import (#10590 Jason Dillaman)
-* rbd: fix error when striping with format 1 (Sebastien Han)
-* rbd: fix export for image sizes over 2GB (Vicente Cheng)
-* rbd: fix formatted output of image features (Jason Dillaman)
-* rbd: leave exclusive lockin goff by default (Jason Dillaman)
-* rbd: updat eman page (Ilya Dryomov)
-* rbd: update init-rbdmap to fix dup mount point (Karel Striegel)
-* rbd: use IO hints for import, export, and bench operations (#10462 Jason Dillaman)
-* rbd: use rolling average for rbd bench-write throughput (Jason Dillaman)
-* rbd_recover_tool: RBD image recovery tool (Min Chen)
-* rgw: S3-style object versioning support (Yehuda Sadeh)
-* rgw: add location header when object is in another region (VRan Liu)
-* rgw: change multipart upload id magic (#10271 Yehuda Sadeh)
-* rgw: check keystone auth for S3 POST requests (#10062 Abhishek Lekshmanan)
-* rgw: check timestamp on s3 keystone auth (#10062 Abhishek Lekshmanan)
-* rgw: conditional PUT on ETag (#8562 Ray Lv)
-* rgw: create subuser if needed when creating user (#10103 Yehuda Sadeh)
-* rgw: decode http query params correction (#10271 Yehuda Sadeh)
-* rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: enable IPv6 for civetweb (#10965 Yehuda Sadeh)
-* rgw: extend replica log API (purge-all) (Yehuda Sadeh)
-* rgw: fail S3 POST if keystone not configured (#10688 Valery Tschopp, Yehuda Sadeh)
-* rgw: fix If-Modified-Since (VRan Liu)
-* rgw: fix XML header on get ACL request (#10106 Yehuda Sadeh)
-* rgw: fix bucket removal with data purge (Yehuda Sadeh)
-* rgw: fix content length check (#10701 Axel Dunkel, Yehuda Sadeh)
-* rgw: fix content-length update (#9576 Yehuda Sadeh)
-* rgw: fix disabling of max_size quota (#9907 Dong Lei)
-* rgw: fix error codes (#10334 #10329 Yehuda Sadeh)
-* rgw: fix incorrect len when len is 0 (#9877 Yehuda Sadeh)
-* rgw: fix object copy content type (#9478 Yehuda Sadeh)
-* rgw: fix partial GET in swift (#10553 Yehuda Sadeh)
-* rgw: fix replica log indexing (#8251 Yehuda Sadeh)
-* rgw: fix shutdown (#10472 Yehuda Sadeh)
-* rgw: fix swift metadata header name (Dmytro Iurchenko)
-* rgw: fix sysvinit script when rgw_socket_path is not defined (#11159 Yehuda Sadeh, Dan Mick)
-* rgw: fix user stags in get-user-info API (#9359 Ray Lv)
-* rgw: include XML ns on get ACL request (#10106 Yehuda Sadeh)
-* rgw: index swift keys appropriately (#10471 Yehuda Sadeh)
-* rgw: make sysvinit script set ulimit -n properly (Sage Weil)
-* rgw: misc fixes (#10307 Yehuda Sadeh)
-* rgw: only track cleanup for objects we write (#10311 Yehuda Sadeh)
-* rgw: pass civetweb configurables through (#10907 Yehuda Sadeh)
-* rgw: prevent illegal bucket policy that doesn't match placement rule (Yehuda Sadeh)
-* rgw: remove multipart entries from bucket index on abort (#10719 Yehuda Sadeh)
-* rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
-* rgw: respond with 204 to POST on containers (#10667 Yuan Zhou)
-* rgw: return timestamp on GET/HEAD (#8911 Yehuda Sadeh)
-* rgw: reuse fcgx connection struct (#10194 Yehuda Sadeh)
-* rgw: run radosgw as apache with systemd (#10125 Loic Dachary)
-* rgw: send explicit HTTP status string (Yehuda Sadeh)
-* rgw: set ETag on object copy (#9479 Yehuda Sadeh)
-* rgw: set length for keystone token validation request (#7796 Yehuda Sadeh, Mark Kirkwood)
-* rgw: support X-Storage-Policy header for Swift storage policy compat (Yehuda Sadeh)
-* rgw: support multiple host names (#7467 Yehuda Sadeh)
-* rgw: swift: dump container's custom metadata (#10665 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: swift: support Accept header for response format (#10746 Dmytro Iurchenko)
-* rgw: swift: support for X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
-* rgw: tweak error codes (#10329 #10334 Yehuda Sadeh)
-* rgw: update bucket index on attr changes, for multi-site sync (#5595 Yehuda Sadeh)
-* rgw: use \r\n for http headers (#9254 Yehuda Sadeh)
-* rgw: use gc for multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
-* rgw: use new watch/notify API (Yehuda Sadeh, Sage Weil)
-* rpm: misc fixes (Key Dreyer)
-* rpm: move rgw logrotate to radosgw subpackage (Ken Dreyer)
-* systemd: better systemd unit files (Owen Synge)
-* sysvinit: fix race in 'stop' (#10389 Loic Dachary)
-* test: fix bufferlist tests (Jianpeng Ma)
-* tests: ability to run unit tests under docker (Loic Dachary)
-* tests: centos-6 dockerfile (#10755 Loic Dachary)
-* tests: improve docker-based tests (Loic Dachary)
-* tests: unit tests for shared_cache (Dong Yuan)
-* udev: fix rules for CentOS7/RHEL7 (Loic Dachary)
-* use clock_gettime instead of gettimeofday (Jianpeng Ma)
-* vstart.sh: set up environment for s3-tests (Luis Pabon)
-* vstart.sh: work with cmake (Yehuda Sadeh)
-
-
-
-
-
-
-v0.93
-=====
-
-This is the first release candidate for Hammer, and includes all of
-the features that will be present in the final release. We welcome
-and encourage any and all testing in non-production clusters to identify
-any problems with functionality, stability, or performance before the
-final Hammer release.
-
-We suggest some caution in one area: librbd. There is a lot of new
-functionality around object maps and locking that is disabled by
-default but may still affect stability for existing images. We are
-continuing to shake out those bugs so that the final Hammer release
-(probably v0.94) will be rock solid.
-
-Major features since Giant include:
-
-* cephfs: journal scavenger repair tool (John Spray)
-* crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
-* doc: improved guidance for CephFS early adopters (John Spray)
-* librbd: add per-image object map for improved performance (Jason Dillaman)
-* librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng)
-* librados: fadvise-style IO hints (Jianpeng Ma)
-* mds: many many snapshot-related fixes (Yan, Zheng)
-* mon: new 'ceph osd df' command (Mykola Golub)
-* mon: new 'ceph pg ls ...' command (Xinxin Shu)
-* osd: improved performance for high-performance backends
-* osd: improved recovery behavior (Samuel Just)
-* osd: improved cache tier behavior with reads (Zhiqiang Wang)
-* rgw: S3-compatible bucket versioning support (Yehuda Sadeh)
-* rgw: large bucket index sharding (Guang Yang, Yehuda Sadeh)
-* RDMA "xio" messenger support (Matt Benjamin, Vu Pham)
-
-Upgrading
----------
-
-* If you are upgrading from v0.92, you must stop all OSD daemons and flush their
- journals (``ceph-osd -i NNN --flush-journal``) before upgrading. There was
- a transaction encoding bug in v0.92 that broke compatibility. Upgrading from
- v0.91 or anything earlier is safe.
-
-* No special restrictions when upgrading from firefly or giant.
-
-Notable Changes
----------------
-
-* build: CMake support (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
-* ceph-disk: do not re-use partition if encryption is required (Loic Dachary)
-* ceph-disk: support LUKS for encrypted partitions (Andrew Bartlett, Loic Dachary)
-* ceph-fuse,libcephfs: add support for O_NOFOLLOW and O_PATH (Greg Farnum)
-* ceph-fuse,libcephfs: resend requests before completing cap reconnect (#10912 Yan, Zheng)
-* ceph-fuse: select kernel cache invalidation mechanism based on kernel version (Greg Farnum)
-* ceph-objectstore-tool: improved import (David Zafman)
-* ceph-objectstore-tool: misc improvements, fixes (#9870 #9871 David Zafman)
-* ceph: add 'ceph osd df [tree]' command (#10452 Mykola Golub)
-* ceph: fix 'ceph tell ...' command validation (#10439 Joao Eduardo Luis)
-* ceph: improve 'ceph osd tree' output (Mykola Golub)
-* cephfs-journal-tool: add recover_dentries function (#9883 John Spray)
-* common: add newline to flushed json output (Sage Weil)
-* common: filtering for 'perf dump' (John Spray)
-* common: fix Formatter factory breakage (#10547 Loic Dachary)
-* common: make json-pretty output prettier (Sage Weil)
-* crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
-* crush: update tries stats for indep rules (#10349 Loic Dachary)
-* crush: use larger choose_tries value for erasure code rulesets (#10353 Loic Dachary)
-* debian,rpm: move RBD udev rules to ceph-common (#10864 Ken Dreyer)
-* debian: split python-ceph into python-{rbd,rados,cephfs} (Boris Ranto)
-* doc: CephFS disaster recovery guidance (John Spray)
-* doc: CephFS for early adopters (John Spray)
-* doc: fix OpenStack Glance docs (#10478 Sebastien Han)
-* doc: misc updates (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
-* doc: replace cloudfiles with swiftclient Python Swift example (Tim Freund)
-* erasure-code: add mSHEC erasure code support (Takeshi Miyamae)
-* erasure-code: improved docs (#10340 Loic Dachary)
-* erasure-code: set max_size to 20 (#10363 Loic Dachary)
-* libcephfs,ceph-fuse: fix getting zero-length xattr (#10552 Yan, Zheng)
-* librados: add blacklist_add convenience method (Jason Dillaman)
-* librados: expose rados_{read|write}_op_assert_version in C API (Kim Vandry)
-* librados: fix pool name caching (#10458 Radoslaw Zarzynski)
-* librados: fix resource leak, misc bugs (#10425 Radoslaw Zarzynski)
-* librados: fix some watch/notify locking (Jason Dillaman, Josh Durgin)
-* libradosstriper: fix write_full when ENOENT (#10758 Sebastien Ponce)
-* librbd: CRC protection for RBD image map (Jason Dillaman)
-* librbd: add per-image object map for improved performance (Jason Dillaman)
-* librbd: add support for an "object map" indicating which objects exist (Jason Dillaman)
-* librbd: adjust internal locking (Josh Durgin, Jason Dillaman)
-* librbd: better handling of watch errors (Jason Dillaman)
-* librbd: coordinate maint operations through lock owner (Jason Dillaman)
-* librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
-* librbd: enforce write ordering with a snapshot (Jason Dillaman)
-* librbd: fadvise-style hints; add misc hints for certain operations (Jianpeng Ma)
-* librbd: fix coverity false-positives (Jason Dillaman)
-* librbd: fix snap create races (Jason Dillaman)
-* librbd: flush AIO operations asynchronously (#10714 Jason Dillaman)
-* librbd: make async versions of long-running maint operations (Jason Dillaman)
-* librbd: mock tests (Jason Dillaman)
-* librbd: optionally blacklist clients before breaking locks (#10761 Jason Dillaman)
-* librbd: prevent copyup during shrink (Jason Dillaman)
-* mds: add cephfs-table-tool (John Spray)
-* mds: avoid sending traceless replies in most cases (Yan, Zheng)
-* mds: export dir asok command (John Spray)
-* mds: fix stray/purge perfcounters (#10388 John Spray)
-* mds: handle heartbeat_reset during shutdown (#10382 John Spray)
-* mds: many many snapshot-related fixes (Yan, Zheng)
-* mds: refactor, improve Session storage (John Spray)
-* misc coverity fixes (Danny Al-Gaaf)
-* mon: add noforward flag for some mon commands (Mykola Golub)
-* mon: disallow empty pool names (#10555 Wido den Hollander)
-* mon: do not deactivate last mds (#10862 John Spray)
-* mon: drop old ceph_mon_store_converter (Sage Weil)
-* mon: fix 'ceph pg dump_stuck degraded' (Xinxin Shu)
-* mon: fix 'profile osd' use of config-key function on mon (#10844 Joao Eduardo Luis)
-* mon: fix compatset initalization during mkfs (Joao Eduardo Luis)
-* mon: fix feature tracking during elections (Joao Eduardo Luis)
-* mon: fix mds gid/rank/state parsing (John Spray)
-* mon: ignore failure reports from before up_from (#10762 Dan van der Ster, Sage Weil)
-* mon: improved corrupt CRUSH map detection (Joao Eduardo Luis)
-* mon: include pg_temp count in osdmap summary (Sage Weil)
-* mon: log health summary to cluster log (#9440 Joao Eduardo Luis)
-* mon: make 'mds fail' idempotent (John Spray)
-* mon: make pg dump {sum,pgs,pgs_brief} work for format=plain (#5963 #6759 Mykola Golub)
-* mon: new pool safety flags nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
-* mon: new, friendly 'ceph pg ls ...' command (Xinxin Shu)
-* mon: prevent MDS transition from STOPPING (#10791 Greg Farnum)
-* mon: propose all pending work in one transaction (Sage Weil)
-* mon: remove pg_temps for nonexistent pools (Joao Eduardo Luis)
-* mon: require mon_allow_pool_delete option to remove pools (Sage Weil)
-* mon: set globalid prealloc to larger value (Sage Weil)
-* mon: skip zeroed osd stats in get_rule_avail (#10257 Joao Eduardo Luis)
-* mon: validate min_size range (Jianpeng Ma)
-* msgr: async: bind threads to CPU cores, improved poll (Haomai Wang)
-* msgr: fix crc configuration (Mykola Golub)
-* msgr: misc unit tests (Haomai Wang)
-* msgr: xio: XioMessenger RDMA support (Casey Bodley, Vu Pham, Matt Benjamin)
-* osd, librados: fadvise-style librados hints (Jianpeng Ma)
-* osd, librados: fix xattr_cmp_u64 (Dongmao Zhang)
-* osd,mon: add 'norebalance' flag (Kefu Chai)
-* osd,mon: specify OSD features explicitly in MOSDBoot (#10911 Sage Weil)
-* osd: add option to prioritize heartbeat network traffic (Jian Wen)
-* osd: add support for the SHEC erasure-code algorithm (Takeshi Miyamae, Loic Dachary)
-* osd: allow recovery while below min_size (Samuel Just)
-* osd: allow recovery with fewer than min_size OSDs (Samuel Just)
-* osd: allow writes to degraded objects (Samuel Just)
-* osd: allow writes to degraded objects (Samuel Just)
-* osd: avoid publishing unchanged PG stats (Sage Weil)
-* osd: cache recent ObjectContexts (Dong Yuan)
-* osd: clear cache on interval change (Samuel Just)
-* osd: do no proxy reads unless target OSDs are new (#10788 Sage Weil)
-* osd: do not update digest on inconsistent object (#10524 Samuel Just)
-* osd: don't record digests for snapdirs (#10536 Samuel Just)
-* osd: fix OSDCap parser on old (el6) boost::spirit (#10757 Kefu Chai)
-* osd: fix OSDCap parsing on el6 (#10757 Kefu Chai)
-* osd: fix ObjectStore::Transaction encoding version (#10734 Samuel Just)
-* osd: fix auth object selection during repair (#10524 Samuel Just)
-* osd: fix bug in pending digest updates (#10840 Samuel Just)
-* osd: fix cancel_proxy_read_ops (Sage Weil)
-* osd: fix cleanup of interrupted pg deletion (#10617 Sage Weil)
-* osd: fix journal wrapping bug (#10883 David Zafman)
-* osd: fix leak in SnapTrimWQ (#10421 Kefu Chai)
-* osd: fix memstore free space calculation (Xiaoxi Chen)
-* osd: fix mixed-version peering issues (Samuel Just)
-* osd: fix object digest update bug (#10840 Samuel Just)
-* osd: fix ordering issue with new transaction encoding (#10534 Dong Yuan)
-* osd: fix past_interval generation (#10427 #10430 David Zafman)
-* osd: fix short read handling on push (#8121 David Zafman)
-* osd: fix watch timeout cache state update (#10784 David Zafman)
-* osd: force promotion of watch/notify ops (Zhiqiang Wang)
-* osd: improve idempotency detection across cache promotion/demotion (#8935 Sage Weil, Samuel Just)
-* osd: include activating peers in blocked_by (#10477 Sage Weil)
-* osd: jerasure and gf-complete updates from upstream (#10216 Loic Dachary)
-* osd: journal: check fsync/fdatasync result (Jianpeng Ma)
-* osd: journal: fix hang on shutdown (#10474 David Zafman)
-* osd: journal: fix header.committed_up_to (Xinze Chi)
-* osd: journal: initialize throttle (Ning Yao)
-* osd: journal: misc bug fixes (#6003 David Zafman, Samuel Just)
-* osd: misc cleanup (Xinze Chi, Yongyue Sun)
-* osd: new 'activating' state between peering and active (Sage Weil)
-* osd: preserve reqids for idempotency checks for promote/demote (Sage Weil, Zhiqiang Wang, Samuel Just)
-* osd: remove dead locking code (Xinxin Shu)
-* osd: restrict scrub to certain times of day (Xinze Chi)
-* osd: rocksdb: fix shutdown (Hoamai Wang)
-* pybind: fix memory leak in librados bindings (Billy Olsen)
-* qa: fix mds tests (#10539 John Spray)
-* qa: ignore duplicates in rados ls (Josh Durgin)
-* qa: improve hadoop tests (Noah Watkins)
-* qa: reorg fs quota tests (Greg Farnum)
-* rados: fix usage (Jianpeng Ma)
-* radosgw-admin: add replicalog update command (Yehuda Sadeh)
-* rbd-fuse: clean up on shutdown (Josh Durgin)
-* rbd: add 'merge-diff' function (MingXin Liu, Yunchuan Wen, Li Wang)
-* rbd: fix buffer handling on image import (#10590 Jason Dillaman)
-* rbd: leave exclusive lockin goff by default (Jason Dillaman)
-* rbd: update init-rbdmap to fix dup mount point (Karel Striegel)
-* rbd: use IO hints for import, export, and bench operations (#10462 Jason Dillaman)
-* rbd_recover_tool: RBD image recovery tool (Min Chen)
-* rgw: S3-style object versioning support (Yehuda Sadeh)
-* rgw: check keystone auth for S3 POST requests (#10062 Abhishek Lekshmanan)
-* rgw: extend replica log API (purge-all) (Yehuda Sadeh)
-* rgw: fail S3 POST if keystone not configured (#10688 Valery Tschopp, Yehuda Sadeh)
-* rgw: fix XML header on get ACL request (#10106 Yehuda Sadeh)
-* rgw: fix bucket removal with data purge (Yehuda Sadeh)
-* rgw: fix replica log indexing (#8251 Yehuda Sadeh)
-* rgw: fix swift metadata header name (Dmytro Iurchenko)
-* rgw: remove multipart entries from bucket index on abort (#10719 Yehuda Sadeh)
-* rgw: respond with 204 to POST on containers (#10667 Yuan Zhou)
-* rgw: reuse fcgx connection struct (#10194 Yehuda Sadeh)
-* rgw: support multiple host names (#7467 Yehuda Sadeh)
-* rgw: swift: dump container's custom metadata (#10665 Ahmad Faheem, Dmytro Iurchenko)
-* rgw: swift: support Accept header for response format (#10746 Dmytro Iurchenko)
-* rgw: swift: support for X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
-* rpm: move rgw logrotate to radosgw subpackage (Ken Dreyer)
-* tests: centos-6 dockerfile (#10755 Loic Dachary)
-* tests: unit tests for shared_cache (Dong Yuan)
-* vstart.sh: work with cmake (Yehuda Sadeh)
-
-
-
-v0.92
-=====
-
-This is the second-to-last chunk of new stuff before Hammer. Big items
-include additional checksums on OSD objects, proxied reads in the
-cache tier, image locking in RBD, optimized OSD Transaction and
-replication messages, and a big pile of RGW and MDS bug fixes.
-
-Upgrading
----------
-
-* The experimental 'keyvaluestore-dev' OSD backend has been renamed
- 'keyvaluestore' (for simplicity) and marked as experimental. To
- enable this untested feature and acknowledge that you understand
- that it is untested and may destroy data, you need to add the
- following to your ceph.conf::
-
- enable experimental unrecoverable data corrupting featuers = keyvaluestore
-
-* The following librados C API function calls take a 'flags' argument whose value
- is now correctly interpreted:
-
- rados_write_op_operate()
- rados_aio_write_op_operate()
- rados_read_op_operate()
- rados_aio_read_op_operate()
-
- The flags were not correctly being translated from the librados constants to the
- internal values. Now they are. Any code that is passing flags to these methods
- should be audited to ensure that they are using the correct LIBRADOS_OP_FLAG_*
- constants.
-
-* The 'rados' CLI 'copy' and 'cppool' commands now use the copy-from operation,
- which means the latest CLI cannot run these commands against pre-firefly OSDs.
-
-* The librados watch/notify API now includes a watch_flush() operation to flush
- the async queue of notify operations. This should be called by any watch/notify
- user prior to rados_shutdown().
-
-Notable Changes
----------------
-
-* add experimental features option (Sage Weil)
-* build: fix 'make check' races (#10384 Loic Dachary)
-* build: fix pkg names when libkeyutils is missing (Pankag Garg, Ken Dreyer)
-* ceph: make 'ceph -s' show PG state counts in sorted order (Sage Weil)
-* ceph: make 'ceph tell mon.* version' work (Mykola Golub)
-* ceph-monstore-tool: fix/improve CLI (Joao Eduardo Luis)
-* ceph: show primary-affinity in 'ceph osd tree' (Mykola Golub)
-* common: add TableFormatter (Andreas Peters)
-* common: check syncfs() return code (Jianpeng Ma)
-* doc: do not suggest dangerous XFS nobarrier option (Dan van der Ster)
-* doc: misc updates (Nilamdyuti Goswami, John Wilkins)
-* install-deps.sh: do not require sudo when root (Loic Dachary)
-* libcephfs: fix dirfrag trimming (#10387 Yan, Zheng)
-* libcephfs: fix mount timeout (#10041 Yan, Zheng)
-* libcephfs: fix test (#10415 Yan, Zheng)
-* libcephfs: fix use-afer-free on umount (#10412 Yan, Zheng)
-* libcephfs: include ceph and git version in client metadata (Sage Weil)
-* librados: add watch_flush() operation (Sage Weil, Haomai Wang)
-* librados: avoid memcpy on getxattr, read (Jianpeng Ma)
-* librados: create ioctx by pool id (Jason Dillaman)
-* librados: do notify completion in fast-dispatch (Sage Weil)
-* librados: remove shadowed variable (Kefu Chain)
-* librados: translate op flags from C APIs (Matthew Richards)
-* librbd: differentiate between R/O vs R/W features (Jason Dillaman)
-* librbd: exclusive image locking (Jason Dillaman)
-* librbd: fix write vs import race (#10590 Jason Dillaman)
-* librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
-* mds: asok command for fetching subtree map (John Spray)
-* mds: constify MDSCacheObjects (John Spray)
-* misc: various valgrind fixes and cleanups (Danny Al-Gaaf)
-* mon: fix 'mds fail' for standby MDSs (John Spray)
-* mon: fix stashed monmap encoding (#5203 Xie Rui)
-* mon: implement 'fs reset' command (John Spray)
-* mon: respect down flag when promoting standbys (John Spray)
-* mount.ceph: fix suprious error message (#10351 Yan, Zheng)
-* msgr: async: many fixes, unit tests (Haomai Wang)
-* msgr: simple: retry binding to port on failure (#10029 Wido den Hollander)
-* osd: add fadvise flags to ObjectStore API (Jianpeng Ma)
-* osd: add get_latest_osdmap asok command (#9483 #9484 Mykola Golub)
-* osd: EIO on whole-object reads when checksum is wrong (Sage Weil)
-* osd: filejournal: don't cache journal when not using direct IO (Jianpeng Ma)
-* osd: fix ioprio option (Mykola Golub)
-* osd: fix scrub delay bug (#10693 Samuel Just)
-* osd: fix watch reconnect race (#10441 Sage Weil)
-* osd: handle no-op write with snapshot (#10262 Sage Weil)
-* osd: journal: fix journal zeroing when direct IO is enabled (Xie Rui)
-* osd: keyvaluestore: cleanup dead code (Ning Yao)
-* osd, mds: 'ops' as shorthand for 'dump_ops_in_flight' on asok (Sage Weil)
-* osd: memstore: fix size limit (Xiaoxi Chen)
-* osd: misc scrub fixes (#10017 Loic Dachary)
-* osd: new optimized encoding for ObjectStore::Transaction (Dong Yuan)
-* osd: optimize filter_snapc (Ning Yao)
-* osd: optimize WBThrottle map with unordered_map (Ning Yao)
-* osd: proxy reads during cache promote (Zhiqiang Wang)
-* osd: proxy read support (Zhiqiang Wang)
-* osd: remove legacy classic scrub code (Sage Weil)
-* osd: remove unused fields in MOSDSubOp (Xiaoxi Chen)
-* osd: replace MOSDSubOp messages with simpler, optimized MOSDRepOp (Xiaoxi Chen)
-* osd: store whole-object checksums on scrub, write_full (Sage Weil)
-* osd: verify kernel is new enough before using XFS extsize ioctl, enable by default (#9956 Sage Weil)
-* rados: use copy-from operation for copy, cppool (Sage Weil)
-* rgw: change multipart upload id magic (#10271 Yehuda Sadeh)
-* rgw: decode http query params correction (#10271 Yehuda Sadeh)
-* rgw: fix content length check (#10701 Axel Dunkel, Yehuda Sadeh)
-* rgw: fix partial GET in swift (#10553 Yehuda Sadeh)
-* rgw: fix shutdown (#10472 Yehuda Sadeh)
-* rgw: include XML ns on get ACL request (#10106 Yehuda Sadeh)
-* rgw: misc fixes (#10307 Yehuda Sadeh)
-* rgw: only track cleanup for objects we write (#10311 Yehuda Sadeh)
-* rgw: tweak error codes (#10329 #10334 Yehuda Sadeh)
-* rgw: use gc for multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
-* sysvinit: fix race in 'stop' (#10389 Loic Dachary)
-* test: fix bufferlist tests (Jianpeng Ma)
-* tests: improve docker-based tests (Loic Dachary)
-
-
-v0.91
-=====
-
-We are quickly approaching the Hammer feature freeze but have a few
-more dev releases to go before we get there. The headline items are
-subtree-based quota support in CephFS (ceph-fuse/libcephfs client
-support only for now), a rewrite of the watch/notify librados API used
-by RBD and RGW, OSDMap checksums to ensure that maps are always
-consistent inside the cluster, new API calls in librados and librbd
-for IO hinting modeled after posix_fadvise, and improved storage of
-per-PG state.
-
-We expect two more releases before the Hammer feature freeze (v0.93).
-
-Upgrading
----------
-
-* The 'category' field for objects has been removed. This was originally added
- to track PG stat summations over different categories of objects for use by
- radosgw. It is no longer has any known users and is prone to abuse because it
- can lead to a pg_stat_t structure that is unbounded. The librados API calls
- that accept this field now ignore it, and the OSD no longers tracks the
- per-category summations.
-
-* The output for 'rados df' has changed. The 'category' level has been
- eliminated, so there is now a single stat object per pool. The structure of
- the JSON output is different, and the plaintext output has one less column.
-
-* The 'rados create <objectname> [category]' optional category argument is no
- longer supported or recognized.
-
-* rados.py's Rados class no longer has a __del__ method; it was causing
- problems on interpreter shutdown and use of threads. If your code has
- Rados objects with limited lifetimes and you're concerned about locked
- resources, call Rados.shutdown() explicitly.
-
-* There is a new version of the librados watch/notify API with vastly
- improved semantics. Any applications using this interface are
- encouraged to migrate to the new API. The old API calls are marked
- as deprecated and will eventually be removed.
-
-* The librados rados_unwatch() call used to be safe to call on an
- invalid handle. The new version has undefined behavior when passed
- a bogus value (for example, when rados_watch() returns an error and
- handle is not defined).
-
-* The structure of the formatted 'pg stat' command is changed for the
- portion that counts states by name to avoid using the '+' character
- (which appears in state names) as part of the XML token (it is not
- legal).
-
-Notable Changes
----------------
-
-* asyncmsgr: misc fixes (Haomai Wang)
-* buffer: add 'shareable' construct (Matt Benjamin)
-* build: aarch64 build fixes (Noah Watkins, Haomai Wang)
-* build: support for jemalloc (Shishir Gowda)
-* ceph-disk: allow journal partition re-use (#10146 Loic Dachary, Dav van der Ster)
-* ceph-disk: misc fixes (Christos Stavrakakis)
-* ceph-fuse: fix kernel cache trimming (#10277 Yan, Zheng)
-* ceph-objectstore-tool: many many improvements (David Zafman)
-* common: support new gperftools header locations (Key Dreyer)
-* crush: straw bucket weight calculation fixes (#9998 Sage Weil)
-* doc: misc improvements (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
-* libcephfs,ceph-fuse: add 'status' asok (John Spray)
-* librados, osd: new watch/notify implementation (Sage Weil)
-* librados: drop 'category' feature (Sage Weil)
-* librados: fix pool deletion handling (#10372 Sage Weil)
-* librados: new fadvise API (Ma Jianpeng)
-* libradosstriper: fix remove() (Dongmao Zhang)
-* librbd: complete pending ops before closing image (#10299 Josh Durgin)
-* librbd: fadvise API (Ma Jianpeng)
-* mds: ENOSPC and OSDMap epoch barriers (#7317 John Spray)
-* mds: dirfrag buf fix (Yan, Zheng)
-* mds: disallow most commands on inactive MDS's (Greg Farnum)
-* mds: drop dentries, leases on deleted directories (#10164 Yan, Zheng)
-* mds: handle zero-size xattr (#10335 Yan, Zheng)
-* mds: subtree quota support (Yunchuan Wen)
-* memstore: free space tracking (John Spray)
-* misc cleanup (Danny Al-Gaaf, David Anderson)
-* mon: 'osd crush reweight-all' command (Sage Weil)
-* mon: allow full flag to be manually cleared (#9323 Sage Weil)
-* mon: delay failure injection (Joao Eduardo Luis)
-* mon: fix paxos timeouts (#10220 Joao Eduardo Luis)
-* mon: get canonical OSDMap from leader (#10422 Sage Weil)
-* msgr: fix RESETSESSION bug (#10080 Greg Farnum)
-* objectstore: deprecate collection attrs (Sage Weil)
-* osd, mon: add checksums to all OSDMaps (Sage Weil)
-* osd: allow deletion of objects with watcher (#2339 Sage Weil)
-* osd: allow sparse read for Push/Pull (Haomai Wang)
-* osd: cache reverse_nibbles hash value (Dong Yuan)
-* osd: drop upgrade support for pre-dumpling (Sage Weil)
-* osd: enable and use posix_fadvise (Sage Weil)
-* osd: erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
-* osd: erasure-code: jerasure support for NEON (Loic Dachary)
-* osd: erasure-code: relax cauchy w restrictions (#10325 David Zhang, Loic Dachary)
-* osd: erasure-code: update gf-complete to latest upstream (Loic Dachary)
-* osd: fix WBTHrottle perf counters (Haomai Wang)
-* osd: fix backfill bug (#10150 Samuel Just)
-* osd: fix occasional peering stalls (#10431 Sage Weil)
-* osd: fix scrub vs try-flush bug (#8011 Samuel Just)
-* osd: fix stderr with -f or -d (Dan Mick)
-* osd: misc FIEMAP fixes (Ma Jianpeng)
-* osd: optimize Finisher (Xinze Chi)
-* osd: store PG metadata in per-collection objects for better concurrency (Sage Weil)
-* pyrados: add object lock support (#6114 Mehdi Abaakouk)
-* pyrados: fix misnamed wait_* routings (#10104 Dan Mick)
-* pyrados: misc cleanups (Kefu Chai)
-* qa: add large auth ticket tests (Ilya Dryomov)
-* qa: many 'make check' improvements (Loic Dachary)
-* qa: misc tests (Loic Dachary, Yan, Zheng)
-* rgw: conditional PUT on ETag (#8562 Ray Lv)
-* rgw: fix error codes (#10334 #10329 Yehuda Sadeh)
-* rgw: index swift keys appropriately (#10471 Yehuda Sadeh)
-* rgw: prevent illegal bucket policy that doesn't match placement rule (Yehuda Sadeh)
-* rgw: run radosgw as apache with systemd (#10125 Loic Dachary)
-* rgw: support X-Storage-Policy header for Swift storage policy compat (Yehuda Sadeh)
-* rgw: use \r\n for http headers (#9254 Yehuda Sadeh)
-* rpm: misc fixes (Key Dreyer)
-
-
-v0.90
-=====
-
-This is the last development release before Christmas. There are some
-API cleanups for librados and librbd, and lots of bug fixes across the
-board for the OSD, MDS, RGW, and CRUSH. The OSD also gets support for
-discard (potentially helpful on SSDs, although it is off by default), and there
-are several improvements to ceph-disk.
-
-The next two development releases will be getting a slew of new
-functionality for hammer. Stay tuned!
-
-Upgrading
----------
-
-* Previously, the formatted output of 'ceph pg stat -f ...' was a full
- pg dump that included all metadata about all PGs in the system. It
- is now a concise summary of high-level PG stats, just like the
- unformatted 'ceph pg stat' command.
-
-* All JSON dumps of floating point values were incorrecting surrounding the
- value with quotes. These quotes have been removed. Any consumer of structured
- JSON output that was consuming the floating point values was previously having
- to interpret the quoted string and will most likely need to be fixed to take
- the unquoted number.
-
-Notable Changes
----------------
-
-* arch: fix NEON feaeture detection (#10185 Loic Dachary)
-* build: adjust build deps for yasm, virtualenv (Jianpeng Ma)
-* build: improve build dependency tooling (Loic Dachary)
-* ceph-disk: call partx/partprobe consistency (#9721 Loic Dachary)
-* ceph-disk: fix dmcrypt key permissions (Loic Dachary)
-* ceph-disk: fix umount race condition (#10096 Blaine Gardner)
-* ceph-disk: init=none option (Loic Dachary)
-* ceph-monstore-tool: fix shutdown (#10093 Loic Dachary)
-* ceph-objectstore-tool: fix import (#10090 David Zafman)
-* ceph-objectstore-tool: many improvements and tests (David Zafman)
-* ceph.spec: package rbd-replay-prep (Ken Dreyer)
-* common: add 'perf reset ...' admin command (Jianpeng Ma)
-* common: do not unlock rwlock on destruction (Federico Simoncelli)
-* common: fix block device discard check (#10296 Sage Weil)
-* common: remove broken CEPH_LOCKDEP optoin (Kefu Chai)
-* crush: fix tree bucket behavior (Rongze Zhu)
-* doc: add build-doc guidlines for Fedora and CentOS/RHEL (Nilamdyuti Goswami)
-* doc: enable rbd cache on openstack deployments (Sebastien Han)
-* doc: improved installation nots on CentOS/RHEL installs (John Wilkins)
-* doc: misc cleanups (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
-* doc: new man pages (Nilamdyuti Goswami)
-* doc: update release descriptions (Ken Dreyer)
-* doc: update sepia hardware inventory (Sandon Van Ness)
-* librados: only export public API symbols (Jason Dillaman)
-* libradosstriper: fix stat strtoll (Dongmao Zhang)
-* libradosstriper: fix trunc method (#10129 Sebastien Ponce)
-* librbd: fix list_children from invalid pool ioctxs (#10123 Jason Dillaman)
-* librbd: only export public API symbols (Jason Dillaman)
-* many coverity fixes (Danny Al-Gaaf)
-* mds: 'flush journal' admin command (John Spray)
-* mds: fix MDLog IO callback deadlock (John Spray)
-* mds: fix deadlock during journal probe vs purge (#10229 Yan, Zheng)
-* mds: fix race trimming log segments (Yan, Zheng)
-* mds: store backtrace for stray dir (Yan, Zheng)
-* mds: verify backtrace when fetching dirfrag (#9557 Yan, Zheng)
-* mon: add max pgs per osd warning (Sage Weil)
-* mon: fix *_ratio* units and types (Sage Weil)
-* mon: fix JSON dumps to dump floats as flots and not strings (Sage Weil)
-* mon: fix formatter 'pg stat' command output (Sage Weil)
-* msgr: async: several fixes (Haomai Wang)
-* msgr: simple: fix rare deadlock (Greg Farnum)
-* osd: batch pg log trim (Xinze Chi)
-* osd: clean up internal ObjectStore interface (Sage Weil)
-* osd: do not abort deep scrub on missing hinfo (#10018 Loic Dachary)
-* osd: fix ghobject_t formatted output to include shard (#10063 Loic Dachary)
-* osd: fix osd peer check on scrub messages (#9555 Sage Weil)
-* osd: fix pgls filter ops (#9439 David Zafman)
-* osd: flush snapshots from cache tier immediately (Sage Weil)
-* osd: keyvaluestore: fix getattr semantics (Haomai Wang)
-* osd: keyvaluestore: fix key ordering (#10119 Haomai Wang)
-* osd: limit in-flight read requests (Jason Dillaman)
-* osd: log when scrub or repair starts (Loic Dachary)
-* osd: support for discard for journal trim (Jianpeng Ma)
-* qa: fix osd create dup tests (#10083 Loic Dachary)
-* rgw: add location header when object is in another region (VRan Liu)
-* rgw: check timestamp on s3 keystone auth (#10062 Abhishek Lekshmanan)
-* rgw: make sysvinit script set ulimit -n properly (Sage Weil)
-* systemd: better systemd unit files (Owen Synge)
-* tests: ability to run unit tests under docker (Loic Dachary)
-
-
-v0.89
-=====
-
-This is the second development release since Giant. The big items
-include the first batch of scrub patchs from Greg for CephFS, a rework
-in the librados object listing API to properly handle namespaces, and
-a pile of bug fixes for RGW. There are also several smaller issues
-fixed up in the performance area with buffer alignment and memory
-copies, osd cache tiering agent, and various CephFS fixes.
-
-Upgrading
----------
-
-* New ability to list all objects from all namespaces can fail or
- return incomplete results when not all OSDs have been upgraded.
- Features rados --all ls, rados cppool, rados export, rados
- cache-flush-evict-all and rados cache-try-flush-evict-all can also
- fail or return incomplete results.
-
-Notable Changes
----------------
-
-* buffer: add list::get_contiguous (Sage Weil)
-* buffer: avoid rebuild if buffer already contiguous (Jianpeng Ma)
-* ceph-disk: improved systemd support (Owen Synge)
-* ceph-disk: set guid if reusing journal partition (Dan van der Ster)
-* ceph-fuse, libcephfs: allow xattr caps in inject_release_failure (#9800 John Spray)
-* ceph-fuse, libcephfs: fix I_COMPLETE_ORDERED checks (#9894 Yan, Zheng)
-* ceph-fuse: fix dentry invalidation on 3.18+ kernels (#9997 Yan, Zheng)
-* crush: fix detach_bucket (#10095 Sage Weil)
-* crush: fix several bugs in adjust_item_weight (Rongze Zhu)
-* doc: add dumpling to firefly upgrade section (#7679 John Wilkins)
-* doc: document erasure coded pool operations (#9970 Loic Dachary)
-* doc: file system osd config settings (Kevin Dalley)
-* doc: key/value store config reference (John Wilkins)
-* doc: update openstack docs for Juno (Sebastien Han)
-* fix cluster logging from non-mon daemons (Sage Weil)
-* init-ceph: check for systemd-run before using it (Boris Ranto)
-* librados: fix infinite loop with skipped map epochs (#9986 Ding Dinghua)
-* librados: fix iterator operator= bugs (#10082 David Zafman, Yehuda Sadeh)
-* librados: fix null deref when pool DNE (#9944 Sage Weil)
-* librados: fix timer race from recent refactor (Sage Weil)
-* libradosstriper: fix shutdown hang (Dongmao Zhang)
-* librbd: don't close a closed parent in failure path (#10030 Jason Dillaman)
-* librbd: fix diff test (#10002 Josh Durgin)
-* librbd: fix locking for readahead (#10045 Jason Dillaman)
-* librbd: refactor unit tests to use fixtures (Jason Dillaman)
-* many many coverity cleanups (Danny Al-Gaaf)
-* mds: a whole bunch of initial scrub infrastructure (Greg Farnum)
-* mds: fix compat_version for MClientSession (#9945 John Spray)
-* mds: fix reply snapbl (Yan, Zheng)
-* mon: allow adding tiers to fs pools (#10135 John Spray)
-* mon: fix MDS health status from peons (#10151 John Spray)
-* mon: fix caching for min_last_epoch_clean (#9987 Sage Weil)
-* mon: fix error output for add_data_pool (#9852 Joao Eduardo Luis)
-* mon: include entity name in audit log for forwarded requests (#9913 Joao Eduardo Luis)
-* mon: paxos: allow reads while proposing (#9321 #9322 Joao Eduardo Luis)
-* msgr: asyncmessenger: add kqueue support (#9926 Haomai Wang)
-* osd, librados: revamp PG listing API to handle namespaces (#9031 #9262 #9438 David Zafman)
-* osd, mon: send intiial pg create time from mon to osd (#9887 David Zafman)
-* osd: allow whiteout deletion in cache pool (Sage Weil)
-* osd: cache pool: ignore min flush age when cache is full (Xinze Chi)
-* osd: erasure coding: allow bench.sh to test ISA backend (Yuan Zhou)
-* osd: erasure-code: encoding regression tests, corpus (#9420 Loic Dachary)
-* osd: fix journal shutdown race (Sage Weil)
-* osd: fix object age eviction (Zhiqiang Wang)
-* osd: fix object atime calculation (Xinze Chi)
-* osd: fix past_interval display bug (#9752 Loic Dachary)
-* osd: journal: fix alignment checks, avoid useless memmove (Jianpeng Ma)
-* osd: journal: update committed_thru after replay (#6756 Samuel Just)
-* osd: keyvaluestore_dev: optimization (Chendi Xue)
-* osd: make misdirected op checks robust for EC pools (#9835 Sage Weil)
-* osd: removed some dead code (Xinze Chi)
-* qa: parallelize make check (Loic Dachary)
-* qa: tolerate nearly-full disk for make check (Loic Dachary)
-* rgw: create subuser if needed when creating user (#10103 Yehuda Sadeh)
-* rgw: fix If-Modified-Since (VRan Liu)
-* rgw: fix content-length update (#9576 Yehuda Sadeh)
-* rgw: fix disabling of max_size quota (#9907 Dong Lei)
-* rgw: fix incorrect len when len is 0 (#9877 Yehuda Sadeh)
-* rgw: fix object copy content type (#9478 Yehuda Sadeh)
-* rgw: fix user stags in get-user-info API (#9359 Ray Lv)
-* rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
-* rgw: return timestamp on GET/HEAD (#8911 Yehuda Sadeh)
-* rgw: set ETag on object copy (#9479 Yehuda Sadeh)
-* rgw: update bucket index on attr changes, for multi-site sync (#5595 Yehuda Sadeh)
-
-
-v0.88
-=====
-
-This is the first development release after Giant. The two main
-features merged this round are the new AsyncMessenger (an alternative
-implementation of the network layer) from Haomai Wang at UnitedStack,
-and support for POSIX file locks in ceph-fuse and libcephfs from Yan,
-Zheng. There is also a big pile of smaller items that re merged while
-we were stabilizing Giant, including a range of smaller performance
-and bug fixes and some new tracepoints for LTTNG.
-
-Notable Changes
----------------
-
-* ceph-disk: Scientific Linux support (Dan van der Ster)
-* ceph-disk: respect --statedir for keyring (Loic Dachary)
-* ceph-fuse, libcephfs: POSIX file lock support (Yan, Zheng)
-* ceph-fuse, libcephfs: fix cap flush overflow (Greg Farnum, Yan, Zheng)
-* ceph-fuse, libcephfs: fix root inode xattrs (Yan, Zheng)
-* ceph-fuse, libcephfs: preserve dir ordering (#9178 Yan, Zheng)
-* ceph-fuse, libcephfs: trim inodes before reconnecting to MDS (Yan, Zheng)
-* ceph: do not parse injectargs twice (Loic Dachary)
-* ceph: make 'ceph -s' output more readable (Sage Weil)
-* ceph: new 'ceph tell mds.$name_or_rank_or_gid' (John Spray)
-* ceph: test robustness (Joao Eduardo Luis)
-* ceph_objectstore_tool: behave with sharded flag (#9661 David Zafman)
-* cephfs-journal-tool: fix journal import (#10025 John Spray)
-* cephfs-journal-tool: skip up to expire_pos (#9977 John Spray)
-* cleanup rados.h definitions with macros (Ilya Dryomov)
-* common: shared_cache unit tests (Cheng Cheng)
-* config: add $cctid meta variable (Adam Crume)
-* crush: fix buffer overrun for poorly formed rules (#9492 Johnu George)
-* crush: improve constness (Loic Dachary)
-* crushtool: add --location <id> command (Sage Weil, Loic Dachary)
-* default to libnss instead of crypto++ (Federico Gimenez)
-* doc: ceph osd reweight vs crush weight (Laurent Guerby)
-* doc: document the LRC per-layer plugin configuration (Yuan Zhou)
-* doc: erasure code doc updates (Loic Dachary)
-* doc: misc updates (Alfredo Deza, VRan Liu)
-* doc: preflight doc fixes (John Wilkins)
-* doc: update PG count guide (Gerben Meijer, Laurent Guerby, Loic Dachary)
-* keyvaluestore: misc fixes (Haomai Wang)
-* keyvaluestore: performance improvements (Haomai Wang)
-* librados: add rados_pool_get_base_tier() call (Adam Crume)
-* librados: cap buffer length (Loic Dachary)
-* librados: fix objecter races (#9617 Josh Durgin)
-* libradosstriper: misc fixes (Sebastien Ponce)
-* librbd: add missing python docstrings (Jason Dillaman)
-* librbd: add readahead (Adam Crume)
-* librbd: fix cache tiers in list_children and snap_unprotect (Adam Crume)
-* librbd: fix performance regression in ObjectCacher (#9513 Adam Crume)
-* librbd: lttng tracepoints (Adam Crume)
-* librbd: misc fixes (Xinxin Shu, Jason Dillaman)
-* mds: fix sessionmap lifecycle bugs (Yan, Zheng)
-* mds: initialize root inode xattr version (Yan, Zheng)
-* mds: introduce auth caps (John Spray)
-* mds: misc bugs (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
-* misc coverity fixes (Danny Al-Gaaf)
-* mon: add 'ceph osd rename-bucket ...' command (Loic Dachary)
-* mon: clean up auth list output (Loic Dachary)
-* mon: fix 'osd crush link' id resolution (John Spray)
-* mon: fix misc error paths (Joao Eduardo Luis)
-* mon: fix paxos off-by-one corner case (#9301 Sage Weil)
-* mon: new 'ceph pool ls [detail]' command (Sage Weil)
-* mon: wait for writeable before cross-proposing (#9794 Joao Eduardo Luis)
-* msgr: avoid useless new/delete (Haomai Wang)
-* msgr: fix delay injection bug (#9910 Sage Weil, Greg Farnum)
-* msgr: new AsymcMessenger alternative implementation (Haomai Wang)
-* msgr: prefetch data when doing recv (Yehuda Sadeh)
-* osd: add erasure code corpus (Loic Dachary)
-* osd: add misc tests (Loic Dachary, Danny Al-Gaaf)
-* osd: cleanup boost optionals (William Kennington)
-* osd: expose non-journal backends via ceph-osd CLI (Hoamai Wang)
-* osd: fix JSON output for stray OSDs (Loic Dachary)
-* osd: fix ioprio options (Loic Dachary)
-* osd: fix transaction accounting (Jianpeng Ma)
-* osd: misc optimizations (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
-* osd: use FIEMAP_FLAGS_SYNC instead of fsync (Jianpeng Ma)
-* rados: fix put of /dev/null (Loic Dachary)
-* rados: parse command-line arguments more strictly (#8983 Adam Crume)
-* rbd-fuse: fix memory leak (Adam Crume)
-* rbd-replay-many (Adam Crume)
-* rbd-replay: --anonymize flag to rbd-replay-prep (Adam Crume)
-* rbd: fix 'rbd diff' for non-existent objects (Adam Crume)
-* rbd: fix error when striping with format 1 (Sebastien Han)
-* rbd: fix export for image sizes over 2GB (Vicente Cheng)
-* rbd: use rolling average for rbd bench-write throughput (Jason Dillaman)
-* rgw: send explicit HTTP status string (Yehuda Sadeh)
-* rgw: set length for keystone token validation request (#7796 Yehuda Sadeh, Mark Kirkwood)
-* udev: fix rules for CentOS7/RHEL7 (Loic Dachary)
-* use clock_gettime instead of gettimeofday (Jianpeng Ma)
-* vstart.sh: set up environment for s3-tests (Luis Pabon)
-
-
-v0.87.2 Giant
-=============
-
-This is the second (and possibly final) point release for Giant.
-
-We recommend all v0.87.x Giant users upgrade to this release.
-
-Notable Changes
----------------
-
-* ceph-objectstore-tool: only output unsupported features when incompatible (#11176 David Zafman)
-* common: do not implicitly unlock rwlock on destruction (Federico Simoncelli)
-* common: make wait timeout on empty queue configurable (#10818 Samuel Just)
-* crush: pick ruleset id that matches and rule id (Xiaoxi Chen)
-* crush: set_choose_tries = 100 for new erasure code rulesets (#10353 Loic Dachary)
-* librados: check initialized atomic safely (#9617 Josh Durgin)
-* librados: fix failed tick_event assert (#11183 Zhiqiang Wang)
-* librados: fix looping on skipped maps (#9986 Ding Dinghua)
-* librados: fix op submit with timeout (#10340 Samuel Just)
-* librados: pybind: fix memory leak (#10723 Billy Olsen)
-* librados: pybind: keep reference to callbacks (#10775 Josh Durgin)
-* librados: translate operation flags from C APIs (Matthew Richards)
-* libradosstriper: fix write_full on ENOENT (#10758 Sebastien Ponce)
-* libradosstriper: use strtoll instead of strtol (Dongmao Zhang)
-* mds: fix assertion caused by system time moving backwards (#11053 Yan, Zheng)
-* mon: allow injection of random delays on writes (Joao Eduardo Luis)
-* mon: do not trust small osd epoch cache values (#10787 Sage Weil)
-* mon: fail non-blocking flush if object is being scrubbed (#8011 Samuel Just)
-* mon: fix division by zero in stats dump (Joao Eduardo Luis)
-* mon: fix get_rule_avail when no osds (#10257 Joao Eduardo Luis)
-* mon: fix timeout rounds period (#10546 Joao Eduardo Luis)
-* mon: ignore osd failures before up_from (#10762 Dan van der Ster, Sage Weil)
-* mon: paxos: reset accept timeout before writing to store (#10220 Joao Eduardo Luis)
-* mon: return if fs exists on 'fs new' (Joao Eduardo Luis)
-* mon: use EntityName when expanding profiles (#10844 Joao Eduardo Luis)
-* mon: verify cross-service proposal preconditions (#10643 Joao Eduardo Luis)
-* mon: wait for osdmon to be writeable when requesting proposal (#9794 Joao Eduardo Luis)
-* mount.ceph: avoid spurious error message about /etc/mtab (#10351 Yan, Zheng)
-* msg/simple: allow RESETSESSION when we forget an endpoint (#10080 Greg Farnum)
-* msg/simple: discard delay queue before incoming queue (#9910 Sage Weil)
-* osd: clear_primary_state when leaving Primary (#10059 Samuel Just)
-* osd: do not ignore deleted pgs on startup (#10617 Sage Weil)
-* osd: fix FileJournal wrap to get header out first (#10883 David Zafman)
-* osd: fix PG leak in SnapTrimWQ (#10421 Kefu Chai)
-* osd: fix journalq population in do_read_entry (#6003 Samuel Just)
-* osd: fix operator== for op_queue_age_hit and fs_perf_stat (#10259 Samuel Just)
-* osd: fix rare assert after split (#10430 David Zafman)
-* osd: get pgid ancestor from last_map when building past intervals (#10430 David Zafman)
-* osd: include rollback_info_trimmed_to in {read,write}_log (#10157 Samuel Just)
-* osd: lock header_lock in DBObjectMap::sync (#9891 Samuel Just)
-* osd: requeue blocked op before flush it was blocked on (#10512 Sage Weil)
-* osd: tolerate missing object between list and attr get on backfill (#10150 Samuel Just)
-* osd: use correct atime for eviction decision (Xinze Chi)
-* rgw: flush XML header on get ACL request (#10106 Yehuda Sadeh)
-* rgw: index swift keys appropriately (#10471 Hemant Bruman, Yehuda Sadeh)
-* rgw: send cancel for bucket index pending ops (#10770 Baijiaruo, Yehuda Sadeh)
-* rgw: swift: support X_Remove_Container-Meta-{key} (#01475 Dmytro Iurchenko)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.87.2.txt>`.
-
-v0.87.1 Giant
-=============
-
-This is the first (and possibly final) point release for Giant. Our focus
-on stability fixes will be directed towards Hammer and Firefly.
-
-We recommend that all v0.87 Giant users upgrade to this release.
-
-Upgrading
----------
-
-* Due to a change in the Linux kernel version 3.18 and the limits of the FUSE
- interface, ceph-fuse needs be mounted as root on at least some systems. See
- issues #9997, #10277, and #10542 for details.
-
-Notable Changes
----------------
-
-* build: disable stack-execute bit on assembler objects (#10114 Dan Mick)
-* build: support boost 1.57.0 (#10688 Ken Dreyer)
-* ceph-disk: fix dmcrypt file permissions (#9785 Loic Dachary)
-* ceph-disk: run partprobe after zap, behave with partx or partprobe (#9665 #9721 Loic Dachary)
-* cephfs-journal-tool: fix import for aged journals (#9977 John Spray)
-* cephfs-journal-tool: fix journal import (#10025 John Spray)
-* ceph-fuse: use remount to trim kernel dcache (#10277 Yan, Zheng)
-* common: add cctid meta variable (#6228 Adam Crume)
-* common: fix dump of shard for ghobject_t (#10063 Loic Dachary)
-* crush: fix bucket weight underflow (#9998 Pawel Sadowski)
-* erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
-* erasure-code: regression test suite (#9420 Loic Dachary)
-* erasure-code: relax caucy w restrictions (#10325 Loic Dachary)
-* libcephfs,ceph-fuse: allow xattr caps on inject_release_failure (#9800 John Spray)
-* libcephfs,ceph-fuse: fix cap flush tid comparison (#9869 Greg Farnum)
-* libcephfs,ceph-fuse: new flag to indicated sorted dcache (#9178 Yan, Zheng)
-* libcephfs,ceph-fuse: prune cache before reconnecting to MDS (Yan, Zheng)
-* librados: limit number of in-flight read requests (#9854 Jason Dillaman)
-* libradospy: fix thread shutdown (#8797 Dan Mick)
-* libradosstriper: fix locking issue in truncate (#10129 Sebastien Ponce)
-* librbd: complete pending ops before closing mage (#10299 Jason Dillaman)
-* librbd: fix error path on image open failure (#10030 Jason Dillaman)
-* librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
-* librbd: handle errors when creating ioctx while listing children (#10123 Jason Dillaman)
-* mds: fix compat version in MClientSession (#9945 John Spray)
-* mds: fix journaler write error handling (#10011 John Spray)
-* mds: fix locking for file size recovery (#10229 Yan, Zheng)
-* mds: handle heartbeat_reset during shutdown (#10382 John Spray)
-* mds: store backtrace for straydir (Yan, Zheng)
-* mon: allow tiers for FS pools (#10135 John Spray)
-* mon: fix caching of last_epoch_clean, osdmap trimming (#9987 Sage Weil)
-* mon: fix 'fs ls' on peons (#10288 John Spray)
-* mon: fix MDS health status from peons (#10151 John Spray)
-* mon: fix paxos off-by-one (#9301 Sage Weil)
-* msgr: simple: do not block on takeover while holding global lock (#9921 Greg Farnum)
-* osd: deep scrub must not abort if hinfo is missing (#10018 Loic Dachary)
-* osd: fix misdirected op detection (#9835 Sage Weil)
-* osd: fix past_interval display for acting (#9752 Loic Dachary)
-* osd: fix PG peering backoff when behind on osdmaps (#10431 Sage Weil)
-* osd: handle no-op write with snapshot case (#10262 Ssage Weil)
-* osd: use fast-dispatch (Sage Weil, Greg Farnum)
-* rados: fix write to /dev/null (Loic Dachary)
-* radosgw-admin: create subuser when needed (#10103 Yehuda Sadeh)
-* rbd: avoid invalidating aio_write buffer during image import (#10590 Jason Dillaman)
-* rbd: fix export with images > 2GB (Vicente Cheng)
-* rgw: change multipart upload id magic (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
-* rgw: check keystone auth for S3 POST (#10062 Abhishek Lekshmanan)
-* rgw: check timestamp for S3 keystone auth (#10062 Abhishek Lekshmanan)
-* rgw: fix partial GET with swift (#10553 Yehuda Sadeh)
-* rgw: fix quota disable (#9907 Dong Lei)
-* rgw: fix rare corruption of object metadata on put (#9576 Yehuda Sadeh)
-* rgw: fix S3 object copy content-type (#9478 Yehuda Sadeh)
-* rgw: headers end with \r\n (#9254 Benedikt Fraunhofer, Yehuda Sadeh)
-* rgw: remove swift user manifest DLO hash calculation (#9973 Yehuda Sadeh)
-* rgw: return correct len when len is 0 (#9877 Yehuda Sadeh)
-* rgw: return X-Timestamp field (#8911 Yehuda Sadeh)
-* rgw: run radosgw as apache with systemd (#10125)
-* rgw: sent ETag on S3 object copy (#9479 Yehuda Sadeh)
-* rgw: sent HTTP status reason explicitly in fastcgi (Yehuda Sadeh)
-* rgw: set length for keystone token validation (#7796 Mark Kirkwood, Yehuda Sadeh)
-* rgw: set ulimit -n on sysvinit before starting daemon (#9587 Sage Weil)
-* rgw: update bucket index on set_attrs (#5595 Yehuda Sadeh)
-* rgw: update swift subuser permission masks when authenticating (#9918 Yehuda Sadeh)
-* rgw: URL decode HTTP query params correction (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
-* rgw: use cached attrs while reading object attrs (#10307 Yehuda Sadeh)
-* rgw: use strict_strtoll for content length (#10701 Axel Dunkel, Yehuda Sadeh)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.87.1.txt>`.
-
-
-
-v0.87 Giant
-===========
-
-This release will form the basis for the stable release Giant,
-v0.87.x. Highlights for Giant include:
-
-* *RADOS Performance*: a range of improvements have been made in the
- OSD and client-side librados code that improve the throughput on
- flash backends and improve parallelism and scaling on fast machines.
-* *CephFS*: we have fixed a raft of bugs in CephFS and built some
- basic journal recovery and diagnostic tools. Stability and
- performance of single-MDS systems is vastly improved in Giant.
- Although we do not yet recommend CephFS for production deployments,
- we do encourage testing for non-critical workloads so that we can
- better guage the feature, usability, performance, and stability
- gaps.
-* *Local Recovery Codes*: the OSDs now support an erasure-coding scheme
- that stores some additional data blocks to reduce the IO required to
- recover from single OSD failures.
-* *Degraded vs misplaced*: the Ceph health reports from 'ceph -s' and
- related commands now make a distinction between data that is
- degraded (there are fewer than the desired number of copies) and
- data that is misplaced (stored in the wrong location in the
- cluster). The distinction is important because the latter does not
- compromise data safety.
-* *Tiering improvements*: we have made several improvements to the
- cache tiering implementation that improve performance. Most
- notably, objects are not promoted into the cache tier by a single
- read; they must be found to be sufficiently hot before that happens.
-* *Monitor performance*: the monitors now perform writes to the local
- data store asynchronously, improving overall responsiveness.
-* *Recovery tools*: the ceph_objectstore_tool is greatly expanded to
- allow manipulation of an individual OSDs data store for debugging
- and repair purposes. This is most heavily used by our QA
- infrastructure to exercise recovery code.
-
-Upgrade Sequencing
-------------------
-
-* If your existing cluster is running a version older than v0.80.x
- Firefly, please first upgrade to the latest Firefly release before
- moving on to Giant. We have not tested upgrades directly from
- Emperor, Dumpling, or older releases.
-
- We *have* tested:
-
- * Firefly to Giant
- * Dumpling to Firefly to Giant
-
-* Please upgrade daemons in the following order:
-
- #. Monitors
- #. OSDs
- #. MDSs and/or radosgw
-
- Note that the relative ordering of OSDs and monitors should not matter, but
- we primarily tested upgrading monitors first.
-
-Upgrading from v0.80x Firefly
------------------------------
-
-* The client-side caching for librbd is now enabled by default (rbd
- cache = true). A safety option (rbd cache writethrough until flush
- = true) is also enabled so that writeback caching is not used until
- the library observes a 'flush' command, indicating that the librbd
- users is passing that operation through from the guest VM. This
- avoids potential data loss when used with older versions of qemu
- that do not support flush.
-
- leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-* The 'rados getxattr ...' command used to add a gratuitous newline to the attr
- value; it now does not.
-
-* The ``*_kb perf`` counters on the monitor have been removed. These are
- replaced with a new set of ``*_bytes`` counters (e.g., ``cluster_osd_kb`` is
- replaced by ``cluster_osd_bytes``).
-
-* The ``rd_kb`` and ``wr_kb`` fields in the JSON dumps for pool stats (accessed
- via the ``ceph df detail -f json-pretty`` and related commands) have been
- replaced with corresponding ``*_bytes`` fields. Similarly, the
- ``total_space``, ``total_used``, and ``total_avail`` fields are replaced with
- ``total_bytes``, ``total_used_bytes``, and ``total_avail_bytes`` fields.
-
-* The ``rados df --format=json`` output ``read_bytes`` and ``write_bytes``
- fields were incorrectly reporting ops; this is now fixed.
-
-* The ``rados df --format=json`` output previously included ``read_kb`` and
- ``write_kb`` fields; these have been removed. Please use ``read_bytes`` and
- ``write_bytes`` instead (and divide by 1024 if appropriate).
-
-* The experimental keyvaluestore-dev OSD backend had an on-disk format
- change that prevents existing OSD data from being upgraded. This
- affects developers and testers only.
-
-* mon-specific and osd-specific leveldb options have been removed.
- From this point onward users should use the `leveldb_*` generic
- options and add the options in the appropriate sections of their
- configuration files. Monitors will still maintain the following
- monitor-specific defaults:
-
- leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-* CephFS support for the legacy anchor table has finally been removed.
- Users with file systems created before firefly should ensure that inodes
- with multiple hard links are modified *prior* to the upgrade to ensure that
- the backtraces are written properly. For example::
-
- sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
-
-* We disallow nonsensical 'tier cache-mode' transitions. From this point
- onward, 'writeback' can only transition to 'forward' and 'forward'
- can transition to 1) 'writeback' if there are dirty objects, or 2) any if
- there are no dirty objects.
-
-Notable Changes since v0.86
----------------------------
-
-* ceph-disk: use new udev rules for centos7/rhel7 (#9747 Loic Dachary)
-* libcephfs-java: fix fstat mode (Noah Watkins)
-* librados: fix deadlock when listing PG contents (Guang Yang)
-* librados: misc fixes to the new threading model (#9582 #9706 #9845 #9873 Sage Weil)
-* mds: fix inotable initialization (Henry C Chang)
-* mds: gracefully handle unknown lock type in flock requests (Yan, Zheng)
-* mon: add read-only, read-write, and role-definer rols (Joao Eduardo Luis)
-* mon: fix mon cap checks (Joao Eduardo Luis)
-* mon: misc fixes for new paxos async writes (#9635 Sage Weil)
-* mon: set scrub timestamps on PG creation (#9496 Joao Eduardo Luis)
-* osd: erasure code: fix buffer alignment (Janne Grunau, Loic Dachary)
-* osd: fix alloc hint induced crashes on mixed clusters (#9419 David Zafman)
-* osd: fix backfill reservation release on rejection (#9626, Samuel Just)
-* osd: fix ioprio option parsing (#9676 #9677 Loic Dachary)
-* osd: fix memory leak during snap trimming (#9113 Samuel Just)
-* osd: misc peering and recovery fixes (#9614 #9696 #9731 #9718 #9821 #9875 Samuel Just, Guang Yang)
-
-Notable Changes since v0.80.x Firefly
--------------------------------------
-
-* bash completion improvements (Wido den Hollander)
-* brag: fixes, improvements (Loic Dachary)
-* buffer: improve rebuild_page_aligned (Ma Jianpeng)
-* build: fix build on alpha (Michael Cree, Dmitry Smirnov)
-* build: fix CentOS 5 (Gerben Meijer)
-* build: fix yasm check for x32 (Daniel Schepler, Sage Weil)
-* ceph-brag: add tox tests (Alfredo Deza)
-* ceph-conf: flush log on exit (Sage Weil)
-* ceph.conf: update sample (Sebastien Han)
-* ceph-dencoder: refactor build a bit to limit dependencies (Sage Weil, Dan Mick)
-* ceph-disk: add Scientific Linux support (Dan van der Ster)
-* ceph-disk: do not inadvertantly create directories (Owne Synge)
-* ceph-disk: fix dmcrypt support (Sage Weil)
-* ceph-disk: fix dmcrypt support (Stephen Taylor)
-* ceph-disk: handle corrupt volumes (Stuart Longlang)
-* ceph-disk: linter cleanup, logging improvements (Alfredo Deza)
-* ceph-disk: partprobe as needed (Eric Eastman)
-* ceph-disk: show information about dmcrypt in 'ceph-disk list' output (Sage Weil)
-* ceph-disk: use partition type UUIDs and blkid (Sage Weil)
-* ceph: fix for non-default cluster names (#8944, Dan Mick)
-* ceph-fuse, libcephfs: asok hooks for handling session resets, timeouts (Yan, Zheng)
-* ceph-fuse, libcephfs: fix crash in trim_caps (John Spray)
-* ceph-fuse, libcephfs: improve cap trimming (John Spray)
-* ceph-fuse, libcephfs: improve traceless reply handling (Sage Weil)
-* ceph-fuse, libcephfs: virtual xattrs for rstat (Yan, Zheng)
-* ceph_objectstore_tool: vastly improved and extended tool for working offline with OSD data stores (David Zafman)
-* ceph.spec: many fixes (Erik Logtenberg, Boris Ranto, Dan Mick, Sandon Van Ness)
-* ceph.spec: split out ceph-common package, other fixes (Sandon Van Ness)
-* ceph_test_librbd_fsx: fix RNG, make deterministic (Ilya Dryomov)
-* cephtool: fix help (Yilong Zhao)
-* cephtool: refactor and improve CLI tests (Joao Eduardo Luis)
-* cephtool: test cleanup (Joao Eduardo Luis)
-* clang build fixes (John Spray, Danny Al-Gaaf)
-* client: improved MDS session dumps (John Spray)
-* common: add config diff admin socket command (Joao Eduardo Luis)
-* common: add rwlock assertion checks (Yehuda Sadeh)
-* common: fix dup log messages (#9080, Sage Weil)
-* common: perfcounters now use atomics and go faster (Sage Weil)
-* config: support G, M, K, etc. suffixes (Joao Eduardo Luis)
-* coverity cleanups (Danny Al-Gaaf)
-* crush: clean up CrushWrapper interface (Xioaxi Chen)
-* crush: include new tunables in dump (Sage Weil)
-* crush: make ruleset ids unique (Xiaoxi Chen, Loic Dachary)
-* crush: only require rule features if the rule is used (#8963, Sage Weil)
-* crushtool: send output to stdout, not stderr (Wido den Hollander)
-* doc: cache tiering (John Wilkins)
-* doc: CRUSH updates (John Wilkins)
-* doc: document new upstream wireshark dissector (Kevin Cox)
-* doc: improve manual install docs (Francois Lafont)
-* doc: keystone integration docs (John Wilkins)
-* doc: librados example fixes (Kevin Dalley)
-* doc: many doc updates (John Wilkins)
-* doc: many install doc updates (John Wilkins)
-* doc: misc updates (John Wilkins, Loic Dachary, David Moreau Simard, Wido den Hollander. Volker Voigt, Alfredo Deza, Stephen Jahl, Dan van der Ster)
-* doc: osd primary affinity (John Wilkins)
-* doc: pool quotas (John Wilkins)
-* doc: pre-flight doc improvements (Kevin Dalley)
-* doc: switch to an unencumbered font (Ross Turk)
-* doc: updated simple configuration guides (John Wilkins)
-* doc: update erasure docs (Loic Dachary, Venky Shankar)
-* doc: update openstack docs (Josh Durgin)
-* filestore: disable use of XFS hint (buggy on old kernels) (Samuel Just)
-* filestore: fix xattr spillout (Greg Farnum, Haomai Wang)
-* fix hppa arch build (Dmitry Smirnov)
-* fix i386 builds (Sage Weil)
-* fix struct vs class inconsistencies (Thorsten Behrens)
-* global: write pid file even when running in foreground (Alexandre Oliva)
-* hadoop: improve tests (Huamin Chen, Greg Farnum, John Spray)
-* hadoop: update hadoop tests for Hadoop 2.0 (Haumin Chen)
-* init-ceph: continue starting other daemons on crush or mount failure (#8343, Sage Weil)
-* journaler: fix locking (Zheng, Yan)
-* keyvaluestore: fix hint crash (#8381, Haomai Wang)
-* keyvaluestore: header cache (Haomai Wang)
-* libcephfs-java: build against older JNI headers (Greg Farnum)
-* libcephfs-java: fix gcj-jdk build (Dmitry Smirnov)
-* librados: fix crash on read op timeout (#9362 Matthias Kiefer, Sage Weil)
-* librados: fix lock leaks in error paths (#9022, Paval Rallabhandi)
-* librados: fix pool existence check (#8835, Pavan Rallabhandi)
-* librados: fix rados_pool_list bounds checks (Sage Weil)
-* librados: fix shutdown race (#9130 Sage Weil)
-* librados: fix watch/notify test (#7934 David Zafman)
-* librados: fix watch reregistration on acting set change (#9220 Samuel Just)
-* librados: give Objecter fine-grained locks (Yehuda Sadeh, Sage Weil, John Spray)
-* librados: lttng tracepoitns (Adam Crume)
-* librados, osd: return ETIMEDOUT on failed notify (Sage Weil)
-* librados: pybind: fix reads when \0 is present (#9547 Mohammad Salehe)
-* librados_striper: striping library for librados (Sebastien Ponce)
-* librbd, ceph-fuse: reduce cache flush overhead (Haomai Wang)
-* librbd: check error code on cache invalidate (Josh Durgin)
-* librbd: enable caching by default (Sage Weil)
-* librbd: enforce cache size on read requests (Jason Dillaman)
-* librbd: fix crash using clone of flattened image (#8845, Josh Durgin)
-* librbd: fix error path when opening image (#8912, Josh Durgin)
-* librbd: handle blacklisting during shutdown (#9105 John Spray)
-* librbd: lttng tracepoints (Adam Crume)
-* librbd: new libkrbd library for kernel map/unmap/showmapped (Ilya Dryomov)
-* librbd: store and retrieve snapshot metadata based on id (Josh Durgin)
-* libs3: update to latest (Danny Al-Gaaf)
-* log: fix derr level (Joao Eduardo Luis)
-* logrotate: fix osd log rotation on ubuntu (Sage Weil)
-* lttng: tracing infrastructure (Noah Watkins, Adam Crume)
-* mailmap: many updates (Loic Dachary)
-* mailmap: updates (Loic Dachary, Abhishek Lekshmanan, M Ranga Swami Reddy)
-* Makefile: fix out of source builds (Stefan Eilemann)
-* many many coverity fixes, cleanups (Danny Al-Gaaf)
-* mds: adapt to new Objecter locking, give types to all Contexts (John Spray)
-* mds: add file system name, enabled flag (John Spray)
-* mds: add internal health checks (John Spray)
-* mds: add min/max UID for snapshot creation/deletion (#9029, Wido den Hollander)
-* mds: avoid tight mon reconnect loop (#9428 Sage Weil)
-* mds: boot refactor, cleanup (John Spray)
-* mds: cephfs-journal-tool (John Spray)
-* mds: fix crash killing sessions (#9173 John Spray)
-* mds: fix ctime updates (#9514 Greg Farnum)
-* mds: fix journal conversion with standby-replay (John Spray)
-* mds: fix replay locking (Yan, Zheng)
-* mds: fix standby-replay cache trimming (#8648 Zheng, Yan)
-* mds: fix xattr bug triggered by ACLs (Yan, Zheng)
-* mds: give perfcounters meaningful names (Sage Weil)
-* mds: improve health reporting to monitor (John Spray)
-* mds: improve Journaler on-disk format (John Spray)
-* mds: improve journal locking (Zheng, Yan)
-* mds, libcephfs: use client timestamp for mtime/ctime (Sage Weil)
-* mds: make max file recoveries tunable (Sage Weil)
-* mds: misc encoding improvements (John Spray)
-* mds: misc fixes for multi-mds (Yan, Zheng)
-* mds: multi-mds fixes (Yan, Zheng)
-* mds: OPTracker integration, dump_ops_in_flight (Greg Farnum)
-* mds: prioritize file recovery when appropriate (Sage Weil)
-* mds: refactor beacon, improve reliability (John Spray)
-* mds: remove legacy anchor table (Yan, Zheng)
-* mds: remove legacy discover ino (Yan, Zheng)
-* mds: restart on EBLACKLISTED (John Spray)
-* mds: separate inode recovery queue (John Spray)
-* mds: session ls, evict commands (John Spray)
-* mds: submit log events in async thread (Yan, Zheng)
-* mds: track RECALL progress, report failure (#9284 John Spray)
-* mds: update segment references during journal write (John Spray, Greg Farnum)
-* mds: use client-provided timestamp for user-visible file metadata (Yan, Zheng)
-* mds: use meaningful names for clients (John Spray)
-* mds: validate journal header on load and save (John Spray)
-* mds: warn clients which aren't revoking caps (Zheng, Yan, John Spray)
-* misc build errors/warnings for Fedora 20 (Boris Ranto)
-* misc build fixes for OS X (John Spray)
-* misc cleanup (Christophe Courtaut)
-* misc integer size cleanups (Kevin Cox)
-* misc memory leaks, cleanups, fixes (Danny Al-Gaaf, Sahid Ferdjaoui)
-* misc suse fixes (Danny Al-Gaaf)
-* misc word size fixes (Kevin Cox)
-* mon: add audit log for all admin commands (Joao Eduardo Luis)
-* mon: add cluster fingerprint (Sage Weil)
-* mon: add get-quota commands (Joao Eduardo Luis)
-* mon: add 'osd blocked-by' command to easily see which OSDs are blocking peering progress (Sage Weil)
-* mon: add 'osd reweight-by-pg' command (Sage Weil, Guang Yang)
-* mon: add perfcounters for paxos operations (Sage Weil)
-* mon: avoid creating unnecessary rule on pool create (#9304 Loic Dachary)
-* monclient: fix hang (Sage Weil)
-* mon: create default EC profile if needed (Loic Dachary)
-* mon: do not create file system by default (John Spray)
-* mon: do not spam log (Aanchal Agrawal, Sage Weil)
-* mon: drop mon- and osd- specific leveldb options (Joao Eduardo Luis)
-* mon: ec pool profile fixes (Loic Dachary)
-* mon: fix bug when no auth keys are present (#8851, Joao Eduardo Luis)
-* mon: fix 'ceph df' output for available space (Xiaoxi Chen)
-* mon: fix compat version for MForward (Joao Eduardo Luis)
-* mon: fix crash on loopback messages and paxos timeouts (#9062, Sage Weil)
-* mon: fix default replication pool ruleset choice (#8373, John Spray)
-* mon: fix divide by zero when pg_num is adjusted before OSDs are added (#9101, Sage Weil)
-* mon: fix double-free of old MOSDBoot (Sage Weil)
-* mon: fix health down messages (Sage Weil)
-* mon: fix occasional memory leak after session reset (#9176, Sage Weil)
-* mon: fix op write latency perfcounter (#9217 Xinxin Shu)
-* mon: fix 'osd perf' reported latency (#9269 Samuel Just)
-* mon: fix quorum feature check (#8738, Greg Farnum)
-* mon: fix ruleset/ruleid bugs (#9044, Loic Dachary)
-* mon: fix set cache_target_full_ratio (#8440, Geoffrey Hartz)
-* mon: fix store check on startup (Joao Eduardo Luis)
-* mon: include per-pool 'max avail' in df output (Sage Weil)
-* mon: make paxos transaction commits asynchronous (Sage Weil)
-* mon: make usage dumps in terms of bytes, not kB (Sage Weil)
-* mon: 'osd crush reweight-subtree ...' (Sage Weil)
-* mon, osd: relax client EC support requirements (Sage Weil)
-* mon: preload erasure plugins (#9153 Loic Dachary)
-* mon: prevent cache pools from being used directly by CephFS (#9435 John Spray)
-* mon: prevent EC pools from being used with cephfs (Joao Eduardo Luis)
-* mon: prevent implicit destruction of OSDs with 'osd setmaxosd ...' (#8865, Anand Bhat)
-* mon: prevent nonsensical cache-mode transitions (Joao Eduardo Luis)
-* mon: restore original weight when auto-marked out OSDs restart (Sage Weil)
-* mon: restrict some pool properties to tiered pools (Joao Eduardo Luis)
-* mon: some instrumentation (Sage Weil)
-* mon: use msg header tid for MMonGetVersionReply (Ilya Dryomov)
-* mon: use user-provided ruleset for replicated pool (Xiaoxi Chen)
-* mon: verify all quorum members are contiguous at end of Paxos round (#9053, Sage Weil)
-* mon: verify available disk space on startup (#9502 Joao Eduardo Luis)
-* mon: verify erasure plugin version on load (Loic Dachary)
-* msgr: avoid big lock when sending (most) messages (Greg Farnum)
-* msgr: fix logged address (Yongyue Sun)
-* msgr: misc locking fixes for fast dispatch (#8891, Sage Weil)
-* msgr: refactor to cleanly separate SimpleMessenger implemenetation, move toward Connection-based calls (Matt Benjamin, Sage Wei)
-* objecter: flag operations that are redirected by caching (Sage Weil)
-* objectstore: clean up KeyValueDB interface for key/value backends (Sage Weil)
-* osd: account for hit_set_archive bytes (Sage Weil)
-* osd: add ability to prehash filestore directories (Guang Yang)
-* osd: add 'dump_reservations' admin socket command (Sage Weil)
-* osd: add feature bit for erasure plugins (Loic Dachary)
-* osd: add header cache for KeyValueStore (Haomai Wang)
-* osd: add ISA erasure plugin table cache (Andreas-Joachim Peters)
-* osd: add local_mtime for use by cache agent (Zhiqiang Wang)
-* osd: add local recovery code (LRC) erasure plugin (Loic Dachary)
-* osd: add prototype KineticStore based on Seagate Kinetic (Josh Durgin)
-* osd: add READFORWARD caching mode (Luis Pabon)
-* osd: add superblock for KeyValueStore backend (Haomai Wang)
-* osd: add support for Intel ISA-L erasure code library (Andreas-Joachim Peters)
-* osd: allow map cache size to be adjusted at runtime (Sage Weil)
-* osd: avoid refcounting overhead by passing a few things by ref (Somnath Roy)
-* osd: avoid sharing PG info that is not durable (Samuel Just)
-* osd: bound osdmap epoch skew between PGs (Sage Weil)
-* osd: cache tier flushing fixes for snapped objects (Samuel Just)
-* osd: cap hit_set size (#9339 Samuel Just)
-* osd: clean up shard_id_t, shard_t (Loic Dachary)
-* osd: clear FDCache on unlink (#8914 Loic Dachary)
-* osd: clear slow request latency info on osd up/down (Sage Weil)
-* osd: do not evict blocked objects (#9285 Zhiqiang Wang)
-* osd: do not skip promote for write-ordered reads (#9064, Samuel Just)
-* osd: fix agent early finish looping (David Zafman)
-* osd: fix ambigous encoding order for blacklisted clients (#9211, Sage Weil)
-* osd: fix bogus assert during OSD shutdown (Sage Weil)
-* osd: fix bug with long object names and rename (#8701, Sage Weil)
-* osd: fix cache flush corner case for snapshotted objects (#9054, Samuel Just)
-* osd: fix cache full -> not full requeueing (#8931, Sage Weil)
-* osd: fix clone deletion case (#8334, Sam Just)
-* osd: fix clone vs cache_evict bug (#8629 Sage Weil)
-* osd: fix connection reconnect race (Greg Farnum)
-* osd: fix crash from duplicate backfill reservation (#8863 Sage Weil)
-* osd: fix dead peer connection checks (#9295 Greg Farnum, Sage Weil)
-* osd: fix discard of old/obsolete subop replies (#9259, Samuel Just)
-* osd: fix discard of peer messages from previous intervals (Greg Farnum)
-* osd: fix dump of open fds on EMFILE (Sage Weil)
-* osd: fix dumps (Joao Eduardo Luis)
-* osd: fix erasure-code lib initialization (Loic Dachary)
-* osd: fix extent normalization (Adam Crume)
-* osd: fix filestore removal corner case (#8332, Sam Just)
-* osd: fix flush vs OpContext (Samuel Just)
-* osd: fix gating of messages from old OSD instances (Greg Farnum)
-* osd: fix hang waiting for osdmap (#8338, Greg Farnum)
-* osd: fix interval check corner case during peering (#8104, Sam Just)
-* osd: fix ISA erasure alignment (Loic Dachary, Andreas-Joachim Peters)
-* osd: fix journal dump (Ma Jianpeng)
-* osd: fix journal-less operation (Sage Weil)
-* osd: fix keyvaluestore scrub (#8589 Haomai Wang)
-* osd: fix keyvaluestore upgrade (Haomai Wang)
-* osd: fix loopback msgr issue (Ma Jianpeng)
-* osd: fix LSB release parsing (Danny Al-Gaaf)
-* osd: fix MarkMeDown and other shutdown races (Sage Weil)
-* osd: fix memstore bugs with collection_move_rename, lock ordering (Sage Weil)
-* osd: fix min_read_recency_for_promote default on upgrade (Zhiqiang Wang)
-* osd: fix mon feature bit requirements bug and resulting log spam (Sage Weil)
-* osd: fix mount/remount sync race (#9144 Sage Weil)
-* osd: fix PG object listing/ordering bug (Guang Yang)
-* osd: fix PG stat errors with tiering (#9082, Sage Weil)
-* osd: fix purged_snap initialization on backfill (Sage Weil, Samuel Just, Dan van der Ster, Florian Haas)
-* osd: fix race condition on object deletion (#9480 Somnath Roy)
-* osd: fix recovery chunk size usage during EC recovery (Ma Jianpeng)
-* osd: fix recovery reservation deadlock for EC pools (Samuel Just)
-* osd: fix removal of old xattrs when overwriting chained xattrs (Ma Jianpeng)
-* osd: fix requesting queueing on PG split (Samuel Just)
-* osd: fix scrub vs cache bugs (Samuel Just)
-* osd: fix snap object writeback from cache tier (#9054 Samuel Just)
-* osd: fix trim of hitsets (Sage Weil)
-* osd: force new xattrs into leveldb if fs returns E2BIG (#7779, Sage Weil)
-* osd: implement alignment on chunk sizes (Loic Dachary)
-* osd: improved backfill priorities (Sage Weil)
-* osd: improve journal shutdown (Ma Jianpeng, Mark Kirkwood)
-* osd: improve locking for KeyValueStore (Haomai Wang)
-* osd: improve locking in OpTracker (Pavan Rallabhandi, Somnath Roy)
-* osd: improve prioritization of recovery of degraded over misplaced objects (Sage Weil)
-* osd: improve tiering agent arithmetic (Zhiqiang Wang, Sage Weil, Samuel Just)
-* osd: include backend information in metadata reported to mon (Sage Weil)
-* osd: locking, sharding, caching improvements in FileStore's FDCache (Somnath Roy, Greg Farnum)
-* osd: lttng tracepoints for filestore (Noah Watkins)
-* osd: make blacklist encoding deterministic (#9211 Sage Weil)
-* osd: make tiering behave if hit_sets aren't enabled (Sage Weil)
-* osd: many important bug fixes (Samuel Just)
-* osd: many many core fixes (Samuel Just)
-* osd: many many important fixes (#8231 #8315 #9113 #9179 #9293 #9294 #9326 #9453 #9481 #9482 #9497 #9574 Samuel Just)
-* osd: mark pools with incomplete clones (Sage Weil)
-* osd: misc erasure code plugin fixes (Loic Dachary)
-* osd: misc locking fixes for fast dispatch (Samuel Just, Ma Jianpeng)
-* osd, mon: add rocksdb support (Xinxin Shu, Sage Weil)
-* osd, mon: config sanity checks on start (Sage Weil, Joao Eduardo Luis)
-* osd, mon: distinguish between "misplaced" and "degraded" objects in cluster health and PG state reporting (Sage Weil)
-* osd, msgr: fast-dispatch of OSD ops (Greg Farnum, Samuel Just)
-* osd, objecter: resend ops on last_force_op_resend barrier; fix cache overlay op ordering (Sage Weil)
-* osd: preload erasure plugins (#9153 Loic Dachary)
-* osd: prevent old rados clients from using tiered pools (#8714, Sage Weil)
-* osd: reduce OpTracker overhead (Somnath Roy)
-* osd: refactor some ErasureCode functionality into command parent class (Loic Dachary)
-* osd: remove obsolete classic scrub code (David Zafman)
-* osd: scrub PGs with invalid stats (Sage Weil)
-* osd: set configurable hard limits on object and xattr names (Sage Weil, Haomai Wang)
-* osd: set rollback_info_completed on create (#8625, Samuel Just)
-* osd: sharded threadpool to improve parallelism (Somnath Roy)
-* osd: shard OpTracker to improve performance (Somnath Roy)
-* osd: simple io prioritization for scrub (Sage Weil)
-* osd: simple scrub throttling (Sage Weil)
-* osd: simple snap trimmer throttle (Sage Weil)
-* osd: tests for bench command (Loic Dachary)
-* osd: trim old EC objects quickly; verify on scrub (Samuel Just)
-* osd: use FIEMAP to inform copy_range (Haomai Wang)
-* osd: use local time for tiering decisions (Zhiqiang Wang)
-* osd: use xfs hint less frequently (Ilya Dryomov)
-* osd: verify erasure plugin version on load (Loic Dachary)
-* osd: work around GCC 4.8 bug in journal code (Matt Benjamin)
-* pybind/rados: fix small timeouts (John Spray)
-* qa: xfstests updates (Ilya Dryomov)
-* rados: allow setxattr value to be read from stdin (Sage Weil)
-* rados bench: fix arg order (Kevin Dalley)
-* rados: drop gratuitous \n from getxattr command (Sage Weil)
-* rados: fix bench write arithmetic (Jiangheng)
-* rados: fix {read,write}_ops values for df output (Sage Weil)
-* rbd: add rbdmap pre- and post post- hooks, fix misc bugs (Dmitry Smirnov)
-* rbd-fuse: allow exposing single image (Stephen Taylor)
-* rbd-fuse: fix unlink (Josh Durgin)
-* rbd: improve option default behavior (Josh Durgin)
-* rbd: parallelize rbd import, export (Jason Dillaman)
-* rbd: rbd-replay utility to replay captured rbd workload traces (Adam Crume)
-* rbd: use write-back (not write-through) when caching is enabled (Jason Dillaman)
-* removed mkcephfs (deprecated since dumpling)
-* rest-api: fix help (Ailing Zhang)
-* rgw: add civetweb as default frontent on port 7490 (#9013 Yehuda Sadeh)
-* rgw: add --min-rewrite-stripe-size for object restriper (Yehuda Sadeh)
-* rgw: add powerdns hook for dynamic DNS for global clusters (Wido den Hollander)
-* rgw: add S3 bucket get location operation (Abhishek Lekshmanan)
-* rgw: allow : in S3 access key (Roman Haritonov)
-* rgw: automatically align writes to EC pool (#8442, Yehuda Sadeh)
-* rgw: bucket link uses instance id (Yehuda Sadeh)
-* rgw: cache bucket info (Yehuda Sadeh)
-* rgw: cache decoded user info (Yehuda Sadeh)
-* rgw: check entity permission for put_metadata (#8428, Yehuda Sadeh)
-* rgw: copy object data is target bucket is in a different pool (#9039, Yehuda Sadeh)
-* rgw: do not try to authenticate CORS preflight requests (#8718, Robert Hubbard, Yehuda Sadeh)
-* rgw: fix admin create user op (#8583 Ray Lv)
-* rgw: fix civetweb URL decoding (#8621, Yehuda Sadeh)
-* rgw: fix crash on swift CORS preflight request (#8586, Yehuda Sadeh)
-* rgw: fix log filename suffix (#9353 Alexandre Marangone)
-* rgw: fix memory leak following chunk read error (Yehuda Sadeh)
-* rgw: fix memory leaks (Andrey Kuznetsov)
-* rgw: fix multipart object attr regression (#8452, Yehuda Sadeh)
-* rgw: fix multipart upload (#8846, Silvain Munaut, Yehuda Sadeh)
-* rgw: fix radosgw-admin 'show log' command (#8553, Yehuda Sadeh)
-* rgw: fix removal of objects during object creation (Patrycja Szablowska, Yehuda Sadeh)
-* rgw: fix striping for copied objects (#9089, Yehuda Sadeh)
-* rgw: fix test for identify whether an object has a tail (#9226, Yehuda Sadeh)
-* rgw: fix URL decoding (#8702, Brian Rak)
-* rgw: fix URL escaping (Yehuda Sadeh)
-* rgw: fix usage (Abhishek Lekshmanan)
-* rgw: fix user manifest (Yehuda Sadeh)
-* rgw: fix when stripe size is not a multiple of chunk size (#8937, Yehuda Sadeh)
-* rgw: handle empty extra pool name (Yehuda Sadeh)
-* rgw: improve civetweb logging (Yehuda Sadeh)
-* rgw: improve delimited listing of bucket, misc fixes (Yehuda Sadeh)
-* rgw: improve -h (Abhishek Lekshmanan)
-* rgw: many fixes for civetweb (Yehuda Sadeh)
-* rgw: misc civetweb fixes (Yehuda Sadeh)
-* rgw: misc civetweb frontend fixes (Yehuda Sadeh)
-* rgw: object and bucket rewrite functions to allow restriping old objects (Yehuda Sadeh)
-* rgw: powerdns backend for global namespaces (Wido den Hollander)
-* rgw: prevent multiobject PUT race (Yehuda Sadeh)
-* rgw: send user manifest header (Yehuda Sadeh)
-* rgw: subuser creation fixes (#8587 Yehuda Sadeh)
-* rgw: use systemd-run from sysvinit script (JuanJose Galvez)
-* rpm: do not restart daemons on upgrade (Alfredo Deza)
-* rpm: misc packaging fixes for rhel7 (Sandon Van Ness)
-* rpm: split ceph-common from ceph (Sandon Van Ness)
-* systemd: initial systemd config files (Federico Simoncelli)
-* systemd: wrap started daemons in new systemd environment (Sage Weil, Dan Mick)
-* sysvinit: add support for non-default cluster names (Alfredo Deza)
-* sysvinit: less sensitive to failures (Sage Weil)
-* test_librbd_fsx: test krbd as well as librbd (Ilya Dryomov)
-* unit test improvements (Loic Dachary)
-* upstart: increase max open files limit (Sage Weil)
-* vstart.sh: fix/improve rgw support (Luis Pabon, Abhishek Lekshmanan)
-
-
-
-
-v0.86
-=====
-
-This is a release candidate for Giant, which will hopefully be out
-in another week or two. We did a feature freeze about a month ago
-and since then have been doing only stabilization and bug fixing (and
-a handful on low-risk enhancements). A fair bit of new functionality
-went into the final sprint, but it's baked for quite a while now and
-we're feeling pretty good about it.
-
-Major items include:
-
-* librados locking refactor to improve scaling and client performance
-* local recovery code (LRC) erasure code plugin to trade some
- additional storage overhead for improved recovery performance
-* LTTNG tracing framework, with initial tracepoints in librados,
- librbd, and the OSD FileStore backend
-* separate monitor audit log for all administrative commands
-* asynchronos monitor transaction commits to reduce the impact on
- monitor read requests while processing updates
-* low-level tool for working with individual OSD data stores for
- debugging, recovery, and testing
-* many MDS improvements (bug fixes, health reporting)
-
-There are still a handful of known bugs in this release, but nothing
-severe enough to prevent a release. By and large we are pretty
-pleased with the stability and expect the final Giant release to be
-quite reliable.
-
-Please try this out on your non-production clusters for a preview
-
-Notable Changes
----------------
-
-* buffer: improve rebuild_page_aligned (Ma Jianpeng)
-* build: fix CentOS 5 (Gerben Meijer)
-* build: fix build on alpha (Michael Cree, Dmitry Smirnov)
-* build: fix yasm check for x32 (Daniel Schepler, Sage Weil)
-* ceph-disk: add Scientific Linux support (Dan van der Ster)
-* ceph-fuse, libcephfs: fix crash in trim_caps (John Spray)
-* ceph-fuse, libcephfs: improve cap trimming (John Spray)
-* ceph-fuse, libcephfs: virtual xattrs for rstat (Yan, Zheng)
-* ceph.conf: update sample (Sebastien Han)
-* ceph.spec: many fixes (Erik Logtenberg, Boris Ranto, Dan Mick, Sandon Van Ness)
-* ceph_objectstore_tool: vastly improved and extended tool for working offline with OSD data stores (David Zafman)
-* common: add config diff admin socket command (Joao Eduardo Luis)
-* common: add rwlock assertion checks (Yehuda Sadeh)
-* crush: clean up CrushWrapper interface (Xioaxi Chen)
-* crush: make ruleset ids unique (Xiaoxi Chen, Loic Dachary)
-* doc: improve manual install docs (Francois Lafont)
-* doc: misc updates (John Wilkins, Loic Dachary, David Moreau Simard, Wido den Hollander. Volker Voigt, Alfredo Deza, Stephen Jahl, Dan van der Ster)
-* global: write pid file even when running in foreground (Alexandre Oliva)
-* hadoop: improve tests (Huamin Chen, Greg Farnum, John Spray)
-* journaler: fix locking (Zheng, Yan)
-* librados, osd: return ETIMEDOUT on failed notify (Sage Weil)
-* librados: fix crash on read op timeout (#9362 Matthias Kiefer, Sage Weil)
-* librados: fix shutdown race (#9130 Sage Weil)
-* librados: fix watch reregistration on acting set change (#9220 Samuel Just)
-* librados: fix watch/notify test (#7934 David Zafman)
-* librados: give Objecter fine-grained locks (Yehuda Sadeh, Sage Weil, John Spray)
-* librados: lttng tracepoitns (Adam Crume)
-* librados: pybind: fix reads when \0 is present (#9547 Mohammad Salehe)
-* librbd: enforce cache size on read requests (Jason Dillaman)
-* librbd: handle blacklisting during shutdown (#9105 John Spray)
-* librbd: lttng tracepoints (Adam Crume)
-* lttng: tracing infrastructure (Noah Watkins, Adam Crume)
-* mailmap: updates (Loic Dachary, Abhishek Lekshmanan, M Ranga Swami Reddy)
-* many many coverity fixes, cleanups (Danny Al-Gaaf)
-* mds: adapt to new Objecter locking, give types to all Contexts (John Spray)
-* mds: add internal health checks (John Spray)
-* mds: avoid tight mon reconnect loop (#9428 Sage Weil)
-* mds: fix crash killing sessions (#9173 John Spray)
-* mds: fix ctime updates (#9514 Greg Farnum)
-* mds: fix replay locking (Yan, Zheng)
-* mds: fix standby-replay cache trimming (#8648 Zheng, Yan)
-* mds: give perfcounters meaningful names (Sage Weil)
-* mds: improve health reporting to monitor (John Spray)
-* mds: improve journal locking (Zheng, Yan)
-* mds: make max file recoveries tunable (Sage Weil)
-* mds: prioritize file recovery when appropriate (Sage Weil)
-* mds: refactor beacon, improve reliability (John Spray)
-* mds: restart on EBLACKLISTED (John Spray)
-* mds: track RECALL progress, report failure (#9284 John Spray)
-* mds: update segment references during journal write (John Spray, Greg Farnum)
-* mds: use meaningful names for clients (John Spray)
-* mds: warn clients which aren't revoking caps (Zheng, Yan, John Spray)
-* mon: add 'osd reweight-by-pg' command (Sage Weil, Guang Yang)
-* mon: add audit log for all admin commands (Joao Eduardo Luis)
-* mon: add cluster fingerprint (Sage Weil)
-* mon: avoid creating unnecessary rule on pool create (#9304 Loic Dachary)
-* mon: do not spam log (Aanchal Agrawal, Sage Weil)
-* mon: fix 'osd perf' reported latency (#9269 Samuel Just)
-* mon: fix double-free of old MOSDBoot (Sage Weil)
-* mon: fix op write latency perfcounter (#9217 Xinxin Shu)
-* mon: fix store check on startup (Joao Eduardo Luis)
-* mon: make paxos transaction commits asynchronous (Sage Weil)
-* mon: preload erasure plugins (#9153 Loic Dachary)
-* mon: prevent cache pools from being used directly by CephFS (#9435 John Spray)
-* mon: use user-provided ruleset for replicated pool (Xiaoxi Chen)
-* mon: verify available disk space on startup (#9502 Joao Eduardo Luis)
-* mon: verify erasure plugin version on load (Loic Dachary)
-* msgr: fix logged address (Yongyue Sun)
-* osd: account for hit_set_archive bytes (Sage Weil)
-* osd: add ISA erasure plugin table cache (Andreas-Joachim Peters)
-* osd: add ability to prehash filestore directories (Guang Yang)
-* osd: add feature bit for erasure plugins (Loic Dachary)
-* osd: add local recovery code (LRC) erasure plugin (Loic Dachary)
-* osd: cap hit_set size (#9339 Samuel Just)
-* osd: clear FDCache on unlink (#8914 Loic Dachary)
-* osd: do not evict blocked objects (#9285 Zhiqiang Wang)
-* osd: fix ISA erasure alignment (Loic Dachary, Andreas-Joachim Peters)
-* osd: fix clone vs cache_evict bug (#8629 Sage Weil)
-* osd: fix crash from duplicate backfill reservation (#8863 Sage Weil)
-* osd: fix dead peer connection checks (#9295 Greg Farnum, Sage Weil)
-* osd: fix keyvaluestore scrub (#8589 Haomai Wang)
-* osd: fix keyvaluestore upgrade (Haomai Wang)
-* osd: fix min_read_recency_for_promote default on upgrade (Zhiqiang Wang)
-* osd: fix mount/remount sync race (#9144 Sage Weil)
-* osd: fix purged_snap initialization on backfill (Sage Weil, Samuel Just, Dan van der Ster, Florian Haas)
-* osd: fix race condition on object deletion (#9480 Somnath Roy)
-* osd: fix snap object writeback from cache tier (#9054 Samuel Just)
-* osd: improve journal shutdown (Ma Jianpeng, Mark Kirkwood)
-* osd: improve locking in OpTracker (Pavan Rallabhandi, Somnath Roy)
-* osd: improve tiering agent arithmetic (Zhiqiang Wang, Sage Weil, Samuel Just)
-* osd: lttng tracepoints for filestore (Noah Watkins)
-* osd: make blacklist encoding deterministic (#9211 Sage Weil)
-* osd: many many important fixes (#8231 #8315 #9113 #9179 #9293 #9294 #9326 #9453 #9481 #9482 #9497 #9574 Samuel Just)
-* osd: misc erasure code plugin fixes (Loic Dachary)
-* osd: preload erasure plugins (#9153 Loic Dachary)
-* osd: shard OpTracker to improve performance (Somnath Roy)
-* osd: use local time for tiering decisions (Zhiqiang Wang)
-* osd: verify erasure plugin version on load (Loic Dachary)
-* rados: fix bench write arithmetic (Jiangheng)
-* rbd: parallelize rbd import, export (Jason Dillaman)
-* rbd: rbd-replay utility to replay captured rbd workload traces (Adam Crume)
-* rbd: use write-back (not write-through) when caching is enabled (Jason Dillaman)
-* rgw: add S3 bucket get location operation (Abhishek Lekshmanan)
-* rgw: add civetweb as default frontent on port 7490 (#9013 Yehuda Sadeh)
-* rgw: allow : in S3 access key (Roman Haritonov)
-* rgw: fix admin create user op (#8583 Ray Lv)
-* rgw: fix log filename suffix (#9353 Alexandre Marangone)
-* rgw: fix usage (Abhishek Lekshmanan)
-* rgw: many fixes for civetweb (Yehuda Sadeh)
-* rgw: subuser creation fixes (#8587 Yehuda Sadeh)
-* rgw: use systemd-run from sysvinit script (JuanJose Galvez)
-* unit test improvements (Loic Dachary)
-* vstart.sh: fix/improve rgw support (Luis Pabon, Abhishek Lekshmanan)
-
-v0.85
-=====
-
-This is the second-to-last development release before Giant that
-contains new functionality. The big items to land during this cycle
-are the messenger refactoring from Matt Benjmain that lays some
-groundwork for RDMA support, a performance improvement series from
-SanDisk that improves performance on SSDs, lots of improvements to our
-new standalone civetweb-based RGW frontend, and a new 'osd blocked-by'
-mon command that allows admins to easily identify which OSDs are
-blocking peering progress. The other big change is that the OSDs and
-Monitors now distinguish between "misplaced" and "degraded" objects:
-the latter means there are fewer copies than we'd like, while the
-former simply means the are not stored in the locations where we want
-them to be.
-
-Also of note is a change to librbd that enables client-side caching by
-default. This is coupled with another option that makes the cache
-write-through until a "flush" operations is observed: this implies
-that the librbd user (usually a VM guest OS) supports barriers and
-flush and that it is safe for the cache to switch into writeback mode
-without compromising data safety or integrity. It has long been
-recommended practice that these options be enabled (e.g., in OpenStack
-environments) but until now it has not been the default.
-
-We have frozen the tree for the looming Giant release, and the next
-development release will be a release candidate with a final batch of
-new functionality.
-
-Upgrading
----------
-
-* The client-side caching for librbd is now enabled by default (rbd
- cache = true). A safety option (rbd cache writethrough until flush
- = true) is also enabled so that writeback caching is not used until
- the library observes a 'flush' command, indicating that the librbd
- users is passing that operation through from the guest VM. This
- avoids potential data loss when used with older versions of qemu
- that do not support flush.
-
- leveldb_write_buffer_size = 32*1024*1024 = 33554432 // 32MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-* The 'rados getxattr ...' command used to add a gratuitous newline to the attr
- value; it now does not.
-
-Notable Changes
----------------
-
-* ceph-disk: do not inadvertantly create directories (Owne Synge)
-* ceph-disk: fix dmcrypt support (Sage Weil)
-* ceph-disk: linter cleanup, logging improvements (Alfredo Deza)
-* ceph-disk: show information about dmcrypt in 'ceph-disk list' output (Sage Weil)
-* ceph-disk: use partition type UUIDs and blkid (Sage Weil)
-* ceph: fix for non-default cluster names (#8944, Dan Mick)
-* doc: document new upstream wireshark dissector (Kevin Cox)
-* doc: many install doc updates (John Wilkins)
-* librados: fix lock leaks in error paths (#9022, Paval Rallabhandi)
-* librados: fix pool existence check (#8835, Pavan Rallabhandi)
-* librbd: enable caching by default (Sage Weil)
-* librbd: fix crash using clone of flattened image (#8845, Josh Durgin)
-* librbd: store and retrieve snapshot metadata based on id (Josh Durgin)
-* mailmap: many updates (Loic Dachary)
-* mds: add min/max UID for snapshot creation/deletion (#9029, Wido den Hollander)
-* misc build errors/warnings for Fedora 20 (Boris Ranto)
-* mon: add 'osd blocked-by' command to easily see which OSDs are blocking peering progress (Sage Weil)
-* mon: add perfcounters for paxos operations (Sage Weil)
-* mon: create default EC profile if needed (Loic Dachary)
-* mon: fix crash on loopback messages and paxos timeouts (#9062, Sage Weil)
-* mon: fix divide by zero when pg_num is adjusted before OSDs are added (#9101, Sage Weil)
-* mon: fix occasional memory leak after session reset (#9176, Sage Weil)
-* mon: fix ruleset/ruleid bugs (#9044, Loic Dachary)
-* mon: make usage dumps in terms of bytes, not kB (Sage Weil)
-* mon: prevent implicit destruction of OSDs with 'osd setmaxosd ...' (#8865, Anand Bhat)
-* mon: verify all quorum members are contiguous at end of Paxos round (#9053, Sage Weil)
-* msgr: refactor to cleanly separate SimpleMessenger implemenetation, move toward Connection-based calls (Matt Benjamin, Sage Wei)
-* objectstore: clean up KeyValueDB interface for key/value backends (Sage Weil)
-* osd: add local_mtime for use by cache agent (Zhiqiang Wang)
-* osd: add superblock for KeyValueStore backend (Haomai Wang)
-* osd: add support for Intel ISA-L erasure code library (Andreas-Joachim Peters)
-* osd: do not skip promote for write-ordered reads (#9064, Samuel Just)
-* osd: fix ambigous encoding order for blacklisted clients (#9211, Sage Weil)
-* osd: fix cache flush corner case for snapshotted objects (#9054, Samuel Just)
-* osd: fix discard of old/obsolete subop replies (#9259, Samuel Just)
-* osd: fix discard of peer messages from previous intervals (Greg Farnum)
-* osd: fix dump of open fds on EMFILE (Sage Weil)
-* osd: fix journal dump (Ma Jianpeng)
-* osd: fix mon feature bit requirements bug and resulting log spam (Sage Weil)
-* osd: fix recovery chunk size usage during EC recovery (Ma Jianpeng)
-* osd: fix recovery reservation deadlock for EC pools (Samuel Just)
-* osd: fix removal of old xattrs when overwriting chained xattrs (Ma Jianpeng)
-* osd: fix requesting queueing on PG split (Samuel Just)
-* osd: force new xattrs into leveldb if fs returns E2BIG (#7779, Sage Weil)
-* osd: implement alignment on chunk sizes (Loic Dachary)
-* osd: improve prioritization of recovery of degraded over misplaced objects (Sage Weil)
-* osd: locking, sharding, caching improvements in FileStore's FDCache (Somnath Roy, Greg Farnum)
-* osd: many important bug fixes (Samuel Just)
-* osd, mon: add rocksdb support (Xinxin Shu, Sage Weil)
-* osd, mon: distinguish between "misplaced" and "degraded" objects in cluster health and PG state reporting (Sage Weil)
-* osd: refactor some ErasureCode functionality into command parent class (Loic Dachary)
-* osd: set rollback_info_completed on create (#8625, Samuel Just)
-* rados: allow setxattr value to be read from stdin (Sage Weil)
-* rados: drop gratuitous \n from getxattr command (Sage Weil)
-* rgw: add --min-rewrite-stripe-size for object restriper (Yehuda Sadeh)
-* rgw: add powerdns hook for dynamic DNS for global clusters (Wido den Hollander)
-* rgw: copy object data is target bucket is in a different pool (#9039, Yehuda Sadeh)
-* rgw: do not try to authenticate CORS preflight requests (#8718, Robert Hubbard, Yehuda Sadeh)
-* rgw: fix civetweb URL decoding (#8621, Yehuda Sadeh)
-* rgw: fix removal of objects during object creation (Patrycja Szablowska, Yehuda Sadeh)
-* rgw: fix striping for copied objects (#9089, Yehuda Sadeh)
-* rgw: fix test for identify whether an object has a tail (#9226, Yehuda Sadeh)
-* rgw: fix when stripe size is not a multiple of chunk size (#8937, Yehuda Sadeh)
-* rgw: improve civetweb logging (Yehuda Sadeh)
-* rgw: misc civetweb frontend fixes (Yehuda Sadeh)
-* sysvinit: add support for non-default cluster names (Alfredo Deza)
-
-
-v0.84
-=====
-
-The next Ceph development release is here! This release contains
-several meaty items, including some MDS improvements for journaling,
-the ability to remove the CephFS file system (and name it), several
-mon cleanups with tiered pools, several OSD performance branches, a
-new "read forward" RADOS caching mode, a prototype Kinetic OSD
-backend, and various radosgw improvements (especially with the new
-standalone civetweb frontend). And there are a zillion OSD bug
-fixes. Things are looking pretty good for the Giant release that is
-coming up in the next month.
-
-Upgrading
----------
-
-* The ``*_kb perf`` counters on the monitor have been removed. These are
- replaced with a new set of ``*_bytes`` counters (e.g., ``cluster_osd_kb`` is
- replaced by ``cluster_osd_bytes``).
-
-* The ``rd_kb`` and ``wr_kb`` fields in the JSON dumps for pool stats (accessed
- via the ``ceph df detail -f json-pretty`` and related commands) have been
- replaced with corresponding ``*_bytes`` fields. Similarly, the
- ``total_space``, ``total_used``, and ``total_avail`` fields are replaced with
- ``total_bytes``, ``total_used_bytes``, and ``total_avail_bytes`` fields.
-
-* The ``rados df --format=json`` output ``read_bytes`` and ``write_bytes``
- fields were incorrectly reporting ops; this is now fixed.
-
-* The ``rados df --format=json`` output previously included ``read_kb`` and
- ``write_kb`` fields; these have been removed. Please use ``read_bytes`` and
- ``write_bytes`` instead (and divide by 1024 if appropriate).
-
-Notable Changes
----------------
-
-* ceph-conf: flush log on exit (Sage Weil)
-* ceph-dencoder: refactor build a bit to limit dependencies (Sage Weil, Dan Mick)
-* ceph.spec: split out ceph-common package, other fixes (Sandon Van Ness)
-* ceph_test_librbd_fsx: fix RNG, make deterministic (Ilya Dryomov)
-* cephtool: refactor and improve CLI tests (Joao Eduardo Luis)
-* client: improved MDS session dumps (John Spray)
-* common: fix dup log messages (#9080, Sage Weil)
-* crush: include new tunables in dump (Sage Weil)
-* crush: only require rule features if the rule is used (#8963, Sage Weil)
-* crushtool: send output to stdout, not stderr (Wido den Hollander)
-* fix i386 builds (Sage Weil)
-* fix struct vs class inconsistencies (Thorsten Behrens)
-* hadoop: update hadoop tests for Hadoop 2.0 (Haumin Chen)
-* librbd, ceph-fuse: reduce cache flush overhead (Haomai Wang)
-* librbd: fix error path when opening image (#8912, Josh Durgin)
-* mds: add file system name, enabled flag (John Spray)
-* mds: boot refactor, cleanup (John Spray)
-* mds: fix journal conversion with standby-replay (John Spray)
-* mds: separate inode recovery queue (John Spray)
-* mds: session ls, evict commands (John Spray)
-* mds: submit log events in async thread (Yan, Zheng)
-* mds: use client-provided timestamp for user-visible file metadata (Yan, Zheng)
-* mds: validate journal header on load and save (John Spray)
-* misc build fixes for OS X (John Spray)
-* misc integer size cleanups (Kevin Cox)
-* mon: add get-quota commands (Joao Eduardo Luis)
-* mon: do not create file system by default (John Spray)
-* mon: fix 'ceph df' output for available space (Xiaoxi Chen)
-* mon: fix bug when no auth keys are present (#8851, Joao Eduardo Luis)
-* mon: fix compat version for MForward (Joao Eduardo Luis)
-* mon: restrict some pool properties to tiered pools (Joao Eduardo Luis)
-* msgr: misc locking fixes for fast dispatch (#8891, Sage Weil)
-* osd: add 'dump_reservations' admin socket command (Sage Weil)
-* osd: add READFORWARD caching mode (Luis Pabon)
-* osd: add header cache for KeyValueStore (Haomai Wang)
-* osd: add prototype KineticStore based on Seagate Kinetic (Josh Durgin)
-* osd: allow map cache size to be adjusted at runtime (Sage Weil)
-* osd: avoid refcounting overhead by passing a few things by ref (Somnath Roy)
-* osd: avoid sharing PG info that is not durable (Samuel Just)
-* osd: clear slow request latency info on osd up/down (Sage Weil)
-* osd: fix PG object listing/ordering bug (Guang Yang)
-* osd: fix PG stat errors with tiering (#9082, Sage Weil)
-* osd: fix bug with long object names and rename (#8701, Sage Weil)
-* osd: fix cache full -> not full requeueing (#8931, Sage Weil)
-* osd: fix gating of messages from old OSD instances (Greg Farnum)
-* osd: fix memstore bugs with collection_move_rename, lock ordering (Sage Weil)
-* osd: improve locking for KeyValueStore (Haomai Wang)
-* osd: make tiering behave if hit_sets aren't enabled (Sage Weil)
-* osd: mark pools with incomplete clones (Sage Weil)
-* osd: misc locking fixes for fast dispatch (Samuel Just, Ma Jianpeng)
-* osd: prevent old rados clients from using tiered pools (#8714, Sage Weil)
-* osd: reduce OpTracker overhead (Somnath Roy)
-* osd: set configurable hard limits on object and xattr names (Sage Weil, Haomai Wang)
-* osd: trim old EC objects quickly; verify on scrub (Samuel Just)
-* osd: work around GCC 4.8 bug in journal code (Matt Benjamin)
-* rados bench: fix arg order (Kevin Dalley)
-* rados: fix {read,write}_ops values for df output (Sage Weil)
-* rbd: add rbdmap pre- and post post- hooks, fix misc bugs (Dmitry Smirnov)
-* rbd: improve option default behavior (Josh Durgin)
-* rgw: automatically align writes to EC pool (#8442, Yehuda Sadeh)
-* rgw: fix crash on swift CORS preflight request (#8586, Yehuda Sadeh)
-* rgw: fix memory leaks (Andrey Kuznetsov)
-* rgw: fix multipart upload (#8846, Silvain Munaut, Yehuda Sadeh)
-* rgw: improve -h (Abhishek Lekshmanan)
-* rgw: improve delimited listing of bucket, misc fixes (Yehuda Sadeh)
-* rgw: misc civetweb fixes (Yehuda Sadeh)
-* rgw: powerdns backend for global namespaces (Wido den Hollander)
-* systemd: initial systemd config files (Federico Simoncelli)
-
-
-v0.83
-=====
-
-Another Ceph development release! This has been a longer cycle, so
-there has been quite a bit of bug fixing and stabilization in this
-round. There is also a bunch of packaging fixes for RPM distros
-(RHEL/CentOS, Fedora, and SUSE) and for systemd. We've also added a new
-librados-striper library from Sebastien Ponce that provides a generic
-striping API for applications to code to.
-
-Upgrading
----------
-
-* The experimental keyvaluestore-dev OSD backend had an on-disk format
- change that prevents existing OSD data from being upgraded. This
- affects developers and testers only.
-
-* mon-specific and osd-specific leveldb options have been removed.
- From this point onward users should use the `leveldb_*` generic
- options and add the options in the appropriate sections of their
- configuration files. Monitors will still maintain the following
- monitor-specific defaults:
-
- leveldb_write_buffer_size = 32*1024*1024 = 33554432 // 32MB
- leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB
- leveldb_block_size = 64*1024 = 65536 // 64KB
- leveldb_compression = false
- leveldb_log = ""
-
- OSDs will still maintain the following osd-specific defaults:
-
- leveldb_log = ""
-
-Notable Changes
----------------
-
-* ceph-disk: fix dmcrypt support (Stephen Taylor)
-* cephtool: fix help (Yilong Zhao)
-* cephtool: test cleanup (Joao Eduardo Luis)
-* doc: librados example fixes (Kevin Dalley)
-* doc: many doc updates (John Wilkins)
-* doc: update erasure docs (Loic Dachary, Venky Shankar)
-* filestore: disable use of XFS hint (buggy on old kernels) (Samuel Just)
-* filestore: fix xattr spillout (Greg Farnum, Haomai Wang)
-* keyvaluestore: header cache (Haomai Wang)
-* librados_striper: striping library for librados (Sebastien Ponce)
-* libs3: update to latest (Danny Al-Gaaf)
-* log: fix derr level (Joao Eduardo Luis)
-* logrotate: fix osd log rotation on ubuntu (Sage Weil)
-* mds: fix xattr bug triggered by ACLs (Yan, Zheng)
-* misc memory leaks, cleanups, fixes (Danny Al-Gaaf, Sahid Ferdjaoui)
-* misc suse fixes (Danny Al-Gaaf)
-* misc word size fixes (Kevin Cox)
-* mon: drop mon- and osd- specific leveldb options (Joao Eduardo Luis)
-* mon: ec pool profile fixes (Loic Dachary)
-* mon: fix health down messages (Sage Weil)
-* mon: fix quorum feature check (#8738, Greg Farnum)
-* mon: 'osd crush reweight-subtree ...' (Sage Weil)
-* mon, osd: relax client EC support requirements (Sage Weil)
-* mon: some instrumentation (Sage Weil)
-* objecter: flag operations that are redirected by caching (Sage Weil)
-* osd: clean up shard_id_t, shard_t (Loic Dachary)
-* osd: fix connection reconnect race (Greg Farnum)
-* osd: fix dumps (Joao Eduardo Luis)
-* osd: fix erasure-code lib initialization (Loic Dachary)
-* osd: fix extent normalization (Adam Crume)
-* osd: fix loopback msgr issue (Ma Jianpeng)
-* osd: fix LSB release parsing (Danny Al-Gaaf)
-* osd: improved backfill priorities (Sage Weil)
-* osd: many many core fixes (Samuel Just)
-* osd, mon: config sanity checks on start (Sage Weil, Joao Eduardo Luis)
-* osd: sharded threadpool to improve parallelism (Somnath Roy)
-* osd: simple io prioritization for scrub (Sage Weil)
-* osd: simple scrub throttling (Sage Weil)
-* osd: tests for bench command (Loic Dachary)
-* osd: use xfs hint less frequently (Ilya Dryomov)
-* pybind/rados: fix small timeouts (John Spray)
-* qa: xfstests updates (Ilya Dryomov)
-* rgw: cache bucket info (Yehuda Sadeh)
-* rgw: cache decoded user info (Yehuda Sadeh)
-* rgw: fix multipart object attr regression (#8452, Yehuda Sadeh)
-* rgw: fix radosgw-admin 'show log' command (#8553, Yehuda Sadeh)
-* rgw: fix URL decoding (#8702, Brian Rak)
-* rgw: handle empty extra pool name (Yehuda Sadeh)
-* rpm: do not restart daemons on upgrade (Alfredo Deza)
-* rpm: misc packaging fixes for rhel7 (Sandon Van Ness)
-* rpm: split ceph-common from ceph (Sandon Van Ness)
-* systemd: wrap started daemons in new systemd environment (Sage Weil, Dan Mick)
-* sysvinit: less sensitive to failures (Sage Weil)
-* upstart: increase max open files limit (Sage Weil)
-
-v0.82
-=====
-
-This is the second post-firefly development release. It includes a range
-of bug fixes and some usability improvements. There are some MDS debugging
-and diagnostic tools, an improved 'ceph df', and some OSD backend refactoring
-and cleanup.
-
-Notable Changes
----------------
-
-* ceph-brag: add tox tests (Alfredo Deza)
-* common: perfcounters now use atomics and go faster (Sage Weil)
-* doc: CRUSH updates (John Wilkins)
-* doc: osd primary affinity (John Wilkins)
-* doc: pool quotas (John Wilkins)
-* doc: pre-flight doc improvements (Kevin Dalley)
-* doc: switch to an unencumbered font (Ross Turk)
-* doc: update openstack docs (Josh Durgin)
-* fix hppa arch build (Dmitry Smirnov)
-* init-ceph: continue starting other daemons on crush or mount failure (#8343, Sage Weil)
-* keyvaluestore: fix hint crash (#8381, Haomai Wang)
-* libcephfs-java: build against older JNI headers (Greg Farnum)
-* librados: fix rados_pool_list bounds checks (Sage Weil)
-* mds: cephfs-journal-tool (John Spray)
-* mds: improve Journaler on-disk format (John Spray)
-* mds, libcephfs: use client timestamp for mtime/ctime (Sage Weil)
-* mds: misc encoding improvements (John Spray)
-* mds: misc fixes for multi-mds (Yan, Zheng)
-* mds: OPTracker integration, dump_ops_in_flight (Greg Farnum)
-* misc cleanup (Christophe Courtaut)
-* mon: fix default replication pool ruleset choice (#8373, John Spray)
-* mon: fix set cache_target_full_ratio (#8440, Geoffrey Hartz)
-* mon: include per-pool 'max avail' in df output (Sage Weil)
-* mon: prevent EC pools from being used with cephfs (Joao Eduardo Luis)
-* mon: restore original weight when auto-marked out OSDs restart (Sage Weil)
-* mon: use msg header tid for MMonGetVersionReply (Ilya Dryomov)
-* osd: fix bogus assert during OSD shutdown (Sage Weil)
-* osd: fix clone deletion case (#8334, Sam Just)
-* osd: fix filestore removal corner case (#8332, Sam Just)
-* osd: fix hang waiting for osdmap (#8338, Greg Farnum)
-* osd: fix interval check corner case during peering (#8104, Sam Just)
-* osd: fix journal-less operation (Sage Weil)
-* osd: include backend information in metadata reported to mon (Sage Weil)
-* rest-api: fix help (Ailing Zhang)
-* rgw: check entity permission for put_metadata (#8428, Yehuda Sadeh)
-
-
-v0.81
-=====
-
-This is the first development release since Firefly. It includes a
-lot of work that we delayed merging while stabilizing things. Lots of
-new functionality, as well as several fixes that are baking a bit before
-getting backported.
-
-Upgrading
----------
-
-* CephFS support for the legacy anchor table has finally been removed.
- Users with file systems created before firefly should ensure that inodes
- with multiple hard links are modified *prior* to the upgrade to ensure that
- the backtraces are written properly. For example::
-
- sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
-
-* Disallow nonsensical 'tier cache-mode' transitions. From this point
- onward, 'writeback' can only transition to 'forward' and 'forward'
- can transition to 1) 'writeback' if there are dirty objects, or 2) any if
- there are no dirty objects.
-
-Notable Changes
----------------
-
-* bash completion improvements (Wido den Hollander)
-* brag: fixes, improvements (Loic Dachary)
-* ceph-disk: handle corrupt volumes (Stuart Longlang)
-* ceph-disk: partprobe as needed (Eric Eastman)
-* ceph-fuse, libcephfs: asok hooks for handling session resets, timeouts (Yan, Zheng)
-* ceph-fuse, libcephfs: improve traceless reply handling (Sage Weil)
-* clang build fixes (John Spray, Danny Al-Gaaf)
-* config: support G, M, K, etc. suffixes (Joao Eduardo Luis)
-* coverity cleanups (Danny Al-Gaaf)
-* doc: cache tiering (John Wilkins)
-* doc: keystone integration docs (John Wilkins)
-* doc: updated simple configuration guides (John Wilkins)
-* libcephfs-java: fix gcj-jdk build (Dmitry Smirnov)
-* librbd: check error code on cache invalidate (Josh Durgin)
-* librbd: new libkrbd library for kernel map/unmap/showmapped (Ilya Dryomov)
-* Makefile: fix out of source builds (Stefan Eilemann)
-* mds: multi-mds fixes (Yan, Zheng)
-* mds: remove legacy anchor table (Yan, Zheng)
-* mds: remove legacy discover ino (Yan, Zheng)
-* monclient: fix hang (Sage Weil)
-* mon: prevent nonsensical cache-mode transitions (Joao Eduardo Luis)
-* msgr: avoid big lock when sending (most) messages (Greg Farnum)
-* osd: bound osdmap epoch skew between PGs (Sage Weil)
-* osd: cache tier flushing fixes for snapped objects (Samuel Just)
-* osd: fix agent early finish looping (David Zafman)
-* osd: fix flush vs OpContext (Samuel Just)
-* osd: fix MarkMeDown and other shutdown races (Sage Weil)
-* osd: fix scrub vs cache bugs (Samuel Just)
-* osd: fix trim of hitsets (Sage Weil)
-* osd, msgr: fast-dispatch of OSD ops (Greg Farnum, Samuel Just)
-* osd, objecter: resend ops on last_force_op_resend barrier; fix cache overlay op ordering (Sage Weil)
-* osd: remove obsolete classic scrub code (David Zafman)
-* osd: scrub PGs with invalid stats (Sage Weil)
-* osd: simple snap trimmer throttle (Sage Weil)
-* osd: use FIEMAP to inform copy_range (Haomai Wang)
-* rbd-fuse: allow exposing single image (Stephen Taylor)
-* rbd-fuse: fix unlink (Josh Durgin)
-* removed mkcephfs (deprecated since dumpling)
-* rgw: bucket link uses instance id (Yehuda Sadeh)
-* rgw: fix memory leak following chunk read error (Yehuda Sadeh)
-* rgw: fix URL escaping (Yehuda Sadeh)
-* rgw: fix user manifest (Yehuda Sadeh)
-* rgw: object and bucket rewrite functions to allow restriping old objects (Yehuda Sadeh)
-* rgw: prevent multiobject PUT race (Yehuda Sadeh)
-* rgw: send user manifest header (Yehuda Sadeh)
-* test_librbd_fsx: test krbd as well as librbd (Ilya Dryomov)
-
-v0.80.11 Firefly
-================
-
-This is a bugfix release for Firefly. This Firefly 0.80.x is nearing
-its planned end of life in January 2016 it may also be the last.
-
-We recommend that all Firefly users upgrade.
-
-For more detailed information, see :download:`the complete changelog
-<changelog/v0.80.11.txt>`.
-
-Notable Changes
----------------
-
-* build/ops: /etc/init.d/radosgw restart does not work correctly (`issue#11140 <http://tracker.ceph.com/issues/11140>`_, `pr#5831 <http://github.com/ceph/ceph/pull/5831>`_, Dmitry Yatsushkevich)
-* build/ops: Fix -Wno-format and -Werror=format-security options clash (`issue#13417 <http://tracker.ceph.com/issues/13417>`_, `pr#6207 <http://github.com/ceph/ceph/pull/6207>`_, Boris Ranto)
-* build/ops: ceph-common needs python-argparse on older distros, but doesn't require it (`issue#12034 <http://tracker.ceph.com/issues/12034>`_, `pr#5217 <http://github.com/ceph/ceph/pull/5217>`_, Nathan Cutler)
-* build/ops: ceph.spec.in running fdupes unnecessarily (`issue#12301 <http://tracker.ceph.com/issues/12301>`_, `pr#5224 <http://github.com/ceph/ceph/pull/5224>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: 50-rbd.rules conditional is wrong (`issue#12166 <http://tracker.ceph.com/issues/12166>`_, `pr#5225 <http://github.com/ceph/ceph/pull/5225>`_, Nathan Cutler)
-* build/ops: ceph.spec.in: useless %py_requires breaks SLE11-SP3 build (`issue#12351 <http://tracker.ceph.com/issues/12351>`_, `pr#5394 <http://github.com/ceph/ceph/pull/5394>`_, Nathan Cutler)
-* build/ops: fedora21 has junit, not junit4 (`issue#10728 <http://tracker.ceph.com/issues/10728>`_, `pr#6203 <http://github.com/ceph/ceph/pull/6203>`_, Ken Dreyer, Loic Dachary)
-* build/ops: upstart: configuration is too generous on restarts (`issue#11798 <http://tracker.ceph.com/issues/11798>`_, `pr#5992 <http://github.com/ceph/ceph/pull/5992>`_, Sage Weil)
-* common: Client admin socket leaks file descriptors (`issue#11535 <http://tracker.ceph.com/issues/11535>`_, `pr#4633 <http://github.com/ceph/ceph/pull/4633>`_, Jon Bernard)
-* common: FileStore calls syncfs(2) even it is not supported (`issue#12512 <http://tracker.ceph.com/issues/12512>`_, `pr#5529 <http://github.com/ceph/ceph/pull/5529>`_, Danny Al-Gaaf, Kefu Chai, Jianpeng Ma)
-* common: HeartBeat: include types (`issue#13088 <http://tracker.ceph.com/issues/13088>`_, `pr#6038 <http://github.com/ceph/ceph/pull/6038>`_, Sage Weil)
-* common: Malformed JSON command output when non-ASCII strings are present (`issue#7387 <http://tracker.ceph.com/issues/7387>`_, `pr#4635 <http://github.com/ceph/ceph/pull/4635>`_, Kefu Chai, Tim Serong)
-* common: Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy (`issue#11762 <http://tracker.ceph.com/issues/11762>`_, `pr#5403 <http://github.com/ceph/ceph/pull/5403>`_, Ketor Meng)
-* common: Thread:pthread_attr_destroy(thread_attr) when done with it (`issue#12570 <http://tracker.ceph.com/issues/12570>`_, `pr#6325 <http://github.com/ceph/ceph/pull/6325>`_, Piotr Dałek, Zheng Qiankun)
-* common: ThreadPool add/remove work queue methods not thread safe (`issue#12662 <http://tracker.ceph.com/issues/12662>`_, `pr#5991 <http://github.com/ceph/ceph/pull/5991>`_, Jason Dillaman)
-* common: buffer: critical bufferlist::zero bug (`issue#12252 <http://tracker.ceph.com/issues/12252>`_, `pr#5388 <http://github.com/ceph/ceph/pull/5388>`_, Haomai Wang)
-* common: log: take mutex while opening fd (`issue#12465 <http://tracker.ceph.com/issues/12465>`_, `pr#5406 <http://github.com/ceph/ceph/pull/5406>`_, Samuel Just)
-* common: recursive lock of md_config_t (0) (`issue#12614 <http://tracker.ceph.com/issues/12614>`_, `pr#5814 <http://github.com/ceph/ceph/pull/5814>`_, Josh Durgin)
-* crush: take crashes due to invalid arg (`issue#11602 <http://tracker.ceph.com/issues/11602>`_, `pr#4769 <http://github.com/ceph/ceph/pull/4769>`_, Sage Weil)
-* doc: backport v0.80.10 release notes to firefly (`issue#11090 <http://tracker.ceph.com/issues/11090>`_, `pr#5307 <http://github.com/ceph/ceph/pull/5307>`_, Loic Dachary, Sage Weil)
-* doc: update docs to point to download.ceph.com (`issue#13162 <http://tracker.ceph.com/issues/13162>`_, `pr#5993 <http://github.com/ceph/ceph/pull/5993>`_, Alfredo Deza)
-* fs: MDSMonitor: handle MDSBeacon messages properly (`issue#11590 <http://tracker.ceph.com/issues/11590>`_, `pr#5199 <http://github.com/ceph/ceph/pull/5199>`_, Kefu Chai)
-* fs: client nonce collision due to unshared pid namespaces (`issue#13032 <http://tracker.ceph.com/issues/13032>`_, `pr#6087 <http://github.com/ceph/ceph/pull/6087>`_, Josh Durgin, Sage Weil)
-* librbd: Objectcacher setting max object counts too low (`issue#7385 <http://tracker.ceph.com/issues/7385>`_, `pr#4639 <http://github.com/ceph/ceph/pull/4639>`_, Jason Dillaman)
-* librbd: aio calls may block (`issue#11056 <http://tracker.ceph.com/issues/11056>`_, `pr#4854 <http://github.com/ceph/ceph/pull/4854>`_, Haomai Wang, Sage Weil, Jason Dillaman)
-* librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1) (`issue#12176 <http://tracker.ceph.com/issues/12176>`_, `pr#5171 <http://github.com/ceph/ceph/pull/5171>`_, Jason Dillaman)
-* mon: Clock skew causes missing summary and confuses Calamari (`issue#11877 <http://tracker.ceph.com/issues/11877>`_, `pr#4867 <http://github.com/ceph/ceph/pull/4867>`_, Thorsten Behrens)
-* mon: EC pools are not allowed as cache pools, disallow in the mon (`issue#11650 <http://tracker.ceph.com/issues/11650>`_, `pr#5389 <http://github.com/ceph/ceph/pull/5389>`_, Samuel Just)
-* mon: Make it more difficult to delete pools in firefly (`issue#11800 <http://tracker.ceph.com/issues/11800>`_, `pr#4788 <http://github.com/ceph/ceph/pull/4788>`_, Sage Weil)
-* mon: MonitorDBStore: get_next_key() only if prefix matches (`issue#11786 <http://tracker.ceph.com/issues/11786>`_, `pr#5360 <http://github.com/ceph/ceph/pull/5360>`_, Joao Eduardo Luis)
-* mon: PaxosService: call post_refresh() instead of post_paxos_update() (`issue#11470 <http://tracker.ceph.com/issues/11470>`_, `pr#5358 <http://github.com/ceph/ceph/pull/5358>`_, Joao Eduardo Luis)
-* mon: add a cache layer over MonitorDBStore (`issue#12638 <http://tracker.ceph.com/issues/12638>`_, `pr#5698 <http://github.com/ceph/ceph/pull/5698>`_, Kefu Chai)
-* mon: adding exsting pool as tier with --force-nonempty clobbers removed_snaps (`issue#11493 <http://tracker.ceph.com/issues/11493>`_, `pr#5236 <http://github.com/ceph/ceph/pull/5236>`_, Sage Weil, Samuel Just)
-* mon: ceph fails to compile with boost 1.58 (`issue#11576 <http://tracker.ceph.com/issues/11576>`_, `pr#5129 <http://github.com/ceph/ceph/pull/5129>`_, Kefu Chai)
-* mon: does not check for IO errors on every transaction (`issue#13089 <http://tracker.ceph.com/issues/13089>`_, `pr#6091 <http://github.com/ceph/ceph/pull/6091>`_, Sage Weil)
-* mon: get pools health'info have error (`issue#12402 <http://tracker.ceph.com/issues/12402>`_, `pr#5410 <http://github.com/ceph/ceph/pull/5410>`_, renhwztetecs)
-* mon: increase globalid default for firefly (`issue#13255 <http://tracker.ceph.com/issues/13255>`_, `pr#6010 <http://github.com/ceph/ceph/pull/6010>`_, Sage Weil)
-* mon: pgmonitor: wrong at/near target max“ reporting (`issue#12401 <http://tracker.ceph.com/issues/12401>`_, `pr#5409 <http://github.com/ceph/ceph/pull/5409>`_, huangjun)
-* mon: register_new_pgs() should check ruleno instead of its index (`issue#12210 <http://tracker.ceph.com/issues/12210>`_, `pr#5404 <http://github.com/ceph/ceph/pull/5404>`_, Xinze Chi)
-* mon: scrub error (osdmap encoding mismatch?) upgrading from 0.80 to ~0.80.2 (`issue#8815 <http://tracker.ceph.com/issues/8815>`_, `issue#8674 <http://tracker.ceph.com/issues/8674>`_, `issue#9064 <http://tracker.ceph.com/issues/9064>`_, `pr#5200 <http://github.com/ceph/ceph/pull/5200>`_, Sage Weil, Zhiqiang Wang, Samuel Just)
-* mon: the output is wrong when runing ceph osd reweight (`issue#12251 <http://tracker.ceph.com/issues/12251>`_, `pr#5408 <http://github.com/ceph/ceph/pull/5408>`_, Joao Eduardo Luis)
-* objecter: can get stuck in redirect loop if osdmap epoch == last_force_op_resend (`issue#11026 <http://tracker.ceph.com/issues/11026>`_, `pr#4597 <http://github.com/ceph/ceph/pull/4597>`_, Jianpeng Ma, Sage Weil)
-* objecter: pg listing can deadlock when throttling is in use (`issue#9008 <http://tracker.ceph.com/issues/9008>`_, `pr#5043 <http://github.com/ceph/ceph/pull/5043>`_, Guang Yang)
-* objecter: resend linger ops on split (`issue#9806 <http://tracker.ceph.com/issues/9806>`_, `pr#5062 <http://github.com/ceph/ceph/pull/5062>`_, Josh Durgin, Samuel Just)
-* osd: Cleanup boost optionals for boost 1.56 (`issue#9983 <http://tracker.ceph.com/issues/9983>`_, `pr#5039 <http://github.com/ceph/ceph/pull/5039>`_, William A. Kennington III)
-* osd: LibRadosTwoPools[EC]PP.PromoteSnap failure (`issue#10052 <http://tracker.ceph.com/issues/10052>`_, `pr#5050 <http://github.com/ceph/ceph/pull/5050>`_, Sage Weil)
-* osd: Mutex Assert from PipeConnection::try_get_pipe (`issue#12437 <http://tracker.ceph.com/issues/12437>`_, `pr#5815 <http://github.com/ceph/ceph/pull/5815>`_, David Zafman)
-* osd: PG stuck with remapped (`issue#9614 <http://tracker.ceph.com/issues/9614>`_, `pr#5044 <http://github.com/ceph/ceph/pull/5044>`_, Guang Yang)
-* osd: PG::handle_advance_map: on_pool_change after handling the map change (`issue#12809 <http://tracker.ceph.com/issues/12809>`_, `pr#5988 <http://github.com/ceph/ceph/pull/5988>`_, Samuel Just)
-* osd: PGLog: split divergent priors as well (`issue#11069 <http://tracker.ceph.com/issues/11069>`_, `pr#4631 <http://github.com/ceph/ceph/pull/4631>`_, Samuel Just)
-* osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (`issue#11358 <http://tracker.ceph.com/issues/11358>`_, `pr#5287 <http://github.com/ceph/ceph/pull/5287>`_, Samuel Just)
-* osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (`issue#12223 <http://tracker.ceph.com/issues/12223>`_, `pr#5822 <http://github.com/ceph/ceph/pull/5822>`_, Samuel Just)
-* osd: cache full mode still skips young objects (`issue#10006 <http://tracker.ceph.com/issues/10006>`_, `pr#5051 <http://github.com/ceph/ceph/pull/5051>`_, Xinze Chi, Zhiqiang Wang)
-* osd: crash creating/deleting pools (`issue#12429 <http://tracker.ceph.com/issues/12429>`_, `pr#5526 <http://github.com/ceph/ceph/pull/5526>`_, John Spray)
-* osd: explicitly specify OSD features in MOSDBoot (`issue#10911 <http://tracker.ceph.com/issues/10911>`_, `pr#4960 <http://github.com/ceph/ceph/pull/4960>`_, Sage Weil)
-* osd: is_new_interval() fixes (`issue#11771 <http://tracker.ceph.com/issues/11771>`_, `issue#10399 <http://tracker.ceph.com/issues/10399>`_, `pr#5726 <http://github.com/ceph/ceph/pull/5726>`_, Samuel Just, Jason Dillaman)
-* osd: make the all osd/filestore thread pool suicide timeouts separately configurable (`issue#11439 <http://tracker.ceph.com/issues/11439>`_, `pr#5823 <http://github.com/ceph/ceph/pull/5823>`_, Samuel Just)
-* osd: object creation by write cannot use an offset on an erasure coded pool (`issue#11507 <http://tracker.ceph.com/issues/11507>`_, `pr#4632 <http://github.com/ceph/ceph/pull/4632>`_, Jianpeng Ma, Loic Dachary)
-* osd: os/FileJournal: Fix journal write fail, align for direct io (`issue#12943 <http://tracker.ceph.com/issues/12943>`_, `pr#5619 <http://github.com/ceph/ceph/pull/5619>`_, Xie Rui)
-* osd: osd/PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#12652 <http://tracker.ceph.com/issues/12652>`_, `pr#5820 <http://github.com/ceph/ceph/pull/5820>`_, Sage Weil)
-* osd: read on chunk-aligned xattr not handled (`issue#12309 <http://tracker.ceph.com/issues/12309>`_, `pr#5235 <http://github.com/ceph/ceph/pull/5235>`_, Sage Weil)
-* rgw: Change variable length array of std::strings (not legal in C++) to std::vector<std::string> (`issue#12467 <http://tracker.ceph.com/issues/12467>`_, `pr#4583 <http://github.com/ceph/ceph/pull/4583>`_, Daniel J. Hofmann)
-* rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (`issue#11851 <http://tracker.ceph.com/issues/11851>`_, `pr#5234 <http://github.com/ceph/ceph/pull/5234>`_, Yehuda Sadeh)
-* rgw: Keystone PKI token expiration is not enforced (`issue#11367 <http://tracker.ceph.com/issues/11367>`_, `pr#4765 <http://github.com/ceph/ceph/pull/4765>`_, Anton Aksola)
-* rgw: Object copy bug (`issue#11639 <http://tracker.ceph.com/issues/11639>`_, `pr#4762 <http://github.com/ceph/ceph/pull/4762>`_, Javier M. Mellid)
-* rgw: RGW returns requested bucket name raw in "Bucket" response header (`issue#11860 <http://tracker.ceph.com/issues/11860>`_, `issue#12537 <http://tracker.ceph.com/issues/12537>`_, `pr#5730 <http://github.com/ceph/ceph/pull/5730>`_, Yehuda Sadeh, Wido den Hollander)
-* rgw: Swift API: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used (`issue#11036 <http://tracker.ceph.com/issues/11036>`_, `pr#5170 <http://github.com/ceph/ceph/pull/5170>`_, Radoslaw Zarzynski)
-* rgw: content length parsing calls strtol() instead of strtoll() (`issue#10701 <http://tracker.ceph.com/issues/10701>`_, `pr#5997 <http://github.com/ceph/ceph/pull/5997>`_, Yehuda Sadeh)
-* rgw: delete bucket does not remove .bucket.meta file (`issue#11149 <http://tracker.ceph.com/issues/11149>`_, `pr#4641 <http://github.com/ceph/ceph/pull/4641>`_, Orit Wasserman)
-* rgw: doesn't return 'x-timestamp' in header which is used by 'View Details' of OpenStack (`issue#8911 <http://tracker.ceph.com/issues/8911>`_, `pr#4584 <http://github.com/ceph/ceph/pull/4584>`_, Yehuda Sadeh)
-* rgw: init some manifest fields when handling explicit objs (`issue#11455 <http://tracker.ceph.com/issues/11455>`_, `pr#5729 <http://github.com/ceph/ceph/pull/5729>`_, Yehuda Sadeh)
-* rgw: logfile does not get chowned properly (`issue#12073 <http://tracker.ceph.com/issues/12073>`_, `pr#5233 <http://github.com/ceph/ceph/pull/5233>`_, Thorsten Behrens)
-* rgw: logrotate.conf calls service with wrong init script name (`issue#12043 <http://tracker.ceph.com/issues/12043>`_, `pr#5390 <http://github.com/ceph/ceph/pull/5390>`_, wuxingyi)
-* rgw: quota not respected in POST object (`issue#11323 <http://tracker.ceph.com/issues/11323>`_, `pr#4642 <http://github.com/ceph/ceph/pull/4642>`_, Sergey Arkhipov)
-* rgw: swift smoke test fails on TestAccountUTF8 (`issue#11091 <http://tracker.ceph.com/issues/11091>`_, `issue#11438 <http://tracker.ceph.com/issues/11438>`_, `issue#12939 <http://tracker.ceph.com/issues/12939>`_, `issue#12157 <http://tracker.ceph.com/issues/12157>`_, `issue#12158 <http://tracker.ceph.com/issues/12158>`_, `issue#12363 <http://tracker.ceph.com/issues/12363>`_, `pr#5532 <http://github.com/ceph/ceph/pull/5532>`_, Radoslaw Zarzynski, Orit Wasserman, Robin H. Johnson)
-* rgw: use correct objv_tracker for bucket instance (`issue#11416 <http://tracker.ceph.com/issues/11416>`_, `pr#4535 <http://github.com/ceph/ceph/pull/4535>`_, Yehuda Sadeh)
-* tests: ceph-fuse crash in test_client_recovery (`issue#12673 <http://tracker.ceph.com/issues/12673>`_, `pr#5813 <http://github.com/ceph/ceph/pull/5813>`_, Loic Dachary)
-* tests: kernel_untar_build fails on EL7 (`issue#11758 <http://tracker.ceph.com/issues/11758>`_, `pr#6000 <http://github.com/ceph/ceph/pull/6000>`_, Greg Farnum)
-* tests: qemu workunit refers to apt-mirror.front.sepia.ceph.com (`issue#13420 <http://tracker.ceph.com/issues/13420>`_, `pr#6328 <http://github.com/ceph/ceph/pull/6328>`_, Yuan Zhou, Sage Weil)
-* tools: src/ceph-disk : disk zap sgdisk invocation (`issue#11143 <http://tracker.ceph.com/issues/11143>`_, `pr#4636 <http://github.com/ceph/ceph/pull/4636>`_, Thorsten Behrens, Owen Synge)
-* tools: ceph-disk: sometimes the journal symlink is not created (`issue#10146 <http://tracker.ceph.com/issues/10146>`_, `pr#5541 <http://github.com/ceph/ceph/pull/5541>`_, Dan van der Ster)
-* tools: ceph-disk: support NVMe device partitions (`issue#11612 <http://tracker.ceph.com/issues/11612>`_, `pr#4771 <http://github.com/ceph/ceph/pull/4771>`_, Ilja Slepnev)
-* tools: ceph-post-file fails on rhel7 (`issue#11836 <http://tracker.ceph.com/issues/11836>`_, `pr#5037 <http://github.com/ceph/ceph/pull/5037>`_, Joseph McDonald, Sage Weil)
-* tools: ceph_argparse_flag has no regular 3rd parameter (`issue#11543 <http://tracker.ceph.com/issues/11543>`_, `pr#4582 <http://github.com/ceph/ceph/pull/4582>`_, Thorsten Behrens)
-* tools: use a new disk as journal disk,ceph-disk prepare fail (`issue#10983 <http://tracker.ceph.com/issues/10983>`_, `pr#4630 <http://github.com/ceph/ceph/pull/4630>`_, Loic Dachary)
-
-
-v0.80.10 Firefly
-================
-
-This is a bugfix release for Firefly.
-
-We recommend that all Firefly users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.10.txt>`.
-
-Notable Changes
----------------
-
-* build/ops: ceph.spec.in: package mkcephfs on EL6 (`issue#11955 <http://tracker.ceph.com/issues/11955>`_, `pr#4924 <http://github.com/ceph/ceph/pull/4924>`_, Ken Dreyer)
-* build/ops: debian: ceph-test and rest-bench debug packages should require their respective binary packages (`issue#11673 <http://tracker.ceph.com/issues/11673>`_, `pr#4766 <http://github.com/ceph/ceph/pull/4766>`_, Ken Dreyer)
-* build/ops: run RGW as root (`issue#11453 <http://tracker.ceph.com/issues/11453>`_, `pr#4638 <http://github.com/ceph/ceph/pull/4638>`_, Ken Dreyer)
-* common: messages/MWatchNotify: include an error code in the message (`issue#9193 <http://tracker.ceph.com/issues/9193>`_, `pr#3944 <http://github.com/ceph/ceph/pull/3944>`_, Sage Weil)
-* common: Rados.shutdown() dies with Illegal instruction (core dumped) (`issue#10153 <http://tracker.ceph.com/issues/10153>`_, `pr#3963 <http://github.com/ceph/ceph/pull/3963>`_, Federico Simoncelli)
-* common: SimpleMessenger: allow RESETSESSION whenever we forget an endpoint (`issue#10080 <http://tracker.ceph.com/issues/10080>`_, `pr#3915 <http://github.com/ceph/ceph/pull/3915>`_, Greg Farnum)
-* common: WorkQueue: make wait timeout on empty queue configurable (`issue#10817 <http://tracker.ceph.com/issues/10817>`_, `pr#3941 <http://github.com/ceph/ceph/pull/3941>`_, Samuel Just)
-* crush: set_choose_tries = 100 for erasure code rulesets (`issue#10353 <http://tracker.ceph.com/issues/10353>`_, `pr#3824 <http://github.com/ceph/ceph/pull/3824>`_, Loic Dachary)
-* doc: backport ceph-disk man page to Firefly (`issue#10724 <http://tracker.ceph.com/issues/10724>`_, `pr#3936 <http://github.com/ceph/ceph/pull/3936>`_, Nilamdyuti Goswami)
-* doc: Fix ceph command manpage to match ceph -h (`issue#10676 <http://tracker.ceph.com/issues/10676>`_, `pr#3996 <http://github.com/ceph/ceph/pull/3996>`_, David Zafman)
-* fs: mount.ceph: avoid spurious error message (`issue#10351 <http://tracker.ceph.com/issues/10351>`_, `pr#3927 <http://github.com/ceph/ceph/pull/3927>`_, Yan, Zheng)
-* librados: Fix memory leak in python rados bindings (`issue#10723 <http://tracker.ceph.com/issues/10723>`_, `pr#3935 <http://github.com/ceph/ceph/pull/3935>`_, Josh Durgin)
-* librados: fix resources leakage in RadosClient::connect() (`issue#10425 <http://tracker.ceph.com/issues/10425>`_, `pr#3828 <http://github.com/ceph/ceph/pull/3828>`_, Radoslaw Zarzynski)
-* librados: Translate operation flags from C APIs (`issue#10497 <http://tracker.ceph.com/issues/10497>`_, `pr#3930 <http://github.com/ceph/ceph/pull/3930>`_, Matt Richards)
-* librbd: acquire cache_lock before refreshing parent (`issue#5488 <http://tracker.ceph.com/issues/5488>`_, `pr#4206 <http://github.com/ceph/ceph/pull/4206>`_, Jason Dillaman)
-* librbd: snap_remove should ignore -ENOENT errors (`issue#11113 <http://tracker.ceph.com/issues/11113>`_, `pr#4245 <http://github.com/ceph/ceph/pull/4245>`_, Jason Dillaman)
-* mds: fix assertion caused by system clock backwards (`issue#11053 <http://tracker.ceph.com/issues/11053>`_, `pr#3970 <http://github.com/ceph/ceph/pull/3970>`_, Yan, Zheng)
-* mon: ignore osd failures from before up_from (`issue#10762 <http://tracker.ceph.com/issues/10762>`_, `pr#3937 <http://github.com/ceph/ceph/pull/3937>`_, Sage Weil)
-* mon: MonCap: take EntityName instead when expanding profiles (`issue#10844 <http://tracker.ceph.com/issues/10844>`_, `pr#3942 <http://github.com/ceph/ceph/pull/3942>`_, Joao Eduardo Luis)
-* mon: Monitor: fix timecheck rounds period (`issue#10546 <http://tracker.ceph.com/issues/10546>`_, `pr#3932 <http://github.com/ceph/ceph/pull/3932>`_, Joao Eduardo Luis)
-* mon: OSDMonitor: do not trust small values in osd epoch cache (`issue#10787 <http://tracker.ceph.com/issues/10787>`_, `pr#3823 <http://github.com/ceph/ceph/pull/3823>`_, Sage Weil)
-* mon: OSDMonitor: fallback to json-pretty in case of invalid formatter (`issue#9538 <http://tracker.ceph.com/issues/9538>`_, `pr#4475 <http://github.com/ceph/ceph/pull/4475>`_, Loic Dachary)
-* mon: PGMonitor: several stats output error fixes (`issue#10257 <http://tracker.ceph.com/issues/10257>`_, `pr#3826 <http://github.com/ceph/ceph/pull/3826>`_, Joao Eduardo Luis)
-* objecter: fix map skipping (`issue#9986 <http://tracker.ceph.com/issues/9986>`_, `pr#3952 <http://github.com/ceph/ceph/pull/3952>`_, Ding Dinghua)
-* osd: cache tiering: fix the atime logic of the eviction (`issue#9915 <http://tracker.ceph.com/issues/9915>`_, `pr#3949 <http://github.com/ceph/ceph/pull/3949>`_, Zhiqiang Wang)
-* osd: cancel_pull: requeue waiters (`issue#11244 <http://tracker.ceph.com/issues/11244>`_, `pr#4415 <http://github.com/ceph/ceph/pull/4415>`_, Samuel Just)
-* osd: check that source OSD is valid for MOSDRepScrub (`issue#9555 <http://tracker.ceph.com/issues/9555>`_, `pr#3947 <http://github.com/ceph/ceph/pull/3947>`_, Sage Weil)
-* osd: DBObjectMap: lock header_lock on sync() (`issue#9891 <http://tracker.ceph.com/issues/9891>`_, `pr#3948 <http://github.com/ceph/ceph/pull/3948>`_, Samuel Just)
-* osd: do not ignore deleted pgs on startup (`issue#10617 <http://tracker.ceph.com/issues/10617>`_, `pr#3933 <http://github.com/ceph/ceph/pull/3933>`_, Sage Weil)
-* osd: ENOENT on clone (`issue#11199 <http://tracker.ceph.com/issues/11199>`_, `pr#4385 <http://github.com/ceph/ceph/pull/4385>`_, Samuel Just)
-* osd: erasure-code-profile set races with erasure-code-profile rm (`issue#11144 <http://tracker.ceph.com/issues/11144>`_, `pr#4383 <http://github.com/ceph/ceph/pull/4383>`_, Loic Dachary)
-* osd: FAILED assert(soid < scrubber.start || soid >= scrubber.end) (`issue#11156 <http://tracker.ceph.com/issues/11156>`_, `pr#4185 <http://github.com/ceph/ceph/pull/4185>`_, Samuel Just)
-* osd: FileJournal: fix journalq population in do_read_entry() (`issue#6003 <http://tracker.ceph.com/issues/6003>`_, `pr#3960 <http://github.com/ceph/ceph/pull/3960>`_, Samuel Just)
-* osd: fix negative degraded objects during backfilling (`issue#7737 <http://tracker.ceph.com/issues/7737>`_, `pr#4021 <http://github.com/ceph/ceph/pull/4021>`_, Guang Yang)
-* osd: get the currently atime of the object in cache pool for eviction (`issue#9985 <http://tracker.ceph.com/issues/9985>`_, `pr#3950 <http://github.com/ceph/ceph/pull/3950>`_, Sage Weil)
-* osd: load_pgs: we need to handle the case where an upgrade from earlier versions which ignored non-existent pgs resurrects a pg with a prehistoric osdmap (`issue#11429 <http://tracker.ceph.com/issues/11429>`_, `pr#4556 <http://github.com/ceph/ceph/pull/4556>`_, Samuel Just)
-* osd: ObjectStore: Don't use largest_data_off to calc data_align. (`issue#10014 <http://tracker.ceph.com/issues/10014>`_, `pr#3954 <http://github.com/ceph/ceph/pull/3954>`_, Jianpeng Ma)
-* osd: osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::o... (`issue#10259 <http://tracker.ceph.com/issues/10259>`_, `pr#3827 <http://github.com/ceph/ceph/pull/3827>`_, Samuel Just)
-* osd: PG::actingset should be used when checking the number of acting OSDs for... (`issue#11454 <http://tracker.ceph.com/issues/11454>`_, `pr#4453 <http://github.com/ceph/ceph/pull/4453>`_, Guang Yang)
-* osd: PG::all_unfound_are_queried_or_lost for non-existent osds (`issue#10976 <http://tracker.ceph.com/issues/10976>`_, `pr#4416 <http://github.com/ceph/ceph/pull/4416>`_, Mykola Golub)
-* osd: PG: always clear_primary_state (`issue#10059 <http://tracker.ceph.com/issues/10059>`_, `pr#3955 <http://github.com/ceph/ceph/pull/3955>`_, Samuel Just)
-* osd: PGLog.h: 279: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#10718 <http://tracker.ceph.com/issues/10718>`_, `pr#4382 <http://github.com/ceph/ceph/pull/4382>`_, Samuel Just)
-* osd: PGLog: include rollback_info_trimmed_to in (read|write)_log (`issue#10157 <http://tracker.ceph.com/issues/10157>`_, `pr#3964 <http://github.com/ceph/ceph/pull/3964>`_, Samuel Just)
-* osd: pg stuck stale after create with activation delay (`issue#11197 <http://tracker.ceph.com/issues/11197>`_, `pr#4384 <http://github.com/ceph/ceph/pull/4384>`_, Samuel Just)
-* osd: ReplicatedPG: fail a non-blocking flush if the object is being scrubbed (`issue#8011 <http://tracker.ceph.com/issues/8011>`_, `pr#3943 <http://github.com/ceph/ceph/pull/3943>`_, Samuel Just)
-* osd: ReplicatedPG::on_change: clean up callbacks_for_degraded_object (`issue#8753 <http://tracker.ceph.com/issues/8753>`_, `pr#3940 <http://github.com/ceph/ceph/pull/3940>`_, Samuel Just)
-* osd: ReplicatedPG::scan_range: an object can disappear between the list and t... (`issue#10150 <http://tracker.ceph.com/issues/10150>`_, `pr#3962 <http://github.com/ceph/ceph/pull/3962>`_, Samuel Just)
-* osd: requeue blocked op before flush it was blocked on (`issue#10512 <http://tracker.ceph.com/issues/10512>`_, `pr#3931 <http://github.com/ceph/ceph/pull/3931>`_, Sage Weil)
-* rgw: check for timestamp for s3 keystone auth (`issue#10062 <http://tracker.ceph.com/issues/10062>`_, `pr#3958 <http://github.com/ceph/ceph/pull/3958>`_, Abhishek Lekshmanan)
-* rgw: civetweb should use unique request id (`issue#11720 <http://tracker.ceph.com/issues/11720>`_, `pr#4780 <http://github.com/ceph/ceph/pull/4780>`_, Orit Wasserman)
-* rgw: don't allow negative / invalid content length (`issue#11890 <http://tracker.ceph.com/issues/11890>`_, `pr#4829 <http://github.com/ceph/ceph/pull/4829>`_, Yehuda Sadeh)
-* rgw: fail s3 POST auth if keystone not configured (`issue#10698 <http://tracker.ceph.com/issues/10698>`_, `pr#3966 <http://github.com/ceph/ceph/pull/3966>`_, Yehuda Sadeh)
-* rgw: flush xml header on get acl request (`issue#10106 <http://tracker.ceph.com/issues/10106>`_, `pr#3961 <http://github.com/ceph/ceph/pull/3961>`_, Yehuda Sadeh)
-* rgw: generate new tag for object when setting object attrs (`issue#11256 <http://tracker.ceph.com/issues/11256>`_, `pr#4571 <http://github.com/ceph/ceph/pull/4571>`_, Yehuda Sadeh)
-* rgw: generate the "Date" HTTP header for civetweb. (`issue#11871,11891 <http://tracker.ceph.com/issues/11871,11891>`_, `pr#4851 <http://github.com/ceph/ceph/pull/4851>`_, Radoslaw Zarzynski)
-* rgw: keystone token cache does not work correctly (`issue#11125 <http://tracker.ceph.com/issues/11125>`_, `pr#4414 <http://github.com/ceph/ceph/pull/4414>`_, Yehuda Sadeh)
-* rgw: merge manifests correctly when there's prefix override (`issue#11622 <http://tracker.ceph.com/issues/11622>`_, `pr#4697 <http://github.com/ceph/ceph/pull/4697>`_, Yehuda Sadeh)
-* rgw: send appropriate op to cancel bucket index pending operation (`issue#10770 <http://tracker.ceph.com/issues/10770>`_, `pr#3938 <http://github.com/ceph/ceph/pull/3938>`_, Yehuda Sadeh)
-* rgw: shouldn't need to disable rgw_socket_path if frontend is configured (`issue#11160 <http://tracker.ceph.com/issues/11160>`_, `pr#4275 <http://github.com/ceph/ceph/pull/4275>`_, Yehuda Sadeh)
-* rgw: Swift API. Dump container's custom metadata. (`issue#10665 <http://tracker.ceph.com/issues/10665>`_, `pr#3934 <http://github.com/ceph/ceph/pull/3934>`_, Dmytro Iurchenko)
-* rgw: Swift API. Support for X-Remove-Container-Meta-{key} header. (`issue#10475 <http://tracker.ceph.com/issues/10475>`_, `pr#3929 <http://github.com/ceph/ceph/pull/3929>`_, Dmytro Iurchenko)
-* rgw: use correct objv_tracker for bucket instance (`issue#11416 <http://tracker.ceph.com/issues/11416>`_, `pr#4379 <http://github.com/ceph/ceph/pull/4379>`_, Yehuda Sadeh)
-* tests: force checkout of submodules (`issue#11157 <http://tracker.ceph.com/issues/11157>`_, `pr#4079 <http://github.com/ceph/ceph/pull/4079>`_, Loic Dachary)
-* tools: Backport ceph-objectstore-tool changes to firefly (`issue#12327 <http://tracker.ceph.com/issues/12327>`_, `pr#3866 <http://github.com/ceph/ceph/pull/3866>`_, David Zafman)
-* tools: ceph-objectstore-tool: Output only unsupported features when incomatible (`issue#11176 <http://tracker.ceph.com/issues/11176>`_, `pr#4126 <http://github.com/ceph/ceph/pull/4126>`_, David Zafman)
-* tools: ceph-objectstore-tool: Use exit status 11 for incompatible import attemp... (`issue#11139 <http://tracker.ceph.com/issues/11139>`_, `pr#4129 <http://github.com/ceph/ceph/pull/4129>`_, David Zafman)
-* tools: Fix do_autogen.sh so that -L is allowed (`issue#11303 <http://tracker.ceph.com/issues/11303>`_, `pr#4247 <http://github.com/ceph/ceph/pull/4247>`_, Alfredo Deza)
-
-v0.80.9 Firefly
-===============
-
-This is a bugfix release for firefly. It fixes a performance
-regression in librbd, an important CRUSH misbehavior (see below), and
-several RGW bugs. We have also backported support for flock/fcntl
-locks to ceph-fuse and libcephfs.
-
-We recommend that all Firefly users upgrade.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.9.txt>`.
-
-Adjusting CRUSH maps
---------------------
-
-* This point release fixes several issues with CRUSH that trigger
- excessive data migration when adjusting OSD weights. These are most
- obvious when a very small weight change (e.g., a change from 0 to
- .01) triggers a large amount of movement, but the same set of bugs
- can also lead to excessive (though less noticeable) movement in
- other cases.
-
- However, because the bug may already have affected your cluster,
- fixing it may trigger movement *back* to the more correct location.
- For this reason, you must manually opt-in to the fixed behavior.
-
- In order to set the new tunable to correct the behavior::
-
- ceph osd crush set-tunable straw_calc_version 1
-
- Note that this change will have no immediate effect. However, from
- this point forward, any 'straw' bucket in your CRUSH map that is
- adjusted will get non-buggy internal weights, and that transition
- may trigger some rebalancing.
-
- You can estimate how much rebalancing will eventually be necessary
- on your cluster with::
-
- ceph osd getcrushmap -o /tmp/cm
- crushtool -i /tmp/cm --num-rep 3 --test --show-mappings > /tmp/a 2>&1
- crushtool -i /tmp/cm --set-straw-calc-version 1 -o /tmp/cm2
- crushtool -i /tmp/cm2 --reweight -o /tmp/cm2
- crushtool -i /tmp/cm2 --num-rep 3 --test --show-mappings > /tmp/b 2>&1
- wc -l /tmp/a # num total mappings
- diff -u /tmp/a /tmp/b | grep -c ^+ # num changed mappings
-
- Divide the number of changed lines by the total number of lines in
- /tmp/a. We've found that most clusters are under 10%.
-
- You can force all of this rebalancing to happen at once with::
-
- ceph osd crush reweight-all
-
- Otherwise, it will happen at some unknown point in the future when
- CRUSH weights are next adjusted.
-
-Notable Changes
----------------
-
-* ceph-fuse: flock, fcntl lock support (Yan, Zheng, Greg Farnum)
-* crush: fix straw bucket weight calculation, add straw_calc_version tunable (#10095 Sage Weil)
-* crush: fix tree bucket (Rongzu Zhu)
-* crush: fix underflow of tree weights (Loic Dachary, Sage Weil)
-* crushtool: add --reweight (Sage Weil)
-* librbd: complete pending operations before losing image (#10299 Jason Dillaman)
-* librbd: fix read caching performance regression (#9854 Jason Dillaman)
-* librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
-* mon: fix dump of chooseleaf_vary_r tunable (Sage Weil)
-* osd: fix PG ref leak in snaptrimmer on peering (#10421 Kefu Chai)
-* osd: handle no-op write with snapshot (#10262 Sage Weil)
-* radosgw-admin: create subuser when creating user (#10103 Yehuda Sadeh)
-* rgw: change multipart uplaod id magic (#10271 Georgio Dimitrakakis, Yehuda Sadeh)
-* rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh)
-* rgw: enable IPv6 for embedded civetweb (#10965 Yehuda Sadeh)
-* rgw: fix partial swift GET (#10553 Yehuda Sadeh)
-* rgw: fix quota disable (#9907 Dong Lei)
-* rgw: index swift keys appropriately (#10471 Hemant Burman, Yehuda Sadeh)
-* rgw: make setattrs update bucket index (#5595 Yehuda Sadeh)
-* rgw: pass civetweb configurables (#10907 Yehuda Sadeh)
-* rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh)
-* rgw: return correct len for 0-len objects (#9877 Yehuda Sadeh)
-* rgw: S3 object copy content-type fix (#9478 Yehuda Sadeh)
-* rgw: send ETag on S3 object copy (#9479 Yehuda Sadeh)
-* rgw: send HTTP status reason explicitly in fastcgi (Yehuda Sadeh)
-* rgw: set ulimit -n from sysvinit (el6) init script (#9587 Sage Weil)
-* rgw: update swift subuser permission masks when authenticating (#9918 Yehuda Sadeh)
-* rgw: URL decode query params correctly (#10271 Georgio Dimitrakakis, Yehuda Sadeh)
-* rgw: use attrs when reading object attrs (#10307 Yehuda Sadeh)
-* rgw: use \r\n for http headers (#9254 Benedikt Fraunhofer, Yehuda Sadeh)
-
-
-v0.80.8 Firefly
-===============
-
-This is a long-awaited bugfix release for firefly. It has several
-imporant (but relatively rare) OSD peering fixes, performance issues
-when snapshots are trimmed, several RGW fixes, a paxos corner case
-fix, and some packaging updates.
-
-We recommend that all users for v0.80.x firefly upgrade when it is
-convenient to do so.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.8.txt>`.
-
-Notable Changes
----------------
-
-* build: remove stack-execute bit from assembled code sections (#10114 Dan Mick)
-* ceph-disk: fix dmcrypt key permissions (#9785 Loic Dachary)
-* ceph-disk: fix keyring location (#9653 Loic Dachary)
-* ceph-disk: make partition checks more robust (#9721 #9665 Loic Dachary)
-* ceph: cleanly shut down librados context on shutdown (#8797 Dan Mick)
-* common: add $cctid config metavariable (#6228 Adam Crume)
-* crush: align rule and ruleset ids (#9675 Xiaoxi Chen)
-* crush: fix negative weight bug during create_or_move_item (#9998 Pawel Sadowski)
-* crush: fix potential buffer overflow in erasure rules (#9492 Johnu George)
-* debian: fix python-ceph -> ceph file movement (Sage Weil)
-* libcephfs,ceph-fuse: fix flush tid wraparound bug (#9869 Greg Farnum, Yan, Zheng)
-* libcephfs: close fd befure umount (#10415 Yan, Zheng)
-* librados: fix crash from C API when read timeout is enabled (#9582 Sage Weil)
-* librados: handle reply race with pool deletion (#10372 Sage Weil)
-* librbd: cap memory utilization for read requests (Jason Dillaman)
-* librbd: do not close a closed parent image on failure (#10030 Jason Dillaman)
-* librbd: fix diff tests (#10002 Josh Durgin)
-* librbd: protect list_children from invalid pools (#10123 Jason Dillaman)
-* make check improvemens (Loic Dachary)
-* mds: fix ctime updates (#9514 Greg Farnum)
-* mds: fix journal import tool (#10025 John Spray)
-* mds: fix rare NULL deref in cap flush handler (Greg Farnum)
-* mds: handle unknown lock messages (Yan, Zheng)
-* mds: store backtrace for straydir (Yan, Zheng)
-* mon: abort startup if disk is full (#9502 Joao Eduardo Luis)
-* mon: add paxos instrumentation (Sage Weil)
-* mon: fix double-free in rare OSD startup path (Sage Weil)
-* mon: fix osdmap trimming (#9987 Sage Weil)
-* mon: fix paxos corner cases (#9301 #9053 Sage Weil)
-* osd: cancel callback on blacklisted watchers (#8315 Samuel Just)
-* osd: cleanly abort set-alloc-hint operations during upgrade (#9419 David Zafman)
-* osd: clear rollback PG metadata on PG deletion (#9293 Samuel Just)
-* osd: do not abort deep scrub if hinfo is missing (#10018 Loic Dachary)
-* osd: erasure-code regression tests (Loic Dachary)
-* osd: fix distro metadata reporting for SUSE (#8654 Danny Al-Gaaf)
-* osd: fix full OSD checks during backfill (#9574 Samuel Just)
-* osd: fix ioprio parsing (#9677 Loic Dachary)
-* osd: fix journal direct-io shutdown (#9073 Mark Kirkwood, Ma Jianpeng, Somnath Roy)
-* osd: fix journal dump (Ma Jianpeng)
-* osd: fix occasional stall during peering or activation (Sage Weil)
-* osd: fix past_interval display bug (#9752 Loic Dachary)
-* osd: fix rare crash triggered by admin socket dump_ops_in_filght (#9916 Dong Lei)
-* osd: fix snap trimming performance issues (#9487 #9113 Samuel Just, Sage Weil, Dan van der Ster, Florian Haas)
-* osd: fix snapdir handling on cache eviction (#8629 Sage Weil)
-* osd: handle map gaps in map advance code (Sage Weil)
-* osd: handle undefined CRUSH results in interval check (#9718 Samuel Just)
-* osd: include shard in JSON dump of ghobject (#10063 Loic Dachary)
-* osd: make backfill reservation denial handling more robust (#9626 Samuel Just)
-* osd: make misdirected op checks handle EC + primary affinity (#9835 Samuel Just, Sage Weil)
-* osd: mount XFS with inode64 by default (Sage Weil)
-* osd: other misc bugs (#9821 #9875 Samuel Just)
-* rgw: add .log to default log path (#9353 Alexandre Marangone)
-* rgw: clean up fcgi request context (#10194 Yehuda Sadeh)
-* rgw: convet header underscores to dashes (#9206 Yehuda Sadeh)
-* rgw: copy object data if copy target is in different pool (#9039 Yehuda Sadeh)
-* rgw: don't try to authenticate CORS peflight request (#8718 Robert Hubbard, Yehuda Sadeh)
-* rgw: fix civetweb URL decoding (#8621 Yehuda Sadeh)
-* rgw: fix hash calculation during PUT (Yehuda Sadeh)
-* rgw: fix misc bugs (#9089 #9201 Yehuda Sadeh)
-* rgw: fix object tail test (#9226 Sylvain Munaut, Yehuda Sadeh)
-* rgw: make sysvinit script run rgw under systemd context as needed (#10125 Loic Dachary)
-* rgw: separate civetweb log from rgw log (Yehuda Sadeh)
-* rgw: set length for keystone token validations (#7796 Mark Kirkwood, Yehuda Sadeh)
-* rgw: subuser creation fixes (#8587 Yehuda Sadeh)
-* rpm: misc packaging improvements (Sandon Van Ness, Dan Mick, Erik Logthenberg, Boris Ranto)
-* rpm: use standard udev rules for CentOS7/RHEL7 (#9747 Loic Dachary)
-
-
-v0.80.7 Firefly
-===============
-
-This release fixes a few critical issues with v0.80.6, particularly
-with clusters running mixed versions.
-
-We recommend that all v0.80.x Firefly users upgrade to this release.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.7.txt>`.
-
-Notable Changes
----------------
-
-* osd: fix invalid memory reference in log trimming (#9731 Samuel Just)
-* osd: fix use-after-free in cache tiering code (#7588 Sage Weil)
-* osd: remove bad backfill assertion for mixed-version clusters (#9696 Samuel Just)
-
-
-
-v0.80.6 Firefly
-===============
-
-This is a major bugfix release for firefly, fixing a range of issues
-in the OSD and monitor, particularly with cache tiering. There are
-also important fixes in librados, with the watch/notify mechanism used
-by librbd, and in radosgw.
-
-A few pieces of new functionality of been backported, including improved
-'ceph df' output (view amount of writeable space per pool), support for
-non-default cluster names when using sysvinit or systemd, and improved
-(and fixed) support for dmcrypt.
-
-We recommend that all v0.80.x Firefly users upgrade to this release.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.6.txt>`.
-
-Notable Changes
----------------
-
-* build: fix atomic64_t on i386 (#8969 Sage Weil)
-* build: fix build on alpha (Michael Cree, Dmitry Smirnov)
-* build: fix build on hppa (Dmitry Smirnov)
-* build: fix yasm detection on x32 arch (Sage Weil)
-* ceph-disk: fix 'list' function with dmcrypt (Sage Weil)
-* ceph-disk: fix dmcrypt support (Alfredo Deza)
-* ceph: allow non-default cluster to be specified (#8944)
-* common: fix dup log messages to mon (#9080 Sage Weil)
-* global: write pid file when -f is used (systemd, upstart) (Alexandre Oliva)
-* librados: fix crash when read timeout is enabled (#9362 Matthias Kiefer, Sage Weil)
-* librados: fix lock leaks in error paths (#9022 Pavan Rallabhandi)
-* librados: fix watch resend on PG acting set change (#9220 Samuel Just)
-* librados: python: fix aio_read handling with \0 (Mohammad Salehe)
-* librbd: add interface to invalidate cached data (Josh Durgin)
-* librbd: fix crash when using clone of flattened image (#8845 Josh Durgin)
-* librbd: fix error path cleanup on open (#8912 Josh Durgin)
-* librbd: fix null pointer check (Danny Al-Gaaf)
-* librbd: limit dirty object count (Haomai Wang)
-* mds: fix rstats for root and mdsdir (Yan, Zheng)
-* mon: add 'get' command for new cache tier pool properties (Joao Eduardo Luis)
-* mon: add 'osd pool get-quota' (#8523 Joao Eduardo Luis)
-* mon: add cluster fingerprint (Sage Weil)
-* mon: disallow nonsensical cache-mode transitions (#8155 Joao Eduardo Luis)
-* mon: fix cache tier rounding error on i386 (Sage Weil)
-* mon: fix occasional memory leak (#9176 Sage Weil)
-* mon: fix reported latency for 'osd perf' (#9269 Samuel Just)
-* mon: include 'max avail' in 'ceph df' output (Sage Weil, Xioaxi Chen)
-* mon: persistently mark pools where scrub may find incomplete clones (#8882 Sage Weil)
-* mon: preload erasure plugins (Loic Dachary)
-* mon: prevent cache-specific settings on non-tier pools (#8696 Joao Eduardo Luis)
-* mon: reduce log spam (Aanchal Agrawal, Sage Weil)
-* mon: warn when cache pools have no hit_sets enabled (Sage Weil)
-* msgr: fix trivial memory leak (Sage Weil)
-* osd: automatically scrub PGs with invalid stats (#8147 Sage Weil)
-* osd: avoid sharing PG metadata that is not durable (Samuel Just)
-* osd: cap hit_set size (#9339 Samuel Just)
-* osd: create default erasure profile if needed (#8601 Loic Dachary)
-* osd: dump tid as JSON int (not string) where appropriate (Joao Eduardo Luis)
-* osd: encode blacklist in deterministic order (#9211 Sage Weil)
-* osd: fix behavior when cache tier has no hit_sets enabled (#8982 Sage Weil)
-* osd: fix cache tier flushing of snapshots (#9054 Samuel Just)
-* osd: fix cache tier op ordering when going from full to non-full (#8931 Sage Weil)
-* osd: fix crash on dup recovery reservation (#8863 Sage Weil)
-* osd: fix division by zero when pg_num adjusted with no OSDs (#9052 Sage Weil)
-* osd: fix hint crash in experimental keyvaluestore_dev backend (Hoamai Wang)
-* osd: fix leak in copyfrom cancellation (#8894 Samuel Just)
-* osd: fix locking for copyfrom finish (#8889 Sage Weil)
-* osd: fix long filename handling in backend (#8701 Sage Weil)
-* osd: fix min_size check with backfill (#9497 Samuel Just)
-* osd: fix mount/remount sync race (#9144 Sage Weil)
-* osd: fix object listing + erasure code bug (Guang Yang)
-* osd: fix race on reconnect to failed OSD (#8944 Greg Farnum)
-* osd: fix recovery reservation deadlock (Samuel Just)
-* osd: fix tiering agent arithmetic for negative values (#9082 Karan Singh)
-* osd: improve shutdown order (#9218 Sage Weil)
-* osd: improve subop discard logic (#9259 Samuel Just)
-* osd: introduce optional sleep, io priority for scrub and snap trim (Sage Weil)
-* osd: make scrub check for and remove stale erasure-coded objects (Samuel Just)
-* osd: misc fixes (#9481 #9482 #9179 Sameul Just)
-* osd: mix keyvaluestore_dev improvements (Haomai Wang)
-* osd: only require CRUSH features for rules that are used (#8963 Sage Weil)
-* osd: preload erasure plugins on startup (Loic Dachary)
-* osd: prevent PGs from falling behind when consuming OSDMaps (#7576 Sage Weil)
-* osd: prevent old clients from using tiered pools (#8714 Sage Weil)
-* osd: set min_size on erasure pools to data chunk count (Sage Weil)
-* osd: trim old erasure-coded objects more aggressively (Samuel Just)
-* rados: enforce erasure code alignment (Lluis Pamies-Juarez)
-* rgw: align object stripes with erasure pool alignment (#8442 Yehuda Sadeh)
-* rgw: don't send error body on HEAD for civetweb (#8539 Yehuda Sadeh)
-* rgw: fix crash in CORS preflight request (Yehuda Sadeh)
-* rgw: fix decoding of + in URL (#8702 Brian Rak)
-* rgw: fix object removal on object create (#8972 Patrycja Szabowska, Yehuda Sadeh)
-* systemd: use systemd-run when starting radosgw (JuanJose Galvez)
-* sysvinit: support non-default cluster name (Alfredo Deza)
-
-
-v0.80.5 Firefly
-===============
-
-This release fixes a few important bugs in the radosgw and fixes
-several packaging and environment issues, including OSD log rotation,
-systemd environments, and daemon restarts on upgrade.
-
-We recommend that all v0.80.x Firefly users upgrade, particularly if they
-are using upstart, systemd, or radosgw.
-
-Notable Changes
----------------
-
-* ceph-dencoder: do not needlessly link to librgw, librados, etc. (Sage Weil)
-* do not needlessly link binaries to leveldb (Sage Weil)
-* mon: fix mon crash when no auth keys are present (#8851, Joao Eduardo Luis)
-* osd: fix cleanup (and avoid occasional crash) during shutdown (#7981, Sage Weil)
-* osd: fix log rotation under upstart (Sage Weil)
-* rgw: fix multipart upload when object has irregular size (#8846, Yehuda Sadeh, Sylvain Munaut)
-* rgw: improve bucket listing S3 compatibility (#8858, Yehuda Sadeh)
-* rgw: improve delimited bucket listing (Yehuda Sadeh)
-* rpm: do not restart daemons on upgrade (#8849, Alfredo Deza)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.5.txt>`.
-
-v0.80.4 Firefly
-===============
-
-This Firefly point release fixes an potential data corruption problem
-when ceph-osd daemons run on top of XFS and service Firefly librbd
-clients. A recently added allocation hint that RBD utilizes triggers
-an XFS bug on some kernels (Linux 3.2, and likely others) that leads
-to data corruption and deep-scrub errors (and inconsistent PGs). This
-release avoids the situation by disabling the allocation hint until we
-can validate which kernels are affected and/or are known to be safe to
-use the hint on.
-
-We recommend that all v0.80.x Firefly users urgently upgrade,
-especially if they are using RBD.
-
-Notable Changes
----------------
-
-* osd: disable XFS extsize hint by default (#8830, Samuel Just)
-* rgw: fix extra data pool default name (Yehuda Sadeh)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.4.txt>`.
-
-
-v0.80.3 Firefly
-===============
-
-This is the third Firefly point release. It includes a single fix
-for a radosgw regression that was discovered in v0.80.2 right after it
-was released.
-
-We recommand that all v0.80.x Firefly users upgrade.
-
-Notable Changes
----------------
-
-* radosgw: fix regression in manifest decoding (#8804, Sage Weil)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.3.txt>`.
-
-
-v0.80.2 Firefly
-===============
-
-This is the second Firefly point release. It contains a range of
-important fixes, including several bugs in the OSD cache tiering, some
-compatibility checks that affect upgrade situations, several radosgw
-bugs, and an irritating and unnecessary feature bit check that
-prevents older clients from communicating with a cluster with any
-erasure coded pools.
-
-One someone large change in this point release is that the ceph RPM
-package is separated into a ceph and ceph-common package, similar to
-Debian. The ceph-common package contains just the client libraries
-without any of the server-side daemons.
-
-We recommend that all v0.80.x Firefly users skip this release and use
-v0.80.3.
-
-Notable Changes
----------------
-
-* ceph-disk: better debug logging (Alfredo Deza)
-* ceph-disk: fix preparation of OSDs with dmcrypt (#6700, Stephen F Taylor)
-* ceph-disk: partprobe on prepare to fix dm-crypt (#6966, Eric Eastman)
-* do not require ERASURE_CODE feature from clients (#8556, Sage Weil)
-* libcephfs-java: build with older JNI headers (Greg Farnum)
-* libcephfs-java: fix build with gcj-jdk (Dmitry Smirnov)
-* librados: fix osd op tid for redirected ops (#7588, Samuel Just)
-* librados: fix rados_pool_list buffer bounds checks (#8447, Sage Weil)
-* librados: resend ops when pool overlay changes (#8305, Sage Weil)
-* librbd, ceph-fuse: reduce CPU overhead for clean object check in cache (Haomai Wang)
-* mon: allow deletion of cephfs pools (John Spray)
-* mon: fix default pool ruleset choice (#8373, John Spray)
-* mon: fix health summary for mon low disk warning (Sage Weil)
-* mon: fix 'osd pool set <pool> cache_target_full_ratio' (Geoffrey Hartz)
-* mon: fix quorum feature check (Greg Farnum)
-* mon: fix request forwarding in mixed firefly+dumpling clusters 9#8727, Joao Eduardo Luis)
-* mon: fix rule vs ruleset check in 'osd pool set ... crush_ruleset' command (John Spray)
-* mon: make osd 'down' count accurate (Sage Weil)
-* mon: set 'next commit' in primary-affinity reply (Ilya Dryomov)
-* mon: verify CRUSH features are supported by all mons (#8738, Greg Farnum)
-* msgr: fix sequence negotiation during connection reset (Guang Yang)
-* osd: block scrub on blocked objects (#8011, Samuel Just)
-* osd: call XFS hint ioctl less often (#8241, Ilya Dryomov)
-* osd: copy xattr spill out marker on clone (Haomai Wang)
-* osd: fix flush of snapped objects (#8334, Samuel Just)
-* osd: fix hashindex restart of merge operation (#8332, Samuel Just)
-* osd: fix osdmap subscription bug causing startup hang (Greg Farnum)
-* osd: fix potential null deref (#8328, Sage Weil)
-* osd: fix shutdown race (#8319, Sage Weil)
-* osd: handle 'none' in CRUSH results properly during peering (#8507, Samuel Just)
-* osd: set no spill out marker on new objects (Greg Farnum)
-* osd: skip op ordering debug checks on tiered pools (#8380, Sage Weil)
-* rados: enforce 'put' alignment (Lluis Pamies-Juarez)
-* rest-api: fix for 'rx' commands (Ailing Zhang)
-* rgw: calc user manifest etag and fix check (#8169, #8436, Yehuda Sadeh)
-* rgw: fetch attrs on multipart completion (#8452, Yehuda Sadeh, Sylvain Munaut)
-* rgw: fix buffer overflow for long instance ids (#8608, Yehuda Sadeh)
-* rgw: fix entity permission check on metadata put (#8428, Yehuda Sadeh)
-* rgw: fix multipart retry race (#8269, Yehuda Sadeh)
-* rpm: split ceph into ceph and ceph-common RPMs (Sandon Van Ness, Dan Mick)
-* sysvinit: continue startin daemons after failure doing mount (#8554, Sage Weil)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.2.txt>`.
-
-v0.80.1 Firefly
-===============
-
-This first Firefly point release fixes a few bugs, the most visible
-being a problem that prevents scrub from completing in some cases.
-
-Notable Changes
----------------
-
-* osd: revert incomplete scrub fix (Samuel Just)
-* rgw: fix stripe calculation for manifest objects (Yehuda Sadeh)
-* rgw: improve handling, memory usage for abort reads (Yehuda Sadeh)
-* rgw: send Swift user manifest HTTP header (Yehuda Sadeh)
-* libcephfs, ceph-fuse: expose MDS session state via admin socket (Yan, Zheng)
-* osd: add simple throttle for snap trimming (Sage Weil)
-* monclient: fix possible hang from ill-timed monitor connection failure (Sage Weil)
-* osd: fix trimming of past HitSets (Sage Weil)
-* osd: fix whiteouts for non-writeback cache modes (Sage Weil)
-* osd: prevent divide by zero in tiering agent (David Zafman)
-* osd: prevent busy loop when tiering agent can do no work (David Zafman)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.80.1.txt>`.
-
-
-v0.80 Firefly
-=============
-
-This release will form the basis for our long-term supported release
-Firefly, v0.80.x. The big new features are support for erasure coding
-and cache tiering, although a broad range of other features, fixes,
-and improvements have been made across the code base. Highlights include:
-
-* *Erasure coding*: support for a broad range of erasure codes for lower
- storage overhead and better data durability.
-* *Cache tiering*: support for creating 'cache pools' that store hot,
- recently accessed objects with automatic demotion of colder data to
- a base tier. Typically the cache pool is backed by faster storage
- devices like SSDs.
-* *Primary affinity*: Ceph now has the ability to skew selection of
- OSDs as the "primary" copy, which allows the read workload to be
- cheaply skewed away from parts of the cluster without migrating any
- data.
-* *Key/value OSD backend* (experimental): An alternative storage backend
- for Ceph OSD processes that puts all data in a key/value database like
- leveldb. This provides better performance for workloads dominated by
- key/value operations (like radosgw bucket indices).
-* *Standalone radosgw* (experimental): The radosgw process can now run
- in a standalone mode without an apache (or similar) web server or
- fastcgi. This simplifies deployment and can improve performance.
-
-We expect to maintain a series of stable releases based on v0.80
-Firefly for as much as a year. In the meantime, development of Ceph
-continues with the next release, Giant, which will feature work on the
-CephFS distributed file system, more alternative storage backends
-(like RocksDB and f2fs), RDMA support, support for pyramid erasure
-codes, and additional functionality in the block device (RBD) like
-copy-on-read and multisite mirroring.
-
-
-Upgrade Sequencing
-------------------
-
-* If your existing cluster is running a version older than v0.67
- Dumpling, please first upgrade to the latest Dumpling release before
- upgrading to v0.80 Firefly. Please refer to the `Dumpling upgrade`_
- documentation.
-
-* We recommand adding the following to the [mon] section of your
- ceph.conf prior to upgrade::
-
- mon warn on legacy crush tunables = false
-
- This will prevent health warnings due to the use of legacy CRUSH
- placement. Although it is possible to rebalance existing data
- across your cluster (see the upgrade notes below), we do not
- normally recommend it for production environments as a large amount
- of data will move and there is a significant performance impact from
- the rebalancing.
-
-* Upgrade daemons in the following order:
-
- #. Monitors
- #. OSDs
- #. MDSs and/or radosgw
-
- If the ceph-mds daemon is restarted first, it will wait until all
- OSDs have been upgraded before finishing its startup sequence. If
- the ceph-mon daemons are not restarted prior to the ceph-osd
- daemons, they will not correctly register their new capabilities
- with the cluster and new features may not be usable until they are
- restarted a second time.
-
-* Upgrade radosgw daemons together. There is a subtle change in behavior
- for multipart uploads that prevents a multipart request that was initiated
- with a new radosgw from being completed by an old radosgw.
-
-
-Upgrading from v0.79
---------------------
-
-* OSDMap's json-formatted dump changed for keys 'full' and 'nearfull'.
- What was previously being outputted as 'true' or 'false' strings are
- now being outputted 'true' and 'false' booleans according to json syntax.
-
-* HEALTH_WARN on 'mon osd down out interval == 0'. Having this option set
- to zero on the leader acts much like having the 'noout' flag set. This
- warning will only be reported if the monitor getting the 'health' or
- 'status' request has this option set to zero.
-
-* Monitor 'auth' commands now require the mon 'x' capability. This matches
- dumpling v0.67.x and earlier, but differs from emperor v0.72.x.
-
-* A librados WATCH operation on a non-existent object now returns ENOENT;
- previously it did not.
-
-* Librados interface change: As there are no partial writes, the rados_write()
- and rados_append() operations now return 0 on success like rados_write_full()
- always has. This includes the C++ interface equivalents and AIO return
- values for the aio variants.
-
-* The radosgw init script (sysvinit) how requires that the 'host = ...' line in
- ceph.conf, if present, match the short hostname (the output of 'hostname -s'),
- not the fully qualified hostname or the (occasionally non-short) output of
- 'hostname'. Failure to adjust this when upgrading from emperor or dumpling
- may prevent the radosgw daemon from starting.
-
-Upgrading from v0.72 Emperor
-----------------------------
-
-* See notes above.
-
-* The 'ceph -s' or 'ceph status' command's 'num_in_osds' field in the
- JSON and XML output has been changed from a string to an int.
-
-* The recently added 'ceph mds set allow_new_snaps' command's syntax
- has changed slightly; it is now 'ceph mds set allow_new_snaps true'.
- The 'unset' command has been removed; instead, set the value to
- 'false'.
-
-* The syntax for allowing snapshots is now 'mds set allow_new_snaps
- <true|false>' instead of 'mds <set,unset> allow_new_snaps'.
-
-* 'rbd ls' on a pool which never held rbd images now exits with code
- 0. It outputs nothing in plain format, or an empty list in
- non-plain format. This is consistent with the behavior for a pool
- which used to hold images, but contains none. Scripts relying on
- this behavior should be updated.
-
-* The MDS requires a new OSD operation TMAP2OMAP, added in this release. When
- upgrading, be sure to upgrade and restart the ceph-osd daemons before the
- ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support
- the new feature.
-
-* The 'ceph mds set_max_mds N' command is now deprecated in favor of
- 'ceph mds set max_mds N'.
-
-* The 'osd pool create ...' syntax has changed for erasure pools.
-
-* The default CRUSH rules and layouts are now using the 'bobtail'
- tunables and defaults. Upgaded clusters using the old values will
- now present with a health WARN state. This can be disabled by
- adding 'mon warn on legacy crush tunables = false' to ceph.conf and
- restarting the monitors. Alternatively, you can switch to the new
- tunables with 'ceph osd crush tunables firefly,' but keep in mind
- that this will involve moving a *significant* portion of the data
- already stored in the cluster and in a large cluster may take
- several days to complete. We do not recommend adjusting tunables on a
- production cluster.
-
-* We now default to the 'bobtail' CRUSH tunable values that are first supported
- by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you
- plan to access a newly created Ceph cluster with an older kernel client, you
- should use 'ceph osd crush tunables legacy' to switch back to the legacy
- behavior. Note that making that change will likely result in some data
- movement in the system, so adjust the setting before populating the new
- cluster with data.
-
-* We now set the HASHPSPOOL flag on newly created pools (and new
- clusters) by default. Support for this flag first appeared in
- v0.64; v0.67 Dumpling is the first major release that supports it.
- It is first supported by the Linux kernel version v3.9. If you plan
- to access a newly created Ceph cluster with an older kernel or
- clients (e.g, librados, librbd) from a pre-dumpling Ceph release,
- you should add 'osd pool default flag hashpspool = false' to the
- '[global]' section of your 'ceph.conf' prior to creating your
- monitors (e.g., after 'ceph-deploy new' but before 'ceph-deploy mon
- create ...').
-
-* The configuration option 'osd pool default crush rule' is deprecated
- and replaced with 'osd pool default crush replicated ruleset'. 'osd
- pool default crush rule' takes precedence for backward compatibility
- and a deprecation warning is displayed when it is used.
-
-* As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now
- receives <arg> as an integer instead of a string. This affects how
- 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now
- must be '0' or '1'.
-
-* The behavior of the CRUSH 'indep' choose mode has been changed. No
- ceph cluster should have been using this behavior unless someone has
- manually extracted a crush map, modified a CRUSH rule to replace
- 'firstn' with 'indep', recompiled, and reinjected the new map into
- the cluster. If the 'indep' mode is currently in use on a cluster,
- the rule should be modified to use 'firstn' instead, and the
- administrator should wait until any data movement completes before
- upgrading.
-
-* The 'osd dump' command now dumps pool snaps as an array instead of an
- object.
-
-
-Upgrading from v0.67 Dumpling
------------------------------
-
-* See notes above.
-
-* ceph-fuse and radosgw now use the same default values for the admin
- socket and log file paths that the other daemons (ceph-osd,
- ceph-mon, etc.) do. If you run these daemons as non-root, you may
- need to adjust your ceph.conf to disable these options or to adjust
- the permissions on /var/run/ceph and /var/log/ceph.
-
-* The MDS now disallows snapshots by default as they are not
- considered stable. The command 'ceph mds set allow_snaps' will
- enable them.
-
-* For clusters that were created before v0.44 (pre-argonaut, Spring
- 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP
- objects has been disabled. Before upgrading, make sure that any
- buckets created on pre-argonaut releases have been modified (e.g.,
- by PUTing and then DELETEing an object from each bucket). Any
- cluster created with argonaut (v0.48) or a later release or not
- using radosgw never relied on the automatic conversion and is not
- affected by this change.
-
-* Any direct users of the 'tmap' portion of the librados API should be
- aware that the automatic tmap -> omap conversion functionality has
- been removed.
-
-* Most output that used K or KB (e.g., for kilobyte) now uses a
- lower-case k to match the official SI convention. Any scripts that
- parse output and check for an upper-case K will need to be modified.
-
-* librados::Rados::pool_create_async() and librados::Rados::pool_delete_async()
- don't drop a reference to the completion object on error, caller needs to take
- care of that. This has never really worked correctly and we were leaking an
- object
-
-* 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the
- specified location, as that's a job for 'ceph osd crush add'. It will
- however continue to work just the same as long as the osd already exists
- in the crush map.
-
-* The OSD now enforces that class write methods cannot both mutate an
- object and return data. The rbd.assign_bid method, the lone
- offender, has been removed. This breaks compatibility with
- pre-bobtail librbd clients by preventing them from creating new
- images.
-
-* librados now returns on commit instead of ack for synchronous calls.
- This is a bit safer in the case where both OSDs and the client crash, and
- is probably how it should have been acting from the beginning. Users are
- unlikely to notice but it could result in lower performance in some
- circumstances. Those who care should switch to using the async interfaces,
- which let you specify safety semantics precisely.
-
-* The C++ librados AioComplete::get_version() method was incorrectly
- returning an int (usually 32-bits). To avoid breaking library
- compatibility, a get_version64() method is added that returns the
- full-width value. The old method is deprecated and will be removed
- in a future release. Users of the C++ librados API that make use of
- the get_version() method should modify their code to avoid getting a
- value that is truncated from 64 to to 32 bits.
-
-
-Notable changes since v0.79
----------------------------
-
-* ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng)
-* ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng)
-* librados: fix inconsistencies in API error values (David Zafman)
-* librados: fix watch operations with cache pools (Sage Weil)
-* librados: new snap rollback operation (David Zafman)
-* mds: fix respawn (John Spray)
-* mds: misc bugs (Yan, Zheng)
-* mds: misc multi-mds fixes (Yan, Zheng)
-* mds: use shared_ptr for requests (Greg Farnum)
-* mon: fix peer feature checks (Sage Weil)
-* mon: require 'x' mon caps for auth operations (Joao Luis)
-* mon: shutdown when removed from mon cluster (Joao Luis)
-* msgr: fix locking bug in authentication (Josh Durgin)
-* osd: fix bug in journal replay/restart (Sage Weil)
-* osd: many many many bug fixes with cache tiering (Samuel Just)
-* osd: track omap and hit_set objects in pg stats (Samuel Just)
-* osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil)
-* rados bench: track metadata for multiple runs separately (Guang Yang)
-* rgw: fixed subuser modify (Yehuda Sadeh)
-* rpm: fix redhat-lsb dependency (Sage Weil, Alfredo Deza)
-
-
-Notable changes since v0.72 Emperor
------------------------------------
-
-* buffer: some zero-copy groundwork (Josh Durgin)
-* build: misc improvements (Ken Dreyer)
-* ceph-conf: stop creating bogus log files (Josh Durgin, Sage Weil)
-* ceph-crush-location: new hook for setting CRUSH location of osd daemons on start)
-* ceph-disk: avoid fd0 (Loic Dachary)
-* ceph-disk: generalize path names, add tests (Loic Dachary)
-* ceph-disk: misc improvements for puppet (Loic Dachary)
-* ceph-disk: several bug fixes (Loic Dachary)
-* ceph-fuse: fix race for sync reads (Sage Weil)
-* ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng)
-* ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng)
-* ceph-kvstore-tool: expanded command set and capabilities (Joao Eduardo Luis)
-* ceph.spec: fix build dependency (Loic Dachary)
-* common: bloom filter improvements (Sage Weil)
-* common: check preexisting admin socket for active daemon before removing (Loic Dachary)
-* common: fix aligned buffer allocation (Loic Dachary)
-* common: fix authentication on big-endian architectures (Dan Mick)
-* common: fix config variable substitution (Loic Dachary)
-* common: portability changes to support libc++ (Noah Watkins)
-* common: switch to unordered_map from hash_map (Noah Watkins)
-* config: recursive metavariable expansion (Loic Dachary)
-* crush: default to bobtail tunables (Sage Weil)
-* crush: fix off-by-one error in recent refactor (Sage Weil)
-* crush: many additional tests (Loic Dachary)
-* crush: misc fixes, cleanups (Loic Dachary)
-* crush: new rule steps to adjust retry attempts (Sage Weil)
-* crush, osd: s/rep/replicated/ for less confusion (Loic Dachary)
-* crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil)
-* crush: usability and test improvements (Loic Dachary)
-* debian: change directory ownership between ceph and ceph-common (Sage Weil)
-* debian: integrate misc fixes from downstream packaging (James Page)
-* doc: big update to install docs (John Wilkins)
-* doc: many many install doc improvements (John Wilkins)
-* doc: many many updates (John Wilkins)
-* doc: misc fixes (David Moreau Simard, Kun Huang)
-* erasure-code: improve buffer alignment (Loic Dachary)
-* erasure-code: rewrite region-xor using vector operations (Andreas Peters)
-* init: fix startup ordering/timeout problem with OSDs (Dmitry Smirnov)
-* libcephfs: fix resource leak (Zheng Yan)
-* librados: add C API coverage for atomic write operations (Christian Marie)
-* librados: fix inconsistencies in API error values (David Zafman)
-* librados: fix throttle leak (and eventual deadlock) (Josh Durgin)
-* librados: fix watch operations with cache pools (Sage Weil)
-* librados: new snap rollback operation (David Zafman)
-* librados, osd: new TMAP2OMAP operation (Yan, Zheng)
-* librados: read directly into user buffer (Rutger ter Borg)
-* librbd: fix use-after-free aio completion bug #5426 (Josh Durgin)
-* librbd: localize/distribute parent reads (Sage Weil)
-* librbd: skip zeroes/holes when copying sparse images (Josh Durgin)
-* mailmap: affiliation updates (Loic Dachary)
-* mailmap updates (Loic Dachary)
-* many portability improvements (Noah Watkins)
-* many unit test improvements (Loic Dachary)
-* mds: always store backtrace in default pool (Yan, Zheng)
-* mds: cope with MDS failure during creation (John Spray)
-* mds: fix cap migration behavior (Yan, Zheng)
-* mds: fix client session flushing (Yan, Zheng)
-* mds: fix crash from client sleep/resume (Zheng Yan)
-* mds: fix many many multi-mds bugs (Yan, Zheng)
-* mds: fix readdir end check (Zheng Yan)
-* mds: fix Resetter locking (Alexandre Oliva)
-* mds: fix respawn (John Spray)
-* mds: inline data support (Li Wang, Yunchuan Wen)
-* mds: misc bugs (Yan, Zheng)
-* mds: misc fixes for directory fragments (Zheng Yan)
-* mds: misc fixes for larger directories (Zheng Yan)
-* mds: misc fixes for multiple MDSs (Zheng Yan)
-* mds: misc multi-mds fixes (Yan, Zheng)
-* mds: remove .ceph directory (John Spray)
-* mds: store directories in omap instead of tmap (Yan, Zheng)
-* mds: update old-format backtraces opportunistically (Zheng Yan)
-* mds: use shared_ptr for requests (Greg Farnum)
-* misc cleanups from coverity (Xing Lin)
-* misc coverity fixes, cleanups (Danny Al-Gaaf)
-* misc coverity fixes (Xing Lin, Li Wang, Danny Al-Gaaf)
-* misc portability fixes (Noah Watkins, Alan Somers)
-* misc portability fixes (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun)
-* misc portability work (Noah Watkins)
-* mon: add erasure profiles and improve erasure pool creation (Loic Dachary)
-* mon: add 'mon getmap EPOCH' (Joao Eduardo Luis)
-* mon: allow adjustment of cephfs max file size via 'ceph mds set max_file_size' (Sage Weil)
-* mon: allow debug quorum_{enter,exit} commands via admin socket
-* mon: 'ceph osd pg-temp ...' and primary-temp commands (Ilya Dryomov)
-* mon: change mds allow_new_snaps syntax to be more consistent (Sage Weil)
-* mon: clean up initial crush rule creation (Loic Dachary)
-* mon: collect misc metadata about osd (os, kernel, etc.), new 'osd metadata' command (Sage Weil)
-* mon: do not create erasure rules by default (Sage Weil)
-* mon: do not generate spurious MDSMaps in certain cases (Sage Weil)
-* mon: do not use keyring if auth = none (Loic Dachary)
-* mon: fix peer feature checks (Sage Weil)
-* mon: fix pg_temp leaks (Joao Eduardo Luis)
-* mon: fix pool count in 'ceph -s' output (Sage Weil)
-* mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil)
-* mon: improve (replicate or erasure) pool creation UX (Loic Dachary)
-* mon: infrastructure to handle mixed-version mon cluster and cli/rest API (Greg Farnum)
-* mon: MForward tests (Loic Dachary)
-* mon: mkfs now idempotent (Loic Dachary)
-* mon: only seed new osdmaps to current OSDs (Sage Weil)
-* mon, osd: create erasure style crush rules (Loic Dachary, Sage Weil)
-* mon: 'osd crush show-tunables' (Sage Weil)
-* mon: 'osd dump' dumps pool snaps as array, not object (Dan Mick)
-* mon, osd: new 'erasure' pool type (still not fully supported)
-* mon: persist quorum features to disk (Greg Farnum)
-* mon: prevent extreme changes in pool pg_num (Greg Farnum)
-* mon: require 'x' mon caps for auth operations (Joao Luis)
-* mon: shutdown when removed from mon cluster (Joao Luis)
-* mon: take 'osd pool set ...' value as an int, not string (Joao Eduardo Luis)
-* mon: track osd features in OSDMap (Joao Luis, David Zafman)
-* mon: trim MDSMaps (Joao Eduardo Luis)
-* mon: warn if crush has non-optimal tunables (Sage Weil)
-* mount.ceph: add -n for autofs support (Steve Stock)
-* msgr: fix locking bug in authentication (Josh Durgin)
-* msgr: fix messenger restart race (Xihui He)
-* msgr: improve connection error detection between clients and monitors (Greg Farnum, Sage Weil)
-* osd: add/fix CPU feature detection for jerasure (Loic Dachary)
-* osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum)
-* osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil)
-* osd: backfill to multiple targets (David Zafman)
-* osd: backfill to osds not in acting set (David Zafman)
-* osd: cache pool support for snapshots (Sage Weil)
-* osd: client IO path changes for EC (Samuel Just)
-* osd: default to 3x replication
-* osd: do not include backfill targets in acting set (David Zafman)
-* osd: enable new hashpspool layout by default (Sage Weil)
-* osd: erasure plugin benchmarking tool (Loic Dachary)
-* osd: fix and cleanup misc backfill issues (David Zafman)
-* osd: fix bug in journal replay/restart (Sage Weil)
-* osd: fix copy-get omap bug (Sage Weil)
-* osd: fix linux kernel version detection (Ilya Dryomov)
-* osd: fix memstore segv (Haomai Wang)
-* osd: fix object_info_t encoding bug from emperor (Sam Just)
-* osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng)
-* osd: fix several bugs with tier infrastructure
-* osd: fix throttle thread (Haomai Wang)
-* osd: fix XFS detection (Greg Farnum, Sushma Gurram)
-* osd: generalize scrubbing infrastructure to allow EC (David Zafman)
-* osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil)
-* osd: ignore num_objects_dirty on scrub for old pools (Sage Weil)
-* osd: improved scrub checks on clones (Sage Weil, Sam Just)
-* osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum)
-* osd: include more info in pg query result (Sage Weil)
-* osd, librados: fix full cluster handling (Josh Durgin)
-* osd: many erasure fixes (Sam Just)
-* osd: many many many bug fixes with cache tiering (Samuel Just)
-* osd: move to jerasure2 library (Loic Dachary)
-* osd: new 'chassis' type in default crush hierarchy (Sage Weil)
-* osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang)
-* osd: new OSDMap encoding (Greg Farnum)
-* osd: new tests for erasure pools (David Zafman)
-* osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil)
-* osd: reduce scrub lock contention (Guang Yang)
-* osd: requery unfound on stray notify (#6909) (Samuel Just)
-* osd: some PGBackend infrastructure (Samuel Just)
-* osd: support for new 'memstore' (memory-backed) backend (Sage Weil)
-* osd: track erasure compatibility (David Zafman)
-* osd: track omap and hit_set objects in pg stats (Samuel Just)
-* osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil)
-* rados: add 'crush location', smart replica selection/balancing (Sage Weil)
-* rados bench: track metadata for multiple runs separately (Guang Yang)
-* rados: some performance optimizations (Yehuda Sadeh)
-* rados tool: fix listomapvals (Josh Durgin)
-* rbd: add 'rbdmap' init script for mapping rbd images on book (Adam Twardowski)
-* rbd: add rbdmap support for upstart (Laurent Barbe)
-* rbd: expose kernel rbd client options via 'rbd map' (Ilya Dryomov)
-* rbd: fix bench-write command (Hoamai Wang)
-* rbd: make 'rbd list' return empty list and success on empty pool (Josh Durgin)
-* rbd: prevent deletion of images with watchers (Ilya Dryomov)
-* rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov)
-* rest-api: do not fail when no OSDs yet exist (Dan Mick)
-* rgw: add 'status' command to sysvinit script (David Moreau Simard)
-* rgw: allow multiple frontends (Yehuda Sadeh)
-* rgw: allow use of an erasure data pool (Yehuda Sadeh)
-* rgw: convert bucket info to new format on demand (Yehuda Sadeh)
-* rgw: fixed subuser modify (Yehuda Sadeh)
-* rgw: fix error setting empty owner on ACLs (Yehuda Sadeh)
-* rgw: fix fastcgi deadlock (do not return data from librados callback) (Yehuda Sadeh)
-* rgw: fix many-part multipart uploads (Yehuda Sadeh)
-* rgw: fix misc CORS bugs (Robin H. Johnson)
-* rgw: fix object placement read op (Yehuda Sadeh)
-* rgw: fix reading bucket policy (#6940)
-* rgw: fix read_user_buckets 'max' behavior (Yehuda Sadeh)
-* rgw: fix several CORS bugs (Robin H. Johnson)
-* rgw: fix use-after-free when releasing completion handle (Yehuda Sadeh)
-* rgw: improve swift temp URL support (Yehuda Sadeh)
-* rgw: make multi-object delete idempotent (Yehuda Sadeh)
-* rgw: optionally defer to bucket ACLs instead of object ACLs (Liam Monahan)
-* rgw: prototype mongoose frontend (Yehuda Sadeh)
-* rgw: several doc fixes (Alexandre Marangone)
-* rgw: support for password (instead of admin token) for keystone authentication (Christophe Courtaut)
-* rgw: switch from mongoose to civetweb (Yehuda Sadeh)
-* rgw: user quotas (Yehuda Sadeh)
-* rpm: fix redhat-lsb dependency (Sage Weil, Alfredo Deza)
-* specfile: fix RPM build on RHEL6 (Ken Dreyer, Derek Yarnell)
-* specfile: ship libdir/ceph (Key Dreyer)
-* sysvinit, upstart: prevent both init systems from starting the same daemons (Josh Durgin)
-
-
-Notable changes since v0.67 Dumpling
-------------------------------------
-
-* build cleanly under clang (Christophe Courtaut)
-* build: Makefile refactor (Roald J. van Loon)
-* build: fix [/usr]/sbin locations (Alan Somers)
-* ceph-disk: fix journal preallocation
-* ceph-fuse, radosgw: enable admin socket and logging by default
-* ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng)
-* ceph-fuse: trim deleted inodes from cache (Yan, Zheng)
-* ceph-fuse: use newer fuse api (Jianpeng Ma)
-* ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis)
-* ceph-post-file: new command to easily share logs or other files with ceph devs
-* ceph: improve parsing of CEPH_ARGS (Benoit Knecht)
-* ceph: make -h behave when monitors are down
-* ceph: parse CEPH_ARGS env variable
-* common: bloom_filter improvements, cleanups
-* common: cache crc32c values where possible
-* common: correct SI is kB not KB (Dan Mick)
-* common: fix looping on BSD (Alan Somers)
-* common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary)
-* common: misc portability fixes (Noah Watkins)
-* crc32c: fix optimized crc32c code (it now detects arch support properly)
-* crc32c: improved intel-optimized crc32c support (~8x faster on my laptop!)
-* crush: fix name caching
-* doc: erasure coding design notes (Loic Dachary)
-* hadoop: removed old version of shim to avoid confusing users (Noah Watkins)
-* librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis)
-* librados: fix async aio completion wakeup
-* librados: fix installed header #includes (Dan Mick)
-* librados: get_version64() method for C++ API
-* librados: hello_world example (Greg Farnum)
-* librados: sync calls now return on commit (instead of ack) (Greg Farnum)
-* librbd python bindings: fix parent image name limit (Josh Durgin)
-* librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls
-* mds: avoid leaking objects when deleting truncated files (Yan, Zheng)
-* mds: fix F_GETLK (Yan, Zheng)
-* mds: fix LOOKUPSNAP bug
-* mds: fix heap profiler commands (Joao Luis)
-* mds: fix locking deadlock (David Disseldorp)
-* mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng)
-* mds: fix many directory fragmentation bugs (Yan, Zheng)
-* mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva)
-* mds: fix rare restart/failure race during fs creation
-* mds: fix standby-replay when we fall behind (Yan, Zheng)
-* mds: fix stray directory purging (Yan, Zheng)
-* mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng)
-* mds: several bug fixes with clustered mds (Yan, Zheng)
-* mon, osd: improve osdmap trimming logic (Samuel Just)
-* mon, osd: initial CLI for configuring tiering
-* mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis)
-* mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis)
-* mon: allow cap strings with . to be unquoted
-* mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted
-* mon: avoid rewriting full osdmaps on restart (Joao Luis)
-* mon: continue to discover peer addr info during election phase
-* mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum)
-* mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis)
-* mon: fix 'ceph osd crush reweight ...' (Joao Luis)
-* mon: fix 'osd crush move ...' command for buckets (Joao Luis)
-* mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis)
-* mon: fix paxos corner case
-* mon: kv properties for pools to support EC (Loic Dachary)
-* mon: make 'osd pool rename' idempotent (Joao Luis)
-* mon: modify 'auth add' semantics to make a bit more sense (Joao Luis)
-* mon: new 'osd perf' command to dump recent performance information (Samuel Just)
-* mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read)
-* mon: some auth check cleanups (Joao Luis)
-* mon: track per-pool stats (Joao Luis)
-* mon: warn about pools with bad pg_num
-* mon: warn when mon data stores grow very large (Joao Luis)
-* monc: fix small memory leak
-* new wireshark patches pulled into the tree (Kevin Jones)
-* objecter, librados: redirect requests based on cache tier config
-* objecter: fix possible hang when cluster is unpaused (Josh Durgin)
-* osd, librados: add new COPY_FROM rados operation
-* osd, librados: add new COPY_GET rados operations (used by COPY_FROM)
-* osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just)
-* osd: COPY_GET on-wire encoding improvements (Greg Farnum)
-* osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%)
-* osd: add option to disable pg log debug code (which burns CPU)
-* osd: allow cap strings with . to be unquoted
-* osd: automatically detect proper xattr limits (David Zafman)
-* osd: avoid extra copy in erasure coding reference implementation (Loic Dachary)
-* osd: basic cache pool redirects (Greg Farnum)
-* osd: basic whiteout, dirty flag support (not yet used)
-* osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil)
-* osd: clean up and generalize copy-from code (Greg Farnum)
-* osd: cls_hello OSD class example
-* osd: erasure coding doc updates (Loic Dachary)
-* osd: erasure coding plugin infrastructure, tests (Loic Dachary)
-* osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng)
-* osd: fix RWORDER flags
-* osd: fix exponential backoff of slow request warnings (Loic Dachary)
-* osd: fix handling of racing read vs write (Samuel Just)
-* osd: fix version value returned by various operations (Greg Farnum)
-* osd: generalized temp object infrastructure
-* osd: ghobject_t infrastructure for EC (David Zafman)
-* osd: improvements for compatset support and storage (David Zafman)
-* osd: infrastructure to copy objects from other OSDs
-* osd: instrument peering states (David Zafman)
-* osd: misc copy-from improvements
-* osd: opportunistic crc checking on stored data (off by default)
-* osd: properly enforce RD/WR flags for rados classes
-* osd: reduce blocking on backing fs (Samuel Just)
-* osd: refactor recovery using PGBackend (Samuel Just)
-* osd: remove old magical tmap->omap conversion
-* osd: remove old pg log on upgrade (Samuel Just)
-* osd: revert xattr size limit (fixes large rgw uploads)
-* osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just)
-* pybind: fix blacklisting nonce (Loic Dachary)
-* radosgw-agent: multi-region replication/DR
-* rgw: complete in-progress requests before shutting down
-* rgw: default log level is now more reasonable (Yehuda Sadeh)
-* rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh)
-* rgw: fix a few minor memory leaks (Yehuda Sadeh)
-* rgw: fix acl group check (Yehuda Sadeh)
-* rgw: fix inefficient use of std::list::size() (Yehuda Sadeh)
-* rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson)
-* rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh)
-* rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh)
-* rgw: fix various CORS bugs (Yehuda Sadeh)
-* rgw: fix/improve swift COPY support (Yehuda Sadeh)
-* rgw: improve help output (Christophe Courtaut)
-* rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh)
-* rgw: per-bucket quota (Yehuda Sadeh)
-* rgw: validate S3 tokens against keystone (Roald J. van Loon)
-* rgw: wildcard support for keystone roles (Christophe Courtaut)
-* rpm: fix junit dependencies (Alan Grosskurth)
-* sysvinit radosgw: fix status return code (Danny Al-Gaaf)
-* sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe)
-* sysvinit: add condrestart command (Dan van der Ster)
-* sysvinit: fix shutdown order (mons last) (Alfredo Deza)
-
-
-v0.79
-=====
-
-This release is intended to serve as a release candidate for firefly,
-which will hopefully be v0.80. No changes are being made to the code
-base at this point except those that fix bugs. Please test this
-release if you intend to make use of the new erasure-coded pools or
-cache tiers in firefly.
-
-This release fixes a range of bugs found in v0.78 and streamlines the
-user experience when creating erasure-coded pools. There is also a
-raft of fixes for the MDS (multi-mds, directory fragmentation, and
-large directories). The main notable new piece of functionality is a
-small change to allow radosgw to use an erasure-coded pool for object
-data.
-
-
-Upgrading
----------
-* Erasure pools created with v0.78 will no longer function with v0.79. You
- will need to delete the old pool and create a new one.
-
-* A bug was fixed in the authentication handshake with big-endian
- architectures that prevent authentication between big- and
- little-endian machines in the same cluster. If you have a cluster
- that consists entirely of big-endian machines, you will need to
- upgrade all daemons and clients and restart.
-
-* The 'ceph.file.layout' and 'ceph.dir.layout' extended attributes are
- no longer included in the listxattr(2) results to prevent problems with
- 'cp -a' and similar tools.
-
-* Monitor 'auth' read-only commands now expect the user to have 'rx' caps.
- This is the same behavior that was present in dumpling, but in emperor
- and more recent development releases the 'r' cap was sufficient. The
- affected commands are::
-
- ceph auth export
- ceph auth get
- ceph auth get-key
- ceph auth print-key
- ceph auth list
-
-Notable Changes
----------------
-* ceph-conf: stop creating bogus log files (Josh Durgin, Sage Weil)
-* common: fix authentication on big-endian architectures (Dan Mick)
-* debian: change directory ownership between ceph and ceph-common (Sage Weil)
-* init: fix startup ordering/timeout problem with OSDs (Dmitry Smirnov)
-* librbd: skip zeroes/holes when copying sparse images (Josh Durgin)
-* mds: cope with MDS failure during creation (John Spray)
-* mds: fix crash from client sleep/resume (Zheng Yan)
-* mds: misc fixes for directory fragments (Zheng Yan)
-* mds: misc fixes for larger directories (Zheng Yan)
-* mds: misc fixes for multiple MDSs (Zheng Yan)
-* mds: remove .ceph directory (John Spray)
-* misc coverity fixes, cleanups (Danny Al-Gaaf)
-* mon: add erasure profiles and improve erasure pool creation (Loic Dachary)
-* mon: 'ceph osd pg-temp ...' and primary-temp commands (Ilya Dryomov)
-* mon: fix pool count in 'ceph -s' output (Sage Weil)
-* msgr: improve connection error detection between clients and monitors (Greg Farnum, Sage Weil)
-* osd: add/fix CPU feature detection for jerasure (Loic Dachary)
-* osd: improved scrub checks on clones (Sage Weil, Sam Just)
-* osd: many erasure fixes (Sam Just)
-* osd: move to jerasure2 library (Loic Dachary)
-* osd: new tests for erasure pools (David Zafman)
-* osd: reduce scrub lock contention (Guang Yang)
-* rgw: allow use of an erasure data pool (Yehuda Sadeh)
-
-
-v0.78
-=====
-
-This development release includes two key features: erasure coding and
-cache tiering. A huge amount of code was merged for this release and
-several additional weeks were spent stabilizing the code base, and it
-is now in a state where it is ready to be tested by a broader user
-base.
-
-This is *not* the firefly release. Firefly will be delayed for at
-least another sprint so that we can get some operational experience
-with the new code and do some additional testing before committing to
-long term support.
-
-.. note:: Please note that while it is possible to create and test
- erasure coded pools in this release, the pools will not be
- usable when you upgrade to v0.79 as the OSDMap encoding will
- subtlely change. Please do not populate your test pools
- with important data that can't be reloaded.
-
-Upgrading
----------
-
-* Upgrade daemons in the following order:
-
- #. Monitors
- #. OSDs
- #. MDSs and/or radosgw
-
- If the ceph-mds daemon is restarted first, it will wait until all
- OSDs have been upgraded before finishing its startup sequence. If
- the ceph-mon daemons are not restarted prior to the ceph-osd
- daemons, they will not correctly register their new capabilities
- with the cluster and new features may not be usable until they are
- restarted a second time.
-
-* Upgrade radosgw daemons together. There is a subtle change in behavior
- for multipart uploads that prevents a multipart request that was initiated
- with a new radosgw from being completed by an old radosgw.
-
-* CephFS recently added support for a new 'backtrace' attribute on
- file data objects that is used for lookup by inode number (i.e., NFS
- reexport and hard links), and will later be used by fsck repair.
- This replaces the existing anchor table mechanism that is used for
- hard link resolution. In order to completely phase that out, any
- inode that has an outdated backtrace attribute will get updated when
- the inode itself is modified. This will result in some extra workload
- after a legacy CephFS file system is upgraded.
-
-* The per-op return code in librados' ObjectWriteOperation interface
- is now filled in.
-
-* The librados cmpxattr operation now handles xattrs containing null bytes as
- data rather than null-terminated strings.
-
-* Compound operations in librados that create and then delete the same object
- are now explicitly disallowed (they fail with -EINVAL).
-
-* The default leveldb cache size for the ceph-osd daemon has been
- increased from 4 MB to 128 MB. This will increase the memory
- footprint of that process but tends to increase performance of omap
- (key/value) objects (used for CephFS and the radosgw). If memory in your
- deployment is tight, you can preserve the old behavio by adding::
-
- leveldb write buffer size = 0
- leveldb cache size = 0
-
- to your ceph.conf to get back the (leveldb) defaults.
-
-Notable Changes
----------------
-* ceph-brag: new client and server tools (Sebastien Han, Babu Shanmugam)
-* ceph-disk: use partx on RHEL or CentOS instead of partprobe (Alfredo Deza)
-* ceph: fix combination of 'tell' and interactive mode (Joao Eduardo Luis)
-* ceph-fuse: fix bugs with inline data and multiple MDSs (Zheng Yan)
-* client: fix getcwd() to use new LOOKUPPARENT operation (Zheng Yan)
-* common: fall back to json-pretty for admin socket (Loic Dachary)
-* common: fix 'config dump' debug prefix (Danny Al-Gaaf)
-* common: misc coverity fixes (Danny Al-Gaaf)
-* common: throtller, shared_cache performance improvements, TrackedOp (Greg Farnum, Samuel Just)
-* crush: fix JSON schema for dump (John Spray)
-* crush: misc cleanups, tests (Loic Dachary)
-* crush: new vary_r tunable (Sage Weil)
-* crush: prevent invalid buckets of type 0 (Sage Weil)
-* keyvaluestore: add perfcounters, misc bug fixes (Haomai Wang)
-* keyvaluestore: portability improvements (Noah Watkins)
-* libcephfs: API changes to better support NFS reexport via Ganesha (Matt Benjamin, Adam Emerson, Andrey Kuznetsov, Casey Bodley, David Zafman)
-* librados: API documentation improvements (John Wilkins, Josh Durgin)
-* librados: fix object enumeration bugs; allow iterator assignment (Josh Durgin)
-* librados: streamline tests (Josh Durgin)
-* librados: support for atomic read and omap operations for C API (Josh Durgin)
-* librados: support for osd and mon command timeouts (Josh Durgin)
-* librbd: pass allocation hints to OSD (Ilya Dryomov)
-* logrotate: fix bug that prevented rotation for some daemons (Loic Dachary)
-* mds: avoid duplicated discovers during recovery (Zheng Yan)
-* mds: fix file lock owner checks (Zheng Yan)
-* mds: fix LOOKUPPARENT, new LOOKUPNAME ops for reliable NFS reexport (Zheng Yan)
-* mds: fix xattr handling on setxattr (Zheng Yan)
-* mds: fix xattrs in getattr replies (Sage Weil)
-* mds: force backtrace updates for old inodes on update (Zheng Yan)
-* mds: several multi-mds and dirfrag bug fixes (Zheng Yan)
-* mon: encode erasure stripe width in pool metadata (Loic Dachary)
-* mon: erasure code crush rule creation (Loic Dachary)
-* mon: erasure code plugin support (Loic Dachary)
-* mon: fix bugs in initial post-mkfs quorum creation (Sage Weil)
-* mon: fix error output to terminal during startup (Joao Eduardo Luis)
-* mon: fix legacy CRUSH tunables warning (Sage Weil)
-* mon: fix osd_epochs lower bound tracking for map trimming (Sage Weil)
-* mon: fix OSDMap encoding features (Sage Weil, Aaron Ten Clay)
-* mon: fix 'pg dump' JSON output (John Spray)
-* mon: include dirty stats in 'ceph df detail' (Sage Weil)
-* mon: list quorum member names in quorum order (Sage Weil)
-* mon: prevent addition of non-empty cache tier (Sage Weil)
-* mon: prevent deletion of CephFS pools (John Spray)
-* mon: warn when cache tier approaches 'full' (Sage Weil)
-* osd: allocation hint, with XFS support (Ilya Dryomov)
-* osd: erasure coded pool support (Samuel Just)
-* osd: fix bug causing slow/stalled recovery (#7706) (Samuel Just)
-* osd: fix bugs in log merging (Samuel Just)
-* osd: fix/clarify end-of-object handling on read (Loic Dachary)
-* osd: fix impolite mon session backoff, reconnect behavior (Greg Farnum)
-* osd: fix SnapContext cache id bug (Samuel Just)
-* osd: increase default leveldb cache size and write buffer (Sage Weil, Dmitry Smirnov)
-* osd: limit size of 'osd bench ...' arguments (Joao Eduardo Luis)
-* osdmaptool: new --test-map-pgs mode (Sage Weil, Ilya Dryomov)
-* osd, mon: add primary-affinity to adjust selection of primaries (Sage Weil)
-* osd: new 'status' admin socket command (Sage Weil)
-* osd: simple tiering agent (Sage Weil)
-* osd: store checksums for erasure coded object stripes (Samuel Just)
-* osd: tests for objectstore backends (Haomai Wang)
-* osd: various refactoring and bug fixes (Samuel Just, David Zafman)
-* rados: add 'set-alloc-hint' command (Ilya Dryomov)
-* rbd-fuse: fix enumerate_images overflow, memory leak (Ilya Dryomov)
-* rbdmap: fix upstart script (Stephan Renatus)
-* rgw: avoid logging system events to usage log (Yehuda Sadeh)
-* rgw: fix Swift range reponse (Yehuda Sadeh)
-* rgw: improve scalability for manifest objects (Yehuda Sadeh)
-* rgw: misc fixes for multipart objects, policies (Yehuda Sadeh)
-* rgw: support non-standard MultipartUpload command (Yehuda Sadeh)
-
-
-
-v0.77
-=====
-
-This is the final development release before the Firefly feature
-freeze. The main items in this release include some additional
-refactoring work in the OSD IO path (include some locking
-improvements), per-user quotas for the radosgw, a switch to civetweb
-from mongoose for the prototype radosgw standalone mode, and a
-prototype leveldb-based backend for the OSD. The C librados API also
-got support for atomic write operations (read side transactions will
-appear in v0.78).
-
-Upgrading
----------
-
-* The 'ceph -s' or 'ceph status' command's 'num_in_osds' field in the
- JSON and XML output has been changed from a string to an int.
-
-* The recently added 'ceph mds set allow_new_snaps' command's syntax
- has changed slightly; it is now 'ceph mds set allow_new_snaps true'.
- The 'unset' command has been removed; instead, set the value to
- 'false'.
-
-* The syntax for allowing snapshots is now 'mds set allow_new_snaps
- <true|false>' instead of 'mds <set,unset> allow_new_snaps'.
-
-Notable Changes
----------------
-
-* osd: client IO path changes for EC (Samuel Just)
-* common: portability changes to support libc++ (Noah Watkins)
-* common: switch to unordered_map from hash_map (Noah Watkins)
-* rgw: switch from mongoose to civetweb (Yehuda Sadeh)
-* osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum)
-* doc: many many updates (John Wilkins)
-* rgw: user quotas (Yehuda Sadeh)
-* mon: persist quorum features to disk (Greg Farnum)
-* mon: MForward tests (Loic Dachary)
-* mds: inline data support (Li Wang, Yunchuan Wen)
-* rgw: fix many-part multipart uploads (Yehuda Sadeh)
-* osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang)
-* rbd: prevent deletion of images with watchers (Ilya Dryomov)
-* osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil)
-* mailmap: affiliation updates (Loic Dachary)
-* osd: new OSDMap encoding (Greg Farnum)
-* osd: generalize scrubbing infrastructure to allow EC (David Zafman)
-* rgw: several doc fixes (Alexandre Marangone)
-* librados: add C API coverage for atomic write operations (Christian Marie)
-* rgw: improve swift temp URL support (Yehuda Sadeh)
-* rest-api: do not fail when no OSDs yet exist (Dan Mick)
-* common: check preexisting admin socket for active daemon before removing (Loic Dachary)
-* osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil)
-* mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil)
-* rgw: make multi-object delete idempotent (Yehuda Sadeh)
-* crush: fix off-by-one error in recent refactor (Sage Weil)
-* rgw: fix read_user_buckets 'max' behavior (Yehuda Sadeh)
-* mon: change mds allow_new_snaps syntax to be more consistent (Sage Weil)
-
-
-v0.76
-=====
-
-This release includes another batch of updates for firefly
-functionality. Most notably, the cache pool infrastructure now
-support snapshots, the OSD backfill functionality has been generalized
-to include multiple targets (necessary for the coming erasure pools),
-and there were performance improvements to the erasure code plugin on
-capable processors. The MDS now properly utilizes (and seamlessly
-migrates to) the OSD key/value interface (aka omap) for storing directory
-objects. There continue to be many other fixes and improvements for
-usability and code portability across the tree.
-
-Upgrading
----------
-
-* 'rbd ls' on a pool which never held rbd images now exits with code
- 0. It outputs nothing in plain format, or an empty list in
- non-plain format. This is consistent with the behavior for a pool
- which used to hold images, but contains none. Scripts relying on
- this behavior should be updated.
-
-* The MDS requires a new OSD operation TMAP2OMAP, added in this release. When
- upgrading, be sure to upgrade and restart the ceph-osd daemons before the
- ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support
- the new feature.
-
-* The 'ceph mds set_max_mds N' command is now deprecated in favor of
- 'ceph mds set max_mds N'.
-
-Notable Changes
----------------
-
-* build: misc improvements (Ken Dreyer)
-* ceph-disk: generalize path names, add tests (Loic Dachary)
-* ceph-disk: misc improvements for puppet (Loic Dachary)
-* ceph-disk: several bug fixes (Loic Dachary)
-* ceph-fuse: fix race for sync reads (Sage Weil)
-* config: recursive metavariable expansion (Loic Dachary)
-* crush: usability and test improvements (Loic Dachary)
-* doc: misc fixes (David Moreau Simard, Kun Huang)
-* erasure-code: improve buffer alignment (Loic Dachary)
-* erasure-code: rewrite region-xor using vector operations (Andreas Peters)
-* librados, osd: new TMAP2OMAP operation (Yan, Zheng)
-* mailmap updates (Loic Dachary)
-* many portability improvements (Noah Watkins)
-* many unit test improvements (Loic Dachary)
-* mds: always store backtrace in default pool (Yan, Zheng)
-* mds: store directories in omap instead of tmap (Yan, Zheng)
-* mon: allow adjustment of cephfs max file size via 'ceph mds set max_file_size' (Sage Weil)
-* mon: do not create erasure rules by default (Sage Weil)
-* mon: do not generate spurious MDSMaps in certain cases (Sage Weil)
-* mon: do not use keyring if auth = none (Loic Dachary)
-* mon: fix pg_temp leaks (Joao Eduardo Luis)
-* osd: backfill to multiple targets (David Zafman)
-* osd: cache pool support for snapshots (Sage Weil)
-* osd: fix and cleanup misc backfill issues (David Zafman)
-* osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng)
-* osd: ignore num_objects_dirty on scrub for old pools (Sage Weil)
-* osd: include more info in pg query result (Sage Weil)
-* osd: track erasure compatibility (David Zafman)
-* rbd: make 'rbd list' return empty list and success on empty pool (Josh Durgin)
-* rgw: fix object placement read op (Yehuda Sadeh)
-* rgw: fix several CORS bugs (Robin H. Johnson)
-* specfile: fix RPM build on RHEL6 (Ken Dreyer, Derek Yarnell)
-* specfile: ship libdir/ceph (Key Dreyer)
-
-
-v0.75
-=====
-
-This is a big release, with lots of infrastructure going in for
-firefly. The big items include a prototype standalone frontend for
-radosgw (which does not require apache or fastcgi), tracking for read
-activity on the osds (to inform tiering decisions), preliminary cache
-pool support (no snapshots yet), and lots of bug fixes and other work
-across the tree to get ready for the next batch of erasure coding
-patches.
-
-For comparison, here are the diff stats for the last few versions::
-
- v0.75 291 files changed, 82713 insertions(+), 33495 deletions(-)
- v0.74 192 files changed, 17980 insertions(+), 1062 deletions(-)
- v0.73 148 files changed, 4464 insertions(+), 2129 deletions(-)
-
-Upgrading
----------
-
-- The 'osd pool create ...' syntax has changed for erasure pools.
-
-- The default CRUSH rules and layouts are now using the latest and
- greatest tunables and defaults. Clusters using the old values will
- now present with a health WARN state. This can be disabled by
- adding 'mon warn on legacy crush tunables = false' to ceph.conf.
-
-
-Notable Changes
----------------
-
-* common: bloom filter improvements (Sage Weil)
-* common: fix config variable substitution (Loic Dachary)
-* crush, osd: s/rep/replicated/ for less confusion (Loic Dachary)
-* crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil)
-* librados: fix throttle leak (and eventual deadlock) (Josh Durgin)
-* librados: read directly into user buffer (Rutger ter Borg)
-* librbd: fix use-after-free aio completion bug #5426 (Josh Durgin)
-* librbd: localize/distribute parent reads (Sage Weil)
-* mds: fix Resetter locking (Alexandre Oliva)
-* mds: fix cap migration behavior (Yan, Zheng)
-* mds: fix client session flushing (Yan, Zheng)
-* mds: fix many many multi-mds bugs (Yan, Zheng)
-* misc portability work (Noah Watkins)
-* mon, osd: create erasure style crush rules (Loic Dachary, Sage Weil)
-* mon: 'osd crush show-tunables' (Sage Weil)
-* mon: clean up initial crush rule creation (Loic Dachary)
-* mon: improve (replicate or erasure) pool creation UX (Loic Dachary)
-* mon: infrastructure to handle mixed-version mon cluster and cli/rest API (Greg Farnum)
-* mon: mkfs now idempotent (Loic Dachary)
-* mon: only seed new osdmaps to current OSDs (Sage Weil)
-* mon: track osd features in OSDMap (Joao Luis, David Zafman)
-* mon: warn if crush has non-optimal tunables (Sage Weil)
-* mount.ceph: add -n for autofs support (Steve Stock)
-* msgr: fix messenger restart race (Xihui He)
-* osd, librados: fix full cluster handling (Josh Durgin)
-* osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum)
-* osd: backfill to osds not in acting set (David Zafman)
-* osd: enable new hashpspool layout by default (Sage Weil)
-* osd: erasure plugin benchmarking tool (Loic Dachary)
-* osd: fix XFS detection (Greg Farnum, Sushma Gurram)
-* osd: fix copy-get omap bug (Sage Weil)
-* osd: fix linux kernel version detection (Ilya Dryomov)
-* osd: fix memstore segv (Haomai Wang)
-* osd: fix several bugs with tier infrastructure
-* osd: fix throttle thread (Haomai Wang)
-* osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil)
-* rados tool: fix listomapvals (Josh Durgin)
-* rados: add 'crush location', smart replica selection/balancing (Sage Weil)
-* rados: some performance optimizations (Yehuda Sadeh)
-* rbd: add rbdmap support for upstart (Laurent Barbe)
-* rbd: expose kernel rbd client options via 'rbd map' (Ilya Dryomov)
-* rbd: fix bench-write command (Hoamai Wang)
-* rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov)
-* rgw: allow multiple frontends (Yehuda Sadeh)
-* rgw: convert bucket info to new format on demand (Yehuda Sadeh)
-* rgw: fix misc CORS bugs (Robin H. Johnson)
-* rgw: prototype mongoose frontend (Yehuda Sadeh)
-
-
-
-v0.74
-=====
-
-This release includes a few substantial pieces for Firefly, including
-a long-overdue switch to 3x replication by default and a switch to the
-"new" CRUSH tunables by default (supported since bobtail). There is
-also a fix for a long-standing radosgw bug (stalled GET) that has
-already been backported to emperor and dumpling.
-
-Upgrading
----------
-
-* We now default to the 'bobtail' CRUSH tunable values that are first supported
- by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you
- plan to access a newly created Ceph cluster with an older kernel client, you
- should use 'ceph osd crush tunables legacy' to switch back to the legacy
- behavior. Note that making that change will likely result in some data
- movement in the system, so adjust the setting before populating the new
- cluster with data.
-
-* We now set the HASHPSPOOL flag on newly created pools (and new
- clusters) by default. Support for this flag first appeared in
- v0.64; v0.67 Dumpling is the first major release that supports it.
- It is first supported by the Linux kernel version v3.9. If you plan
- to access a newly created Ceph cluster with an older kernel or
- clients (e.g, librados, librbd) from a pre-dumpling Ceph release,
- you should add 'osd pool default flag hashpspool = false' to the
- '[global]' section of your 'ceph.conf' prior to creating your
- monitors (e.g., after 'ceph-deploy new' but before 'ceph-deploy mon
- create ...').
-
-* The configuration option 'osd pool default crush rule' is deprecated
- and replaced with 'osd pool default crush replicated ruleset'. 'osd
- pool default crush rule' takes precedence for backward compatibility
- and a deprecation warning is displayed when it is used.
-
-Notable Changes
----------------
-
-* buffer: some zero-copy groundwork (Josh Durgin)
-* ceph-disk: avoid fd0 (Loic Dachary)
-* crush: default to bobtail tunables (Sage Weil)
-* crush: many additional tests (Loic Dachary)
-* crush: misc fixes, cleanups (Loic Dachary)
-* crush: new rule steps to adjust retry attempts (Sage Weil)
-* debian: integrate misc fixes from downstream packaging (James Page)
-* doc: big update to install docs (John Wilkins)
-* libcephfs: fix resource leak (Zheng Yan)
-* misc coverity fixes (Xing Lin, Li Wang, Danny Al-Gaaf)
-* misc portability fixes (Noah Watkins, Alan Somers)
-* mon, osd: new 'erasure' pool type (still not fully supported)
-* mon: add 'mon getmap EPOCH' (Joao Eduardo Luis)
-* mon: collect misc metadata about osd (os, kernel, etc.), new 'osd metadata' command (Sage Weil)
-* osd: default to 3x replication
-* osd: do not include backfill targets in acting set (David Zafman)
-* osd: new 'chassis' type in default crush hierarchy (Sage Weil)
-* osd: requery unfound on stray notify (#6909) (Samuel Just)
-* osd: some PGBackend infrastructure (Samuel Just)
-* osd: support for new 'memstore' (memory-backed) backend (Sage Weil)
-* rgw: fix fastcgi deadlock (do not return data from librados callback) (Yehuda Sadeh)
-* rgw: fix reading bucket policy (#6940)
-* rgw: fix use-after-free when releasing completion handle (Yehuda Sadeh)
-
-
-v0.73
-=====
-
-This release, the first development release after emperor, includes
-many bug fixes and a few additional pieces of functionality. The
-first batch of larger changes will be landing in the next version,
-v0.74.
-
-Upgrading
----------
-
-- As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now
- receives <arg> as an integer instead of a string. This affects how
- 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now
- must be '0' or '1'.
-
-- The behavior of the CRUSH 'indep' choose mode has been changed. No
- ceph cluster should have been using this behavior unless someone has
- manually extracted a crush map, modified a CRUSH rule to replace
- 'firstn' with 'indep', recompiled, and reinjected the new map into
- the cluster. If the 'indep' mode is currently in use on a cluster,
- the rule should be modified to use 'firstn' instead, and the
- administrator should wait until any data movement completes before
- upgrading.
-
-- The 'osd dump' command now dumps pool snaps as an array instead of an
- object.
-
-- The radosgw init script (sysvinit) how requires that the 'host = ...' line in
- ceph.conf, if present, match the short hostname (the output of 'hostname -s'),
- not the fully qualified hostname or the (occasionally non-short) output of
- 'hostname'. Failure to adjust this when upgrading from emperor or dumpling
- may prevent the radosgw daemon from starting.
-
-
-Notable Changes
----------------
-
-* ceph-crush-location: new hook for setting CRUSH location of osd daemons on start
-* ceph-kvstore-tool: expanded command set and capabilities (Joao Eduardo Luis)
-* ceph.spec: fix build dependency (Loic Dachary)
-* common: fix aligned buffer allocation (Loic Dachary)
-* doc: many many install doc improvements (John Wilkins)
-* mds: fix readdir end check (Zheng Yan)
-* mds: update old-format backtraces opportunistically (Zheng Yan)
-* misc cleanups from coverity (Xing Lin)
-* misc portability fixes (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun)
-* mon: 'osd dump' dumps pool snaps as array, not object (Dan Mick)
-* mon: allow debug quorum_{enter,exit} commands via admin socket
-* mon: prevent extreme changes in pool pg_num (Greg Farnum)
-* mon: take 'osd pool set ...' value as an int, not string (Joao Eduardo Luis)
-* mon: trim MDSMaps (Joao Eduardo Luis)
-* osd: fix object_info_t encoding bug from emperor (Sam Just)
-* rbd: add 'rbdmap' init script for mapping rbd images on book (Adam Twardowski)
-* rgw: add 'status' command to sysvinit script (David Moreau Simard)
-* rgw: fix error setting empty owner on ACLs (Yehuda Sadeh)
-* rgw: optionally defer to bucket ACLs instead of object ACLs (Liam Monahan)
-* rgw: support for password (instead of admin token) for keystone authentication (Christophe Courtaut)
-* sysvinit, upstart: prevent both init systems from starting the same daemons (Josh Durgin)
-
-v0.72.3 Emperor (pending release)
-=================================
-
-Upgrading
----------
-
-* Monitor 'auth' read-only commands now expect the user to have 'rx' caps.
- This is the same behavior that was present in dumpling, but in emperor
- and more recent development releases the 'r' cap was sufficient. Note that
- this backported security fix will break mon keys that are using the following
- commands but do not have the 'x' bit in the mon capability::
-
- ceph auth export
- ceph auth get
- ceph auth get-key
- ceph auth print-key
- ceph auth list
-
-
-v0.72.2 Emperor
-===============
-
-This is the second bugfix release for the v0.72.x Emperor series. We
-have fixed a hang in radosgw, and fixed (again) a problem with monitor
-CLI compatiblity with mixed version monitors. (In the future this
-will no longer be a problem.)
-
-Upgrading
----------
-
-* The JSON schema for the 'osd pool set ...' command changed slightly. Please
- avoid issuing this particular command via the CLI while there is a mix of
- v0.72.1 and v0.72.2 monitor daemons running.
-
-* As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now
- receives <arg> as an integer instead of a string. This affects how
- 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now
- must be '0' or '1'.
-
-
-Changes
--------
-
-* mon: 'osd pool set ...' syntax change
-* osd: added test for missing on-disk HEAD object
-* osd: fix osd bench block size argument
-* rgw: fix hang on large object GET
-* rgw: fix rare use-after-free
-* rgw: various DR bug fixes
-* rgw: do not return error on empty owner when setting ACL
-* sysvinit, upstart: prevent starting daemons using both init systems
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.72.2.txt>`.
-
-v0.72.1 Emperor
-===============
-
-Important Note
---------------
-
-When you are upgrading from Dumpling to Emperor, do not run any of the
-"ceph osd pool set" commands while your monitors are running separate versions.
-Doing so could result in inadvertently changing cluster configuration settings
-that exhaust compute resources in your OSDs.
-
-Changes
--------
-
-* osd: fix upgrade bug #6761
-* ceph_filestore_tool: introduced tool to repair errors caused by #6761
-
-This release addresses issue #6761. Upgrading to Emperor can cause
-reads to begin returning ENFILE (too many open files). v0.72.1 fixes
-that upgrade issue and adds a tool ceph_filestore_tool to repair osd
-stores affected by this bug.
-
-To repair a cluster affected by this bug:
-
-#. Upgrade all osd machines to v0.72.1
-#. Install the ceph-test package on each osd machine to get ceph_filestore_tool
-#. Stop all osd processes
-#. To see all lost objects, run the following on each osd with the osd stopped and
- the osd data directory mounted::
-
- ceph_filestore_tool --list-lost-objects=true --filestore-path=<path-to-osd-filestore> --journal-path=<path-to-osd-journal>
-
-#. To fix all lost objects, run the following on each osd with the
- osd stopped and the osd data directory mounted::
-
- ceph_filestore_tool --fix-lost-objects=true --list-lost-objects=true --filestore-path=<path-to-osd-filestore> --journal-path=<path-to-osd-journal>
-
-#. Once lost objects have been repaired on each osd, you can restart
- the cluster.
-
-Note, the ceph_filestore_tool performs a scan of all objects on the
-osd and may take some time.
-
-
-v0.72 Emperor
-=============
-
-This is the fifth major release of Ceph, the fourth since adopting a
-3-month development cycle. This release brings several new features,
-including multi-datacenter replication for the radosgw, improved
-usability, and lands a lot of incremental performance and internal
-refactoring work to support upcoming features in Firefly.
-
-Important Note
---------------
-
-When you are upgrading from Dumpling to Emperor, do not run any of the
-"ceph osd pool set" commands while your monitors are running separate versions.
-Doing so could result in inadvertently changing cluster configuration settings
-that exhaust compute resources in your OSDs.
-
-Highlights
-----------
-
-* common: improved crc32c performance
-* librados: new example client and class code
-* mds: many bug fixes and stability improvements
-* mon: health warnings when pool pg_num values are not reasonable
-* mon: per-pool performance stats
-* osd, librados: new object copy primitives
-* osd: improved interaction with backend file system to reduce latency
-* osd: much internal refactoring to support ongoing erasure coding and tiering support
-* rgw: bucket quotas
-* rgw: improved CORS support
-* rgw: performance improvements
-* rgw: validate S3 tokens against Keystone
-
-Coincident with core Ceph, the Emperor release also brings:
-
-* radosgw-agent: support for multi-datacenter replication for disaster recovery
-* tgt: improved support for iSCSI via upstream tgt
-
-Packages for both are available on ceph.com.
-
-Upgrade sequencing
-------------------
-
-There are no specific upgrade restrictions on the order or sequence of
-upgrading from 0.67.x Dumpling. However, you cannot run any of the
-"ceph osd pool set" commands while your monitors are running separate versions.
-Doing so could result in inadvertently changing cluster configuration settings
-and exhausting compute resources in your OSDs.
-
-It is also possible to do a rolling upgrade from 0.61.x Cuttlefish,
-but there are ordering restrictions. (This is the same set of
-restrictions for Cuttlefish to Dumpling.)
-
-#. Upgrade ceph-common on all nodes that will use the command line 'ceph' utility.
-#. Upgrade all monitors (upgrade ceph package, restart ceph-mon
- daemons). This can happen one daemon or host at a time. Note that
- because cuttlefish and dumpling monitors can't talk to each other,
- all monitors should be upgraded in relatively short succession to
- minimize the risk that an a untimely failure will reduce
- availability.
-#. Upgrade all osds (upgrade ceph package, restart ceph-osd daemons).
- This can happen one daemon or host at a time.
-#. Upgrade radosgw (upgrade radosgw package, restart radosgw daemons).
-
-
-Upgrading from v0.71
---------------------
-
-* ceph-fuse and radosgw now use the same default values for the admin
- socket and log file paths that the other daemons (ceph-osd,
- ceph-mon, etc.) do. If you run these daemons as non-root, you may
- need to adjust your ceph.conf to disable these options or to adjust
- the permissions on /var/run/ceph and /var/log/ceph.
-
-Upgrading from v0.67 Dumpling
------------------------------
-
-* ceph-fuse and radosgw now use the same default values for the admin
- socket and log file paths that the other daemons (ceph-osd,
- ceph-mon, etc.) do. If you run these daemons as non-root, you may
- need to adjust your ceph.conf to disable these options or to adjust
- the permissions on /var/run/ceph and /var/log/ceph.
-
-* The MDS now disallows snapshots by default as they are not
- considered stable. The command 'ceph mds set allow_snaps' will
- enable them.
-
-* For clusters that were created before v0.44 (pre-argonaut, Spring
- 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP
- objects has been disabled. Before upgrading, make sure that any
- buckets created on pre-argonaut releases have been modified (e.g.,
- by PUTing and then DELETEing an object from each bucket). Any
- cluster created with argonaut (v0.48) or a later release or not
- using radosgw never relied on the automatic conversion and is not
- affected by this change.
-
-* Any direct users of the 'tmap' portion of the librados API should be
- aware that the automatic tmap -> omap conversion functionality has
- been removed.
-
-* Most output that used K or KB (e.g., for kilobyte) now uses a
- lower-case k to match the official SI convention. Any scripts that
- parse output and check for an upper-case K will need to be modified.
-
-* librados::Rados::pool_create_async() and librados::Rados::pool_delete_async()
- don't drop a reference to the completion object on error, caller needs to take
- care of that. This has never really worked correctly and we were leaking an
- object
-
-* 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the
- specified location, as that's a job for 'ceph osd crush add'. It will
- however continue to work just the same as long as the osd already exists
- in the crush map.
-
-* The OSD now enforces that class write methods cannot both mutate an
- object and return data. The rbd.assign_bid method, the lone
- offender, has been removed. This breaks compatibility with
- pre-bobtail librbd clients by preventing them from creating new
- images.
-
-* librados now returns on commit instead of ack for synchronous calls.
- This is a bit safer in the case where both OSDs and the client crash, and
- is probably how it should have been acting from the beginning. Users are
- unlikely to notice but it could result in lower performance in some
- circumstances. Those who care should switch to using the async interfaces,
- which let you specify safety semantics precisely.
-
-* The C++ librados AioComplete::get_version() method was incorrectly
- returning an int (usually 32-bits). To avoid breaking library
- compatibility, a get_version64() method is added that returns the
- full-width value. The old method is deprecated and will be removed
- in a future release. Users of the C++ librados API that make use of
- the get_version() method should modify their code to avoid getting a
- value that is truncated from 64 to to 32 bits.
-
-
-Notable Changes since v0.71
----------------------------
-
-* build: fix [/usr]/sbin locations (Alan Somers)
-* ceph-fuse, radosgw: enable admin socket and logging by default
-* ceph: make -h behave when monitors are down
-* common: cache crc32c values where possible
-* common: fix looping on BSD (Alan Somers)
-* librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis)
-* librbd python bindings: fix parent image name limit (Josh Durgin)
-* mds: avoid leaking objects when deleting truncated files (Yan, Zheng)
-* mds: fix F_GETLK (Yan, Zheng)
-* mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng)
-* mds: fix many directory fragmentation bugs (Yan, Zheng)
-* mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis)
-* mon: make 'osd pool rename' idempotent (Joao Luis)
-* osd: COPY_GET on-wire encoding improvements (Greg Farnum)
-* osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil)
-* osd: fix handling of racing read vs write (Samuel Just)
-* osd: reduce blocking on backing fs (Samuel Just)
-* radosgw-agent: multi-region replication/DR
-* rgw: fix/improve swift COPY support (Yehuda Sadeh)
-* rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh)
-* rgw: per-bucket quota (Yehuda Sadeh)
-* rpm: fix junit dependencies (Alan Grosskurth)
-
-Notable Changes since v0.67 Dumpling
-------------------------------------
-
-* build cleanly under clang (Christophe Courtaut)
-* build: Makefile refactor (Roald J. van Loon)
-* build: fix [/usr]/sbin locations (Alan Somers)
-* ceph-disk: fix journal preallocation
-* ceph-fuse, radosgw: enable admin socket and logging by default
-* ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng)
-* ceph-fuse: trim deleted inodes from cache (Yan, Zheng)
-* ceph-fuse: use newer fuse api (Jianpeng Ma)
-* ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis)
-* ceph-post-file: new command to easily share logs or other files with ceph devs
-* ceph: improve parsing of CEPH_ARGS (Benoit Knecht)
-* ceph: make -h behave when monitors are down
-* ceph: parse CEPH_ARGS env variable
-* common: bloom_filter improvements, cleanups
-* common: cache crc32c values where possible
-* common: correct SI is kB not KB (Dan Mick)
-* common: fix looping on BSD (Alan Somers)
-* common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary)
-* common: misc portability fixes (Noah Watkins)
-* crc32c: fix optimized crc32c code (it now detects arch support properly)
-* crc32c: improved intel-optimized crc32c support (~8x faster on my laptop!)
-* crush: fix name caching
-* doc: erasure coding design notes (Loic Dachary)
-* hadoop: removed old version of shim to avoid confusing users (Noah Watkins)
-* librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis)
-* librados: fix async aio completion wakeup
-* librados: fix installed header #includes (Dan Mick)
-* librados: get_version64() method for C++ API
-* librados: hello_world example (Greg Farnum)
-* librados: sync calls now return on commit (instead of ack) (Greg Farnum)
-* librbd python bindings: fix parent image name limit (Josh Durgin)
-* librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls
-* mds: avoid leaking objects when deleting truncated files (Yan, Zheng)
-* mds: fix F_GETLK (Yan, Zheng)
-* mds: fix LOOKUPSNAP bug
-* mds: fix heap profiler commands (Joao Luis)
-* mds: fix locking deadlock (David Disseldorp)
-* mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng)
-* mds: fix many directory fragmentation bugs (Yan, Zheng)
-* mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva)
-* mds: fix rare restart/failure race during fs creation
-* mds: fix standby-replay when we fall behind (Yan, Zheng)
-* mds: fix stray directory purging (Yan, Zheng)
-* mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng)
-* mds: several bug fixes with clustered mds (Yan, Zheng)
-* mon, osd: improve osdmap trimming logic (Samuel Just)
-* mon, osd: initial CLI for configuring tiering
-* mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis)
-* mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis)
-* mon: allow cap strings with . to be unquoted
-* mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted
-* mon: avoid rewriting full osdmaps on restart (Joao Luis)
-* mon: continue to discover peer addr info during election phase
-* mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum)
-* mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis)
-* mon: fix 'ceph osd crush reweight ...' (Joao Luis)
-* mon: fix 'osd crush move ...' command for buckets (Joao Luis)
-* mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis)
-* mon: fix paxos corner case
-* mon: kv properties for pools to support EC (Loic Dachary)
-* mon: make 'osd pool rename' idempotent (Joao Luis)
-* mon: modify 'auth add' semantics to make a bit more sense (Joao Luis)
-* mon: new 'osd perf' command to dump recent performance information (Samuel Just)
-* mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read)
-* mon: some auth check cleanups (Joao Luis)
-* mon: track per-pool stats (Joao Luis)
-* mon: warn about pools with bad pg_num
-* mon: warn when mon data stores grow very large (Joao Luis)
-* monc: fix small memory leak
-* new wireshark patches pulled into the tree (Kevin Jones)
-* objecter, librados: redirect requests based on cache tier config
-* objecter: fix possible hang when cluster is unpaused (Josh Durgin)
-* osd, librados: add new COPY_FROM rados operation
-* osd, librados: add new COPY_GET rados operations (used by COPY_FROM)
-* osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just)
-* osd: COPY_GET on-wire encoding improvements (Greg Farnum)
-* osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%)
-* osd: add option to disable pg log debug code (which burns CPU)
-* osd: allow cap strings with . to be unquoted
-* osd: automatically detect proper xattr limits (David Zafman)
-* osd: avoid extra copy in erasure coding reference implementation (Loic Dachary)
-* osd: basic cache pool redirects (Greg Farnum)
-* osd: basic whiteout, dirty flag support (not yet used)
-* osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil)
-* osd: clean up and generalize copy-from code (Greg Farnum)
-* osd: cls_hello OSD class example
-* osd: erasure coding doc updates (Loic Dachary)
-* osd: erasure coding plugin infrastructure, tests (Loic Dachary)
-* osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng)
-* osd: fix RWORDER flags
-* osd: fix exponential backoff of slow request warnings (Loic Dachary)
-* osd: fix handling of racing read vs write (Samuel Just)
-* osd: fix version value returned by various operations (Greg Farnum)
-* osd: generalized temp object infrastructure
-* osd: ghobject_t infrastructure for EC (David Zafman)
-* osd: improvements for compatset support and storage (David Zafman)
-* osd: infrastructure to copy objects from other OSDs
-* osd: instrument peering states (David Zafman)
-* osd: misc copy-from improvements
-* osd: opportunistic crc checking on stored data (off by default)
-* osd: properly enforce RD/WR flags for rados classes
-* osd: reduce blocking on backing fs (Samuel Just)
-* osd: refactor recovery using PGBackend (Samuel Just)
-* osd: remove old magical tmap->omap conversion
-* osd: remove old pg log on upgrade (Samuel Just)
-* osd: revert xattr size limit (fixes large rgw uploads)
-* osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just)
-* pybind: fix blacklisting nonce (Loic Dachary)
-* radosgw-agent: multi-region replication/DR
-* rgw: complete in-progress requests before shutting down
-* rgw: default log level is now more reasonable (Yehuda Sadeh)
-* rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh)
-* rgw: fix a few minor memory leaks (Yehuda Sadeh)
-* rgw: fix acl group check (Yehuda Sadeh)
-* rgw: fix inefficient use of std::list::size() (Yehuda Sadeh)
-* rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson)
-* rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh)
-* rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh)
-* rgw: fix various CORS bugs (Yehuda Sadeh)
-* rgw: fix/improve swift COPY support (Yehuda Sadeh)
-* rgw: improve help output (Christophe Courtaut)
-* rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh)
-* rgw: per-bucket quota (Yehuda Sadeh)
-* rgw: validate S3 tokens against keystone (Roald J. van Loon)
-* rgw: wildcard support for keystone roles (Christophe Courtaut)
-* rpm: fix junit dependencies (Alan Grosskurth)
-* sysvinit radosgw: fix status return code (Danny Al-Gaaf)
-* sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe)
-* sysvinit: add condrestart command (Dan van der Ster)
-* sysvinit: fix shutdown order (mons last) (Alfredo Deza)
-
-
-
-v0.71
-=====
-
-This development release includes a significant amount of new code and
-refactoring, as well as a lot of preliminary functionality that will be needed
-for erasure coding and tiering support. There are also several significant
-patch sets improving this with the MDS.
-
-Upgrading
----------
-
-* The MDS now disallows snapshots by default as they are not
- considered stable. The command 'ceph mds set allow_snaps' will
- enable them.
-
-* For clusters that were created before v0.44 (pre-argonaut, Spring
- 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP
- objects has been disabled. Before upgrading, make sure that any
- buckets created on pre-argonaut releases have been modified (e.g.,
- by PUTing and then DELETEing an object from each bucket). Any
- cluster created with argonaut (v0.48) or a later release or not
- using radosgw never relied on the automatic conversion and is not
- affected by this change.
-
-* Any direct users of the 'tmap' portion of the librados API should be
- aware that the automatic tmap -> omap conversion functionality has
- been removed.
-
-* Most output that used K or KB (e.g., for kilobyte) now uses a
- lower-case k to match the official SI convention. Any scripts that
- parse output and check for an upper-case K will need to be modified.
-
-Notable Changes
----------------
-
-* build: Makefile refactor (Roald J. van Loon)
-* ceph-disk: fix journal preallocation
-* ceph-fuse: trim deleted inodes from cache (Yan, Zheng)
-* ceph-fuse: use newer fuse api (Jianpeng Ma)
-* ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis)
-* common: bloom_filter improvements, cleanups
-* common: correct SI is kB not KB (Dan Mick)
-* common: misc portability fixes (Noah Watkins)
-* hadoop: removed old version of shim to avoid confusing users (Noah Watkins)
-* librados: fix installed header #includes (Dan Mick)
-* librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls
-* mds: fix LOOKUPSNAP bug
-* mds: fix standby-replay when we fall behind (Yan, Zheng)
-* mds: fix stray directory purging (Yan, Zheng)
-* mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum)
-* mon, osd: improve osdmap trimming logic (Samuel Just)
-* mon: kv properties for pools to support EC (Loic Dachary)
-* mon: some auth check cleanups (Joao Luis)
-* mon: track per-pool stats (Joao Luis)
-* mon: warn about pools with bad pg_num
-* osd: automatically detect proper xattr limits (David Zafman)
-* osd: avoid extra copy in erasure coding reference implementation (Loic Dachary)
-* osd: basic cache pool redirects (Greg Farnum)
-* osd: basic whiteout, dirty flag support (not yet used)
-* osd: clean up and generalize copy-from code (Greg Farnum)
-* osd: erasure coding doc updates (Loic Dachary)
-* osd: erasure coding plugin infrastructure, tests (Loic Dachary)
-* osd: fix RWORDER flags
-* osd: fix exponential backoff of slow request warnings (Loic Dachary)
-* osd: generalized temp object infrastructure
-* osd: ghobject_t infrastructure for EC (David Zafman)
-* osd: improvements for compatset support and storage (David Zafman)
-* osd: misc copy-from improvements
-* osd: opportunistic crc checking on stored data (off by default)
-* osd: refactor recovery using PGBackend (Samuel Just)
-* osd: remove old magical tmap->omap conversion
-* pybind: fix blacklisting nonce (Loic Dachary)
-* rgw: default log level is now more reasonable (Yehuda Sadeh)
-* rgw: fix acl group check (Yehuda Sadeh)
-* sysvinit: fix shutdown order (mons last) (Alfredo Deza)
-
-v0.70
-=====
-
-Upgrading
----------
-
-* librados::Rados::pool_create_async() and librados::Rados::pool_delete_async()
- don't drop a reference to the completion object on error, caller needs to take
- care of that. This has never really worked correctly and we were leaking an
- object
-
-* 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the
- specified location, as that's a job for 'ceph osd crush add'. It will
- however continue to work just the same as long as the osd already exists
- in the crush map.
-
-Notable Changes
----------------
-
-* mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis)
-* crush: fix name caching
-* rgw: fix a few minor memory leaks (Yehuda Sadeh)
-* ceph: improve parsing of CEPH_ARGS (Benoit Knecht)
-* mon: avoid rewriting full osdmaps on restart (Joao Luis)
-* crc32c: fix optimized crc32c code (it now detects arch support properly)
-* mon: fix 'ceph osd crush reweight ...' (Joao Luis)
-* osd: revert xattr size limit (fixes large rgw uploads)
-* mds: fix heap profiler commands (Joao Luis)
-* rgw: fix inefficient use of std::list::size() (Yehuda Sadeh)
-
-
-v0.69
-=====
-
-Upgrading
----------
-
-* The sysvinit /etc/init.d/ceph script will, by default, update the
- CRUSH location of an OSD when it starts. Previously, if the
- monitors were not available, this command would hang indefinitely.
- Now, that step will time out after 10 seconds and the ceph-osd daemon
- will not be started.
-
-* Users of the librados C++ API should replace users of get_version()
- with get_version64() as the old method only returns a 32-bit value
- for a 64-bit field. The existing 32-bit get_version() method is now
- deprecated.
-
-* The OSDs are now more picky that request payload match their
- declared size. A write operation across N bytes that includes M
- bytes of data will now be rejected. No known clients do this, but
- the because the server-side behavior has changed it is possible that
- an application misusing the interface may now get errors.
-
-* The OSD now enforces that class write methods cannot both mutate an
- object and return data. The rbd.assign_bid method, the lone
- offender, has been removed. This breaks compatibility with
- pre-bobtail librbd clients by preventing them from creating new
- images.
-
-* librados now returns on commit instead of ack for synchronous calls.
- This is a bit safer in the case where both OSDs and the client crash, and
- is probably how it should have been acting from the beginning. Users are
- unlikely to notice but it could result in lower performance in some
- circumstances. Those who care should switch to using the async interfaces,
- which let you specify safety semantics precisely.
-
-* The C++ librados AioComplete::get_version() method was incorrectly
- returning an int (usually 32-bits). To avoid breaking library
- compatibility, a get_version64() method is added that returns the
- full-width value. The old method is deprecated and will be removed
- in a future release. Users of the C++ librados API that make use of
- the get_version() method should modify their code to avoid getting a
- value that is truncated from 64 to to 32 bits.
-
-
-Notable Changes
----------------
-
-* build cleanly under clang (Christophe Courtaut)
-* common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary)
-* doc: erasure coding design notes (Loic Dachary)
-* improved intel-optimized crc32c support (~8x faster on my laptop!)
-* librados: get_version64() method for C++ API
-* mds: fix locking deadlock (David Disseldorp)
-* mon, osd: initial CLI for configuring tiering
-* mon: allow cap strings with . to be unquoted
-* mon: continue to discover peer addr info during election phase
-* mon: fix 'osd crush move ...' command for buckets (Joao Luis)
-* mon: warn when mon data stores grow very large (Joao Luis)
-* objecter, librados: redirect requests based on cache tier config
-* osd, librados: add new COPY_FROM rados operation
-* osd, librados: add new COPY_GET rados operations (used by COPY_FROM)
-* osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%)
-* osd: add option to disable pg log debug code (which burns CPU)
-* osd: allow cap strings with . to be unquoted
-* osd: fix version value returned by various operations (Greg Farnum)
-* osd: infrastructure to copy objects from other OSDs
-* osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just)
-* rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson)
-* rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh)
-* rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh)
-* rgw: fix various CORS bugs (Yehuda Sadeh)
-* rgw: improve help output (Christophe Courtaut)
-* rgw: validate S3 tokens against keystone (Roald J. van Loon)
-* rgw: wildcard support for keystone roles (Christophe Courtaut)
-* sysvinit radosgw: fix status return code (Danny Al-Gaaf)
-* sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe)
-
-v0.68
-=====
-
-Upgrading
----------
-
-* 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the
- specified location, as that's a job for 'ceph osd crush add'. It will
- however continue to work just the same as long as the osd already exists
- in the crush map.
-
-* The OSD now enforces that class write methods cannot both mutate an
- object and return data. The rbd.assign_bid method, the lone
- offender, has been removed. This breaks compatibility with
- pre-bobtail librbd clients by preventing them from creating new
- images.
-
-* librados now returns on commit instead of ack for synchronous calls.
- This is a bit safer in the case where both OSDs and the client crash, and
- is probably how it should have been acting from the beginning. Users are
- unlikely to notice but it could result in lower performance in some
- circumstances. Those who care should switch to using the async interfaces,
- which let you specify safety semantics precisely.
-
-* The C++ librados AioComplete::get_version() method was incorrectly
- returning an int (usually 32-bits). To avoid breaking library
- compatibility, a get_version64() method is added that returns the
- full-width value. The old method is deprecated and will be removed
- in a future release. Users of the C++ librados API that make use of
- the get_version() method should modify their code to avoid getting a
- value that is truncated from 64 to to 32 bits.
-
-
-
-Notable Changes
----------------
-
-* ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng)
-* ceph-post-file: new command to easily share logs or other files with ceph devs
-* ceph: parse CEPH_ARGS env variable
-* librados: fix async aio completion wakeup
-* librados: hello_world example (Greg Farnum)
-* librados: sync calls now return on commit (instead of ack) (Greg Farnum)
-* mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva)
-* mds: fix rare restart/failure race during fs creation
-* mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng)
-* mds: several bug fixes with clustered mds (Yan, Zheng)
-* mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted
-* mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis)
-* mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis)
-* mon: fix paxos corner case
-* mon: modify 'auth add' semantics to make a bit more sense (Joao Luis)
-* mon: new 'osd perf' command to dump recent performance information (Samuel Just)
-* mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read)
-* monc: fix small memory leak
-* new wireshark patches pulled into the tree (Kevin Jones)
-* objecter: fix possible hang when cluster is unpaused (Josh Durgin)
-* osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just)
-* osd: cls_hello OSD class example
-* osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng)
-* osd: instrument peering states (David Zafman)
-* osd: properly enforce RD/WR flags for rados classes
-* osd: remove old pg log on upgrade (Samuel Just)
-* rgw: complete in-progress requests before shutting down
-* rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh)
-* sysvinit: add condrestart command (Dan van der Ster)
-
-
-v0.67.12 "Dumpling" (draft)
-===========================
-
-This stable update for Dumpling fixes a few longstanding issues with
-backfill in the OSD that can lead to stalled IOs. There is also a fix
-for memory utilization for reads in librbd when caching is enabled,
-and then several other small fixes across the rest of the system.
-
-Dumpling users who have encountered IO stalls during backfill and who
-do not expect to upgrade to Firefly soon should upgrade. Everyone
-else should upgrade to Firefly already. This is likely to be the last stable
-release for the 0.67.x Dumpling series.
-
-
-Notable Changes
----------------
-
-* buffer: fix buffer rebuild alignment corner case (#6614 #6003 Loic Dachary, Samuel Just)
-* ceph-disk: reprobe partitions after zap (#9665 #9721 Loic Dachary)
-* ceph-disk: use partx instead of partprobe when appropriate (Loic Dachary)
-* common: add $cctid meta variable (#6228 Adam Crume)
-* crush: fix get_full_location_ordered (Sage Weil)
-* crush: pick ruleset id that matches rule_id (#9675 Xiaoxi Chen)
-* libcephfs: fix tid wrap bug (#9869 Greg Farnum)
-* libcephfs: get osd location on -1 should return EINVAL (Sage Weil)
-* librados: fix race condition with C API and op timeouts (#9582 Sage Weil)
-* librbd: constrain max number of in-flight read requests (#9854 Jason Dillaman)
-* librbd: enforce cache size on read requests (Jason Dillaman)
-* librbd: fix invalid close in image open failure path (#10030 Jason Dillaman)
-* librbd: fix read hang on sparse files (Jason Dillaman)
-* librbd: gracefully handle deleted/renamed pools (#10270 #10122 Jason Dillaman)
-* librbd: protect list_children from invalid child pool ioctxs (#10123 Jason Dillaman)
-* mds: fix ctime updates from clients without dirty caps (#9514 Greg Farnum)
-* mds: fix rare NULL dereference in cap update path (Greg Farnum)
-* mds: fix assertion caused by system clock backwards (#11053 Yan, Zheng)
-* mds: store backtrace on straydir (Yan, Zheng)
-* osd: fix journal committed_thru update after replay (#6756 Samuel Just)
-* osd: fix memory leak, busy loop on snap trim (#9113 Samuel Just)
-* osd: fix misc peering, recovery bugs (#10168 Samuel Just)
-* osd: fix purged_snap field on backfill start (#9487 Sage Weil, Samuel Just)
-* osd: handle no-op write with snapshot corner case (#10262 Sage Weil, Loic Dachary)
-* osd: respect RWORDERED rados flag (Sage Weil)
-* osd: several backfill fixes and refactors (Samuel Just, David Zafman)
-* rgw: send http status reason explicitly in fastcgi (Yehuda Sadeh)
-
-v0.67.11 "Dumpling"
-===================
-
-This stable update for Dumpling fixes several important bugs that
-affect a small set of users.
-
-We recommend that all Dumpling users upgrade at their convenience. If
-none of these issues are affecting your deployment there is no
-urgency.
-
-
-Notable Changes
----------------
-
-* common: fix sending dup cluster log items (#9080 Sage Weil)
-* doc: several doc updates (Alfredo Deza)
-* libcephfs-java: fix build against older JNI headesr (Greg Farnum)
-* librados: fix crash in op timeout path (#9362 Matthias Kiefer, Sage Weil)
-* librbd: fix crash using clone of flattened image (#8845 Josh Durgin)
-* librbd: fix error path cleanup when failing to open image (#8912 Josh Durgin)
-* mon: fix crash when adjusting pg_num before any OSDs are added (#9052 Sage Weil)
-* mon: reduce log noise from paxos (Aanchal Agrawal, Sage Weil)
-* osd: allow scrub and snap trim thread pool IO priority to be adjusted (Sage Weil)
-* osd: fix mount/remount sync race (#9144 Sage Weil)
-
-
-v0.67.10 "Dumpling"
-===================
-
-This stable update release for Dumpling includes primarily fixes for
-RGW, including several issues with bucket listings and a potential
-data corruption problem when multiple multi-part uploads race. There is also
-some throttling capability added in the OSD for scrub that can mitigate the
-performance impact on production clusters.
-
-We recommend that all Dumpling users upgrade at their convenience.
-
-Notable Changes
----------------
-
-* ceph-disk: partprobe befoere settle, fixing dm-crypt (#6966, Eric Eastman)
-* librbd: add invalidate cache interface (Josh Durgin)
-* librbd: close image if remove_child fails (Ilya Dryomov)
-* librbd: fix potential null pointer dereference (Danny Al-Gaaf)
-* librbd: improve writeback checks, performance (Haomai Wang)
-* librbd: skip zeroes when copying image (#6257, Josh Durgin)
-* mon: fix rule(set) check on 'ceph pool set ... crush_ruleset ...' (#8599, John Spray)
-* mon: shut down if mon is removed from cluster (#6789, Joao Eduardo Luis)
-* osd: fix filestore perf reports to mon (Sage Weil)
-* osd: force any new or updated xattr into leveldb if E2BIG from XFS (#7779, Sage Weil)
-* osd: lock snapdir object during write to fix race with backfill (Samuel Just)
-* osd: option sleep during scrub (Sage Weil)
-* osd: set io priority on scrub and snap trim threads (Sage Weil)
-* osd: 'status' admin socket command (Sage Weil)
-* rbd: tolerate missing NULL terminator on block_name_prefix (#7577, Dan Mick)
-* rgw: calculate user manifest (#8169, Yehuda Sadeh)
-* rgw: fix abort on chunk read error, avoid using extra memory (#8289, Yehuda Sadeh)
-* rgw: fix buffer overflow on bucket instance id (#8608, Yehuda Sadeh)
-* rgw: fix crash in swift CORS preflight request (#8586, Yehuda Sadeh)
-* rgw: fix implicit removal of old objects on object creation (#8972, Patrycja Szablowska, Yehuda Sadeh)
-* rgw: fix MaxKeys in bucket listing (Yehuda Sadeh)
-* rgw: fix race with multiple updates to a single multipart object (#8269, Yehuda Sadeh)
-* rgw: improve bucket listing with delimiter (Yehuda Sadeh)
-* rgw: include NextMarker in bucket listing (#8858, Yehuda Sadeh)
-* rgw: return error early on non-existent bucket (#7064, Yehuda Sadeh)
-* rgw: set truncation flag correctly in bucket listing (Yehuda Sadeh)
-* sysvinit: continue starting daemons after pre-mount error (#8554, Sage Weil)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.10.txt>`.
-
-
-v0.67.9 "Dumpling"
-==================
-
-This Dumpling point release fixes several minor bugs. The most
-prevalent in the field is one that occasionally prevents OSDs from
-starting on recently created clusters.
-
-We recommend that all Dumpling users upgrade at their convenience.
-
-Notable Changes
----------------
-
-* ceph-fuse, libcephfs: client admin socket command to kick and inspect MDS sessions (#8021, Zheng Yan)
-* monclient: fix failure detection during mon handshake (#8278, Sage Weil)
-* mon: set tid on no-op PGStatsAck messages (#8280, Sage Weil)
-* msgr: fix a rare bug with connection negotiation between OSDs (Guang Yang)
-* osd: allow snap trim throttling with simple delay (#6278, Sage Weil)
-* osd: check for splitting when processing recover/backfill reservations (#6565, Samuel Just)
-* osd: fix backfill position tracking (#8162, Samuel Just)
-* osd: fix bug in backfill stats (Samuel Just)
-* osd: fix bug preventing OSD startup for infant clusters (#8162, Greg Farnum)
-* osd: fix rare PG resurrection race causing an incomplete PG (#7740, Samuel Just)
-* osd: only complete replicas count toward min_size (#7805, Samuel Just)
-* rgw: allow setting ACLs with empty owner (#6892, Yehuda Sadeh)
-* rgw: send user manifest header field (#8170, Yehuda Sadeh)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.9.txt>`.
-
-
-v0.67.8 "Dumpling"
-==================
-
-This Dumpling point release fixes several non-critical issues since
-v0.67.7. The most notable bug fixes are an auth fix in librbd
-(observed as an occasional crash from KVM), an improvement in the
-network failure detection with the monitor, and several hard to hit
-OSD crashes or hangs.
-
-We recommend that all users upgrade at their convenience.
-
-Upgrading
----------
-
-* The 'rbd ls' function now returns success and returns an empty when a pool
- does not store any rbd images. Previously it would return an ENOENT error.
-
-* Ceph will now issue a health warning if the 'mon osd down out
- interval' config option is set to zero. This warning can be
- disabled by adding 'mon warn on osd down out interval zero = false'
- to ceph.conf.
-
-Notable Changes
----------------
-
-* all: improve keepalive detection of failed monitor connections (#7888, Sage Weil)
-* ceph-fuse, libcephfs: pin inodes during readahead, fixing rare crash (#7867, Sage Weil)
-* librbd: make cache writeback a bit less aggressive (Sage Weil)
-* librbd: make symlink for qemu to detect librbd in RPM (#7293, Josh Durgin)
-* mon: allow 'hashpspool' pool flag to be set and unset (Loic Dachary)
-* mon: commit paxos state only after entire quorum acks, fixing rare race where prior round state is readable (#7736, Sage Weil)
-* mon: make elections and timeouts a bit more robust (#7212, Sage Weil)
-* mon: prevent extreme pool split operations (Greg Farnum)
-* mon: wait for quorum for get_version requests to close rare pool creation race (#7997, Sage Weil)
-* mon: warn on 'mon osd down out interval = 0' (#7784, Joao Luis)
-* msgr: fix byte-order for auth challenge, fixing auth errors on big-endian clients (#7977, Dan Mick)
-* msgr: fix occasional crash in authentication code (usually triggered by librbd) (#6840, Josh Durgin)
-* msgr: fix rebind() race (#6992, Xihui He)
-* osd: avoid timeouts during slow PG deletion (#6528, Samuel Just)
-* osd: fix bug in pool listing during recovery (#6633, Samuel Just)
-* osd: fix queue limits, fixing recovery stalls (#7706, Samuel Just)
-* osd: fix rare peering crashes (#6722, #6910, Samuel Just)
-* osd: fix rare recovery hang (#6681, Samuel Just)
-* osd: improve error handling on journal errors (#7738, Sage Weil)
-* osd: reduce load on the monitor from OSDMap subscriptions (Greg Farnum)
-* osd: rery GetLog on peer osd startup, fixing some rare peering stalls (#6909, Samuel Just)
-* osd: reset journal state on remount to fix occasional crash on OSD startup (#8019, Sage Weil)
-* osd: share maps with peers more aggressively (Greg Farnum)
-* rbd: make it harder to delete an rbd image that is currently in use (#7076, Ilya Drymov)
-* rgw: deny writes to secondary zone by non-system users (#6678, Yehuda Sadeh)
-* rgw: do'nt log system requests in usage log (#6889, Yehuda Sadeh)
-* rgw: fix bucket recreation (#6951, Yehuda Sadeh)
-* rgw: fix Swift range response (#7099, Julien Calvet, Yehuda Sadeh)
-* rgw: fix URL escaping (#8202, Yehuda Sadeh)
-* rgw: fix whitespace trimming in http headers (#7543, Yehuda Sadeh)
-* rgw: make multi-object deletion idempotent (#7346, Yehuda Sadeh)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.8.txt>`.
-
-v0.67.7 "Dumpling"
-==================
-
-This Dumpling point release fixes a few critical issues in v0.67.6.
-
-All v0.67.6 users are urgently encouraged to upgrade. We also
-recommend that all v0.67.5 (or older) users upgrade.
-
-Upgrading
----------
-
-* Once you have upgraded a radosgw instance or OSD to v0.67.7, you should not
- downgrade to a previous version.
-
-Notable Changes
----------------
-
-* ceph-disk: additional unit tests
-* librbd: revert caching behavior change in v0.67.6
-* osd: fix problem reading xattrs due to incomplete backport in v0.67.6
-* radosgw-admin: fix reading object policy
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.7.txt>`.
-
-
-v0.67.6 "Dumpling"
-==================
-
-.. note: This release contains a librbd bug that is fixed in v0.67.7. Please upgrade to v0.67.7 and do not use v0.67.6.
-
-This Dumpling point release contains a number of important fixed for
-the OSD, monitor, and radosgw. Most significantly, a change that
-forces large object attributes to spill over into leveldb has been
-backported that can prevent objects and the cluster from being damaged
-by large attributes (which can be induced via the radosgw). There is
-also a set of fixes that improves data safety and RADOS semantics when
-the cluster becomes full and then non-full.
-
-We recommend that all 0.67.x Dumpling users skip this release and upgrade to v0.67.7.
-
-Upgrading
----------
-
-* The OSD has long contained a feature that allows large xattrs to
- spill over into the leveldb backing store in situations where not
- all local file systems are able to store them reliably. This option
- is now enabled unconditionally in order to avoid rare cases where
- storing large xattrs renders the object unreadable. This is known to
- be triggered by very large multipart objects, but could be caused by
- other workloads as well. Although there is some small risk that
- performance for certain workloads will degrade, it is more important
- that data be retrievable. Note that newer versions of Ceph (e.g.,
- firefly) do some additional work to avoid the potential performance
- regression in this case, but that is current considered too complex
- for backport to the Dumpling stable series.
-
-* It is very dangerous to downgrade from v0.67.6 to a prior version of
- Dumpling. If the old version does not have 'filestore xattr use
- omap = true' it may not be able to read all xattrs for an object and
- can cause undefined behavior.
-
-Notable changes
----------------
-
-* ceph-disk: misc bug fixes, particularly on RHEL (Loic Dachary, Alfredo Deza, various)
-* ceph-fuse, libcephfs: fix crash from read over certain sparseness patterns (Sage Weil)
-* ceph-fuse, libcephfs: fix integer overflow for sync reads racing with appends (Sage Weil)
-* ceph.spec: fix udev rule when building RPM under RHEL (Derek Yarnell)
-* common: fix crash from bad format from admin socket (Loic Dachary)
-* librados: add optional timeouts (Josh Durgin)
-* librados: do not leak budget when resending localized or redirected ops (Josh Durgin)
-* librados, osd: fix and improve full cluster handling (Josh Durgin)
-* librbd: fix use-after-free when updating perfcounters during image close (Josh Durgin)
-* librbd: remove limit on objects in cache (Josh Durgin)
-* mon: avoid on-disk full OSDMap corruption from pg_temp removal (Sage Weil)
-* mon: avoid stray pg_temp entries from pool deletion race (Joao Eduardo Luis)
-* mon: do not generate spurious MDSMaps from laggy daemons (Joao Eduardo Luis)
-* mon: fix error code from 'osd rm|down|out|in ...' commands (Loic Dachary)
-* mon: include all health items in summary output (John Spray)
-* osd: fix occasional race/crash during startup (Sage Weil)
-* osd: ignore stray OSDMap messages during init (Sage Weil)
-* osd: unconditionally let xattrs overflow into leveldb (David Zafman)
-* rados: fix a few error checks for the CLI (Josh Durgin)
-* rgw: convert legacy bucket info objects on demand (Yehuda Sadeh)
-* rgw: fix bug causing system users to lose privileges (Yehuda Sadeh)
-* rgw: fix CORS bugs related to headers and case sensitivity (Robin H. Johnson)
-* rgw: fix multipart object listing (Yehuda Sadeh)
-* rgw: fix racing object creations (Yehuda Sadeh)
-* rgw: fix racing object put and delete (Yehuda Sadeh)
-* rgw: fix S3 auth when using response-* query string params (Sylvain Munaut)
-* rgw: use correct secret key for POST authentication (Robin H. Johnson)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.6.txt>`.
-
-
-v0.67.5 "Dumpling"
-==================
-
-This release includes a few critical bug fixes for the radosgw,
-including a fix for hanging operations on large objects. There are also
-several bug fixes for radosgw multi-site replications, and a few
-backported features. Also, notably, the 'osd perf' command (which dumps
-recent performance information about active OSDs) has been backported.
-
-We recommend that all 0.67.x Dumpling users upgrade.
-
-Notable changes
----------------
-
-* ceph-fuse: fix crash in caching code
-* mds: fix looping in populate_mydir()
-* mds: fix standby-replay race
-* mon: accept 'osd pool set ...' as string
-* mon: backport: 'osd perf' command to dump recent OSD performance stats
-* osd: add feature compat check for upcoming object sharding
-* osd: fix osd bench block size argument
-* rbd.py: increase parent name size limit
-* rgw: backport: allow wildcard in supported keystone roles
-* rgw: backport: improve swift COPY behavior
-* rgw: backport: log and open admin socket by default
-* rgw: backport: validate S3 tokens against keystone
-* rgw: fix bucket removal
-* rgw: fix client error code for chunked PUT failure
-* rgw: fix hang on large object GET
-* rgw: fix rare use-after-free
-* rgw: various DR bug fixes
-* sysvinit, upstart: prevent starting daemons using both init systems
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.5.txt>`.
-
-
-v0.67.4 "Dumpling"
-==================
-
-This point release fixes an important performance issue with radosgw,
-keystone authentication token caching, and CORS. All users
-(especially those of rgw) are encouraged to upgrade.
-
-Notable changes
----------------
-
-* crush: fix invalidation of cached names
-* crushtool: do not crash on non-unique bucket ids
-* mds: be more careful when decoding LogEvents
-* mds: fix heap check debugging commands
-* mon: avoid rebuilding old full osdmaps
-* mon: fix 'ceph crush move ...'
-* mon: fix 'ceph osd crush reweight ...'
-* mon: fix writeout of full osdmaps during trim
-* mon: limit size of transactions
-* mon: prevent both unmanaged and pool snaps
-* osd: disable xattr size limit (prevents upload of large rgw objects)
-* osd: fix recovery op throttling
-* osd: fix throttling of log messages for very slow requests
-* rgw: drain pending requests before completing write
-* rgw: fix CORS
-* rgw: fix inefficient list::size() usage
-* rgw: fix keystone token expiration
-* rgw: fix minor memory leaks
-* rgw: fix null termination of buffer
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.4.txt>`.
-
-
-v0.67.3 "Dumpling"
-==================
-
-This point release fixes a few important performance regressions with
-the OSD (both with CPU and disk utilization), as well as several other
-important but less common problems. We recommend that all production users
-upgrade.
-
-Notable Changes
----------------
-
-* ceph-disk: partprobe after creation journal partition
-* ceph-disk: specify fs type when mounting
-* ceph-post-file: new utility to help share logs and other files with ceph developers
-* libcephfs: fix truncate vs readahead race (crash)
-* mds: fix flock/fcntl lock deadlock
-* mds: fix rejoin loop when encountering pre-dumpling backpointers
-* mon: allow name and addr discovery during election stage
-* mon: always refresh after Paxos store_state (fixes recovery corner case)
-* mon: fix off-by-4x bug with osd byte counts
-* osd: add and disable 'pg log keys debug' by default
-* osd: add option to disable throttling
-* osd: avoid leveldb iterators for pg log append and trim
-* osd: fix readdir_r invocations
-* osd: use fdatasync instead of sync
-* radosgw: fix sysvinit script return status
-* rbd: relicense as LGPL2
-* rgw: flush pending data on multipart upload
-* rgw: recheck object name during S3 POST
-* rgw: reorder init/startup
-* rpm: fix debuginfo package build
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.3.txt>`.
-
-
-v0.67.2 "Dumpling"
-==================
-
-This is an imporant point release for Dumpling. Most notably, it
-fixes a problem when upgrading directly from v0.56.x Bobtail to
-v0.67.x Dumpling (without stopping at v0.61.x Cuttlefish along the
-way). It also fixes a problem with the CLI parsing of the CEPH_ARGS
-environment variable, high CPU utilization by the ceph-osd daemons,
-and cleans up the radosgw shutdown sequence.
-
-Notable Changes
----------------
-
-* objecter: resend linger requests when cluster goes from full to non-full
-* ceph: parse CEPH_ARGS environment variable
-* librados: fix small memory leak
-* osd: remove old log objects on upgrade (fixes bobtail -> dumpling jump)
-* osd: disable PGLog::check() via config option (fixes CPU burn)
-* rgw: drain requests on shutdown
-* rgw: misc memory leaks on shutdown
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.2.txt>`.
-
-
-v0.67.1 "Dumpling"
-==================
-
-This is a minor point release for Dumpling that fixes problems with
-OpenStack and librbd hangs when caching is disabled.
-
-Notable changes
----------------
-
-* librados, librbd: fix constructor for python bindings with certain
- usages (in particular, that used by OpenStack)
-* librados, librbd: fix aio_flush wakeup when cache is disabled
-* librados: fix locking for aio completion refcounting
-* fixes 'ceph --admin-daemon ...' command error code on error
-* fixes 'ceph daemon ... config set ...' command for boolean config
- options.
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.67.1.txt>`.
-
-v0.67 "Dumpling"
-================
-
-This is the fourth major release of Ceph, code-named "Dumpling." The
-headline features for this release include:
-
-* Multi-site support for radosgw. This includes the ability to set up
- separate "regions" in the same or different Ceph clusters that share
- a single S3/Swift bucket/container namespace.
-
-* RESTful API endpoint for Ceph cluster administration.
- ceph-rest-api, a wrapper around ceph_rest_api.py, can be used to
- start up a test single-threaded HTTP server that provides access to
- cluster information and administration in very similar ways to the
- ceph commandline tool. ceph_rest_api.py can be used as a WSGI
- application for deployment in a more-capable web server. See
- ceph-rest-api.8 for more.
-
-* Object namespaces in librados.
-
-
-.. _Dumpling upgrade:
-
-Upgrade Sequencing
-------------------
-
-It is possible to do a rolling upgrade from Cuttlefish to Dumpling.
-
-#. Upgrade ceph-common on all nodes that will use the command line
- 'ceph' utility.
-#. Upgrade all monitors (upgrade ceph package, restart ceph-mon
- daemons). This can happen one daemon or host at a time. Note that
- because cuttlefish and dumpling monitors can't talk to each other,
- all monitors should be upgraded in relatively short succession to
- minimize the risk that an a untimely failure will reduce
- availability.
-#. Upgrade all osds (upgrade ceph package, restart ceph-osd daemons).
- This can happen one daemon or host at a time.
-#. Upgrade radosgw (upgrade radosgw package, restart radosgw daemons).
-
-
-Upgrading from v0.66
---------------------
-
-* There is monitor internal protocol change, which means that v0.67
- ceph-mon daemons cannot talk to v0.66 or older daemons. We
- recommend upgrading all monitors at once (or in relatively quick
- succession) to minimize the possibility of downtime.
-
-* The output of 'ceph status --format=json' or 'ceph -s --format=json'
- has changed to return status information in a more structured and
- usable format.
-
-* The 'ceph pg dump_stuck [threshold]' command used to require a
- --threshold or -t prefix to the threshold argument, but now does
- not.
-
-* Many more ceph commands now output formatted information; select
- with '--format=<format>', where <format> can be 'json', 'json-pretty',
- 'xml', or 'xml-pretty'.
-
-* The 'ceph pg <pgid> ...' commands (like 'ceph pg <pgid> query') are
- deprecated in favor of 'ceph tell <pgid> ...'. This makes the
- distinction between 'ceph pg <command> <pgid>' and 'ceph pg <pgid>
- <command>' less awkward by making it clearer that the 'tell'
- commands are talking to the OSD serving the placement group, not the
- monitor.
-
-* The 'ceph --admin-daemon <path> <command ...>' used to accept the
- command and arguments as either a single string or as separate
- arguments. It will now only accept the command spread across
- multiple arguments. This means that any script which does something
- like::
-
- ceph --admin-daemon /var/run/ceph/ceph-osd.0.asok 'config set debug_ms 1'
-
- needs to remove the quotes. Also, note that the above can now be
- shortened to::
-
- ceph daemon osd.0 config set debug_ms 1
-
-* The radosgw caps were inconsistently documented to be either 'mon =
- allow r' or 'mon = allow rw'. The 'mon = allow rw' is required for
- radosgw to create its own pools. All documentation has been updated
- accordingly.
-
-* The radosgw copy object operation may return extra progress info
- during the operation. At this point it will only happen when doing
- cross zone copy operations. The S3 response will now return extra
- <Progress> field under the <CopyResult> container. The Swift
- response will now send the progress as a json array.
-
-* In v0.66 and v0.65 the HASHPSPOOL pool flag was enabled by default
- for new pools, but has been disabled again until Linux kernel client
- support reaches more distributions and users.
-
-* ceph-osd now requires a max file descriptor limit (e.g., ``ulimit -n
- ...``) of at least
- filestore_wbthrottle_(xfs|btrfs)_inodes_hard_limit (5000 by default)
- in order to accomodate the new write back throttle system. On
- Ubuntu, upstart now sets the fd limit to 32k. On other platforms,
- the sysvinit script will set it to 32k by default (still
- overrideable via max_open_files). If this field has been customized
- in ceph.conf it should likely be adjusted upwards.
-
-Upgrading from v0.61 "Cuttlefish"
----------------------------------
-
-In addition to the above notes about upgrading from v0.66:
-
-* There has been a huge revamp of the 'ceph' command-line interface
- implementation. The ``ceph-common`` client library needs to be
- upgrade before ``ceph-mon`` is restarted in order to avoid problems
- using the CLI (the old ``ceph`` client utility cannot talk to the
- new ``ceph-mon``).
-
-* The CLI is now very careful about sending the 'status' one-liner
- output to stderr and command output to stdout. Scripts relying on
- output should take care.
-
-* The 'ceph osd tell ...' and 'ceph mon tell ...' commands are no
- longer supported. Any callers should use::
-
- ceph tell osd.<id or *> ...
- ceph tell mon.<id or name or *> ...
-
- The 'ceph mds tell ...' command is still there, but will soon also
- transition to 'ceph tell mds.<id or name or \*> ...'
-
-* The 'ceph osd crush add ...' command used to take one of two forms::
-
- ceph osd crush add 123 osd.123 <weight> <location ...>
- ceph osd crush add osd.123 <weight> <location ...>
-
- This is because the id and crush name are redundant. Now only the
- simple form is supported, where the osd name/id can either be a bare
- id (integer) or name (osd.<id>)::
-
- ceph osd crush add osd.123 <weight> <location ...>
- ceph osd crush add 123 <weight> <location ...>
-
-* There is now a maximum RADOS object size, configurable via 'osd max
- object size', defaulting to 100 GB. Note that this has no effect on
- RBD, CephFS, or radosgw, which all stripe over objects. If you are
- using librados and storing objects larger than that, you will need
- to adjust 'osd max object size', and should consider using smaller
- objects instead.
-
-* The 'osd min down {reporters|reports}' config options have been
- renamed to 'mon osd min down {reporters|reports}', and the
- documentation has been updated to reflect that these options apply
- to the monitors (who process failure reports) and not OSDs. If you
- have adjusted these settings, please update your ``ceph.conf``
- accordingly.
-
-
-Notable changes since v0.66
----------------------------
-
-* mon: sync improvements (performance and robustness)
-* mon: many bug fixes (paxos and services)
-* mon: fixed bugs in recovery and io rate reporting (negative/large values)
-* mon: collect metadata on osd performance
-* mon: generate health warnings from slow or stuck requests
-* mon: expanded --format=<json|xml|...> support for monitor commands
-* mon: scrub function for verifying data integrity
-* mon, osd: fix old osdmap trimming logic
-* mon: enable leveldb caching by default
-* mon: more efficient storage of PG metadata
-* ceph-rest-api: RESTful endpoint for administer cluster (mirrors CLI)
-* rgw: multi-region support
-* rgw: infrastructure to support georeplication of bucket and user metadata
-* rgw: infrastructure to support georeplication of bucket data
-* rgw: COPY object support between regions
-* rbd: /etc/ceph/rbdmap file for mapping rbd images on startup
-* osd: many bug fixes
-* osd: limit number of incremental osdmaps sent to peers (could cause osds to be wrongly marked down)
-* osd: more efficient small object recovery
-* osd, librados: support for object namespaces
-* osd: automatically enable xattrs on leveldb as necessary
-* mds: fix bug in LOOKUPINO (used by nfs reexport)
-* mds: fix O_TRUNC locking
-* msgr: fixed race condition in inter-osd network communication
-* msgr: fixed various memory leaks related to network sessions
-* ceph-disk: fixes for unusual device names, partition detection
-* hypertable: fixes for hypertable CephBroker bindings
-* use SSE4.2 crc32c instruction if present
-
-
-Notable changes since v0.61 "Cuttlefish"
-----------------------------------------
-
-* add 'config get' admin socket command
-* ceph-conf: --show-config-value now reflects daemon defaults
-* ceph-disk: add '[un]suppress-active DEV' command
-* ceph-disk: avoid mounting over an existing osd in /var/lib/ceph/osd/*
-* ceph-disk: fixes for unusual device names, partition detection
-* ceph-disk: improved handling of odd device names
-* ceph-disk: many fixes for RHEL/CentOS, Fedora, wheezy
-* ceph-disk: simpler, more robust locking
-* ceph-fuse, libcephfs: fix a few caps revocation bugs
-* ceph-fuse, libcephfs: fix read zeroing at EOF
-* ceph-fuse, libcephfs: fix request refcounting bug (hang on shutdown)
-* ceph-fuse, libcephfs: fix truncatation bug on >4MB files (Yan, Zheng)
-* ceph-fuse, libcephfs: fix for cap release/hang
-* ceph-fuse: add ioctl support
-* ceph-fuse: fixed long-standing O_NOATIME vs O_LAZY bug
-* ceph-rest-api: RESTful endpoint for administer cluster (mirrors CLI)
-* ceph, librados: fix resending of commands on mon reconnect
-* daemons: create /var/run/ceph as needed
-* debian wheezy: fix udev rules
-* debian, specfile: packaging cleanups
-* debian: fix upstart behavior with upgrades
-* debian: rgw: stop daemon on uninstall
-* debian: stop daemons on uninstall; fix dependencies
-* hypertable: fixes for hypertable CephBroker bindings
-* librados python binding cleanups
-* librados python: fix xattrs > 4KB (Josh Durgin)
-* librados: configurable max object size (default 100 GB)
-* librados: new calls to administer the cluster
-* librbd: ability to read from local replicas
-* librbd: locking tests (Josh Durgin)
-* librbd: make default options/features for newly created images (e.g., via qemu-img) configurable
-* librbd: parallelize delete, rollback, flatten, copy, resize
-* many many fixes from static code analysis (Danny Al-Gaaf)
-* mds: fix O_TRUNC locking
-* mds: fix bug in LOOKUPINO (used by nfs reexport)
-* mds: fix rare hang after client restart
-* mds: fix several bugs (Yan, Zheng)
-* mds: many backpointer improvements (Yan, Zheng)
-* mds: many fixes for mds clustering
-* mds: misc stability fixes (Yan, Zheng, Greg Farnum)
-* mds: new robust open-by-ino support (Yan, Zheng)
-* mds: support robust lookup by ino number (good for NFS) (Yan, Zheng)
-* mon, ceph: huge revamp of CLI and internal admin API. (Dan Mick)
-* mon, osd: fix old osdmap trimming logic
-* mon, osd: many memory leaks fixed
-* mon: better trim/compaction behavior
-* mon: collect metadata on osd performance
-* mon: enable leveldb caching by default
-* mon: expanded --format=<json|xml|...> support for monitor commands
-* mon: fix election timeout
-* mon: fix leveldb compression, trimming
-* mon: fix start fork behavior
-* mon: fix units in 'ceph df' output
-* mon: fix validation of mds ids from CLI commands
-* mon: fixed bugs in recovery and io rate reporting (negative/large values)
-* mon: generate health warnings from slow or stuck requests
-* mon: many bug fixes (paxos and services, sync)
-* mon: many stability fixes (Joao Luis)
-* mon: more efficient storage of PG metadata
-* mon: new --extract-monmap to aid disaster recovery
-* mon: new capability syntax
-* mon: scrub function for verifying data integrity
-* mon: simplify PaxosService vs Paxos interaction, fix readable/writeable checks
-* mon: sync improvements (performance and robustness)
-* mon: tuning, performance improvements
-* msgr: fix various memory leaks
-* msgr: fixed race condition in inter-osd network communication
-* msgr: fixed various memory leaks related to network sessions
-* osd, librados: support for object namespaces
-* osd, mon: optionally dump leveldb transactions to a log
-* osd: automatically enable xattrs on leveldb as necessary
-* osd: avoid osd flapping from asymmetric network failure
-* osd: break blacklisted client watches (David Zafman)
-* osd: close narrow journal race
-* osd: do not use fadvise(DONTNEED) on XFS (data corruption on power cycle)
-* osd: fix for an op ordering bug
-* osd: fix handling for split after upgrade from bobtail
-* osd: fix incorrect mark-down of osds
-* osd: fix internal heartbeart timeouts when scrubbing very large objects
-* osd: fix memory/network inefficiency during deep scrub
-* osd: fixed problem with front-side heartbeats and mixed clusters (David Zafman)
-* osd: limit number of incremental osdmaps sent to peers (could cause osds to be wrongly marked down)
-* osd: many bug fixes
-* osd: monitor both front and back interfaces
-* osd: more efficient small object recovery
-* osd: new writeback throttling (for less bursty write performance) (Sam Just)
-* osd: pg log (re)writes are now vastly more efficient (faster peering) (Sam Just)
-* osd: ping/heartbeat on public and private interfaces
-* osd: prioritize recovery for degraded PGs
-* osd: re-use partially deleted PG contents when present (Sam Just)
-* osd: recovery and peering performance improvements
-* osd: resurrect partially deleted PGs
-* osd: verify both front and back network are working before rejoining cluster
-* rados: clonedata command for cli
-* radosgw-admin: create keys for new users by default
-* rbd: /etc/ceph/rbdmap file for mapping rbd images on startup
-* rgw: COPY object support between regions
-* rgw: fix CORS bugs
-* rgw: fix locking issue, user operation mask,
-* rgw: fix radosgw-admin buckets list (Yehuda Sadeh)
-* rgw: fix usage log scanning for large, untrimmed logs
-* rgw: handle deep uri resources
-* rgw: infrastructure to support georeplication of bucket and user metadata
-* rgw: infrastructure to support georeplication of bucket data
-* rgw: multi-region support
-* sysvinit: fix enumeration of local daemons
-* sysvinit: fix osd crush weight calculation when using -a
-* sysvinit: handle symlinks in /var/lib/ceph/osd/*
-* use SSE4.2 crc32c instruction if present
-
-
-v0.66
-=====
-
-Upgrading
----------
-
-* There is now a configurable maximum rados object size, defaulting to 100 GB. If you
- are using librados and storing objects larger than that, you will need to adjust
- 'osd max object size', and should consider using smaller objects instead.
-
-Notable changes
----------------
-
-* osd: pg log (re)writes are now vastly more efficient (faster peering) (Sam Just)
-* osd: fixed problem with front-side heartbeats and mixed clusters (David Zafman)
-* mon: tuning, performance improvements
-* mon: simplify PaxosService vs Paxos interaction, fix readable/writeable checks
-* rgw: fix radosgw-admin buckets list (Yehuda Sadeh)
-* mds: support robust lookup by ino number (good for NFS) (Yan, Zheng)
-* mds: fix several bugs (Yan, Zheng)
-* ceph-fuse, libcephfs: fix truncatation bug on >4MB files (Yan, Zheng)
-* ceph/librados: fix resending of commands on mon reconnect
-* librados python: fix xattrs > 4KB (Josh Durgin)
-* librados: configurable max object size (default 100 GB)
-* msgr: fix various memory leaks
-* ceph-fuse: fixed long-standing O_NOATIME vs O_LAZY bug
-* ceph-fuse, libcephfs: fix request refcounting bug (hang on shutdown)
-* ceph-fuse, libcephfs: fix read zeroing at EOF
-* ceph-conf: --show-config-value now reflects daemon defaults
-* ceph-disk: simpler, more robust locking
-* ceph-disk: avoid mounting over an existing osd in /var/lib/ceph/osd/*
-* sysvinit: handle symlinks in /var/lib/ceph/osd/*
-
-
-v0.65
-=====
-
-Upgrading
----------
-
-* Huge revamp of the 'ceph' command-line interface implementation.
- The ``ceph-common`` client library needs to be upgrade before
- ``ceph-mon`` is restarted in order to avoid problems using the CLI
- (the old ``ceph`` client utility cannot talk to the new
- ``ceph-mon``).
-
-* The CLI is now very careful about sending the 'status' one-liner
- output to stderr and command output to stdout. Scripts relying on
- output should take care.
-
-* The 'ceph osd tell ...' and 'ceph mon tell ...' commands are no
- longer supported. Any callers should use::
-
- ceph tell osd.<id or *> ...
- ceph tell mon.<id or name or *> ...
-
- The 'ceph mds tell ...' command is still there, but will soon also
- transition to 'ceph tell mds.<id or name or \*> ...'
-
-* The 'ceph osd crush add ...' command used to take one of two forms::
-
- ceph osd crush add 123 osd.123 <weight> <location ...>
- ceph osd crush add osd.123 <weight> <location ...>
-
- This is because the id and crush name are redundant. Now only the
- simple form is supported, where the osd name/id can either be a bare
- id (integer) or name (osd.<id>)::
-
- ceph osd crush add osd.123 <weight> <location ...>
- ceph osd crush add 123 <weight> <location ...>
-
-* There is now a maximum RADOS object size, configurable via 'osd max
- object size', defaulting to 100 GB. Note that this has no effect on
- RBD, CephFS, or radosgw, which all stripe over objects.
-
-
-Notable changes
----------------
-
-* mon, ceph: huge revamp of CLI and internal admin API. (Dan Mick)
-* mon: new capability syntax
-* osd: do not use fadvise(DONTNEED) on XFS (data corruption on power cycle)
-* osd: recovery and peering performance improvements
-* osd: new writeback throttling (for less bursty write performance) (Sam Just)
-* osd: ping/heartbeat on public and private interfaces
-* osd: avoid osd flapping from asymmetric network failure
-* osd: re-use partially deleted PG contents when present (Sam Just)
-* osd: break blacklisted client watches (David Zafman)
-* mon: many stability fixes (Joao Luis)
-* mon, osd: many memory leaks fixed
-* mds: misc stability fixes (Yan, Zheng, Greg Farnum)
-* mds: many backpointer improvements (Yan, Zheng)
-* mds: new robust open-by-ino support (Yan, Zheng)
-* ceph-fuse, libcephfs: fix a few caps revocation bugs
-* librados: new calls to administer the cluster
-* librbd: locking tests (Josh Durgin)
-* ceph-disk: improved handling of odd device names
-* ceph-disk: many fixes for RHEL/CentOS, Fedora, wheezy
-* many many fixes from static code analysis (Danny Al-Gaaf)
-* daemons: create /var/run/ceph as needed
-
-
-v0.64
-=====
-
-Upgrading
----------
-
-* New pools now have the HASHPSPOOL flag set by default to provide
- better distribution over OSDs. Support for this feature was
- introduced in v0.59 and Linux kernel version v3.9. If you wish to
- access the cluster from an older kernel, set the 'osd pool default
- flag hashpspool = false' option in your ceph.conf prior to creating
- the cluster or creating new pools. Note that the presense of any
- pool in the cluster with the flag enabled will make the OSD require
- support from all clients.
-
-Notable changes
----------------
-
-* osd: monitor both front and back interfaces
-* osd: verify both front and back network are working before rejoining cluster
-* osd: fix memory/network inefficiency during deep scrub
-* osd: fix incorrect mark-down of osds
-* mon: fix start fork behavior
-* mon: fix election timeout
-* mon: better trim/compaction behavior
-* mon: fix units in 'ceph df' output
-* mon, osd: misc memory leaks
-* librbd: make default options/features for newly created images (e.g., via qemu-img) configurable
-* mds: many fixes for mds clustering
-* mds: fix rare hang after client restart
-* ceph-fuse: add ioctl support
-* ceph-fuse/libcephfs: fix for cap release/hang
-* rgw: handle deep uri resources
-* rgw: fix CORS bugs
-* ceph-disk: add '[un]suppress-active DEV' command
-* debian: rgw: stop daemon on uninstall
-* debian: fix upstart behavior with upgrades
-
-
-v0.63
-=====
-
-Upgrading
----------
-
-* The 'osd min down {reporters|reports}' config options have been
- renamed to 'mon osd min down {reporters|reports}', and the
- documentation has been updated to reflect that these options apply
- to the monitors (who process failure reports) and not OSDs. If you
- have adjusted these settings, please update your ``ceph.conf``
- accordingly.
-
-Notable Changes
----------------
-
-* librbd: parallelize delete, rollback, flatten, copy, resize
-* librbd: ability to read from local replicas
-* osd: resurrect partially deleted PGs
-* osd: prioritize recovery for degraded PGs
-* osd: fix internal heartbeart timeouts when scrubbing very large objects
-* osd: close narrow journal race
-* rgw: fix usage log scanning for large, untrimmed logs
-* rgw: fix locking issue, user operation mask,
-* initscript: fix osd crush weight calculation when using -a
-* initscript: fix enumeration of local daemons
-* mon: several fixes to paxos, sync
-* mon: new --extract-monmap to aid disaster recovery
-* mon: fix leveldb compression, trimming
-* add 'config get' admin socket command
-* rados: clonedata command for cli
-* debian: stop daemons on uninstall; fix dependencies
-* debian wheezy: fix udev rules
-* many many small fixes from coverity scan
-
-
-v0.62
-=====
-
-Notable Changes
----------------
-
-* mon: fix validation of mds ids from CLI commands
-* osd: fix for an op ordering bug
-* osd, mon: optionally dump leveldb transactions to a log
-* osd: fix handling for split after upgrade from bobtail
-* debian, specfile: packaging cleanups
-* radosgw-admin: create keys for new users by default
-* librados python binding cleanups
-* misc code cleanups
-
-
-
-
-v0.61.9 "Cuttlefish"
-====================
-
-This point release resolves several low to medium-impact bugs across
-the code base, and fixes a performance problem (CPU utilization) with
-radosgw. We recommend that all production cuttlefish users upgrade.
-
-Notable Changes
----------------
-
-* ceph, ceph-authtool: fix help (Danny Al-Gaaf)
-* ceph-disk: partprobe after creating journal partition
-* ceph-disk: specific fs type when mounting (Alfredo Deza)
-* ceph-fuse: fix bug when compiled against old versions
-* ceph-fuse: fix use-after-free in caching code (Yan, Zheng)
-* ceph-fuse: misc caching bugs
-* ceph.spec: remove incorrect mod_fcgi dependency (Gary Lowell)
-* crush: fix name caching
-* librbd: fix bug when unpausing cluster (Josh Durgin)
-* mds: fix LAZYIO lock hang
-* mds: fix bug in file size recovery (after client crash)
-* mon: fix paxos recovery corner case
-* osd: fix exponential backoff for slow request warnings (Loic Dachary)
-* osd: fix readdir_r usage
-* osd: fix startup for long-stopped OSDs
-* rgw: avoid std::list::size() to avoid wasting CPU cycles (Yehuda Sadeh)
-* rgw: drain pending requests during write (fixes data safety issue) (Yehuda Sadeh)
-* rgw: fix authenticated users group ACL check (Yehuda Sadeh)
-* rgw: fix bug in POST (Yehuda Sadeh)
-* rgw: fix sysvinit script 'status' command, return value (Danny Al-Gaaf)
-* rgw: reduce default log level (Yehuda Sadeh)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.9.txt>`.
-
-v0.61.8 "Cuttlefish"
-====================
-
-This release includes a number of important issues, including rare
-race conditions in the OSD, a few monitor bugs, and fixes for RBD
-flush behavior. We recommend that production users upgrade at their
-convenience.
-
-Notable Changes
----------------
-
-* librados: fix async aio completion wakeup
-* librados: fix aio completion locking
-* librados: fix rare deadlock during shutdown
-* osd: fix race when queueing recovery operations
-* osd: fix possible race during recovery
-* osd: optionally preload rados classes on startup (disabled by default)
-* osd: fix journal replay corner condition
-* osd: limit size of peering work queue batch (to speed up peering)
-* mon: fix paxos recovery corner case
-* mon: fix rare hang when monmap updates during an election
-* mon: make 'osd pool mksnap ...' avoid exposing uncommitted state
-* mon: make 'osd pool rmsnap ...' not racy, avoid exposing uncommitted state
-* mon: fix bug during mon cluster expansion
-* rgw: fix crash during multi delete operation
-* msgr: fix race conditions during osd network reinitialization
-* ceph-disk: apply mount options when remounting
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.8.txt>`.
-
-
-v0.61.7 "Cuttlefish"
-====================
-
-This release fixes another regression preventing monitors to start after
-undergoing certain upgrade sequences, as well as some corner cases with
-Paxos and support for unusual device names in ceph-disk/ceph-deploy.
-
-Notable Changes
----------------
-
-* mon: fix regression in latest full osdmap retrieval
-* mon: fix a long-standing bug in a paxos corner case
-* ceph-disk: improved support for unusual device names (e.g., /dev/cciss/c0d0)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.7.txt>`.
-
-
-v0.61.6 "Cuttlefish"
-====================
-
-This release fixes a regression in v0.61.5 that could prevent monitors
-from restarting. This affects any cluster that was upgraded from a
-previous version of Ceph (and not freshly created with v0.61.5).
-
-All users are strongly recommended to upgrade.
-
-Notable Changes
----------------
-
-* mon: record latest full osdmap
-* mon: work around previous bug in which latest full osdmap is not recorded
-* mon: avoid scrub while updating
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.6.txt>`.
-
-
-v0.61.5 "Cuttlefish"
-====================
-
-This release most improves stability of the monitor and fixes a few
-bugs with the ceph-disk utility (used by ceph-deploy). We recommand
-that all v0.61.x users upgrade.
-
-Upgrading
----------
-
-* This release fixes a 32-bit vs 64-bit arithmetic bug with the
- feature bits. An unfortunate consequence of the fix is that 0.61.4
- (or earlier) ceph-mon daemons can't form a quorum with 0.61.5 (or
- later) monitors. To avoid the possibility of service disruption, we
- recommend you upgrade all monitors at once.
-
-Notable Changes
----------------
-
-* mon: misc sync improvements (faster, more reliable, better tuning)
-* mon: enable leveldb cache by default (big performance improvement)
-* mon: new scrub feature (primarily for diagnostic, testing purposes)
-* mon: fix occasional leveldb assertion on startup
-* mon: prevent reads until initial state is committed
-* mon: improved logic for trimming old osdmaps
-* mon: fix pick_addresses bug when expanding mon cluster
-* mon: several small paxos fixes, improvements
-* mon: fix bug osdmap trim behavior
-* osd: fix several bugs with PG stat reporting
-* osd: limit number of maps shared with peers (which could cause domino failures)
-* rgw: fix radosgw-admin buckets list (for all buckets)
-* mds: fix occasional client failure to reconnect
-* mds: fix bad list traversal after unlink
-* mds: fix underwater dentry cleanup (occasional crash after mds restart)
-* libcephfs, ceph-fuse: fix occasional hangs on umount
-* libcephfs, ceph-fuse: fix old bug with O_LAZY vs O_NOATIME confusion
-* ceph-disk: more robust journal device detection on RHEL/CentOS
-* ceph-disk: better, simpler locking
-* ceph-disk: do not inadvertantely mount over existing osd mounts
-* ceph-disk: better handling for unusual device names
-* sysvinit, upstart: handle symlinks in /var/lib/ceph/*
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.5.txt>`.
-
-
-v0.61.4 "Cuttlefish"
-====================
-
-This release resolves a possible data corruption on power-cycle when
-using XFS, a few outstanding problems with monitor sync, several
-problems with ceph-disk and ceph-deploy operation, and a problem with
-OSD memory usage during scrub.
-
-Upgrading
----------
-
-* No issues.
-
-Notable Changes
----------------
-
-* mon: fix daemon exit behavior when error is encountered on startup
-* mon: more robust sync behavior
-* osd: do not use sync_file_range(2), posix_fadvise(...DONTNEED) (can cause data corruption on power loss on XFS)
-* osd: avoid unnecessary log rewrite (improves peering speed)
-* osd: fix scrub efficiency bug (problematic on old clusters)
-* rgw: fix listing objects that start with underscore
-* rgw: fix deep URI resource, CORS bugs
-* librados python binding: fix truncate on 32-bit architectures
-* ceph-disk: fix udev rules
-* rpm: install sysvinit script on package install
-* ceph-disk: fix OSD start on machine reboot on Debian wheezy
-* ceph-disk: activate OSD when journal device appears second
-* ceph-disk: fix various bugs on RHEL/CentOS 6.3
-* ceph-disk: add 'zap' command
-* ceph-disk: add '[un]suppress-activate' command for preparing spare disks
-* upstart: start on runlevel [2345] (instead of after the first network interface starts)
-* ceph-fuse, libcephfs: handle mds session reset during session open
-* ceph-fuse, libcephfs: fix two capability revocation bugs
-* ceph-fuse: fix thread creation on startup
-* all daemons: create /var/run/ceph directory on startup if missing
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.4.txt>`.
-
-
-v0.61.3 "Cuttlefish"
-====================
-
-This release resolves a number of problems with the monitors and leveldb that users have
-been seeing. Please upgrade.
-
-Upgrading
----------
-
-* There is one known problem with mon upgrades from bobtail. If the
- ceph-mon conversion on startup is aborted or fails for some reason, we
- do not correctly error out, but instead continue with (in certain cases)
- odd results. Please be careful if you have to restart the mons during
- the upgrade. A 0.61.4 release with a fix will be out shortly.
-
-* In the meantime, for current cuttlefish users, v0.61.3 is safe to use.
-
-
-Notable Changes
----------------
-
-* mon: paxos state trimming fix (resolves runaway disk usage)
-* mon: finer-grained compaction on trim
-* mon: discard messages from disconnected clients (lowers load)
-* mon: leveldb compaction and other stats available via admin socket
-* mon: async compaction (lower overhead)
-* mon: fix bug incorrectly marking osds down with insufficient failure reports
-* osd: fixed small bug in pg request map
-* osd: avoid rewriting pg info on every osdmap
-* osd: avoid internal heartbeta timeouts when scrubbing very large objects
-* osd: fix narrow race with journal replay
-* mon: fixed narrow pg split race
-* rgw: fix leaked space when copying object
-* rgw: fix iteration over large/untrimmed usage logs
-* rgw: fix locking issue with ops log socket
-* rgw: require matching version of librados
-* librbd: make image creation defaults configurable (e.g., create format 2 images via qemu-img)
-* fix units in 'ceph df' output
-* debian: fix prerm/postinst hooks to start/stop daemons appropriately
-* upstart: allow uppercase daemons names (and thus hostnames)
-* sysvinit: fix enumeration of local daemons by type
-* sysvinit: fix osd weight calcuation when using -a
-* fix build on unsigned char platforms (e.g., arm)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.3.txt>`.
-
-
-v0.61.2 "Cuttlefish"
-====================
-
-This release disables a monitor debug log that consumes disk space and
-fixes a bug when upgrade some monitors from bobtail to cuttlefish.
-
-Notable Changes
----------------
-
-* mon: fix conversion of stores with duplicated GV values
-* mon: disable 'mon debug dump transactions' by default
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.2.txt>`.
-
-
-v0.61.1 "Cuttlefish"
-====================
-
-This release fixes a problem when upgrading a bobtail cluster that had
-snapshots to cuttlefish.
-
-Notable Changes
----------------
-
-* osd: handle upgrade when legacy snap collections are present; repair from previous failed restart
-* ceph-create-keys: fix race with ceph-mon startup (which broke 'ceph-deploy gatherkeys ...')
-* ceph-create-keys: gracefully handle bad response from ceph-osd
-* sysvinit: do not assume default osd_data when automatically weighting OSD
-* osd: avoid crash from ill-behaved classes using getomapvals
-* debian: fix squeeze dependency
-* mon: debug options to log or dump leveldb transactions
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.61.1.txt>`.
-
-v0.61 "Cuttlefish"
-==================
-
-Upgrading from v0.60
---------------------
-
-* The ceph-deploy tool is now the preferred method of provisioning
- new clusters. For existing clusters created via mkcephfs that
- would like to transition to the new tool, there is a migration
- path, documented at `Transitioning to ceph-deploy`_.
-
-
-* The sysvinit script (/etc/init.d/ceph) will now verify (and, if
- necessary, update) the OSD's position in the CRUSH map on startup.
- (The upstart script has always worked this way.) By default, this
- ensures that the OSD is under a 'host' with a name that matches the
- hostname (``hostname -s``). Legacy clusters create with mkcephfs do
- this by default, so this should not cause any problems, but legacy
- clusters with customized CRUSH maps with an alternate structure
- should set ``osd crush update on start = false``.
-
-* radosgw-admin now uses the term zone instead of cluster to describe
- each instance of the radosgw data store (and corresponding
- collection of radosgw daemons). The usage for the radosgw-admin
- command and the 'rgw zone root pool' config options have changed
- accordingly.
-
-* rbd progress indicators now go to standard error instead of standard
- out. (You can disable progress with --no-progress.)
-
-* The 'rbd resize ...' command now requires the --allow-shrink option
- when resizing to a smaller size. Expanding images to a larger size
- is unchanged.
-
-* Please review the changes going back to 0.56.4 if you are upgrading
- all the way from bobtail.
-
-* The old 'ceph stop_cluster' command has been removed.
-
-* The sysvinit script now uses the ceph.conf file on the remote host
- when starting remote daemons via the '-a' option. Note that if '-a'
- is used in conjunction with '-c path', the path must also be present
- on the remote host (it is not copied to a temporary file, as it was
- previously).
-
-
-Upgrading from v0.56.4 "Bobtail"
---------------------------------
-
-Please see `Upgrading from Bobtail to Cuttlefish`_ for details.
-
-.. _Upgrading from Bobtail to Cuttlefish: ../install/upgrading-ceph/#upgrading-from-bobtail-to-cuttlefish
-
-* The ceph-deploy tool is now the preferred method of provisioning
- new clusters. For existing clusters created via mkcephfs that
- would like to transition to the new tool, there is a migration
- path, documented at `Transitioning to ceph-deploy`_.
-
-.. _Transitioning to ceph-deploy: ../rados/deployment/ceph-deploy-transition
-
-* The sysvinit script (/etc/init.d/ceph) will now verify (and, if
- necessary, update) the OSD's position in the CRUSH map on startup.
- (The upstart script has always worked this way.) By default, this
- ensures that the OSD is under a 'host' with a name that matches the
- hostname (``hostname -s``). Legacy clusters create with mkcephfs do
- this by default, so this should not cause any problems, but legacy
- clusters with customized CRUSH maps with an alternate structure
- should set ``osd crush update on start = false``.
-
-* radosgw-admin now uses the term zone instead of cluster to describe
- each instance of the radosgw data store (and corresponding
- collection of radosgw daemons). The usage for the radosgw-admin
- command and the 'rgw zone root pool' config optoins have changed
- accordingly.
-
-* rbd progress indicators now go to standard error instead of standard
- out. (You can disable progress with --no-progress.)
-
-* The 'rbd resize ...' command now requires the --allow-shrink option
- when resizing to a smaller size. Expanding images to a larger size
- is unchanged.
-
-* Please review the changes going back to 0.56.4 if you are upgrading
- all the way from bobtail.
-
-* The old 'ceph stop_cluster' command has been removed.
-
-* The sysvinit script now uses the ceph.conf file on the remote host
- when starting remote daemons via the '-a' option. Note that if '-a'
- is used in conjuction with '-c path', the path must also be present
- on the remote host (it is not copied to a temporary file, as it was
- previously).
-
-* The monitor is using a completely new storage strategy and
- intra-cluster protocol. This means that cuttlefish and bobtail
- monitors do not talk to each other. When you upgrade each one, it
- will convert its local data store to the new format. Once you
- upgrade a majority, the quorum will be formed using the new protocol
- and the old monitors will be blocked out until they too get
- upgraded. For this reason, we recommend not running a mixed-version
- cluster for very long.
-
-* ceph-mon now requires the creation of its data directory prior to
- --mkfs, similarly to what happens on ceph-osd. This directory is no
- longer automatically created, and custom scripts should be adjusted to
- reflect just that.
-
-* The monitor now enforces that MDS names be unique. If you have
- multiple daemons start with with the same id (e.g., ``mds.a``) the
- second one will implicitly mark the first as failed. This makes
- things less confusing and makes a daemon restart faster (we no
- longer wait for the stopped daemon to time out) but existing
- multi-mds configurations may need to be adjusted accordingly to give
- daemons unique names.
-
-* The 'ceph osd pool delete <poolname>' and 'rados rmpool <poolname>'
- now have safety interlocks with loud warnings that make you confirm
- pool removal. Any scripts curenty rely on these functions zapping
- data without confirmation need to be adjusted accordingly.
-
-
-Notable Changes from v0.60
---------------------------
-
-* rbd: incremental backups
-* rbd: only set STRIPINGV2 feature if striping parameters are incompatible with old versions
-* rbd: require --allow-shrink for resizing images down
-* librbd: many bug fixes
-* rgw: management REST API
-* rgw: fix object corruption on COPY to self
-* rgw: new sysvinit script for rpm-based systems
-* rgw: allow buckets with '_'
-* rgw: CORS support
-* mon: many fixes
-* mon: improved trimming behavior
-* mon: fix data conversion/upgrade problem (from bobtail)
-* mon: ability to tune leveldb
-* mon: config-keys service to store arbitrary data on monitor
-* mon: 'osd crush add|link|unlink|add-bucket ...' commands
-* mon: trigger leveldb compaction on trim
-* osd: per-rados pool quotas (objects, bytes)
-* osd: tool to export, import, and delete PGs from an individual OSD data store
-* osd: notify mon on clean shutdown to avoid IO stall
-* osd: improved detection of corrupted journals
-* osd: ability to tune leveldb
-* osd: improve client request throttling
-* osd, librados: fixes to the LIST_SNAPS operation
-* osd: improvements to scrub error repair
-* osd: better prevention of wedging OSDs with ENOSPC
-* osd: many small fixes
-* mds: fix xattr handling on root inode
-* mds: fixed bugs in journal replay
-* mds: many fixes
-* librados: clean up snapshot constant definitions
-* libcephfs: calls to query CRUSH topology (used by Hadoop)
-* ceph-fuse, libcephfs: misc fixes to mds session management
-* ceph-fuse: disabled cache invalidation (again) due to potential deadlock with kernel
-* sysvinit: try to start all daemons despite early failures
-* ceph-disk: new 'list' command
-* ceph-disk: hotplug fixes for RHEL/CentOS
-* ceph-disk: fix creation of OSD data partitions on >2TB disks
-* osd: fix udev rules for RHEL/CentOS systems
-* fix daemon logging during initial startup
-
-Notable changes from v0.56 "Bobtail"
-------------------------------------
-* always use installed system leveldb (Gary Lowell)
-* auth: ability to require new cephx signatures on messages (still off by default)
-* buffer unit testing (Loic Dachary)
-* ceph tool: some CLI interface cleanups
-* ceph-disk: improve multicluster support, error handling (Sage Weil)
-* ceph-disk: support for dm-crypt (Alexandre Marangone)
-* ceph-disk: support for sysvinit, directories or partitions (not full disks)
-* ceph-disk: fix mkfs args on old distros (Alexandre Marangone)
-* ceph-disk: fix creation of OSD data partitions on >2TB disks
-* ceph-disk: hotplug fixes for RHEL/CentOS
-* ceph-disk: new 'list' command
-* ceph-fuse, libcephfs: misc fixes to mds session management
-* ceph-fuse: disabled cache invalidation (again) due to potential deadlock with kernel
-* ceph-fuse: enable kernel cache invalidation (Sam Lang)
-* ceph-fuse: fix statfs(2) reporting
-* ceph-fuse: session handling cleanup, bug fixes (Sage Weil)
-* crush: ability to create, remove rules via CLI
-* crush: update weights for all instances of an item, not just the first (Sage Weil)
-* fix daemon logging during initial startup
-* fixed log rotation (Gary Lowell)
-* init-ceph, mkcephfs: close a few security holes with -a (Sage Weil)
-* libcephfs: calls to query CRUSH topology (used by Hadoop)
-* libcephfs: many fixes, cleanups with the Java bindings
-* libcephfs: new topo API requests for Hadoop (Noah Watkins)
-* librados: clean up snapshot constant definitions
-* librados: fix linger bugs (Josh Durgin)
-* librbd: fixed flatten deadlock (Josh Durgin)
-* librbd: fixed some locking issues with flatten (Josh Durgin)
-* librbd: many bug fixes
-* librbd: optionally wait for flush before enabling writeback (Josh Durgin)
-* many many cleanups (Danny Al-Gaaf)
-* mds, ceph-fuse: fix bugs with replayed requests after MDS restart (Sage Weil)
-* mds, ceph-fuse: manage layouts via xattrs
-* mds: allow xattrs on root
-* mds: fast failover between MDSs (enforce unique mds names)
-* mds: fix xattr handling on root inode
-* mds: fixed bugs in journal replay
-* mds: improve session cleanup (Sage Weil)
-* mds: many fixes (Yan Zheng)
-* mds: misc bug fixes with clustered MDSs and failure recovery
-* mds: misc bug fixes with readdir
-* mds: new encoding for all data types (to allow forward/backward compatbility) (Greg Farnum)
-* mds: store and update backpointers/traces on directory, file objects (Sam Lang)
-* mon: 'osd crush add|link|unlink|add-bucket ...' commands
-* mon: ability to tune leveldb
-* mon: approximate recovery, IO workload stats
-* mon: avoid marking entire CRUSH subtrees out (e.g., if an entire rack goes offline)
-* mon: config-keys service to store arbitrary data on monitor
-* mon: easy adjustment of crush tunables via 'ceph osd crush tunables ...'
-* mon: easy creation of crush rules vai 'ceph osd rule ...'
-* mon: fix data conversion/upgrade problem (from bobtail)
-* mon: improved trimming behavior
-* mon: many fixes
-* mon: new 'ceph df [detail]' command
-* mon: new checks for identifying and reporting clock drift
-* mon: rearchitected to utilize single instance of paxos and a key/value store (Joao Luis)
-* mon: safety check for pool deletion
-* mon: shut down safely if disk approaches full (Joao Luis)
-* mon: trigger leveldb compaction on trim
-* msgr: fix comparison of IPv6 addresses (fixes monitor bringup via ceph-deploy, chef)
-* msgr: fixed race in connection reset
-* msgr: optionally tune TCP buffer size to avoid throughput collapse (Jim Schutt)
-* much code cleanup and optimization (Danny Al-Gaaf)
-* osd, librados: ability to list watchers (David Zafman)
-* osd, librados: fixes to the LIST_SNAPS operation
-* osd, librados: new listsnaps command (David Zafman)
-* osd: a few journaling bug fixes
-* osd: ability to tune leveldb
-* osd: add 'noscrub', 'nodeepscrub' osdmap flags (David Zafman)
-* osd: better prevention of wedging OSDs with ENOSPC
-* osd: ceph-filestore-dump tool for debugging
-* osd: connection handling bug fixes
-* osd: deep-scrub omap keys/values
-* osd: default to libaio for the journal (some performance boost)
-* osd: fix hang in 'journal aio = true' mode (Sage Weil)
-* osd: fix pg log trimming (avoids memory bloat on degraded clusters)
-* osd: fix udev rules for RHEL/CentOS systems
-* osd: fixed bug in journal checksums (Sam Just)
-* osd: improved client request throttling
-* osd: improved handling when disk fills up (David Zafman)
-* osd: improved journal corruption detection (Sam Just)
-* osd: improved detection of corrupted journals
-* osd: improvements to scrub error repair
-* osd: make tracking of object snapshot metadata more efficient (Sam Just)
-* osd: many small fixes
-* osd: misc fixes to PG split (Sam Just)
-* osd: move pg info, log into leveldb (== better performance) (David Zafman)
-* osd: notify mon on clean shutdown to avoid IO stall
-* osd: per-rados pool quotas (objects, bytes)
-* osd: refactored watch/notify infrastructure (fixes protocol, removes many bugs) (Sam Just)
-* osd: support for improved hashing of PGs across OSDs via HASHPSPOOL pool flag and feature
-* osd: tool to export, import, and delete PGs from an individual OSD data store
-* osd: trim log more aggressively, avoid appearance of leak memory
-* osd: validate snap collections on startup
-* osd: verify snap collections on startup (Sam Just)
-* radosgw: ACL grants in headers (Caleb Miles)
-* radosgw: ability to listen to fastcgi via a port (Guilhem Lettron)
-* radosgw: fix object copy onto self (Yehuda Sadeh)
-* radosgw: misc fixes
-* rbd-fuse: new tool, package
-* rbd: avoid FIEMAP when importing from file (it can be buggy)
-* rbd: incremental backups
-* rbd: only set STRIPINGV2 feature if striping parameters are incompatible with old versions
-* rbd: require --allow-shrink for resizing images down
-* rbd: udevadm settle on map/unmap to avoid various races (Dan Mick)
-* rbd: wait for udev to settle in strategic places (avoid spurious errors, failures)
-* rgw: CORS support
-* rgw: allow buckets with '_'
-* rgw: fix Content-Length on 32-bit machines (Jan Harkes)
-* rgw: fix log rotation
-* rgw: fix object corruption on COPY to self
-* rgw: fixed >4MB range requests (Jan Harkes)
-* rgw: new sysvinit script for rpm-based systems
-* rpm/deb: do not remove /var/lib/ceph on purge (v0.59 was the only release to do so)
-* sysvinit: try to start all daemons despite early failures
-* upstart: automatically set osd weight based on df (Guilhem Lettron)
-* use less memory for logging by default
-
-
-v0.60
-=====
-
-Upgrading
----------
-
-* Please note that the recently added librados 'list_snaps' function
- call is in a state of flux and is changing slightly in v0.61. You
- are advised not to make use of it in v0.59 or v0.60.
-
-Notable Changes
----------------
-
-* osd: make tracking of object snapshot metadata more efficient (Sam Just)
-* osd: misc fixes to PG split (Sam Just)
-* osd: improve journal corruption detection (Sam Just)
-* osd: improve handling when disk fills up (David Zafman)
-* osd: add 'noscrub', 'nodeepscrub' osdmap flags (David Zafman)
-* osd: fix hang in 'journal aio = true' mode (Sage Weil)
-* ceph-disk-prepare: fix mkfs args on old distros (Alexandre Marangone)
-* ceph-disk-activate: improve multicluster support, error handling (Sage Weil)
-* librbd: optionally wait for flush before enabling writeback (Josh Durgin)
-* crush: update weights for all instances of an item, not just the first (Sage Weil)
-* mon: shut down safely if disk approaches full (Joao Luis)
-* rgw: fix Content-Length on 32-bit machines (Jan Harkes)
-* mds: store and update backpointers/traces on directory, file objects (Sam Lang)
-* mds: improve session cleanup (Sage Weil)
-* mds, ceph-fuse: fix bugs with replayed requests after MDS restart (Sage Weil)
-* ceph-fuse: enable kernel cache invalidation (Sam Lang)
-* libcephfs: new topo API requests for Hadoop (Noah Watkins)
-* ceph-fuse: session handling cleanup, bug fixes (Sage Weil)
-* much code cleanup and optimization (Danny Al-Gaaf)
-* use less memory for logging by default
-* upstart: automatically set osd weight based on df (Guilhem Lettron)
-* init-ceph, mkcephfs: close a few security holes with -a (Sage Weil)
-* rpm/deb: do not remove /var/lib/ceph on purge (v0.59 was the only release to do so)
-
-
-v0.59
-=====
-
-Upgrading
----------
-
-* The monitor is using a completely new storage strategy and
- intra-cluster protocol. This means that v0.59 and pre-v0.59
- monitors do not talk to each other. When you upgrade each one, it
- will convert its local data store to the new format. Once you
- upgrade a majority, the quorum will be formed using the new protocol
- and the old monitors will be blocked out until they too get
- upgraded. For this reason, we recommend not running a mixed-version
- cluster for very long.
-
-* ceph-mon now requires the creation of its data directory prior to
- --mkfs, similarly to what happens on ceph-osd. This directory is no
- longer automatically created, and custom scripts should be adjusted to
- reflect just that.
-
-
-Notable Changes
----------------
-
- * mon: rearchitected to utilize single instance of paxos and a key/value store (Joao Luis)
- * mon: new 'ceph df [detail]' command
- * osd: support for improved hashing of PGs across OSDs via HASHPSPOOL pool flag and feature
- * osd: refactored watch/notify infrastructure (fixes protocol, removes many bugs) (Sam Just)
- * osd, librados: ability to list watchers (David Zafman)
- * osd, librados: new listsnaps command (David Zafman)
- * osd: trim log more aggressively, avoid appearance of leak memory
- * osd: misc split fixes
- * osd: a few journaling bug fixes
- * osd: connection handling bug fixes
- * rbd: avoid FIEMAP when importing from file (it can be buggy)
- * librados: fix linger bugs (Josh Durgin)
- * librbd: fixed flatten deadlock (Josh Durgin)
- * rgw: fixed >4MB range requests (Jan Harkes)
- * rgw: fix log rotation
- * mds: allow xattrs on root
- * ceph-fuse: fix statfs(2) reporting
- * msgr: optionally tune TCP buffer size to avoid throughput collapse (Jim Schutt)
- * consume less memory for logging by default
- * always use system leveldb (Gary Lowell)
-
-
-
-v0.58
-=====
-
-Upgrading
----------
-
-* The monitor now enforces that MDS names be unique. If you have
- multiple daemons start with with the same id (e.g., ``mds.a``) the
- second one will implicitly mark the first as failed. This makes
- things less confusing and makes a daemon restart faster (we no
- longer wait for the stopped daemon to time out) but existing
- multi-mds configurations may need to be adjusted accordingly to give
- daemons unique names.
-
-Notable Changes
----------------
-
- * librbd: fixed some locking issues with flatten (Josh Durgin)
- * rbd: udevadm settle on map/unmap to avoid various races (Dan Mick)
- * osd: move pg info, log into leveldb (== better performance) (David Zafman)
- * osd: fix pg log trimming (avoids memory bloat on degraded clusters)
- * osd: fixed bug in journal checksums (Sam Just)
- * osd: verify snap collections on startup (Sam Just)
- * ceph-disk-prepare/activate: support for dm-crypt (Alexandre Marangone)
- * ceph-disk-prepare/activate: support for sysvinit, directories or partitions (not full disks)
- * msgr: fixed race in connection reset
- * msgr: fix comparison of IPv6 addresses (fixes monitor bringup via ceph-deploy, chef)
- * radosgw: fix object copy onto self (Yehuda Sadeh)
- * radosgw: ACL grants in headers (Caleb Miles)
- * radosgw: ability to listen to fastcgi via a port (Guilhem Lettron)
- * mds: new encoding for all data types (to allow forward/backward compatbility) (Greg Farnum)
- * mds: fast failover between MDSs (enforce unique mds names)
- * crush: ability to create, remove rules via CLI
- * many many cleanups (Danny Al-Gaaf)
- * buffer unit testing (Loic Dachary)
- * fixed log rotation (Gary Lowell)
-
-v0.57
-=====
-
-This development release has a lot of additional functionality
-accumulated over the last couple months. Most of the bug fixes (with
-the notable exception of the MDS related work) has already been
-backported to v0.56.x, and is not mentioned here.
-
-Upgrading
----------
-
-* The 'ceph osd pool delete <poolname>' and 'rados rmpool <poolname>'
- now have safety interlocks with loud warnings that make you confirm
- pool removal. Any scripts curenty rely on these functions zapping
- data without confirmation need to be adjusted accordingly.
-
-Notable Changes
----------------
-
-* osd: default to libaio for the journal (some performance boost)
-* osd: validate snap collections on startup
-* osd: ceph-filestore-dump tool for debugging
-* osd: deep-scrub omap keys/values
-* ceph tool: some CLI interface cleanups
-* mon: easy adjustment of crush tunables via 'ceph osd crush tunables ...'
-* mon: easy creation of crush rules vai 'ceph osd rule ...'
-* mon: approximate recovery, IO workload stats
-* mon: avoid marking entire CRUSH subtrees out (e.g., if an entire rack goes offline)
-* mon: safety check for pool deletion
-* mon: new checks for identifying and reporting clock drift
-* radosgw: misc fixes
-* rbd: wait for udev to settle in strategic places (avoid spurious errors, failures)
-* rbd-fuse: new tool, package
-* mds, ceph-fuse: manage layouts via xattrs
-* mds: misc bug fixes with clustered MDSs and failure recovery
-* mds: misc bug fixes with readdir
-* libcephfs: many fixes, cleanups with the Java bindings
-* auth: ability to require new cephx signatures on messages (still off by default)
-
-
-
-v0.56.7 "bobtail"
-=================
-
-This bobtail update fixes a range of radosgw bugs (including an easily
-triggered crash from multi-delete), a possible data corruption issue
-with power failure on XFS, and several OSD problems, including a
-memory "leak" that will affect aged clusters.
-
-Notable changes
----------------
-
-* ceph-fuse: create finisher flags after fork()
-* debian: fix prerm/postinst hooks; do not restart daemons on upgrade
-* librados: fix async aio completion wakeup (manifests as rbd hang)
-* librados: fix hang when osd becomes full and then not full
-* librados: fix locking for aio completion refcounting
-* librbd python bindings: fix stripe_unit, stripe_count
-* librbd: make image creation default configurable
-* mon: fix validation of mds ids in mon commands
-* osd: avoid excessive disk updates during peering
-* osd: avoid excessive memory usage on scrub
-* osd: avoid heartbeat failure/suicide when scrubbing
-* osd: misc minor bug fixes
-* osd: use fdatasync instead of sync_file_range (may avoid xfs power-loss corruption)
-* rgw: escape prefix correctly when listing objects
-* rgw: fix copy attrs
-* rgw: fix crash on multi delete
-* rgw: fix locking/crash when using ops log socket
-* rgw: fix usage logging
-* rgw: handle deep uri resources
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.7.txt>`.
-
-
-v0.56.6 "bobtail"
-=================
-
-Notable changes
----------------
-
-* rgw: fix garbage collection
-* rpm: fix package dependencies
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.6.txt>`.
-
-
-v0.56.5 "bobtail"
-=================
-
-Upgrading
----------
-
-* ceph-disk[-prepare,-activate] behavior has changed in various ways.
- There should not be any compatibility issues, but chef users should
- be aware.
-
-Notable changes
----------------
-
-* mon: fix recording of quorum feature set (important for argonaut -> bobtail -> cuttlefish mon upgrades)
-* osd: minor peering bug fixes
-* osd: fix a few bugs when pools are renamed
-* osd: fix occasionally corrupted pg stats
-* osd: fix behavior when broken v0.56[.0] clients connect
-* rbd: avoid FIEMAP ioctl on import (it is broken on some kernels)
-* librbd: fixes for several request/reply ordering bugs
-* librbd: only set STRIPINGV2 feature on new images when needed
-* librbd: new async flush method to resolve qemu hangs (requires QEMU update as well)
-* librbd: a few fixes to flatten
-* ceph-disk: support for dm-crypt
-* ceph-disk: many backports to allow bobtail deployments with ceph-deploy, chef
-* sysvinit: do not stop starting daemons on first failure
-* udev: fixed rules for redhat-based distros
-* build fixes for raring
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.5.txt>`.
-
-v0.56.4 "bobtail"
-=================
-
-Upgrading
----------
-
-* There is a fix in the syntax for the output of 'ceph osd tree --format=json'.
-
-* The MDS disk format has changed from prior releases *and* from v0.57. In particular,
- upgrades to v0.56.4 are safe, but you cannot move from v0.56.4 to v0.57 if you are using
- the MDS for CephFS; you must upgrade directly to v0.58 (or later) instead.
-
-Notable changes
----------------
-
-* mon: fix bug in bringup with IPv6
-* reduce default memory utilization by internal logging (all daemons)
-* rgw: fix for bucket removal
-* rgw: reopen logs after log rotation
-* rgw: fix multipat upload listing
-* rgw: don't copy object when copied onto self
-* osd: fix caps parsing for pools with - or _
-* osd: allow pg log trimming when degraded, scrubbing, recoverying (reducing memory consumption)
-* osd: fix potential deadlock when 'journal aio = true'
-* osd: various fixes for collection creation/removal, rename, temp collections
-* osd: various fixes for PG split
-* osd: deep-scrub omap key/value data
-* osd: fix rare bug in journal replay
-* osd: misc fixes for snapshot tracking
-* osd: fix leak in recovery reservations on pool deletion
-* osd: fix bug in connection management
-* osd: fix for op ordering when rebalancing
-* ceph-fuse: report file system size with correct units
-* mds: get and set directory layout policies via virtual xattrs
-* mds: on-disk format revision (see upgrading note above)
-* mkcephfs, init-ceph: close potential security issues with predictable filenames
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.4.txt>`.
-
-v0.56.3 "bobtail"
-=================
-
-This release has several bug fixes surrounding OSD stability. Most
-significantly, an issue with OSDs being unresponsive shortly after
-startup (and occasionally crashing due to an internal heartbeat check)
-is resolved. Please upgrade.
-
-Upgrading
----------
-
-* A bug was fixed in which the OSDMap epoch for PGs without any IO
- requests was not recorded. If there are pools in the cluster that
- are completely idle (for example, the ``data`` and ``metadata``
- pools normally used by CephFS), and a large number of OSDMap epochs
- have elapsed since the ``ceph-osd`` daemon was last restarted, those
- maps will get reprocessed when the daemon restarts. This process
- can take a while if there are a lot of maps. A workaround is to
- 'touch' any idle pools with IO prior to restarting the daemons after
- packages are upgraded::
-
- rados bench 10 write -t 1 -b 4096 -p {POOLNAME}
-
- This will typically generate enough IO to touch every PG in the pool
- without generating significant cluster load, and also cleans up any
- temporary objects it creates.
-
-Notable changes
----------------
-
-* osd: flush peering work queue prior to start
-* osd: persist osdmap epoch for idle PGs
-* osd: fix and simplify connection handling for heartbeats
-* osd: avoid crash on invalid admin command
-* mon: fix rare races with monitor elections and commands
-* mon: enforce that OSD reweights be between 0 and 1 (NOTE: not CRUSH weights)
-* mon: approximate client, recovery bandwidth logging
-* radosgw: fixed some XML formatting to conform to Swift API inconsistency
-* radosgw: fix usage accounting bug; add repair tool
-* radosgw: make fallback URI configurable (necessary on some web servers)
-* librbd: fix handling for interrupted 'unprotect' operations
-* mds, ceph-fuse: allow file and directory layouts to be modified via virtual xattrs
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.3.txt>`.
-
-
-v0.56.2 "bobtail"
-=================
-
-This release has a wide range of bug fixes, stability improvements, and some performance improvements. Please upgrade.
-
-Upgrading
----------
-
-* The meaning of the 'osd scrub min interval' and 'osd scrub max
- interval' has changed slightly. The min interval used to be
- meaningless, while the max interval would only trigger a scrub if
- the load was sufficiently low. Now, the min interval option works
- the way the old max interval did (it will trigger a scrub after this
- amount of time if the load is low), while the max interval will
- force a scrub regardless of load. The default options have been
- adjusted accordingly. If you have customized these in ceph.conf,
- please review their values when upgrading.
-
-* CRUSH maps that are generated by default when calling ``ceph-mon
- --mkfs`` directly now distribute replicas across hosts instead of
- across OSDs. Any provisioning tools that are being used by Ceph may
- be affected, although probably for the better, as distributing across
- hosts is a much more commonly sought behavior. If you use
- ``mkcephfs`` to create the cluster, the default CRUSH rule is still
- inferred by the number of hosts and/or racks in the initial ceph.conf.
-
-Notable changes
----------------
-
-* osd: snapshot trimming fixes
-* osd: scrub snapshot metadata
-* osd: fix osdmap trimming
-* osd: misc peering fixes
-* osd: stop heartbeating with peers if internal threads are stuck/hung
-* osd: PG removal is friendlier to other workloads
-* osd: fix recovery start delay (was causing very slow recovery)
-* osd: fix scheduling of explicitly requested scrubs
-* osd: fix scrub interval config options
-* osd: improve recovery vs client io tuning
-* osd: improve 'slow request' warning detail for better diagnosis
-* osd: default CRUSH map now distributes across hosts, not OSDs
-* osd: fix crash on 32-bit hosts triggered by librbd clients
-* librbd: fix error handling when talking to older OSDs
-* mon: fix a few rare crashes
-* ceph command: ability to easily adjust CRUSH tunables
-* radosgw: object copy does not copy source ACLs
-* rados command: fix omap command usage
-* sysvinit script: set ulimit -n properly on remote hosts
-* msgr: fix narrow race with message queuing
-* fixed compilation on some old distros (e.g., RHEL 5.x)
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.2.txt>`.
-
-
-v0.56.1 "bobtail"
-=================
-
-This release has two critical fixes. Please upgrade.
-
-Upgrading
----------
-
-* There is a protocol compatibility problem between v0.56 and any
- other version that is now fixed. If your radosgw or RBD clients are
- running v0.56, they will need to be upgraded too. If they are
- running a version prior to v0.56, they can be left as is.
-
-Notable changes
----------------
-* osd: fix commit sequence for XFS, ext4 (or any other non-btrfs) to prevent data loss on power cycle or kernel panic
-* osd: fix compatibility for CALL operation
-* osd: process old osdmaps prior to joining cluster (fixes slow startup)
-* osd: fix a couple of recovery-related crashes
-* osd: fix large io requests when journal is in (non-default) aio mode
-* log: fix possible deadlock in logging code
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.56.1.txt>`.
-
-v0.56 "bobtail"
-===============
-
-Bobtail is the second stable release of Ceph, named in honor of the
-`Bobtail Squid`: http://en.wikipedia.org/wiki/Bobtail_squid.
-
-Key features since v0.48 "argonaut"
------------------------------------
-
-* Object Storage Daemon (OSD): improved threading, small-io performance, and performance during recovery
-* Object Storage Daemon (OSD): regular "deep" scrubbing of all stored data to detect latent disk errors
-* RADOS Block Device (RBD): support for copy-on-write clones of images.
-* RADOS Block Device (RBD): better client-side caching.
-* RADOS Block Device (RBD): advisory image locking
-* Rados Gateway (RGW): support for efficient usage logging/scraping (for billing purposes)
-* Rados Gateway (RGW): expanded S3 and Swift API coverage (e.g., POST, multi-object delete)
-* Rados Gateway (RGW): improved striping for large objects
-* Rados Gateway (RGW): OpenStack Keystone integration
-* RPM packages for Fedora, RHEL/CentOS, OpenSUSE, and SLES
-* mkcephfs: support for automatically formatting and mounting XFS and ext4 (in addition to btrfs)
-
-Upgrading
----------
-
-Please refer to the document `Upgrading from Argonaut to Bobtail`_ for details.
-
-.. _Upgrading from Argonaut to Bobtail: ../install/upgrading-ceph/#upgrading-from-argonaut-to-bobtail
-
-* Cephx authentication is now enabled by default (since v0.55).
- Upgrading a cluster without adjusting the Ceph configuration will
- likely prevent the system from starting up on its own. We recommend
- first modifying the configuration to indicate that authentication is
- disabled, and only then upgrading to the latest version::
-
- auth client required = none
- auth service required = none
- auth cluster required = none
-
-* Ceph daemons can be upgraded one-by-one while the cluster is online
- and in service.
-
-* The ``ceph-osd`` daemons must be upgraded and restarted *before* any
- ``radosgw`` daemons are restarted, as they depend on some new
- ceph-osd functionality. (The ``ceph-mon``, ``ceph-osd``, and
- ``ceph-mds`` daemons can be upgraded and restarted in any order.)
-
-* Once each individual daemon has been upgraded and restarted, it
- cannot be downgraded.
-
-* The cluster of ``ceph-mon`` daemons will migrate to a new internal
- on-wire protocol once all daemons in the quorum have been upgraded.
- Upgrading only a majority of the nodes (e.g., two out of three) may
- expose the cluster to a situation where a single additional failure
- may compromise availability (because the non-upgraded daemon cannot
- participate in the new protocol). We recommend not waiting for an
- extended period of time between ``ceph-mon`` upgrades.
-
-* The ops log and usage log for radosgw are now off by default. If
- you need these logs (e.g., for billing purposes), you must enable
- them explicitly. For logging of all operations to objects in the
- ``.log`` pool (see ``radosgw-admin log ...``)::
-
- rgw enable ops log = true
-
- For usage logging of aggregated bandwidth usage (see ``radosgw-admin
- usage ...``)::
-
- rgw enable usage log = true
-
-* You should not create or use "format 2" RBD images until after all
- ``ceph-osd`` daemons have been upgraded. Note that "format 1" is
- still the default. You can use the new ``ceph osd ls`` and
- ``ceph tell osd.N version`` commands to doublecheck your cluster.
- ``ceph osd ls`` will give a list of all OSD IDs that are part of the
- cluster, and you can use that to write a simple shell loop to display
- all the OSD version strings: ::
-
- for i in $(ceph osd ls); do
- ceph tell osd.${i} version
- done
-
-
-Compatibility changes
----------------------
-
-* The 'ceph osd create [<uuid>]' command now rejects an argument that
- is not a UUID. (Previously it would take take an optional integer
- OSD id.) This correct syntax has been 'ceph osd create [<uuid>]'
- since v0.47, but the older calling convention was being silently
- ignored.
-
-* The CRUSH map root nodes now have type ``root`` instead of type
- ``pool``. This avoids confusion with RADOS pools, which are not
- directly related. Any scripts or tools that use the ``ceph osd
- crush ...`` commands may need to be adjusted accordingly.
-
-* The ``ceph osd pool create <poolname> <pgnum>`` command now requires
- the ``pgnum`` argument. Previously this was optional, and would
- default to 8, which was almost never a good number.
-
-* Degraded mode (when there fewer than the desired number of replicas)
- is now more configurable on a per-pool basis, with the min_size
- parameter. By default, with min_size 0, this allows I/O to objects
- with N - floor(N/2) replicas, where N is the total number of
- expected copies. Argonaut behavior was equivalent to having min_size
- = 1, so I/O would always be possible if any completely up to date
- copy remained. min_size = 1 could result in lower overall
- availability in certain cases, such as flapping network partitions.
-
-* The sysvinit start/stop script now defaults to adjusting the max
- open files ulimit to 16384. On most systems the default is 1024, so
- this is an increase and won't break anything. If some system has a
- higher initial value, however, this change will lower the limit.
- The value can be adjusted explicitly by adding an entry to the
- ``ceph.conf`` file in the appropriate section. For example::
-
- [global]
- max open files = 32768
-
-* 'rbd lock list' and 'rbd showmapped' no longer use tabs as
- separators in their output.
-
-* There is configurable limit on the number of PGs when creating a new
- pool, to prevent a user from accidentally specifying a ridiculous
- number for pg_num. It can be adjusted via the 'mon max pool pg num'
- option on the monitor, and defaults to 65536 (the current max
- supported by the Linux kernel client).
-
-* The osd capabilities associated with a rados user have changed
- syntax since 0.48 argonaut. The new format is mostly backwards
- compatible, but there are two backwards-incompatible changes:
-
- * specifying a list of pools in one grant, i.e.
- 'allow r pool=foo,bar' is now done in separate grants, i.e.
- 'allow r pool=foo, allow r pool=bar'.
-
- * restricting pool access by pool owner ('allow r uid=foo') is
- removed. This feature was not very useful and unused in practice.
-
- The new format is documented in the ceph-authtool man page.
-
-* 'rbd cp' and 'rbd rename' use rbd as the default destination pool,
- regardless of what pool the source image is in. Previously they
- would default to the same pool as the source image.
-
-* 'rbd export' no longer prints a message for each object written. It
- just reports percent complete like other long-lasting operations.
-
-* 'ceph osd tree' now uses 4 decimal places for weight so output is
- nicer for humans
-
-* Several monitor operations are now idempotent:
-
- * ceph osd pool create
- * ceph osd pool delete
- * ceph osd pool mksnap
- * ceph osd rm
- * ceph pg <pgid> revert
-
-Notable changes
----------------
-
-* auth: enable cephx by default
-* auth: expanded authentication settings for greater flexibility
-* auth: sign messages when using cephx
-* build fixes for Fedora 18, CentOS/RHEL 6
-* ceph: new 'osd ls' and 'osd tell <osd.N> version' commands
-* ceph-debugpack: misc improvements
-* ceph-disk-prepare: creates and labels GPT partitions
-* ceph-disk-prepare: support for external journals, default mount/mkfs options, etc.
-* ceph-fuse/libcephfs: many misc fixes, admin socket debugging
-* ceph-fuse: fix handling for .. in root directory
-* ceph-fuse: many fixes (including memory leaks, hangs)
-* ceph-fuse: mount helper (mount.fuse.ceph) for use with /etc/fstab
-* ceph.spec: misc packaging fixes
-* common: thread pool sizes can now be adjusted at runtime
-* config: $pid is now available as a metavariable
-* crush: default root of tree type is now 'root' instead of 'pool' (to avoid confusiong wrt rados pools)
-* crush: fixed retry behavior with chooseleaf via tunable
-* crush: tunables documented; feature bit now present and enforced
-* libcephfs: java wrapper
-* librados: several bug fixes (rare races, locking errors)
-* librados: some locking fixes
-* librados: watch/notify fixes, misc memory leaks
-* librbd: a few fixes to 'discard' support
-* librbd: fine-grained striping feature
-* librbd: fixed memory leaks
-* librbd: fully functional and documented image cloning
-* librbd: image (advisory) locking
-* librbd: improved caching (of object non-existence)
-* librbd: 'flatten' command to sever clone parent relationship
-* librbd: 'protect'/'unprotect' commands to prevent clone parent from being deleted
-* librbd: clip requests past end-of-image.
-* librbd: fixes an issue with some windows guests running in qemu (remove floating point usage)
-* log: fix in-memory buffering behavior (to only write log messages on crash)
-* mds: fix ino release on abort session close, relative getattr path, mds shutdown, other misc items
-* mds: misc fixes
-* mkcephfs: fix for default keyring, osd data/journal locations
-* mkcephfs: support for formatting xfs, ext4 (as well as btrfs)
-* init: support for automatically mounting xfs and ext4 osd data directories
-* mon, radosgw, ceph-fuse: fixed memory leaks
-* mon: improved ENOSPC, fs error checking
-* mon: less-destructive ceph-mon --mkfs behavior
-* mon: misc fixes
-* mon: more informative info about stuck PGs in 'health detail'
-* mon: information about recovery and backfill in 'pg <pgid> query'
-* mon: new 'osd crush create-or-move ...' command
-* mon: new 'osd crush move ...' command lets you rearrange your CRUSH hierarchy
-* mon: optionally dump 'osd tree' in json
-* mon: configurable cap on maximum osd number (mon max osd)
-* mon: many bug fixes (various races causing ceph-mon crashes)
-* mon: new on-disk metadata to facilitate future mon changes (post-bobtail)
-* mon: election bug fixes
-* mon: throttle client messages (limit memory consumption)
-* mon: throttle osd flapping based on osd history (limits osdmap ΄thrashing' on overloaded or unhappy clusters)
-* mon: 'report' command for dumping detailed cluster status (e.g., for use when reporting bugs)
-* mon: osdmap flags like noup, noin now cause a health warning
-* msgr: improved failure handling code
-* msgr: many bug fixes
-* osd, mon: honor new 'nobackfill' and 'norecover' osdmap flags
-* osd, mon: use feature bits to lock out clients lacking CRUSH tunables when they are in use
-* osd: backfill reservation framework (to avoid flooding new osds with backfill data)
-* osd: backfill target reservations (improve performance during recovery)
-* osd: better tracking of recent slow operations
-* osd: capability grammar improvements, bug fixes
-* osd: client vs recovery io prioritization
-* osd: crush performance improvements
-* osd: default journal size to 5 GB
-* osd: experimental support for PG "splitting" (pg_num adjustment for existing pools)
-* osd: fix memory leak on certain error paths
-* osd: fixed detection of EIO errors from fs on read
-* osd: major refactor of PG peering and threading
-* osd: many bug fixes
-* osd: more/better dump info about in-progress operations
-* osd: new caps structure (see compatibility notes)
-* osd: new 'deep scrub' will compare object content across replicas (once per week by default)
-* osd: new 'lock' rados class for generic object locking
-* osd: optional 'min' pg size
-* osd: recovery reservations
-* osd: scrub efficiency improvement
-* osd: several out of order reply bug fixes
-* osd: several rare peering cases fixed
-* osd: some performance improvements related to request queuing
-* osd: use entire device if journal is a block device
-* osd: use syncfs(2) when kernel supports it, even if glibc does not
-* osd: various fixes for out-of-order op replies
-* rados: ability to copy, rename pools
-* rados: bench command now cleans up after itself
-* rados: 'cppool' command to copy rados pools
-* rados: 'rm' now accepts a list of objects to be removed
-* radosgw: POST support
-* radosgw: REST API for managing usage stats
-* radosgw: fix bug in bucket stat updates
-* radosgw: fix copy-object vs attributes
-* radosgw: fix range header for large objects, ETag quoting, GMT dates, other compatibility fixes
-* radosgw: improved garbage collection framework
-* radosgw: many small fixes, cleanups
-* radosgw: openstack keystone integration
-* radosgw: stripe large (non-multipart) objects
-* radosgw: support for multi-object deletes
-* radosgw: support for swift manifest objects
-* radosgw: vanity bucket dns names
-* radosgw: various API compatibility fixes
-* rbd: import from stdin, export to stdout
-* rbd: new 'ls -l' option to view images with metadata
-* rbd: use generic id and keyring options for 'rbd map'
-* rbd: don't issue usage on errors
-* udev: fix symlink creation for rbd images containing partitions
-* upstart: job files for all daemon types (not enabled by default)
-* wireshark: ceph protocol dissector patch updated
-
-
-v0.54
-=====
-
-Upgrading
----------
-
-* The osd capabilities associated with a rados user have changed
- syntax since 0.48 argonaut. The new format is mostly backwards
- compatible, but there are two backwards-incompatible changes:
-
- * specifying a list of pools in one grant, i.e.
- 'allow r pool=foo,bar' is now done in separate grants, i.e.
- 'allow r pool=foo, allow r pool=bar'.
-
- * restricting pool access by pool owner ('allow r uid=foo') is
- removed. This feature was not very useful and unused in practice.
-
- The new format is documented in the ceph-authtool man page.
-
-* Bug fixes to the new osd capability format parsing properly validate
- the allowed operations. If an existing rados user gets permissions
- errors after upgrading, its capabilities were probably
- misconfigured. See the ceph-authtool man page for details on osd
- capabilities.
-
-* 'rbd lock list' and 'rbd showmapped' no longer use tabs as
- separators in their output.
-
-
-v0.48.3 "argonaut"
-==================
-
-This release contains a critical fix that can prevent data loss or
-corruption after a power loss or kernel panic event. Please upgrade
-immediately.
-
-Upgrading
----------
-
-* If you are using the undocumented ``ceph-disk-prepare`` and
- ``ceph-disk-activate`` tools, they have several new features and
- some additional functionality. Please review the changes in
- behavior carefully before upgrading.
-* The .deb packages now require xfsprogs.
-
-Notable changes
----------------
-
-* filestore: fix op_seq write order (fixes journal replay after power loss)
-* osd: fix occasional indefinitely hung "slow" request
-* osd: fix encoding for pool_snap_info_t when talking to pre-v0.48 clients
-* osd: fix heartbeat check
-* osd: reduce log noise about rbd watch
-* log: fixes for deadlocks in the internal logging code
-* log: make log buffer size adjustable
-* init script: fix for 'ceph status' across machines
-* radosgw: fix swift error handling
-* radosgw: fix swift authentication concurrency bug
-* radosgw: don't cache large objects
-* radosgw: fix some memory leaks
-* radosgw: fix timezone conversion on read
-* radosgw: relax date format restrictions
-* radosgw: fix multipart overwrite
-* radosgw: stop processing requests on client disconnect
-* radosgw: avoid adding port to url that already has a port
-* radosgw: fix copy to not override ETAG
-* common: make parsing of ip address lists more forgiving
-* common: fix admin socket compatibility with old protocol (for collectd plugin)
-* mon: drop dup commands on paxos reset
-* mds: fix loner selection for multiclient workloads
-* mds: fix compat bit checks
-* ceph-fuse: fix segfault on startup when keyring is missing
-* ceph-authtool: fix usage
-* ceph-disk-activate: misc backports
-* ceph-disk-prepare: misc backports
-* debian: depend on xfsprogs (we use xfs by default)
-* rpm: build rpms, some related Makefile changes
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.48.3argonaut.txt>`.
-
-v0.48.2 "argonaut"
-==================
-
-Upgrading
----------
-
-* The default search path for keyring files now includes /etc/ceph/ceph.$name.keyring. If such files are present on your cluster, be aware that by default they may now be used.
-
-* There are several changes to the upstart init files. These have not been previously documented or recommended. Any existing users should review the changes before upgrading.
-
-* The ceph-disk-prepare and ceph-disk-active scripts have been updated significantly. These have not been previously documented or recommended. Any existing users should review the changes before upgrading.
-
-Notable changes
----------------
-
-* mkcephfs: fix keyring generation for mds, osd when default paths are used
-* radosgw: fix bug causing occasional corruption of per-bucket stats
-* radosgw: workaround to avoid previously corrupted stats from going negative
-* radosgw: fix bug in usage stats reporting on busy buckets
-* radosgw: fix Content-Range: header for objects bigger than 2 GB.
-* rbd: avoid leaving watch acting when command line tool errors out (avoids 30s delay on subsequent operations)
-* rbd: friendlier use of --pool/--image options for import (old calling convention still works)
-* librbd: fix rare snapshot creation race (could "lose" a snap when creation is concurrent)
-* librbd: fix discard handling when spanning holes
-* librbd: fix memory leak on discard when caching is enabled
-* objecter: misc fixes for op reordering
-* objecter: fix for rare startup-time deadlock waiting for osdmap
-* ceph: fix usage
-* mon: reduce log noise about "check_sub"
-* ceph-disk-activate: misc fixes, improvements
-* ceph-disk-prepare: partition and format osd disks automatically
-* upstart: start everyone on a reboot
-* upstart: always update the osd crush location on start if specified in the config
-* config: add /etc/ceph/ceph.$name.keyring to default keyring search path
-* ceph.spec: don't package crush headers
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.48.2argonaut.txt>`.
-
-v0.48.1 "argonaut"
-==================
-
-Upgrading
----------
-
-* The radosgw usage trim function was effectively broken in v0.48. Earlier it would remove more usage data than what was requested. This is fixed in v0.48.1, but the fix is incompatible. The v0.48 radosgw-admin tool cannot be used to initiate the trimming; please use the v0.48.1 version.
-
-* v0.48.1 now explicitly indicates support for the CRUSH_TUNABLES feature. No other version of Ceph requires this, yet, but future versions will when the tunables are adjusted from their historical defaults.
-
-* There are no other compatibility changes between v0.48.1 and v0.48.
-
-Notable changes
----------------
-
-* mkcephfs: use default 'keyring', 'osd data', 'osd journal' paths when not specified in conf
-* msgr: various fixes to socket error handling
-* osd: reduce scrub overhead
-* osd: misc peering fixes (past_interval sharing, pgs stuck in 'peering' states)
-* osd: fail on EIO in read path (do not silently ignore read errors from failing disks)
-* osd: avoid internal heartbeat errors by breaking some large transactions into pieces
-* osd: fix osdmap catch-up during startup (catch up and then add daemon to osdmap)
-* osd: fix spurious 'misdirected op' messages
-* osd: report scrub status via 'pg ... query'
-* rbd: fix race when watch registrations are resent
-* rbd: fix rbd image id assignment scheme (new image data objects have slightly different names)
-* rbd: fix perf stats for cache hit rate
-* rbd tool: fix off-by-one in key name (crash when empty key specified)
-* rbd: more robust udev rules
-* rados tool: copy object, pool commands
-* radosgw: fix in usage stats trimming
-* radosgw: misc API compatibility fixes (date strings, ETag quoting, swift headers, etc.)
-* ceph-fuse: fix locking in read/write paths
-* mon: fix rare race corrupting on-disk data
-* config: fix admin socket 'config set' command
-* log: fix in-memory log event gathering
-* debian: remove crush headers, include librados-config
-* rpm: add ceph-disk-{activate, prepare}
-
-For more detailed information, see :download:`the complete changelog <changelog/v0.48.1argonaut.txt>`.
-
-v0.48 "argonaut"
-================
-
-Upgrading
----------
-
-* This release includes a disk format upgrade. Each ceph-osd daemon, upon startup, will migrate its locally stored data to the new format. This process can take a while (for large object counts, even hours), especially on non-btrfs file systems.
-
-* To keep the cluster available while the upgrade is in progress, we recommend you upgrade a storage node or rack at a time, and wait for the cluster to recover each time. To prevent the cluster from moving data around in response to the OSD daemons being down for minutes or hours, you may want to::
-
- ceph osd set noout
-
- This will prevent the cluster from marking down OSDs as "out" and re-replicating the data elsewhere. If you do this, be sure to clear the flag when the upgrade is complete::
-
- ceph osd unset noout
-
-* There is a encoding format change internal to the monitor cluster. The monitor daemons are careful to switch to the new format only when all members of the quorum support it. However, that means that a partial quorum with new code may move to the new format, and a recovering monitor running old code will be unable to join (it will crash). If this occurs, simply upgrading the remaining monitor will resolve the problem.
-
-* The ceph tool's -s and -w commands from previous versions are incompatible with this version. Upgrade your client tools at the same time you upgrade the monitors if you rely on those commands.
-
-* It is not possible to downgrade from v0.48 to a previous version.
-
-Notable changes
----------------
-
-* osd: stability improvements
-* osd: capability model simplification
-* osd: simpler/safer --mkfs (no longer removes all files; safe to re-run on active osd)
-* osd: potentially buggy FIEMAP behavior disabled by default
-* rbd: caching improvements
-* rbd: improved instrumentation
-* rbd: bug fixes
-* radosgw: new, scalable usage logging infrastructure
-* radosgw: per-user bucket limits
-* mon: streamlined process for setting up authentication keys
-* mon: stability improvements
-* mon: log message throttling
-* doc: improved documentation (ceph, rbd, radosgw, chef, etc.)
-* config: new default locations for daemon keyrings
-* config: arbitrary variable substitutions
-* improved 'admin socket' daemon admin interface (ceph --admin-daemon ...)
-* chef: support for multiple monitor clusters
-* upstart: basic support for monitors, mds, radosgw; osd support still a work in progress.
-
-The new default keyring locations mean that when enabling authentication (``auth supported = cephx``), keyring locations do not need to be specified if the keyring file is located inside the daemon's data directory (``/var/lib/ceph/$type/ceph-$id`` by default).
-
-There is also a lot of librbd code in this release that is laying the groundwork for the upcoming layering functionality, but is not actually used. Likewise, the upstart support is still incomplete and not recommended; we will backport that functionality later if it turns out to be non-disruptive.
-
-
-
-
diff --git a/src/ceph/doc/releases.rst b/src/ceph/doc/releases.rst
deleted file mode 100644
index 5249d56..0000000
--- a/src/ceph/doc/releases.rst
+++ /dev/null
@@ -1,361 +0,0 @@
-=============
-Ceph Releases
-=============
-
-Timeline
---------
-
-+----------------------------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`Dumpling`_|`Emperor`_ |`Firefly`_ |`Giant`_ |`Hammer`_ |`Infernalis`_ |`Jewel`_ |`Kraken`_ |
-| |LTS |Stable |LTS |Stable |LTS |Stable |LTS |Stable |
-+----------------------------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| First release | August | November | May | October | April | November | April | January |
-| | 2013 | 2013 | 2014 | 2014 | 2015 | 2015 | 2016 | 2017 |
-+----------------------------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| Estimated retirement | March | | January | | May | | November | |
-| | 2015 | | 2016 | | 2017 | | 2017 | |
-+----------------------------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| Actual retirement | May | May | April | April | | April 2016 | | |
-| | 2015 | 2014 | 2016 | 2015 | | | | |
-+----------------------------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |Development|`Dumpling`_|`Emperor`_ |`Firefly`_ |`Giant`_ |`Hammer`_ |`Infernalis`_ |`Jewel`_ |`Kraken`_ |
-| |Testing |LTS |Stable |LTS |Stable |LTS |Stable |LTS |Stable |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| July 2017 | 12.1.1 | | | | | | |`10.2.9`_ | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | | | | | |`10.2.8`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| June 2017 |`12.1.0`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| May 2017 |`12.0.3`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| April 2017 |`12.0.2`_ | | | | | | |`10.2.7`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| March 2017 |`12.0.1`_ | | | | | | |`10.2.6`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| February 2017 |`12.0.0`_ | | | | |`0.94.10`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| January 2017 | 11.1.1 | | | | | | | |`11.2.0`_ |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| December 2016 | 11.1.0 | | | | | | |`10.2.5`_ | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | | | | | |`10.2.4`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| October 2016 |`11.0.2`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | 11.0.1 | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| September 2016 | | | | | | | |`10.2.3`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| August 2016 | | | | | |`0.94.9`_ | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | | | |`0.94.8`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| June 2016 | 11.0.0 | | | | | | |`10.2.2`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| May 2016 | | | | | |`0.94.7`_ | |`10.2.1`_ | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| April 2016 |`10.1.2`_ | | | | | | |`10.2.0`_ | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`10.1.1`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| March 2016 |`10.1.0`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`10.0.5`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| February 2016 |`10.0.3`_ | | | | |`0.94.6`_ |`9.2.1`_ | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| January 2016 |`10.0.2`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| December 2015 |`10.0.1`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| November 2015 |`10.0.0`_ | | |`0.80.11`_ | | |`9.2.0`_ | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| October 2015 |`9.1.0`_ | | | | |`0.94.5`_ | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | | | |`0.94.4`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| August 2015 |`9.0.3`_ | | | | |`0.94.3`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| July 2015 |`9.0.2`_ | | |`0.80.10`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| June 2015 |`9.0.1`_ | | | | |`0.94.2`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| May 2015 |`9.0.0`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| April 2015 | | | | |`0.87.2`_ |`0.94.1`_ | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | | | |`0.94`_ | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| March 2015 | | | |`0.80.9`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| February 2015 |`0.93`_ | | | |`0.87.1`_ | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.92`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| January 2015 |`0.91`_ | | |`0.80.8`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| December 2014 |`0.90`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.89`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| November 2014 |`0.88`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| October 2014 |`0.86`_ | | |`0.80.7`_ |`0.87`_ | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | |`0.80.6`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| September 2014 |`0.85`_ |`0.67.11`_ | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| August 2014 |`0.84`_ |`0.67.10`_ | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| July 2014 |`0.83`_ | | |`0.80.5`_ | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | |`0.80.4`_ | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | |`0.80.3`_ | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | | |`0.80.2`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| June 2014 |`0.82`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.81`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| May 2014 | |`0.67.9`_ | |`0.80.1`_ | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | |`0.67.8`_ | |`0.80`_ | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| April 2014 |`0.79`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| March 2014 |`0.78`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| February 2014 |`0.77`_ |`0.67.7`_ | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | |`0.67.6`_ | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| January 2014 |`0.76`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.75`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| December 2013 |`0.74`_ |`0.67.5`_ |`0.72.2`_ | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.73`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| November 2013 | | |`0.72.1`_ | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | | |`0.72`_ | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| October 2013 |`0.71`_ |`0.67.4`_ | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.70`_ | | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| September 2013 |`0.69`_ | | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| |`0.68`_ |`0.67.3`_ | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| August 2013 | |`0.67.2`_ | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | |`0.67.1`_ | | | | | | | |
-| +-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-| | |`0.67`_ | | | | | | | |
-+----------------+-----------+-----------+-----------+-----------+-----------+-----------+--------------+-----------+-----------+
-
-
-.. _12.1.0: ../release-notes#v12-1-0-luminous-rc
-.. _12.0.3: ../release-notes#v12-0-3-luminous-dev
-.. _12.0.2: ../release-notes#v12-0-2-luminous-dev
-.. _12.0.1: ../release-notes#v12-0-1-luminous-dev
-.. _12.0.0: ../release-notes#v12-0-0-luminous-dev
-
-.. _11.2.0: ../release-notes#v11-2-0-kraken
-.. _Kraken: ../release-notes#v11-2-0-kraken
-
-.. _11.0.2: ../release-notes#v11-0-2-kraken
-
-.. _10.2.9: ../release-notes#v10-2-9-jewel
-.. _10.2.8: ../release-notes#v10-2-8-jewel
-.. _10.2.7: ../release-notes#v10-2-7-jewel
-.. _10.2.6: ../release-notes#v10-2-6-jewel
-.. _10.2.5: ../release-notes#v10-2-5-jewel
-.. _10.2.4: ../release-notes#v10-2-4-jewel
-.. _10.2.3: ../release-notes#v10-2-3-jewel
-.. _10.2.2: ../release-notes#v10-2-2-jewel
-.. _10.2.1: ../release-notes#v10-2-1-jewel
-.. _10.2.0: ../release-notes#v10-2-0-jewel
-.. _Jewel: ../release-notes#v10-2-0-jewel
-
-.. _10.1.2: ../release-notes#v10-1-2-jewel-release-candidate
-.. _10.1.1: ../release-notes#v10-1-1-jewel-release-candidate
-.. _10.1.0: ../release-notes#v10-1-0-jewel-release-candidate
-.. _10.0.5: ../release-notes#v10-0-5
-.. _10.0.3: ../release-notes#v10-0-3
-.. _10.0.2: ../release-notes#v10-0-2
-.. _10.0.1: ../release-notes#v10-0-1
-.. _10.0.0: ../release-notes#v10-0-0
-
-.. _9.2.1: ../release-notes#v9-2-1-infernalis
-.. _9.2.0: ../release-notes#v9-2-0-infernalis
-.. _Infernalis: ../release-notes#v9-2-0-infernalis
-
-.. _9.1.0: ../release-notes#v9-1-0
-.. _9.0.3: ../release-notes#v9-0-3
-.. _9.0.2: ../release-notes#v9-0-2
-.. _9.0.1: ../release-notes#v9-0-1
-.. _9.0.0: ../release-notes#v9-0-0
-
-.. _0.94.10: ../release-notes#v0-94-10-hammer
-.. _0.94.9: ../release-notes#v0-94-9-hammer
-.. _0.94.8: ../release-notes#v0-94-8-hammer
-.. _0.94.7: ../release-notes#v0-94-7-hammer
-.. _0.94.6: ../release-notes#v0-94-6-hammer
-.. _0.94.5: ../release-notes#v0-94-5-hammer
-.. _0.94.4: ../release-notes#v0-94-4-hammer
-.. _0.94.3: ../release-notes#v0-94-3-hammer
-.. _0.94.2: ../release-notes#v0-94-2-hammer
-.. _0.94.1: ../release-notes#v0-94-1-hammer
-.. _0.94: ../release-notes#v0-94-hammer
-.. _Hammer: ../release-notes#v0-94-hammer
-
-.. _0.93: ../release-notes#v0-93
-.. _0.92: ../release-notes#v0-92
-.. _0.91: ../release-notes#v0-91
-.. _0.90: ../release-notes#v0-90
-.. _0.89: ../release-notes#v0-89
-.. _0.88: ../release-notes#v0-88
-
-.. _0.87.2: ../release-notes#v0-87-2-giant
-.. _0.87.1: ../release-notes#v0-87-1-giant
-.. _0.87: ../release-notes#v0-87-giant
-.. _Giant: ../release-notes#v0-87-giant
-
-.. _0.86: ../release-notes#v0-86
-.. _0.85: ../release-notes#v0-85
-.. _0.84: ../release-notes#v0-84
-.. _0.83: ../release-notes#v0-83
-.. _0.82: ../release-notes#v0-82
-.. _0.81: ../release-notes#v0-81
-
-.. _0.80.11: ../release-notes#v0-80-11-firefly
-.. _0.80.10: ../release-notes#v0-80-10-firefly
-.. _0.80.9: ../release-notes#v0-80-9-firefly
-.. _0.80.8: ../release-notes#v0-80-8-firefly
-.. _0.80.7: ../release-notes#v0-80-7-firefly
-.. _0.80.6: ../release-notes#v0-80-6-firefly
-.. _0.80.5: ../release-notes#v0-80-5-firefly
-.. _0.80.4: ../release-notes#v0-80-4-firefly
-.. _0.80.3: ../release-notes#v0-80-3-firefly
-.. _0.80.2: ../release-notes#v0-80-2-firefly
-.. _0.80.1: ../release-notes#v0-80-1-firefly
-.. _0.80: ../release-notes#v0-80-firefly
-.. _Firefly: ../release-notes#v0-80-firefly
-
-.. _0.79: ../release-notes#v0-79
-.. _0.78: ../release-notes#v0-78
-.. _0.77: ../release-notes#v0-77
-.. _0.76: ../release-notes#v0-76
-.. _0.75: ../release-notes#v0-75
-.. _0.74: ../release-notes#v0-74
-.. _0.73: ../release-notes#v0-73
-
-.. _0.72.2: ../release-notes#v0-72-2-emperor
-.. _0.72.1: ../release-notes#v0-72-1-emperor
-.. _0.72: ../release-notes#v0-72-emperor
-.. _Emperor: ../release-notes#v0-72-emperor
-
-.. _0.71: ../release-notes#v0-71
-.. _0.70: ../release-notes#v0-70
-.. _0.69: ../release-notes#v0-69
-.. _0.68: ../release-notes#v0-68
-
-.. _0.67.11: ../release-notes#v0-67-11-dumpling
-.. _0.67.10: ../release-notes#v0-67-10-dumpling
-.. _0.67.9: ../release-notes#v0-67-9-dumpling
-.. _0.67.8: ../release-notes#v0-67-8-dumpling
-.. _0.67.7: ../release-notes#v0-67-7-dumpling
-.. _0.67.6: ../release-notes#v0-67-6-dumpling
-.. _0.67.5: ../release-notes#v0-67-5-dumpling
-.. _0.67.4: ../release-notes#v0-67-4-dumpling
-.. _0.67.3: ../release-notes#v0-67-3-dumpling
-.. _0.67.2: ../release-notes#v0-67-2-dumpling
-.. _0.67.1: ../release-notes#v0-67-1-dumpling
-.. _0.67: ../release-notes#v0-67-dumpling
-.. _Dumpling: ../release-notes#v0-67-dumpling
-
-Understanding the release cycle
--------------------------------
-
-The development release cycle is two to four weeks long. Each cycle
-freezes the master development branch and applies `integration and
-upgrade tests <https://github.com/ceph/ceph-qa-suite>`_ for the
-duration of one cycle before it is released and the next release's
-code is frozen for testing. Once released, there is no effort to
-backport fixes; developer focus in on the next development release
-which is usually only a few weeks away.
-
-There are three to four stable releases a year. Each stable release
-will receive a name (e.g., 'Jewel') and bug fix backports at least
-until the next stable release is out.
-
-Every other stable releases is a LTS (Long Term Stable) and will
-receive updates until two LTS are published. For instance Dumpling is
-retired when Hammer is published, Firefly is retired when Jewel is
-published etc. The rationale is that backports to a LTS (Firefly for
-instance) are expected to happen until the next LTS is published
-(Jewel is the LTS following Hammer), to fix bugs and possibly
-backport important features. After the next LTS is published,
-backports are still expected to fix bugs with a focus on whatever can
-prevent upgrades to the next LTS (in our example, fixes to Dumpling
-were published after Firefly was released and until Hammer was
-published, primarily to ensure Dumpling cluster can smoothly migrate
-to Firefly).
-
-* Long Term Stable : until the next two LTS are published
-* Stable release : until the next stable release is published
-* Development / testing release : no backports
-
-For each stable release:
-
-* `Integration and upgrade tests
- <https://github.com/ceph/ceph-qa-suite>`_ are run on a regular basis
- and `their results <http://pulpito.ceph.com/>`_ analyzed by Ceph
- developers.
-* `Issues <http://tracker.ceph.com/projects/ceph/issues?query_id=27>`_
- fixed in the development branch (master) are scheduled to be backported.
-* When an issue found in the stable release is `reported
- <http://tracker.ceph.com/projects/ceph/issues/new>`_, it is
- triaged by Ceph developers.
-* The `stable releases and backport team <http://tracker.ceph.com/projects/ceph-releases>`_
- publishes ``point releases`` including fixes that have been backported to the stable release.
-
-In the timeline, the life time of a LTS is calculated to be
-approximately 18 months after the month of the first release. For
-instance, Dumpling is published August 2013 and 18 months starting
-September 2013 is February 2015, therefore by March 2015 Dumpling
-should be retired. The lifetime of a release may vary because it
-depend on how quickly the stable releases are published. For instance
-although Dumpling theoritical retirement was March 2015, it was
-extended to May 2015.
-
-Release numbers conventions
----------------------------
-
-The first Ceph release back in Jan of 2008 was 0.1. That made sense at
-the time. The versioning scheme did not change until April 2015,
-when 0.94.1 (the first Hammer point release) was published. To avoid reaching
-0.99 (and 0.100 or 1.00?) we have a new strategy.
-
-* x.0.z - development releases (for early testers and the brave at heart)
-* x.1.z - release candidates (for test clusters, brave users)
-* x.2.z - stable/bugfix releases (for users)
-
-``x`` will start at 9 for Infernalis (``I`` is the 9th letter), making
-our first development release of the 9th release cycle 9.0.0.
-Subsequent development releases will be 9.0.1, 9.0.2, etc.
-
-After a couple months we'll have a 9.1.0 (and maybe 9.1.1) release candidate.
-
-A few weeks after that we'll have the Infernalis release 9.2.0, followed
-by stable bug fix updates 9.2.1, 9.2.2, etc., and then begin work on the
-Jewel (10.y.z) release.
diff --git a/src/ceph/doc/scripts/gen_state_diagram.py b/src/ceph/doc/scripts/gen_state_diagram.py
deleted file mode 100755
index fccde26..0000000
--- a/src/ceph/doc/scripts/gen_state_diagram.py
+++ /dev/null
@@ -1,214 +0,0 @@
-#!/usr/bin/env python
-import re
-import sys
-
-
-def do_filter(generator):
- return acc_lines(remove_multiline_comments(to_char(remove_single_line_comments(generator))))
-
-
-def acc_lines(generator):
- current = ""
- for i in generator:
- current += i
- if i == ';' or \
- i == '{' or \
- i == '}':
- yield current.lstrip("\n")
- current = ""
-
-
-def to_char(generator):
- for line in generator:
- for char in line:
- if char is not '\n':
- yield char
- else:
- yield ' '
-
-
-def remove_single_line_comments(generator):
- for i in generator:
- if len(i) and i[0] == '#':
- continue
- yield re.sub(r'//.*', '', i)
-
-
-def remove_multiline_comments(generator):
- saw = ""
- in_comment = False
- for char in generator:
- if in_comment:
- if saw is "*":
- if char is "/":
- in_comment = False
- saw = ""
- if char is "*":
- saw = "*"
- continue
- if saw is "/":
- if char is '*':
- in_comment = True
- saw = ""
- continue
- else:
- yield saw
- saw = ""
- if char is '/':
- saw = "/"
- continue
- yield char
-
-
-class StateMachineRenderer(object):
- def __init__(self):
- self.states = {} # state -> parent
- self.machines = {} # state-> initial
- self.edges = {} # event -> [(state, state)]
-
- self.context = [] # [(context, depth_encountered)]
- self.context_depth = 0
- self.state_contents = {}
- self.subgraphnum = 0
- self.clusterlabel = {}
-
- def __str__(self):
- return "-------------------\n\nstates: %s\n\n machines: %s\n\n edges: %s\n\n context %s\n\n state_contents %s\n\n--------------------" % (
- self.states,
- self.machines,
- self.edges,
- self.context,
- self.state_contents
- )
-
- def read_input(self, input_lines):
- previous_line = None
- for line in input_lines:
- self.get_state(line)
- self.get_event(line)
- # pass two lines at a time to get the context so that regexes can
- # match on split signatures
- self.get_context(line, previous_line)
- previous_line = line
-
- def get_context(self, line, previous_line):
- match = re.search(r"(\w+::)*::(?P<tag>\w+)::\w+\(const (?P<event>\w+)", line)
- if match is None and previous_line is not None:
- # it is possible that we need to match on the previous line as well, so join
- # them to make them one line and try and get this matching
- joined_line = ' '.join([previous_line, line])
- match = re.search(r"(\w+::)*::(?P<tag>\w+)::\w+\(\s*const (?P<event>\w+)", joined_line)
- if match is not None:
- self.context.append((match.group('tag'), self.context_depth, match.group('event')))
- if '{' in line:
- self.context_depth += 1
- if '}' in line:
- self.context_depth -= 1
- while len(self.context) and self.context[-1][1] == self.context_depth:
- self.context.pop()
-
- def get_state(self, line):
- if "boost::statechart::state_machine" in line:
- tokens = re.search(
- r"boost::statechart::state_machine<\s*(\w*),\s*(\w*)\s*>",
- line)
- if tokens is None:
- raise Exception("Error: malformed state_machine line: " + line)
- self.machines[tokens.group(1)] = tokens.group(2)
- self.context.append((tokens.group(1), self.context_depth, ""))
- return
- if "boost::statechart::state" in line:
- tokens = re.search(
- r"boost::statechart::state<\s*(\w*),\s*(\w*)\s*,?\s*(\w*)\s*>",
- line)
- if tokens is None:
- raise Exception("Error: malformed state line: " + line)
- self.states[tokens.group(1)] = tokens.group(2)
- if tokens.group(2) not in self.state_contents.keys():
- self.state_contents[tokens.group(2)] = []
- self.state_contents[tokens.group(2)].append(tokens.group(1))
- if tokens.group(3) is not "":
- self.machines[tokens.group(1)] = tokens.group(3)
- self.context.append((tokens.group(1), self.context_depth, ""))
- return
-
- def get_event(self, line):
- if "boost::statechart::transition" in line:
- for i in re.finditer(r'boost::statechart::transition<\s*([\w:]*)\s*,\s*(\w*)\s*>',
- line):
- if i.group(1) not in self.edges.keys():
- self.edges[i.group(1)] = []
- if len(self.context) is 0:
- raise Exception("no context at line: " + line)
- self.edges[i.group(1)].append((self.context[-1][0], i.group(2)))
- i = re.search("return\s+transit<\s*(\w*)\s*>()", line)
- if i is not None:
- if len(self.context) is 0:
- raise Exception("no context at line: " + line)
- if self.context[-1][2] is "":
- raise Exception("no event in context at line: " + line)
- if self.context[-1][2] not in self.edges.keys():
- self.edges[self.context[-1][2]] = []
- self.edges[self.context[-1][2]].append((self.context[-1][0], i.group(1)))
-
- def emit_dot(self):
- top_level = []
- for state in self.machines.keys():
- if state not in self.states.keys():
- top_level.append(state)
- print >> sys.stderr, "Top Level States: ", str(top_level)
- print """digraph G {"""
- print '\tsize="7,7"'
- print """\tcompound=true;"""
- for i in self.emit_state(top_level[0]):
- print '\t' + i
- for i in self.edges.keys():
- for j in self.emit_event(i):
- print j
- print """}"""
-
- def emit_state(self, state):
- if state in self.state_contents.keys():
- self.clusterlabel[state] = "cluster%s" % (str(self.subgraphnum),)
- yield "subgraph cluster%s {" % (str(self.subgraphnum),)
- self.subgraphnum += 1
- yield """\tlabel = "%s";""" % (state,)
- yield """\tcolor = "blue";"""
- for j in self.state_contents[state]:
- for i in self.emit_state(j):
- yield "\t"+i
- yield "}"
- else:
- found = False
- for (k, v) in self.machines.items():
- if v == state:
- yield state+"[shape=Mdiamond];"
- found = True
- break
- if not found:
- yield state+";"
-
- def emit_event(self, event):
- def append(app):
- retval = "["
- for i in app:
- retval += (i + ",")
- retval += "]"
- return retval
- for (fro, to) in self.edges[event]:
- appendix = ['label="%s"' % (event,)]
- if fro in self.machines.keys():
- appendix.append("ltail=%s" % (self.clusterlabel[fro],))
- while fro in self.machines.keys():
- fro = self.machines[fro]
- if to in self.machines.keys():
- appendix.append("lhead=%s" % (self.clusterlabel[to],))
- while to in self.machines.keys():
- to = self.machines[to]
- yield("%s -> %s %s;" % (fro, to, append(appendix)))
-
-
-INPUT_GENERATOR = do_filter(sys.stdin.xreadlines())
-RENDERER = StateMachineRenderer()
-RENDERER.read_input(INPUT_GENERATOR)
-RENDERER.emit_dot()
diff --git a/src/ceph/doc/start/ceph.conf b/src/ceph/doc/start/ceph.conf
deleted file mode 100644
index e2057ca..0000000
--- a/src/ceph/doc/start/ceph.conf
+++ /dev/null
@@ -1,41 +0,0 @@
-[global]
-
- # For version 0.55 and beyond, you must explicitly enable
- # or disable authentication with "auth" entries in [global].
-
- auth cluster required = cephx
- auth service required = cephx
- auth client required = cephx
-
-[osd]
- osd journal size = 1000
-
- # For ceph-deploy, you can control what type of file system
- # is created via these options.
-
- #osd mkfs type = {fs-type}
- #osd mkfs options {fs-type} = {mkfs options} # default for xfs is "-f"
- #osd mount options {fs-type} = {mount options} # default mount option is "rw,noatime"
-
- # For example, for xfs, the mount option might look like this:
-
- #osd mkfs options xfs = inode64,rw,noatime
-
- # Execute $ hostname to retrieve the name of your host,
- # and replace {hostname} with the name of your host.
- # For the monitor, replace {ip-address} with the IP
- # address of your host.
-
-[mon.a]
-
- host = {hostname}
- mon addr = {ip-address}:6789
-
-[osd.0]
- host = {hostname}
-
-[osd.1]
- host = {hostname}
-
-[mds.a]
- host = {hostname}
diff --git a/src/ceph/doc/start/documenting-ceph.rst b/src/ceph/doc/start/documenting-ceph.rst
deleted file mode 100644
index b4f159c..0000000
--- a/src/ceph/doc/start/documenting-ceph.rst
+++ /dev/null
@@ -1,597 +0,0 @@
-==================
- Documenting Ceph
-==================
-
-The **easiest way** to help the Ceph project is to contribute to the
-documentation. As the Ceph user base grows and the development pace quickens, an
-increasing number of people are updating the documentation and adding new
-information. Even small contributions like fixing spelling errors or clarifying
-instructions will help the Ceph project immensely.
-
-The Ceph documentation source resides in the ``ceph/doc`` directory of the Ceph
-repository, and Python Sphinx renders the source into HTML and manpages. The
-http://ceph.com/docs link currenly displays the ``master`` branch by default,
-but you may view documentation for older branches (e.g., ``argonaut``) or future
-branches (e.g., ``next``) as well as work-in-progress branches by substituting
-``master`` with the branch name you prefer.
-
-
-Making Contributions
-====================
-
-Making a documentation contribution generally involves the same procedural
-sequence as making a code contribution, except that you must build documentation
-source instead of compiling program source. The sequence includes the following
-steps:
-
-#. `Get the Source`_
-#. `Select a Branch`_
-#. `Make a Change`_
-#. `Build the Source`_
-#. `Commit the Change`_
-#. `Push the Change`_
-#. `Make a Pull Request`_
-#. `Notify the Relevant Person`_
-
-Get the Source
---------------
-
-Ceph documentation lives in the Ceph repository right alongside the Ceph source
-code under the ``ceph/doc`` directory. For details on github and Ceph,
-see :ref:`Get Involved`.
-
-The most common way to make contributions is to use the `Fork and Pull`_
-approach. You must:
-
-#. Install git locally. For Debian/Ubuntu, execute::
-
- sudo apt-get install git
-
- For Fedora, execute::
-
- sudo yum install git
-
- For CentOS/RHEL, execute::
-
- sudo yum install git
-
-#. Ensure your ``.gitconfig`` file has your name and email address. ::
-
- [user]
- email = {your-email-address}
- name = {your-name}
-
- For example::
-
- git config --global user.name "John Doe"
- git config --global user.email johndoe@example.com
-
-
-#. Create a `github`_ account (if you don't have one).
-
-#. Fork the Ceph project. See https://github.com/ceph/ceph.
-
-#. Clone your fork of the Ceph project to your local host.
-
-
-Ceph organizes documentation into an information architecture primarily by its
-main components.
-
-- **Ceph Storage Cluster:** The Ceph Storage Cluster documentation resides
- under the ``doc/rados`` directory.
-
-- **Ceph Block Device:** The Ceph Block Device documentation resides under
- the ``doc/rbd`` directory.
-
-- **Ceph Object Storage:** The Ceph Object Storage documentation resides under
- the ``doc/radosgw`` directory.
-
-- **Ceph Filesystem:** The Ceph Filesystem documentation resides under the
- ``doc/cephfs`` directory.
-
-- **Installation (Quick):** Quick start documentation resides under the
- ``doc/start`` directory.
-
-- **Installation (Manual):** Manual installation documentation resides under
- the ``doc/install`` directory.
-
-- **Manpage:** Manpage source resides under the ``doc/man`` directory.
-
-- **Developer:** Developer documentation resides under the ``doc/dev``
- directory.
-
-- **Images:** If you include images such as JPEG or PNG files, you should
- store them under the ``doc/images`` directory.
-
-
-Select a Branch
----------------
-
-When you make small changes to the documentation, such as fixing typographical
-errors or clarifying explanations, use the ``master`` branch (default). You
-should also use the ``master`` branch when making contributions to features that
-are in the current release. ``master`` is the most commonly used branch. ::
-
- git checkout master
-
-When you make changes to documentation that affect an upcoming release, use
-the ``next`` branch. ``next`` is the second most commonly used branch. ::
-
- git checkout next
-
-When you are making substantial contributions such as new features that are not
-yet in the current release; if your contribution is related to an issue with a
-tracker ID; or, if you want to see your documentation rendered on the Ceph.com
-website before it gets merged into the ``master`` branch, you should create a
-branch. To distinguish branches that include only documentation updates, we
-prepend them with ``wip-doc`` by convention, following the form
-``wip-doc-{your-branch-name}``. If the branch relates to an issue filed in
-http://tracker.ceph.com/issues, the branch name incorporates the issue number.
-For example, if a documentation branch is a fix for issue #4000, the branch name
-should be ``wip-doc-4000`` by convention and the relevant tracker URL will be
-http://tracker.ceph.com/issues/4000.
-
-.. note:: Please do not mingle documentation contributions and source code
- contributions in a single pull request. Editors review the documentation
- and engineers review source code changes. When you keep documentation
- pull requests separate from source code pull requests, it simplifies the
- process and we won't have to ask you to resubmit the requests separately.
-
-Before you create your branch name, ensure that it doesn't already exist in the
-local or remote repository. ::
-
- git branch -a | grep wip-doc-{your-branch-name}
-
-If it doesn't exist, create your branch::
-
- git checkout -b wip-doc-{your-branch-name}
-
-
-Make a Change
--------------
-
-Modifying a document involves opening a restructuredText file, changing
-its contents, and saving the changes. See `Documentation Style Guide`_ for
-details on syntax requirements.
-
-Adding a document involves creating a new restructuredText file under the
-``doc`` directory or its subdirectories and saving the file with a ``*.rst``
-file extension. You must also include a reference to the document: a hyperlink
-or a table of contents entry. The ``index.rst`` file of a top-level directory
-usually contains a TOC, where you can add the new file name. All documents must
-have a title. See `Headings`_ for details.
-
-Your new document doesn't get tracked by ``git`` automatically. When you want
-to add the document to the repository, you must use ``git add
-{path-to-filename}``. For example, from the top level directory of the
-repository, adding an ``example.rst`` file to the ``rados`` subdirectory would
-look like this::
-
- git add doc/rados/example.rst
-
-Deleting a document involves removing it from the repository with ``git rm
-{path-to-filename}``. For example::
-
- git rm doc/rados/example.rst
-
-You must also remove any reference to a deleted document from other documents.
-
-
-Build the Source
-----------------
-
-To build the documentation, navigate to the ``ceph`` repository directory::
-
- cd ceph
-
-To build the documentation on Debian/Ubuntu, Fedora, or CentOS/RHEL, execute::
-
- admin/build-doc
-
-To scan for the reachablity of external links, execute::
-
- admin/build-doc linkcheck
-
-Executing ``admin/build-doc`` will create a ``build-doc`` directory under ``ceph``.
-You may need to create a directory under ``ceph/build-doc`` for output of Javadoc
-files. ::
-
- mkdir -p output/html/api/libcephfs-java/javadoc
-
-The build script ``build-doc`` will produce an output of errors and warnings.
-You MUST fix errors in documents you modified before committing a change, and you
-SHOULD fix warnings that are related to syntax you modified.
-
-.. important:: You must validate ALL HYPERLINKS. If a hyperlink is broken,
- it automatically breaks the build!
-
-Once you build the documentation set, you may navigate to the source directory
-to view it::
-
- cd build-doc/output
-
-There should be an ``html`` directory and a ``man`` directory containing
-documentation in HTML and manpage formats respectively.
-
-Build the Source (First Time)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Ceph uses Python Sphinx, which is generally distribution agnostic. The first
-time you build Ceph documentation, it will generate a doxygen XML tree, which
-is a bit time consuming.
-
-Python Sphinx does have some dependencies that vary across distributions. The
-first time you build the documentation, the script will notify you if you do not
-have the dependencies installed. To run Sphinx and build documentation successfully,
-the following packages are required:
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="30%"><col width="30%"><col width="30%"></colgroup><tbody valign="top"><tr><td><h3>Debian/Ubuntu</h3>
-
-- gcc
-- python-dev
-- python-pip
-- python-virtualenv
-- python-sphinx
-- libxml2-dev
-- libxslt1-dev
-- doxygen
-- graphviz
-- ant
-- ditaa
-
-.. raw:: html
-
- </td><td><h3>Fedora</h3>
-
-- gcc
-- python-devel
-- python-pip
-- python-virtualenv
-- python-docutils
-- python-jinja2
-- python-pygments
-- python-sphinx
-- libxml2-devel
-- libxslt1-devel
-- doxygen
-- graphviz
-- ant
-- ditaa
-
-.. raw:: html
-
- </td><td><h3>CentOS/RHEL</h3>
-
-- gcc
-- python-devel
-- python-pip
-- python-virtualenv
-- python-docutils
-- python-jinja2
-- python-pygments
-- python-sphinx
-- libxml2-dev
-- libxslt1-dev
-- doxygen
-- graphviz
-- ant
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-
-Install each dependency that is not installed on your host. For Debian/Ubuntu
-distributions, execute the following::
-
- sudo apt-get install gcc python-dev python-pip python-virtualenv libxml2-dev libxslt-dev doxygen graphviz ant ditaa
- sudo apt-get install python-sphinx
-
-For Fedora distributions, execute the following::
-
- sudo yum install gcc python-devel python-pip python-virtualenv libxml2-devel libxslt-devel doxygen graphviz ant
- sudo pip install html2text
- sudo yum install python-jinja2 python-pygments python-docutils python-sphinx
- sudo yum install jericho-html ditaa
-
-For CentOS/RHEL distributions, it is recommended to have ``epel`` (Extra
-Packages for Enterprise Linux) repository as it provides some extra packages
-which are not available in the default repository. To install ``epel``, execute
-the following::
-
- sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
-For CentOS/RHEL distributions, execute the following::
-
- sudo yum install gcc python-devel python-pip python-virtualenv libxml2-devel libxslt-devel doxygen graphviz ant
- sudo pip install html2text
-
-For CentOS/RHEL distributions, the remaining python packages are not available in
-the default and ``epel`` repositories. So, use http://rpmfind.net/ to find the
-packages. Then, download them from a mirror and install them. For example::
-
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/python-jinja2-2.7.2-2.el7.noarch.rpm
- sudo yum install python-jinja2-2.7.2-2.el7.noarch.rpm
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/python-pygments-1.4-9.el7.noarch.rpm
- sudo yum install python-pygments-1.4-9.el7.noarch.rpm
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
- sudo yum install python-docutils-0.11-0.2.20130715svn7687.el7.noarch.rpm
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/python-sphinx-1.1.3-11.el7.noarch.rpm
- sudo yum install python-sphinx-1.1.3-11.el7.noarch.rpm
-
-Ceph documentation makes extensive use of `ditaa`_, which is not presently built
-for CentOS/RHEL7. You must install ``ditaa`` if you are making changes to
-``ditaa`` diagrams so that you can verify that they render properly before you
-commit new or modified ``ditaa`` diagrams. You may retrieve compatible required
-packages for CentOS/RHEL distributions and install them manually. To run ``ditaa``
-on CentOS/RHEL7, following dependencies are required:
-
-- jericho-html
-- jai-imageio-core
-- batik
-
-Use http://rpmfind.net/ to find compatible ``ditaa`` and the dependencies.
-Then, download them from a mirror and install them. For example::
-
- wget http://rpmfind.net/linux/fedora/linux/releases/22/Everything/x86_64/os/Packages/j/jericho-html-3.3-4.fc22.noarch.rpm
- sudo yum install jericho-html-3.3-4.fc22.noarch.rpm
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/jai-imageio-core-1.2-0.14.20100217cvs.el7.noarch.rpm
- sudo yum install jai-imageio-core-1.2-0.14.20100217cvs.el7.noarch.rpm
- wget http://rpmfind.net/linux/centos/7/os/x86_64/Packages/batik-1.8-0.12.svn1230816.el7.noarch.rpm
- sudo yum install batik-1.8-0.12.svn1230816.el7.noarch.rpm
- wget http://rpmfind.net/linux/fedora/linux/releases/22/Everything/x86_64/os/Packages/d/ditaa-0.9-13.r74.fc21.noarch.rpm
- sudo yum install ditaa-0.9-13.r74.fc21.noarch.rpm
-
-Once you have installed all these packages, build the documentation by following
-the steps given in `Build the Source`_.
-
-
-Commit the Change
------------------
-
-Ceph documentation commits are simple, but follow a strict convention:
-
-- A commit SHOULD have 1 file per commit (it simplifies rollback). You MAY
- commit multiple files with related changes. Unrelated changes SHOULD NOT
- be put into the same commit.
-- A commit MUST have a comment.
-- A commit comment MUST be prepended with ``doc:``. (strict)
-- The comment summary MUST be one line only. (strict)
-- Additional comments MAY follow a blank line after the summary,
- but should be terse.
-- A commit MAY include ``Fixes: #{bug number}``.
-- Commits MUST include ``Signed-off-by: Firstname Lastname <email>``. (strict)
-
-.. tip:: Follow the foregoing convention particularly where it says
- ``(strict)`` or you will be asked to modify your commit to comply with
- this convention.
-
-The following is a common commit comment (preferred)::
-
- doc: Fixes a spelling error and a broken hyperlink.
-
- Signed-off-by: John Doe <john.doe@gmail.com>
-
-
-The following comment includes a reference to a bug. ::
-
- doc: Fixes a spelling error and a broken hyperlink.
-
- Fixes: #1234
-
- Signed-off-by: John Doe <john.doe@gmail.com>
-
-
-The following comment includes a terse sentence following the comment summary.
-There is a carriage return between the summary line and the description::
-
- doc: Added mon setting to monitor config reference
-
- Describes 'mon setting', which is a new setting added
- to config_opts.h.
-
- Signed-off-by: John Doe <john.doe@gmail.com>
-
-
-To commit changes, execute the following::
-
- git commit -a
-
-
-An easy way to manage your documentation commits is to use visual tools for
-``git``. For example, ``gitk`` provides a graphical interface for viewing the
-repository history, and ``git-gui`` provides a graphical interface for viewing
-your uncommitted changes, staging them for commit, committing the changes and
-pushing them to your forked Ceph repository.
-
-
-For Debian/Ubuntu, execute::
-
- sudo apt-get install gitk git-gui
-
-For Fedora/CentOS/RHEL, execute::
-
- sudo yum install gitk git-gui
-
-Then, execute::
-
- cd {git-ceph-repo-path}
- gitk
-
-Finally, select **File->Start git gui** to activate the graphical user interface.
-
-
-Push the Change
----------------
-
-Once you have one or more commits, you must push them from the local copy of the
-repository to ``github``. A graphical tool like ``git-gui`` provides a user
-interface for pushing to the repository. If you created a branch previously::
-
- git push origin wip-doc-{your-branch-name}
-
-Otherwise::
-
- git push
-
-
-Make a Pull Request
--------------------
-
-As noted earlier, you can make documentation contributions using the `Fork and
-Pull`_ approach.
-
-
-
-Notify the Relevant Person
---------------------------
-
-After you make a pull request, notify the relevant person. For general
-documentation pull requests, notify `John Wilkins`_.
-
-
-
-Documentation Style Guide
-=========================
-
-One objective of the Ceph documentation project is to ensure the readability of
-the documentation in both native restructuredText format and its rendered
-formats such as HTML. Navigate to your Ceph repository and view a document in
-its native format. You may notice that it is generally as legible in a terminal
-as it is in its rendered HTML format. Additionally, you may also notice that
-diagrams in ``ditaa`` format also render reasonably well in text mode. ::
-
- cat doc/architecture.rst | less
-
-Review the following style guides to maintain this consistency.
-
-
-Headings
---------
-
-#. **Document Titles:** Document titles use the ``=`` character overline and
- underline with a leading and trailing space on the title text line.
- See `Document Title`_ for details.
-
-#. **Section Titles:** Section tiles use the ``=`` character underline with no
- leading or trailing spaces for text. Two carriage returns should precede a
- section title (unless an inline reference precedes it). See `Sections`_ for
- details.
-
-#. **Subsection Titles:** Subsection titles use the ``_`` character underline
- with no leading or trailing spaces for text. Two carriage returns should
- precede a subsection title (unless an inline reference precedes it).
-
-
-Text Body
----------
-
-As a general rule, we prefer text to wrap at column 80 so that it is legible in
-a command line interface without leading or trailing white space. Where
-possible, we prefer to maintain this convention with text, lists, literal text
-(exceptions allowed), tables, and ``ditaa`` graphics.
-
-#. **Paragraphs**: Paragraphs have a leading and a trailing carriage return,
- and should be 80 characters wide or less so that the documentation can be
- read in native format in a command line terminal.
-
-#. **Literal Text:** To create an example of literal text (e.g., command line
- usage), terminate the preceding paragraph with ``::`` or enter a carriage
- return to create an empty line after the preceding paragraph; then, enter
- ``::`` on a separate line followed by another empty line. Then, begin the
- literal text with tab indentation (preferred) or space indentation of 3
- characters.
-
-#. **Indented Text:** Indented text such as bullet points
- (e.g., ``- some text``) may span multiple lines. The text of subsequent
- lines should begin at the same character position as the text of the
- indented text (less numbers, bullets, etc.).
-
- Indented text may include literal text examples. Whereas, text indentation
- should be done with spaces, literal text examples should be indented with
- tabs. This convention enables you to add an additional indented paragraph
- following a literal example by leaving a blank line and beginning the
- subsequent paragraph with space indentation.
-
-#. **Numbered Lists:** Numbered lists should use autonumbering by starting
- a numbered indent with ``#.`` instead of the actual number so that
- numbered paragraphs can be repositioned without requiring manual
- renumbering.
-
-#. **Code Examples:** Ceph supports the use of the
- ``.. code-block::<language>`` role, so that you can add highlighting to
- source examples. This is preferred for source code. However, use of this
- tag will cause autonumbering to restart at 1 if it is used as an example
- within a numbered list. See `Showing code examples`_ for details.
-
-
-Paragraph Level Markup
-----------------------
-
-The Ceph project uses `paragraph level markup`_ to highlight points.
-
-#. **Tip:** Use the ``.. tip::`` directive to provide additional information
- that assists the reader or steers the reader away from trouble.
-
-#. **Note**: Use the ``.. note::`` directive to highlight an important point.
-
-#. **Important:** Use the ``.. important::`` directive to highlight important
- requirements or caveats (e.g., anything that could lead to data loss). Use
- this directive sparingly, because it renders in red.
-
-#. **Version Added:** Use the ``.. versionadded::`` directive for new features
- or configuration settings so that users know the minimum release for using
- a feature.
-
-#. **Version Changed:** Use the ``.. versionchanged::`` directive for changes
- in usage or configuration settings.
-
-#. **Deprecated:** Use the ``.. deprecated::`` directive when CLI usage,
- a feature or a configuration setting is no longer preferred or will be
- discontinued.
-
-#. **Topic:** Use the ``.. topic::`` directive to encapsulate text that is
- outside the main flow of the document. See the `topic directive`_ for
- additional details.
-
-
-TOC and Hyperlinks
-------------------
-
-All documents must be linked from another document or a table of contents,
-otherwise you will receive a warning when building the documentation.
-
-The Ceph project uses the ``.. toctree::`` directive. See `The TOC tree`_
-for details. When rendering a TOC, consider specifying the ``:maxdepth:``
-parameter so the rendered TOC is reasonably terse.
-
-Document authors should prefer to use the ``:ref:`` syntax where a link target
-contains a specific unique identifier (e.g., ``.. _unique-target-id:``), and a
-reference to the target specifically references the target (e.g.,
-``:ref:`unique-target-id```) so that if source files are moved or the
-information architecture changes, the links will still work. See
-`Cross referencing arbitrary locations`_ for details.
-
-Ceph documentation also uses the backtick (accent grave) character followed by
-the link text, another backtick and an underscore. Sphinx allows you to
-incorporate the link destination inline; however, we prefer to use the use the
-``.. _Link Text: ../path`` convention at the bottom of the document, because it
-improves the readability of the document in a command line interface.
-
-
-.. _Python Sphinx: http://sphinx-doc.org
-.. _resturcturedText: http://docutils.sourceforge.net/rst.html
-.. _Fork and Pull: https://help.github.com/articles/using-pull-requests
-.. _github: http://github.com
-.. _ditaa: http://ditaa.sourceforge.net/
-.. _Document Title: http://docutils.sourceforge.net/docs/user/rst/quickstart.html#document-title-subtitle
-.. _Sections: http://docutils.sourceforge.net/docs/user/rst/quickstart.html#sections
-.. _Cross referencing arbitrary locations: http://sphinx-doc.org/markup/inline.html#ref-role
-.. _The TOC tree: http://sphinx-doc.org/markup/toctree.html
-.. _Showing code examples: http://sphinx-doc.org/markup/code.html
-.. _paragraph level markup: http://sphinx-doc.org/markup/para.html
-.. _topic directive: http://docutils.sourceforge.net/docs/ref/rst/directives.html#topic
-.. _John Wilkins: mailto:jowilkin@redhat.com
diff --git a/src/ceph/doc/start/get-involved.rst b/src/ceph/doc/start/get-involved.rst
deleted file mode 100644
index 5cbb1d6..0000000
--- a/src/ceph/doc/start/get-involved.rst
+++ /dev/null
@@ -1,91 +0,0 @@
-.. _Get Involved:
-
-=====================================
- Get Involved in the Ceph Community!
-=====================================
-
-These are exciting times in the Ceph community! Get involved!
-
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-|Channel | Description | Contact Info |
-+======================+=================================================+===============================================+
-| **Blog** | Check the Ceph Blog_ periodically to keep track | http://ceph.com/community/blog/ |
-| | of Ceph progress and important announcements. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Planet Ceph** | Check the blog aggregation on Planet Ceph for | https://ceph.com/category/planet/ |
-| | interesting stories, information and | |
-| | experiences from the community. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Wiki** | Check the Ceph Wiki is a source for more | http://wiki.ceph.com/ |
-| | community and development related topics. You | |
-| | can find there information about blueprints, | |
-| | meetups, the Ceph Developer Summits and more. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **IRC** | As you delve into Ceph, you may have questions | |
-| | or feedback for the Ceph development team. Ceph | - **Domain:** ``irc.oftc.net`` |
-| | developers are often available on the ``#ceph`` | - **Channels:** ``#ceph`` and ``#ceph-devel`` |
-| | IRC channel particularly during daytime hours | |
-| | in the US Pacific Standard Time zone. | |
-| | While ``#ceph`` is a good starting point for | |
-| | cluster operators and users, there is also | |
-| | ``#ceph-devel`` dedicated for Ceph developers. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **User List** | Ask and answer user-related questions by | |
-| | subscribing to the email list at | - `User Subscribe`_ |
-| | ceph-users@ceph.com. You can opt out of | - `User Unsubscribe`_ |
-| | the email list at any time by unsubscribing. | - `Gmane for Users`_ |
-| | A simple email is all it takes! If you would | |
-| | like to view the archives, go to Gmane. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Devel List** | Keep in touch with developer activity by | |
-| | subscribing to the email list at | - `Devel Subscribe`_ |
-| | ceph-devel@vger.kernel.org. You can opt out of | - `Devel Unsubscribe`_ |
-| | the email list at any time by unsubscribing. | - `Gmane for Developers`_ |
-| | A simple email is all it takes! If you would | |
-| | like to view the archives, go to Gmane. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Commit List** | Subscribe to ceph-commit@ceph.com to get | |
-| | commit notifications via email. You can opt out | - `Commit Subscribe`_ |
-| | of the email list at any time by unsubscribing. | - `Commit Unsubscribe`_ |
-| | A simple email is all it takes! | - `Mailing list archives`_ |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **QA List** | For Quality Assurance (QA) related activities | |
-| | subscribe to this list. You can opt out | - `QA Subscribe`_ |
-| | of the email list at any time by unsubscribing. | - `QA Unsubscribe`_ |
-| | A simple email is all it takes! | - `Mailing list archives`_ |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Community List** | For all discussions related to the Ceph User | |
-| | Committee and other community topics. You can | - `Community Subscribe`_ |
-| | opt out of the email list at any time by | - `Community Unsubscribe`_ |
-| | unsubscribing. A simple email is all it takes! | - `Mailing list archives`_ |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Bug Tracker** | You can help keep Ceph production worthy by | http://tracker.ceph.com/projects/ceph |
-| | filing and tracking bugs, and providing feature | |
-| | requests using the Bug Tracker_. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-| **Source Code** | If you would like to participate in | |
-| | development, bug fixing, or if you just want | - http://github.com/ceph/ceph |
-| | the very latest code for Ceph, you can get it | - http://ceph.com/download |
-| | at http://github.com. See `Ceph Source Code`_ | |
-| | for details on cloning from github. | |
-+----------------------+-------------------------------------------------+-----------------------------------------------+
-
-
-
-.. _Devel Subscribe: mailto:majordomo@vger.kernel.org?body=subscribe+ceph-devel
-.. _Devel Unsubscribe: mailto:majordomo@vger.kernel.org?body=unsubscribe+ceph-devel
-.. _User Subscribe: mailto:ceph-users-join@lists.ceph.com
-.. _User Unsubscribe: mailto:ceph-users-leave@lists.ceph.com
-.. _Community Subscribe: mailto:ceph-community-join@lists.ceph.com
-.. _Community Unsubscribe: mailto:ceph-community-leave@lists.ceph.com
-.. _Commit Subscribe: mailto:ceph-commit-join@lists.ceph.com
-.. _Commit Unsubscribe: mailto:ceph-commit-leave@lists.ceph.com
-.. _QA Subscribe: mailto:ceph-qa-join@lists.ceph.com
-.. _QA Unsubscribe: mailto:ceph-qa-leave@lists.ceph.com
-.. _Gmane for Developers: http://news.gmane.org/gmane.comp.file-systems.ceph.devel
-.. _Gmane for Users: http://news.gmane.org/gmane.comp.file-systems.ceph.user
-.. _Mailing list archives: http://lists.ceph.com/
-.. _Blog: http://ceph.com/community/blog/
-.. _Tracker: http://tracker.ceph.com/
-.. _Ceph Source Code: http://github.com/ceph/ceph
-
diff --git a/src/ceph/doc/start/hardware-recommendations.rst b/src/ceph/doc/start/hardware-recommendations.rst
deleted file mode 100644
index eac5dc8..0000000
--- a/src/ceph/doc/start/hardware-recommendations.rst
+++ /dev/null
@@ -1,350 +0,0 @@
-==========================
- Hardware Recommendations
-==========================
-
-Ceph was designed to run on commodity hardware, which makes building and
-maintaining petabyte-scale data clusters economically feasible.
-When planning out your cluster hardware, you will need to balance a number
-of considerations, including failure domains and potential performance
-issues. Hardware planning should include distributing Ceph daemons and
-other processes that use Ceph across many hosts. Generally, we recommend
-running Ceph daemons of a specific type on a host configured for that type
-of daemon. We recommend using other hosts for processes that utilize your
-data cluster (e.g., OpenStack, CloudStack, etc).
-
-
-.. tip:: Check out the Ceph blog too. Articles like `Ceph Write Throughput 1`_,
- `Ceph Write Throughput 2`_, `Argonaut v. Bobtail Performance Preview`_,
- `Bobtail Performance - I/O Scheduler Comparison`_ and others are an
- excellent source of information.
-
-
-CPU
-===
-
-Ceph metadata servers dynamically redistribute their load, which is CPU
-intensive. So your metadata servers should have significant processing power
-(e.g., quad core or better CPUs). Ceph OSDs run the :term:`RADOS` service, calculate
-data placement with :term:`CRUSH`, replicate data, and maintain their own copy of the
-cluster map. Therefore, OSDs should have a reasonable amount of processing power
-(e.g., dual core processors). Monitors simply maintain a master copy of the
-cluster map, so they are not CPU intensive. You must also consider whether the
-host machine will run CPU-intensive processes in addition to Ceph daemons. For
-example, if your hosts will run computing VMs (e.g., OpenStack Nova), you will
-need to ensure that these other processes leave sufficient processing power for
-Ceph daemons. We recommend running additional CPU-intensive processes on
-separate hosts.
-
-
-RAM
-===
-
-Metadata servers and monitors must be capable of serving their data quickly, so
-they should have plenty of RAM (e.g., 1GB of RAM per daemon instance). OSDs do
-not require as much RAM for regular operations (e.g., 500MB of RAM per daemon
-instance); however, during recovery they need significantly more RAM (e.g., ~1GB
-per 1TB of storage per daemon). Generally, more RAM is better.
-
-
-Data Storage
-============
-
-Plan your data storage configuration carefully. There are significant cost and
-performance tradeoffs to consider when planning for data storage. Simultaneous
-OS operations, and simultaneous request for read and write operations from
-multiple daemons against a single drive can slow performance considerably.
-
-.. important:: Since Ceph has to write all data to the journal before it can
- send an ACK (for XFS at least), having the journal and OSD
- performance in balance is really important!
-
-
-Hard Disk Drives
-----------------
-
-OSDs should have plenty of hard disk drive space for object data. We recommend a
-minimum hard disk drive size of 1 terabyte. Consider the cost-per-gigabyte
-advantage of larger disks. We recommend dividing the price of the hard disk
-drive by the number of gigabytes to arrive at a cost per gigabyte, because
-larger drives may have a significant impact on the cost-per-gigabyte. For
-example, a 1 terabyte hard disk priced at $75.00 has a cost of $0.07 per
-gigabyte (i.e., $75 / 1024 = 0.0732). By contrast, a 3 terabyte hard disk priced
-at $150.00 has a cost of $0.05 per gigabyte (i.e., $150 / 3072 = 0.0488). In the
-foregoing example, using the 1 terabyte disks would generally increase the cost
-per gigabyte by 40%--rendering your cluster substantially less cost efficient.
-Also, the larger the storage drive capacity, the more memory per Ceph OSD Daemon
-you will need, especially during rebalancing, backfilling and recovery. A
-general rule of thumb is ~1GB of RAM for 1TB of storage space.
-
-.. tip:: Running multiple OSDs on a single disk--irrespective of partitions--is
- **NOT** a good idea.
-
-.. tip:: Running an OSD and a monitor or a metadata server on a single
- disk--irrespective of partitions--is **NOT** a good idea either.
-
-Storage drives are subject to limitations on seek time, access time, read and
-write times, as well as total throughput. These physical limitations affect
-overall system performance--especially during recovery. We recommend using a
-dedicated drive for the operating system and software, and one drive for each
-Ceph OSD Daemon you run on the host. Most "slow OSD" issues arise due to running
-an operating system, multiple OSDs, and/or multiple journals on the same drive.
-Since the cost of troubleshooting performance issues on a small cluster likely
-exceeds the cost of the extra disk drives, you can accelerate your cluster
-design planning by avoiding the temptation to overtax the OSD storage drives.
-
-You may run multiple Ceph OSD Daemons per hard disk drive, but this will likely
-lead to resource contention and diminish the overall throughput. You may store a
-journal and object data on the same drive, but this may increase the time it
-takes to journal a write and ACK to the client. Ceph must write to the journal
-before it can ACK the write.
-
-Ceph best practices dictate that you should run operating systems, OSD data and
-OSD journals on separate drives.
-
-
-Solid State Drives
-------------------
-
-One opportunity for performance improvement is to use solid-state drives (SSDs)
-to reduce random access time and read latency while accelerating throughput.
-SSDs often cost more than 10x as much per gigabyte when compared to a hard disk
-drive, but SSDs often exhibit access times that are at least 100x faster than a
-hard disk drive.
-
-SSDs do not have moving mechanical parts so they are not necessarily subject to
-the same types of limitations as hard disk drives. SSDs do have significant
-limitations though. When evaluating SSDs, it is important to consider the
-performance of sequential reads and writes. An SSD that has 400MB/s sequential
-write throughput may have much better performance than an SSD with 120MB/s of
-sequential write throughput when storing multiple journals for multiple OSDs.
-
-.. important:: We recommend exploring the use of SSDs to improve performance.
- However, before making a significant investment in SSDs, we **strongly
- recommend** both reviewing the performance metrics of an SSD and testing the
- SSD in a test configuration to gauge performance.
-
-Since SSDs have no moving mechanical parts, it makes sense to use them in the
-areas of Ceph that do not use a lot of storage space (e.g., journals).
-Relatively inexpensive SSDs may appeal to your sense of economy. Use caution.
-Acceptable IOPS are not enough when selecting an SSD for use with Ceph. There
-are a few important performance considerations for journals and SSDs:
-
-- **Write-intensive semantics:** Journaling involves write-intensive semantics,
- so you should ensure that the SSD you choose to deploy will perform equal to
- or better than a hard disk drive when writing data. Inexpensive SSDs may
- introduce write latency even as they accelerate access time, because
- sometimes high performance hard drives can write as fast or faster than
- some of the more economical SSDs available on the market!
-
-- **Sequential Writes:** When you store multiple journals on an SSD you must
- consider the sequential write limitations of the SSD too, since they may be
- handling requests to write to multiple OSD journals simultaneously.
-
-- **Partition Alignment:** A common problem with SSD performance is that
- people like to partition drives as a best practice, but they often overlook
- proper partition alignment with SSDs, which can cause SSDs to transfer data
- much more slowly. Ensure that SSD partitions are properly aligned.
-
-While SSDs are cost prohibitive for object storage, OSDs may see a significant
-performance improvement by storing an OSD's journal on an SSD and the OSD's
-object data on a separate hard disk drive. The ``osd journal`` configuration
-setting defaults to ``/var/lib/ceph/osd/$cluster-$id/journal``. You can mount
-this path to an SSD or to an SSD partition so that it is not merely a file on
-the same disk as the object data.
-
-One way Ceph accelerates CephFS filesystem performance is to segregate the
-storage of CephFS metadata from the storage of the CephFS file contents. Ceph
-provides a default ``metadata`` pool for CephFS metadata. You will never have to
-create a pool for CephFS metadata, but you can create a CRUSH map hierarchy for
-your CephFS metadata pool that points only to a host's SSD storage media. See
-`Mapping Pools to Different Types of OSDs`_ for details.
-
-
-Controllers
------------
-
-Disk controllers also have a significant impact on write throughput. Carefully,
-consider your selection of disk controllers to ensure that they do not create
-a performance bottleneck.
-
-.. tip:: The Ceph blog is often an excellent source of information on Ceph
- performance issues. See `Ceph Write Throughput 1`_ and `Ceph Write
- Throughput 2`_ for additional details.
-
-
-Additional Considerations
--------------------------
-
-You may run multiple OSDs per host, but you should ensure that the sum of the
-total throughput of your OSD hard disks doesn't exceed the network bandwidth
-required to service a client's need to read or write data. You should also
-consider what percentage of the overall data the cluster stores on each host. If
-the percentage on a particular host is large and the host fails, it can lead to
-problems such as exceeding the ``full ratio``, which causes Ceph to halt
-operations as a safety precaution that prevents data loss.
-
-When you run multiple OSDs per host, you also need to ensure that the kernel
-is up to date. See `OS Recommendations`_ for notes on ``glibc`` and
-``syncfs(2)`` to ensure that your hardware performs as expected when running
-multiple OSDs per host.
-
-Hosts with high numbers of OSDs (e.g., > 20) may spawn a lot of threads,
-especially during recovery and rebalancing. Many Linux kernels default to
-a relatively small maximum number of threads (e.g., 32k). If you encounter
-problems starting up OSDs on hosts with a high number of OSDs, consider
-setting ``kernel.pid_max`` to a higher number of threads. The theoretical
-maximum is 4,194,303 threads. For example, you could add the following to
-the ``/etc/sysctl.conf`` file::
-
- kernel.pid_max = 4194303
-
-
-Networks
-========
-
-We recommend that each host have at least two 1Gbps network interface
-controllers (NICs). Since most commodity hard disk drives have a throughput of
-approximately 100MB/second, your NICs should be able to handle the traffic for
-the OSD disks on your host. We recommend a minimum of two NICs to account for a
-public (front-side) network and a cluster (back-side) network. A cluster network
-(preferably not connected to the internet) handles the additional load for data
-replication and helps stop denial of service attacks that prevent the cluster
-from achieving ``active + clean`` states for placement groups as OSDs replicate
-data across the cluster. Consider starting with a 10Gbps network in your racks.
-Replicating 1TB of data across a 1Gbps network takes 3 hours, and 3TBs (a
-typical drive configuration) takes 9 hours. By contrast, with a 10Gbps network,
-the replication times would be 20 minutes and 1 hour respectively. In a
-petabyte-scale cluster, failure of an OSD disk should be an expectation, not an
-exception. System administrators will appreciate PGs recovering from a
-``degraded`` state to an ``active + clean`` state as rapidly as possible, with
-price / performance tradeoffs taken into consideration. Additionally, some
-deployment tools (e.g., Dell's Crowbar) deploy with five different networks,
-but employ VLANs to make hardware and network cabling more manageable. VLANs
-using 802.1q protocol require VLAN-capable NICs and Switches. The added hardware
-expense may be offset by the operational cost savings for network setup and
-maintenance. When using VLANs to handle VM traffic between the cluster
-and compute stacks (e.g., OpenStack, CloudStack, etc.), it is also worth
-considering using 10G Ethernet. Top-of-rack routers for each network also need
-to be able to communicate with spine routers that have even faster
-throughput--e.g., 40Gbps to 100Gbps.
-
-Your server hardware should have a Baseboard Management Controller (BMC).
-Administration and deployment tools may also use BMCs extensively, so consider
-the cost/benefit tradeoff of an out-of-band network for administration.
-Hypervisor SSH access, VM image uploads, OS image installs, management sockets,
-etc. can impose significant loads on a network. Running three networks may seem
-like overkill, but each traffic path represents a potential capacity, throughput
-and/or performance bottleneck that you should carefully consider before
-deploying a large scale data cluster.
-
-
-Failure Domains
-===============
-
-A failure domain is any failure that prevents access to one or more OSDs. That
-could be a stopped daemon on a host; a hard disk failure, an OS crash, a
-malfunctioning NIC, a failed power supply, a network outage, a power outage, and
-so forth. When planning out your hardware needs, you must balance the
-temptation to reduce costs by placing too many responsibilities into too few
-failure domains, and the added costs of isolating every potential failure
-domain.
-
-
-Minimum Hardware Recommendations
-================================
-
-Ceph can run on inexpensive commodity hardware. Small production clusters
-and development clusters can run successfully with modest hardware.
-
-+--------------+----------------+-----------------------------------------+
-| Process | Criteria | Minimum Recommended |
-+==============+================+=========================================+
-| ``ceph-osd`` | Processor | - 1x 64-bit AMD-64 |
-| | | - 1x 32-bit ARM dual-core or better |
-| +----------------+-----------------------------------------+
-| | RAM | ~1GB for 1TB of storage per daemon |
-| +----------------+-----------------------------------------+
-| | Volume Storage | 1x storage drive per daemon |
-| +----------------+-----------------------------------------+
-| | Journal | 1x SSD partition per daemon (optional) |
-| +----------------+-----------------------------------------+
-| | Network | 2x 1GB Ethernet NICs |
-+--------------+----------------+-----------------------------------------+
-| ``ceph-mon`` | Processor | - 1x 64-bit AMD-64 |
-| | | - 1x 32-bit ARM dual-core or better |
-| +----------------+-----------------------------------------+
-| | RAM | 1 GB per daemon |
-| +----------------+-----------------------------------------+
-| | Disk Space | 10 GB per daemon |
-| +----------------+-----------------------------------------+
-| | Network | 2x 1GB Ethernet NICs |
-+--------------+----------------+-----------------------------------------+
-| ``ceph-mds`` | Processor | - 1x 64-bit AMD-64 quad-core |
-| | | - 1x 32-bit ARM quad-core |
-| +----------------+-----------------------------------------+
-| | RAM | 1 GB minimum per daemon |
-| +----------------+-----------------------------------------+
-| | Disk Space | 1 MB per daemon |
-| +----------------+-----------------------------------------+
-| | Network | 2x 1GB Ethernet NICs |
-+--------------+----------------+-----------------------------------------+
-
-.. tip:: If you are running an OSD with a single disk, create a
- partition for your volume storage that is separate from the partition
- containing the OS. Generally, we recommend separate disks for the
- OS and the volume storage.
-
-
-Production Cluster Examples
-===========================
-
-Production clusters for petabyte scale data storage may also use commodity
-hardware, but should have considerably more memory, processing power and data
-storage to account for heavy traffic loads.
-
-Dell Example
-------------
-
-A recent (2012) Ceph cluster project is using two fairly robust hardware
-configurations for Ceph OSDs, and a lighter configuration for monitors.
-
-+----------------+----------------+------------------------------------+
-| Configuration | Criteria | Minimum Recommended |
-+================+================+====================================+
-| Dell PE R510 | Processor | 2x 64-bit quad-core Xeon CPUs |
-| +----------------+------------------------------------+
-| | RAM | 16 GB |
-| +----------------+------------------------------------+
-| | Volume Storage | 8x 2TB drives. 1 OS, 7 Storage |
-| +----------------+------------------------------------+
-| | Client Network | 2x 1GB Ethernet NICs |
-| +----------------+------------------------------------+
-| | OSD Network | 2x 1GB Ethernet NICs |
-| +----------------+------------------------------------+
-| | Mgmt. Network | 2x 1GB Ethernet NICs |
-+----------------+----------------+------------------------------------+
-| Dell PE R515 | Processor | 1x hex-core Opteron CPU |
-| +----------------+------------------------------------+
-| | RAM | 16 GB |
-| +----------------+------------------------------------+
-| | Volume Storage | 12x 3TB drives. Storage |
-| +----------------+------------------------------------+
-| | OS Storage | 1x 500GB drive. Operating System. |
-| +----------------+------------------------------------+
-| | Client Network | 2x 1GB Ethernet NICs |
-| +----------------+------------------------------------+
-| | OSD Network | 2x 1GB Ethernet NICs |
-| +----------------+------------------------------------+
-| | Mgmt. Network | 2x 1GB Ethernet NICs |
-+----------------+----------------+------------------------------------+
-
-
-
-
-
-.. _Ceph Write Throughput 1: http://ceph.com/community/ceph-performance-part-1-disk-controller-write-throughput/
-.. _Ceph Write Throughput 2: http://ceph.com/community/ceph-performance-part-2-write-throughput-without-ssd-journals/
-.. _Argonaut v. Bobtail Performance Preview: http://ceph.com/uncategorized/argonaut-vs-bobtail-performance-preview/
-.. _Bobtail Performance - I/O Scheduler Comparison: http://ceph.com/community/ceph-bobtail-performance-io-scheduler-comparison/
-.. _Mapping Pools to Different Types of OSDs: ../../rados/operations/crush-map#placing-different-pools-on-different-osds
-.. _OS Recommendations: ../os-recommendations
diff --git a/src/ceph/doc/start/index.rst b/src/ceph/doc/start/index.rst
deleted file mode 100644
index 6c799c0..0000000
--- a/src/ceph/doc/start/index.rst
+++ /dev/null
@@ -1,47 +0,0 @@
-============================
- Installation (ceph-deploy)
-============================
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="33%"><col width="33%"><col width="33%"></colgroup><tbody valign="top"><tr><td><h3>Step 1: Preflight</h3>
-
-A :term:`Ceph Client` and a :term:`Ceph Node` may require some basic
-configuration work prior to deploying a Ceph Storage Cluster. You can also
-avail yourself of help by getting involved in the Ceph community.
-
-.. toctree::
-
- Preflight <quick-start-preflight>
-
-.. raw:: html
-
- </td><td><h3>Step 2: Storage Cluster</h3>
-
-Once you have completed your preflight checklist, you should be able to begin
-deploying a Ceph Storage Cluster.
-
-.. toctree::
-
- Storage Cluster Quick Start <quick-ceph-deploy>
-
-
-.. raw:: html
-
- </td><td><h3>Step 3: Ceph Client(s)</h3>
-
-Most Ceph users don't store objects directly in the Ceph Storage Cluster. They typically use at least one of
-Ceph Block Devices, the Ceph Filesystem, and Ceph Object Storage.
-
-.. toctree::
-
- Block Device Quick Start <quick-rbd>
- Filesystem Quick Start <quick-cephfs>
- Object Storage Quick Start <quick-rgw>
-
-.. raw:: html
-
- </td></tr></tbody></table>
-
-
diff --git a/src/ceph/doc/start/intro.rst b/src/ceph/doc/start/intro.rst
deleted file mode 100644
index 95b51dd..0000000
--- a/src/ceph/doc/start/intro.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-===============
- Intro to Ceph
-===============
-
-Whether you want to provide :term:`Ceph Object Storage` and/or
-:term:`Ceph Block Device` services to :term:`Cloud Platforms`, deploy
-a :term:`Ceph Filesystem` or use Ceph for another purpose, all
-:term:`Ceph Storage Cluster` deployments begin with setting up each
-:term:`Ceph Node`, your network, and the Ceph Storage Cluster. A Ceph
-Storage Cluster requires at least one Ceph Monitor, Ceph Manager, and
-Ceph OSD (Object Storage Daemon). The Ceph Metadata Server is also
-required when running Ceph Filesystem clients.
-
-.. ditaa:: +---------------+ +------------+ +------------+ +---------------+
- | OSDs | | Monitors | | Managers | | MDSs |
- +---------------+ +------------+ +------------+ +---------------+
-
-- **Monitors**: A :term:`Ceph Monitor` (``ceph-mon``) maintains maps
- of the cluster state, including the monitor map, manager map, the
- OSD map, and the CRUSH map. These maps are critical cluster state
- required for Ceph daemons to coordinate with each other. Monitors
- are also responsible for managing authentication between daemons and
- clients. At least three monitors are normally required for
- redundancy and high availability.
-
-- **Managers**: A :term:`Ceph Manager` daemon (``ceph-mgr``) is
- responsible for keeping track of runtime metrics and the current
- state of the Ceph cluster, including storage utilization, current
- performance metrics, and system load. The Ceph Manager daemons also
- host python-based plugins to manage and expose Ceph cluster
- information, including a web-based `dashboard`_ and `REST API`_. At
- least two managers are normally required for high availability.
-
-- **Ceph OSDs**: A :term:`Ceph OSD` (object storage daemon,
- ``ceph-osd``) stores data, handles data replication, recovery,
- rebalancing, and provides some monitoring information to Ceph
- Monitors and Managers by checking other Ceph OSD Daemons for a
- heartbeat. At least 3 Ceph OSDs are normally required for redundancy
- and high availability.
-
-- **MDSs**: A :term:`Ceph Metadata Server` (MDS, ``ceph-mds``) stores
- metadata on behalf of the :term:`Ceph Filesystem` (i.e., Ceph Block
- Devices and Ceph Object Storage do not use MDS). Ceph Metadata
- Servers allow POSIX file system users to execute basic commands (like
- ``ls``, ``find``, etc.) without placing an enormous burden on the
- Ceph Storage Cluster.
-
-Ceph stores data as objects within logical storage pools. Using the
-:term:`CRUSH` algorithm, Ceph calculates which placement group should
-contain the object, and further calculates which Ceph OSD Daemon
-should store the placement group. The CRUSH algorithm enables the
-Ceph Storage Cluster to scale, rebalance, and recover dynamically.
-
-.. _dashboard: ../../mgr/dashboard
-.. _REST API: ../../mgr/restful
-
-.. raw:: html
-
- <style type="text/css">div.body h3{margin:5px 0px 0px 0px;}</style>
- <table cellpadding="10"><colgroup><col width="50%"><col width="50%"></colgroup><tbody valign="top"><tr><td><h3>Recommendations</h3>
-
-To begin using Ceph in production, you should review our hardware
-recommendations and operating system recommendations.
-
-.. toctree::
- :maxdepth: 2
-
- Hardware Recommendations <hardware-recommendations>
- OS Recommendations <os-recommendations>
-
-
-.. raw:: html
-
- </td><td><h3>Get Involved</h3>
-
- You can avail yourself of help or contribute documentation, source
- code or bugs by getting involved in the Ceph community.
-
-.. toctree::
- :maxdepth: 2
-
- get-involved
- documenting-ceph
-
-.. raw:: html
-
- </td></tr></tbody></table>
diff --git a/src/ceph/doc/start/os-recommendations.rst b/src/ceph/doc/start/os-recommendations.rst
deleted file mode 100644
index 3aea814..0000000
--- a/src/ceph/doc/start/os-recommendations.rst
+++ /dev/null
@@ -1,154 +0,0 @@
-====================
- OS Recommendations
-====================
-
-Ceph Dependencies
-=================
-
-As a general rule, we recommend deploying Ceph on newer releases of Linux.
-We also recommend deploying on releases with long-term support.
-
-Linux Kernel
-------------
-
-- **Ceph Kernel Client**
-
- If you are using the kernel client to map RBD block devices or mount
- CephFS, the general advice is to use a "stable" or "longterm
- maintenance" kernel series provided by either http://kernel.org or
- your Linux distribution on any client hosts.
-
- For RBD, if you choose to *track* long-term kernels, we currently recommend
- 4.x-based "longterm maintenance" kernel series:
-
- - 4.9.z
- - 4.4.z
-
- For CephFS, see `CephFS best practices`_ for kernel version guidance.
-
- Older kernel client versions may not support your `CRUSH tunables`_ profile
- or other newer features of the Ceph cluster, requiring the storage cluster
- to be configured with those features disabled.
-
-
-Platforms
-=========
-
-The charts below show how Ceph's requirements map onto various Linux
-platforms. Generally speaking, there is very little dependence on
-specific distributions aside from the kernel and system initialization
-package (i.e., sysvinit, upstart, systemd).
-
-Luminous (12.2.z)
------------------
-
-+----------+----------+--------------------+--------------+---------+------------+
-| Distro | Release | Code Name | Kernel | Notes | Testing |
-+==========+==========+====================+==============+=========+============+
-| CentOS | 7 | N/A | linux-3.10.0 | 3 | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Debian | 8.0 | Jessie | linux-3.16.0 | 1, 2 | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| Debian | 9.0 | Stretch | linux-4.9 | 1, 2 | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| Fedora | 22 | N/A | linux-3.14.0 | | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| RHEL | 7 | Maipo | linux-3.10.0 | | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 14.04 | Trusty Tahr | linux-3.13.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 16.04 | Xenial Xerus | linux-4.4.0 | 3 | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-
-
-Jewel (10.2.z)
---------------
-
-+----------+----------+--------------------+--------------+---------+------------+
-| Distro | Release | Code Name | Kernel | Notes | Testing |
-+==========+==========+====================+==============+=========+============+
-| CentOS | 7 | N/A | linux-3.10.0 | 3 | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Debian | 8.0 | Jessie | linux-3.16.0 | 1, 2 | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| Fedora | 22 | N/A | linux-3.14.0 | | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| RHEL | 7 | Maipo | linux-3.10.0 | | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 14.04 | Trusty Tahr | linux-3.13.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-
-Hammer (0.94.z)
----------------
-
-+----------+----------+--------------------+--------------+---------+------------+
-| Distro | Release | Code Name | Kernel | Notes | Testing |
-+==========+==========+====================+==============+=========+============+
-| CentOS | 6 | N/A | linux-2.6.32 | 1, 2 | |
-+----------+----------+--------------------+--------------+---------+------------+
-| CentOS | 7 | N/A | linux-3.10.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Debian | 7.0 | Wheezy | linux-3.2.0 | 1, 2 | |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 12.04 | Precise Pangolin | linux-3.2.0 | 1, 2 | |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 14.04 | Trusty Tahr | linux-3.13.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-
-Firefly (0.80.z)
-----------------
-
-+----------+----------+--------------------+--------------+---------+------------+
-| Distro | Release | Code Name | Kernel | Notes | Testing |
-+==========+==========+====================+==============+=========+============+
-| CentOS | 6 | N/A | linux-2.6.32 | 1, 2 | B, I |
-+----------+----------+--------------------+--------------+---------+------------+
-| CentOS | 7 | N/A | linux-3.10.0 | | B |
-+----------+----------+--------------------+--------------+---------+------------+
-| Debian | 7.0 | Wheezy | linux-3.2.0 | 1, 2 | B |
-+----------+----------+--------------------+--------------+---------+------------+
-| Fedora | 19 | Schrödinger's Cat | linux-3.10.0 | | B |
-+----------+----------+--------------------+--------------+---------+------------+
-| Fedora | 20 | Heisenbug | linux-3.14.0 | | B |
-+----------+----------+--------------------+--------------+---------+------------+
-| RHEL | 6 | Santiago | linux-2.6.32 | 1, 2 | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| RHEL | 7 | Maipo | linux-3.10.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 12.04 | Precise Pangolin | linux-3.2.0 | 1, 2 | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-| Ubuntu | 14.04 | Trusty Tahr | linux-3.13.0 | | B, I, C |
-+----------+----------+--------------------+--------------+---------+------------+
-
-Notes
------
-
-- **1**: The default kernel has an older version of ``btrfs`` that we do not
- recommend for ``ceph-osd`` storage nodes. We recommend using ``XFS``.
-
-- **2**: The default kernel has an old Ceph client that we do not recommend
- for kernel client (kernel RBD or the Ceph file system). Upgrade to a
- recommended kernel.
-
-- **3**: The default kernel regularly fails in QA when the ``btrfs``
- file system is used. We do not recommend using ``btrfs`` for
- backing Ceph OSDs.
-
-
-Testing
--------
-
-- **B**: We build release packages for this platform. For some of these
- platforms, we may also continuously build all ceph branches and exercise
- basic unit tests.
-
-- **I**: We do basic installation and functionality tests of releases on this
- platform.
-
-- **C**: We run a comprehensive functional, regression, and stress test suite
- on this platform on a continuous basis. This includes development branches,
- pre-release, and released code.
-
-.. _CRUSH Tunables: ../../rados/operations/crush-map#tunables
-
-.. _CephFS best practices: ../../cephfs/best-practices
diff --git a/src/ceph/doc/start/quick-ceph-deploy.rst b/src/ceph/doc/start/quick-ceph-deploy.rst
deleted file mode 100644
index 50b7f30..0000000
--- a/src/ceph/doc/start/quick-ceph-deploy.rst
+++ /dev/null
@@ -1,345 +0,0 @@
-=============================
- Storage Cluster Quick Start
-=============================
-
-If you haven't completed your `Preflight Checklist`_, do that first. This
-**Quick Start** sets up a :term:`Ceph Storage Cluster` using ``ceph-deploy``
-on your admin node. Create a three Ceph Node cluster so you can
-explore Ceph functionality.
-
-.. include:: quick-common.rst
-
-As a first exercise, create a Ceph Storage Cluster with one Ceph Monitor and three
-Ceph OSD Daemons. Once the cluster reaches a ``active + clean`` state, expand it
-by adding a fourth Ceph OSD Daemon, a Metadata Server and two more Ceph Monitors.
-For best results, create a directory on your admin node for maintaining the
-configuration files and keys that ``ceph-deploy`` generates for your cluster. ::
-
- mkdir my-cluster
- cd my-cluster
-
-The ``ceph-deploy`` utility will output files to the current directory. Ensure you
-are in this directory when executing ``ceph-deploy``.
-
-.. important:: Do not call ``ceph-deploy`` with ``sudo`` or run it as ``root``
- if you are logged in as a different user, because it will not issue ``sudo``
- commands needed on the remote host.
-
-
-Starting over
-=============
-
-If at any point you run into trouble and you want to start over, execute
-the following to purge the Ceph packages, and erase all its data and configuration::
-
- ceph-deploy purge {ceph-node} [{ceph-node}]
- ceph-deploy purgedata {ceph-node} [{ceph-node}]
- ceph-deploy forgetkeys
- rm ceph.*
-
-If you execute ``purge``, you must re-install Ceph. The last ``rm``
-command removes any files that were written out by ceph-deploy locally
-during a previous installation.
-
-
-Create a Cluster
-================
-
-On your admin node from the directory you created for holding your
-configuration details, perform the following steps using ``ceph-deploy``.
-
-#. Create the cluster. ::
-
- ceph-deploy new {initial-monitor-node(s)}
-
- Specify node(s) as hostname, fqdn or hostname:fqdn. For example::
-
- ceph-deploy new node1
-
- Check the output of ``ceph-deploy`` with ``ls`` and ``cat`` in the
- current directory. You should see a Ceph configuration file
- (``ceph.conf``), a monitor secret keyring (``ceph.mon.keyring``),
- and a log file for the new cluster. See `ceph-deploy new -h`_ for
- additional details.
-
-#. If you have more than one network interface, add the ``public network``
- setting under the ``[global]`` section of your Ceph configuration file.
- See the `Network Configuration Reference`_ for details. ::
-
- public network = {ip-address}/{bits}
-
- For example,::
-
- public network = 10.1.2.0/24
-
- to use IPs in the 10.1.2.0/24 (or 10.1.2.0/255.255.255.0) network.
-
-#. If you are deploying in an IPv6 environment, add the following to
- ``ceph.conf`` in the local directory::
-
- echo ms bind ipv6 = true >> ceph.conf
-
-#. Install Ceph packages.::
-
- ceph-deploy install {ceph-node} [...]
-
- For example::
-
- ceph-deploy install node1 node2 node3
-
- The ``ceph-deploy`` utility will install Ceph on each node.
-
-#. Deploy the initial monitor(s) and gather the keys::
-
- ceph-deploy mon create-initial
-
- Once you complete the process, your local directory should have the following
- keyrings:
-
- - ``ceph.client.admin.keyring``
- - ``ceph.bootstrap-mgr.keyring``
- - ``ceph.bootstrap-osd.keyring``
- - ``ceph.bootstrap-mds.keyring``
- - ``ceph.bootstrap-rgw.keyring``
- - ``ceph.bootstrap-rbd.keyring``
-
-.. note:: If this process fails with a message similar to "Unable to
- find /etc/ceph/ceph.client.admin.keyring", please ensure that the
- IP listed for the monitor node in ceph.conf is the Public IP, not
- the Private IP.
-
-#. Use ``ceph-deploy`` to copy the configuration file and admin key to
- your admin node and your Ceph Nodes so that you can use the ``ceph``
- CLI without having to specify the monitor address and
- ``ceph.client.admin.keyring`` each time you execute a command. ::
-
- ceph-deploy admin {ceph-node(s)}
-
- For example::
-
- ceph-deploy admin node1 node2 node3
-
-#. Deploy a manager daemon. (Required only for luminous+ builds)::
-
- ceph-deploy mgr create node1 *Required only for luminous+ builds, i.e >= 12.x builds*
-
-#. Add three OSDs. For the purposes of these instructions, we assume you have an
- unused disk in each node called ``/dev/vdb``. *Be sure that the device is not currently in use and does not contain any important data.*
-
- ceph-deploy osd create {ceph-node}:{device}
-
- For example::
-
- ceph-deploy osd create node1:vdb node2:vdb node3:vdb
-
-#. Check your cluster's health. ::
-
- ssh node1 sudo ceph health
-
- Your cluster should report ``HEALTH_OK``. You can view a more complete
- cluster status with::
-
- ssh node1 sudo ceph -s
-
-
-Expanding Your Cluster
-======================
-
-Once you have a basic cluster up and running, the next step is to
-expand cluster. Add a Ceph Metadata Server to ``node1``. Then add a
-Ceph Monitor and Ceph Manager to ``node2`` and ``node3`` to improve reliability and availability.
-
-.. ditaa::
- /------------------\ /----------------\
- | ceph-deploy | | node1 |
- | Admin Node | | cCCC |
- | +-------->+ mon.node1 |
- | | | osd.0 |
- | | | mgr.node1 |
- | | | mds.node1 |
- \---------+--------/ \----------------/
- |
- | /----------------\
- | | node2 |
- | | cCCC |
- +----------------->+ |
- | | osd.0 |
- | | mon.node2 |
- | \----------------/
- |
- | /----------------\
- | | node3 |
- | | cCCC |
- +----------------->+ |
- | osd.1 |
- | mon.node3 |
- \----------------/
-
-Add a Metadata Server
----------------------
-
-To use CephFS, you need at least one metadata server. Execute the following to
-create a metadata server::
-
- ceph-deploy mds create {ceph-node}
-
-For example::
-
- ceph-deploy mds create node1
-
-Adding Monitors
----------------
-
-A Ceph Storage Cluster requires at least one Ceph Monitor and Ceph
-Manager to run. For high availability, Ceph Storage Clusters typically
-run multiple Ceph Monitors so that the failure of a single Ceph
-Monitor will not bring down the Ceph Storage Cluster. Ceph uses the
-Paxos algorithm, which requires a majority of monitors (i.e., greather
-than *N/2* where *N* is the number of monitors) to form a quorum.
-Odd numbers of monitors tend to be better, although this is not required.
-
-.. tip: If you did not define the ``public network`` option above then
- the new monitor will not know which IP address to bind to on the
- new hosts. You can add this line to your ``ceph.conf`` by editing
- it now and then push it out to each node with
- ``ceph-deploy --overwrite-conf config push {ceph-nodes}``.
-
-Add two Ceph Monitors to your cluster::
-
- ceph-deploy mon add {ceph-nodes}
-
-For example::
-
- ceph-deploy mon add node2 node3
-
-Once you have added your new Ceph Monitors, Ceph will begin synchronizing
-the monitors and form a quorum. You can check the quorum status by executing
-the following::
-
- ceph quorum_status --format json-pretty
-
-
-.. tip:: When you run Ceph with multiple monitors, you SHOULD install and
- configure NTP on each monitor host. Ensure that the
- monitors are NTP peers.
-
-Adding Managers
----------------
-
-The Ceph Manager daemons operate in an active/standby pattern. Deploying
-additional manager daemons ensures that if one daemon or host fails, another
-one can take over without interrupting service.
-
-To deploy additional manager daemons::
-
- ceph-deploy mgr create node2 node3
-
-You should see the standby managers in the output from::
-
- ssh node1 sudo ceph -s
-
-
-Add an RGW Instance
--------------------
-
-To use the :term:`Ceph Object Gateway` component of Ceph, you must deploy an
-instance of :term:`RGW`. Execute the following to create an new instance of
-RGW::
-
- ceph-deploy rgw create {gateway-node}
-
-For example::
-
- ceph-deploy rgw create node1
-
-By default, the :term:`RGW` instance will listen on port 7480. This can be
-changed by editing ceph.conf on the node running the :term:`RGW` as follows:
-
-.. code-block:: ini
-
- [client]
- rgw frontends = civetweb port=80
-
-To use an IPv6 address, use:
-
-.. code-block:: ini
-
- [client]
- rgw frontends = civetweb port=[::]:80
-
-
-
-Storing/Retrieving Object Data
-==============================
-
-To store object data in the Ceph Storage Cluster, a Ceph client must:
-
-#. Set an object name
-#. Specify a `pool`_
-
-The Ceph Client retrieves the latest cluster map and the CRUSH algorithm
-calculates how to map the object to a `placement group`_, and then calculates
-how to assign the placement group to a Ceph OSD Daemon dynamically. To find the
-object location, all you need is the object name and the pool name. For
-example::
-
- ceph osd map {poolname} {object-name}
-
-.. topic:: Exercise: Locate an Object
-
- As an exercise, lets create an object. Specify an object name, a path to
- a test file containing some object data and a pool name using the
- ``rados put`` command on the command line. For example::
-
- echo {Test-data} > testfile.txt
- ceph osd pool create mytest 8
- rados put {object-name} {file-path} --pool=mytest
- rados put test-object-1 testfile.txt --pool=mytest
-
- To verify that the Ceph Storage Cluster stored the object, execute
- the following::
-
- rados -p mytest ls
-
- Now, identify the object location::
-
- ceph osd map {pool-name} {object-name}
- ceph osd map mytest test-object-1
-
- Ceph should output the object's location. For example::
-
- osdmap e537 pool 'mytest' (1) object 'test-object-1' -> pg 1.d1743484 (1.4) -> up [1,0] acting [1,0]
-
- To remove the test object, simply delete it using the ``rados rm``
- command.
-
- For example::
-
- rados rm test-object-1 --pool=mytest
-
- To delete the ``mytest`` pool::
-
- ceph osd pool rm mytest
-
- (For safety reasons you will need to supply additional arguments as
- prompted; deleting pools destroys data.)
-
-As the cluster evolves, the object location may change dynamically. One benefit
-of Ceph's dynamic rebalancing is that Ceph relieves you from having to perform
-data migration or balancing manually.
-
-
-.. _Preflight Checklist: ../quick-start-preflight
-.. _Ceph Deploy: ../../rados/deployment
-.. _ceph-deploy install -h: ../../rados/deployment/ceph-deploy-install
-.. _ceph-deploy new -h: ../../rados/deployment/ceph-deploy-new
-.. _ceph-deploy osd: ../../rados/deployment/ceph-deploy-osd
-.. _Running Ceph with Upstart: ../../rados/operations/operating#running-ceph-with-upstart
-.. _Running Ceph with sysvinit: ../../rados/operations/operating#running-ceph-with-sysvinit
-.. _CRUSH Map: ../../rados/operations/crush-map
-.. _pool: ../../rados/operations/pools
-.. _placement group: ../../rados/operations/placement-groups
-.. _Monitoring a Cluster: ../../rados/operations/monitoring
-.. _Monitoring OSDs and PGs: ../../rados/operations/monitoring-osd-pg
-.. _Network Configuration Reference: ../../rados/configuration/network-config-ref
-.. _User Management: ../../rados/operations/user-management
diff --git a/src/ceph/doc/start/quick-cephfs.rst b/src/ceph/doc/start/quick-cephfs.rst
deleted file mode 100644
index da4d84e..0000000
--- a/src/ceph/doc/start/quick-cephfs.rst
+++ /dev/null
@@ -1,119 +0,0 @@
-=====================
- Ceph FS Quick Start
-=====================
-
-To use the :term:`Ceph FS` Quick Start guide, you must have executed the
-procedures in the `Storage Cluster Quick Start`_ guide first. Execute this quick
-start on the Admin Host.
-
-Prerequisites
-=============
-
-#. Verify that you have an appropriate version of the Linux kernel.
- See `OS Recommendations`_ for details. ::
-
- lsb_release -a
- uname -r
-
-#. On the admin node, use ``ceph-deploy`` to install Ceph on your
- ``ceph-client`` node. ::
-
- ceph-deploy install ceph-client
-
-
-#. Ensure that the :term:`Ceph Storage Cluster` is running and in an ``active +
- clean`` state. Also, ensure that you have at least one :term:`Ceph Metadata
- Server` running. ::
-
- ceph -s [-m {monitor-ip-address}] [-k {path/to/ceph.client.admin.keyring}]
-
-
-Create a Filesystem
-===================
-
-You have already created an MDS (`Storage Cluster Quick Start`_) but it will not
-become active until you create some pools and a filesystem. See :doc:`/cephfs/createfs`.
-
-::
-
- ceph osd pool create cephfs_data <pg_num>
- ceph osd pool create cephfs_metadata <pg_num>
- ceph fs new <fs_name> cephfs_metadata cephfs_data
-
-
-Create a Secret File
-====================
-
-The Ceph Storage Cluster runs with authentication turned on by default.
-You should have a file containing the secret key (i.e., not the keyring
-itself). To obtain the secret key for a particular user, perform the
-following procedure:
-
-#. Identify a key for a user within a keyring file. For example::
-
- cat ceph.client.admin.keyring
-
-#. Copy the key of the user who will be using the mounted Ceph FS filesystem.
- It should look something like this::
-
- [client.admin]
- key = AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
-
-#. Open a text editor.
-
-#. Paste the key into an empty file. It should look something like this::
-
- AQCj2YpRiAe6CxAA7/ETt7Hcl9IyxyYciVs47w==
-
-#. Save the file with the user ``name`` as an attribute
- (e.g., ``admin.secret``).
-
-#. Ensure the file permissions are appropriate for the user, but not
- visible to other users.
-
-
-Kernel Driver
-=============
-
-Mount Ceph FS as a kernel driver. ::
-
- sudo mkdir /mnt/mycephfs
- sudo mount -t ceph {ip-address-of-monitor}:6789:/ /mnt/mycephfs
-
-The Ceph Storage Cluster uses authentication by default. Specify a user ``name``
-and the ``secretfile`` you created in the `Create a Secret File`_ section. For
-example::
-
- sudo mount -t ceph 192.168.0.1:6789:/ /mnt/mycephfs -o name=admin,secretfile=admin.secret
-
-
-.. note:: Mount the Ceph FS filesystem on the admin node,
- not the server node. See `FAQ`_ for details.
-
-
-Filesystem in User Space (FUSE)
-===============================
-
-Mount Ceph FS as a Filesystem in User Space (FUSE). ::
-
- sudo mkdir ~/mycephfs
- sudo ceph-fuse -m {ip-address-of-monitor}:6789 ~/mycephfs
-
-The Ceph Storage Cluster uses authentication by default. Specify a keyring if it
-is not in the default location (i.e., ``/etc/ceph``)::
-
- sudo ceph-fuse -k ./ceph.client.admin.keyring -m 192.168.0.1:6789 ~/mycephfs
-
-
-Additional Information
-======================
-
-See `Ceph FS`_ for additional information. Ceph FS is not quite as stable
-as the Ceph Block Device and Ceph Object Storage. See `Troubleshooting`_
-if you encounter trouble.
-
-.. _Storage Cluster Quick Start: ../quick-ceph-deploy
-.. _Ceph FS: ../../cephfs/
-.. _FAQ: http://wiki.ceph.com/How_Can_I_Give_Ceph_a_Try
-.. _Troubleshooting: ../../cephfs/troubleshooting
-.. _OS Recommendations: ../os-recommendations
diff --git a/src/ceph/doc/start/quick-common.rst b/src/ceph/doc/start/quick-common.rst
deleted file mode 100644
index 22cf501..0000000
--- a/src/ceph/doc/start/quick-common.rst
+++ /dev/null
@@ -1,20 +0,0 @@
-.. ditaa::
- /------------------\ /-----------------\
- | admin-node | | node1 |
- | +-------->+ cCCC |
- | ceph-deploy | | mon.node1 |
- | | | osd.0 |
- \---------+--------/ \-----------------/
- |
- | /----------------\
- | | node2 |
- +----------------->+ cCCC |
- | | osd.1 |
- | \----------------/
- |
- | /----------------\
- | | node3 |
- +----------------->| cCCC |
- | osd.2 |
- \----------------/
-
diff --git a/src/ceph/doc/start/quick-rbd.rst b/src/ceph/doc/start/quick-rbd.rst
deleted file mode 100644
index 5534fa9..0000000
--- a/src/ceph/doc/start/quick-rbd.rst
+++ /dev/null
@@ -1,95 +0,0 @@
-==========================
- Block Device Quick Start
-==========================
-
-To use this guide, you must have executed the procedures in the `Storage
-Cluster Quick Start`_ guide first. Ensure your :term:`Ceph Storage Cluster` is
-in an ``active + clean`` state before working with the :term:`Ceph Block
-Device`.
-
-.. note:: The Ceph Block Device is also known as :term:`RBD` or :term:`RADOS`
- Block Device.
-
-
-.. ditaa::
- /------------------\ /----------------\
- | Admin Node | | ceph-client |
- | +-------->+ cCCC |
- | ceph-deploy | | ceph |
- \------------------/ \----------------/
-
-
-You may use a virtual machine for your ``ceph-client`` node, but do not
-execute the following procedures on the same physical node as your Ceph
-Storage Cluster nodes (unless you use a VM). See `FAQ`_ for details.
-
-
-Install Ceph
-============
-
-#. Verify that you have an appropriate version of the Linux kernel.
- See `OS Recommendations`_ for details. ::
-
- lsb_release -a
- uname -r
-
-#. On the admin node, use ``ceph-deploy`` to install Ceph on your
- ``ceph-client`` node. ::
-
- ceph-deploy install ceph-client
-
-#. On the admin node, use ``ceph-deploy`` to copy the Ceph configuration file
- and the ``ceph.client.admin.keyring`` to the ``ceph-client``. ::
-
- ceph-deploy admin ceph-client
-
- The ``ceph-deploy`` utility copies the keyring to the ``/etc/ceph``
- directory. Ensure that the keyring file has appropriate read permissions
- (e.g., ``sudo chmod +r /etc/ceph/ceph.client.admin.keyring``).
-
-Create a Block Device Pool
-==========================
-
-#. On the admin node, use the ``ceph`` tool to `create a pool`_
- (we recommend the name 'rbd').
-
-#. On the admin node, use the ``rbd`` tool to initialize the pool for use by RBD::
-
- rbd pool init <pool-name>
-
-Configure a Block Device
-========================
-
-#. On the ``ceph-client`` node, create a block device image. ::
-
- rbd create foo --size 4096 [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
-
-#. On the ``ceph-client`` node, map the image to a block device. ::
-
- sudo rbd map foo --name client.admin [-m {mon-IP}] [-k /path/to/ceph.client.admin.keyring]
-
-#. Use the block device by creating a file system on the ``ceph-client``
- node. ::
-
- sudo mkfs.ext4 -m0 /dev/rbd/rbd/foo
-
- This may take a few moments.
-
-#. Mount the file system on the ``ceph-client`` node. ::
-
- sudo mkdir /mnt/ceph-block-device
- sudo mount /dev/rbd/rbd/foo /mnt/ceph-block-device
- cd /mnt/ceph-block-device
-
-#. Optionally configure the block device to be automatically mapped and mounted
- at boot (and unmounted/unmapped at shutdown) - see the `rbdmap manpage`_.
-
-
-See `block devices`_ for additional details.
-
-.. _Storage Cluster Quick Start: ../quick-ceph-deploy
-.. _create a pool: ../../rados/operations/pools/#create-a-pool
-.. _block devices: ../../rbd
-.. _FAQ: http://wiki.ceph.com/How_Can_I_Give_Ceph_a_Try
-.. _OS Recommendations: ../os-recommendations
-.. _rbdmap manpage: ../../man/8/rbdmap
diff --git a/src/ceph/doc/start/quick-rgw-old.rst b/src/ceph/doc/start/quick-rgw-old.rst
deleted file mode 100644
index db6474d..0000000
--- a/src/ceph/doc/start/quick-rgw-old.rst
+++ /dev/null
@@ -1,30 +0,0 @@
-:orphan:
-
-===========================
- Quick Ceph Object Storage
-===========================
-
-To use the :term:`Ceph Object Storage` Quick Start guide, you must have executed the
-procedures in the `Storage Cluster Quick Start`_ guide first. Make sure that you
-have at least one :term:`RGW` instance running.
-
-Configure new RGW instance
-==========================
-
-The :term:`RGW` instance created by the `Storage Cluster Quick Start`_ will run using
-the embedded CivetWeb webserver. ``ceph-deploy`` will create the instance and start
-it automatically with default parameters.
-
-To administer the :term:`RGW` instance, see details in the the
-`RGW Admin Guide`_.
-
-Additional details may be found in the `Configuring Ceph Object Gateway`_ guide, but
-the steps specific to Apache are no longer needed.
-
-.. note:: Deploying RGW using ``ceph-deploy`` and using the CivetWeb webserver instead
- of Apache is new functionality as of **Hammer** release.
-
-
-.. _Storage Cluster Quick Start: ../quick-ceph-deploy
-.. _RGW Admin Guide: ../../radosgw/admin
-.. _Configuring Ceph Object Gateway: ../../radosgw/config-fcgi
diff --git a/src/ceph/doc/start/quick-rgw.rst b/src/ceph/doc/start/quick-rgw.rst
deleted file mode 100644
index 9f48ac2..0000000
--- a/src/ceph/doc/start/quick-rgw.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-===============================
-Ceph Object Gateway Quick Start
-===============================
-
-As of `firefly` (v0.80), Ceph Storage dramatically simplifies installing and
-configuring a Ceph Object Gateway. The Gateway daemon embeds Civetweb, so you
-do not have to install a web server or configure FastCGI. Additionally,
-``ceph-deploy`` can install the gateway package, generate a key, configure a
-data directory and create a gateway instance for you.
-
-.. tip:: Civetweb uses port ``7480`` by default. You must either open port
- ``7480``, or set the port to a preferred port (e.g., port ``80``) in your Ceph
- configuration file.
-
-To start a Ceph Object Gateway, follow the steps below:
-
-Installing Ceph Object Gateway
-==============================
-
-#. Execute the pre-installation steps on your ``client-node``. If you intend to
- use Civetweb's default port ``7480``, you must open it using either
- ``firewall-cmd`` or ``iptables``. See `Preflight Checklist`_ for more
- information.
-
-#. From the working directory of your administration server, install the Ceph
- Object Gateway package on the ``client-node`` node. For example::
-
- ceph-deploy install --rgw <client-node> [<client-node> ...]
-
-Creating the Ceph Object Gateway Instance
-=========================================
-
-From the working directory of your administration server, create an instance of
-the Ceph Object Gateway on the ``client-node``. For example::
-
- ceph-deploy rgw create <client-node>
-
-Once the gateway is running, you should be able to access it on port ``7480``.
-(e.g., ``http://client-node:7480``).
-
-Configuring the Ceph Object Gateway Instance
-============================================
-
-#. To change the default port (e.g,. to port ``80``), modify your Ceph
- configuration file. Add a section entitled ``[client.rgw.<client-node>]``,
- replacing ``<client-node>`` with the short node name of your Ceph client
- node (i.e., ``hostname -s``). For example, if your node name is
- ``client-node``, add a section like this after the ``[global]`` section::
-
- [client.rgw.client-node]
- rgw_frontends = "civetweb port=80"
-
- .. note:: Ensure that you leave no whitespace between ``port=<port-number>``
- in the ``rgw_frontends`` key/value pair.
-
- .. important:: If you intend to use port 80, make sure that the Apache
- server is not running otherwise it will conflict with Civetweb. We recommend
- to remove Apache in this case.
-
-#. To make the new port setting take effect, restart the Ceph Object Gateway.
- On Red Hat Enterprise Linux 7 and Fedora, run the following command::
-
- sudo systemctl restart ceph-radosgw.service
-
- On Red Hat Enterprise Linux 6 and Ubuntu, run the following command::
-
- sudo service radosgw restart id=rgw.<short-hostname>
-
-#. Finally, check to ensure that the port you selected is open on the node's
- firewall (e.g., port ``80``). If it is not open, add the port and reload the
- firewall configuration. For example::
-
- sudo firewall-cmd --list-all
- sudo firewall-cmd --zone=public --add-port 80/tcp --permanent
- sudo firewall-cmd --reload
-
- See `Preflight Checklist`_ for more information on configuring firewall with
- ``firewall-cmd`` or ``iptables``.
-
- You should be able to make an unauthenticated request, and receive a
- response. For example, a request with no parameters like this::
-
- http://<client-node>:80
-
- Should result in a response like this::
-
- <?xml version="1.0" encoding="UTF-8"?>
- <ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
- <Owner>
- <ID>anonymous</ID>
- <DisplayName></DisplayName>
- </Owner>
- <Buckets>
- </Buckets>
- </ListAllMyBucketsResult>
-
-See the `Configuring Ceph Object Gateway`_ guide for additional administration
-and API details.
-
-.. _Configuring Ceph Object Gateway: ../../radosgw/config-fcgi
-.. _Preflight Checklist: ../quick-start-preflight
diff --git a/src/ceph/doc/start/quick-start-preflight.rst b/src/ceph/doc/start/quick-start-preflight.rst
deleted file mode 100644
index f4e8a63..0000000
--- a/src/ceph/doc/start/quick-start-preflight.rst
+++ /dev/null
@@ -1,361 +0,0 @@
-=====================
- Preflight Checklist
-=====================
-
-The ``ceph-deploy`` tool operates out of a directory on an admin
-:term:`node`. Any host with network connectivity and a modern python
-environment and ssh (such as Linux) should work.
-
-In the descriptions below, :term:`Node` refers to a single machine.
-
-.. include:: quick-common.rst
-
-
-Ceph-deploy Setup
-=================
-
-Add Ceph repositories to the ``ceph-deploy`` admin node. Then, install
-``ceph-deploy``.
-
-Debian/Ubuntu
--------------
-
-For Debian and Ubuntu distributions, perform the following steps:
-
-#. Add the release key::
-
- wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
-
-#. Add the Ceph packages to your repository::
-
- echo deb https://download.ceph.com/debian/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
- The above URL contains the latest stable release of Ceph. If you
- would like to select a specific release, use the command below and
- replace ``{ceph-stable-release}`` with a stable Ceph release (e.g.,
- ``luminous``.) For example::
-
- echo deb https://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list
-
-#. Update your repository and install ``ceph-deploy``::
-
- sudo apt update
- sudo apt install ceph-deploy
-
-.. note:: You can also use the EU mirror eu.ceph.com for downloading your packages by replacing ``https://ceph.com/`` by ``http://eu.ceph.com/``
-
-
-RHEL/CentOS
------------
-
-For CentOS 7, perform the following steps:
-
-#. On Red Hat Enterprise Linux 7, register the target machine with
- ``subscription-manager``, verify your subscriptions, and enable the
- "Extras" repository for package dependencies. For example::
-
- sudo subscription-manager repos --enable=rhel-7-server-extras-rpms
-
-#. Install and enable the Extra Packages for Enterprise Linux (EPEL)
- repository::
-
- sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-
- Please see the `EPEL wiki`_ page for more information.
-
-#. Add the Ceph repository to your yum configuration file at ``/etc/yum.repos.d/ceph.repo`` with the following command::
-
- cat >/etc/yum.repos.d/ceph.repo
- [ceph-noarch]
- name=Ceph noarch packages
- baseurl=https://download.ceph.com/rpm/el7/noarch
- enabled=1
- gpgcheck=1
- type=rpm-md
- gpgkey=https://download.ceph.com/keys/release.asc
-
- and then this *Control-D*. This will use the latest stable Ceph release. If you would like to install a different release, replace ``https://download.ceph.com/rpm/el7/noarch`` with ``https://download.ceph.com/rpm-{ceph-release}/el7/noarch`` where ``{ceph-release}`` is a release name like ``luminous``.
-
-#. Update your repository and install ``ceph-deploy``::
-
- sudo yum update
- sudo yum install ceph-deploy
-
-.. note:: You can also use the EU mirror eu.ceph.com for downloading your packages by replacing ``https://ceph.com/`` by ``http://eu.ceph.com/``
-
-
-openSUSE
---------
-
-The Ceph project does not currently publish release RPMs for openSUSE, but
-a stable version of Ceph is included in the default update repository, so
-installing it is just a matter of::
-
- sudo zypper install ceph
- sudo zypper install ceph-deploy
-
-If the distro version is out-of-date, open a bug at
-https://bugzilla.opensuse.org/index.cgi and possibly try your luck with one of
-the following repositories:
-
-#. Hammer::
-
- https://software.opensuse.org/download.html?project=filesystems%3Aceph%3Ahammer&package=ceph
-
-#. Jewel::
-
- https://software.opensuse.org/download.html?project=filesystems%3Aceph%3Ajewel&package=ceph
-
-
-Ceph Node Setup
-===============
-
-The admin node must be have password-less SSH access to Ceph nodes.
-When ceph-deploy logs in to a Ceph node as a user, that particular
-user must have passwordless ``sudo`` privileges.
-
-
-Install NTP
------------
-
-We recommend installing NTP on Ceph nodes (especially on Ceph Monitor nodes) to
-prevent issues arising from clock drift. See `Clock`_ for details.
-
-On CentOS / RHEL, execute::
-
- sudo yum install ntp ntpdate ntp-doc
-
-On Debian / Ubuntu, execute::
-
- sudo apt install ntp
-
-Ensure that you enable the NTP service. Ensure that each Ceph Node uses the
-same NTP time server. See `NTP`_ for details.
-
-
-Install SSH Server
-------------------
-
-For **ALL** Ceph Nodes perform the following steps:
-
-#. Install an SSH server (if necessary) on each Ceph Node::
-
- sudo apt install openssh-server
-
- or::
-
- sudo yum install openssh-server
-
-
-#. Ensure the SSH server is running on **ALL** Ceph Nodes.
-
-
-Create a Ceph Deploy User
--------------------------
-
-The ``ceph-deploy`` utility must login to a Ceph node as a user
-that has passwordless ``sudo`` privileges, because it needs to install
-software and configuration files without prompting for passwords.
-
-Recent versions of ``ceph-deploy`` support a ``--username`` option so you can
-specify any user that has password-less ``sudo`` (including ``root``, although
-this is **NOT** recommended). To use ``ceph-deploy --username {username}``, the
-user you specify must have password-less SSH access to the Ceph node, as
-``ceph-deploy`` will not prompt you for a password.
-
-We recommend creating a specific user for ``ceph-deploy`` on **ALL** Ceph nodes
-in the cluster. Please do **NOT** use "ceph" as the user name. A uniform user
-name across the cluster may improve ease of use (not required), but you should
-avoid obvious user names, because hackers typically use them with brute force
-hacks (e.g., ``root``, ``admin``, ``{productname}``). The following procedure,
-substituting ``{username}`` for the user name you define, describes how to
-create a user with passwordless ``sudo``.
-
-.. note:: Starting with the `Infernalis release`_ the "ceph" user name is reserved
- for the Ceph daemons. If the "ceph" user already exists on the Ceph nodes,
- removing the user must be done before attempting an upgrade.
-
-#. Create a new user on each Ceph Node. ::
-
- ssh user@ceph-server
- sudo useradd -d /home/{username} -m {username}
- sudo passwd {username}
-
-#. For the new user you added to each Ceph node, ensure that the user has
- ``sudo`` privileges. ::
-
- echo "{username} ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/{username}
- sudo chmod 0440 /etc/sudoers.d/{username}
-
-
-Enable Password-less SSH
-------------------------
-
-Since ``ceph-deploy`` will not prompt for a password, you must generate
-SSH keys on the admin node and distribute the public key to each Ceph
-node. ``ceph-deploy`` will attempt to generate the SSH keys for initial
-monitors.
-
-#. Generate the SSH keys, but do not use ``sudo`` or the
- ``root`` user. Leave the passphrase empty::
-
- ssh-keygen
-
- Generating public/private key pair.
- Enter file in which to save the key (/ceph-admin/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /ceph-admin/.ssh/id_rsa.
- Your public key has been saved in /ceph-admin/.ssh/id_rsa.pub.
-
-#. Copy the key to each Ceph Node, replacing ``{username}`` with the user name
- you created with `Create a Ceph Deploy User`_. ::
-
- ssh-copy-id {username}@node1
- ssh-copy-id {username}@node2
- ssh-copy-id {username}@node3
-
-#. (Recommended) Modify the ``~/.ssh/config`` file of your ``ceph-deploy``
- admin node so that ``ceph-deploy`` can log in to Ceph nodes as the user you
- created without requiring you to specify ``--username {username}`` each
- time you execute ``ceph-deploy``. This has the added benefit of streamlining
- ``ssh`` and ``scp`` usage. Replace ``{username}`` with the user name you
- created::
-
- Host node1
- Hostname node1
- User {username}
- Host node2
- Hostname node2
- User {username}
- Host node3
- Hostname node3
- User {username}
-
-
-Enable Networking On Bootup
----------------------------
-
-Ceph OSDs peer with each other and report to Ceph Monitors over the network.
-If networking is ``off`` by default, the Ceph cluster cannot come online
-during bootup until you enable networking.
-
-The default configuration on some distributions (e.g., CentOS) has the
-networking interface(s) off by default. Ensure that, during boot up, your
-network interface(s) turn(s) on so that your Ceph daemons can communicate over
-the network. For example, on Red Hat and CentOS, navigate to
-``/etc/sysconfig/network-scripts`` and ensure that the ``ifcfg-{iface}`` file
-has ``ONBOOT`` set to ``yes``.
-
-
-Ensure Connectivity
--------------------
-
-Ensure connectivity using ``ping`` with short hostnames (``hostname -s``).
-Address hostname resolution issues as necessary.
-
-.. note:: Hostnames should resolve to a network IP address, not to the
- loopback IP address (e.g., hostnames should resolve to an IP address other
- than ``127.0.0.1``). If you use your admin node as a Ceph node, you
- should also ensure that it resolves to its hostname and IP address
- (i.e., not its loopback IP address).
-
-
-Open Required Ports
--------------------
-
-Ceph Monitors communicate using port ``6789`` by default. Ceph OSDs communicate
-in a port range of ``6800:7300`` by default. See the `Network Configuration
-Reference`_ for details. Ceph OSDs can use multiple network connections to
-communicate with clients, monitors, other OSDs for replication, and other OSDs
-for heartbeats.
-
-On some distributions (e.g., RHEL), the default firewall configuration is fairly
-strict. You may need to adjust your firewall settings allow inbound requests so
-that clients in your network can communicate with daemons on your Ceph nodes.
-
-For ``firewalld`` on RHEL 7, add the ``ceph-mon`` service for Ceph Monitor
-nodes and the ``ceph`` service for Ceph OSDs and MDSs to the public zone and
-ensure that you make the settings permanent so that they are enabled on reboot.
-
-For example, on monitors::
-
- sudo firewall-cmd --zone=public --add-service=ceph-mon --permanent
-
-and on OSDs and MDSs::
-
- sudo firewall-cmd --zone=public --add-service=ceph --permanent
-
-Once you have finished configuring firewalld with the ``--permanent`` flag, you can make the changes live immediately without rebooting::
-
- sudo firewall-cmd --reload
-
-For ``iptables``, add port ``6789`` for Ceph Monitors and ports ``6800:7300``
-for Ceph OSDs. For example::
-
- sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT
-
-Once you have finished configuring ``iptables``, ensure that you make the
-changes persistent on each node so that they will be in effect when your nodes
-reboot. For example::
-
- /sbin/service iptables save
-
-TTY
----
-
-On CentOS and RHEL, you may receive an error while trying to execute
-``ceph-deploy`` commands. If ``requiretty`` is set by default on your Ceph
-nodes, disable it by executing ``sudo visudo`` and locate the ``Defaults
-requiretty`` setting. Change it to ``Defaults:ceph !requiretty`` or comment it
-out to ensure that ``ceph-deploy`` can connect using the user you created with
-`Create a Ceph Deploy User`_.
-
-.. note:: If editing, ``/etc/sudoers``, ensure that you use
- ``sudo visudo`` rather than a text editor.
-
-
-SELinux
--------
-
-On CentOS and RHEL, SELinux is set to ``Enforcing`` by default. To streamline your
-installation, we recommend setting SELinux to ``Permissive`` or disabling it
-entirely and ensuring that your installation and cluster are working properly
-before hardening your configuration. To set SELinux to ``Permissive``, execute the
-following::
-
- sudo setenforce 0
-
-To configure SELinux persistently (recommended if SELinux is an issue), modify
-the configuration file at ``/etc/selinux/config``.
-
-
-Priorities/Preferences
-----------------------
-
-Ensure that your package manager has priority/preferences packages installed and
-enabled. On CentOS, you may need to install EPEL. On RHEL, you may need to
-enable optional repositories. ::
-
- sudo yum install yum-plugin-priorities
-
-For example, on RHEL 7 server, execute the following to install
-``yum-plugin-priorities`` and enable the ``rhel-7-server-optional-rpms``
-repository::
-
- sudo yum install yum-plugin-priorities --enablerepo=rhel-7-server-optional-rpms
-
-
-Summary
-=======
-
-This completes the Quick Start Preflight. Proceed to the `Storage Cluster
-Quick Start`_.
-
-.. _Storage Cluster Quick Start: ../quick-ceph-deploy
-.. _OS Recommendations: ../os-recommendations
-.. _Network Configuration Reference: ../../rados/configuration/network-config-ref
-.. _Clock: ../../rados/configuration/mon-config-ref#clock
-.. _NTP: http://www.ntp.org/
-.. _Infernalis release: ../../release-notes/#v9-1-0-infernalis-release-candidate
-.. _EPEL wiki: https://fedoraproject.org/wiki/EPEL
diff --git a/src/ceph/doc/start/rgw.conf b/src/ceph/doc/start/rgw.conf
deleted file mode 100644
index e1bee99..0000000
--- a/src/ceph/doc/start/rgw.conf
+++ /dev/null
@@ -1,30 +0,0 @@
-FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock
-
-
-<VirtualHost *:80>
-
- ServerName {fqdn}
- <!--Remove the comment. Add a server alias with *.{fqdn} for S3 subdomains-->
- <!--ServerAlias *.{fqdn}-->
- ServerAdmin {email.address}
- DocumentRoot /var/www
- RewriteEngine On
- RewriteRule ^/([a-zA-Z0-9-_.]*)([/]?.*) /s3gw.fcgi?page=$1&params=$2&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
-
- <IfModule mod_fastcgi.c>
- <Directory /var/www>
- Options +ExecCGI
- AllowOverride All
- SetHandler fastcgi-script
- Order allow,deny
- Allow from all
- AuthBasicAuthoritative Off
- </Directory>
- </IfModule>
-
- AllowEncodedSlashes On
- ErrorLog /var/log/apache2/error.log
- CustomLog /var/log/apache2/access.log combined
- ServerSignature Off
-
-</VirtualHost> \ No newline at end of file